Самозащита приложений во время выполнения
Самозащита приложений во время выполнения (англ. runtime application self-protection, RASP) — технология обеспечения безопасности, использующая инструментирование во время выполнения программы для обнаружения и блокировки компьютерных атак на основе информации изнутри работающего программного обеспечения[1][2]. Эта технология отличается от традиционных рубежей защиты, таких как межсетевой экран, которые способны обнаруживать и блокировать атаки только на основании сетевой информации, не обладая контекстом происходящего внутри приложения[3][4]. Технология RASP повышает безопасность программного обеспечения посредством мониторинга входных данных и блокировки тех, которые могут быть использованы для атак, а также защищает среду выполнения от нежелательных изменений и подделки[5]. Приложения, защищённые с помощью RASP, в меньшей степени зависят от внешних устройств вроде межсетевых экранов для обеспечения защиты во время исполнения. При обнаружении угрозы RASP может предотвращать реализацию атаки и выполнять дополнительные действия, включая завершение пользовательской сессии, остановку приложения, уведомление специалистов по безопасности и отправку предупреждения пользователю[6][7]. Технологии RASP призваны устранить пробелы, остающиеся после тестирования безопасности приложений и контроля на границе сети, поскольку ни одно из них не обладает достаточной информацией о потоках данных и событий в реальном времени, чтобы предотвращать уязвимости, которые проходят этап проверки, либо блокировать новые угрозы, появившиеся после разработки[8]. Технология RASP значительно превосходит традиционные межсетевые экраны (WAF) в обнаружении атак нулевого дня. Это достигается за счёт поведенческого анализа и глубокого понимания контекста работы приложения изнутри, в то время как WAF опирается на сигнатурный анализ внешнего трафика и базы известных уязвимостей[9].[10][11] RASP стала отраслевым стандартом для крупных предприятий, на долю которых приходится 67,3 % рынка данной технологии. Она активно применяется в стратегиях эшелонированной защиты (англ. defense-in-depth) и является важным компонентом архитектуры нулевого доверия (англ. zero-trust)[12].
Реализация
Технология RASP может быть интегрирована в виде фреймворка или модуля, который работает совместно с кодом программы, её библиотеками и системными вызовами[5]. Также возможно внедрение RASP на уровне виртуализации[4]. RASP схожа с интерактивным тестированием безопасности приложений (IAST), при этом ключевое различие заключается в том, что IAST ориентирована на выявление уязвимостей в приложении, а RASP — на защиту от кибератак, использующих эти уязвимости или иные векторы атак[13].
Современные методы инструментирования позволяют обеспечивать безопасность без изменения исходного кода приложения. Для этого активно применяется технология eBPF, обеспечивающая глубокий мониторинг на уровне ядра операционной системы. В средах Kubernetes используется архитектура на базе DaemonSet, заменяющая традиционные sidecar-контейнеры, а также динамическое инструментирование (например, OpenTelemetry)[14][15]. Охват поддерживаемых языков программирования варьируется: платформы защиты имеют хорошую поддержку Java, .NET и Node.js, однако для Go, Rust и Python она остаётся ограниченной[16]. В бессерверных вычислениях (Serverless) применяется специфичная агентная защита, которая нативно интегрируется и инструментирует каждую функцию на уровне байт-кода[16].
В анализе угроз наблюдается переход от традиционных сигнатурных методов к интеллектуальному обнаружению аномалий. Для выявления отклонений применяются алгоритмы искусственного интеллекта и машинного обучения (AI/ML), а также поведенческий анализ. Для повышения прозрачности работы алгоритмов внедряются методы объяснимого искусственного интеллекта (XAI), что позволяет сократить время обнаружения и расследования инцидентов[17].
Варианты развёртывания
Системы самозащиты приложений во время выполнения могут быть развёрнуты в одном из двух режимов: мониторинга или защиты. В режиме мониторинга RASP-решение отслеживает атаки на веб-приложения, но не блокирует их. В режиме защиты система не только регистрирует, но и блокирует атаки на веб-приложения[18]. Режим защиты также используется для виртуального патчинга критических уязвимостей: система блокирует эксплойты на уровне вызова функций в реальном времени без изменения исходного кода[19][20]. Типичное время активации защиты составляет 5–10 минут на создание и применение правила виртуального патча[21].
Сферы применения
Технология RASP применяется для защиты различных типов приложений и архитектур:
- Защита API: RASP анализирует потоки данных и пути выполнения, блокируя такие угрозы, как SQL-инъекции, подделка межсерверных запросов (SSRF) и внедрение кода[22].[23].
- Мобильные приложения: технология используется для защиты от вмешательства в работу программы, обратного инжиниринга, использования эмуляторов, а также для обнаружения рутинга и хукинга[22].[23].
- Облачные и бессерверные среды (Cloud-native / Serverless): решения интегрируются с контейнерами и мультиоблачными инфраструктурами, обеспечивая видимость рабочих нагрузок и поддержку политик нулевого доверия (Zero Trust)[22].[23].
- Микросервисные архитектуры: интеграция RASP позволяет контролировать внутренний трафик и применять согласованные политики безопасности. При этом внедрение технологии в каждый микросервис может создавать накладные расходы на производительность и вызывать сложности с совместимостью[22].[24].
Эффективность
Технология RASP блокирует основные типы уязвимостей, включая SQL-инъекции, XSS, атаки типа Webshell и уязвимости нулевого дня (0-day). Процент предотвращённых атак зависит от конкретного решения: например, для фреймворка SecRASP он может достигать 100 %, тогда как для Baidu OpenRASP составляет 77,6 %.
Рынок и решения
Перспективные исследования
- Разработка «интегрированных» подходов, поддерживающих как защиту на этапе разработки, так и на этапе выполнения
- Изучение децентрализованных методов координации, планирования и оптимизации
- Анализ количественных и качественных методов оценки общей защищённости[28]
- Реализация обратной связи от RASP к инструментам SAST/DAST, при которой данные о попытках атак используются для приоритизации исправлений уязвимостей в бэклоге путём сопоставления атак с конкретными уязвимостями[29]