Została zaprezentowana pierwsza wersja projektu Gixy-Next, rozwijającego statyczny analizator dla plików konfiguracyjnych Nginx, który pozwala na wykrywanie problematycznych ustawień negatywnie wpływających na bezpieczeństwo i wydajność. Projekt rozwija Joshua Rogers, który kilka lat temu ujawnił 55 podatności w serwerze proxy Squid. Gixy-Next powstał jako fork projektu Gixy-ng, który rozwijał narzędzie Gixy, udostępnione przez firmę Yandex w 2017 roku, które przez ostatnie dwa lata nie było aktualizowane.
Jako powód stworzenia nowego forka podano niezadowolenie z działań maintenara projektu Gixy-ng, który nadużywał narzędzi AI do rozwoju. Fork został stworzony po tym, jak do repozytorium zaczęto dodawać automatycznie generowane zmiany, które nie przeszły odpowiedniej recenzji i prowadziły do regresji oraz zakłóceń w działaniu narzędzi. W kodzie zaczęły pojawiać się bezsensowne artefakty wynikające z zastosowania AI oraz funkcje, które nie robiły tego, co powinny. Na przykład wprowadzano rozbudowane poprawki, zajmujące tysiące linijek, które można było zastąpić 10-linijkową łatką. Co więcej, do dokumentacji i wbudowanych podpowiedzi dodana została reklama, a zewnętrzne pull-requesty były akceptowane z pominięciem informacji o autorach.

W Gixy-Next dokonano czyszczenia bazy kodu z niepożądanych zmian stworzonych przy pomocy AI, naprawiono błędy, ustabilizowano testowanie dużych plików konfiguracyjnych NGINX oraz dodano zmiany ułatwiające utrzymanie bazy kodu. Z nowych możliwości Gixy-Next w porównaniu do oryginalnego Gixy wyróżnia się:
- 19 nowych wtyczek, które sprawdzają poprawność ustawień związanych z zarządzaniem dostępem, DNS, proxy i wyrażeniami regularnymi, a także identyfikują ustawienia prowadzące do dodatkowych kosztów i obniżenia wydajności.
Wśród dodanych wtyczek: 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.
- Standaryzowany i powtarzalny raport wyjściowy, nadający się do automatycznej analizy.
- Wsparcie dla modułów map i geo.
- Modernizacja wtyczek origins, ssrf, http_splitting, alias_traversal i valid_referers w celu redukcji fałszywych alarmów oraz dokładniejszego wykrywania problemów.
- Poprawna obsługa dodatkowych plików konfiguracyjnych, ładowanych za pomocą dyrektywy „include”.
- Udoskonalenie weryfikacji wyrażeń regularnych.
- Możliwość stworzenia Online-skanera, działającego w przeglądarce.
Źródło: opennet.ru
