セキュリティ試験を受ける前に準備すること
セキュリティ試験の依頼を受けたとき、最初に確認することがあります。「試験に必要な情報が揃っているか」です。これが整っていないと、試験の開始が遅れるだけでなく、試験範囲や深度の設定が曖昧になり、試験結果の有用性が下がります。準備として押さえておくべきポイントをまとめました。
まず「何のための試験か」を整理する
セキュリティ試験にはいくつかの目的があります。どれを主目的にするかで、試験の種類・範囲・深度が変わります。
- 承認・認証のための試験:当局や認証機関への提出を念頭に置いた試験。試験計画書・結果報告書の整備が前提になります。
- 脆弱性の把握のための試験:製品リリース前や改修後に、既知の弱点を洗い出すことを目的とします。網羅性よりも「重要な弱点を見落とさない」点を重視します。
- 第三者への説明のための試験:病院への納入時や、入札条件への対応のために、第三者評価の記録が必要なケースです。
目的によって「どの試験を、どの深さで実施するか」が変わるため、最初に確認しておかないと、後から試験をやり直すことになります。
試験前に揃えるべき情報
試験実施者側に渡すべき情報として、最低限以下を準備します。
- 製品の外部仕様書・通信仕様書:どのポートを開けていて、どのプロトコルを使っているか。認証方式、データ形式なども含みます。
- 使用しているOSS・ライブラリのリスト:SBOMがあれば理想的ですが、主要なコンポーネントのバージョン情報があれば、既知脆弱性との突合が可能になります。
- ネットワーク構成図:製品が接続されるネットワーク環境の概略。電子カルテや他の医療機器との接続関係も含みます。
- 試験対象バージョン:試験するファームウェア・ソフトウェアのバージョンを明確にしておかないと、試験結果の再現性が担保できません。
「仕様書がまだない」「ネットワーク図は作っていない」という段階では、先に最低限の整理を進める必要があります。
試験の種類と何が分かるか
よく使われる試験の種類と、それぞれで分かることを整理します。
- ペネトレーションテスト:実際に攻撃者が使うような手順で侵入を試みます。「実際に侵入できるか」の確認に適しています。試験者の技量に結果が左右されやすいため、試験仕様の明確化が重要です。
- ファジング:通信インターフェースに大量の不正・異常なデータを送り込み、クラッシュや予期しない動作を検出します。通信実装のバグを効率よく見つけられます。
- 静的解析:ソースコードや実行ファイルを解析し、脆弱な実装パターンを検出します。ソースコードを提供できる場合は有効ですが、独自実装でない部分(OSS)は別途確認が必要です。
- 既知脆弱性スキャン:使用コンポーネントのCVE(共通脆弱性・露出)への該当を確認します。SBOMが整備されていれば精度が上がります。
「お試しテスト」から始める選択肢
いきなり本格的な試験に踏み込む前に、限定的なスコープで現状を把握する「お試しテスト」も有効です。AIGISでは、ヒアリング後にNDA締結を前提として、軽量な試験から始めることもできます。「何がどの程度できているか」の確認から支援していますので、まずはご相談ください。