インフラセキュリティの処方箋

第12回標的型攻撃で使われる道具の「一部」無効化 ~実行ファイルを「実行できない」ようにする

いわゆるマルウェアについて、実行ファイルとわかっていて実行するのは論外ですが、実行ファイル以外のデータと誤認させるような細工がされていると、なかなか気付きづらいというのが実情かと思います。今回は、そんな実行ファイルを誤って実行することがないようにするような、ちょっとした小技を2つほど紹介します。

標的型攻撃相次ぐ ~入口の1つはメール添付の「文書」ファイル

最近、日本年金機構をはじめとする多くの組織で標的型攻撃が確認されています。これまでも(標的型攻撃に限らず)⁠メールに添付されていた『文書』ファイルを開いたらマルウェアに感染した」という話が複数の攻撃事例で確認されています。

「怪しいメールは開かない」は現実的か?

攻撃側がそのメールを送る最初の目的は、なんとかして攻撃を仕掛けた先の誰かが「攻撃側が望む形でファイルを開かせる」ことにあります。そして、攻撃側がメールなりを信用させるためには、当該メールの文面なり添付ファイルのタイトルなりを自然に見せようとします。経験上、このようなメールについてくる(もしくはこのようなメールについてくるURLの先にあるファイル)は、以下のパターンを持ちます。

  1. 単純な実行ファイル
  2. 文書ファイルを模した実行ファイル
  3. 悪意あるマクロを含んだ文書ファイル
  4. 脆弱性を突くように細工された文書ファイル

もちろん、攻撃側はあの手この手でファイルを開かせようとするのですが、開いた先にあるのは多くの場合は「攻撃者が準備したコンピュータに対して何らかのデータを送信させる」という挙動です。通信そのものをさせなければいいという考え方もあるのですが、それ以前に「虚を突いたファイルを開かないようにする」という考え方もあります。

4つのアプローチのうち2つに対抗する ~実行ファイルをなんとかする

すでに述べた、攻撃側が送付してくるファイルが持つパターンのうち、3.は(例えば)Microsoft Officeアプリケーションを使う場合には何らかの形で警告が出ます(ただし、一度有効にしてしまうと、そのファイルについてはマクロ関連の警告は出力されなくなります⁠⁠。4.はゼロデイ脆弱性を使われない限りは、最新のパッチなりを適用しておけば防げる類のものです。それでは1.や2.についてはどうすればいいでしょうか。

なんとかする前に ~攻撃側が送付するファイルはどのように見えるのかの例

ここからは、筆者のところに届いたメールの1つに添付されていた「PDFっぽく見えるファイル」を例に取って説明します。

攻撃側が送付してくるファイルのうち、1.や2.に合致する特徴を持つファイルは、Windowsの初期設定のままだとExplorer画面からは図1のように見えます。⁠fax_info⁠という名前がついており、PDFを示すアイコンが表示されているファイルがありますが、これ実は実行ファイルです。sampleという名前がついているファイルは、筆者が試しに作成した(サイズ0の)sample.pdfというファイルですが、こちらはデータファイル(但し中身はない)になります。

図1 アイコン表示
図1 アイコン表示

ちなみに当該ファイルのプロパティを見ると図2のように見えますし、cmd.exeからdirコマンドなどで見ると図3のように見えるので明らかに実行ファイルとわかるのですが、いちいちこんなことをやって確認する人はいないでしょう。

図2 プロパティ表示
図2 プロパティ表示
図3 dirコマンド結果
図3 dirコマンド結果

実行ファイルをそれとわかるようにする ~登録された拡張子の表示

気付くために必要なことの1つは、⁠ヤバいファイルがヤバいとわかりやすくする」ことです。例えばですが、⁠本当は実行ファイルだが、一見文書データに見えるファイル」となると、それは怪しいポイントの1つになります。そのためには、⁠ファイルに付与されている拡張子も見えるようにする」ことは、そのようなファイルを見分けるための1つのポイントになります。

図4に示すように、フォルダオプションの「登録されている拡張子は表示しない」チェックを外す(図5のようにする)ことで、図1のフォルダが図6のように見えます。ファイルそのものはいじっていませんが、拡張子⁠exe⁠を持つファイルが存在することがわかります。

図4 フォルダオプション
図4 フォルダオプション
図5 フォルダオプション(チェックを外す)
図5 フォルダオプション(チェックを外す)
図6 フォルダ表示
図6 フォルダ表示

Unicodeの制御文字を使うようなファイル名の偽装などもあるので、これで十全とはいえないのですが、初期設定のままだと単純なexeファイルすらも一見してそうとわからないことにもなりうるので、このフォルダオプション変更は施しておくことをお勧めします。

なお、フォルダの内容を表示すると、図4-aのようになっていて「フォルダオプションの設定をどこで行うかわからない」ということがありますが、その時はその状態で「Altキー」を押下すると、図4-bのようにメニューバーが表示されます。ここで「ツール」を押下することで、⁠フォルダーオプション」を選択可能になります。

図4-a ⁠ツール」が表示されない
図4-a 「ツール」が表示されない
図4-b ⁠Altキー」を押下すると「ツール」が表示される
図4-b 「Altキー」を押下すると「ツール」が表示される

筆者はWindows 7 Professionalで検証しましたが、Windows 7 Home PremiumやWindows 8.1 with Bingにも同様の機能はあります。

おまけ ~Adobe ReaderなどPDFを読むためのアプリケーションがインストールされていない場合の見え方

プログラムに対応するデータファイルの拡張子がOSに登録されている場合、Windowsの初期設定ではその拡張子は見えなくなります。しかし、データファイルに付与される拡張子がOSに登録されるのは、そのようなデータを扱うプログラムがインストールされる時です。例えば、.pdfという拡張子がOSに登録されるのは、Adobe Reader DCをはじめとする「PDFファイルを読むためのプログラム」がインストールされる時です。

Adobe Reader DCなどがインストールされていない環境で、さきほどのfax_info.exeを見ると、図7のように見えます。攻撃側が「怪しくならないように」細工をすることで、OSが知らないはずのアイコンが表示されたり、OSが知らないはずの拡張子が表示されなかったりと、不自然に見えるようになります。

図7 Adobe Reader DCがインストールされていない環境での見え方
図7 Adobe Reader DCがインストールされていない環境での見え方

実行ファイルを「実行できない」ようにする ~フォルダのアクセス許可変更の概要

「フォルダに置かれた実行ファイルを実行できないようにする」というのは、誤って.exeが付与されている実行ファイルを触っても、そのファイルが実行されないようにするための有効な手段の1つです。

このようなことを実現するためには、上で述べたような「フォルダオプション」ではなく、⁠フォルダのプロパティ」を変更する必要があります。フォルダのプロパティを表示させた後、図8のように「セキュリティ」タブを選択し、その後に詳細な設定を施すことで、当該フォルダにあるファイルを実行できなくなるのですが、少しだけ小技が必要になってきます。

図8 セキュリティタブ
図8 セキュリティタブ

実行ファイルを「実行できない」ようにする ~フォルダのアクセス許可変更詳細

以下のように選択していくことで、アクセス許可変更を行えるようにしていくと、最後に変更できない状態になっていて困惑することでしょう。

  • プロパティ表示→⁠セキュリティ」タブ選択→⁠詳細設定」押下→⁠アクセス許可の編集」押下→⁠許可」を外せない(図9)
図9 ⁠許可」を外せない
図9 「許可」を外せない

これは、当該フォルダの設定は、親フォルダからの許可設定が継承された状態になっているためです。親フォルダの設定を当該フォルダが引き継いでしまっており、そのフォルダの許可設定だけを変更出来ません。

「拒否」「許可」よりも強し ~拒否を追加する

継承されているから許可のチェックを外せない……となると、面倒な方法を取らないといけないのか? いや、そんな心配はいりません。⁠許可」は外せないですが、このフォルダは、⁠拒否」は追加できます。

図10のように、アクセス許可を変更したいユーザが選択された状態で「編集」ボタンを押下し、⁠拒否」したい操作の拒否チェックボックスを有効にして「OK」ボタンを押下することで、図11のように「拒否」のアクセス許可エントリが追加されます。

図10 拒否エントリチェック
図10 拒否エントリチェック
図11 拒否エントリ追加完了
図11 拒否エントリ追加完了

単にチェックを外すよりも「拒否」を追加したほうがよいこともあります。というのは、⁠拒否」は明確に「許可」よりも優先して適用されるためです。今回の場合は、ユーザwakatonoに対して当該フォルダでの「フォルダーのスキャン/ファイルの実行」は拒否されたことになります。当該フォルダ配下にフォルダを作成した場合も、特に何もしなければこの許可/拒否設定は継承されます。この設定を施されたフォルダ中に実行ファイルを置いて、ダブルクリックをして実行しようとしても、図12のようなダイアログが表示されて実行できません。ただし、cmd.exeを起動して直接このファイルを起動すると出来てしまうので、そこは留意してください。

図12 拒否時の実行
図12 拒否時の実行

筆者はWindows 7 Home PremiumとWindows 7 Professionalで検証し、動作することを確認しました。Windows 8.1 with Bingでも同様のことは実現できるのですが、やり方が異なります。

おわりに

最近のWindowsの初期設定はセキュアかと思いきや、思わぬところに落とし穴があったりします。それがユーザの利便性やUIを追求した結果だとしても、ユーザに齟齬を生じさせるような設定だったりすることもあるため、みなさま留意の上ご使用ください。

それに、今回説明した方法を用いたとしても、冒頭に述べた4つのアプローチのうち「脆弱性を突く攻撃」は防げないので、パッチを適用する/ウイルススキャナを最新化するなどの基本動作もお忘れなく。

また、今回の設定を行ったとしても、悪い人は知恵を絞って新たな手段を考えてくることもありますし、どんなに気をつけてもマルウエア感染してしまうこともあるでしょう。なってしまった時にどう対応するか? というのを、普段から考えておくのも大切なので、何かの機会にそういうことにも考えを馳せてみてみてください。

おすすめ記事

記事・ニュース一覧