КАРТОЧКА ПРОЕКТА ФУНДАМЕНТАЛЬНЫХ И ПОИСКОВЫХ НАУЧНЫХ ИССЛЕДОВАНИЙ,
ПОДДЕРЖАННОГО РОССИЙСКИМ НАУЧНЫМ ФОНДОМ

Информация подготовлена на основании данных из Информационно-аналитической системы РНФ, содержательная часть представлена в авторской редакции. Все права принадлежат авторам, использование или перепечатка материалов допустима только с предварительного согласия авторов.

 

ОБЩИЕ СВЕДЕНИЯ


Номер 17-71-10006

НазваниеРазработка методов построения неразличимого по функциональности программного кода для защиты от киберугроз

РуководительСтюгин Михаил Андреевич, Кандидат технических наук

Организация финансирования, регион Федеральное государственное автономное образовательное учреждение высшего образования "Сибирский федеральный университет", Красноярский край

Период выполнения при поддержке РНФ 07.2017 - 06.2019 

Конкурс№23 - Конкурс 2017 года по мероприятию «Проведение инициативных исследований молодыми учеными» Президентской программы исследовательских проектов, реализуемых ведущими учеными, в том числе молодыми учеными.

Область знания, основной код классификатора 01 - Математика, информатика и науки о системах, 01-216 - Математические модели и методы защиты, преобразования и передачи информации

Ключевые словаИнформационная безопасность, защита от исследования, обфускация программного кода, криптография, неразличимые процессы, запутанные вычисления, распределенные вычисления.

Код ГРНТИ81.93.29


СтатусЗакрыт досрочно


 

ИНФОРМАЦИЯ ИЗ ЗАЯВКИ


Аннотация
Сложность современных информационных систем не позволяет удостовериться в отсутствии уязвимостей и ошибок на этапе их проектирования. В результате, уже на стадии эксплуатации выпускается бесчисленное количество обновлений/модификаций системы по устранению найденных уязвимостей. Такая ситуация неприемлема для систем с критической информацией и приводит к увеличению времени и затрат на разработку. Кроме того, открытость алгоритмов для внешнего анализа позволяет эффективно использовать программные и аппаратные закладки с целью компрометации хранимых данных и информации о работе системы. Российская Федерация находится в наиболее уязвимом положении для таких киберугроз, так как на ее территории практически отсутствуют какие-либо производители современной компьютерной техники, цикл производства которых можно было бы контролировать. В результате, государственные и крупные коммерческие компании используют программно-аппаратные средства с большим количеством предустановленных аппаратных и программных закладок. Такая ситуация представляет угрозу для безопасности личности, общества и государства и требует формирования новых подходов в разработке программного обеспечения. За последний год удалось получить несколько алгоритмических решений, позволяющих создавать неразличимый по функциональности программный код в исполняемом виде. В результате, становится невозможным понять какой алгоритм выполняет программа без знания параметров, подаваемых на вход. То есть подаем различные значения на вход – получаем различный алгоритм работы. Были получены и опубликованы первые примеры реализации, как, например, система шифрования с неизвестным алгоритмом работы, для которой количество различных алгоритмов в зависимости от значений входа составляет более 2 в 256 степени, то есть сравнимо с пространством ключа шифрования. Необходимо отметить, что изменена сама задача обфускации, поскольку в классическом понимании обфускации функциональные характеристики программы всегда остаются известны, а код приводится к «неразборчивому» виду. В нашей постановке задачи обфусцируется сама функциональность программы и это позволяет получить принципиально иные результаты и область их применения. Целью работы по данному проекту является создание универсального функционального обфускатора программ (на данный момент решения получены только для частных задач). Для достижения поставленной цели необходимо построить математическую модель, на основе которой определить методы получения неразличимых алгоритмов и доказать что полученные решения обладают свойством неразличимости (indistinguishable). На основе модели необходимо получить обоснованные методы обфускации и сам программный обфускатор, на вход которого подается исходное приложение, а на выходе получаем приложение с неразличимой функциональностью. В рамках проекта будет написан программный обфускатор для одного интерпретируемого языка (предположительно python, как наиболее востребованный на сегодняшний день).

Ожидаемые результаты
Основными результатами проекта будут являться методы получения неразличимых алгоритмов и алгоритмического обфускатора, реализующего их для любых приложений подаваемых на вход в виде интерпретируемого языка программирования (предположительно python). Представленная задача на данный момент не решена научным сообществом в такой формулировке (есть результаты по получению неразличимого обфускатора по коду, но не по функциональности программы – Amit Sahai, 2013). Практическое использование функциональной обфускации возможно в области защиты от исследования информационных систем, обрабатывающих конфиденциальную информацию. Кроме того, полученные результаты дают возможность использовать для построения доверенной вычислительной среды недоверенные программно-аппаратные компоненты. С экономической точки зрения это дает альтернативу по обеспечению безопасности критических информационных систем государства без огромных вложений в производство собственной электроники.


 

ОТЧЁТНЫЕ МАТЕРИАЛЫ