GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

yandex

gixy – Nginx設定静的アナライザ

投稿日:

Nginx設定静的アナライザ

GIXY

概要

GixyはNginxの設定を解析するツールです。 Gixyの主な目標は、セキュリティの誤設定を防ぎ、欠陥検出を自動化することです。

現在サポートされているPythonのバージョンは2.7および3.5+です。

免責事項:GixyはGNU / Linux上でのみ十分にテストされていますが、他のOSにはいくつかの問題があるかもしれません。

それができること

今すぐGixyは見つけることができます:

Gixyが検出することを学んでいることは、「new plugin」というラベルの付い問題を見つけることができます

インストール

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引数をhelpコマンドで見つけることができます: gixy --help

ドッカーの使用

Gixyは、Dockerハブから 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

貢献する

ギクシーへの貢献はいつでも歓迎です! あなたはさまざまな方法で私たちを助けることができます:

  • 直面している改善やエラーの提案を含む問題を開きます。
  • このリポジトリをフォークし、プルリクエストを送信します。
  • ドキュメントを改善する。

コードのガイドライン:

  • 可能であれば、Pythonコードスタイルはpep8の標準に準拠する必要があります。
  • 新しいプラグインのプルリクエストには単体テストが必要です。







-yandex

執筆者: