Die erste Ausgabe des Gixy-Next-Projekts wurde vorgestellt, das einen statischen Analyzer für Nginx-Konfigurationsdateien entwickelt, der problematische Einstellungen identifizieren kann, die sich negativ auf die Sicherheit und Leistung auswirken. Das Projekt wird von Joshua Rogers weiterentwickelt, der vor mehreren Jahren 55 Schwachstellen im Proxy-Server Squid entdeckt hat. Gixy-Next wurde als Fork des Gixy-ng-Projekts geschaffen, das die Entwicklung des 2017 von Yandex veröffentlichten Gixy-Tools fortsetzte und in den letzten zwei Jahren nicht aktualisiert wurde.
Der Grund für die Schaffung eines neuen Forks ist die Unzufriedenheit mit dem Verhalten des Maintainers des Gixy-ng-Projekts, der AI-Tools missbräuchlich bei der Entwicklung einsetzt. Der Fork wurde ins Leben gerufen, nachdem automatische, generierte Änderungen in das Repository aufgenommen wurden, die nicht ausreichend überprüft wurden und zu Rückschritten sowie zu einer Beeinträchtigung der Funktionsweise des Werkzeugs führten. Im Code traten sinnlose Artefakte durch den Einsatz von AI auf, und Funktionen, die nicht das taten, was sie sollten. Zum Beispiel wurden aufgeblähte Korrekturen vorgenommen, die Tausende von Zeilen umfassten, die durch einen 10-zeiligen Patch hätten ersetzt werden können. Darüber hinaus wurde Werbung in die Dokumentation und in die integrierte Hilfe aufgenommen, und externe Pull-Requests wurden angenommen, wobei die Informationen über die Autoren entfernt wurden.

In Gixy-Next wurde der Code-Basis von überflüssigen Änderungen, die durch AI erstellt wurden, bereinigt, Fehler wurden behoben, das Testen mit großen NGINX-Konfigurationsdateien wurde optimiert, und Änderungen zur Vereinfachung der Wartung des Code-Basis wurden hinzugefügt. Zu den neuen Funktionen von Gixy-Next im Vergleich zum originalen Gixy gehören:
- 19 neue Plugins zur Überprüfung der Richtigkeit von Einstellungen im Zusammenhang mit Zugriffsverwaltung, DNS, Proxys und regulären Ausdrücken sowie zur Identifizierung von Konfigurationen, die zu zusätzlichen Kosten und Leistungseinbußen führen.
Unter den hinzugefügten Plugins sind: allow_without_deny, return_bypasses_allow_deny, proxy_pass_normalized, merge_slashes_on, resolver_external, stale_dns_cache, version_disclosure, invalid_regex, regex_redos, add_header_content_type, add_header_multiline, add_header_redefinition, default_server_flag, error_log_off, hash_without_default, if_is_evil, try_files_is_evil_too, unanchored_regex, low_keepalive_requests, worker_rlimit_nofile_vs_connections, proxy_buffering_off.
- Standardisierte und reproduzierbare Berichterstattung, die für die automatisierte Analyse geeignet ist.
- Unterstützung für die Module map und geo.
- Modernisierung der Plugins origins, ssrf, http_splitting, alias_traversal und valid_referers zur Reduzierung von Fehlalarmen und zur genaueren Problemerkennung.
- Korrekte Verarbeitung von zusätzlichen Konfigurationsdateien, die durch die Direktive „include“ eingebunden werden.
- Verbesserte Überprüfung von regulären Ausdrücken.
- Die Möglichkeit, als Online-Scanner zu bauen, der im Browser funktioniert.
Quelle: opennet.ru
