1. 導入:なぜプロテクションプロファイルが重要か
IT製品やシステムの調達において、「どのようなセキュリティ機能を備えるべきか」という要件定義は非常に困難です。要件が曖昧だと、ベンダー選定時に機能差の評価が難しく、導入後に期待したセキュリティレベルに達していないというリスクが生じます。
ここで役立つのがプロテクションプロファイル(Protection Profile:PP)です。これは国際規格であるISO/IEC 15408に基づき、特定の技術分野において「満たすべきセキュリティ要求仕様」を記述したものです。IPAが公開している海外のPP翻訳を活用することで、グローバルスタンダードに準拠した調達要件を迅速かつ論理的に策定できます。
2. 基礎知識:プロテクションプロファイルとは
プロテクションプロファイル(PP)は、IT製品のセキュリティ評価・認証制度(CC認証)において、製品が準拠すべき「要件の共通テンプレート」のような存在です。
主な役割:
・調達担当者の指針: 専門的なセキュリティ要件をゼロから作成せず、国際的に認められた基準をベースにできる。
・ベンダーの指針: 開発時にどのようなセキュリティ機能を実装すべきかの明確な目標値となる。
3. 実装・解決策:PPを活用した調達要件の策定手順
実務で活用する際は、以下のステップで進めることを推奨します。
1. 対象分野の特定: IPAの公開資料から、導入予定のIT製品(ファイアウォール、DBMS、モバイルデバイス等)に近いPPを探す。
2. 要件の抽出: 翻訳されたPDFから、自社のセキュリティポリシーに合致する「セキュリティ機能要件」をリストアップする。
3. ベースラインの策定: 抽出した項目をRFP(提案依頼書)の技術要件として組み込む。
4. 原文との照合: 翻訳はあくまで参考資料です。正式な調達仕様とする場合は、必ず認証機関(NIAPやCC Portal)の原文を確認してください。
4. サンプルプログラム:要件管理のための簡易チェックリスト生成スクリプト
PPから抽出した要件を管理するための、Pythonによる簡易的な管理ツール例です。
セキュリティ要件を管理するCSVファイルを読み込み、未実装項目を抽出するスクリプト
import csv
def check_security_requirements(file_path):
# 要件定義書(CSV)の読み込み
# 形式: ID, 要件名, 適合ステータス (OK/NG/未検討)
try:
with open(file_path, mode=’r’, encoding=’utf-8′) as f:
reader = csv.DictReader(f)
print(“— 未適合(NG/未検討)のセキュリティ要件一覧 —“)
for row in reader:
if row[‘status’] != ‘OK’:
# 適合していない要件を警告
print(f”警告: 要件ID {row[‘id’]} ({row[‘name’]}) が満たされていません。”)
except FileNotFoundError:
print(“ファイルが見つかりません。”)
実行例
check_security_requirements(‘requirements.csv’)
5. 応用・注意点:現場で陥りやすい落とし穴
・「翻訳」の限界を理解する
IPAの翻訳文書は非常に有用ですが、あくまで「参考」です。最新の脆弱性情報や追加された「拡張パッケージ(EP)」が反映されていない場合があるため、重要プロジェクトでは必ず最新の原文(英語)を併読してください。
・過剰スペックの回避
PPに記載されている要件は「最高レベル」のセキュリティを意図している場合があります。自社の運用環境において、すべての要件が本当に必要か(コストとセキュリティのバランス)を精査することが、プロジェクトを成功させる鍵となります。
・「コモン・クライテリア(CC)」との関係性
CC認証を取得している製品を選ぶのか、単に要件の参考にしたいのかで利用の重みが変わります。調達要件として「CC認証取得済みの製品に限る」とする場合は、PPへの準拠が必須条件となるため、事前のベンダーヒアリングを徹底しましょう。

コメント