ICS に関連したマルウエアの動向-JPCERT の発表から (1)

Submitted by Shin Kai on


今週の4月11日に、計測自動制御学会(SICE)の安全サロン(第43回)の会合が慶応義塾大学の日吉校キャンパス内で開催され、ARC もこれに参加した。同サロンが今回採り上げたテーマは、「制御システム・セキュリティの動向」であり、JPCERT コーディネーションセンター経営企画室主席研究員/技術顧問の宮地利雄氏が発表者に招かれた。

宮地氏の議論は、産業用制御システム(ICS)のセキュリティを巡る包括的で豊富な内容に及んだが、これには、ICS に関連したマルウエアの動向、サイバー攻撃の深刻化、ICS セキュリティ・インシデントの実態、ICS 製品の脆弱性に関する動向、ICS セキュリティの標準化に関する動向、技術開発動向、および人材開発が含まれた。特に、ICS に関連したマルウエアの動向では、このブログコーナーの3月30日付けでも掲載したTriton/Trisis マルウエア(「プロセス安全システムを標的にしたマルウエアの脅威」を参照)に関するさらに詳細な報告があって注目された。今回はそのマルウエアに関連して新たに学んだポイントをいくつかご報告したい。

HatMan によるプロセス安全計装システム攻撃の概要

US JPCERT がハットマン(HatMan)の名で呼ぶマルウエアは、先のブログでTriton/Trisis の名前で紹介したマルウエアと同一であり、特定のプロセス安全計装システムを狙って作られたマルウエアの第1号である。

2017年8月4日に、サウジアラビアの企業で、シュナイダーエレクトリック(Schneider Electric)製安全計装システムであるトライコネックス(Triconex)の自己検証機能が異常を検知し、監視していた設備を緊急停止した。その後の調査でマルウエアが特定され、12月中旬に公表された。

安全計装システムの特定のモデルを狙ったマルウエアの動作概要は、まずTriStation エンジニアリングワークステーション(EWS)に感染し、設定用アプリケーションに成りすましてTricon コントローラに攻撃用スクリプトを注入し、それを起動させた。コントローラに注入されたスクリプトにより、外部からの指示でコントローラの状態の偵察が可能な状態であり、潜在的には改ざんも可能であったという。とはいえ、調査報告によれば、恐らくこのハットマンだけでプラント操業を標的として攻撃できるというわけではなく、コントローラ状態の偵察の段階だった、とみられている。攻撃者の意図としては、密かに侵入してコントローラの情報を吸い上げた後、その情報を基にその次の攻撃ステップに進もうとしていたことが想定されている。

このマルウエアがどのようにしてEWS に感染したかには諸説があり特定できていない。EWS とコントローラ間は、切断する機能があるにも拘らず、攻撃を受けたプラントではオンライン状態のまま運転されていた。マルウエアの侵入が発見されたきっかけは、最大3重化の冗長化動作モードをもつトライコネックスの冗長構成において、2重メモリの片側だけが書き替えられた結果、メモリが整合していないことをトライコネックス自らが検出したことによる。これにより、安全計装システムのインテグリティが損なわれた状態に対応して設備を緊急停止するに至った。

トライコネックスの製品設計上の問題

トライコネックスのソフトウエアをリバースエンジニアリングしたある企業からの報告によって、セキュリティが要件に入らなかった時代の多くのPLC やコントローラにも共通するセキュアでない製品設計上の問題を、この製品も持っていたことが明らかになった。現在のコンピュータのプロセッサは、アプリケーションはユーザモードで、オペレーティングシステムのコアコンポーネントはスーパーバイザモードでそれぞれ実行される。各アプリケーションは個別に実行されるため、あるアプリケーションがクラッシュしても別のアプリケーションやオペレーティングシステムがその影響を受けることはない。これに対し、19年前に開発されたトライコネックスは、CPU 動作モードとしてユーザモードを全く利用せず、全コードをスーパーバイザモードで実行している。この結果、攻撃コードが一旦入り込めば、内部は無防備の状態になる構造になっている。

また現代の多くのPLC やコントローラにも共通する製品設計上の問題点として、トライコネックスは、汎用LSI を用いて入出力の設定レジスタを書替えることで、入出力ピンやメモリマッピングなどハードウエア機能を簡単に書替え設定できる構造を持っている。従って、一旦悪意あるコードが、スーパーバイザモードで全コードが実行されている同コントローラ内に侵入すれば、入出力など重要なシステム構成を改変することが可能になる、という。

さらに、トライコネックスには、コントローラの設定変更を禁じるために、物理的に手動で切替え操作するハードウエアキーが備わっているが、攻撃を受けたプラントではEWS と接続したプログラムモードのままで運用していたという運用管理面での問題があった。これに加えて、外見上はハードウエアキーに見える構造の裏に、実はキーの物理的位置をファームウエアが汎用LSI を使って読込んでいる実装となっている。このため、悪意あるコードがトライコネックス内に一旦侵入してしまえば、このキーも書替えられる可能性がある。

スタックスネット(Stuxnet)もハットマンも、想定されるその攻撃の意図や開発のリソースの大きさから、国家間のサイバー戦争の懸念がぬぐいきれない。このため、どこまで企業レベルで対策が取れるかという問題は難しい。とはいえ、少なくとも、製品やシステム設計的にセキュアでない(insecure by design)ようなところをできるだけ早く潰しておくことは、喫緊の課題だろう、と宮地氏は語る。