チュートリアル 5522

産業システムに必要なセキュリティICによる保護の強化

筆者: Christophe Tremlet

要約: 産業用制御システム(ICS)の接続化がますます進み、既製品の部品が使用されるようになるとともに、サイバー攻撃に対する新しい脆弱性が表面化しました。このチュートリアルでは、プログラマブルロジックコントローラ(PLC)、監視制御およびデータ収集(SCADA)システム、および分散制御システム(DCS)の3種類のICSを紹介したあと、セキュリティ問題とその対策について解説します。また、この文書では2つの暗号ソリューション(デジタル署名と暗号化)の利点と制約についても説明し、ICSにおける暗号サポートためのセキュリティICの使用理由について詳しく解説します。

同様の記事が2012年11月7日に「EE Times」に掲載されました。

はじめに

これまで、ほとんどの産業用制御システム(ICS)は主として高信頼性、安全性、および最大限の稼働時間を目標に設計されてきました。業界が数十年にわたりこれらの要件を満たすことに集中してきた一方で、デジタルセキュリティについては、これまでほとんど考慮されてきませんでした。1990年代に、一部の政府機関が送電などの重要なインフラのサイバーセキュリティについて調査を開始しました。これらの作業は、当時はまだ機密事項でした。現在では、Stuxnetの登場およびそれを契機とする多数の発表により、産業用制御/オートメーションシステムに対するサイバー攻撃はすべての関係者にとって重要な関心事となっています。

危険に晒される産業用制御システム

最初にお断りしておきますが、セキュリティ攻撃を受けやすいすべてのICSの構造についての解説は、1つの記事全体で扱うのにふさわしい内容です。いくつかの重要なICSに話を限定するのは非常に難しいことですが、そうしなければなりません。そのため、ここでは3種類のICSについて考えることにします。
  1. プログラマブルロジックコントローラ (PLC)。生産プロセスオートメーションやサブシステムの制御に広く使用されています。PLCは、多くの場合より広範囲のインフラの一部として接続されています。
  2. 監視制御およびデータ収集 (SCADA)システム。水道や送電システムなどの、地理的に分散した、重要なインフラの監視と制御を行います。
  3. 分散制御システム (DCS)。化学品製造や発電などの産業用プロセスを制御します。一般的にはいくつかの自動化されたサブシステムで構成されます。
これらのシステム実装は最終的な産業アプリケーションによって大幅に異なる可能性があり、実際に異なります。システムによって、物理的に集中しているもの、明確に定義された製造施設に限定されているもの、あるいは非常に広い地理的範囲に分散しているものがあります。それにも関わらず、これらすべてのシステムは特定の性能上の予測または(ここでの趣旨で言えば)制約のもとで動作します。たとえば、SCADAシステムは非常に高水準の、理想的には「ファイブナイン」または「シックスナイン」のアップタイムを備える必要があります(「ファイブナイン」は99.999%の可用性を意味し、年間約5分のダウンタイムに相当します)。また、応答時間が非常に高速であることが最も重要な性能上の制約となる産業用制御/オートメーションシステムもあります。
つまりICSには類似した面があり、その一方で大幅に異なる面もあります。これに加えて、現在は2つの傾向が見られます。ICSは、ますます接続化が進み、Windows®オペレーティングシステムのような標準的ソフトウェアや、IP上での通信に依存するワークステーションのような、標準的な、既製品のコンポーネントが使用されるようになっています。これらの傾向により、サイバー攻撃に対する新しい脆弱性が生まれています。

産業環境でのIT技術—完全に適合するとは限らない

また、現在のICSではITで使用される技術の導入も進んでいますが、それでもICSは特定の性能上の目標または制約の範囲内で動作する必要があります。この技術の収束により、標準的なITコンポーネントに対する一部の脅威がICSにも該当するという、重要で、直接的な結果が生じています。しかし、性能目標や動作環境の違いから、ITの世界で使用されるセキュリティ対策は必ずしもICSに適用可能とは限りません。
具体的な詳細の考察に入る前に、簡単な例を見ておきましょう。SCADAシステムが産業設備の冷却水の圧力を監視しており、圧力の喪失を検出すると、警報を発生させることになっているとします。この潜在的な緊急事態が発生した場合、オペレータは即座に対応する必要があります。
まず標準的なITインフラでのオペレータの対応を考えてみます。数分間操作を行っていなかった場合、ITワークステーションは恐らくロックされています。オペレータはパスワードを入力してログインする必要があり、通常は3回ログインに失敗すると、ワークステーションは再びロックされます。こうなると、ITオペレータはシステム管理者に連絡してパスワードをリセットしてもらう必要があります。その間に時間は経過します。同様の、繰り返し手順を産業用の環境で行うと、大変なことになります。ICSがこの非常事態になった場合、オペレータには即座の行動が求められ、少しでも躊躇すると重大な時間の損失になります。これは、まったく標準的なITの手順がICSには不適切で、有害でさえある例です。

産業用制御システムに対する脅威

脅威に対するICSの保護をその独自のアーキテクチャに頼ることはできません。ICSのネットワークは隔離されているか、ITの標準規格に従っていなかったため、これまでサイバー攻撃は制御/オートメーションシステムにとって重大な脅威とは考えられていませんでした。この点について3つの重要な考察が可能です。
  1. 他のシステムとインタフェースする必要があるため、制御/オートメーションネットワークは次第に標準的でオープンなネットワークに接続されるようになっています。
  2. 業界では、適切なコストで容易に独自プロトコルのリバースエンジニアリングが可能です。ここで危険なのは、そのプロトコルの弱点に対する研究も、理解も、対策もまだ行われていない可能性があることです。情報が公開されていないという理由で、独自のプロトコルがセキュリティを提供すると考えるのは危険です。この想定が誤りであり間違っていることは実証されています。これは「あいまいさによるセキュリティ」の概念¹です。この安全でないプロトコルの脆弱性は、脅威と対応が十分に理解されている公知かつ信頼性のあるプロトコルと明確な対照をなしています。
  3. ネットワークのみがサイバー攻撃の経路となるわけではありません。したがって、ICS内の隔離されたインフラに、USBキーや保守コンソールなどの他の攻撃媒体に対する脆弱性がある可能性もあります。
文書化された有名なプロトコルに従っていない産業用ネットワークと同様に、PLCの独自アーキテクチャも通常はセキュリティ保護を提供しません。明らかにStuxnetはその非常に良い例です。確かに、Stuxnetは独自ソフトウェアと特定の構成を備えたPLCにとってのみ有害でした。このマルウェアは、対象となる特定のシステムを深く理解することなくしては設計することができなかったでしょう。「システムのセキュリティは、実装またはそのコンポーネントの秘密性に依存すべきではありません」²。確かに、その方法ではハードウェア(この場合はPLC)が非常に脆弱になります。そのため、ICSの独自のアーキテクチャが電子的な脅威に対する保護として働くことに依存することはできないということは、何度繰り返しても足りません。
ICSは標準的なITインフラとは異なるアーキテクチャを備え、それぞれ異なる要件を満たしています。それにも関わらず、一般的なITインフラに対する脅威のほとんどはICSにも作用する可能性があります。残念ながらそれらの脅威のリストは、ワームやウィルスなどのマルウェアの注入、ソフトウェアまたはハードウェアの設定変更、攻撃者からの偽のメッセージや命令、ID盗難、および権限のない観測というように、長大かつ厄介なものです。
要するに、我々は非常に困難な状況に直面しています。ICSのセキュリティ脅威はITインフラに対するものと同様ですが、多くの場合、ICSの動作に関する固有の要件のために、定評あるITセキュリティ対策の再利用が許されません。

ICSの「内部」に対する最高レベルの対策

産業およびオートメーションアプリケーションのセキュリティへの関心の広まりとともに、対策および軽減策の実装が進んでいます。これまで、それらの防御手段のほとんどは、セキュリティ手順、環境および物理的保護、およびスタッフの教育を含んだものでした。ICS自体は、脆弱なままです。これらの最小限の予防措置しか取られていない点について直ちに産業コミュニティを批判する前に、従来のITの領域でも最初はそのような状態からセキュリティが始まったことを思い出す必要があります。実際にこれは保護の第1のレベルであり、最初に整えられるべき基盤なのです。
これらの伝統的な防御方式は、いかなる意味においても、ICSにとって必要な最高レベルの保護を提供するものではありません。手順は、たとえ定期的に監査を行ったとしても、決して100%守られることはありません。ロック式ドアのような物理的保護は、迂回の可能性があり、あらゆる場所に適用することは不可能です。最も重要な点は、マニュアルに記された防御手順が、最も高度なシナリオを作成する時間と予算があり、非常に高いスキルを備えた人間によって行われる攻撃には対応していないということです。さらに悪いことに、賄賂を受け取ったICSのオペレータが手順を無視したこともあります。
いいえ、セキュリティの答えはエンベデッドです。それはICSのハードウェア内にあります。セキュリティ対策の階層構造の上位レベルには、暗号化やハードウェアセキュリティなどの一般的なITのセキュリティ対策が含まれています(図1)。
図1. セキュリティ対策の階層構造
図1. セキュリティ対策の階層構造
一般的なITのセキュリティソリューションが、すでにソフトウェアに含まれている場合もあります。インフラによっては、すでにファイアウォールによって保護されているものがあります。TLS/SSLのようなIP上のセキュアプロトコルもいくつか実装されています。やはりピラミッドのすべての段階が必要ですが、ここではハードウェアベースのセキュリティがどのように最高レベルの保護を実現するかを説明します。

エンベデッド暗号によるICSの保護

業界で使用されている広範囲のICSに、一般的なITのポリシーを規則的に適用することはできません。しかし、ITの世界で普遍的に使用されている技術で実装可能なものが1つあります。暗号です。
暗号は、上記の脅威のほとんどに対応します。それでも、魔法の杖ではないため、この方法も「ICSに暗号を追加すると突然すべてがセキュアになる」というほど単純には行きません。暗号のアルゴリズムとプロトコルは、各サブシステムに対する脅威を徹底的に分析したあと、ケースバイケースで実装すべき構成要素です。簡単に言い換えると、暗号はICSとITインフラに共通するツールですが、ICSにおけるその実装は特定のシステムに合わせて調整する必要があるということです。幅広い暗号技法の中で、デジタル署名と暗号化の2つがICSにとって非常に重要です。両方の技術のICSにとっての利点を検討しましょう。
デジタル署名。これらの技術は、メッセージ、命令、またはソフトウェアの認証に使用されます。ICSの場合について2つの例を考えてみます。
  1. SCADAシステムでは、フィールドセンサーからの情報を信頼することができる必要があります。それが物理的に配置された実際のセンサーからのものであり、システムを混乱させるために攻撃者によって送信された偽造の情報ではないことを判断する必要があります。送信された情報がセンサーまたはセンサーモジュールによってデジタル方式で署名されていると、受信側のリモート端末ユニット(RTU)はそのメッセージが本物の認定済みセンサーから来たものかどうかを確認することができます(図2)。この手順は、逆の方向、すなわち 降順でアクチュエータに対するその発信元による署名としても機能します。同じ方式を、RTU、PLC、およびマスターSCADAシステム間の通信にも使用することができます。
  2. 図2. センサー読取りへのデジタル署名の適用
    図2. センサー読取りへのデジタル署名の適用
  3. デジタル署名は、ソフトウェアパッケージやソフトウェアアップデートが信頼すべき発信元から来たものかどうかをシステムがチェックすることも可能にします。再びStuxnetを例に取りましょう。悪意のあるコードがPLCに注入され、想定外の速度でモーターを駆動しました。さらにこれが原因で、PLCは誤った製造プロセスを実行しました³。しかし、すべてのソフトウェアおよびソフトウェアアップデートがPLCへのダウンロードの前にデジタル方式で署名されていれば、PLCは実行を開始する前にそのソフトウェアが本物かどうか確認することができます。
これと同じデジタル署名の原理により、ハードウェア設定の変更に対するシステムの保護も可能です。たとえば、攻撃者がセンサーの較正データを書き換える可能性があります。すると、不正に設定されたセンサーは誤った情報をマスターシステムに送信し、やはり産業プロセスを混乱させることになります。このタイプの攻撃に特に弱いのは、たとえば水道やパイプラインのような広い地理的範囲に分散している大規模システムで、各センサー位置への物理的アクセスに対するセキュリティの確立が不可能な場合です。デジタル署名プロセスは、この問題を解決します。計測情報をマスターに送信するとき、センサーまたはセンサーモジュールは「署名付きの」較正データも一緒に送信することができます。あるいは、マスターがチャレンジを送信して、較正または設定データのダイジェストを含む署名付きのレスポンスを受け取ることにより、定期的にセンサーを監視する方法もあります。
デジタル署名は、ハードウェアの認証にも使用することができます。これは、たとえばRTUがSCADAネットワークに接続される場合に役立ちます。明らかに、未知の(すなわち、認証されていない)ハードウェアが重要な情報を送受信することなく、正当なハードウェアのみが重要なICSの構築に使用されることが望まれます。そこで、デジタル署名によってハードウェアを認証し、信頼を確立します。
暗号化。これも情報の漏洩に対する保護のための、有用な、広く使用されている技術です。製品の製造には必要となるすべてのノウハウが含まれている可能性があるため、多くの場合、製造の配合表は貴重な資産です。センサーからのデータやアクチュエータのパラメータを監視することにより、製造プロセスに関する貴重な情報や、個人のパーソナルデータさえ手に入れることができます。たとえば、攻撃者がスマートグリッドを介して電気消費量を追跡することでユーザーの行動を把握する例が、多数の文献で公表されています。ICSネットワーク上のデータ暗号化によってこのような漏洩を防止することが可能で、従来のITインフラの場合と同様に適用されます。

暗号をサポートするためにセキュリティICを使用する理由

ここまで、我々はICSのセキュリティのための暗号の応用例をいくつか検討しました。暗号は多くの場合ソフトウェアに実装されているのに、なぜICSでセキュリティICを使用するのでしょうか? それにはいくつかの理由があります。セキュリティICは実際にいくつかの具体的な利点を提供します。鍵の安全なストレージ、サイドチャネル攻撃による鍵の漏洩に対する保護、バグのない暗号の容易な実装、計算の高速化、乱数の品質、およびセキュアブートによる信頼性のあるソフトウェアです。

鍵のセキュアなストレージ

いくら強調しても足りない重要な概念が1つあります。すべてのセキュリティ実装は、たとえば対称鍵暗号用のAES、Triple DES、公開鍵暗号用のRSA、ECDSAなどの、標準の暗号アルゴリズムを使用する必要があります。そして、これらの暗号システムの中で最も貴重な資産は、鍵です。標準的なプロセッサ上でソフトウェアにより暗号が実装される場合、暗号鍵は汎用のシステムメモリに保存されるため、マルウェア、デバッグポート(JTAG)、または物理的攻撃を介して容易に引き出すことができます。セキュリティICはこれらの脆弱性を大幅に軽減します。
  • セキュアマイクロコントローラは論理的な保護を内蔵しています。セキュアブートおよびマイクロコントローラのメモリ管理ユニット(MMU)は、マルウェアの注入に対する保護を提供します。JTAGポートはディセーブル可能です。
  • セキュリティICは物理的タンパーに対して、メタルシールド、環境センサー、外部メッシュセンサーなどの対策を内蔵しています。さらに、内蔵または外付けメモリの暗号化も可能です。恐らく最高レベルの保護として、タンパーが検出された場合には鍵が自動的に破壊されます。

サイドチャネル攻撃による鍵の漏洩に対する保護

マイクロコントローラの消費電力は、明らかにその動作状況に依存します。暗号計算動作中の消費電力を監視することにより、暗号鍵を引き出すことが可能です。その他に、電磁放射(EME)に基づくサイドチャネル攻撃も存在します。
最も先進的なセキュリティICはサイドチャネル攻撃に対する対策を実装しており、これらのサイドチャネルを介して鍵を引き出すことを不可能にします。

信頼性のある、バグのない暗号の実装

暗号を実装したシステムに共通して見られる弱点の1つは、アルゴリズムの部分的または「偽物」実装です。不完全なアルゴリズムはICSを脆弱化し、製品のリリースの数ヶ月後には攻撃が成功することにつながります。しかし、システム設計の最初からセキュリティICを使用することにより、ICSの設計者はアルゴリズムの実装にバグがないことを確信することができます。特定の規格についてのサードパーティーによる評価や認定により、その確信のレベルがさらに強化されます。

計算の高速化

ICSでは、応答時間が多くの場合非常に重要となります。たとえば、センサーの測定値は所定の遅延以内にSCADAのメインコントローラのRTUに送信されることが想定されます。セキュリティICはハードウェア暗号エンジンを内蔵しているため、ソフトウェアソリューションよりも優れた性能を提供します。さらに、センサーコントローラ自体の計算性能が限られている場合でも、マキシムのセンサーは測定値を送信する前にデジタル方式で「署名」することができます。セキュリティICは、アプリケーションプロセッサの計算リソースが限られている場合にその負担をオフロードすることもできます。
センサーモジュールのような、最も小型の、最も制約の多いシステムでは、高度な数学演算を実行するための計算能力(通常は8ビットマイクロコントローラ)が存在しない場合があります。それらの状況では、セキュアICの追加が、システムを再設計することなく暗号用の十分な計算パワーを得る、唯一の選択肢となることがよくあります。
セキュアマイクロコントローラは、TLS/SSLなどの完全なセキュリティプロトコルの処理のような包括的セキュリティソリューションの追加も可能です。

乱数の品質

暗号で保護されていると思われるシステムに対する一般的な攻撃方法として、いわゆるリプレー攻撃があります。この概念は非常に単純です。攻撃者は暗号化または署名されたメッセージを記録して(攻撃者はそれを復号または理解することができなくて構いません)、その直後に記録したメッセージを送信します。前述のデジタル署名されたセンサー測定値の例で、この問題が明らかになります。ひとまず遠隔地のパイプの水圧が正常だと仮定します。センサーは送水管の正常な圧力を報告し、このメッセージをSCADAのメインコントローラに送信します。攻撃者はこのメッセージを記録します。その後センサーが異常な圧力を検出した場合、ここで攻撃者が介入します。攻撃者は先ほど記録したメッセージを再生し、コントローラを欺いて、圧力が正常でありシステムは標準動作モードであると信じさせます。しかし、この例のような状況では、本来ならSCADAシステムが警報を発生させるはずです。このようなリプレー攻撃に対する標準的な保護は、トランザクションに乱数を導入して、以前のトランザクションの再使用(リプレー)を防止することです。
乱数発生器はすべて同じ品質ではありません。低品質の乱数発生器に依存したシステムで、秘密鍵が引き出される事例がありました。これは想像しうる最悪の状況です。そうなると暗号は役に立ちません4。どうしてそのような事態が発生するのでしょう? 標準的なマイクロコントローラでは、生成される数値のランダム性は保証されません。それと比較して、セキュリティICの乱数発生器は一様性に関する厳しい基準に適合するように設計され、標準化された手法を用いてテストされています。

セキュアブートを介した信頼性のあるソフトウェア

遺憾ながら、Stuxnetはこの話題の重要性を示すすばらしい実例です。システムのオペレータと設計者は、SCADAまたはDCSシステムを構築するすべての機器が、明確に識別された、純正のソフトウェアを実行することを保証する必要があります。セキュアブートおよびセキュアアップデート管理は、マルウェアや信頼性のないソフトウェアの注入からデバイスを保護するための方法です。最先端技術を用いた最新のセキュアマイクロコントローラでは、両方のタイプの管理が実装されています。

現時点で最高の保護デバイスであるセキュリティIC

現在のセキュリティICは、ICSまたは任意の重要なシステムのセキュリティを1日24時間/週7日にわたり確保するように設計されたいくつかの機能を内蔵しています。DeepCover®エンベデッドセキュリティソリューションは、機密データを複数層の高度な物理的セキュリティの陰に隠し、可能な限り最もセキュアなキーストレージを提供します。
DS28E15などのDeepCover認証用ICは、マスターシステムとの間で高い暗号強度でのサブシステムの認証(または拒否)を可能にします。これらのICはSHA-2認証プロトコルを採用しており、PLCのI/O拡張モジュールを認証することができます。センサーモジュールの設定/較正データの安全な保管およびデジタル署名が可能なため、偽造デバイスによる置き換えや攻撃者による主要パラメータの書き換えを防ぐことができます。
セキュリティマネージャは、秘密鍵を安全に保管します。それに加えて、DS3645はタンパー検出時に鍵の破壊をトリガすることができます。MAX36025セキュリティマネージャは、AES認証および暗号化をサポートしています。DeepCoverセキュリティマネージャは既存のマイクロコントローラに追加することができるため、以前の設計からソフトウェアを移植する必要がありません。
セキュアマイクロコントローラは、セキュアなキーストレージを提供し、セキュアブートを実装し、ソフトウェアの論理的保護を可能にし、PKCS #11などのプロトコルレベルまでの暗号を実装可能な最大の柔軟性を提供します。また、ネットワークプロトコルをサポートし、メインシステムプロセッサから暗号演算をオフロードします。MAXQ1050などのデバイスはすでにスマートメーターでこの全範囲のサービスを提供しています。Linux® BSPを備えた新しいARM926ベースのマイクロコントローラのMAX32590は、ゲートウェイなどのセキュア通信デバイスのためのシングルチップソリューションです。

結論

多数の話題について説明してきましたが、ここで「ではセキュリティICを使用している我々はサイバー攻撃から保護されているわけですね?」という質問が出るかも知れません。答えは単純な「イエス」ではありません。完全なシステムセキュリティのためは、何らかのソリューションを配備する前に、保護すべき資産を完全に識別し、脅威を詳細に分析する必要があります。効果的なセキュリティは、ソフトウェアとハードウェアの仲介となる複数の暗号手段の実装に大きく依存します。
それでもなお、厳格な分析の結果、セキュリティICが明らかにICSの保護を最高レベルに高めることが示されました。

参考文献

  1. K. Scarfone、W. Jansen、M. Tracy、NIST Special Publication 800-123、「Guide to General Server Security」、2008年7月、http://csrc.nist.gov/publications/nistpubs/800-123/SP800-123.pdf
  2. 同上
  3. StuxnetについてのSymantec社のレポートは、N. Falliere、L. O. Murchu、E. Chien、「W32.Stuxnet Dossier (W32.Stuxnetの詳細調査)」を参照、Version 1.4、2011年2月、www.symantec.com/content/en/us/enterprise/media/security_response/whitepapers/w32_stuxnet_dossier.pdf
  4. ランダムなk値に関するDSAの要件の説明については、N. Lawson、「DSA requirements for random k value」を参照、root labs rdist、2010年11月19日、http://rdist.root.org/2010/11/19/dsa-requirements-for-random-k-value/