Проведение анализа уязвимостей программного обеспечения в настоящее время является обязательной активностью экспертов испытательных лабораторий при проведении сертификационных испытаний, выполняемых по линии системы сертификации ФСТЭК России. Данный вид работ выполняется как при сертификации на соответствие требованиям утвержденных ФСТЭК России профилей защиты, в которых в явном виде включены требования семейства AVA_VAN «Анализ уязвимостей», так и при испытаниях на соответствие требованиям технических условий.
Методология анализа уязвимостей, рекомендуемая ФСТЭК России, заключается в совместном использовании подходов, изложенных в документах ГОСТ Р ИСО/МЭК 18045 и ISO/IEC TR 20004 «Information technology. Security techniques. Refining software vulnerability analysis under ISO/IEC 15408 and ISO/IEC 18045», и предполагает выполнение следующих шагов.
1) Анализ известных (подтвержденных) уязвимостей объекта сертификации. При выполнении данного шага, как правило, определяются идентификационные признаки объекта сертификации (название, номер версии/сборки) и выполняется поиск известных (подтвержденных) уязвимостей в общедоступных источниках информации (например, в банке данных угроз безопасности информации ФСТЭК России или базе данных уязвимостей программного обеспечения «Common Vulnerabilities and Exposures»).
2) Анализ возможности использования (эксплуатации) потенциальных уязвимостей объекта сертификации. При выполнении данного шага:
- определяется перечень потенциальных уязвимостей объекта сертификации (как правило, на основе анализа представляемой документации, исследования общедоступных источников информации, данных об уязвимостях в схожих программных продуктах);
- для каждой идентифицированной потенциальной уязвимости разрабатывается и выполняется тест на проникновение с целью подтверждения ее актуальности для объекта сертификации.
Методические указания по использованию баз данных CWE и CAPEC при формировании перечня потенциальных уязвимостей объекта сертификации представлены в ISO/IEC TR 20004.
Поскольку требование по проведению анализа уязвимостей является относительно новым для отечественной системы сертификации, то на текущий момент времени еще не разработаны подробные методические документы (например, описание типовых тестов на проникновение), которые могли бы использоваться испытательными лабораториями при проведении анализа уязвимостей. Попробуем, проанализировав опыт зарубежных коллег, сформулировать рекомендации, которые могут быть полезны отечественным специалистам, проводящим анализ уязвимостей в рамках сертификационных испытаний. Напомню, что благодаря нововведениям в зарубежных системах сертификации отчеты испытательных лабораторий (Assurance Activity Report), которые содержат в том числе общие сведения о проведённом анализе уязвимостей, публикуются на официальном сайте систем сертификации.
Были проанализированы отчеты испытательных лабораторий за период январь-апрель 2016 года (всего – 33 отчета), опубликованные (ссылка https://www.niap-ccevs.org/Product/) на сайте NIAP – организации, которая регулирует систему сертификации в США.
В 4 из 33 работ, отчеты по которым были проанализированы, анализ уязвимостей не проводился –это связано с тем, что соответствующее требование доверия (AVA_VAN) отсутствует в профиле защиты, на соответствие которому проводилась сертификация (ПЗ для коммутаторов периферийных устройств). В 4 из 29 оставшихся отчетах информация о методах, использованных при проведении анализа уязвимостей, отсутствовала (дана ссылка на детальный отчет, подготовленный испытательной лабораторией, который не выкладывается в открытый доступ). Таким образом, был проведен анализ 25 отчетов испытательных лабораторий. Распределение испытаний по типам профилей защиты (ПЗ), на соответствие которым проводились проверки, представлено на рисунке далее по тексту. На рисунке использованы следующие обозначения:
- PP_ND/CPP_ND профиль защиты сетевых устройств;
- PP_APP профиль защиты прикладных программ;
- PP_ESM_PM профиль защиты средств управления политиками разграничения доступа;
- PP_MD профиль защиты средств защиты мобильных устройств;
- PP_OS профиль защиты операционных систем;
- PP_VPN_IPSEC_CLIENT профиль защиты IPSEC-клиентов.
Основные результаты проведенного анализа представлены далее по тексту.
1) В ходе выполнения всех 25 работ выполнялся поиск информации об известных уязвимостях объекта сертификации. При проведении поиска зарубежные коллеги, как правило, использовали следующий перечень источников информации:
- http://www.cvedetails.com/
- http://nvd.nist.gov
- http://www.us-cert.gov
- http://www.securityfocus.com
- http://cve.mitre.org
- веб-сайты разработчиков объектов сертификации
Некоторые испытательные лаборатории выполняли поиск известных уязвимостей не только по ключевым словам, непосредственно связанным с объектом сертификации (название, версия, производитель), но и по идентификационным данным, имеющим отношение к заимствованным компонентам. Достаточно подробный отчет по результатам поиска известных уязвимостей объекта сертификации можно посмотреть, перейдя по ссылке.
2) Только в половине работ (13 из 25) испытательные лаборатории выполняли дополнительные тесты на проникновение. В большинстве работ использовался стандартный набор тестов, применимый практически ко всем типам объектов сертификации:
- сканирование портов с целью выявления недекларированных точек входа в объект сертификации;
- атаки на интерфейс администрирования (веб-интерфейс и интерфейс командной строки);
- сканирование с использованием автоматизированных сканеров защищенности;
- сканирование исполняемых файлов объекта сертификации на наличие компьютерных вирусов.
С отчетами, в которых отражена данная информация, можно ознакомиться, перейдя по ссылкам (ссылка 1, ссылка 2):
3) Только в одной работе представлена информация о проведении тестов на проникновения, основанных на потенциальных уязвимостях объекта сертификации, сформулированных с учетом анализа свидетельства разработчика (функциональная спецификация, проектная документация)
4) Во всех работах, связанных с сертификацией по требованиям профиля защиты для сетевых устройств выполняется фаззинг-тестирование (обязательность проведения этого теста отражена в соответствующем профиле защиты). При этом, как правило, используются скрипты собственной разработки (пример отчета — ссылка).
5) В своей работе испытательные лаборатории не используют указания ISO/IEC TR 20004 по формованию перечня потенциальных уязвимостей на основе анализа баз данных CWE и CAPEC. Анализ выполняется только в объеме, соответствующем требованиям профиля защиты – дополнительные исследования выполняет только малое число испытательных лабораторий.