
Gixy-Next v0.7.1
Gixy-Next : Scanner de sécurité de configuration NGINX et vérificateur de performances
Gixy-Next : Scanner de sécurité pour configurations NGINX pour les audits de sécurité
Aperçu
Gixy-Next (Gixy) est un scanner de sécurité et un outil de durcissement pour configurations NGINX open source qui analyse statiquement votre nginx.conf afin de détecter les erreurs de configuration de sécurité, les lacunes de durcissement et les pièges de performance courants avant qu'ils n'atteignent la production. C'est un fork activement maintenu de Gixy de Yandex. Le code source de Gixy-Next est disponible sur GitHub.
Gixy-Next peut également être exécuté dans le navigateur sur cette page. Aucun téléchargement n'est nécessaire ; vous pouvez analyser vos configurations sur le site web (localement, via WebAssembly).
Démarrage rapide
Gixy-Next (l'interface en ligne de commande gixy ou gixy-next) est distribué sur PyPI. Vous pouvez l'installer avec pip ou uv :
# pip
pip3 install gixy-next
# uv
uv pip install gixy-next
Vous pouvez ensuite l'exécuter :
# gixy defaults to reading /etc/nginx/nginx.conf
gixy
# But you can also specify a path to the configuration
gixy /opt/nginx.conf
Vous pouvez également exporter votre configuration NGINX vers un fichier dump unique (voir nginx -T Live Configuration Dump) :
# Dumps the full NGINX configuration into a single file (including all includes)
nginx -T > ./nginx-dump.conf
# Scan the dump elsewhere (or via stdin):
gixy ./nginx-dump.conf
# or
cat ./nginx-dump.conf | gixy -
Scanner web
Au lieu de télécharger et d'exécuter Gixy-Next localement, vous pouvez utiliser cette page web et analyser une configuration depuis votre navigateur web (localement, via WebAssembly).
Analyse avec Docker
Gixy-Next est disponible sous forme d'image Docker depuis Docker Hub ou GitHub Registry.
Analysez un fichier de configuration local en le montant dans le conteneur :
# Use Github Registry
docker run --pull=always --rm -v "$PWD/nginx.conf:/nginx.conf:ro" ghcr.io/megamansec/gixy-next /nginx.conf
# Or Docker Hub
docker run --pull=always --rm -v "$PWD/nginx.conf:/nginx.conf:ro" megamansec/gixy-next /nginx.conf
Analysez un dump de configuration NGINX en direct :
# Dumps the full NGINX configuration into a single file (including all includes)
nginx -T > ./nginx-dump.conf
# Use Github Registry
docker run --pull=always --rm -v "$PWD/nginx-dump.conf:/nginx-dump.conf:ro" ghcr.io/megamansec/gixy-next /nginx-dump.conf
# Or Docker Hub
docker run --pull=always --rm -v "$PWD/nginx-dump.conf:/nginx-dump.conf:ro" megamansec/gixy-next /nginx-dump.conf
Analysez depuis stdin :
# Use Github Registry
nginx -T | docker run --pull=always --rm -i ghcr.io/megamansec/gixy-next gixy-next -
# Or Docker Hub
nginx -T | docker run --pull=always --rm -i megamansec/gixy-next gixy-next -
Ce qu'il peut faire
Gixy-Next peut détecter un large éventail d'erreurs de configuration de sécurité et de performance NGINX dans nginx.conf et les fichiers de configuration inclus. Les plugins suivants sont pris en charge :
- [add_header_content_type] Setting Content-Type via add_header
- [add_header_multiline] Multiline response headers
- [add_header_redefinition] Redefining of response headers by "add_header" directive
- [alias_traversal] Path traversal via misconfigured alias
- [allow_without_deny] Allow specified without deny
- [default_server_flag] Missing default_server flag
- [error_log_off]
error_logset tooff - [hash_without_default] Missing default in hash blocks
- [host_spoofing] Request's Host header forgery
- [http2_misdirected_request] Missing HTTP/2 misdirected-request safeguard
- [http_splitting] HTTP Response Splitting
- [if_is_evil] If is evil when used in location context
- [invalid_regex] Invalid regex capture groups
- [low_keepalive_requests] Low
keepalive_requests - [missing_worker_processes] Missing
worker_processes - [mixed_case_variable] Mixed-case variable references
- [origins] Problems with referer/origin header validation
- [overlapping_captures] Overlapping captures in rewrite redirect/args context
- [proxy_buffering_off] Disabling
proxy_buffering - [proxy_pass_normalized]
proxy_passpath normalization issues - [proxy_set_header_redefinition] Redefining of proxied request headers by "proxy_set_header" directive
- [quic_bpf_reuseport] QUIC connections silently dropped after reload
- [regex_redos] Regular expression denial of service (ReDoS)
- [resolver_external] Using external DNS nameservers
- [return_bypasses_allow_deny] Return directive bypasses allow/deny restrictions
- [ssl_ecdh_curve] Post-quantum groups stop NGINX from starting on older OpenSSL
- [ssl_stapling_letsencrypt] OCSP stapling does nothing for a Let's Encrypt certificate
- [ssl_stapling_without_resolver] OCSP stapling silently fails without a resolver
- [ssrf] Server Side Request Forgery
- [stale_dns_cache] Outdated/stale cached DNS records used in proxy_pass
- [status_page_exposed] Ensures that status_page is not exposed to the world
- [try_files_is_evil_too]
try_filesdirective is evil without open_file_cache - [unanchored_regex] Unanchored regular expressions
- [unnamed_groups] Unnamed capture groups in rewrite query string
- [valid_referers] none/blocked in valid_referers
- [version_disclosure] Using insecure values for server_tokens
- [worker_rlimit_nofile_vs_connections]
worker_rlimit_nofilemust be at least twiceworker_connections
Quelque chose n'est pas détecté ? Veuillez ouvrir une issue sur GitHub en précisant ce qui manque !
