脆弱性診断の方法

脆弱性診断には、大きく分けて「手動診断」と「ツール診断(自動診断)」の2種類の方法があります。
「手動診断」は文字通り人の手を使って行うもので、セキュリティ事業者や社内のセキュリティ部門に属する専門知識を持つ診断員が直接検査を行い、結果を報告します。
これに対して「自動診断(ツール診断)」は、商用/OSSを問わず何らかの自動検査ツールを利用して検査するものを指します。手動診断と違って、診断のプロ以外の方が自ら実施することが可能ですが、診断ツールによってその難易度は大きく変わります。

また、診断項目はWebアプリケーションとプラットフォームによって異なります。

Webアプリケーションの脆弱性診断項目

  • SQLインジェクション:SQL文の不正な実行でデータベースを不正に操作される危険性がないように確認。
  • OSコマンドインジェクション:WebサーバーのOSコマンドを不正に実行されないかの検査。
  • クロスサイトスクリプティング:Webアプリケーションを通じて不正なスクリプトが実行されないかの検査。
  • クロスサイトリクエストフォージェリ(CSRF):Webサイト上で不正操作(書き込み)が行われる危険性がないか検査。
  • ディレクトリトラバーサル:アクセスできないはずのフォルダやファイルを閲覧されてしまわないかの検査。
  • 強制ブラウジング:公開予定でなかったコンテンツを勝手に操作・使用されないかの検査。
  • 認証機能・アクセス制御の不備:適切なログインを行わずにログイン後のコンテンツにアクセスできてしまわないかの検査。

プラットフォームの脆弱性診断項目

  • ホスト情報収集:OSやアプリケーション情報を収集し、プロダクトのバージョン等に問題ないかの検査。
  • ポートスキャン:サーバーやネットワーク機器が利用しているTCPやUDPの検査。
  • 脆弱性検査:OSやソフトウェアが持つ既知の脆弱性の検査。
  • サービス設定検査:不要なディレクトリの公開やサーバー設定に不備がないかの検査。
  • アカウント検査:FTP、Telnet等の一般的に利用されている汎用サービスで、推測可能なアカウントやパスワードが使われていないかの検査。