
Analisador estático de configuração do Nginx
Gixy é uma ferramenta para analisar configurações do Nginx. O principal objetivo do Gixy é prevenir configurações incorretas de segurança e automatizar a detecção de falhas.
Atualmente, as versões suportadas do Python são 2.7, 3.5, 3.6 e 3.7.
Aviso: O Gixy é bem testado apenas em GNU/Linux, outros sistemas operacionais podem ter alguns problemas.
No momento, o Gixy pode encontrar:
Você pode encontrar coisas que o Gixy está aprendendo a detectar em Issues marcadas com "new plugin"
O Gixy é distribuído no PyPI. A melhor forma de instalá-lo é com pip:
pip install gixy
Execute o Gixy e verifique os resultados:
gixy
Por padrão, o Gixy tentará analisar a configuração do Nginx localizada em /etc/nginx/nginx.conf.
Mas você sempre pode especificar o caminho desejado:
$ gixy /etc/nginx/nginx.conf
==================== Resultados ===================
Problema: [http_splitting] Possível vulnerabilidade de HTTP-Splitting.
Descrição: O uso de variáveis que podem conter "\n" pode levar a injeção HTTP.
Informações adicionais: https://github.com/yandex/gixy/blob/master/docs/ru/plugins/httpsplitting.md
Motivo: Pelo menos a variável "$action" pode conter "\n"
Configuração pseudo:
include /etc/nginx/sites/default.conf;
server {
location ~ /v1/((?<action>[^.]*)\.json)?$ {
add_header X-Action $action;
}
}
==================== Resumo ===================
Total de problemas:
Não especificado: 0
Baixo: 0
Médio: 0
Alto: 1
Ou pule alguns testes:
$ gixy --skips http_splitting /etc/nginx/nginx.conf
==================== Resultados ===================
Nenhum problema encontrado.
==================== Resumo ===================
Total de problemas:
Não especificado: 0
Baixo: 0
Médio: 0
Alto: 0
Ou algo mais, você pode encontrar todos os outros argumentos do gixy com o comando de ajuda: gixy --help
O Gixy está disponível como uma imagem Docker no Docker hub. Para usá-lo, monte a configuração que deseja analisar como um volume e forneça o caminho para o arquivo de configuração ao executar a imagem do Gixy.
$ docker run --rm -v `pwd`/nginx.conf:/etc/nginx/conf/nginx.conf yandex/gixy /etc/nginx/conf/nginx.conf
Se você tem uma imagem que já contém sua configuração do nginx, pode compartilhar a configuração com o contêiner do Gixy como um volume.
$ docker run --rm --name nginx -d -v /etc/nginx
nginx:alpinef68f2833e986ae69c0a5375f9980dc7a70684a6c233a9535c2a837189f14e905
$ docker run --rm --volumes-from nginx yandex/gixy /etc/nginx/nginx.conf
==================== Resultados ===================
Nenhum problema encontrado.
==================== Resumo ===================
Total de problemas:
Não especificado: 0
Baixo: 0
Médio: 0
Alto: 0
Contribuições para o Gixy são sempre bem-vindas! Você pode nos ajudar de diferentes maneiras:
Diretrizes de código: