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

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

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

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

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

Категории

Все категории
Loading categories
Gixy-Next — Gixy-Next: Сканер безопасности конфигурации NGINX и проверка производительности | Kitploit
Инструменты/GitHubGitHub/megamansec/gixy-next
Статический анализСканеры уязвимостейАудит конфигурацииВеб-безопасностьБезопасность облачных средDevSecOpsАппаратная БезопасностьНеправильная Конфигурация
GitHubmegamansec/gixy-next

Gixy-Next

Gixy-Next: Сканер безопасности конфигурации NGINX и проверка производительности

Репозиторий
184417 дней назадПроверено Kitploit

Популярное

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

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

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

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

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

Gixy-Next: NGINX Configuration Security Scanner for Security Audits

Обзор

Gixy-Next Mascot Logo

Gixy-Next (Gixy) — это сканер безопасности конфигурации NGINX и инструмент для усиления защиты с открытым исходным кодом, который статически анализирует ваш nginx.conf и выявляет ошибочные настройки безопасности, пробелы в защите и типичные проблемы производительности до того, как они попадут в продакшн. Это активно поддерживаемый форк Gixy от Yandex. Исходный код Gixy-Next доступен на GitHub.

Gixy-Next также можно запустить в браузере на этой странице. Загрузка не требуется; вы можете проверить свои конфигурации на сайте (локально, с использованием WebAssembly).

Быстрый старт

Gixy-Next (CLI-инструмент gixy или gixy-next) распространяется на PyPI. Вы можете установить его с помощью pip или uv:

root@kitploit:~
# pip
pip3 install gixy-next
# uv
uv pip install gixy-next

Затем вы можете запустить его:

root@kitploit:~
# gixy по умолчанию читает /etc/nginx/nginx.conf
gixy
# Но вы также можете указать путь к конфигурации
gixy /opt/nginx.conf

Вы также можете экспортировать свою конфигурацию NGINX в единый файл дампа (см. nginx -T Live Configuration Dump):

root@kitploit:~
# Выгружает полную конфигурацию NGINX в один файл (включая все include)
nginx -T > ./nginx-dump.conf
# Проверьте дамп где угодно (или через stdin):
gixy ./nginx-dump.conf
# или
cat ./nginx-dump.conf | gixy -

Веб-сканер

Вместо загрузки и локального запуска Gixy-Next вы можете воспользоваться этой веб-страницей и проверить конфигурацию из вашего веб-браузера (локально, с использованием WebAssembly).

Сканирование с помощью Docker

Gixy-Next доступен в виде Docker-образа на Docker Hub или в GitHub Registry.

Проверьте локальный файл конфигурации, смонтировав его в контейнер:

root@kitploit:~
# Используйте Github Registry
docker run --pull=always --rm -v "$PWD/nginx.conf:/nginx.conf:ro" ghcr.io/megamansec/gixy-next /nginx.conf
# Или Docker Hub
docker run --pull=always --rm -v "$PWD/nginx.conf:/nginx.conf:ro" megamansec/gixy-next /nginx.conf

Проверьте дамп активной конфигурации NGINX:

root@kitploit:~
# Выгружает полную конфигурацию NGINX в один файл (включая все include)
nginx -T > ./nginx-dump.conf
# Используйте Github Registry
docker run --pull=always --rm -v "$PWD/nginx-dump.conf:/nginx-dump.conf:ro" ghcr.io/megamansec/gixy-next /nginx-dump.conf
# Или Docker Hub
docker run --pull=always --rm -v "$PWD/nginx-dump.conf:/nginx-dump.conf:ro" megamansec/gixy-next /nginx-dump.conf

Сканирование из stdin:

root@kitploit:~
# Используйте Github Registry
nginx -T | docker run --pull=always --rm -i ghcr.io/megamansec/gixy-next gixy-next -
# Или Docker Hub
nginx -T | docker run --pull=always --rm -i megamansec/gixy-next gixy-next -

Что он умеет

Gixy-Next может обнаруживать широкий спектр ошибок безопасности и производительности NGINX в nginx.conf и подключаемых файлах конфигурации. Поддерживаются следующие плагины:

  • [add_header_content_type] Установка Content-Type через add_header
  • [add_header_multiline] Многострочные заголовки ответа
  • [add_header_redefinition] Переопределение заголовков ответа директивой "add_header"
  • [alias_traversal] Path traversal через ошибочно настроенный alias
  • [allow_without_deny] Allow указан без deny
  • [default_server_flag] Отсутствует флаг default_server
  • [error_log_off] error_log установлен в off
  • [hash_without_default] Отсутствует default в hash-блоках
  • [host_spoofing] Подделка заголовка Host в запросе
  • [http2_misdirected_request] Отсутствует защита от HTTP/2 misdirected-request
  • [http_splitting] HTTP Response Splitting
  • [if_is_evil] If опасен при использовании в контексте location
  • [invalid_regex] Некорректные группы захвата в регулярных выражениях
  • [low_keepalive_requests] Низкое значение keepalive_requests
  • [missing_worker_processes] Отсутствует

Что-то не обнаруживается? Пожалуйста, откройте issue на GitHub с описанием того, чего не хватает!

Использование (флаги)

gixy по умолчанию читает конфигурацию NGINX системы из /etc/nginx/nginx.conf. Вы также можете указать расположение, передав его в gixy:

root@kitploit:~
# Проанализировать конфигурацию в /opt/nginx.conf
gixy /opt/nginx.conf

Вы можете запустить ограниченный набор проверок с помощью --tests:

root@kitploit:~
# Запустить только эти проверки
gixy --tests http_splitting,ssrf,version_disclosure

Или пропустить несколько избыточно шумных проверок с помощью --skips:

root@kitploit:~
# Запустить всё, кроме этих проверок
gixy --skips low_keepalive_requests,worker_rlimit_nofile_vs_connections

Чтобы сообщать только о проблемах определённого уровня серьёзности и выше, используйте накопительный флаг -l:

root@kitploit:~
# -l для проблем LOW и выше, -ll для MEDIUM и выше, -lll только для проблем HIGH
gixy -ll

По умолчанию вывод gixy окрашен в ANSI-цвета; лучше всего просматривать его в совместимом терминале. Вы можете использовать флаг --format (-f) со значением text, чтобы получить вывод без цветов:

root@kitploit:~
$ gixy -f text

==================== Results ===================

Problem: [http_splitting] Possible HTTP-Splitting vulnerability.
Description: Using variables that can contain "\n" may lead to http injection.
Additional info: https://gixy.io/plugins/http_splitting/
Reason: At least variable "$action" can contain "\n"
Pseudo config:
include /etc/nginx/sites/default.conf;

	server {

		location ~ /v1/((?<action>[^.]*)\.json)?$ {
			add_header X-Action $action;
		}
	}


==================== Summary ===================
Total issues:
    Informational: 0
    Low: 0
    Medium: 0
    High: 1

Вы также можете использовать -f json для получения воспроизводимого JSON-вывода, читаемого машиной:

root@kitploit:~
$ gixy -f json
[{"config":"\nserver {\n\n\tlocation ~ /v1/((?<action>[^.]*)\\.json)?$ {\n\t\tadd_header X-Action $action;\n\t}\n}","description":"Using variables that can contain \"\\n\" or \"\\r\" may lead to http injection.","file":"/etc/nginx/nginx.conf","line":4,"path":"/etc/nginx/nginx.conf","plugin":"http_splitting","reason":"At least variable \"$action\" can contain \"\\n\"","reference":"https://gixy.io/plugins/http_splitting/","severity":"HIGH","summary":"Possible HTTP-Splitting vulnerability."}]

Вы также можете использовать -f sarif для получения журнала в формате SARIF 2.1.0, например, для загрузки в GitHub code scanning:

root@kitploit:~
# Записать отчёт SARIF в файл, например, для `github/codeql-action/upload-sarif`
gixy -f sarif -o gixy-results.sarif

Дополнительные флаги для использования можно найти, передав --help в gixy. Более подробную информацию вы также найдёте в Руководстве по использованию.

Параметры конфигурации и плагинов

Некоторые плагины предоставляют параметры, которые можно задать через флаги CLI или файл конфигурации. Подробнее об этом можно прочитать в Руководстве по конфигурации.

Gixy-Next для безопасности и соответствия требованиям NGINX

В отличие от запуска nginx -t, который проверяет только синтаксис, Gixy-Next действительно анализирует вашу конфигурацию и обнаруживает неукреплённые экземпляры и уязвимости.

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

Участие в разработке

Gixy-Next поддерживается Joshua Rogers, но вклад приветствуется всегда! Вы можете помочь нам разными способами, например:

  • Сообщать об ошибках.
  • Предлагать новые плагины для обнаружения.
  • Улучшать документацию.
  • Исправлять, рефакторить, улучшать и писать новый код.

Перед отправкой любых изменений в pull request, пожалуйста, прочитайте документ с руководством по участию — Contributing to Gixy-Next.

Официальная домашняя страница Gixy-Next — https://gixy.io/. Любые изменения документации в Gixy-Next автоматически отражаются на этом сайте.

Исходный код можно найти по адресу https://github.com/MegaManSec/Gixy-Next.

Что такое Gixy? (История)

Gixy — это анализатор конфигурации NGINX, который был изначально разработан Андреем Красичковым из Yandex. Он был впервые выпущен в 2017 году и с тех пор перестал поддерживаться. Он не поддерживает современные версии Python, содержит множество ошибок и ограничен в своей функциональности и способности обнаруживать уязвимые конфигурации NGINX. Запуск оригинального Gixy сегодня на современной системе приведёт к следующей ошибке:

root@kitploit:~
  File "gixy/core/sre_parse/sre_parse.py", line 61, in <module>
    "t": SRE_FLAG_TEMPLATE,
         ^^^^^^^^^^^^^^^^^
NameError: name 'SRE_FLAG_TEMPLATE' is not defined. Did you mean: 'SRE_FLAG_VERBOSE'?

Таким образом, Gixy-Next — это форк, который добавляет поддержку современных систем, новые проверки, улучшения производительности, рекомендации по усилению защиты, а также поддержку современных версий Python и NGINX.

Почему не gixy-ng?

Gixy-Next на самом деле является форком gixy-ng, который сам был форком оригинального gixy. Gixy-Next был создан после того, как мейнтейнер gixy-ng начал создавать большие объёмы изменений с помощью ИИ и автогенерируемый код, которые были как слишком большими для проверки, так и сломанными.

Спустя некоторое время мейнтейнер gixy-ng начал коммитить в кодовую базу изменения, сгенерированные ИИ, которые вносили очевидные регрессии, ломали критически важное поведение инструмента (что заметил бы любой, кто использует инструмент), добавляли случайные артефакты ИИ-инструментов и вводили код, который просто не делал того, что должен был делать. Самое главное — мейнтейнер также добавил рекламу своего бизнеса во всю документацию, весь вывод и весь исходный код gixy-ng.

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

Gixy-Next сосредоточен на восстановлении качества и был проверен в боевых условиях на конфигурациях NGINX длиной почти 100 000 строк. Он исправляет ошибки и ложные срабатывания, внесённые изменениями в gixy-ng, удаляет артефакты/мусор ИИ-инструментов и старается поддерживать кодовую базу проверяемой и поддерживаемой. Этот форк предназначен для тех, кто заинтересован в чистом коде и долгосрочной поддерживаемости.

Скачать инструмент
worker_processes
  • [mixed_case_variable] Ссылки на переменные в смешанном регистре
  • [origins] Проблемы с проверкой заголовков referer/origin
  • [overlapping_captures] Перекрывающиеся захваты в контексте rewrite redirect/args
  • [proxy_buffering_off] Отключение proxy_buffering
  • [proxy_pass_normalized] Проблемы нормализации пути в proxy_pass
  • [quic_bpf_reuseport] QUIC-соединения молча теряются после перезагрузки
  • [regex_redos] Отказ в обслуживании через регулярные выражения (ReDoS)
  • [resolver_external] Использование внешних DNS-серверов
  • [return_bypasses_allow_deny] Директива return обходит ограничения allow/deny
  • [ssl_stapling_without_resolver] OCSP-степлинг молча не работает без resolver
  • [ssrf] Server Side Request Forgery
  • [stale_dns_cache] Устаревшие/неактуальные кэшированные DNS-записи, используемые в proxy_pass
  • [status_page_exposed] Проверяет, что status_page не доступен извне
  • [try_files_is_evil_too] Директива try_files опасна без open_file_cache
  • [unanchored_regex] Незакреплённые регулярные выражения
  • [unnamed_groups] Безымянные группы захвата в строке запроса rewrite
  • [valid_referers] none/blocked в valid_referers
  • [version_disclosure] Использование небезопасных значений для server_tokens
  • [worker_rlimit_nofile_vs_connections] worker_rlimit_nofile должен быть не меньше удвоенного worker_connections