Zurück zu den Updates
New releaseAug 2, 2026

Gixy-Next v0.6.0

Gixy-Next: NGINX-Konfigurations-Sicherheitsscanner & Leistungsprüfer

Teilen

Gixy-Next: NGINX-Konfigurations-Sicherheitsscanner für Sicherheitsaudits

Übersicht

Gixy-Next-Maskottchen-Logo

Gixy-Next (Gixy) ist ein Open-Source-Sicherheitsscanner und Härtungswerkzeug für NGINX-Konfigurationen, das Ihre nginx.conf statisch analysiert, um Sicherheitsfehlkonfigurationen, Härtungslücken und häufige Performance-Fallstricke zu erkennen, bevor sie in die Produktion gelangen. Es ist ein aktiv gepflegter Fork von Yandex' Gixy. Der Quellcode von Gixy-Next ist auf GitHub verfügbar.

Gixy-Next kann auch im Browser auf dieser Seite ausgeführt werden. Kein Download ist erforderlich; Sie können Ihre Konfigurationen auf der Website scannen (lokal, mit WebAssembly).

Schnellstart

Gixy-Next (die gixy- oder gixy-next-CLI) wird auf PyPI bereitgestellt. Sie können es mit pip oder uv installieren:

# pip
pip3 install gixy-next
# uv
uv pip install gixy-next

Anschließend können Sie es ausführen:

# gixy defaults to reading /etc/nginx/nginx.conf
gixy
# But you can also specify a path to the configuration
gixy /opt/nginx.conf

Sie können Ihre NGINX-Konfiguration auch in eine einzelne Dump-Datei exportieren (siehe nginx -T Live-Konfigurations-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 -

Webbasierter Scanner

Anstatt Gixy-Next herunterzuladen und lokal auszuführen, können Sie diese Webseite verwenden und eine Konfiguration direkt aus Ihrem Webbrowser scannen (lokal, mit WebAssembly).

Scannen mit Docker

Gixy-Next ist als Docker-Image über Docker Hub oder die GitHub Registry verfügbar.

Scannen Sie eine lokale Konfigurationsdatei, indem Sie sie in den Container mounten:

# 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

Scannen Sie einen NGINX-Live-Konfigurations-Dump:

# 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

Scannen Sie über 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 -

Was es kann

Gixy-Next kann eine breite Palette von NGINX-Sicherheits- und Performance-Fehlkonfigurationen in nginx.conf und eingebundenen Konfigurationsdateien erkennen. Die folgenden Plugins werden unterstützt:

Etwas wird nicht erkannt? Bitte öffnen Sie ein Issue auf GitHub und geben Sie an, was fehlt!

Verwendung (Flags)

Standardmäßig liest gixy die NGINX-Konfiguration eines Systems aus /etc/nginx/nginx.conf. Sie können den Speicherort auch angeben, indem Sie ihn an gixy übergeben:

# Analyze the configuration in /opt/nginx.conf
gixy /opt/nginx.conf

Mit --tests können Sie eine gezielte Teilmenge der Prüfungen ausführen:

# Only run these checks
gixy --tests http_splitting,ssrf,version_disclosure

Oder überspringen Sie mit --skips ein paar Prüfungen, die viele Meldungen erzeugen:

# Run everything except these checks
gixy --skips low_keepalive_requests,worker_rlimit_nofile_vs_connections

Um nur Probleme ab einer bestimmten Schwere zu melden, verwenden Sie das kombinierbare -l-Flag:

# -l for LOW severity issues and higher, -ll for MEDIUM and higher, and -lll for only HIGH severity issues
gixy -ll

Standardmäßig ist die Ausgabe von gixy ANSI-gefärbt; am besten betrachtet man sie in einem kompatiblen Terminal. Mit dem Flag --format (-f) und dem Wert text erhalten Sie eine ungefärbte Ausgabe:

$ 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

Sie können auch -f json verwenden, um eine reproduzierbare, maschinenlesbare JSON-Ausgabe zu erhalten:

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

Sie können auch -f sarif verwenden, um ein SARIF 2.1.0-Log zu erhalten, z. B. für den Upload zu GitHub Code Scanning:

# Write a SARIF report to a file, e.g. for `github/codeql-action/upload-sarif`
gixy -f sarif -o gixy-results.sarif

Weitere Flags zur Verwendung finden Sie, indem Sie gixy mit --help aufrufen. Weitere Informationen finden Sie auch im Nutzungsleitfaden.

Konfigurations- und Plugin-Optionen

Einige Plugins bieten Optionen, die Sie über CLI-Flags oder eine Konfigurationsdatei festlegen können. Weitere Informationen dazu finden Sie im Konfigurationsleitfaden.

Gixy-Next für NGINX-Sicherheit und Compliance

Im Gegensatz zu nginx -t, das nur die Syntax prüft, analysiert Gixy-Next Ihre Konfiguration tatsächlich und erkennt nicht gehärtete Instanzen und Schwachstellen.

Mit Gixy-Next können Sie eine automatisierte Sicherheitsüberprüfung der NGINX-Konfiguration durchführen, die bei jeder Änderung lokal ausgeführt werden kann – für Audits, Compliance oder allgemeine Tests. So entstehen umsetzbare Ergebnisse, die helfen, instabile/langsame NGINX-Server zu vermeiden und Risiken durch unsichere Direktiven und unsichere Standardwerte zu reduzieren.

Mitwirken

Gixy-Next wird von Joshua Rogers gepflegt, aber Beiträge sind jederzeit willkommen! Sie können uns auf verschiedene Weise helfen, zum Beispiel:

  • Fehler melden.
  • Neue Plugins zur Erkennung vorschlagen.
  • Die Dokumentation verbessern.
  • Fehler beheben, Code refaktorieren, verbessern und neuen Code schreiben.

Bevor Sie Änderungen in Pull-Requests einreichen, lesen Sie bitte das Dokument mit den Beitragsrichtlinien, Mitwirken an Gixy-Next.

Die offizielle Homepage von Gixy-Next ist https://gixy.io/. Änderungen an der Dokumentation von Gixy-Next werden automatisch auf dieser Website übernommen.

Der Quellcode ist unter https://github.com/MegaManSec/Gixy-Next zu finden.

Was ist Gixy? (Hintergrund)

Gixy ist ein NGINX-Konfigurationsanalysator, der ursprünglich von Andrew Krasichkov von Yandex entwickelt wurde. Die erste Version wurde 2017 veröffentlicht; seitdem wird es nicht mehr gepflegt. Es unterstützt keine modernen Python-Versionen, enthält zahlreiche Fehler und ist in seiner Funktionalität sowie seiner Fähigkeit, verwundbare NGINX-Konfigurationen zu erkennen, eingeschränkt. Wenn man das ursprüngliche Gixy heute auf einem modernen System ausführt, erhält man den folgenden Fehler:

  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 ist daher ein Fork, der Unterstützung für moderne Systeme, neue Prüfungen, Leistungsverbesserungen, Härtungsempfehlungen sowie moderne Python- und NGINX-Versionen bietet.

Warum nicht gixy-ng?

Gixy-Next ist eigentlich ein Fork von gixy-ng, welches selbst ein Fork des ursprünglichen gixy war. Gixy-Next wurde erstellt, nachdem der Betreuer von gixy-ng begann, große Mengen KI-gestützter Änderungen und automatisch generierten Code zu produzieren, der sowohl unüberprüfbar groß als auch fehlerhaft war.

Nach einiger Zeit begann der Betreuer von gixy-ng, KI-generierte Änderungen in die Codebasis einzubringen, die offensichtliche Regressionen verursachten, kritisches Verhalten des Tools brachen (was jedem Nutzer des Tools aufgefallen wäre), zufällige Artefakte der KI-Werkzeuge hinzufügten und Code einführten, der schlicht nicht das tat, was er tun sollte. Am wichtigsten: Der Betreuer hat außerdem Marketing für sein Unternehmen zu sämtlicher Dokumentation, sämtlicher Ausgabe und dem gesamten Quellcode von gixy-ng hinzugefügt.

Mit anderen Worten: Der Betreuer von gixy-ng nahm das ursprüngliche gixy, beauftragte eine KI mit Änderungen, führte eine Reihe von Fehlern (und anderen KI-Müll) ein und fügte dem Code dann Werbung hinzu. Er nahm auch Beiträge in Form von Merge Requests an, entfernte jedoch die Autoreninformationen (siehe diesen Beitrag und diesen Beitrag).

Gixy-Next konzentriert sich darauf, die Qualität wiederherzustellen, und wurde an NGINX-Konfigurationen mit fast 100.000 Zeilen in der Praxis erprobt. Es behebt Fehler und Fehlkennungen, die durch die in gixy-ng eingeführten Änderungen verursacht wurden, entfernt Artefakte/Müll der KI-Werkzeuge und bemüht sich, die Codebasis überprüfbar und wartbar zu halten. Dieser Fork richtet sich an alle, die an sauberem Code und langfristiger Wartbarkeit interessiert sind.

Kategorien