The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Инструментарий для выявления скрытых уязвимостей, возникающих из-за использования стороннего кода

23.11.2011 11:42

Австралийский исследователь Сильвио Кезаре (Silvio Cesare) представил проект Clonewise, в рамках которого подготовлен инструментарий для выявления общих частей в исходных текстах различных программ и автоматического анализа такого кода на предмет наличия известных уязвимостей. Clonewise помогает решить проблему с возникновением скрытых уязвимостей, которые остаются неисправленными на протяжении длительного времени.

Код анализатора написан на языке С++ и распространяется под лицензией GPLv3. Дополнительно подготовлен GUI-интерфейс на языке Java для управления процессом и визуализации идентичных блоков кода в различных пакетах. Поддерживается работа с репозиториями, использующими пакеты в формате RPM и DEB (для загрузки задействованы yumdownloader и apt-get). При анализе и сопоставлении данных активно используется математический аппарат теории графов. При анализе учитывается как пересечение имен файлов, так и их содержимое (для блоков кода рассчитываются хэши, которые затем сравниваются).

Типичной является ситуация, когда разработчики интегрируют в свой код часть функциональности другого открытого продукта или библиотеки. В случае, если в исходном продукте или библиотеке будет найдена уязвимость, как правило она касается и кода, заимствованного другими проектами. Но так как библиотека используется не через динамическое связывание, а путем копирования кода, такие уязвимости остаются незамеченными. Clonewise связывает CVE-идентификатор уязвимости с блоком кода, вызывающим появлением проблемы, и пытается найти данный код в репозиториях с исходными текстами пакетов различных дистрибутивов.

Например, опасная уязвимость в библиотеке libpng была устранена в браузере Firefox, в поставку которого входили файлы из данной библиотеки, только спустя три месяца. После анализа утилитой Clonewise свежих репозиториев Debian и Fedora было выявлено пять пактов, в которых проявляется уязвимость в libpng, исправленная ещё в начале апреля. В начале года отмечена серия уязвимостей в популярных программах просмотра PDF, таких как Evince и Xpdf, что также было связано с заимствованием кода. Подобные случаи не исключаются и для других популярных проектов, в которых регулярно находят уязвимости, таких как bzip2, libzip, libxml2 и FFmpeg.

Около 90% выявленных утилитой проблем являются ложными срабатываниями. Используя GUI-интерфейс ложные срабатывания отсеиваются в считанные секунды, достаточно пробежаться по списку беглым взглядом. Несмотря на высокий процент ложных срабатываний, в процессе разработки Clonewise в стандартном репозитории Fedora Linux было выявлено 30 ранее не замеченных уязвимостей. Что касается степени заимствования кода, то исследовав репозиторий Debian GNU/Linux, как один из самых больших репозиториев открытого ПО, было выявлено 420 приложений, в которых присутствует код, скопированный из других проектов.

  1. Главная ссылка к новости (http://www.scmagazine.com.au/N...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/32373-linux
Ключевые слова: linux, analyze, security, clonewise
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (31) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 12:28, 23/11/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +10 +/
    Полезная штука.
     
     
  • 2.2, Xasd (ok), 12:39, 23/11/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а вот программиисты которые занимаются Copy-Past -- бесполезны. 9000 раз же всем говорили... и сёравно находятся такие "умники"... зачем придумывают всякие git submodule, если сёравно "крутой компьютерщик Вася" вазьмёт да и скопирует пару файлов чужих исходников в свой проект :-/ :-/

    # p.s.: если конешно не преследуются цели создания fork

     
     
  • 3.4, Аноним (-), 13:13, 23/11/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Балмер что ли? Зачем изобретать велосипеды, когда все уже написано до нас?
     
     
  • 4.6, Xasd (ok), 13:26, 23/11/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Балмер что ли? Зачем изобретать велосипеды, когда все уже написано до нас?

    тыг вот и сделай ссылку на этот "уже написанный" чужой код.. а не присваивай себе чужые ошибки :-)

     
     
  • 5.8, Xasd (ok), 13:35, 23/11/2011 [^] [^^] [^^^] [ответить]  
  • +4 +/
    в Балмеровской Windows XP -- кстате какраз было много Copy-Past'нутых чужих ошибок из BSD-сетевого-стэка :-) [в то вермя как в самой той оригинальной BSD их уже исправили]
     
     
  • 6.20, 1 (??), 15:45, 23/11/2011 [^] [^^] [^^^] [ответить]  
  • –3 +/
    пруф или не было?
     
     
  • 7.26, Аноним (-), 16:33, 23/11/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > пруф или не было?

    MS11-083 :)

     
     
  • 8.32, z (??), 17:14, 23/11/2011 [^] [^^] [^^^] [ответить]  
  • –4 +/
    А где ссылка на аналогичную уязвимость в BSD ... текст свёрнут, показать
     
  • 8.33, Аноним (-), 17:14, 23/11/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Что бы не выдумывал Карманов, а рабочие эксплоиты от этого эксплоитами не перест... текст свёрнут, показать
     
     
  • 9.53, Аноним (-), 04:19, 24/11/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А ботам пофигу Надо долбить 52 дня Будут в фоне долбить 52 дня Мне они вон SS... текст свёрнут, показать
     
  • 2.60, ол (?), 09:45, 26/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    классная картинка
     

  • 1.3, Alen (??), 12:57, 23/11/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Антивирус по опенсоурсному - это антидырус ;)
     
     
  • 2.5, Аноним (-), 13:15, 23/11/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Антивирус по опенсоурсному - это антидырус ;)

    Антивирус, а точнее средство автоматического отслеживания атак и определения взлома в опенсорсе бы не помешал. Кернел оргом клянусь.

     
  • 2.7, Lain_13 (?), 13:31, 23/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    И, кстати, это правильно. Нужно избавляться от проблем, а не их последствий.
     
  • 2.19, Аноним (-), 15:34, 23/11/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Антивирус по опенсоурсному - это антидырус ;)

    Так заткнуть дыру - это ж умнее чем вместо этого ловить то что через нее валится?!

     

  • 1.10, Аноним (-), 14:31, 23/11/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А что за странное пятно слева сверху на графе?
     
     
  • 2.11, Guest (??), 14:50, 23/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    это бесформенное пятно
     
  • 2.12, SsD (?), 14:54, 23/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Сферический конь в вакууме
     
     
  • 3.39, Lain_13 (?), 18:19, 23/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Если учесть, что 90% это лочные срабатывания, то это определённо именно он и есть.
     
     
  • 4.40, Lain_13 (?), 18:20, 23/11/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > лоЧные

    Эк я по Же-то промазал-то…

     
  • 2.22, Crazy Alex (??), 15:58, 23/11/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Даже если он будет частью операционки (кстати как вы это себе представляете?) то что помешает авторам софта также таскать его с собой? И наоборот - им и сейчас ничего не мешает использовать нормальный внешний libpng. А мозилловцев за повадку "всё своё ношу с собой" надо вообще сапогами бить. Начиная с неиспользования готовых внешних бибилиотек декодирования аудио/видео, кстати.
     
  • 2.24, Карбофос (ok), 16:12, 23/11/2011 [^] [^^] [^^^] [ответить]  
  • +5 +/
    >затычка для детских болезней open-source'а

    Ваня, очнись. этими болезнями кишат и закрытые проекты. прикинь?

     
     
  • 3.37, gegMOPO4 (ok), 17:37, 23/11/2011 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Именно, что кишат. Любой более-менее крупный закрытый проект тащит с собой целый зоопарк необновляемого стороннего купленного закрытого кода. Для свободного софта в Линуксе это исключение (420 срабатываний на десятки тысяч приложений).
     
  • 2.27, Аноним (-), 16:41, 23/11/2011 [^] [^^] [^^^] [ответить]  
  • +8 +/
    > 1. "инструментарий для ... автоматического анализа ... кода на предмет наличия ИЗВЕСТНЫХ
    > уязвимостей" (выделено мной)

    И что? У MS бывали дыры в общедоступных либах типа злибы, и ничего, не смущались.

    > Fedora было выявлено пять пакетов, в которых проявляется уязвимость ... исправленная
    > ещё в начале апреля"

    А у MS вообще анимированные курсоры позволяли в ядро проломиться. И дыр в GDI+ было оптом в всех парсерах форматов - от жпега до WMF. Чем это лучше?

    > Это ещё одна затычка для детских болезней open-source'а

    Про детские болезни вякать после MS11-083 довольно нагловато, имхо. Это у вас в TCP/IP стеке детские болезни, если оно позволяет ремотным пакетом кернел мод поиметь.

    > причиной которых является огрехи в архитектуре ОС и методике разработки.

    А MS11-083 почему-то у MS случился. По логике получается что там не огрехи а сплошной мегафэйл, да? Потому что в *BSD/Linux такого лютого пи...ца с дырявостью сетевого стека не наблюдается.

    > Так libpng просто напрашивается стать частью ОС, но вместо этого дублируется
    > (!!) в десятках проектов.

    Так кто виноват что бакланы из микрософта не предоставляют возможность попросить "дайте нам libpng"? В линухе так и делают обычно, указывая libpng в зависимостях вместо копипи...нга кода из нее. Но есть же винды, где это не вариант. А переть с собой всю библу - так прога сильно распухает и тяжелеет. Вот и выкручиваются как умеют.

    > А вот это уже ППЦ.

    Не, ППЦ - это когда ремотный пакет влетает в кернел и выполняется. Как в MS11-083. Вот это лютенько, ничего не скажешь.

     

  • 1.16, анон (?), 15:08, 23/11/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    копирасты обрадуюются
    это ж нахаляву такой инструмент!
     
     
  • 2.18, Аноним (-), 15:33, 23/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    А ты не тырь у копирасов. Это как минимум некультурно.
     
  • 2.41, Lain_13 (?), 18:32, 23/11/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Не, им он практически без толку. Он ищет известные фрагменты кода, а не «код, которые делает то же самое, что и в нашем патенте».
     

  • 1.23, Аноним (-), 16:04, 23/11/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Дополнительно подготовлен GUI-интерфейс на языке Java для управления процессом и визуализации идентичных блоков кода в различных пакетах.

    На Java? Жаль.

     
     
  • 2.36, тоже Аноним (ok), 17:33, 23/11/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это интерфейс для присобачивания этой системы к всяческим НетБинсам, Эклипсам и т.п. На чем еще он должен быть?
     
     
  • 3.57, Суровый (?), 16:30, 24/11/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    На ассемблере
     

  • 1.61, alex (??), 22:03, 29/11/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Буду очень благодарен за небольшой HOWTO как этим воспользоваться ? Для поиска одинаковых кусков кода в проекте например ?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру