
Analyseur statique de configuration Nginx
Gixy est un outil pour analyser la configuration Nginx. Le principal objectif de Gixy est de prévenir les erreurs de configuration de sécurité et d'automatiser la détection des failles.
Les versions de Python actuellement supportées sont 2.7, 3.5, 3.6 et 3.7.
Avertissement : Gixy est bien testé uniquement sur GNU/Linux, d'autres systèmes d'exploitation peuvent présenter des problèmes.
Actuellement, Gixy peut détecter :
Vous pouvez trouver les choses que Gixy apprend à détecter sur les tickets étiquetés "new plugin"
Gixy est distribué sur PyPI. La meilleure façon de l'installer est avec pip :
pip install gixy
Exécutez Gixy et vérifiez les résultats :
gixy
Par défaut, Gixy essaiera d'analyser la configuration Nginx située dans /etc/nginx/nginx.conf.
Mais vous pouvez toujours spécifier le chemin nécessaire :
$ gixy /etc/nginx/nginx.conf
==================== Results ===================
Problem: [http_splitting] Possible HTTP-Splitting vulnerability.
Description: Using variables that can contain "\n" may lead to http injection.
Additional info: https://github.com/yandex/gixy/blob/master/docs/ru/plugins/httpsplitting.md
Reason: At least variable "$action" can contain "\n"
Pseudo config:
include /etc/nginx/sites/default.conf;
server {
location ~ /v1/((?<action>[^.]*)\.json)?$ {
add_header X-Action $action;
}
}
==================== Summary ===================
Total issues:
Unspecified: 0
Low: 0
Medium: 0
High: 1
Ou ignorez certains tests :
$ gixy --skips http_splitting /etc/nginx/nginx.conf
==================== Results ===================
No issues found.
==================== Summary ===================
Total issues:
Unspecified: 0
Low: 0
Medium: 0
High: 0
Ou autre chose, vous pouvez trouver tous les autres arguments de gixy avec la commande d'aide : gixy --help
Gixy est disponible en tant qu'image Docker sur le Docker hub. Pour l'utiliser, montez la configuration que vous souhaitez analyser en tant que volume et fournissez le chemin du fichier de configuration lors de l'exécution de l'image Gixy.
$ docker run --rm -v `pwd`/nginx.conf:/etc/nginx/conf/nginx.conf yandex/gixy /etc/nginx/conf/nginx.conf
Si vous avez une image qui contient déjà votre configuration nginx, vous pouvez partager la configuration avec le conteneur Gixy en tant que volume.
$ docker run --rm --name nginx -d -v /etc/nginx
nginx:alpinef68f2833e986ae69c0a5375f9980dc7a70684a6c233a9535c2a837189f14e905
$ docker run --rm --volumes-from nginx yandex/gixy /etc/nginx/nginx.conf
==================== Results ===================
No issues found.
==================== Summary ===================
Total issues:
Unspecified: 0
Low: 0
Medium: 0
High: 0
Les contributions à Gixy sont toujours les bienvenues ! Vous pouvez nous aider de différentes manières :
Directives de code :