Fortify


静的セキュリティ検証ツールのFortify Source Code Analysisをみせてもらいに、
フォーティファイ・ソフトウェア株式会社さん(http://www.fortifysoftware.co.jp/)に
お邪魔してきました。


基本情報以外はまったく知らなかったので、いろいろとメリット・デメリットみることができて
良かったです。


以下、まとめ。

Fortify Source Code Analysisは静的にソースコードを解析して、脆弱性を検証するツール。

■メリット

・ベーシックなパターンの検証から、各言語(Java,C, C++, C#, VB.NET, ASP.NET, JSP, PL/SQL, T-SQLなど)・各フレームワークなどのパターンまで豊富に準備している。
統一されたUIで同じように多言語で脆弱性チェックが出来る。


・自分たちで独自にパターンファイルを準備することも可能。


・基本はEclipseプラグインで導入、でもコマンドラインからも使用可能。


・出力Formatとしてさまざまな形式が可能。管理者用レポートみたいなのも出来るらしい(これは見てませんが)


・チェックポイントとなるソースコードなどをFortifyで覚えておくことで、このソースを通っているから
この脆弱性は問題ない、みたいな事が出来る。(これ、なんて言えばいいのかなあ?)


・定期的に解析を繰り返すことで、早い段階から脆弱性が入りそうな場所を検知することができる。
antで実行も当然できるのでバッチ的に使うことが可能。


・UIはややクラシックな感じだけど、レベルごとの検証結果を見たり、各Fileごとでみれたりと
かなり使い勝手はよさそう。


・パターンファイルはウイルスの定義ファイルみたいに自動更新されるので、FortifySoftwareで
収集している脆弱性の対応ノウハウがタイムリーに入手できる。


・トレーサビリティは高そう。脆弱性が発見されたソースから辿って、どこから呼ばれているのかの
トレースツリーが出ます。


■デメリット

・他の人もふれていますが、まず高い。こればっかりはツールの性質上そうなってしまうのかもしれませんが。


・マシンスペックを要求されます。これも性質上しょうがないかも。他のツールでもそうだったし。


FindBugsと同様かもしれないですが、初期状態で脆弱性を検知させると大量に出てきます。
たぶん、使い方としてはそこから自分のプロジェクトにfitするようにパターンファイルを作ったり、
チェックするパターンとチェックしないパターンを選り分けしていくような使い方になります。


・パターンファイルのカスタマイズは今の現時点だと難易度が高そう。
ただしこれは次のバージョン(アメリカでは既に4.0なので5.0)で対応される模様。


・広く使ってもらうのであれば、UIは改善したほうがいいかも。



■感想


まず、第一印象は良く出来ていると思いました。お値段はともかくとして、プロジェクトで効果は

出しやすいんじゃないかと思います。もしプロジェクトに適用するならば、1名定期的にFortifyを使って

脆弱性をチェックしてチームのメンバーに展開するような体制になるのでしょうね。

プロジェクトの初期で使い方を覚えて、パターンファイルを徐々にカスタマイズしてプロジェクトに適用するような

進め方かなあ。で、軌道にのったところでantからバッチで定期チェックかな。


で、その際に問題になりそうなのがパターンファイルを作るのにどれくらいのコストがかかるのかと、

UIがどれくらい良く出来ているのかです。UIはクラシックな感じだけど、使い勝手は良さそうです。

かっこよくとかって要望はありそうですけどw まだまだ開発者よりなUIだとは思いましたが。

パターンファイルの編集はUI見た感じでは、まだまだ改善の余地ありに思えました。

自分でもしやるなら、一番あそこで苦労しそうです。それは教育受けたり(教育もセットでついてくるらしいので)で

カバーされるのでしょうけど。


ともかく、楽しかったです。Fortifyさん、ありがとうございました。