Деятельность любой крупной организации во многом зависит от функционирования корпоративных приложений, автоматизирующих ключевые бизнес-процессы. Такие приложения содержат критичную для организации информацию (финансовую отчетность, данные о клиентах, персональные данные сотрудников и т. д.), поэтому они становятся одной из основных мишеней для атак злоумышленников. Последствиями таких атак могут стать сбои, простой информационных сервисов, потеря или утечка критичной информации — все это грозит прямыми финансовыми потерями, а также ущербом для репутации организации. Источником рисков в большинстве случаев являются ошибки и уязвимости, которые появились в ПО на разных этапах его разработки, внедрения и настройки.

Конечно, в настоящее время существуют и широко используются различные техники безопасного программирования, однако их применение не позволяет исключить влияние человеческого фактора. Также известны случаи, когда организации имели дело с преднамеренными злоумышленными программными закладками. Чтобы снизить риски возникновения уязвимостей в корпоративных бизнес-приложениях, организации следует внедрить процесс их поиска и устранения, отвечающий особенностям используемых приложений и необходимому уровню снижения риска.

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

Чаще всего можно наблюдать один из следующих подходов.

1. Проведение периодических внешних тестирований на проникновение (Penetration Tests)

Данная услуга широко распространена на рынке ИБ и является возможным решением проблемы для организаций, не имеющих внутренних ресурсов для выявления уязвимостей собственными силами. Тестированию обычно подвергается уже внедренное приложение, результаты тестирования являются лишь “срезом” на конкретный момент времени и могут не выявить все имеющиеся уязвимости.

2. Периодическое внутреннее тестирование на предмет уязвимостей

Данное тестирование осуществляются силами внутренних экспертов либо “вручную”, либо с помощью специальных решений для проведения аудита. Такие внутренние тестирования чаще всего проводятся непосредственно перед внедрением, а количество выявленных уязвимостей зависит от используемого инструмента и квалификации экспертов.

Общими недостатками обоих подходов является то, что выявление уязвимостей происходит на поздних стадиях разработки или на этапах внедрения и эксплуатации, когда процесс их устранения сопряжен с существенными затратами, а также отсутствие взаимодействия со специалистами, участвующими в разработке приложения.

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

Особенно актуальным такой подход является для организаций, которые должны соблюдать требования стандартов в части обеспечения безопасности корпоративных приложений (например, PCI DSS), а также для тех, кто хочет снизить расходы на устранение уязвимостей на разных стадиях жизненного цикла ПО.

Существуют две основные технологии поиска уязвимостей в приложениях:

  • статический анализ безопасности приложений (Static Application Security Testing, SAST), заключающийся в анализе исходного кода приложения на предмет уязвимостей, которые могут быть реализованы;
  • динамический анализ безопасности приложений (Dynamic Application Security Testing, DAST), заключающийся в тестировании приложения на предмет уязвимостей в процессе его работы в среде функционирования с учетом всех сопутствующих факторов.

У этих технологий есть свои сильные и слабые стороны, связанные с ограничениями по типам поддерживаемых приложений, с этапами разработки, на которых они могут применяться, с возможностями точного определения причин возникновения уязвимостей и т. д. Несмотря на это, их применение является хорошей практикой для снижения потерь от ошибок в приложениях.

На текущий момент на рынке SAST/DAST присутствует широкий спектр как решений, так и сервисов различных вендоров. От простых статических анализаторов, предназначенных для поиска программных закладок, до модульных масштабируемых решений для анализа исходного кода. От простых инструментов для проведения тестирований на проникновение до сложных модульных централизованных решений для осуществления одновременного динамического анализа большого количества приложений.

Критериями выбора конкретного решения или сервиса могут стать ответы на следующие вопросы:

  • каково происхождение приложений, которые будут анализироваться (собственная разработка, open source, сторонняя разработка, коммерческое ПО)?
  • приложения какого типа будут анализироваться (клиент-серверные, Web-приложения, мобильные приложения и т. д.)?
  • какие требования регуляторов в части обеспечения безопасности разработки приложений необходимо соблюдать?
  • с какой периодичностью предполагается проводить анализ?
  • кто будет конечным пользователем решения внутри организации (разработчики ПО, специалисты по ИБ, внутренние аудиторы и т. п.)?

Решение или сервис, выбранные с учетом всех вышеперечисленных особенностей, позволит не просто выявить имеющиеся ошибки и уязвимости, но и снизить риски прямых финансовых потерь от последствий реализации уязвимостей в бизнес-приложениях, а также снизить затраты на их устранение за счет оптимизации процессов управления уязвимостями приложений внутри организации.

СПЕЦПРОЕКТ КОМПАНИИ “ИНФОРМЗАЩИТА”