アクティブサイバーディフェンスのススメ -自動実行リスク

公開日:

更新日:

執筆者:手塚 弘章

アクティブディフェンス
         

目次

外部デバイス

OT系ネットワークは通常、IT系ネットワークから分離されて、インターネットに接続されていない場合が多いと思います。

お客様と話をしていても、工場などのOT系ネットワークは外部接続できず独立しているから安心だ、という話をよく聞きますし、それ故にセキュリティ対策が十分でないとも言われています。

制御系マルウェアとして最初に発見されたと言われている、2010年7月に発見されたStuxnet(スタックネット)*1は、IT系からOT系にUSBストレージでデータを運ぶ際にOT系を攻撃しイランの核分離施設の遠心分離機を破壊したと言われています。

しかし、例えば以下のような場合に、隔離したはずのネットワークと間接的に接続され、攻撃が行われてしまう可能性があります。

  • IT系ネットワークに工場・船舶などにあるOT系機器が接続されていない、あるいはIT系でもネットワーク同士が接続されていなくてもデータの移動や、環境をまたいだバックアップするために、外部デバイスとしてUSBストレージやHDD・SSDストレージなどのストレージデバイス、あるいはDVD/CDデバイスを利用する場合
  • 機器のトラブル対応やメンテナンスをするために、上記の外部デバイスやラップトップPCを利用する場合

外部デバイス挿入時の自動実行

Windows XP以前のOSでは、USBストレージやDVD/CDデバイスをPCに接続あるいはメディア挿入をすると、あらかじめ当該メディアにautorun.infというファイルを格納しておくことで、メディアの目的が分かりやすいように表示アイコンを変更したり、挿入したタイミングでWindowsコマンドを実行し、自動で必要な機能を実行できる機能がありました。

これはとても便利な機能で、実行させたいファイルを探して、ダブルクリックして実行や再生処理を行わなくても良いのでとても重宝されました。

しかし、重宝したのは攻撃者も同じで、自動実行されるマルウェアをUSBストレージなどのメディアに埋め込んでおきさえすれば、何の苦労もなく実行されるので、通常アクセスできない場所にあるPC機器であったり、時間とタイミングのコントロールは出来なくとも、利用者が意図せずに実行したり、内部協力者の協力を得るなどして簡単に入り込むことが出来ました。

その為に、マイクロソフト社は2009年10月リリースのWindows7より新しいWindows OSでは基本的に外部デバイスの自動実行は行わないように標準設定を変更しました。

一般的に利用されるUSBストレージやHDD・SSDストレージ、DVD/CDメディアなどは、PCが組み込まれた機器にUSBケーブルなどを挿入するとWindows7・Windows10ではどういった操作を行うかユーザに確認するためのポップアップ画面が表示されます。

しかし、例えば私の利用しているWindows10 21H1で、【コントロールパネル > 自動再生】 から、「ソフトウェアとゲーム」に対して「メディアからのプログラムのインストール/実行」を規定値として有効にすることで、DVD/CDメディア(USBストレージは不可)に対してAutorun.infを用いてのプログラムの自動実行が可能になります。

自動再生

Autorun.infを用いた自動実行については当設定が必要になりますが、この設定が行われていない場合においても、 Autorun.infの設定によりテキストやアイコンを変えて、害のないファイルに見せることでユーザに実行を促すことが可能になっています。

USBストレージでもWindows7でショートカットファイル(.LNK)に関する脆弱性であるCVE-2017-8464*2を悪用すると、細工したショートカットファイルを読み込むことで任意のコードの実行がされます。

繰り返しになりますが、2009年10月発売のWindows7より前に利用されていたWindows Vista以前のOS(例えばWindows XPなど)では標準設定で自動実行が可能となっていますので十分ご注意ください。

マルウェアの起動方法

Windows7やWindows10で広まったEMOTETなどのマルウェアでは、攻撃者はPCの再起動をした際に自動実行されるスタートアップフォルダに下記の様なrundll32.exeを使用したコマンドを挿入したり、レジストリにEMOTET本体のプログラムを登録し実行させたりと、様々な手法を使い始めました*3。下記はその一例です。

  • スタートアップフォルダにexeコマンドを挿入する場合:

C:\Windows\system32\rundll32.exe "C:\Users\(ユーザ名)\AppData\Local\(ランダムな英字)\(ランダムな英字).(ランダムな英字)",RunDLL

  • Registryの場合:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

のデータとしてEMOTET本体のパスを登録します。

※上記の場合、EMOTET本体へのパスは下記の表記となります:

          C:\Users\(ユーザ名)\AppData\Local\(ランダムな英字)\(ランダムな英字).(ランダムな英字)

因みにofficeソフトも2007年1月リリースの2007よりマクロ機能が標準では無効になり、自動ではEmotetなどのマクロウイルスも実行されないようになりました。しかし、マクロウイルスを起動すると「コンテンツの有効化」というメッセージボタンが表示され、よく分からずに有効にしてしまうケースが多く、そうするとマクロウイルスが実行され、例えばEMOTETなどに感染してしまいます。

マクロが無効にされました

ほぼ全てのマクロウイルスは、この様にどうにかして感染をさせようと様々な手を使いますので操作時には十分な注意が必要です。

一般的に利用されているセキュリティ対策

IT系ではほとんどの場合インターネットに接続されているために、パターンファイルなど最新のセキュリティデータをメーカサイトや社内にあるサーバ経由でダウンロードできます。

しかし、インターネット、あるいは社内ネットワークにも接続されていない閉鎖ネットワークが使われるOT系では、特定のプログラムのみの実行を許可する、アローリストタイプの製品も有効です。

ただし、新しい機能をサポートしたプログラムへの入替え時にはシグネチャの更新をしないと正規の操作・プロセスの動作を停止させてしまう可能性があり、また特定ユーザ・特定期間中の例外設定などのホワイトリストの更新作業などでも運用が大変だ、という声もお客様から聞いています。

勿論、通常使用する外部ストレージだけはアローリストに登録を常時継続することも可能ですが、セキュリティ上は危険なのでその様な運用はしないと思います。

また、CCleanerなどで発生したベンダの開発環境が攻撃されたことで発生するサプライチェーン攻撃に対しては、やはり効果がありません。

アクティブサイバーディフェンスの効用

上記の様に攻撃者が使う手法は状況に応じてどんどん変化・進歩していきます。そうすると以前のブログ「アクティブサイバーディフェンス」で述べたように、操作している人が間違えて、あるいは知らない内にどの様な操作をしてもマルウェア感染をしないアクティブサイバーディフェンスが有効な手段として、今後のセキュリティ対策で実装すべきことになります。

特にMoving Target Defenseなどの手法でマルウェアが実行されそうになっても実行できないソリューション「Morphisec」(ブログ エンドポイント保護のためのMoving Target Defense 技術)、あるいは悪意のあるマルウェアを事前に削除してしまうソリューション「Resec」(ブログ マルウェアや攻撃者の侵入経路アクティブサイバーディフェンス)を活用し、攻撃をされても感染しない対応を事前に行うことが非常に有効だと思います。

攻撃者の手法や手段に対応する「攻撃者優位」のセキュリティ対策から、どんな手法で攻撃を受けても「防御側優位」となるアクティブサイバーディフェンスは、現在のコロナ禍でのテレワークなどの働き方改革による社内システム利用形態の変化、新手法による攻撃の多様化などへの対応として今後のサイバーセキュリティ対策では必須かつ重要になると思います。

勿論、その前にはセキュリティに関する教育やシステムを最新にアップデートするといったブログ「サイバーハイジーン」などが、組織としての対応と同時に、内部犯行者を出さない経営として行うべき対策として必要です。

脚注(参考文献一覧)

  1. weblio|スタックスネットとは何? Weblio辞書(参照日:2022-03-07)
  2. Microsoft|LNK のリモートでコードが実行される脆弱性(参照日:2022-03-07)
  3. JPCERTコーディネーションセンター公式ブログ|マルウエアEmotetへの対応FAQ(参照日:2022-03-07)