Консорциум российских компаний представил результаты пилотного проекта по реализации технического конвейера с базовым профилем безопасности. В испытании участвовали Positive Technologies, «Инфосистемы Джет» и «Сейсмотек». В качестве объекта проверки использовали программное обеспечение Prime, разработанное «Сейсмотеком».

Годом ранее участники проекта представили в Минэнерго России рекомендации по безопасной разработке промышленного программного обеспечения. Новая работа должна была перевести эти рекомендации из методического формата в практический — автоматизировать отдельные этапы проверки исходного кода и выявления уязвимостей.
Как рассказал Ильяс Киреев из Positive Technologies, в рамках конвейера компания предоставила инструменты для анализа исходного кода, в том числе технологии с применением машинного обучения. «Инфосистемы Джет» отвечали за развертывание инфраструктуры, настройку конвейера и проведение анализа.
В ходе пилотного проекта специалисты исследовали около 95 тыс. строк исходного кода Prime. При проверке было получено 172 срабатывания. Технология машинного обучения отнесла к потенциально требующим дополнительного исследования 60 из них. Для сравнения, при ручном анализе эксперты выделили 40 срабатываний, которые требовали дальнейшей проверки.

По словам Михаила Аношина из «Инфосистем Джет», в рамках проекта специалисты не только выявили потенциальные проблемы, но и провели практическую проверку существенных уязвимостей. После этого результаты передали разработчикам «Сейсмотека» для устранения.
«Все существенные уязвимости, которые мы в рамках нашего пилотного проекта нашли, были устранены. Причем от первоначального обнаружения до подтвержденного устранения прошло меньше двух недель», — отметил Аношин.
После внесения изменений специалисты провели повторное сканирование и подтвердили устранение существенных уязвимостей. Участники проекта отметили, что такие проверки должны стать регулярной частью цикла разработки, а конвейер консорциума может использоваться при выпуске крупных обновлений и на начальных этапах разработки новых продуктов.
Дмитрий Мосяков, генеральный директор «Сейсмотека», отметил, что компания регулярно проводит проверки исходного кода Prime, однако раньше основное внимание уделялось надежности системы и точности расчетов. В рамках совместного проекта акцент сделали на информационной безопасности.
«Прайм» — большая система, это миллионы строк исходного кода. Проверки исходного кода на предмет наличия ошибок — важный этап нашей работы. Мы проводим регулярно такие проверки, используем разные инструменты. В данном случае, опираясь на опыт коллег из компаний Positive и Jet, мы фокусируемся уже на безопасности», — сказал Мосяков.
По словам участников проекта, результатом работы стал не только поиск и устранение конкретных уязвимостей, но и практическая проверка самой методологии. Конвейер объединяет инструменты анализа исходного кода, инфраструктуру для проведения проверок и процедуры подтверждения устранения найденных проблем.
Разработанный подход также предполагается использовать для тиражирования практик безопасной разработки в промышленном ПО. Для заказчиков наличие подтвержденных результатов проверок может стать дополнительным критерием при выборе программных продуктов, а для разработчиков — способом встроить контроль безопасности непосредственно в релизный цикл.