findコマンドで脆弱性チェックをする

Posted by jolantern on Tuesday, September 20, 2016

TOC

脆弱性チェック

以前プログラムに脆弱性が含まれているかの確認をしたいということがあった。 SQLインジェクションがあるかどうかというより、この脆弱性はこのフレームワークではこういう処理してたら該当するからな、というもの。 もっとスマートな方法があると思うし、githubとかに上がっているなら検索すれば早いんだけど、手元でやりたいなあと思ったときのメモ。 Linux系OSだったりOSXのようなBSD系OSにはfindコマンドというのがあって、これを使う。

基本的な使い方

<code class="shell">$ find 対象ディレクトリ 検索条件 アクション
</code>

よくやるやり方

<code class="shell">$ find / -name filename
</code>

これをやると、すべてのファイルからfilenameという文字列の含まれるファイルを探す。 filenameの指定にはワイルドカードが使用可能。

複数あるファイルから、特定の文字列があるかどうかを調べたいとき

<code class="shell">$ find /path/to/project -type f -print | xargs grep pattern
</code>

こうしてあげると、すべてのディクレクトリに含まれるファイルから、patternに合致する文字列が含まれているファイルを列挙してくれる。

<code>/path/to/project/hoge.rb: pattern no hukumareru gyou
</code>

こんな感じ。 だから、hogeメソッドに定数以外の何かを入れていたらやばいかもしれない、とかそういうときにfindコマンドを使うと楽に見つけられるかもしれない。