Контакты
Подписка
МЕНЮ
Контакты
Подписка

Общедоступные средства защиты ПО

Общедоступные средства защиты ПО

В рубрику "Оборудование и технологии" | К списку рубрик  |  К списку авторов  |  К списку публикаций

Общедоступные средства защиты ПО

Несмотря на то, что статический анализ кода (САК) не является новой технологией, в последнее время он получил большое распространение и принимается в качестве неотъемлемой части разработки ПО для улучшения его качества, надежности и безопасности.
Рагудип Каннавара
Архитектор систем безопасности, подразделение программного обеспечения и услуг, Intel Corporation, США

Шаги в правильном направлении

Вызовы и компромиссыИнструменты САК, как правило, производят большое количество ложных срабатываний. Анализ и устранение ложноположительных срабатываний может быть непростой задачей как для обеспечения качества, так и развития, особенно когда проекты сталкиваются с серьезными ограничениями ресурсов, времени и бюджета. Кроме того, ложные срабатывания могут оказаться как реальными срабатываниями, так и воспринимаемыми как ложноположительные. Кроме того, конкурирующие производители САК, как правило, находят совершенно разные проблемы в общей кодовой базе, и перекрытие становится практически незаметным, включив, как правило, три различных инструмента для сравнения. Однако, как только ложноположительные срабатывания устраняются, команде разработчиков необходимо зафиксировать подлинные проблемы. Иногда это может потребовать исправлений, которые должны быть доведены до сведения персонала сопровождения ПО с открытым исходным кодом до выхода продукта в свет на основе лицензионных условий.

Разработка ПО требует специальной команды профессионалов, чьи должностные обязанности также включают и разработку инструментов статического анализа для ПО на стадии разработки, в среде гибкой разработки либо в традиционной каскадной модели. Инструменты САК способны анализировать код, разработанный с использованием нескольких языков программирования и фреймворков, которые включают и не ограничиваются Java, .Net и C/C++. Если цель заключается в разработке приложения или критически важного встроенного ПО, инструменты статического анализа оказываются одними из первых шагов к выявлению и устранению ошибок в ПО и имеют решающее значение для общего успеха проекта. Ясно, что, как правило, существуют коммерческие интересы и/или вопросы безопасности, связанные с лицензированием и дорогими инструментами статического анализа при попытках разработки ПО.

Открытыми, неисследованными остаются бесконечные области открытого исходного кода, который, как правило, был хорошо проверен при первичном и повторном использовании общедоступного ПО в бессчетном количестве приложений в многочисленных научных и коммерческих учреждениях по всему миру. "Открытый" указывает, что постоянно добавляется новый исходный код. "Неизведанный" свидетельствует об отсутствии определенного, беспристрастного объекта, который статически анализирует каждую строку общедоступного кода. Даже при том, что такие компании, как Klocwork или Cove-rity, взяли на себя инициативу в этом направлении, скорость, с которой новые версии ПО с открытым исходным кодом выходят или обновляются, представляется явной преградой. Финансовый кризис и сокращения IТ-бюджетов привели к началу использования общедоступного ПО в коммерческих приложениях, например, Linux, Apache, MySQL или OpenSSL. Кроме того, разработки таких организаций, как Агентство национальной безопасности, программы Центра проверенного ПО, которые представили в 2010 г. изучение инструментов статического анализа для C/C ++ и Java с использованием таких доступных тестов, как тестовый набор Juliet, являются шагом в правильном направлении, но даже тогда нет абсолютных показателей для выбора того или иного инструмента САК.

Защита от несанкционированного доступа

С тех пор как процесс усиленной защиты от несанкционированного доступа стал крайне сложным и трудозатратным, одну сторону решения этой проблемы могли бы определять критические компоненты (компоненты с историей уязвимости) проекта. Для этого необходимо сосредоточить усилия САК, например, на компонентах сети. Другой возможный способ – сосредоточение на компонентах повышенной сложности. Файлы повышенной сложности имеют более высокую вероятность ошибок при фиксации, усилении или рефакторинге исходного кода. В большинстве проектов ПО с открытым исходным кодом часть работы в области развития предпринимается с помощью общения через рассылки. Разработчики по всему миру имеют различные навыки разработки ПО. Это сложная задача для любого органа, отвечающего за координацию работ в области развития. Сосредоточение САК на критических или высшей сложности компонентах может спасти бюджет, время и ресурсы путем сужения сферы обзора. Кроме того, могут потребоваться проверка кода, фаззинг и другие мероприятия проверки безопасности для повышения безопасности ПО.

Подведем итоги

Таким образом, защита открытого исходного кода, который включен в коммерческое ПО, так же важна, как защита проприетарного. Наряду с тщательно проверяемым недавно разработанным фирменным ПО с использованием САК также очень желательно включать статический анализ любого открытого исходного кода для продукта в процессе общей проверки ПО и выполнять официальный обзор необходимого открытого исходного кода, прежде чем принимать его. Не используя непосредственно двоичный код, загрузив источник и построив его в контрольных точках, проект будет защищен от любых изменений. Если это так, почему бы не включить этот же открытый исходный код в статический анализ наряду с недавно разработанным? То, что рано или поздно ошибка может быть обнаружена, хорошо понимают в индустрии ПО. Дешевле это исправить, избегая дорогостоящих судебных исков или непоправимого ущерба репутации компании. Во многих отношениях это дополнительное усилие имеет решающее значение в улучшении общего качества программного продукта, его надежности и безопасности.

Опубликовано: Журнал "Information Security/ Информационная безопасность" #4, 2014

Приобрести этот номер или подписаться

Статьи про теме