RASP, или Runtime Application Self-Protection, — защитный механизм внутри runtime приложения, который наблюдает потенциально опасные операции и может вмешиваться в их выполнение.
Как работает
RASP получает контекст непосредственно в момент чувствительной операции. Он может сопоставить входные данные с вызовом SQL, файловой системы, интерпретатора команд или другого защищаемого API и применить заданную политику:
входные данные → опасная операция → проверка RASP → разрешение или блокировка
В зависимости от режима RASP регистрирует событие, блокирует операцию, прерывает запрос или передаёт сигнал во внешнюю систему мониторинга.
От каких атак способен защищать
RASP может снижать риск эксплуатации некоторых injection-атак, обхода путей, небезопасной десериализации и других атак, распознаваемых в поддерживаемом runtime-контексте.
Фактическая защита зависит от языка, интеграции, набора правил и выбранного режима реакции. Наличие RASP не доказывает, что приложение не содержит уязвимостей.
Ограничения
- механизм не исправляет дефект в коде и не заменяет secure development lifecycle;
- ложная блокировка может нарушить легитимный бизнес-сценарий;
- инструментирование и проверки добавляют эксплуатационную сложность и могут влиять на производительность;
- защита ограничена поддерживаемыми технологиями и известными инструменту опасными операциями;
- компрометация за пределами наблюдаемого runtime остаётся вне его контроля.
Где применять
RASP рассматривают как дополнительный защитный слой для работающего приложения, особенно когда важна реакция непосредственно в точке опасной операции. Перед блокирующим режимом правила обычно проверяют на реальном трафике в режиме наблюдения.
Пример инструмента
Contrast Protect реализует RASP внутри runtime приложения и может наблюдать либо блокировать атаки с учётом внутреннего потока данных и выполняемой операции.
Ключевая мысль: RASP наблюдает приложение изнутри и, в отличие от тестирующих подходов, может остановить опасное выполнение.