В попытке сэкономить компании, выбирая между коммерческим программным обеспечением и бесплатным, отдают предпочтение второму. Это касается в том числе анализаторов безопасности кода программного обеспечения. Даниил Чернов, директор Центра Solar appScreener компании «Ростелеком-Солар», рассказал о том, почему экономия на анализаторах кода может в итоге привести к неожиданным расходам.
Зачем проверяют код
Задача анализа кода касается как компании, которые разрабатывают и поставляют на рынок программное обеспечение, так и те компании, которые сами пользуются чьим-то софтом или разрабатывают его для внутреннего пользования. В первом случае выпуск ПО с уязвимостями приводит к тому, что киберугрозам подвергаются пользователи, которые приобретают этот софт. Сам же вендор рискует собственной репутацией, доверием клиентов и, как следствие, доходами от продажи ПО.
Компании, которые сами софт не разрабатывают или разрабатывают его для себя, благодаря регулярным проверкам используемого ПО на уязвимости значительно повышают свою устойчивость к киберугрозам. Бреши в программном обеспечении позволяют злоумышленникам совершать успешные атаки на корпоративную инфраструктуру, похищать конфиденциальные данные, внедрять майнеры и шифровальщики. Все это способно парализовать на какое-то время деятельность компании и привести к серьезным финансовым потерям.
Качество алгоритмов
В большинстве случаев бесплатные решения для проверки кода содержат относительно простые алгоритмы, которые осуществляют обычный текстовый поиск по фрагментам кода и ищут совпадения с базой. Большинство угроз таким способом найти не удастся. Так, есть сложные уязвимости, части которых находятся в разных местах кода. Чтобы их обнаружить, нужны более сложные алгоритмы, например taint-анализ, который отслеживает распространение по программе данных, полученных из внешнего источника.
Еще один важный момент, связанный с качеством алгоритмов поиска, – борьба с ложными срабатываниями. Все найденные уязвимости нужно верифицировать, и чем больше ложных срабатываний, тем больших трудозатрат требует проверка. В итоге экономия обернется потерями: рабочее время сотрудников ИТ-подразделения будет уходить на постоянную верификацию выявленных ошибок. В полноценном коммерческом продукте для поиска уязвимостей и принятия решения о том, что она действительно есть в коде, используются технологии значительно более высокого уровня, в том числе задействованы технологии, основанные на математических теориях. Кроме того, в хорошем SAST есть возможность гибкой настройки фильтров, позволяющих найти баланс для снижения числа ложных срабатываний и пропусков уязвимостей.
Более сложные алгоритмы и применяющиеся в анализаторе технологии – результат работы большой команды разработчиков, архитекторов, инженеров, математиков, которую может себе позволить только крупный вендор. Соответственно, чтобы окупить вложения в разработку серьезного продукта, тот просто не может себе позволить распространять свой софт бесплатно. Поэтому даже в случае с теми полноценными анализаторами, которые якобы предлагаются бесплатно, речь обычно идет об урезанном функционале. А за получение доступа к полной версии со всеми возможностями все равно придется платить.
Бинарный анализ
Часто бывает, что в компании используется программное обеспечение, исходный код которого по той или иной причине недоступен, но при этом есть сомнения в безопасности софта. На помощь может прийти SAST, умеющий проверять исполняемые файлы. Для этого используются технологии, позволяющие на основе бинарного кода восстановить исходный, после чего проверить его на уязвимости.
Кроме того, анализ бинарного кода позволяет выявить уязвимости, появившиеся в ПО по вине компилятора – программы, которая преобразует исходный код в машинный. Так как по своей сути компилятор – тоже софт, который тоже может содержать ошибки. А они в итоге скажутся на безопасности скомпилированного в нем ПО. Поэтому даже при наличии доступа к исходному коду такие уязвимости можно обнаружить только с помощью бинарного анализа.
Очевидно, что подобные технологии также могут быть доступны только в продвинутом коммерческом продукте по тем же самым причинам, которые были описаны выше.
Актуальность баз
Еще один из аспектов, которые отличают коммерческие анализаторы от бесплатных, – своевременное обновление баз и регулярное добавление новых правил поиска уязвимостей. Обычно вендоры, разрабатывающие SAST-решения, обладают серьезной экспертизой в сфере информационной безопасности и получают самую актуальную информацию по киберугрозам из разных источников. Это позволяет им максимально оперативно реагировать на появление новых брешей и векторов атак.
В случае с бесплатными решениями добавление новых правил зависит от энтузиастов, которые занимаются поддержкой и обновлением анализатора. В отличие от вендора, который выпускает коммерческий продукт, у них нет обязательств перед пользователями. Соответственно, в бесплатном решении правила поиска для тех или иных свежих уязвимостей могут отсутствовать или появляться там с большой задержкой. А новые угрозы, связанные с ошибками программного кода, в современном мире выявляются регулярно.
Удобство для пользователя
Чтобы работать с некоторыми бесплатными анализаторами, нужно хорошо разбираться в коде, обладать навыками разработчика, причем быть знакомым как минимум с несколькими языками программирования. Но контроль безопасности используемого или создаваемого в компании софта часто входит в обязанности ИБ-подразделения, у сотрудников которого обычно нет опыта разработки ПО.
С этой точки зрения SAST должен не только подсвечивать найденные уязвимости, но и давать четкое представление об уровне угрозы и способах ее устранения. Вендоры коммерческих анализаторов отталкиваются от потребностей целевой аудитории продукта. Они заинтересованы в том, чтобы сделать понятный и удобный интерфейс анализатора, с которым смогут работать не только разработчики, но и специалисты по информационной безопасности.
Кроме того, вендоры после внедрения своих продуктов продолжают контактировать со своими заказчиками, собирают и обрабатывают обратную связь от них, а затем вносят изменения, которые востребованы пользователями. Бесплатные решения чаще существуют в отрыве от пользовательской аудитории. В случае с open-source-анализаторами (с открытым исходным кодом) доработка возможна силами самих пользователей, но для этого нужно обладать навыками разработчика.
И еще один момент, который связан с развитием продукта и очень важен для анализа кода ПО, – это возможность интегрировать SAST в различные корпоративные системы, среды разработки. В отличие от создателей бесплатных решений вендор, выпускающий коммерческий продукт, заинтересован в увеличении аудитории за счет расширения интеграционных возможностей анализатора.
Из всего сказанного выше можно сделать вывод, что использование любого решения для анализа программного кода лучше, чем его полное отсутствие. Чтобы выстроить действительно эффективные процессы проверки ПО на уязвимости, необходим коммерческий анализатор, который использует продвинутые технологии поиска угроз, регулярно обновляется и развивается, учитывает потребности пользователей. Несмотря на кажущуюся экономию, open-source- и бесплатные решения могут привести к бо́льшим расходам: потребуются ресурсы высококвалифицированных ИТ-сотрудников, в том числе разработчиков, которые смогут обслуживать подобные продукты. А пропущенные серьезные уязвимости могут повлечь за собой еще более крупные финансовые потери.
Партнерский материал
![](https://orenburg.media/wp-content/uploads/2023/11/12342123412-700x241.jpg)
![](https://orenburg.media/wp-content/uploads/2022/07/Viber-04-01.jpg)