■注■ 製品評価ではありません、あくまで一ユーザの感想ということで。
■注■ V社の提案書からこちらへ辿り着いた皆様、多分その提案書書いたの私です。問題点も指摘はしていますが、理解したうえで回避していますので、ご安心下さい。
Webアプリ脆弱性診断ツール
Netsparkerをしばらく使ってみての感想です。
インターフェース・使い勝手
取っ付きやすさについて言えば、Netsparker>>>WebInspect>>>>>>某Scan>>>>>Burp って感じ。
慣れたあとの使いやすさに関して言えば
某Scan>>>Netsparker>>>>>>>>>>>>>WebInspect=Burp って感じ。
ログインマクロなんかはWebInspectよりはるかに楽で信頼できます。ただ、設定無しでScan Nowして動くかと言ったら無理。
じゃあ玄人向けかというとそうでもない。驚いたのがトラフィックモニターがない。ログすら取ってない。取りたきゃFiddlerでも使えとヘルプに書いてある潔さ(?)
で、きちんと動いているかどうかどう確認すればいいか、っていったらトラフィックログ見るしか無いんですね。デバッグログとか一応あるけど貧弱で使い物になりません。
(トラフィックログについてはサポートを問い詰めたらFidller形式で保存する隠し機能がある事を白状しました)
クローラ
ダメです。見落とすし不必要なところを見にいくし。Manual CrawlかImportを使いましょう。ただしManual Crawlには後述する大バグが。
脆弱性の検出率
厳密に評価してないんで分かりません。でもまあ割と色々検知してます。
サポートしている脆弱性
さすが商用ツールだけあって広いです。WebInspectとの違いを感じたのはWordpressの検出とか。
StrutsのOGNL Injectionは当初対応してませんでしたが、「対応せんのー?」と問い合わせを入れたところ(別件でCEOを引っ張り出してたこともあったのか)翌日のアップデートで対応されました。
安定性
今のところ問題なし。WebInpectの苦労がウソのよう。PauseしてRestartしたらクラッシュしないかとか心配する必要がありません。
バグ
安定性はいいのですが、バグは多い。対応は速いんですけど、うーん。
・Manual Crawlを使うとCSRFトークンを認識しない(報告済み・修正困難との回答)
・Imported URLに出るのにSitemapに現れず診断してくれない場合がある。再現性いまいち。回避できるっぽい方法もアリ(追記:再現性が無くなったため保留中)
・Custom Cookieを忘れる場合あり(追記:報告後数日で修正されました)
速度
不満はありません、最高で35req/secぐらい目撃しました。
厄介なセキュリティ機構への対応
ログインマクロ・Captcha
ログインマクロはCaptchaも対応しており、今まで使用してきた診断ツールの中では一番優秀です。Logout Conditionも自動で判定してくれ、もちろん手動での修正も可能。
CSRFトークン
サイトで自慢気に謳っているCSRFトークンは前述のとおりManual Crawlの際に機能しない大バグがあります。
BurpのMacro使って暫定対応させてますが、非常に遅くなるのでCSRFトークンが必要な機能についての診断をどうするかは検討中・・・
こんな状態で出荷すんなよと言いたい。こういう点でも素人にはおすすめできません。
SSLクライアント証明書
一応対応していますが、挙動がおかしくなるとの報告もあります。(未確認)
レポート
英語しか対応してませんが、そこそこ使えるPoCもセットで出してくれます。SQLインジェクションツールも、もちろんついてます。OSコマンドインジェクションツールもあります。
またPoCが出せない場合も脆弱な疑いがある場合は”Possible"としてレポートしてくれます。
ただ、Aタグ内に"onload="alert(9)"を挿入して「これがPROOFや!」とドヤ顔で報告してきたりもします。
サポート
英語とイギリス時間になりますが、割と的確な返事が早く返ってきます。ライセンスを購入していれば高額なサポート契約等は必要ないというのはGood。
"World Wide Support"とか謳ってたので「日本語対応せんのー?」と聞いてみましたが、「World Wide SupportってのはWebでサポートするってことだよ、あと英語だけっす」という回答が。なにそれ普通。ちなみにUIはなぜか韓国語にだけ対応。
その他
Burpほか様々なフォーマットから診断対象をインポートすることができます。
WIのProxyモードと違って、診断に必要なURLだけエクスポート元で選んでおくということができるので、食わせたい条件が複雑なシステムの場合、この機能を使うとよいかも。ただ恐らくこの機能もCSRFトークンは機能しないでしょう。
ヘルプを読んでいたら「1パラメータあたり約1000リクエスト発生します」とあったので目玉が飛び出ましたが、実際回してみるとそこまでは発生しませんでした。
WebInspectと違い、リアルタイムにスレッド数を変えられます、また設定でウェイトを設定することもできます。ただスロットル調整は難しいです。少ないと遅いし上げすぎるとタイムアウトと再送が発生して効率が落ちるし。もうちょっとインテリジェントにならないものか。
左のペインに診断対象リクエストが表示され、チェックボックスがあるので診断中にチェックを外してみましたが、どうもすぐには反映されない模様。
Scopeの設定が直感的でなく、未だに混乱する。またWebInspectと違いManual Crawl中にOut of scopeになってしまったURLを後から追加する方法が恐らく無いので、設定をミスったらやり直し。
「Compare」はあるものの「Scan Again」的な機能がないので、診断開始後にやり直したくなった場合はクロールからやり直しになります。(WebInspectにもない)
「Compare」はアテになりません。手動で確認しましょう。
総合評価
Burp等での手動診断ができ、かつ診断ツールのよくあるトラブルをトラフィックログから見つけられる熟練者のセカンドツールとしては悪くありませんが、初心者がこれだけで診断するのはキツイでしょう。