Gixy は Nginx 設定を分析するためのツールです。 Gixy の主な目的は、セキュリティ設定ミスを防ぎ、脆弱性の検出を自動化することです。
現在サポートされている Python のバージョンは、2.7、3.5、3.6、3.7 です。
免責事項:Gixy は GNU/Linux でのみ十分にテストされています。他の OS では問題が発生する可能性があります。
現在 Gixy は以下を検出できます:
Gixy が現在学習中の検出項目は、「new plugin」ラベルの付いた Issue で確認できます。
Gixy は PyPI で配布されています。インストールには pip を使用するのが最適です:
pip install gixy
Gixy を実行して結果を確認します:
gixy
デフォルトでは、Gixy は /etc/nginx/nginx.conf にある Nginx 設定を分析しようとします。
ただし、必要に応じてパスを指定することもできます:
$ 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
あるいは、いくつかのテストをスキップすることもできます:
$ gixy --skips http_splitting /etc/nginx/nginx.conf
==================== Results ===================
No issues found.
==================== Summary ===================
Total issues:
Unspecified: 0
Low: 0
Medium: 0
High: 0
その他、gixy のすべての引数はヘルプコマンドで確認できます:gixy --help
Gixy は Docker Hub から Docker イメージとして利用できます。 使用するには、分析したい設定ファイルをボリュームとしてマウントし、Gixy イメージの実行時に設定ファイルへのパスを指定します。
$ docker run --rm -v `pwd`/nginx.conf:/etc/nginx/conf/nginx.conf yandex/gixy /etc/nginx/conf/nginx.conf
すでに Nginx 設定を含むイメージをお持ちの場合は、その設定を Gixy コンテナとボリュームとして共有できます。
$ 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
Gixy へのコントリビューションは常に歓迎します!以下の方法でご協力いただけます:
コードガイドライン: