Задача обеспечения качества ПО, особенно системного, актуальна сегодня как никогда. Даже единичный отказ приложения, не говоря уже о сбое в системном модуле программно-аппаратных комплексов, может привести к человеческим жертвам или стать угрозой национальной безопасности. Как постоянно поддерживать качество операционных платформ и системного ПО на требуемом уровне? Какие сегодня доступны инструменты, обеспечивающие требуемое качество программных продуктов на всех этапах их жизненного цикла: отладка и анализ функционирования, верификация кода, управление требованиями и тестированием? Обсуждению этих вопросов была посвящена научно-практическая конференция OS DAY, проведенная при поддержке ФСО и ФСТЭК России группой отечественных компаний и организаций, разрабатывающих и развивающих операционные системы: ИСП РАН, DZ Systems, «Базальт СПО», ГосНИИАС, «Лаборатория Касперского», «Ред Софт», «РусБИТех-Астра» и «Криптософт».
Наличие необходимых инструментальных средств – одно из основных условий надежности ПО: чем совершеннее инструменты, тем безопаснее созданное с их помощью программное обеспечение.
«Без инструментов верификации и валидации кода мирового уровня сегодня невозможно создать конкурентоспособные операционные платформы. А поскольку нормативные требования к доверенным платформам непрерывно ужесточаются, то для разработки таких инструментов нужны постоянные исследования», – отметил, открывая конференцию, Арутюн Аветисян, директор Института системного программирования им. В.П. Иванникова РАН.
Для того чтобы российские операционные платформы работали качественно, были защищенными и конкурентоспособными, необходимо развивать нормативную базу, регламентирующую процессы разработки и сертификации ПО. Требования к инструментам анализа безопасности программного кода разрабатываются техническим комитетом по стандартизации «Защита информации» (ТК 362), нормативная база разработки и эксплуатации безопасного ПО включает ряд стандартов, в том числе ГОСТ Р 56939-2016 «Защита информации. Разработка безопасного программного обеспечения». Дмитрий Шевцов, начальник управления ФСТЭК, обратил внимание на необходимость постоянно совершенствовать требования по обеспечению безопасности. Так, недавно принятая методика выявления уязвимостей и недекларируемых возможностей в ПО стала с июня текущего года обязательной при прохождении сертификации. Александр Казачок из Академии ФСО представил средства создания модели управления доступа к электронным документам, которая обеспечивает выполнение требований мандатного контроля целостности и конфиденциальности. Отличительная черта модели – учет особенностей жизненного цикла электронных документов и порядка работы с ними.
С обзором конкретных инструментов, применяемых на всех этапах цикла разработки ПО, — систем версионирования кода, средств непрерывной интеграции и статического анализа, решений по тестированию, динамическому анализу и пр., — ознакомил Александр Герасимов из ИСП РАН. Инструментальная поддержка создания надежного ПО включает статический анализ кода (доступные на рынке средства: Svace, Klocwork, Coverity, Shint), динамический анализ (Anxiety, «ИСП Фаззер», Driller, Angr) и сопровождение ПО (Code Clone Detector, BinSIDE, CodeSurfer).
Вместе с тем, несмотря на обилие инструментов, доказать надежность ПО нельзя и можно говорить лишь о степени доверия к нему.
«Все автомобили потенциально опасны, но некоторые снабжены подушками и ремнями безопасности», — резонно заметил Дмитрий Белявский из компании «Криптоком». Действительно, системное ПО, созданное и сопровождаемое с применением средств безопасности, вызывает больше доверия. Однако важно не только внедрять сами инструменты, но и анализировать имеющийся опыт, строить стратегию тестирования и совершенствовать процедуры стандартизации. На примере протокола OpenSSL Белявский озвучил проблемы, сдерживающие участие отечественных разработчиков в процессе стандартизации: «Если при обсуждении зарубежных стандартов свои предложения может вносить любой желающий, то у нас на пути сообщества имеется масса преград». Между тем, опираясь на уже существующие популярные библиотеки категории Open Source, вполне можно заниматься развитием национальных стандартов.
Сегодня уязвимости вносятся в системное ПО быстрее, чем исправляются, поэтому, чтобы создавать стандарты и эффективные механизмы оценки инструментов поддержки, требуется большая работа с участием отраслевых экспертов. OS DAY – одна из немногих площадок, предоставляющая условия для открытого обсуждения фундаментальных основ создания инструментов разработки и сопровождения системного ПО, сбора рекомендаций специалистов по разработке ОС, обсуждения опыта применения современных инструментов в экосистеме операционных платформ. Многие отечественные организации, применяющие при разработке операционных платформ инструменты, отвечающие высоким требованиям к современному ПО, готовы делиться своим опытом с сообществом.