Программа выявления уязвимостей артефактов кода с приведением примеров их исправления
анализ защищенности исходного кода анализ уязвимостей защита информации статический анализ исходного кода ложно-положительные уязвимости в коде информационная безопасность
Объем отчета: 58 страниц, 9 иллюстраций, 3 таблицы, 4 приложения, 12 использованных источников

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

В рамках выполнения научно-исследовательской и опытно-конструкторской работы (НИОКР) по теме «Разработка и тестирование прототипа базы знаний уязвимостей артефактов кода» были выполнены выбор и настройка SAST инструментов, выбор и настройка open-source артефактов, разметка структуры базы знаний, настройка интерфейса решения, разработка и отладка распределенного пайплайна, разработка интерфейса взаимодействия пользователя с базой знаний, активация пайплайна, подготовка обучающей выборки, анализ зависимостей/корреляций между выявленными уязвимостями и другими признаками артефактов, тестирование прототипа базы знаний и доработка базового функционала.
В ходе работы было в совокупности обработано 10,2 тысяч репозиториев, более 1 миллиона коммитов и 5 миллионов файлов, написанных на 3 языках программирования (Python, Go, C++), в рамках 5 статических анализаторов безопасности приложений (Bandit, Semgrep, Gosec, Flawfinder, Infer). В рамках предобработки были унифицированы ошибки по статичным фрагментам кода и были выработаны и применены правила разметки ряда типов уязвимостей, представленных на уровне нескольких анализаторов. В качестве подготовки обучающей выборки была произведена ручная разметка оставшейся части уязвимостей с тройным перекрытием на предмет наличия ошибки, проведенная с помощью разработанного в рамках работы приложения, оптимизирующего процесс разметки и позволяющего сохранить данные в структурированной форме в единое хранилище. На более поздних этапах были реализованы соотнесение списка уязвимостей с ключами, выявление, формирование и соотнесение примеров исправления уязвимостей и разработка интерфейса взаимодействия базы знаний с пользователем с последующими доработками и улучшением базового функционала.
Название open-source библиотеки включено во входные воздействия, необходимые для выполнения научно-техническим продуктом заданных функций, в то время как в выходных реакциях присутствуют код и уязвимости open-source библиотеки, а также примеры исправления выявленных уязвимостей.
Разработанный научно-технический продукт обеспечивает осуществление загрузки и сохранения артефактов с выбранного ресурса, запуск SAST анализатора для выявления уязвимостей в скачанных библиотеках с открытым кодом, сохранение выявленных уязвимостей в общую базу и предоставление интерфейса для работы с базой знаний.
В результате были достигнуты все намеченные количественные параметры, определяющие выполнение научно-техническим продуктом своих функций -  в частности, преодоление 10%-ного показателя уменьшения ошибок второго рода по 6 парам языка программирования и анализатора (Python-Bandit:13,4%; Python-Semgrep: 12,1%; Go-Semgrep: 11,3%; Go-Gosec: 10,5%; C++-Flawfinder: 10,8%; C++-Infer: 10,2%).
Была выполнена цель научно-технической работы - прототип базы знаний уязвимостей артефактов кода был разработан и протестирован и в том числе была проверена эффективность прототипа в части уменьшения ошибок второго рода для ряда проанализированных SAST-инструментов.

Область применения - информационная безопасность.
Экономическая значимость работы - результаты могут стать основой для развития собственного статического анализатора программного кода с улучшенными показателями.
Прогнозные предположения о развитии объекта исследования - уязвимости в программном коде как объект исследования могут быть идентифицированы с более высокой точностью при доработке и развитии результатов текущей научно-технической работы.
Объекты интеллектуальной собственности, полученные в результате выполнения работы - патент в процессе получения.
Оценка исполнителем успешности выполнения работы в соответствии с Техническим заданием и Календарным планом - НИОКР была выполнена успешно, показатели были достигнуты.
Использование прототипа для анализа программного кода на наличие уязвимостей совместно со статическими анализаторами для повышения точности анализа и эффективности постпроверки; потенциально возможно использование прототипа базы знаний уязвимостей артефактов кода за основу разработки для полноценной программы анализа кода на безопасность за счет расширения входных данных и открытия возможности ввести собственный код на проверку.
50.41.25
Прикладное программное обеспечение
Анна
Каревская
Андреевна
"Отсутствует"
"Отсутствует"
РОССИЯ
Амир
Тухватуллин
Ильгизович
"Отсутствует"
"Отсутствует"
РОССИЯ
Роман
Бабенко
Владимирович
"Отсутствует"
"Отсутствует"
РОССИЯ
Юлия
Тарасова
Алексеевна
"Отсутствует"
"Отсутствует"
РОССИЯ
Максим
Мякишев
Анатольевич
"Отсутствует"
"Отсутствует"
РОССИЯ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ УЧРЕЖДЕНИЕ "ФОНД СОДЕЙСТВИЯ РАЗВИТИЮ МАЛЫХ ФОРМ ПРЕДПРИЯТИЙ В НАУЧНО-ТЕХНИЧЕСКОЙ СФЕРЕ"
1027739479734
СЕРГЕЙ
ПОЛЯКОВ
ГЕННАДЬЕВИЧ
Организация
Федеральное государственное бюджетное учреждение "Фонд содействия развитию малых форм предприятий в научно-технической сфере"
Федеральные государственные бюджетные учреждения
ООО "ДЖЕТХАБ"
ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ "ДЖЕТХАБ"
1227700502413
РОМАН
БАБЕНКО
ВЛАДИМИРОВИЧ
Организация
Организации, учрежденные юридическими лицами или гражданами, или юридическими лицами и гражданами совместно
Общества с ограниченной ответственностью