CSIRTの活動ではセキュリティ事故の事後対応ばかり注目されがちだが、事故を未然に防ぐ働きも欠かせない活動の一つである。事故防止に効くのが脆弱性の有無を確認する「脆弱性検査」だ。アプリケーションとインフラに分け、複数の検査で逃さず検出しよう。

 脆弱性を検査できる技術者をCSIRT(セキュリティ事故対応チーム)に配置すると有事に役立ちます。脆弱性を悪用する攻撃を未然に防げるだけでなく、攻撃に遭った際は速やかに原因を調査して二次被害を防ぐ対策を打てるからです。

 昨今、平時の脆弱性検査をミッションとして掲げるCSIRTが増えています。日本コンピュータセキュリティインシデント対応チーム協議会(日本シーサート協議会)は2015年に公開した「CSIRT人材の定義と確保」で、CSIRTが保有すべき役割の一つとして「脆弱性検査、診断」を挙げています。

 とはいえ、セキュリティ技術者の不足が深刻化する中、脆弱性を検査できる技術者を自組織で抱えにくいのが実態です。今回は必要に応じて外部専門家の助けを借りつつ、自組織で脆弱性を検査するポイントを解説します。

手動検査と自動検査を組み合せる

 まず脆弱性の検査方法から説明します。検査方法は技術者が手作業で実施する手動検査とツールを使った自動検査に大別できます。手動検査は様々な種類の脆弱性を検出できますが時間がかかり、技術者のスキルや経験、勘所などで結果に差が出がちです。

 自動検査には「OWASP ZAP」など無償で使えるツールが多数あります。専門的な手動検査が難しい場合でも、無償ツールを使って未然に脆弱性を防ぐ簡易検査をスタートできます。効率的に一定の品質で脆弱性を検出するには、まず自動検査で脆弱性のありそうな箇所に当たりを付け、手動検査で深く調査する組み合わせがお勧めです。