Представен е първият брой на проекта Gixy-Next, който развива статичен анализатор за конфигурационни файлове на Nginx, позволяващ откриването на проблемни настройки, които негативно влияят на безопасността и производителността. Проектът се развива от Джошуа Роджърс (Joshua Rogers), който преди няколко години откри 55 уязвимости в прокси сървъра Squid. Gixy-Next е създаден като форк на проекта Gixy-ng, който продължава развитието на инструментария Gixy, отворен от компанията Yandex през 2017 година и не обновяван през последните две години.
Причината за създаването на новия форк е недоволство от действията на мейнтейнера на проекта Gixy-ng, който злоупотребява с AI инструменти при разработката. Форкът е създаден след като в хранилището започнаха да се добавят автоматично генерирани изменения, които не преминаваха през съответната проверка и водеха до регресии и нарушаване на поведението на инструментария. В кода започнаха да се появяват безсмислени артефакти от прилагането на AI и функции, които не изпълняваха зададените задачи. Например, се внасяха разширени корекции, заемащи хиляди редове, които можеха да бъдат заменени с 10-стронов патч. Освен това, в документацията и вградения помощник беше добавена реклама, а външни pull-заявки се приемаха с изрязана информация за авторите.

В Gixy-Next беше извършена чистка на кодовата база от ненужни изменения, създадени с помощта на AI, поправени са грешки, установено е тестване на големи конфигурационни файлове на NGINX и добавени са изменения за улесняване на поддръжката на кодовата база. От новите възможности на Gixy-Next в сравнение с оригиналния Gixy се открояват:
- 19 нови плъгина, проверяващи правилността на настройките, свързани с управлението на достъпа, DNS, проксирането и регулярните изрази, както и идентифициращи настройки, водещи до допълнителни разходи и намалена производителност.
Сред добавените плъгини: 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.
- Стандартизиран и възпроизводим отчет, подходящ за автоматизирана обработка.
- Поддръжка на модулите map и geo.
- Модернизация на плъгините origins, ssrf, http_splitting, alias_traversal и valid_referers за намаляване на фалшивите сработвания и по-точно откриване на проблеми.
- Коректна обработка на допълнителни конфигурационни файлове, свързани чрез директивата 'include'.
- Подобряване на проверката на регулярни изрази.
- Възможност за изграждане на онлайн скенер, работещ в браузър.
Източник: opennet.ru
