今秋のリリースが予定されている「Windows 11 22H2」には、「スマートアプリコントロール」(SAC)と呼ばれるセキュリティ機能が追加される。この新機能によって、どのような攻撃からPCが保護されるのかを検証してみた。
信頼できないアプリをブロックする
Windows 11 22H2で新たに搭載されるSACは、悪意のあるアプリや信頼されていないアプリをブロックする新しいセキュリティ機能だ。
Windowsセキュリティの設定画面の[アプリとブラウザーコントロール]を開くと、一番上に[スマートアプリコントロール]という項目が表示される。
おそらく、ほとんどの環境で[オフ]に設定されており、オンにするにはWindowsの再インストールが必要であることが表示されるため、多くのユーザーには無縁の機能となってしまっている可能性が高い。
が、このセキュリティ機能は、今後、増えてくるであろう巧妙な悪意のある攻撃からPCを保護することができる強力(良くも悪くも)なセキュリティ機能となっている。
機能としては、アプリ(プロセス)が実行されそうになると、まずアプリの署名を確認したり、クラウド上のセキュリティサービスを利用してアプリが安全かどうかを予測したりして、その実行可否を判断する。
また、特定の拡張子を持つファイルに関してもブロックするように設計されており、海外の識者によるテストによると、「.appref-ms」「.bat」「.cmd」「.chm」「.cpl」「.js」「.jse」「.msc」「.msp」「.reg」「.vbe」「.vbs」「.wsf」「.img」「.vhd」「.vhdx」などの拡張子を持つファイルの実行がブロックされることが報告されている。
いずれも、対象はインターネットからダウンロードしたファイル、より正確には「Mark of the Web(MOTW)」付き、つまりファイルのプロパティのセキュリティで「このファイルは他のコンピューターから取得したものです……」が表示されるファイルとなっている。信頼できない場所から取得したファイルから、実行されるプロセスを判断する仕組みだ。
この機能が追加された背景には、「Emotet」のように、マクロなどの正規のスクリプトを悪用することで感染を広げる攻撃のさらなる巧妙化がある。
従来は、スクリプトOfficeファイルのマクロやPowerShellなどが使われてきたが、これに加えて「.iso」や「.lnk」(ショートカット)、「.rar」などのファイルが使われるケースも見られるようになってきた。
SACは、こうしたファイルをブロックする仕組みとなるわけだ。
要するに、インターネットからダウンロードしたファイルで、かつダブルクリックして実行すると何らかのアクションを発生させるファイルが目の前にあるとき、警告を表示しつつブロックすることで、安易に実行させないための仕組みとなる。
実際にテストする
では、具体的にどのように動作するのかを検証してみよう。前述したように、SACはアプリの署名やクラウドセキュリティサービスによる判断によって実行の可否を判断するとなっているが、前述した特定の拡張子を持つファイルに関しては、MOTW付きであれば無条件にブロックされる。
今回、テストとして用意したのは、.lnkの拡張子を持つショートカットファイルだ。電卓(calc.exe)のショートカットファイルを作成し、その名前を「契約書.txt」とし、アイコンもメモ帳に変更して、それっぽく偽装してみた。
.lnkの拡張子は、Windowsでは拡張子の表示をオンにしていたとしても非表示になるため、偽装しやすいファイルの1つだ。もちろん、今回は実行しても電卓が起動するだけだが、リンク先にスクリプトなどが仕込まれていると、攻撃を受ける可能性がある。
このファイルをOneDriveで共有し、SACをオンにしたPCでダウンロード。ファイルをダブルクリックすると、以下のような画面が表示され、SACによって実行がブロックされた。
前述したように、このリンクファイル自体は電卓を起動するだけなので何ら害はないが、SACがオンの場合、悪意の有無には関係なく、MOTW付きファイルである限り、実行がブロックされる仕組みとなる。
ちなみに、同ファイルをZIPで圧縮した場合、およびそのZIPファイルをもう一度ZIPで圧縮した場合も検証してみたが、どちらも実行がブロックされた。
では、SACによってブロックされたファイルを実行したい場合はどうすればいいのかというと、これはシンプルで、MOTWを外せばいい。
ファイルのプロパティで[全般]タブのセキュリティで[このファイルは他のコンピューターから取得したものです……]を[許可する]にチェックを付けておく。
これで、SACの監視対象から外れるため、ファイルを実行することが可能となる。
このあたりは、2022年2月に変更されたOfficeファイルのマクロと同じ扱いだ。インターネットから入手したVBAマクロ付きのOfficeファイルは、既定でマクロの実行がブロックされるようになっており、ファイルのプロパティで[許可する]にチェックを付けることで、同様に実行可能になる。
この方法がスマートかどうかは議論の余地がありそうだが、インターネットから入手したファイルは既定で実行させないというのが、新しいポリシーとなりつつあるようだ。
オンになるまでの経過措置がある
このように、SACを利用することで、特定の拡張子のファイルが安易に実行されることを防げるが、SAC自体を利用するには少し工夫が必要となる。
まず、冒頭でも触れた通り、SACはWindowsのインストールが必要となるため、既存のWindows 11を22H2にアップグレードした場合は利用できない。
新規インストールした場合でも、インストール後、一定期間は、「評価」モードで稼働するため、ブロックは実行されない。この間に、利用状況が学習され、WindowsによってSACが必要であると判断されれば自動的にオンになり、必要でないと判断されればオフになる(その基準は今のところ不明)。
また、オンにした場合も一度オフにしてしまうと、Windowsそのものを再インストールしない限り、再びオンにすることはできない
なかなかワガママな機能と言えそうだ。
強力な保護機能であることは間違いない
以上、22H2で追加されるスマートアプリコントロールを実際にテストしてみた。
MOTW付きのみとはいえ、特定の拡張子の実行が一律ブロックされるので、開発者や管理者によっては少々付き合いにくい機能に思えるが、これによって多くのユーザーはメールやオンラインストレージのリンクから、不正なアプリやスクリプトを安易に実行してしまうことを防げるはずだ。
MOTWを解除するというワンステップが入ることで、本当にそのファイルを実行しても問題ないかを、一旦、考えることができるメリットは大きい。
しかしながら、有効化に再インストールが必要となると、恩恵を受けられるユーザーも限られてしまう。また、回避して実行する方法も面倒だ。機能的には興味深いが、運用のしやすさという点では課題がありそうだ。