
grauditは、GNUユーティリティのgrepを使用してソースコード内の潜在的なセキュリティ上の欠陥を見つけることを可能にする、シンプルなスクリプトとシグネチャセットです。RATS、SWAAT、flaw-finderなどの他の静的解析アプリケーションと比較できますが、技術的な要件を最小限に抑え、非常に柔軟です。
インストールはユーザーとして、またはrootとしてグローバルに行うことができ、makeをuserinstallまたはinstall引数付きで実行するだけです。ただし、ディストリビューションのファイルには含まれていない追加のデータベースルールが含まれているため、gitリポジトリをクローンしてgrauditを直接使用することをお勧めします。これにより、リリース間の更新も取得できます。これを行うには、次のコマンドを実行します:
git clone https://github.com/wireghoul/graudit
その後、使用しているシェルに適した値を使用して、grauditをパスに追加できます:
echo 'PATH="$HOME/graudit:${PATH:+:${PATH}}"; export PATH;' >> ~/.bashrc
grauditがホームディレクトリにない場合は、.bashrcファイルでGRDIR環境変数をシグネチャディレクトリに設定することをお勧めします。
export GRDIR=/path/to/graudit/signatures
grauditはいくつかのオプションをサポートし、優れたシェルの慣習に従うよう努めています。オプションの一覧はgraudit -hを実行するか、以下を参照してください。grauditを使用する最も簡単な方法は次のとおりです:
graudit [opts] /path/to/scan
OPTIONS
-d <dbname> database to use or /path/to/file.db (uses default if not specified)
-A scan unwanted and difficult (ALL) files
-x exclude these files (comma separated list: -x *.js,*.sql)
-i case in-sensitive scan
-c <num> number of lines of context to display before and after a match, default is 1
-B suppress banner
-L vim friendly lines
-b colour blind friendly template
-z suppress colors
-Z high contrast colors
-l lists databases available
-v prints version number
-h prints this help screen
GRARGS環境変数を介してデフォルトのコマンドラインオプションを設定できます。これはスクリプトでのgrauditの使用に影響を与える可能性があるため、この目的にはB、L、b、z、Zオプションのみを使用することをお勧めします。
echo 'GRARGS="-b -L"; export GRARGS' >> ~/.bashrc
grauditはシグネチャとして拡張正規表現(POSIX)を使用し、すぐに使用できるいくつかのデータベースが付属しています。追加のシグネチャが必要な場合は、既存のデータベースを拡張したり、独自のものを作成したりできます。
データベースは複数の場所から読み込むことができ、優先順位は次のとおりです:
優先順位順にデータベースファイルの一覧が-lスイッチで表示されます:
graudit -l
以下のデータベースが含まれています:
チュートリアル/紹介ビデオはこちらでご覧いただけます: https://youtu.be/b8Xbzer1n94
grauditに貢献したい場合は、https://github.com/wireghoul/graudit でリポジトリをフォークしてご利用ください。特に言語ルール、追加スクリプト、ドキュメントの貢献を歓迎します。 grauditが気に入ったら、感謝の言葉を伝えて広めてください。
私に連絡を取りたい場合は、github @wireghoul までご連絡ください。