28 марта 2024 г. CNews провел конференцию «Заказная разработка ПО 2024», посвященную проблемам и достижениям разработчиков. Достижений хватает, но и проблем немало: можно использовать опенсорсную библиотеку, а потом недосчитаться десятка миллионов в кармане. Можно создать целый программно-аппаратный комплекс, а коллеги скажут, что получился велосипед. Можно внедрить автоматизацию тестирования, но ручной труд не исчезнет. Что делать? Разбирались все, даже заказчики и вендоры.
Сергей Грачев: Безопасная разработка — это не только безопасность ПО, но и высокая репутация
Уровень угроз информационной безопасности растет. Очень важно обеспечивать безопасность программных продуктов еще на этапе их создания. Как это сделать, рассказал Сергей Грачев, заместитель директора по кибербезопасности, IBS.
CNews: Какие угрозы несет за собой отсутствие должного внимания к ИБ в процессе разработки?
Сергей Грачев: Отсутствие должного внимания к процессу разработки с точки зрения информационной безопасности напрямую влияет на безопасность и качество разрабатываемого продукта. Со стороны разработчика это не только безопасность самого решения, но и деловая репутация в конкурентной среде (goodwill). Кроме того, присутствуют риски прямого ущерба/убытков с возможными штрафными санкциями в рамках законодательства.
К наиболее значимым угрозам, во-первых, можно отнести нарушение целостности программной платформы и информационной системы в целом. Уязвимости в коде могут привести к успешной реализации хакерских атак, нарушению непрерывности бизнес-процессов/остановке производства и соответственно к финансовым и материальным потерям. Во-вторых, утечку чувствительных данных (в том числе конфиденциальных), повреждение или удаление критичных данных. В-третьих, атаки на цепочки поставщиков (supple chain) – в нашем случае это разработчик ПО. В списках актуальных угроз эта атака занимает лидирующие позиции в экспертном сообществе.
Использование популярных программных продуктов, содержащих актуальные и критичные уязвимости, может поставить под угрозу любую компанию. В целях проведения анализа и моделирования актуальных угроз безопасности информации среды разработки ПО можно ориентироваться на действующий ГОСТ Р 58412.
CNews: Какие инструменты необходимы для обеспечения безопасной разработки?
Сергей Грачев: На сегодняшний день спектр инструментов для обеспечения безопасной разработки ПО постоянно расширяется, часть из них включены в Единый реестр российского программного обеспечения и сертифицированы ФСТЭК России. Функциональность этих инструментов направлена на мониторинг, выявление и устранение уязвимостей на различных архитектурных уровнях, включая операционные системы, библиотеки, базы данных и непосредственно сам исходный код.
Виды инструментальных работ для безопасной разработки описаны в ГОСТ Р 56939. Во-первых, это статический анализ кода (SAST). Используется для выявления потенциальных уязвимостей и ошибок безопасности в исходном коде на раннем этапе разработки. Осуществляется анализ использованных библиотек и зависимостей для обнаружения уязвимостей или наличия не обновленных версий.
Во-вторых, динамический анализ кода (DAST) — инструментальные исследования работы приложения в режиме непосредственного исполнения кода в целях обнаружения уязвимостей. В-третьих, фаззинг-тестирование — анализ поведения программного обеспечения при обработке входных данных. Осуществляется проверка системы на предмет обработки некорректных/специально сформированных данных, тем самым идентифицируются уязвимые места в обработке данных.
Существуют также сканирование уязвимостей и тестирование на проникновение — анализ существующей инфраструктуры и приложений на предмет известных уязвимостей операционной системы, баз данных или конфигурации сети, и мониторинг безопасности на предмет обнаружения аномальной активности или потенциальных инцидентов безопасности.
CNews: Какова роль тестирования в обеспечении безопасности ПО?
Сергей Грачев: Роль тестирования в обеспечении безопасности ПО является критической и имеет несколько важных аспектов. Первый — непосредственное обнаружение уязвимостей и ошибок безопасности в программном обеспечении в целях их дальнейшего устранения. Второй — оценка уровня рисков, связанных с обнаруженными уязвимостями. Позволяет приоритезировать и фокусироваться на наиболее ключевых проблемах безопасности, требующих немедленного реагирования.
Третий — улучшение безопасности. Результаты тестирования помогают команде разработки улучшить уровень безопасности ПО, принять соответствующие меры для исправления проблем, внедрения безопасных практик и в целом повысить безопасность приложения. И четвертый — соответствие нормативным требованиям. Тестирование позволяет убедиться, что программное обеспечение соответствует нормативным требованиям безопасности.