Torna agli aggiornamenti
New releaseSep 14, 2026

Gixy-Next v0.7.1

Gixy-Next: Scanner di sicurezza della configurazione NGINX e controllo delle prestazioni

Condividi

Gixy-Next: scanner di sicurezza per la configurazione NGINX per audit di sicurezza

Panoramica

Gixy-Next Mascot Logo

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:

Qualcosa non rilevato? Apri una issue su GitHub indicando cosa manca!

Utilizzo (flag)

gixy legge di default la configurazione NGINX di un sistema da /etc/nginx/nginx.conf. Puoi anche specificare la posizione passandola a gixy:

# Analizza la configurazione in /opt/nginx.conf
gixy /opt/nginx.conf

Puoi eseguire un sottoinsieme mirato di controlli con --tests:

# Esegui solo questi controlli
gixy --tests http_splitting,ssrf,version_disclosure

Oppure saltare alcuni controlli rumorosi con --skips:

# Esegui tutto tranne questi controlli
gixy --skips low_keepalive_requests,worker_rlimit_nofile_vs_connections

Per segnalare solo problemi di una certa severità o superiore, usa il flag cumulativo -l:

# -l per problemi di severità LOW e superiore, -ll per MEDIUM e superiore, e -lll per soli problemi di severità HIGH
gixy -ll

Di default, l'output di gixy è colorato con ANSI; meglio visualizzarlo in un terminale compatibile. Puoi usare il flag --format (-f) con il valore text per ottenere un output non colorato:

$ 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

Puoi anche usare -f json per ottenere un output JSON riproducibile e leggibile dalla macchina:

$ 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."}]

Puoi anche usare -f sarif per ottenere un log SARIF 2.1.0, ad esempio per il caricamento su GitHub code scanning:

# Scrivi un report SARIF su un file, ad esempio per `github/codeql-action/upload-sarif`
gixy -f sarif -o gixy-results.sarif

Ulteriori flag per l'utilizzo possono essere trovati passando --help a gixy. Puoi anche trovare maggiori informazioni nella Guida all'utilizzo.

Configurazione e opzioni dei plugin

Alcuni plugin espongono opzioni che puoi impostare tramite flag CLI o un file di configurazione. Puoi leggere di più al riguardo nella Guida alla configurazione.

Gixy-Next per la sicurezza e la conformità di NGINX

A differenza dell'esecuzione di nginx -t che controlla solo la sintassi, Gixy-Next analizza effettivamente la tua configurazione e rileva istanze non protette e vulnerabilità.

Con Gixy-Next, puoi eseguire una revisione automatizzata della sicurezza della configurazione NGINX che può essere eseguita localmente ad ogni modifica, sia per audit, conformità o test generali, aiutando a produrre risultati attuabili che aiutano a prevenire server NGINX instabili/lenti e a ridurre il rischio derivante da direttive non sicure e default insicuri.

Contribuire

Gixy-Next è mantenuto da Joshua Rogers, ma i contributi sono sempre benvenuti! Puoi aiutarci in diversi modi, come:

  • Segnalare bug.
  • Suggerire nuovi plugin per il rilevamento.
  • Migliorare la documentazione.
  • Correggere, rifattorizzare, migliorare e scrivere nuovo codice.

Prima di inviare qualsiasi modifica in pull request, leggi il documento delle linee guida per i contributi, Contributing to Gixy-Next.

La homepage ufficiale di Gixy-Next è https://gixy.io/. Qualsiasi modifica alla documentazione in Gixy-Next si rifletterà automaticamente su quel sito web.

Il codice sorgente può essere trovato su https://github.com/MegaManSec/Gixy-Next.

Cos'è Gixy? (Background)

Gixy è un analizzatore di configurazione NGINX che è stato originariamente sviluppato da Andrew Krasichkov di Yandex. È stato rilasciato per la prima volta nel 2017 e da allora è diventato non mantenuto. Non supporta versioni moderne di Python, contiene numerosi bug ed è limitato nella sua funzionalità e capacità di rilevare configurazioni NGINX vulnerabili. Eseguire l'originale Gixy oggi su un sistema moderno comporterà il seguente errore:

  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, quindi, è un fork che aggiunge supporto per sistemi moderni, aggiunge nuovi controlli, miglioramenti delle prestazioni, suggerimenti di hardening e supporto per versioni moderne di Python e NGINX.

Perché non gixy-ng?

Gixy-Next è in realtà un fork di gixy-ng, che a sua volta era un fork dell'originale gixy. Gixy-Next è stato creato dopo che il maintainer di gixy-ng ha iniziato a produrre grandi quantità di modifiche assistite dall'IA e codice auto-generato che era sia irrivedibile per dimensioni che rotto.

Dopo qualche tempo, il maintainer di gixy-ng ha iniziato a committare modifiche generate dall'IA nel codebase che hanno introdotto ovvie regressioni, rotto il comportamento critico dello strumento (che chiunque usasse lo strumento avrebbe notato), aggiunto artefatti casuali di strumenti IA e introdotto codice che semplicemente non faceva ciò che doveva fare. Ancora più importante, il maintainer ha anche aggiunto marketing per la propria attività in tutta la documentazione, tutto l'output e tutto il codice sorgente di gixy-ng.

In altre parole, il maintainer di gixy-ng ha preso l'originale gixy, ha chiesto all'IA di apportare modifiche, ha introdotto un sacco di bug (e altro slop dell'IA), e poi ha aggiunto pubblicità al codice. Ha anche accettato contributi sotto forma di merge request, ma ha rimosso le informazioni dell'autore (vedi questo post e questo post).

Gixy-Next si concentra sul ripristino della qualità ed è stato testato sul campo su configurazioni NGINX lunghe quasi 100.000 righe. Corregge bug e rilevamenti errati introdotti dalle modifiche apportate in gixy-ng, rimuove artefatti/immondizia degli strumenti IA e cerca di mantenere il codebase revisionabile e manutenibile. Questo fork è per coloro che sono interessati a codice pulito e manutenibilità a lungo termine.

Categorie