Представен е първият брой на проекта 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
