Исследователи безопасности из компании Google опубликовали (https://googleprojectzero.blogspot.com/2018/12/searching-sta... наработки в области определения использования в исполняемых файлах кода сторонних библиотек, который статически скомпилирован и встроен в приложение. Процедура выявления заимствованного кода имеет большое значение при анализе безопасности приложения, так как зачастую разработчики встраивают в состав своих продуктов внешние библиотеки, но не поддерживают их в актуальном виде. Код написан на языке С++ и опубликован (https://github.com/googleprojectzero/functionsimsearch) под лицензией Apache 2.0.
Со временем поставка неактуального внешнего кода может привести к накоплению скрытых уязвимостей, уже исправленных в основных ветках разработки библиотек, но не перенесённых в интегрированные в сторонние проекты ответвления. Если в открытых проектах аудит применения стороннего кода решается достаточно просто, то в проприетарных продуктах, поставляемых только в виде исполняемых файлов, задача сводится к определению связывания на уровне анализа машинного кода.
Предложенный метод основан на применении системы машинного обучения и алгоритма SimHash (https://en.wikipedia.org/wiki/SimHash) для определения уровня приблизительного сходства между фрагментами машинного кода исследуемых приложений с машинным кодом реализаций функций из различных открытых библиотек. В качестве примеров практического применения метода продемонстрирован поиск кода unrar в библиотеке mpengine.dll, поиск функций libtiff в Adobe Reader и определение наличия форков libtiff и libjpeg в базовой поставке Windows 10 (следы уязвимых версий данных библиотек найдены в WindowsCodecs.dll).URL: https://googleprojectzero.blogspot.com/2018/12/searching-sta...
Новость: https://www.opennet.me/opennews/art.shtml?num=49862
Интересно было бы это использовать для поиска нарушений GPL
Может быть уже хватит двигать копирастию в массы?
> Может быть уже хватит двигать копирастию в массы?Конечно! Отмени побыренькому ЗоАП.
И все на PD пойдём,взявшись за куки и распевая невозбранно песенки михалковых и пр. рыбиных.
Денис попов, авторизуйтесь пожалуйста и расскажите о новом релизе BolgenOS )
да ты туповат
Вы путаете копирастию с копилефтией
На практике обычно проблемы нет.
Ну, скомпоновала игрулька в себя древний и уязвимый libjpeg. Так она через него пропускает только собственные файлы, эксплуатировать уязвимость некому...
И то, что она лезет на собственный сервер за обновлениями через уязвимые сетевые библиотеки, тоже, внезапно, вообще не проблема.
Не соглашусь, различные вариации libxml и libjpeg очень часто используются для обработки внешних данных. Открыл пользователь левый файл и получил трояна в системе.
Этим уже занимается системный libxml/libjpeg, который, внезапно, нужно обновлять, конечно если она не стоит в Program Files (тут вендоюзеры и прочие любители пользоваться помойками a.k.a. snap, flatpak, appimage, /opt, и.т.д. должны страдать, да. И, конечно же, 's/каждый/никто не/g' говорил, что такое может произойти).P.S: Хотя уже были случаи, когда в assets игры внедряли трояны и выкладывали на всякие торрент-помойки.
Речь о том, что чтобы не париться с зависимостями проприеиарщики часто статически линкуют бинарники со старыми версиями библиотек.
Статически как раз нечасто линкуют. Если откроешь директорию любой линуксовой игрушки из стима, там будет куча динамических библиотек.
Как пример - в играх на движке source есть окно при входе на сервер, где можно показать свою html страницу. Или тот же source, где можно загрузить свою аватарку или спрайт.
На практике софта много и разного, и проще всех запинать, чтобы обновились на актуальную версию. Благо, для подобных библиотек это не проблема - там обычно вполне нормальные багфикс-релизы.Именно так гугл чем-то подобным анализирует всё, что сабмитится в Google Play. И не пропускает, если не обновишь на правленные версии.
> проще всех запинать, чтобы обновились на актуальную версиюОткрытый софт и без пинков стараются обновлять.
А вот с проприетарным придется пинать, чтобы КУПИЛИ новую версию.
Ради теоретических дырок. Не хило пинков в ответ прилетит.
Не, с андроидом всё просто - залить в маркет приложение, в котором найдены уязвимые библиотеки, он просто не даст. Что там, если найдено уже в залитом - не интересовался, андроид - не моя тема. Но тоже давили как-то на разработчиков. Если приложение платное это свершенно не значит, что абсолютно за все версии надо заново платить (хотя, опять же, деталей не знаю - не пользовался).Кстати, напомню, что в маркете есть вагон бесплатного закрытого софта - часть с рекламой, часть нужня для работы с чем-то ещё (допустим, управление каким-нибудь "умным" устройством или подключение к энетерпрайзным системам - да хоть банковские клиенты те же), часть просто бесплатная, но закрытая - тоже бывает.
Насчёт "открытый софт и без пинков стараются обновлять"... ну это вы чересчур оптимистичны, по-всякому там.
>А вот с проприетарным придется пинать, чтобы КУПИЛИ новую версию.Обнвления безопасности платные только у редхата и т.п.
Ага, пока для неё не сделают мод а сервер не подменят через DNS.
Ну смотрите - онлайн-игра, подгружает, например, аватарки из фоток пользователей и отдает их на клиента как есть.
очень полезный инструмент для хакеров.....
....мамкиных?
это что-то типа "статического" антивируса с эвристиками? или я слишком не разбираюсь в теме для понимания этой штуки
Зачем делать проприетарное ПО безопаснее?
Гугл это для плей маркета склепал, там понятно, зачем ему
ничего не изменится, кому нужно будет попасть в магазин с старой версией будут шифровать эти библиотеки(или упаковывать) и евристики не будут определять их
Не стоит искать злой умысле в том, что вполне объяснимо глупостью. Обычно старые версии остаются тупо потому что поленились/забыли обновить (уязвимости закрываются в минорах, в которых API не ломается). А обновить либу на порядок проще, чем прикручивать обфускацию, даже если изменения в API есть.