大規模なコードベースを監査する場合、セキュリティ問題をチェックするための可能な行のリストを作成するのにgrep kung-fuを使用すると特に便利です。ファイル名と行番号によってmalloc関数に
egrep "malloc\(.*\)" ~/some/source/dir/ -r
上記リストのすべての呼び出し:ラップするallovationのサイズのために使用される値を可能にするユーザ制御の割り当てのためのCのソースコードを監査する場合、例えば、次の点を考慮し指定されたディレクトリ内で再帰的に実行されます。これには膨大な数の偽陽性が含まれるので、コードの誤用に関する知識を使用して、呼び出しを制御できないことが分かっているケースのリストをパージする他のgrepステートメントを構築できます。私が何を意味するのかを説明するために、それを構築しましょう。
char *buffer2 = (char *) malloc(DEVMAPPER_BUFFER_SIZE);
上記の行は明らかにラップできないため、偽陽性です。正規表現に次のようなすべてのケースをパージするように追加できます。
これでリストは小さくなりましたが、まだゴミの結果が残っています。一般的に使用される知られている一般的な機能ごとにこれを行う
egrep "malloc\(.*\)" ~/some/source/dir/ -r | egrep "malloc\([ ]*[A-Z_]+\)" -v | egrep "malloc\([ ]*[0-9]+\)" -v | egrep "malloc\(sizeof\(.*\)\)" -v
:結局、あなたが誤っていることがわかっている例をそれぞれオフ剪定、正規表現のステートメントにそれらを翻訳することで、あなたは次のように何かに得ることができますあなたの言語のソフトウェアの脆弱性を引き起こし、それらを素早いpython/bashスクリプトに入れて、手動で結果を出す各呼び出しを監査します。
PHPを監査する場合は、次のリンクを参考にしてください。
http://pentestlab.org/simple-kung-fu-grep-for-finding-common-web-vulnerabilities-backdoor-shells/