なにやら脆弱性診断が熱いっぽいので、ユーザー企業のセキュリティ担当だった立場から、ぼちぼち述べてみます。
目次
脆弱性診断その前に
Web 診断業者に、脆弱性診断を頼む前にユーザー企業で取り組んでおくべきことがあります。
これを抜きにして脆弱性診断を行っても、時間とお金ばかりかかって成果を上げられません。
セキュリティ標準の策定
ユーザー企業でまず行わなければいけないのは、経営層を巻き込んだ「セキュリティ標準」の策定です。
セキュリティ標準では、何を、どのレベルで、どのように守るかを規定します。そして、これをユーザー企業が係るすべてのシステムに対して「強制的」に適用します。
セキュリティ標準に強制力がないと、脆弱性診断を受けたいと思っても、コストがかかるからダメとなるのは必然です。しかし、経営層が決めたことに反発しようとする人は少ないので、経営層を巻き込んでセキュリティ標準を作成することが重要になる訳です。
セキュリティ教育の実施
次に重要になるのは、全社員に対するセキュリティ教育です。
社員は「開発者」だけでなく、「発注者」や「ユーザー」も含みます。この人達にもセキュリティの重要性を分かってもらわなくてはなりません。そうしないと、脆弱性のあるシステムを発注したり、脆弱なサービスを利用するようになってしまうためです。
全社員向けには、情報セキュリティの重要性とセキュリティ標準について教育します。
発注者や開発者などシステムに関わる社員については、Web アプリケーションセキュリティに関する教育を追加で行います。最低でも、IPA が公開している「安全なウェブサイトの作り方」ぐらいは理解してもらいましょう。
セキュリティ対策の運用
セキュリティ標準ができ、セキュリティ教育を行ったとしてもそれだけでは何も始まりません。
セキュリティ対策の運用ができて初めてセキュリティ対策を行っていると言えます。
脆弱性診断の種類
前置きが長いですが、まだ脆弱性診断を受けることはできませんw
まずは、脆弱性診断の種類を知る必要があります。
プラットフォーム診断と アプリケーション診断
脆弱性診断の種類には、「プラットフォーム診断」と「アプリケーション診断」があります。
プラットフォーム診断では、ネットワーク機器、OS、ミドルウェアなどに脆弱性がないか、設定に不備がないかなどを診断します。
アプリケーション診断は、実際に構築した Web アプリケーションに脆弱性がないかを診断します。
両方の診断を行うとよいでしょう。
ツール診断と手動診断
脆弱性診断の方法には、「ツール診断」と「手動診断」があります。
ツール診断は、ツールを使って脆弱性診断を行います。
ツール診断の特徴は、機械的に診断を行えるので、システム全体を網羅的に低コストで診断を行えます。但し、柔軟な対応は苦手です。
手動診断は、人間が目と手とツールを使って脆弱性診断を行います。
手動診断の特徴は、人間が診断を行うので柔軟な診断が可能です。但し、手動診断は時間とコストがかかります。
ツール診断で全体を診断し、重要な部分は手動診断で行うことが、費用対効果から見て妥当でしょう。
Web 診断業者の選定方法
Web 診断業者の選定はどのように行えばよいでしょうか。
正直、Web 診断業者は玉石混交で、当たり外れが激しいです。
一番いいのは、すでにセキュリティ対策を行っている企業の担当者から紹介してもらうことですが、なかなか紹介してはもらえないでしょう。その情報自体がノウハウだからです。
知名度と実績のある企業を選択するのも一つの方法です。コストはかかりますが、ハズレは少ないです。
複数の Web 診断業者を実際に試して比較する方法は、コストがかかりますが最終的な満足度は高いでしょう。
それでは、よい Web 診断業者とはどのようなものでしょうか。
私は、妥当なコストで、柔軟性があり、技術力があり、相談に乗ってくれるところだと考えています。
簡単に書きましたが、なかなか厳しい基準です。
低コストを求めると、低品質になるので妥当なコストを求めますが、それに見合ったレベルである必要があります。
柔軟性があるとは、スケジュールや診断メニューが柔軟であるということです。結構、診断スケジュールを組むのは難しいので、少々難しいスケジュールにも応えてくれるとうれしいです。診断内容と費用の調整も必要なので、柔軟に対応してほしいです。
技術力があるというのは、脆弱性診断の技術力があるのはもちろん、脆弱性が発見された時、その対処方法も示してくれるということです。
相談に乗ってくれるというのは、言うのは簡単ですが難しいです。例えば、脆弱性診断の話は当然ですが、脆弱性診断の話の途中で WAF (Web Application Firewall) の相談を受けてそれに応えられるかとかです。
これらの内容に応えてくれるところは、よい Web 診断業者と言えるでしょう。
実際の脆弱性診断
実際に脆弱性診断を行うとき、どのようなことを行うのか、典型的なケースで見てみましょう。
概算見積もり
システムの画面遷移図や設計図を渡し、希望を伝え概算見積もりを取ります。その際、プラットフォーム診断なのか、アプリケーション診断なのか、どの程度の費用感とスケジュールなのかを伝えておきます。
診断内容打ち合わせ
概算見積もりを元に、診断内容の打ち合わせを行います。一般的には、ここで画面遷移図が作成されて、どこをどのように診断するのか、スケジュールと費用はどうするのかなどの詳細を詰めていきます。
個人的な意見ですが、プラットフォーム診断を行うのなら、ファイアーウォールに穴を開けて、全てのポートに対して診断を行うことをお勧めします。ファイアーウォールの外からの診断もできるのですが、ファイアーウォールでブロックされてしまい、本当はある脆弱性が検出されないかもしれないからです。
アプリケーション診断であれば、ログイン機能、手順が決まっている機能、外部システム連携機能、重要情報を扱う機能などを手動診断対象にするとよいと思います。これは最低限で、費用の許す限り広げていくスタンスがよいかと思います。
脆弱性診断実施当日
脆弱性診断を行う前はいろいろ大変ですが、脆弱性診断当日は何ごともないかのように終わります。
あっても、ちょっとした問い合わせ程度です。
脆弱性診断後
脆弱性診断が終了すると、数日後、脆弱性診断報告書が送られてきます。報告会がある場合は、その場で渡されますが、正直なところ報告会はあまり意味がありません。
脆弱性診断報告書が Web 診断業者の一番の腕の見せどころです。どういう診断をどのように行い、その結果を報告する書類だからです。技術力が全て出ますからね。他社に見せてはいけないという企業がほとんどです。
開発者は、脆弱性診断報告書を見て、一喜一憂します。
その後、脆弱性を修正して再診断を受けるのですが、再診断が無料のところと有料のところがあるので注意が必要です。どちらがよいとは言えませんが、無料のところでも1回だけ無料で2回目以降は有料なので、脆弱性は一回で片を付けるのがよいでしょう。
Web 診断業者に求めること
脆弱性診断について見てきましたが、Web 診断業者にはやはり技術力とサポートを求めたいです。
こちらもある程度の知識はあるので、それを前提として、こちらでは対処できない技術のサポートを受けたいです。特に、ファイルアップロードに関する脆弱性には苦しめられましたので。
開発者のレベルが低い場合は、教育的なサポートも期待したいですが、それはきっと別費用なのでしょうね。
おわりに
脆弱性診断について、いろいろ見てきましたが、いかがだったでしょうか。
脆弱性診断を実際に行ったことがない方には馴染みのない内容だったかもしれません。そうだとすれば、書いた意味があったというものです。
脆弱性診断は、もう必須の時代なので、どう診断を受けるかを考えるとよいと思います。
参考
Webアプリケーションセキュリティに関する記事は、以下のページにまとまっています。ぜひご確認ください。
コメント