Japan Computer Emergency Response Team Coordination Center

電子署名者 : Japan Computer Emergency Response Team Coordination Center
DN : c=JP, st=Tokyo, l=Chiyoda-ku, email=office@jpcert.or.jp, o=Japan Computer
Emergency Response Team Coordination Center, cn=Japan Computer
Emergency Response Team Coordination Center
日付 : 2012.03.02 10:37:07 +09'00'

制御システムセキュリティの現実

株式会社サイバーディフェンス研究所
福森 大喜

自己紹介
• 福森 大喜• 株式会社サイバーディフェンス研究所• 上級分析官
• ペンテスト、マルウェア解析、インシデントレスポンス、等々• NEDO 米国ニューメキシコ州における日米スマートグリッド実証• NEDO ハワイにおけるスマートグリッド実証事業
NEDO : 独立行政法人 新エネルギー・産業技術総合開発機構※ 本日お話する内容は両事業とは関係ありません。

NEDO スマートグリッド実証＠ニューメキシコ(Ⅰ)ロスアラモス郡におけるマイクログリッド実証••

2～5MW程度の配電線において、ＰＶ及び蓄電池を集中的に導入し、配電線の系統構成を切換えることによりＰＶ導入比率を変えることの可能な配電線にて、ＰＶ変動吸収を可能とするＥＭＳと情報通信技術の構築・実証。
スマート配電機器を導入し、高い信頼性を有する配電系統の構築・実証。

(Ⅱ)ロスアラモス郡におけるスマートハウス実証•

ＰＶ、蓄電池、蓄熱機器、ＩＴ家電といった需要家機器、スマートメータ技術とリアルタイムプライシングを組み合わせたＥＭＳ、宅内・宅外通信システムを有するスマートハウスの構築。一般住宅と比較し、効果を実証。

(Ⅲ)アルバカーキ市における商業地域マイクログリッド実証••

自立運転可能なビル(600kW程度)需要地システムを、蓄電池、ガスエンジンコージェネ、燃料電池、蓄熱槽、ＰＶ(100kW程度)等により構築し、高い信頼性を有する供給体制を実証。
配電系統内に設置されたＰＶの変動を、ビル側ＥＭＳと系統側ＥＭＳを連系することにより吸収できることを実証。

(Ⅳ)全体総括研究•ⅰ）スマートグリッド全体とりまとめ研究•ⅱ）ＰＶ等分散電源の評価•ⅲ）単独運転検出装置など分散電源保安技術に関する検討•ⅳ）サイバーセキュリティ及び情報通信技術の研究•ⅴ）モデル・シミュレーション開発•ⅵ）全体総括研究
参照：http://www.nedo.go.jp/content/100080745.pdf

写真提供：SHIMIZU NORTH AMERICA, LLC
Copyright © 2011 Cyber Defense Institute, Inc. All rights reserved.

NEDO スマートグリッド実証＠ハワイ
マウイ島におけるEVを活用した離島型スマートグリッド実証再生可能エネルギーの出力変動により、顕著化している周波数への影響などの電力系統への影響を緩和するための、EV充電、および電力系統内に設置した蓄電池を制御するEVMS（EVManagement System）を構築し、有効性を実証。
2. Kihei地区における1配電用変電所レベルのスマートグリッド実証全米共通の課題である配電系統の信頼性向上を目的として、太陽光発電（以下、PVという）・EVが導入された配電線において、電圧変動や低圧変圧器の過負荷などの影響を緩和し、また上位系統と協調運転が可能なDMS（Distribution Management System：配電用変電所レベル）を構築し、有効性を実証。
3. 低圧系統（1低圧変圧器レベル）におけるスマートグリッド実証PV、EVが導入された低圧系統（低圧変圧器レベル）において、低圧変圧器の過負荷などの影響を緩和し、その上位のDMSと協調運転が可能なμ‐DMS（低圧変圧器レベル）を構築し、実証。
4. 全体総括研究全体総括研究を米国と連携して、本実証事業の効果分析、経済性評価、ビジネスモデル構築・検証を実施。サイバーセキュリティの研究含む。
参照：http://www.nedo.go.jp/news/press/AA5_100067.html
1.

Copyright © 2011 Cyber Defense Institute, Inc. All rights reserved.

本日お話しする領域大きく分けて、• PLCとの通信に関わる脆弱性• HMI上のサーバに関する脆弱性• スマートメーターに関する脆弱性

PLC (Programmable Logic Controller)• フィールド機器（バルブ、ポンプ、ライト、モーター、ロボットアーム、etc）とやり取りをする• IOを読み取る、命令を送る

HMI• HMIからの命令により動く• 認証は（ほとんど）ない

PLC
引用元：http://www.automation.siemens.com

よく使われるプロトコル• Modbus• DNP3• ICCP• Ethernet/IP• Profibus / Profinet• BACNet• 独自プロトコル

Modbusの仕様（リクエスト）

transaction id protocol id length

functionbit countunit idreference
numberModbusの仕様（レスポンス）

値がOffからOnに切り替わったModbusサーバへのアクセス
正規のユーザ

PLC
読み取り／書き込み要求

結果

port:502
Modbusクライアント（マスター）

攻撃者

読み取り／書き込み要求
結果

Modbusサーバ（スレーブ）

Modbusサーバの脆弱性
サーバ（port 502）へ不正なパケットを送ることで任意のコマンドを実行可能

Modbusクライアントの脆弱性

実際よりも長いlengthを指定することでクラッシュ

PLCによくある脆弱性• HTTPサーバの脆弱性（デフォルトパスワード、認証バイパス、XSS、CSRF）• Telnetサーバの脆弱性（デフォルトパスワード、メンテナンス用アカウント）• (T)FTPサーバの脆弱性（認証なしで機密ファイルにアクセス）• バッファオーバーフロー• Modbus等のパケットパースエラー• ICMPのハンドリング

HMI (Human Machine Interface)• PLCを操作するためのインターフェース• PLCにアクセスし、情報を取得• 見やすい形に加工して表示
HMI• 入力や値の変化に応じてPLCに命令を出す

PLC
引用元：http://www.automation.siemens.com

使われ続けるデフォルト設定

バッファオーバーフローにより任意のコマンドを実行可能
HMIの例

制御システムにおけるバッファオーバーフローの特徴• 多くのケースで「任意のコマンド実行」が可能• OS、コンパイラが提供するセキュリティオプションが無効になっていることが多い• アプリケーションがクラッシュするだけでも問題（制御システムは可用性が最も重要）

問題が起こりやすい場所• Webサーバ• FTPサーバ• SQLサーバ• ODBC接続• 独自プロトコルのサーバ

SQLインジェクション(?) in AJAXSQLコマンド結果

SQLインジェクション(?) in サーバポートに接続

SQLコマンド発行
結果

SQLコマンド発行

ディレクトリトラバーサル in Webサーバ
その1サーバ上のファイルを読み出しディレクトリトラバーサル in Webサーバ
その２サーバ上のファイルを読み出しディレクトリトラバーサル in FTPサーバ

FTPで接続
ユーザ名は何でも通る

ディレクトリトラバーサル

取得成功

GE製品にも同様の脆弱性• CVE-2008-0175• GE Fanuc Proficy Real-Time Information Portal

7-Technologies (7T) IGSS Data Server
がバッファオーバーフローによりクラッシュする脆弱性• UCQによる届け出• ICSA-11-335-01• 確保されたバッファより大きなデータが書き込まれた際に発生する

http://www.us-cert.gov/control_systems/pdf/ICSA-11-335-01.pdf

独自プロトコルで通信

2

2

2

4

4

2

24n

長さ不明

不明

コマンド不明不明

不明

操作

引数コマンド一覧• Request Online• Request Log• Request BCL• Request HDM• Request ELM• Request CMDSTAT• Request RMS

••
•
•
••
•

Request STDREP
Request ALM
Request ALMTXT
Request USERS
Request DESCR
Request general file
Request alarm Note

ファイルの操作一覧• ListAll• Write file• ReadFile• Delete• Rename• FileInfo

IGSS Data Server(ICSA-11-335-01の脆弱性)

発想• strcpyは対策したようだ• sprintf系を見落としているのでは？
strcpyの危険性については詳しく解説しているが、その他の関数についてはそれほど説明が無い

JPCERT/CCが提供する「CERT セキュアコーディング
スタンダード」日本語訳より抜粋
http://www.jpcert.or.jp/sc-rules/c-msc34-c.html

パスワードリセットその他の「仕様」• ポートに接続すれば、ファイル取得、編集、レポート入手、等の命令発行が可能• とあるキーを入力するとデバッグモードに移行クライアント側の脆弱性• ActiveX• ファイルの読み込み

クライアントHMI

PLC

ActiveX• クライアントPCに実行ファイルがインストールされる• Webサーバにアクセスした際に呼び出される• どのWebサーバからでも呼び出すことが可能

誰でも攻撃用Webサーバを用意できる

仕様で実装されていた命令• WriteTextData()• OpenTextFile()• CreateProcess()• addUser()• SetIpAddress()• SendCmd()• SDFileDelete()

BACnet OPCクライアントでのファイルの読み込み

Exploitコード

スマートメーター• 電気メーターをデジタル化• 検針作業を効率化• 電力消費量をグラフ化• 供給計画の効率化• 遠隔で操作

http://www.bpa.gov

スマートメーターに存在した脆弱性• 暗号化されていない通信• 認証のないデータアクセス• 電力消費量分析によるプライバシー問題• 何秒ごとにデータを送るか• メーターの数値を書き換える• 耐タンパー性• ICMPのハンドリング

間違いだらけのStuxnet対策

Stuxnetに対する よくある誤解• 攻撃者サーバがダウンしているので解析できない• ポート80番で通信するので危険、危険• 外部との通信を遮断（または警戒）する必要がある• 出口対策重要• Step7/WinCCの脆弱性が使われた• PLCの脆弱性が使われた

外部との通信はアップデート用にすぎない• マレーシアとデンマークのサーバ• 基本機能はすでにある• 出口対策では防げない• 犯人の目的は情報搾取ではなく破壊活動攻撃された場所

Step7

PLC

Profibus-DP

WinCC

S7-315-2
S7-417

WinCC SQLのデフォルトパスワードを使って感染を広げる

複数存在する感染手段のひとつにすぎない

MC7のバイトコードまで熟知されていた• MC7バイトコードはCPUごとに異なる• 攻撃対象の環境が熟知されていた（S7-315-2, S7-417,Profibus）ことも問題

まとめ• 制御システムのセキュリティは10年前の状況（失われた10年）• 攻撃に、難しいExploitは必要ない• まずは「セキュリティ」の存在を知ることから• Windows環境が標的、起点になることが多い• 緩和策を検討しつつ、少しずつ、「認証」「暗号化」の検討を• 制御システムエンジニアはセキュリティを知る必要がある• セキュリティエンジニアは制御システムを知る必要があるご清聴ありがとうございました

お問い合わせは、こちらまで
福森 @ cyberdefense.jp