Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
lua-resty-waf — Высокопроизводительный WAF, построенный на стеке OpenResty | Kitploit
Инструменты/GitHubGitHub/p0pr0ck5/lua-resty-waf
Оборонительные ИнструментыВеб-безопасностьБезопасность APIАнти-БотТоп в Анти-Бот №8
GitHubp0pr0ck5/lua-resty-waf

lua-resty-waf

Высокопроизводительный WAF, построенный на стеке OpenResty

Репозиторий
1.3k305532 лет назадПроверено Kitploit

Популярное

Смотреть все →

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

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Название

lua-resty-waf - высокопроизводительный WAF, построенный на стеке OpenResty

Содержание

  • Название
  • Статус
  • Описание
  • Требования
  • Производительность
  • Установка
  • Синопсис
  • Публичные функции
    • lua-resty-waf.load_secrules()
    • lua-resty-waf.init()
  • Публичные методы
    • lua-resty-waf:new()
    • lua-resty-waf:set_option()
    • lua-resty-waf:set_var()
    • lua-resty-waf:sieve_rule()
    • lua-resty-waf:exec()
    • lua-resty-waf:write_log_events()
  • Опции
    • add_ruleset
    • add_ruleset_string
    • allow_unknown_content_types
    • allowed_content_types
    • debug
    • debug_log_level
    • deny_status
    • disable_pcre_optimization
    • event_log_altered_only
    • event_log_buffer_size
    • event_log_level
    • event_log_ngx_vars
    • event_log_periodic_flush
    • event_log_request_arguments
    • event_log_request_body
    • event_log_request_headers
    • event_log_ssl
    • event_log_ssl_sni_host
    • event_log_ssl_verify
    • event_log_socket_proto
    • event_log_target
    • event_log_target_host
    • event_log_target_path
    • event_log_target_port
    • hook_action
    • ignore_rule
    • ignore_ruleset
    • mode
    • nameservers
    • process_multipart_body
    • req_tid_header
    • res_body_max_size
    • res_body_mime_types
    • res_tid_header
    • score_threshold
    • storage_backend
    • storage_keepalive
    • storage_keepalive_timeout
    • storage_keepalive_pool_size
    • storage_memcached_host
    • storage_memcached_port
    • storage_redis_host
    • storage_redis_port
    • storage_zone
  • Обработка фаз
  • Включённые наборы правил
  • Определения правил
  • Примечания
    • Сообщество
    • Pull Requests
  • Дорожная карта
  • Ограничения
  • Лицензия
  • Ошибки
  • См. также

Статус

Build Status Codewake CII Best Practices

ПРИМЕЧАНИЕ: lua-resty-waf по сути заброшен. Этот проект был полезен в то время, когда ModSecurity для Nginx не был жизнеспособным вариантом; сейчас это уже не так. В 2020 году была попытка оживить проект, но у меня нет ресурсов, чтобы завершить её; эта работа частично выполнена в ветке redux.

Описание

lua-resty-waf - это обратный прокси-WAF, построенный на стеке OpenResty. Он использует Nginx Lua API для анализа информации HTTP-запросов и обработки на основе гибкой структуры правил. lua-resty-waf распространяется с набором правил, имитирующим ModSecurity CRS, а также с несколькими пользовательскими правилами, созданными в ходе первоначальной разработки и тестирования, и небольшим виртуальным набором исправлений для новых угроз. Кроме того, lua-resty-waf распространяется с инструментарием для автоматического перевода существующих правил ModSecurity, что позволяет пользователям расширять реализацию lua-resty-waf без необходимости изучать новый синтаксис правил.

lua-resty-waf был первоначально разработан Робертом Папроцки (Robert Paprocki) для его магистерской диссертации в Western Governor's University.

Требования

lua-resty-waf требует несколько сторонних модулей resty lua, хотя все они поставляются вместе с lua-resty-waf, и поэтому их не нужно устанавливать отдельно. Рекомендуется устанавливать lua-resty-waf на систему с программным пакетом OpenResty; lua-resty-waf не тестировался на платформах, собранных с использованием отдельных пакетов исходного кода Nginx и модуля Nginx Lua.

Для оптимальной производительности компиляции регулярных выражений рекомендуется собирать Nginx/OpenResty с версией PCRE, поддерживающей JIT-компиляцию. Если ваша ОС не предоставляет такой версии, вы можете собрать PCRE с поддержкой JIT непосредственно в вашу сборку Nginx/OpenResty. Для этого укажите путь к исходному коду PCRE в флаге конфигурации --with-pcre. Например:```sh

./configure --with-pcre=/path/to/pcre/source --with-pcre-jit

Вы можете загрузить исходный код PCRE с [сайта PCRE](http://www.pcre.org/). Также смотрите этот [пост в блоге](https://www.cryptobells.com/building-openresty-with-pcre-jit/) с пошаговым руководством по сборке OpenResty с библиотекой PCRE с поддержкой JIT.

## Производительность

lua-resty-waf проектировался с учётом эффективности и масштабируемости. Он использует асинхронную модель обработки Nginx и эффективную архитектуру, чтобы обрабатывать каждую транзакцию как можно быстрее. Нагрузочное тестирование показало, что развёртывания, использующие все предоставляемые наборы правил, которые призваны имитировать логику ModSecurity CRS, обрабатывают транзакции примерно за 300–500 микросекунд на запрос; это соответствует производительности, заявленной для [WAF Cloudflare](https://www.cloudflare.com/waf). Тесты проводились на разумном аппаратном стеке (CPU E3-1230, 32 ГБ ОЗУ, 2 x 840 EVO в RAID 0), достигая примерно 15 000 запросов в секунду. Более подробную информацию см. в [этом посте в блоге](http://www.cryptobells.com/freewaf-a-high-performance-scalable-open-web-firewall).

## Установка

Предоставляется простой Makefile:```
# make && sudo make install

Как вариант, установите через Luarocks:```

luarocks install lua-resty-waf

lua-resty-waf использует пакетный менеджер [OPM](https://github.com/openresty/opm), доступный в современных дистрибутивах OpenResty. Клиентские инструменты OPM требуют, чтобы инструмент командной строки `resty` был доступен в переменной окружения `PATH` вашей системы.

Обратите внимание, что по умолчанию lua-resty-waf работает в режиме SIMULATE, чтобы немедленно не влиять на приложение; пользователи, желающие включить действия правил, должны явно установить рабочий режим в ACTIVE.

## Synopsis```lua
http {
    init_by_lua_block {
        -- use resty.core for performance improvement, see the status note above
        require "resty.core"

        -- require the base module
        local lua_resty_waf = require "resty.waf"

        -- perform some preloading and optimization
        lua_resty_waf.init()
    }

    server {
        location / {
            access_by_lua_block {
                local lua_resty_waf = require "resty.waf"

                local waf = lua_resty_waf:new()
Скачать инструмент