The OpenNET Project / Index page

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

27.12.2018 11:32  Анализ использования фрагментов уязвимых библиотек в исполняемом коде

Исследователи безопасности из компании Google опубликовали наработки в области определения использования в исполняемых файлах кода сторонних библиотек, который статически скомпилирован и встроен в приложение. Процедура выявления заимствованного кода имеет большое значение при анализе безопасности приложений, так как зачастую разработчики встраивают в состав своих продуктов внешние библиотеки, но не поддерживают их в актуальном виде. Код написан на языке С++ и опубликован под лицензией Apache 2.0.

Поставка в составе продукта неактуального внешнего кода может привести к накоплению скрытых уязвимостей, уже исправленных в основных ветках библиотек, но не перенесённых в интегрированные в сторонние проекты ответвления. Если в открытых проектах аудит применения стороннего кода решается на уровне сопоставления исходных текстов, то в проприетарных продуктах, поставляемых только в виде исполняемых файлов, задача сводится к определению связывания на уровне анализа машинного кода (по сути требуется корреляцию между исходным кодом библиотеки и отрывками машинного кода).

Предложенный метод основан на применении системы машинного обучения и алгоритма SimHash для определения уровня приблизительного сходства между фрагментами машинного кода исследуемых приложений с шаблонами кода функций из различных открытых библиотек. При помощи машинного обучения строится модель, обученная на различных комбинациях результатов компиляции кода открытых библиотек, полученных при сборке эталонных функций при помощи Visual Studio, GCC и CLANG с включением различных сборочных опций. Полученная модель позволяет выделять специфичные для кода маркеры, независимо от применяемых компиляторов, режимов оптимизаций и незначительных модификаций кода.

В качестве примеров практического применения метода продемонстрирован поиск кода unrar в библиотеке mpengine.dll, поиск функций libtiff в Adobe Reader и определение наличия форков libtiff и libjpeg в базовой поставке Windows 10 (следы уязвимых версий данных библиотек найдены в WindowsCodecs.dll).

  1. Главная ссылка к новости (https://googleprojectzero.blog...)
  2. OpenNews: Опасная уязвимость в реализациях LZO/LZ4, затрагивающая ядро Linux, FFmpeg, OpenVPN и другие проекты
  3. OpenNews: Основные проблемы с открытым кодом в коммерческих проектах вызваны использованием устаревших библиотек
  4. OpenNews: Анализ использования ассемблерных вставок в коде открытых проектов
  5. OpenNews: Инструментарий для выявления скрытых уязвимостей, возникающих из-за использования стороннего кода
  6. OpenNews: Обратная сторона систем распространения приложений в обход дистрибутивов
Лицензия: CC-BY
Тип: Обобщение
Ключевые слова: search, diff, lib
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, Crazy Alex (ok), 12:13, 27/12/2018 [ответить] [показать ветку] [···]    [к модератору]
  • +19 +/
    Интересно было бы это использовать для поиска нарушений GPL
     
     
  • 2.27, Аноним (27), 11:59, 28/12/2018 [^] [ответить]    [к модератору]
  • +/
    Может быть уже хватит двигать копирастию в массы?
     
     
  • 3.28, Andrey Mitrofanov (?), 12:43, 28/12/2018 [^] [ответить]    [к модератору]
  • +/
    > Может быть уже хватит двигать копирастию в массы?

    Конечно!  Отмени побыренькому ЗоАП.

    И все на PD пойдём,взявшись за куки и распевая невозбранно песенки михалковых и пр. рыбиных.

     
  • 3.29, Felix (??), 13:01, 28/12/2018 [^] [ответить]    [к модератору]
  • +/
    Денис попов, авторизуйтесь пожалуйста и расскажите о новом релизе BolgenOS )
     
  • 3.31, Аноним (31), 14:26, 28/12/2018 [^] [ответить]    [к модератору]
  • +/
    да ты туповат
     
  • 3.32, Aquarius (ok), 17:44, 28/12/2018 [^] [ответить]    [к модератору]  
  • +/
    Вы путаете копирастию с копилефтией
     
  • 1.2, тоже Аноним (ok), 12:24, 27/12/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    На практике обычно проблемы нет.
    Ну, скомпоновала игрулька в себя древний и уязвимый libjpeg. Так она через него пропускает только собственные файлы, эксплуатировать уязвимость некому...
    И то, что она лезет на собственный сервер за обновлениями через уязвимые сетевые библиотеки, тоже, внезапно, вообще не проблема.
     
     
  • 2.3, Аноним (3), 12:32, 27/12/2018 [^] [ответить]    [к модератору]  
  • +5 +/
    Не соглашусь, различные вариации libxml и libjpeg очень часто используются для обработки внешних данных. Открыл пользователь левый файл и получил трояна в системе.
     
     
  • 3.4, Аноним (4), 13:06, 27/12/2018 [^] [ответить]     [к модератору]  
  • –2 +/
    Этим уже занимается системный libxml libjpeg, который, внезапно, нужно обновлять... весь текст скрыт [показать]
     
     
  • 4.6, Аноним (6), 14:07, 27/12/2018 [^] [ответить]    [к модератору]  
  • +6 +/
    Речь о том, что чтобы не париться с зависимостями проприеиарщики часто статически линкуют бинарники со старыми версиями библиотек.
     
     
  • 5.15, Аноним (15), 18:54, 27/12/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    Статически как раз нечасто линкуют. Если откроешь директорию любой линуксовой игрушки из стима, там будет куча динамических библиотек.
     
  • 3.8, НяшМяш (ok), 14:11, 27/12/2018 [^] [ответить]    [к модератору]  
  • +/
    Как пример - в играх на движке source есть окно при входе на сервер, где можно показать свою html страницу. Или тот же source, где можно загрузить свою аватарку или спрайт.
     
  • 2.7, Crazy Alex (ok), 14:10, 27/12/2018 [^] [ответить]    [к модератору]  
  • +/
    На практике софта много и разного, и проще всех запинать, чтобы обновились на актуальную версию.  Благо, для подобных библиотек это не проблема - там обычно вполне нормальные багфикс-релизы.

    Именно так гугл чем-то подобным анализирует всё, что сабмитится в Google Play. И не пропускает, если не обновишь на правленные версии.

     
     
  • 3.9, тоже Аноним (ok), 14:23, 27/12/2018 [^] [ответить]    [к модератору]  
  • +/
    > проще всех запинать, чтобы обновились на актуальную версию

    Открытый софт и без пинков стараются обновлять.
    А вот с проприетарным придется пинать, чтобы КУПИЛИ новую версию.
    Ради теоретических дырок. Не хило пинков в ответ прилетит.

     
     
  • 4.11, Crazy Alex (ok), 15:25, 27/12/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    Не, с андроидом всё просто - залить в маркет приложение, в котором найдены уязвимые библиотеки, он просто не даст. Что там, если найдено уже в залитом - не интересовался, андроид - не моя тема. Но тоже давили как-то на разработчиков. Если приложение платное это свершенно не значит, что абсолютно за все версии надо заново платить (хотя, опять же, деталей не знаю - не пользовался).

    Кстати, напомню, что в маркете есть вагон бесплатного закрытого софта - часть с рекламой, часть нужня для работы с чем-то ещё (допустим, управление каким-нибудь "умным" устройством или подключение к энетерпрайзным системам - да хоть банковские клиенты те же), часть просто бесплатная, но закрытая - тоже бывает.

    Насчёт "открытый софт и без пинков стараются обновлять"... ну это вы чересчур оптимистичны, по-всякому там.

     
  • 4.13, Аноним (13), 16:40, 27/12/2018 [^] [ответить]    [к модератору]  
  • –3 +/
    >А вот с проприетарным придется пинать, чтобы КУПИЛИ новую версию.

    Обнвления безопасности платные только у редхата и т.п.

     
  • 2.19, Аноним (19), 21:30, 27/12/2018 [^] [ответить]    [к модератору]  
  • +/
    Ага, пока для неё не сделают мод а сервер не подменят через DNS.
     
  • 2.21, mickvav (?), 22:29, 27/12/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Ну смотрите - онлайн-игра, подгружает, например, аватарки из фоток пользователей и отдает их на клиента как есть.
     
  • 1.10, Аноним (10), 15:08, 27/12/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    очень полезный инструмент для хакеров.....
     
     
  • 2.14, Аноним (14), 17:06, 27/12/2018 [^] [ответить]    [к модератору]  
  • –2 +/
    ....мамкиных?
     
  • 1.20, annual slayer (?), 21:31, 27/12/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    это что-то типа "статического" антивируса с эвристиками? или я слишком не разбираюсь в теме для понимания этой штуки
     
  • 1.22, dimqua (ok), 22:31, 27/12/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    Зачем делать проприетарное ПО безопаснее?
     
     
  • 2.24, Crazy Alex (ok), 23:39, 27/12/2018 [^] [ответить]    [к модератору]  
  • +/
    Гугл это для плей маркета склепал, там понятно, зачем ему
     
  • 1.26, анан (?), 06:51, 28/12/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    ничего не изменится, кому нужно будет попасть в магазин с старой версией будут шифровать эти библиотеки(или упаковывать) и евристики не будут определять их
     
     
  • 2.30, Crazy Alex (ok), 13:50, 28/12/2018 [^] [ответить]    [к модератору]  
  • +/
    Не стоит искать злой умысле в том, что вполне объяснимо глупостью. Обычно старые версии остаются тупо потому что поленились/забыли обновить (уязвимости закрываются в минорах, в которых API не ломается). А обновить либу на порядок проще, чем прикручивать обфускацию, даже если изменения в API есть.
     

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


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