Zurück zu den Updates
New releaseSep 14, 2026

Gixy-Next v0.7.1

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

Teilen

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

Überblick

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 gängige 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 erforderlich; Sie können Ihre Konfigurationen auf der Website scannen (lokal, mittels WebAssembly).

Schnellstart

Gixy-Next (das CLI gixy oder gixy-next) wird auf PyPI verteilt. 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 liest standardmäßig /etc/nginx/nginx.conf
gixy
# Sie können aber auch einen Pfad zur Konfiguration angeben
gixy /opt/nginx.conf

Sie können Ihre NGINX-Konfiguration auch in eine einzelne Dump-Datei exportieren (siehe nginx -T Live-Konfigurations-Dump):

# Schreibt die vollständige NGINX-Konfiguration in eine einzelne Datei (inklusive aller Includes)
nginx -T > ./nginx-dump.conf
# Den Dump andernorts scannen (oder über stdin):
gixy ./nginx-dump.conf
# oder
cat ./nginx-dump.conf | gixy -

Webbasierter Scanner

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

Scan mit Docker

Gixy-Next ist als Docker-Image von Docker Hub oder der GitHub Registry verfügbar.

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

# GitHub Registry verwenden
docker run --pull=always --rm -v "$PWD/nginx.conf:/nginx.conf:ro" ghcr.io/megamansec/gixy-next /nginx.conf
# Oder 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:

# Schreibt die vollständige NGINX-Konfiguration in eine einzelne Datei (inklusive aller Includes)
nginx -T > ./nginx-dump.conf
# GitHub Registry verwenden
docker run --pull=always --rm -v "$PWD/nginx-dump.conf:/nginx-dump.conf:ro" ghcr.io/megamansec/gixy-next /nginx-dump.conf
# Oder Docker Hub
docker run --pull=always --rm -v "$PWD/nginx-dump.conf:/nginx-dump.conf:ro" megamansec/gixy-next /nginx-dump.conf

Scannen Sie von stdin:

# GitHub Registry verwenden
nginx -T | docker run --pull=always --rm -i ghcr.io/megamansec/gixy-next gixy-next -
# Oder Docker Hub
nginx -T | docker run --pull=always --rm -i megamansec/gixy-next gixy-next -

Was es leisten 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 nicht erkannt? Bitte öffnen Sie ein Issue auf GitHub mit dem, was fehlt!

Verwendung (Flags)

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

# Die Konfiguration in /opt/nginx.conf analysieren
gixy /opt/nginx.conf

Sie können mit --tests eine gezielte Teilmenge von Prüfungen ausführen:

# Nur diese Prüfungen ausführen
gixy --tests http_splitting,ssrf,version_disclosure

Oder einige störende Prüfungen mit --skips überspringen:

# Alles außer diesen Prüfungen ausführen
gixy --skips low_keepalive_requests,worker_rlimit_nofile_vs_connections

Um nur Probleme einer bestimmten Schwere oder höher zu melden, verwenden Sie das kumulierende -l-Flag:

# -l für LOW-Schwere-Probleme und höher, -ll für MEDIUM und höher, und -lll für nur HIGH-Schwere-Probleme
gixy -ll

Standardmäßig ist die Ausgabe von gixy ANSI-farbig; am besten in einem kompatiblen Terminal anzusehen. Sie können das --format-Flag (-f) mit dem Wert text verwenden, um eine ungefärbte Ausgabe zu erhalten:

$ 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. zum Hochladen in das GitHub Code Scanning:

# Einen SARIF-Bericht in eine Datei schreiben, z. B. für `github/codeql-action/upload-sarif`
gixy -f sarif -o gixy-results.sarif

Weitere Flags zur Verwendung finden Sie, indem Sie --help an gixy übergeben. Weitere Informationen finden Sie auch im Usage Guide.

Konfiguration und Plugin-Optionen

Einige Plugins bieten Optionen, die Sie über CLI-Flags oder eine Konfigurationsdatei festlegen können. Mehr darüber können Sie im Configuration guide lesen.

Gixy-Next für NGINX-Sicherheit und Compliance

Anders als die Ausführung von nginx -t, die nur die Syntax prüft, analysiert Gixy-Next tatsächlich Ihre Konfiguration und erkennt ungehä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 – sei es für Audits, Compliance oder allgemeine Tests – und die dazu beiträgt, umsetzbare Erkenntnisse zu liefern, die instabile/langsame NGINX-Server verhindern und das Risiko durch unsichere Direktiven und unsichere Standardeinstellungen reduzieren.

Mitwirken

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

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

Bevor Sie Änderungen in Pull Requests einreichen, lesen Sie bitte das Beitragsrichtlinien-Dokument, Contributing to Gixy-Next.

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

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 Yandex' Andrew Krasichkov entwickelt wurde. Er wurde erstmals 2017 veröffentlicht und ist seitdem nicht mehr gepflegt. Er unterstützt keine modernen Python-Versionen, enthält zahlreiche Fehler und ist in seiner Funktionalität und Fähigkeit, verwundbare NGINX-Konfigurationen zu erkennen, eingeschränkt. Das Ausführen des ursprünglichen Gixy heute auf einem modernen System führt zu folgendem 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 hinzufügt, neue Prüfungen, Performance-Verbesserungen, Härtungsempfehlungen sowie Unterstützung für moderne Python- und NGINX-Versionen bietet.

Warum nicht gixy-ng?

Gixy-Next ist tatsächlich ein Fork von gixy-ng, das selbst ein Fork des ursprünglichen gixy war. Gixy-Next wurde erstellt, nachdem der Maintainer von gixy-ng begonnen hatte, große Mengen KI-unterstützter Änderungen und automatisch generierten Code zu produzieren, der sowohl unüberschaubar groß als auch fehlerhaft war.

Nach einiger Zeit begann der Maintainer von gixy-ng, KI-generierte Änderungen in die Codebasis einzuchecken, die offensichtliche Regressionen einführten, kritisches Verhalten des Tools brachen (was jeder, der das Tool benutzte, bemerkt hätte), zufällige KI-Tool-Artefakte hinzufügten und Code einführten, der schlicht nicht das tat, was er tun sollte. Am wichtigsten ist, dass der Maintainer auch Werbung für sein Unternehmen in alle Dokumentation, alle Ausgaben und den gesamten Quellcode von gixy-ng einfügte.

Mit anderen Worten: Der Maintainer von gixy-ng nahm das ursprüngliche gixy, bat die KI um Änderungen, führte eine Reihe von Fehlern (und anderen KI-Müll) ein und fügte dann Werbung in den Code ein. Er akzeptierte auch Beiträge in Form von Merge Requests, entfernte jedoch die Informationen des Autors (siehe diesen Beitrag und diesen Beitrag).

Gixy-Next konzentriert sich auf die Wiederherstellung von Qualität und wurde an NGINX-Konfigurationen erprobt, die fast 100.000 Zeilen lang sind. Es behebt Fehler und Fehlerkennungen, die durch Änderungen in gixy-ng eingeführt wurden, entfernt KI-Tool-Artefakte/-Müll und versucht, die Codebasis überprüfbar und wartbar zu halten. Dieser Fork ist für diejenigen gedacht, die an sauberem Code und langfristiger Wartbarkeit interessiert sind.

Kategorien