ИСП Обфускатор

Продукт
Разработчики: Институт системного программирования (ИСП РАН)
Дата премьеры системы: 2014
Дата последнего релиза: 2016
Отрасли: Информационные технологии
Технологии: ИБ - Предотвращения утечек информации

2016

В декабре 2016 года Институт системного программирования Российской академии наук (ИСП РАН) обнародовал одну из своих разработок – технологию обфускации (запутывания) программного кода. Она уже внедрена в МИД РФ и структурах ФСБ России.

Над самой технологией запутывания кода ИСП РАН работал с 2002 года. Параллельно с этим ученые начали разработку – писать код и смотреть, что получается, рассказывает директор ИСП РАН Арутюн Аветисян. Затем исследователи создали готовый продукт – ИСП Обфускатор, коммерческим внедрением которого занималась компания-партнер «МВП «Свемел».

Обфускатор защищает программу, мешает понять, как она работает, через запутывание кода. Это похоже на то, когда кто-то запутывает фразу, добавляя в нее незначимые куски, в итоге вместо одной фразы получается три страницы текста, которые не несут смысловой нагрузки. Вычленить первоначальный текст в этом случае – сложно, объясняет один из разработчиков, научный сотрудник ИСП РАН Шамиль Курмангалеев.

ИСП Обфускатор реализован на базе двух компиляторных инфраструктур – LLVM и GCC. Преобразования позволяют генерировать диверсифицированную популяцию исполняемых файлов компилируемого приложения. Злоумышленник, получив одну из версий файла, может создать для него вредоносный код (эксплойт), но он не будет работать для других версий файла.

«
Идея там очень простая – сделать так, чтобы, задавая некоторые параметры, каждый бинарник был уникальным. То есть исходники у нас те же, а бинарники уникальные. Допустим, вашу кофеварку взломали, быстро посмотрели, получили доступ к одному бинарнику, и смогут атаковать вторую кофеварку, чтобы она наливала неправильный кофе. А если бинарники уникальны, появляется шанс, что сделать это будет сложнее, – привел простое сравнение Арутюн Аветисян.
»

Принцип защиты при запутывании кода

По его словам, изначально обфускаторы разрабатывают, чтобы нельзя было, например, понять и украсть ваши алгоритмы, или доказать в суде, что это ваш код.

«
Обычно цель такого рода ПО – увеличить стоимость атаки, – говорит Шамиль Курмангалеев.
»

По словам разработчиков, такие преобразования легковесны и не приводят к критическому падению производительности. По результатам измерений, оно составляло не более нескольких процентов. Банковская цифровизация: ускоренное импортозамещение и переход на инновации. Обзор и рейтинг TAdviser 13.2 т

В ИСП РАН говорят, что аналогов этой разработки в России нет. В Европе проводились аналогичные исследования на ПО с открытым кодом, но в большей степени это были экспериментальные разработки.

В отличие от них ИСП РАН совместно с компанией «Свемел», одним из крупнейших поставщиков решений для госсектора, внедрили продукт для защиты ПО в МИД РФ и структурах ФСБ России (пограничной службе и в образовательных организациях).

Модифицированный компилятор GCC (ИСП Обфускатор) используется в составе доверенной операционной системы «Циркон», которая имеет сертификаты ФСБ и ФСТЭК и может использоваться для работы с гостайной.

По словам Арутюна Аветисяна, первый контракт с МИД и ФСБ был заключен в 2014 году. Затем при переходе этих ведомств на новые версии ОС потребовались обновления. Этот этап внедрения закончился летом 2016 года.

Исключительные права на разработку принадлежат ИСП РАН. Стоимость уже состоявшихся внедрений директор института не раскрывает. Что касается сроков, то, по его словам, команда из нескольких человек может за полгода-год сделать это. «Но это только благодаря бэкграунду в 15 лет. Это наукоемкие инновации», – отмечает Арутюн Аветисян.

Области применения ИСП Обфускатор:

  • усложнение понимания алгоритмов и структур данных
  • затруднение генерации эксплойтов на основе анализа патчей
  • расстановка водяных знаков
  • предотвращение эксплуатации известной уязвимости

ИСП Обфускатор реализован на базе двух компиляторных инфраструктур – LLVM и GCC. Реализованные преобразования:

  • перемещение локальных переменных в глобальную область видимости
  • приведение графа потока управления к плоскому виду
  • размножение тел функций
  • переплетение нескольких функций в одну
  • сокрытие вызовов функций
  • создание несводимых участков в графе потока управления
  • шифрование константных строк, используемых программой
  • вставка в код фиктивных циклов из одной итерации
  • разбиение целочисленных констант
  • вставка и перешивание локальных переменных
  • переустановка функций в модуле программы



Распределение вендоров по количеству проектов внедрений (систем, проектов) с учётом партнёров

За всю историю
2021 год
2022 год
2023 год
Текущий год

  SearchInform (СёрчИнформ) (1, 1)
  Makves (Маквес) (1, 1)
  Другие (0, 0)

Распределение систем по количеству проектов, не включая партнерские решения

За всю историю
2021 год
2022 год
2023 год
Текущий год