RedEyes logoRedEyes
Self-hosted inline WAF · v1.4.0

Читайте запрос так,
как его прочитает ваш backend.
И только потом решайте.

RedEyes — inline reverse-proxy файрвол веб-приложений. Он нормализует каждый запрос до той формы, которую приложение действительно выполнит, и затем объединяет над ней четыре движка детектирования. Всё работает целиком внутри вашей инфраструктуры.

0.00%
ложных срабатываний
на 1 121 легитимном запросе
100.00%
обнаружение атак
на 244 размеченных атаках
184
сигнатурных правил
у каждого — тест, доказывающий срабатывание

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

Проблема

Совпадение по шаблону — это не понимание.

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

Одна SQL-инъекция, четыре вида
  • Обычная' OR 1=1--Сигнатура ловит
  • Двойное кодирование%2527%20OR%25201%3D1Шаблон уже не совпадает
  • Разбита комментарием'/**/OR/**/1=1--Шаблон уже не совпадает
  • Регистр + charset%27%20oR%201%3d1%2d%2dШаблон уже не совпадает

Все четыре доходят до одной и той же тавтологии в базе. Буквальный шаблон ловит только первую.

raw%2527%20OR%25201%3D1
pct-decode×1%27 OR%201=1
pct-decode×2' OR 1=1
nfkc' OR 1=1
lowercase' or 1=1

Ужесточите — утонете в шуме

Расширьте правила, чтобы поймать варианты, и начнёт блокироваться легитимный трафик. Команда научится игнорировать алерты — а это то же самое, что их отсутствие.

Ослабьте — пропустите атаку

Сузьте ради тишины — и закодированный payload пройдёт насквозь. Статической настройки, которая одновременно безопасна и тиха, не существует.

Тело часто не проверяется

Тела сверх лимита размера, в нестандартной кодировке или сжатые нередко передаются вообще без инспекции — мимо файрвола, прямо в приложение.

Как это работает

Четыре этапа, одно решение.

Это не один набор правил. Проверенный временем открытый движок (Coraza / OWASP CRS) работает рядом с нашим нормализатором, семантическим разборщиком SQL/XSS и поведенческим скорером — и ни один из них не решает в одиночку.

01Перехват

Inline, перед приложением.

RedEyes завершает соединение до того, как его увидит ваш backend. Одно место для нормализации, одно для решения, одно для журнала.

02Нормализация

Привести к исполняемой форме.

Многопроходное URL-, HTML-entity- и base64-декодирование, удаление комментариев, свёртка кодировок и канонизация пути — повторяются, пока запрос не перестанет меняться. Детекторы видят не орфографию атакующего, а только смысл.

03Детектирование

Оценивают четыре движка.

Отобранные сигнатуры, OWASP Core Rule Set через Coraza, семантический разборщик SQL/XSS libinjection и поведенческий скорер аномалий. Каждый возвращает оценку, а не вердикт.

04Решение

Подтвердить, затем действовать.

Взвешенное объединение сводит оценки, а гейт подтверждения требует согласия перед блокировкой — так одно шумное правило не заблокирует ваших клиентов само по себе. Точным сигнатурам с высокой уверенностью разрешено блокировать в одиночку.

Цифры

Каждое число здесь — гейт, который останавливает наш собственный релиз.

Вендоры безопасности публикуют процент обнаружения. Почти никто не публикует рядом число ложных срабатываний и то, что происходит со сборкой при регрессе. Это пороги в нашем CI: если изменение пересекает любой из них, оно не выходит — кто бы его ни написал.

ИзмеряемСейчасГейт не пропустит нижеНа чём измерено
Ложные срабатывания0.00%0.00%1 121 легитимный запрос
Обнаружение атак100.00%100.00%244 размеченные атаки
Блокируется сразу98.36%95.00%244 размеченные атаки
Регрессии по CVE255 кейсов100% должны оставаться пойманными23 отслеживаемые CVE
Покрытие сигнатур184 / 184срабатывание каждого правила доказанопо одному кейсу на правило
Каждый размеченный кейс по оценке, которую дал движок
benign1,121
allow 729log 375challenge 17block 0
attack244
allow 0log 2challenge 2block 240
0.000.20 log0.60 challenge0.85 block1.00

1 121 легитимный и 244 атакующих кейса, размещённые по сводной оценке. Два легитимных кейса оказываются ПРАВЕЕ линии блокировки — один на 0.9072 — и ни один не заблокирован. Оценка сама по себе здесь дала бы ложное срабатывание; для блокировки нужно ещё и подтверждение: два независимых детектора, либо точная сигнатура, либо семантический разборщик выше 0.97. Именно этот гейт делает долю 0.00%, а не оценка.

Проверьте сами
$ go run ./cmd/wafbench -corpus bench/corpus.json \
      -gate -max-fp 0 -min-recall 95 -min-detect 100

  FP            0.00%  (max 0.00%)
  block recall  98.36%  (min 95.00%)
  detect recall 100.00%  (min 100.00%)
  GATE PASS

Корпуса и запускатор гейтов поставляются в нашем дереве разработки. Та же команда выполняется и в CI, и на ноутбуке.

Есть ещё храповик: список известных ложных срабатываний может только сокращаться. Изменение, добавляющее хотя бы одно, роняет сборку, даже если все остальные числа улучшились.

Возможности

Что на самом деле стоит на пути запроса.

Всё в этом списке применяется в data plane, а не просто настраивается в панели. Мы проверили.

Детектирование

Глубокая нормализация

Многопроходное декодирование, удаление комментариев, свёртка кодировок и канонизация пути — пока запрос не достигнет неподвижной точки.

Гибридное объединение

Сигнатуры + OWASP CRS + libinjection + поведенческие аномалии, сведённые под гейтом подтверждения.

Инспекция тела запроса

Тело буферизуется в пределах лимита и разбирается так, как его разбирает backend — JSON, form, multipart, XML.

Виртуальный патчинг

Корпус регрессий по CVE с реестром покрытия — закрытый класс не может тихо открыться обратно.

Применение

Три режима, по сайтам

shadow записывает, что сделал бы; normal отвечает 403; hardened добавляет бан по IP. Это решение по каждому сайту, а не глобальный тумблер.

Баны на уровне ядра

Отдельный привилегированный агент применяет drop-правила nftables. У самого проксирующего процесса, смотрящего в интернет, повышенных прав нет.

Дедлайн инспекции

Бюджет времени на запрос. Если инспекция не успевает, применяется настроенное безопасное поведение, и событие так и записывается.

Ограничение частоты

Лимиты запросов по сайтам, применяются до дорогих этапов инспекции.

За пределами payload

DLP в ответах

Ответы upstream сканируются на номера карт, SSN, приватные ключи, облачные учётные данные и JWT — находки хранятся замаскированными, никогда в сыром виде.

TLS-отпечатки

Списки разрешения и запрета JA3/JA4 работают на этапе handshake — до того, как разобран хоть один байт HTTP.

Применение схемы API

Приложите спецификацию OpenAPI и запустите её в режиме off, log или enforce — проходят только задокументированные пути, методы и параметры.

Аудируемые решения

Каждый вердикт пишется вместе с доказательством: какой слой сработал, на какой нормализованной единице и с какой оценкой.

Ограничения

Чего RedEyes не делает.

Продукт безопасности, который перечисляет только сильные стороны, предлагает вам искать пробелы в проде. Вот наши — заранее.

Сегодня не поставляется ни одна ML-модель.

Две модели-кандидата были оценены, и обе отклонены — одна дала 97.5% ложных срабатываний на реальном браузерном трафике. Хук в рантайме есть и подключён к пустой реализации. Лучше не поставить ничего, чем поставить классификатор, который помечает ваших пользователей.

Hardened меняет точность на охват.

В режиме hardened полоса challenge поднимается до блокировки. На нашем легитимном корпусе это отклоняет 1.52% нормальных запросов и 99.18% атак. Эти 17 случаев отслеживаются поимённо, и список может только сокращаться. Normal остаётся на 0%.

Второй глаз ещё не построен.

RedEyes назван в честь двух глаз: один на веб-слое, другой на слое AI/LLM. В проде только первый. Второй — направление, и мы не назовём его возможностью, пока он не проверит реальный запрос.

Часть правил намеренно не может блокировать в одиночку.

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

Установка

Он работает в вашей инфраструктуре. Целиком.

Нет облака RedEyes, нет включённой по умолчанию телеметрии и не требуется ни одного исходящего вызова, чтобы защищать трафик. Прокси, панель и хранилища поднимаются внутри вашей сети.

УстановкаПоследний релиз: v1.4.0 · 2026-10-12
$ tar -xzf redeye-selfhosted-v1.4.0.tar.gz
$ cd redeye-selfhosted-v1.4.0/deploy
$ ./install.sh http://your-backend:8080

Одна команда поднимает прокси, панель, Postgres, ClickHouse и Redis. Панель слушает loopback; в интернет смотрит только прокси.

Обновление безопасности и стабильности — рекомендуется обновиться. Предыдущие сборки устарели.

Подходит для air-gap

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

Ваш трафик остаётся вашим

Запросы, тела и находки не покидают машины, которыми управляете вы. В пути данных нет вендора, которому нужно доверять, которого нужно аудировать или с которого спрашивать.

Сначала наблюдайте

Каждый новый сайт стартует в shadow. Вы увидите, что именно было бы заблокировано, на своём собственном трафике — до того, как что-либо заблокировано.

Проверено от начала до конца

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

О названии

Два глаза. Один шлюз.

Один глаз на веб-слое — поставлен, в проде, и это тема данной страницы. Второй — на слое AI и LLM: направление, в которое продукт построен расти, и пока не возможность. Мы предпочитаем сразу говорить, что есть что.

В проде

Веб-безопасность

В планах — не поставлено

LLM-безопасность

Цена

Self-hosted, лицензия на установку.

RedEyes — коммерческий продукт, который продаётся напрямую. Расскажите форму вашей установки — сколько сайтов, какой трафик, есть ли air-gap — и мы посчитаем под неё, а не под тариф, который почти подходит.

В каждую установку входит
  • Все четыре движка детектирования — ни одна возможность не придержана для старшего тарифа
  • Режимы shadow, normal и hardened для каждого сайта
  • DLP в ответах, TLS-отпечатки и применение схемы OpenAPI
  • Панель, журнал аудита и живая лента атак
  • Обновления сигнатур и корпуса CVE
  • Помощь с установкой и прямая связь с инженерами, которые его сделали

Один шлюз перед всем сразу.

Расскажите, что вы защищаете. Если RedEyes для этого неподходящий инструмент, мы так и скажем — этот ответ дешевле для нас обоих, чем провалившийся пилот.

Вы пишете как
Как с вами связаться *

Заполните хотя бы одно поле — остальные два необязательны.

Мы используем эти данные только чтобы ответить вам.