
Gixy-Next v0.7.1
Gixy-Next: Scanner di sicurezza della configurazione NGINX e controllo delle prestazioni
Gixy-Next: scanner di sicurezza per la configurazione NGINX per audit di sicurezza
Panoramica
Gixy-Next (Gixy) è uno scanner di sicurezza per la configurazione NGINX open-source e uno strumento di hardening che analizza staticamente il tuo nginx.conf per rilevare misconfigurazioni di sicurezza, lacune nell'hardening e comuni problemi di prestazioni prima che raggiungano la produzione. È un fork attivamente mantenuto di Gixy di Yandex. Il codice sorgente di Gixy-Next è disponibile su GitHub.
Gixy-Next può anche essere eseguito nel browser su questa pagina. Non è necessario alcun download; puoi scansionare le tue configurazioni sul sito web (localmente, utilizzando WebAssembly).
Avvio rapido
Gixy-Next (la CLI gixy o gixy-next) è distribuito su PyPI. Puoi installarlo con pip o uv:
# pip
pip3 install gixy-next
# uv
uv pip install gixy-next
Puoi quindi eseguirlo:
# gixy legge di default /etc/nginx/nginx.conf
gixy
# Ma puoi anche specificare un percorso alla configurazione
gixy /opt/nginx.conf
Puoi anche esportare la tua configurazione NGINX in un singolo file di dump (vedi nginx -T Live Configuration Dump):
# Esegue il dump dell'intera configurazione NGINX in un singolo file (inclusi tutti gli include)
nginx -T > ./nginx-dump.conf
# Scansiona il dump altrove (o tramite stdin):
gixy ./nginx-dump.conf
# oppure
cat ./nginx-dump.conf | gixy -
Scanner basato sul web
Invece di scaricare ed eseguire Gixy-Next localmente, puoi usare questa pagina web e scansionare una configurazione dal tuo browser web (localmente, utilizzando WebAssembly).
Scansione con Docker
Gixy-Next è disponibile come immagine Docker da Docker Hub o GitHub Registry.
Scansiona un file di configurazione locale montandolo nel container:
# Usa Github Registry
docker run --pull=always --rm -v "$PWD/nginx.conf:/nginx.conf:ro" ghcr.io/megamansec/gixy-next /nginx.conf
# Oppure Docker Hub
docker run --pull=always --rm -v "$PWD/nginx.conf:/nginx.conf:ro" megamansec/gixy-next /nginx.conf
Scansiona un dump della configurazione NGINX live:
# Esegue il dump dell'intera configurazione NGINX in un singolo file (inclusi tutti gli include)
nginx -T > ./nginx-dump.conf
# Usa Github Registry
docker run --pull=always --rm -v "$PWD/nginx-dump.conf:/nginx-dump.conf:ro" ghcr.io/megamansec/gixy-next /nginx-dump.conf
# Oppure Docker Hub
docker run --pull=always --rm -v "$PWD/nginx-dump.conf:/nginx-dump.conf:ro" megamansec/gixy-next /nginx-dump.conf
Scansiona da stdin:
# Usa Github Registry
nginx -T | docker run --pull=always --rm -i ghcr.io/megamansec/gixy-next gixy-next -
# Oppure Docker Hub
nginx -T | docker run --pull=always --rm -i megamansec/gixy-next gixy-next -
Cosa può fare
Gixy-Next può rilevare un'ampia gamma di misconfigurazioni di sicurezza e prestazioni NGINX in nginx.conf e nei file di configurazione inclusi. Sono supportati i seguenti plugin:
- [add_header_content_type] Impostare Content-Type tramite add_header
- [add_header_multiline] Header di risposta multilinea
- [add_header_redefinition] Ridefinizione degli header di risposta tramite la direttiva "add_header"
- [alias_traversal] Path traversal tramite alias mal configurato
- [allow_without_deny] Allow specificato senza deny
- [default_server_flag] Flag default_server mancante
- [error_log_off]
error_logimpostato suoff - [hash_without_default] Default mancante nei blocchi hash
- [host_spoofing] Falsificazione dell'header Host della richiesta
- [http2_misdirected_request] Protezione mancante contro richieste HTTP/2 mal indirizzate
- [http_splitting] HTTP Response Splitting
- [if_is_evil] If is evil quando usato nel contesto location
- [invalid_regex] Gruppi di cattura regex non validi
- [low_keepalive_requests]
keepalive_requestsbasso - [missing_worker_processes]
worker_processesmancante - [mixed_case_variable] Riferimenti a variabili con maiuscole/minuscole miste
- [origins] Problemi con la validazione degli header referer/origin
- [overlapping_captures] Catture sovrapposte nel contesto di rewrite redirect/args
- [proxy_buffering_off] Disabilitazione di
proxy_buffering - [proxy_pass_normalized] Problemi di normalizzazione del percorso in
proxy_pass - [proxy_set_header_redefinition] Ridefinizione degli header di richiesta inoltrati tramite la direttiva "proxy_set_header"
- [quic_bpf_reuseport] Connessioni QUIC eliminate silenziosamente dopo il reload
- [regex_redos] Denial of service tramite espressioni regolari (ReDoS)
- [resolver_external] Uso di nameserver DNS esterni
- [return_bypasses_allow_deny] La direttiva return aggira le restrizioni allow/deny
- [ssl_ecdh_curve] I gruppi post-quantum impediscono l'avvio di NGINX su OpenSSL più vecchi
- [ssl_stapling_letsencrypt] OCSP stapling non fa nulla per un certificato Let's Encrypt
- [ssl_stapling_without_resolver] OCSP stapling fallisce silenziosamente senza un resolver
- [ssrf] Server Side Request Forgery
- [stale_dns_cache] Record DNS in cache obsoleti/scaduti usati in proxy_pass
- [status_page_exposed] Garantisce che status_page non sia esposto al mondo
- [try_files_is_evil_too] La direttiva
try_filesè evil senza open_file_cache - [unanchored_regex] Espressioni regolari non ancorate
- [unnamed_groups] Gruppi di cattura senza nome nella query string di rewrite
- [valid_referers] none/blocked in valid_referers
- [version_disclosure] Uso di valori non sicuri per server_tokens
- [worker_rlimit_nofile_vs_connections]
worker_rlimit_nofiledeve essere almeno il doppio diworker_connections
