システムの脆弱性を発見する「脆弱性診断」

「脆弱性診断」では、公開するWEBサービスに脆弱性が含まれていないかどうかの診断を行います。

セキュリティ対策を意識した対策をしていても、100%安全なシステムを構築するのは至難の業です。最大限の考慮をしつつ、脆弱性診断を行うことでより安全性の高いシステムを維持することが可能です。

脆弱性診断の診断箇所

脆弱性診断には「手動」と「自動」の2通りの方法があります。

定型的なチェックは、「手動」よりも「自動」のほうが「早く」「大量に」「安価に」行うことが可能です。

一方、非定形的なチェックは「手動」診断に頼ることになります。

診断内容には次の3種類のものがあります。

・ アプリケーション診断
・ ネットワーク診断/プラットフォーム診断
・ AWS診断

アプリケーション診断

システム自体の脆弱性について診断を行います。SQLインジェクションを引き起こすようなパラメータを使ったログイン試行やURLパラメータの付与など、システムに応じた形で診断を行っていきます。

システム固有のものが多いため、「手動」診断が主となります。価格はチェック対象URLに応じた費用体系となり、高額の費用感となります。

ネットワーク/プラットフォーム診断

サーバ環境の設定やミドルウェアについての診断を行います。ファイアウォールの適用有無や、脆弱性が発見されているバージョンのミドルウェアの利用有無などのチェックが可能です。

システム固有のものが多いため、「手動」診断が主となります。価格はチェック対象URLに応じた費用体系となり、高額の費用感となります。

AWS診断

AWSに特化した診断を行います。セキュリティ上望ましくない設定や推奨設定の未設定などの診断が可能です。

脆弱性診断の流れ

脆弱性診断は診断をして終了ではありません。診断結果を踏まえた対処と確認が必要になります。

まず、診断結果をもとに対処方法を決定する必要があります。リスクが高いものについては、バージョンアップや修正対応などの対処を実施します。リスクが低いものは対応コストを加味して対応有無を決定していきます。

対応方針が決定したら、ミドルウェアのバージョンアップなどの対処を行います。バージョンアップを行うと、システムの動作不具合を引き起こすこともあるので、対処後の動作確認も忘れずに行う必要があります。

全ての診断結果に対する対処が完了したあとは「再診断」を行います。指摘事項がすべて想定通りのステータスとなっていることが確認できたら終了となります。

脆弱性診断のタイミング

脆弱性診断はいつ行えばいいのでしょうか?

まず最初に必要になるのは、新規システムのリリース前です。新規リリースは可能な限りセキュリティリスクを排除した状態で行いたいものです。脆弱性診断をすることで、開発したシステムがセキュアコーディングで守られているか、各種ミドルウェアが脆弱性を抱えたバージョンになっていないかを確認します。「手動のアプリケーション診断」と「自動のネットワーク診断」を組み合わせて利用することが多くあります。

リリース後は定期的に診断を行います。利用するミドルウェアの新たな脆弱性は常に発見されている状況です。有名のものであればあるほど数多くの脆弱性が発見されています。定期的なネットワーク診断を行うことで、新たな脆弱性に対するリスクを洗い出すことが可能です。

システムの大型アップデートを行った場合は、「手動のアプリケーション診断」を再度実行します。

脆弱性診断はシステムが抱える脆弱性の発見に役立てることが可能です。診断対象は複数あるので、タイミングに応じた形で診断を行いましょう。また、診断によって発見されたリスクについて対処を行い再診断を行うところまでをセットで考える必要があります。余裕を持ったスケジュールを組んで臨みたいところです。

おすすめの脆弱性診断

脆弱性診断サービス