English | Japanese
2022年3月3日にマイクロソフト社は Windows 上の Office アプリケーションについて、インターネットからダウンロードされたファイル(メールの添付ファイルなど)のマクロをブロックするようにデフォルトの動作を変更することを発表しました。
発表内容の抜粋:
VBA マクロは、悪意のあるアクターがマルウェアやランサムウェアをデプロイするためのアクセス権を取得する一般的な方法です。 そのため、Office のセキュリティを向上させるために、Office アプリケーションの既定の動作を変更して、インターネットからファイル内のマクロをブロックしています。
...
この変更は、Windows を実行しているデバイスの Office にのみ影響し、Access、Excel、PowerPoint、Visio、Word の各アプリケーションにのみ影響します。
この変更は、2022年4月初旬の Current Channel (プレビュー) 以降、バージョン2203でロールアウトを開始します。 その後、この変更は、最新チャネルや月次エンタープライズ チャネルなどの他の更新チャネルで利用できるようになります。
これは悪意のある Office ドキュメントに対する防御の素晴らしい改善です。
この発表によると、マクロをブロックするかどうかはファイルの MOTW (Mark of the Web) 属性に基づきます。ウェブブラウザやメールクライアントなどのアプリケーションはインターネットからダウンロードしたファイルやメールの添付ファイルに MOTW を付けます。MOTW は NTFS 代替データストリームの Zone.Identifier に保存されます。
圧縮ファイルから展開された悪意のある Office ドキュメントのマクロをブロックするためには、圧縮展開ソフトウェアは圧縮ファイルに MOTW が付いている場合に展開したファイルにも MOTW を伝播させる必要があります。もし圧縮展開ソフトウェアが MOTW を伝播しなければ圧縮ファイル中の悪意のある Office ドキュメントはブロックを回避することができてしまいます。
ここで一つの疑問が思い浮かびました。「どの圧縮展開ソフトウェアが展開したファイルに MOTW を伝播させるんだろう?」 そこで私はいくつかの圧縮展開ソフトウェアをテストしてその結果をまとめました。
名称 | テストしたバージョン | ライセンス | MOTWの伝播 | デフォルトで有効 | 備考 |
---|---|---|---|---|---|
Windowsのエクスプローラの「すべて展開」 | Windows 11 23H2 Windows 10 22H2 |
有償 | する ✔️ | 有効 ✔️ | MOTW バイパスの脆弱性(修正済) *1 |
7-Zip | 24.08 | GNU LGPL | する ✔️ | 無効 ❌ *2 | |
Bandizip | Standard Edition 7.36 | フリーウェア | する ✔️ | 有効 ✔️ | MOTW バイパスの脆弱性(修正済) *3 特定のファイル拡張子のみ *4 |
CubeICE | 3.4.0 | フリーウェア(有償版もあり) | する ✔️ | 有効 ✔️ | MOTW バイパスの脆弱性(修正済) *5 |
Explzh | 9.48 | 商用利用は有償 | する ✔️ | 有効 ✔️ | |
NanaZip | 3.0.1000.0 | MIT | する ✔️ | 無効 ❌ *6 | |
PeaZip | 9.9.0 | GNU LGPL | する ✔️ | 有効 ✔️ | |
TC4Shell | 21.3.0 (試用版) | 有償 | する ✔️ | 有効 ✔️ | |
Total Commander | 11.03 (試用版) | 有償 | する ✔️ | 有効 ✔️ | |
WinRAR | 7.01 (試用版) | 有償 | する ✔️ | 有効 ✔️ | デフォルトは特定のファイル拡張子のみ *7 |
WinZip | 76.8 (試用版) | 有償 | する ✔️ | 有効 ✔️ | |
Ashampoo ZIP Free | 1.0.7 | フリーウェア (登録が必要) | しない ❌ | ||
CAM UnZip | 5.22.6.0 | 商用利用は有償 | しない ❌ | ||
PowerShell の Expand-Archive コマンドレット | 7.4.4 | MIT | しない ❌ | ||
Express Zip | 11.13 | 商用利用は有償 | しない ❌ | ||
IZArc | 4.5 | フリーウェア | しない ❌ | ||
LhaForge | 1.6.7 | MIT | しない ❌ | ||
Lhaplus | 1.74 | フリーウェア | しない ❌ | ||
PowerArchiver | 22.00.09 (試用版) | 有償 | しない ❌ | ||
StuffIt Expander | 15.0.8 | フリーウェア | しない ❌ | ||
Windows 11の tar.exe (bsdtar) | 3.7.2 | BSD 2-clause | しない ❌ | ||
Universal Extractor 2 | 2.0.0 RC 3 | GNU GPLv2 | しない ❌ | ||
ZipGenious | 6.3.2.3116 | フリーウェア | しない ❌ | ||
Zipware | 1.6 | フリーウェア | しない ❌ | ||
ファイルコンパクト | 7.02 | 有償 | しない ❌ |
*1: Windows には2つの MOTW バイパスの脆弱性があり、2022年11月8日にリリースされたセキュリティ更新プログラムで修正されました。
- CVE-2022-41049 (Will Dormann (@wdormann) 氏の Twitter のスレッド) と Kuba Gretzky (@mrgretzky) 氏の 脆弱性の解説記事)
- CVE-2022-41091 (Will Dormann (@wdormann) 氏の Twitter のスレッド)
*2: 7-Zip はバージョン 22.00 から MOTW の伝播をサポートしましたが、デフォルトで無効になっています。7-Zip の GUI については 7-Zip File Manager の「ツール」→「オプション」→「7-Zip」にある「Zone.Id ストリームの伝達:」で MOTW の伝播を有効にできます。
オプションを「はい(Y)」に設定した場合は MOTW が全ての展開されたファイルに伝播されます。「Office ファイルの場合」に設定した場合は以下のファイル拡張子のファイルに MOTW が伝播されます:
- .doc .docb .docm .docx .dot .dotm .dotx .wbk .wll .wwl
- .pot .potm .potx .ppa .ppam .pps .ppsm .ppsx .ppt .pptm .pptx .sldm .sldx
- .xla .xlam .xlm .xls .xlsb .xlsm .xlsx .xlt .xltm .xltx
MOTW の伝播はレジストリの HKEY_CURRENT_USER\SOFTWARE\7-Zip\Options\WriteZoneIdExtract に 1 の DWORD 値を設定することでも有効にできます。
7-Zip の CLI については、上記のオプションの設定に関係なく -snz のコマンドラインオプションが必要です。
*3: Bandizip には MOTW バイパスの脆弱性があり、2022年11月21日にリリースされた Bandizip 7.29 で修正されました。(リリースノート). この脆弱性は Windows の CVE-2022-41049 の脆弱性 (*1) とほとんど同じで、ZIP ファイル内の圧縮されたファイルに読み取り専用の属性を付けるだけで脆弱性を突くことができます。私はこの脆弱性を発見して Bandizip の開発元の Bandisoft に報告しました。Bandisoft は非常に迅速に脆弱性を修正してくれました。
*4: Bandizip のドキュメントによると、Bandizip は以下のファイル拡張子のファイルに MOTW を伝播します:
- .exe .com .msi .scr .bat .cmd .pif .bat .lnk
- .zip .zipx .rar .7z .alz .egg .cab .bh
- .iso .img .isz .udf .wim .bin .i00
- .js .jse .vbs .vbe .wsf
- .url .reg
- .docx .doc .xls .xlsx .ppt .pptx .wiz
私は以前にテキストファイルのみを含む ZIP ファイルで Bandizip をテストしていたため、Bandizip が MOTW を伝播しないと誤解していました。
*5: CubeICE はバージョン3.0.0から MOTW の伝播をサポートしていますが MOTW バイパスの脆弱性がありました。この脆弱性は2023年4月5日にリリースされたバージョン3.0.1で修正されました(リリースノート)。この脆弱性は Windows の CVE-2022-41049 の脆弱性 (*1) とほとんど同じで、ZIP ファイル内の圧縮されたファイルに読み取り専用の属性を付けるだけで脆弱性を突くことができます。私はこの脆弱性を発見して CubeICE の開発元の CubeSoft に報告しました。CubeSoft は非常に迅速に脆弱性を修正してくれました。
*6: NanaZip はバージョン 2.0 Preview 1 から MOTW の伝播をサポートしていますが、デフォルトで無効になっています。NanaZip の GUI の「ツール」→「オプション」→「Integration」にある「Zone.Id ストリームの伝達:」で MOTW の伝播を有効にできます。
このオプションを「Yes」に設定した場合は、NanaZip は全ての展開したファイルに MOTW を伝播します。「Office ファイルの場合」に設定した場合は、NanaZip は以下のファイル拡張子のファイルに MOTW を伝播します:
- .doc .docb .docm .docx .dot .dotm .dotx .wbk .wll .wwl
- .pot .potm .potx .ppa .ppam .pps .ppsm .ppsx .ppt .pptm .pptx .sldm .sldx
- .xla .xlam .xlm .xls .xlsb .xlsm .xlsx .xlt .xltm .xltx
*7: WinRAR 7.0で"Mark of the Webを伝播"のオプションが導入されました。以下の値から選択できます:
- 削除しない(「伝播しない」の誤り?、英語版では"Never")
- Officeファイル用
- 実行ファイルとOfficeファイル用
- 全ファイル用
- ユーザー定義された種類用
このオプションはWinRARのGUIでのみサポートされています。WinRARのCLIはオプションの設定に関係なくMOTWの伝播をしません。
デフォルトは「実行ファイルとOfficeファイル用」で、WinRARは以下のファイル拡張子のファイルにMOTWを伝播します:
- .exe .bat .cmd .hta .lnk .msi .pif .ps1 .scr .vbs
- .doc .docb .docm .docx .dot .dotm .dotx .wbk
- .ppa .ppam .pot .potm .potx .pps .ppsm .ppsx .ppt .pptm .pptx .sldm .sldx
- .xls .xlsb .xlsm .xlsx .xlm .xlt .xltm .xltx
「Officeファイル用」に設定すると、WinRARは以下のファイル拡張子のファイルにMOTWを伝播します:
- .doc .docb .docm .docx .dot .dotm .dotx .wbk
- .ppa .ppam .pot .potm .potx .pps .ppsm .ppsx .ppt .pptm .pptx .sldm .sldx
- .xls .xlsb .xlsm .xlsx .xlm .xlt .xltm .xltx
「ユーザー定義された種類用」に設定するとファイル拡張子を指定できます。
名称 | テストしたバージョン | MOTW 伝播の動作 |
---|---|---|
Windowsのエクスプローラの「すべて展開」 | Windows 11 23H2 Windows 10 22H2 |
|
7-Zip | 24.08 |
|
Bandizip | Standard Edition 7.36 |
|
CubeICE | 3.4.0 |
|
Explzh | 9.48 |
|
NanaZip | 3.0.1000.0 |
|
PeaZip | 9.9.0 |
|
TC4Shell | 21.3.0 (試用版) |
|
Total Commander | 11.03 (試用版) |
|
WinRAR | 7.01 (試用版) |
|
WinZip | 76.8 (試用版) |
|
これらの例では、MOTW が Set-MOTW.ps1 で motw-test.zip の ZIP ファイルに手動でセットされ、続いて展開されたファイルの MOTW が Get-MOTW.ps1 で表示されています。Set-MOTW.ps1 と Get-MOTW.ps1 は私の PS-MOTW のリポジトリで公開しています。
-
以下のブログ記事をご覧ください:
- Details about the Mark-of-the-Web (MOTW) by Mike Wolfe (@NoLongerSet)
- Downloads and the Mark-of-the-Web by Eric Lawrence (@ericlaw)
- Mark-of-the-Web from a red team’s perspective by Stan Hegt (@stanhacked)
これらは MOTW について理解するのにとても役立ちます。
-
あなたのテスト結果を Issues または Pull requests で提供してください。私は日本人ですので比較表にはあなたがご存じないかもしれない日本の圧縮展開ソフトウェアがいくつか載っています。
-
Details about the Mark-of-the-Web (MOTW) をご覧ください。こちらでは Windows のエクスプローラと 7-Zip の動作を比較しています。あなたのお気に入りの圧縮展開ソフトウェアも同様にテストできます。
私は PS-MOTW という手動で MOTW を設定、表示、削除できる PowerShell スクリプトを作りました。これを圧縮展開ソフトウェアのテストに使うことができます。
-
詳細について Issues でご提供いただくか Pull requests で修正案をご提供ください。
-
はい。もしディスクイメージファイルが NTFS 代替データストリームをサポートしていない場合は、MOTW はディスクイメージファイル中のファイルには付けられません。以下を参照してください:- Mark-of-the-Web from a red team’s perspective by Stan Hegt (@stanhacked)
- The Dangers of VHD and VHDX Files by Will Dormann (@wdormann)
- Subvert Trust Controls: Mark-of-the-Web Bypass (an article in MITRE ATT&CK knowledge base).
2022年4月11日更新:
Didier Stevens 氏 (@DidierStevens) の .ISO Files With Office Maldocs & Protected View in Office 2019 and 2021 のブログ記事によると、Office 2019 と 2021 は MOTW が付いている ISO ファイル内に保存された Office ドキュメントを保護されたビューで開くそうです。この動作は2021年8月に導入されたとのことです。2022年11月30日更新:
Bill Demirkapi 氏 (@BillDemirkapi) のツイートによると、マイクロソフト社は2022年11月8日にリリースされたセキュリティ更新プログラムでISOやVHD等のディスクイメージファイルの MOTW の取り扱いを修正しました。アプリケーションがインターネットからダウンロードしたディスクイメージファイル内のファイルを開く際はそのディスクイメージファイルの MOTW が適用されるようになります。
-
Macros from the internet will be blocked by default in Office
https://docs.microsoft.com/en-us/deployoffice/security/internet-macros-blocked -
Details about the Mark-of-the-Web (MOTW)
https://nolongerset.com/mark-of-the-web-details/ -
Downloads and the Mark-of-the-Web
https://textslashplain.com/2016/04/04/downloads-and-the-mark-of-the-web/ -
Mark-of-the-Web from a red team’s perspective
https://outflank.nl/blog/2020/03/30/mark-of-the-web-from-a-red-teams-perspective/ -
The Dangers of VHD and VHDX Files
https://insights.sei.cmu.edu/blog/the-dangers-of-vhd-and-vhdx-files/ -
Subvert Trust Controls: Mark-of-the-Web Bypass
https://attack.mitre.org/techniques/T1553/005/
萬谷 暢崇 (@nmantani)