« 「振返り」結果をプロジェクト間で横展開する | トップページ | 新卒新人がやって来た! »

脆弱性検証ツールを使い倒す!

4/11の定例会で、ベテランの紀さんから脆弱性検証ツールの紹介と活用のススメのコンテンツがありました。
Pict2636
紀さんは、リリースする成果物の品質担保、開発プロセス上の設計・製造・テスト上のガイドラインなどの作成・運用で実績の厚い人でもあります。

で、紹介戴くツールの名は「Paros」(パロス)。

基本的な検証項目は一通りチェックしてくれて便利なのですが、2006年以降に更新されていない、という事が残念なツール(←この点に関しては、後でも触れます!)。

具体例を元に、実際の操作方法・ツールの動きなどをデモしてくれました。
実際のPC上での操作を、プロジェクターで写しながらリアルタイムで動きを見られます。

Parosをプロキシとして設定しておき、
実際にアプリケーションの操作(検証したい部分の操作の流れ)を一通り実行させます。
すると、Parosが対象アプリの実行パスを記憶し、各種の攻撃パターンを自動試行してくれて、脆弱性の検証を行ってくれる、という流れです。

Pict2637Pict2638
結果は、先ず簡単に検証結果の一覧表示がされ、
更に詳細を参照すると、脆弱性が発見された部分の詳細説明、及び、具体的な改修方法を提示してくれます(全て英語ベースで、ですが)!

写真の例では、デモ実行のPC上にローカル環境を構築し、事前に意図的に脆弱性を仕込んでおきました。

結果、見事に引っかかりましたね!!

ただ、実は1回目の実行時には脆弱性の発見ができませんでした。
これは推測になりますが、脆弱性のパターンデータが多少ランダムに適用されるのではないかと。
テスト手順自体を、うっかり間違えたのかも分かりませんが.....。

しかし、上記の仮定が正しいとすると、同じ操作パスに対して最低でも2回以上はテストを実行した方が良いのかも知れませんね。
ツールの特性をよく理解した上で適用しなければ、とんでもない落とし穴になりますから。

で、先に述べた「2006年から更新されていない」点ですが、
「Paros」の後釜に相当するツールが開発・リリースされている旨、定例会に参加していたメンバーから指摘が有りました!

OWASP ZAP(ゼッドアタックプロキシ)
https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project#tab=Main

他国語対応が成されており、有り難いことに日本語もサポートされています。
最新のリリースバージョン(2.3.0)が、2014/04/10 にリリースされています。

2013年中にも、バージョン番号の 2桁目・3桁目の変更を伴う、(恐らく)マイナー・バージョンアップが4回も行われており、機能拡張や安定性の向上が続いているようです。

こいつを使えば、「検証したい操作パスを手動実行する」必要も無く、対象アプリをパースして(?)自動的に操作ケースを抽出し、脆弱性検証をしてくれるらしい!!

制限もあるかも知れませんが、素晴らしいです!!

↓:IPAによるウェブサイトにおける脆弱性検査手法の紹介サイト
https://www.ipa.go.jp/about/technicalwatch/20131212.html

人手でテストケースの設計・作成・テスト実行をするのは極めて大変でコストも膨大です。
ケース漏れのリスクもあるし、ソース変更/機能追加/変更毎に、影響範囲を厳密&正確に判断してからテスト実行するというのも、正直言って現実的じゃありません。

担保できる品質の限界レベルが下がってしまいます。

こういったツールの存在を知らない、或いは知っていても敢えて「オープンソースのツールの利用は禁止!」なんて時代を履き違えた(?)プロジェクトも有ったりもしますが、
やはり積極的に導入して、その可能性と制限をしっかり把握した上で、効率的に活用したいですね!

MavenやJenkinsでテストの実行自体も自動化すべきでしょう!

ともあれ、ナレッジの共有(埋もれている知の掘り起こしも含めて)に貢献してくれた紀さんに、感謝感謝です!


★クリック1つでブログランキングにご協力戴けます! m(_ _)m

|

« 「振返り」結果をプロジェクト間で横展開する | トップページ | 新卒新人がやって来た! »

定例会、勉強会など」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 脆弱性検証ツールを使い倒す!:

« 「振返り」結果をプロジェクト間で横展開する | トップページ | 新卒新人がやって来た! »