【セキュリティ対策|実務向け】制御システムを守るための「リスク分析」実践ガイド:資産と事業被害の視点

1. 導入:なぜ今、制御システムのリスク分析が重要なのか

製造業やインフラを支える制御システム(OT)がサイバー攻撃を受けると、単なるデータの漏洩にとどまらず、設備停止や大規模停電、さらには物理的な破壊といった人命にも関わる重大なインシデントに直結します。
ITシステムとは異なり、制御システムは「可用性(止まらないこと)」と「安全性」が最優先されます。限られた予算と人員の中で、どの資産を優先して守るべきかを判断するためには、勘や経験に頼らない「論理的なリスク分析」が不可欠です。本記事では、IPAが提唱する標準的な分析手法の考え方を整理し、実務への適用方法を解説します。

2. 基礎知識:リスク分析の2つのアプローチ

リスク分析とは、システムに存在する脅威を特定し、それが実現した際の影響度を評価する作業です。IPAのガイドでは、主に以下の2つのアプローチを推奨しています。

資産ベースのリスク分析:
システムを構成するサーバー、PLC(プログラマブルロジックコントローラ)、ネットワーク機器などの「資産」をリストアップし、それぞれの資産が攻撃を受けた際の影響を評価する手法です。資産の脆弱性に焦点を当てやすいため、技術的な対策を検討する際に有効です。

事業被害ベースのリスク分析:
「生産停止」や「品質事故」など、ビジネス上の最悪のシナリオを起点に分析する手法です。どの機能が止まると事業にどれほどのダメージがあるかを逆算するため、経営層への説明や予算確保に適しています。

3. 実装/解決策:リスク分析の進め方

実務でリスク分析を行う際は、以下のステップを繰り返すことが重要です。

1. 資産の棚卸し: ネットワーク構成図を元に、インベントリを作成する。
2. 脅威の想定: 外部からの侵入、内部不正、マルウェア感染など、考えられる脅威をリストアップする。
3. 評価の定量化: 「被害の大きさ × 発生確率」でリスクスコアを算出する。
4. 対策の優先順位付け: スコアが高いものから順に、費用対効果の高い対策を割り当てる。

4. サンプルプログラム:リスク評価スコアリングツール(簡易版)

Excel管理が一般的ですが、自動化の第一歩としてPythonを用いた簡易評価スクリプトを紹介します。


資産ごとのリスクスコアを算出する簡易的なコードです
影響度と発生確率を1-5で入力し、リスクレベルを判定します

def calculate_risk(impact, probability):
# リスクスコア = 影響度 発生確率
score = impact probability

if score >= 20:
return "高リスク:即時対策が必要"
elif score >= 10:
return "中リスク:段階的な対策を計画"
else:
return "低リスク:現状維持および監視"

資産リストの例
assets = [
{"name": "生産管理サーバー", "impact": 5, "probability": 4},
{"name": "現場用HMIパネル", "impact": 3, "probability": 2}
]

print("--- 制御システムリスク評価結果 ---")
for asset in assets:
result = calculate_risk(asset["impact"], asset["probability"])
print(f"資産: {asset['name']} | 判定: {result}")

5. 応用・注意点:現場で陥りやすい罠

現場でリスク分析を行う際、以下の点に注意してください。

・「分析のための分析」にならないこと: 完璧なリスト作成にこだわりすぎて、対策の実行が遅れるケースが多々あります。まずは主要なプロセスに絞って評価を始める「スモールスタート」を推奨します。
・現場担当者の巻き込み: セキュリティ担当者だけで評価せず、必ず現場の運用担当者をヒアリングに参加させてください。現場特有の「止めてはいけないタイミング」や「保守上の盲点」は、現場の人間しか知り得ない情報だからです。
・継続的な見直し: 機器構成や生産ラインに変更があった際は、必ず再評価を行ってください。一度実施して終わりではなく、PDCAサイクルを回すことが、制御システムを守るための唯一の道です。

IPAが公開している「制御システムのセキュリティリスク分析ガイド」は、これらのプロセスを体系的に網羅しています。まずは最新のガイドを確認し、自社の運用に合わせたカスタマイズを検討してみてください。

コメント

タイトルとURLをコピーしました