ペネトレーションテストについてまとめ

Updated: / Reading time: 5 minutes

ペネトレーションテストとは

システムやネットワークの脆弱性を検証するテストのこと。対象に実際に攻撃を行い侵入を試みる。

プログラムの脆弱性対応が不十分だったり、ミドルウェアの設定が不十分だったり、ミドルウェアやOSに新しい脆弱性が発見されることがある。そこで、実際に攻撃を受けた場合にどの程度耐えられるかを検証する。

ペネトレーションテストは実際にシステムを攻撃するため、セキュリティについて専門的な知識が必要になる。このため、テストサービスを提供する専門業者に依頼することもある。

参考リンク

実施時期

以下のタイミングでテストを実施する。

  • 開発中
    • 開発中システムのテストがほぼ完了して修正が落ち着いた段階で行う事が多い。リリース前に脆弱性がないことを確認する。
  • リリース後、定期的
    • 新たな攻撃手法や脆弱性は日々公表されている。このため、新たな攻撃手法を取り入れたペネトレーションテストを定期的に実施したほうが良い。
    • 定期的に行う場合、保守作業として調整する。また、PDCAサイクルに則って運用するべき。

脆弱性が発見された場合

脆弱性が発見された場合にどうするかは、テストを行う前に検討するべき。脆弱性の発見は基本的にリスク管理項目であるため、以下のリスク対応を行う。

  • リスクの低減
    • 脆弱性に実際に対応する。プログラムの修正、ミドルウェアの設定変更、パッチの適用など。
    • 多くの場合、この対応を採用することになる。
  • リスクの保有
    • 脆弱性を突かれた場合の影響が十分に小さいため、対応を行わずに許容範囲内として受容する。
    • リリース・スケジュールの都合、予算の都合などで決定されることもある。
  • リスクの回避
    • 脆弱性がある機能・原因を全く別の方法に変更することで、脆弱性を完全に除去する。例えば、「インターネットからの不正侵入」に対して、インターネットへの公開を停止する、など。
    • リスクを保有する機能の利便性よりリスクが十分に大きい場合に取る対応で、非常に慎重に検討するべき。
  • リスクの移転
    • リスクを他社に移転すること。例えば、リスクに対して保険をかけたり、一部の運用を他社に委託したりするなど。

参考リンク

業者

Google先生に聞いたところ、以下のサービスが見つかった。

ツール

もちろん、自分でペネトレーションテストを行うこともできる。個別の攻撃ツールを使っても良いが、総合的にテストを支援するツールが提供されている。

その他、参考サイト

備考: 不正侵入の手順

不正侵入は以下の手順で行われる。

  • 事前調査
    • 対象とするシステムの侵入方法・脆弱性を調査する。
  • 権限取得
    • システムに侵入し、ユーザーの権限を取得する。これにより、以降は(システムにとって)正しいユーザーとして行動することができる。
  • 不正行為
    • 個人情報を盗む、パスワードを盗む、個人情報を盗むなどの不正行為を行う。
  • 後処理
    • 侵入・操作した痕跡を消す。これにより、犯行が気づかれにくくなる。

備考: 疑問点、課題

  • 実施するタイミングによって実施内容は変わるか?
  • 報告は、どのような形式で行うか?
  • チェック観点に対する、侵入された時に発生する一般的な事象。
  • 発生した場合の想定される事象。影響。
  • 対応する場合の工数。
  • 瑕疵か否か。
  • 実施手順を策定する。対象アプリケーションのパターンを想定して。
  • 報告書のテンプレートを作成する。