Компания Яндекс опубликовала исходные тексты проекта Gixy, в рамках которого развивается статический анализатор, предназначенный для выявления проблемных настроек в файлах конфигурации nginx, которые могут отрицательно повлиять на безопасность. Код написан на языке Python и распространяется под лицензией MPL 2.0.
В настоящее время Gixy включает следующие плагины, выявляющие различные классы проблем:
- ssrf — выявляет уязвимость Server Side Request Forgery, позволяющую выполнять различного рода запросы от имени Nginx. Проблема возникает, когда атакующий может контролировать адрес проксируемого сервера (второй аргумент директивы proxy_pass);
- http_splitting — выявляет уязвимость HTTP Splitting, возникающую из-за неправильной обработки входных данных. Уязвимость может применяться для атак на приложение стоящее за Nginx (HTTP Request Splitting) или на клиентов приложения (HTTP Response Splitting).
- origins — выявляет проблемы с проверкой заголовка запроса Referer или Origin, обычно возникающие из-за некорректного составления регулярного выражения;
- add_header_redefinition — выявляет проблемы с переопределением «вышестоящих» заголовков ответа директивой «add_header»;
- host_spoofing — определяет возможность подмены заголовка запроса Host;
- valid_referers — выявляет проблемы при конфигурировании модуля ngx_http_referer_module, вызванные использованием «none» в качестве принимаемого значения заголовка Referer;
- add_header_multiline — определяет факты использования многострочных заголовков ответа.