Петр Девянин, ведущий научный сотрудник АО НПО "РусБИТех", член-корреспондент Академии криптографии Российской Федерации, доктор технических наук, профессор.
Специалист по теории компьютерной безопасности, в особенности по разработке формальных моделей безопасности управления доступом и информационными потоками. На протяжении нескольких лет занимается научным сопровождением разработки отечественной защищенной операционной системы специального назначения Astra Linux Special Edition.
При сертификации средств защиты информации с 1 июня 2019 г. подлежат применению «Требования по безопасности информации, устанавливающие уровни доверия к средствам технической защиты информации и средствам обеспечения безопасности информационных технологий», утверждённые приказом ФСТЭК России от 30.07.2018 № 131, и «Методика выявления уязвимостей и недекларированных возможностей в программном обеспечении», утверждённая ФСТЭК России 11.02.2019 [1]. Этими документами закрепляются требования по применению при сертификации средств защиты информации широкого спектра методов статического и динамического анализа программного кода, эффективная реализация которых невозможна без применения соответствующих инструментальных средств.
По скольку отечественная защищённая операционная система специального назначения (ОССН) Astra Linux Special Edition [2] уже много лет сертифицирована по самым высоким классам защиты [3], то у её разработчика ООО «РусБИТех-Астра» (ГК Astra Linux) накоплен существенный опыт по применению методов и инструментальных средств, позволяющих достичь такое высокое доверие к механизмам защиты ОССН.
Для этого в связи с значительным объёмом подлежащего анализу программного кода ОССН с целью обеспечения автоматизации процесса его сборки, верификации и тестирования используется практика непрерывной интеграции (continuous integration) в инструментальной среде GitLab [4], в которой в том числе осуществляется:
Основой механизмов защиты ОССН является модуль PARSEC, реализующий её диспетчер доступа (монитор ссылок). Для исключения ошибок в коде этого модуля с применением инструментальных средств системы Jenkins [5] проводится многоэтапное тестирование, охватывающее также другие взаимодействующие с PARSEC механизмы защиты, такие как контроллер домена Astra Linux Directory (ALD), веб-сервер apache2 и СУБД PostgreSQL. При чем для увеличения доверия к тестам их разработка ведётся разными командами.
Статический анализ кода осуществляется инструментальными средствами cppcheck [6] и Svace [7]. Использование различных анализаторов программного кода и обработка их результатов в единой среде GitLab позволяют более точно выявлять ошибки, в том числе уменьшить число ложных срабатываний самих анализаторов. Например, в результате статического анализа обновлений кода модуля PARSEC с помощью cppcheck и Svace ими было дано несколько сотен предупреждений о возможных ошибках, из которых при последующем ручном анализе кода ошибками той или иной степени критичности были признаны около 30 (при этом cppcheck и Svace, как правило, обнаруживали разные ошибки), что позволило своевременно устранить эти ошибки при окончательной доработке модуля PARSEC.
Для фаззинга программного кода ОССН также используются несколько инструментальных средств. Применительно к библиотечным вызовам применяется libFuzzer [8], для пользовательских приложений — AFL-фаззер [9], для фаззинга ядра – инструмент Syzkaller4Astra (специально модифицированный с учётом специфики ОССН фаззер syzkaller [10]). Например, с помощью Syzkaller4Astra удалось выявить и устранить десятки ошибок в нескольких модулях ядра, реализующих механизмы защиты ОССН, а также в других модулях, не относящихся к механизмам защиты.
Техника ручного анализ кода в первую очередь применятся к программному коду механизмов защиты, в которых были обнаружены ошибки с использованием перечисленных инструментальных средств, для дальнейшей оценки их степени критичности и последующего устранения.
Помимо рассмотренных инструментальных средств для обеспечения доверия к ОССН используется разработанный ИСП РАН комплекс инструментальных средств AstraVer Toolset [11] верификации формальной модели управления доступом ОССН (МРОСЛ ДП-модели) и её реализации непосредственно в программном коде [12].
Все перечисленное позволяет говорить не только о выполнении при разработке ОССН требований актуальных нормативных документов ФСТЭК России [1], но также о том, что ОССН стала по сути первой отечественной промышленной операционной системой, для достижения доверия к механизмам защиты которой были применены самые современные инструментальные средства, благодаря чему были развиты заложенные в эти средства научно обоснованные технологии.
1. Информационное сообщение ФСТЭК России от 29.03.2019 № 240/24/1525. URL: https://fstec.ru/component/attachments/download/2286.
2. Astra Linux. URL: http://www.astralinux.ru.
3. Операционная система Astra Linux для процессоров «Эльбрус» сертифицирована ФСБ России и Минобороны России. URL: https://astralinux.ru/news/category-news/2019/operaczionnaya-sistema-astra-linux-dlya-proczessorov-«elbrus».
4. GitLab. A full DevOps tool. URL: http://gitlab.com.
5. Jenkins. URL: https://jenkins.io/.
6. Cppcheck. A tool for static C/C++ code analysis. URL: http://cppcheck.sourceforge.net.
7. Статический анализатор Svace. URL: http://www.ispras.ru/technologies/svace.
8. LibFuzzer – a library for coverage-guided fuzz testing. URL: https://llvm.org/docs/LibFuzzer.html.
9. American fuzzy lop (2.52b). URL: http://lcamtuf.coredump.cx/afl.
10. Syzkaller. URL: https://github.com/google/syzkaller.
11. AstraVer Toolset. URL: https://forge.ispras.ru/projects/astraver-toolset.
12. Девянин П.Н., Ефремов Д.В., Кулямин В.В., Петренко А.К., Хорошилов А.В., Щепетков И.В. Моделирование и верификация политик безопасности управления доступом в операционных системах. М.: Горячая линия – Телеком, 2019. 214 с.: ил.