このページの本文へ

McAfee Blog

数十バイトのコマンドが電力網を停める

2017年08月22日 16時00分更新

文● McAfee

  • この記事をはてなブックマークに追加
  • 本文印刷

 マカフィー株式会社で、サイバー戦略室 シニアセキュリティアドバイザーを務める佐々木弘志です。重要インフラセキュリティやIoT(Internet of Things)セキュリティを専門としています。

 2016年12月、ウクライナの首都キエフで、サイバー攻撃によるものとみられる停電が発生しました。この攻撃に使用されたとされるマルウェア(CrashOverride/Industroyer)*1 は、これまで発見された制御システムを標的としたマルウェアから大きな進化を遂げており、制御システムへの脅威の未来を暗示するものとなっています。

 本ブログでは、この最新のマルウェアの脅威についての解説と、これまでの制御システムへの脅威の歴史を振り返った上で、今後の制御システムへの脅威の方向性について2回に分けて考えてみたいと思います。

 

~CrashOverride/Industroyerの特徴~

 まず、昨年末のウクライナの攻撃に使用されたとされるマルウェア(CrashOverride/Industroyer)について説明します。このマルウェアの目的は、「電力会社のコントロールセンターにある制御端末に感染し、特定の日時に起動して、コントロールセンター配下の変電所のブレーカーが落ちるようなコマンドを送信することで、停電を引き起こす」ことです。このマルウェアの構成を図1に示し、その主な特徴を列挙します。

図1:CrashOverride/Industroyerのマルウェアの構成(参考文献をもとに筆者が作成)

  1.  制御システムへの攻撃ツールは、時限装置化されており、特定の時間に起動する仕組みとなっている。
  2.  制御システムへの攻撃ツールは、クローズドネットワーク内でも動作する。
  3.  変電所とコントロールセンター間の複数の制御システム用プロトコルに対応している。
  4.  3. の攻撃コードは通信プロトコル毎にモジュール化されており、自由に差し替えできるようになっている。

 これらの特徴を、前回の2015年末のウクライナの停電時の攻撃と比べてみると、その進化の様子がわかります。2015年末の攻撃では、マウスの遠隔操作によって、コントロールセンターのオペレーターの端末画面を通じて、ブレーカーを停止する操作を実行したといわれています*2 。つまり、攻撃時点でもインターネット接続が必要だったわけです。しかし、2016年末の攻撃に使用されたといわれるマルウェアの制御システムを攻撃する部分は、インターネット接続を必要としません。コントロールセンターの制御端末で、特定の日時に起動し、マルウェア自身がコントロールセンターに接続している変電所の制御機器を自動で検索し、それらに対してOFFコマンドを送信する仕組みになっています。さらに、この一連の動作を4つの異なるプロトコルにおいて、それぞれのプロトコルに合わせた方法で実現しています。そのうちのひとつは、IEC 60870-5-101(通称101)というシリアル通信向けのプロトコルに対するものでした。

 

~シリアル通信vs IP通信~

 制御システムセキュリティにおける神話のひとつとして、「シリアル通信は、インターネットプロトコル(IP)よりも、安全だ。」というものがありましたが、この攻撃で、その神話が過去のものとなったといえるでしょう。今回の攻撃のように、コントロールセンターの端末を乗っ取られてしまえば、その下位にあるシステムに対する通信プロトコルがシリアルであろうがIPだろうが関係なく攻撃対象となります。制御システムの開発者であった私の目から見れば、シリアル通信の方が、暗号化もなく、シンプルなコマンド体系であることが多いため、むしろ攻撃は容易でさえあります。実際、2016年の攻撃において101向けに使用された通信コマンドはわずか十数バイトでした。

 IPを用いた制御システム向けプロトコルは、国際標準になっているものも多く、攻撃者にも公開されていますが、広く使われている分、その通信を可視化するセキュリティ製品も多く開発されていますので、攻撃者の進化に合わせて対策を行うことができます*3 。 制御システムにおいて、「シークレット イズ セキュリティ (Secret Is Security)」すなわち、独自で非公開の通信プロトコルや仕様を用いることが安全なのだという考えがまかり通る時代は、CrashOverride/Industroyerの登場とともに終わりを告げたといってもよいでしょう。

 

~モジュール化の脅威~

 このマルウェアの特徴で、もうひとつ興味深いことは、「変電所のブレーカーが落ちるようなコマンドを送信することで、停電を引き起こす」という機能が、異なるプロトコルごとにモジュール化されている点です。つまり、このマルウェアは、図内の4つの通信プロトコルを使用していたと思われるキエフの電力会社を標的に作成されていますが、このモジュール部分を別の制御プロトコル対応のモジュールと差し替えることで、他の電力会社向けにカスタマイズすることができます。

 加えて、これらの4つのモジュールは、対象プロトコルに応じて全く違うやり方で実装されていますが、いずれも、情報系のマルウェアで利用されるシステムやアプリケーションの脆弱性ではなく、公開されている正規のコマンドやアプリケーションインタフェースを上手に活用して目的を実現しています。これは、制御システムを理解している人にとっては、非常に自然な攻撃手法です。

 したがって、このマルウェアの登場は、攻撃者側の制御システムに対する理解が十分に進んでいることを示すとともに、今後も同様の攻撃手法が用いられる可能性が高いことも示唆していると考えます。

 

~次回は制御システムの脅威の歴史と未来~

 今回は、2016年のウクライナの停電を引き起こしたとされるマルウェア「CrashOverride/Industroyer」の特徴についてご紹介しました。次回は、このマルウェアの登場を踏まえて、これまでの制御システムの脅威の歴史を振り返りながら、今後の制御システムに対する脅威の方向性について考えてみたいと思います。

 

カテゴリートップへ