MalDoc in PDF - 検知回避を狙って悪性なWordファイルをPDFファイルへ埋め込む手法 -
JPCERT/CCは、7月に発生した攻撃に、検知回避を狙って悪性なWordファイルをPDFファイルへ埋め込む新しいテクニック(以降本記事ではMalDoc in PDFとする)が使用されたことを確認しました。今回は、使用されたMalDoc in PDFの詳細とその対策について解説します。
MalDoc in PDFの概要
MalDoc in PDFで作成されたファイルはPDFのマジックナンバーやファイル構造を持つにもかかわらず、Wordで開くことが可能なファイルとなります。このファイルをWordで開くことで、ファイルにMacroが設定されていた場合、VBSが動作し、悪性の挙動を行います。
なお、JPCERT/CCが確認した攻撃では、ファイルの拡張子は.docとして使用されていたため、Windowsの設定で.docの拡張子にWordが関連付けされている場合、MalDoc in PDFで作成されたファイルはWordファイルとして開かれます。
本手法で作成されたファイルをWordで開き、通信が発生するまでの動画を以下に掲載していますので、ご覧ください。
MalDoc in PDFの詳細
本手法で作成されたファイルのダンプ表示を図1に示します。攻撃者は、PDFファイルのオブジェクト後ろにWordで作成されたMacroつきのmhtファイルを書き込み、保存します。作成されたファイルはファイルのシグネチャとしてはPDFファイルと判定されますが、Wordで開くことも可能なファイルとなります。
MalDoc in PDFで作成されたファイルを分析する際、図2に示すように、pdfid[1]などのPDF分析ツールでは悪性部分を発見できない可能性が高く、また、PDFビューアーなどで開いても悪性な挙動を確認できませんが、Wordで開くと意図しない挙動を行うため、注意が必要です。また、既存のSandboxやウイルス対策ソフトなどもPDFファイルとして判定されることから検知されない可能性があります。なお、JPCERT/CCが確認した攻撃ではファイルの拡張子は.docとして使用されていました。
MalDoc in PDFへの対策
本手法への対策としては、悪性なWordファイルの分析ツールであるOLEVBA[2]が依然として有効で、図3のようにOLEVBAを使用することで埋め込まれているマクロが出力されるため、ファイルの悪性部分をこのツールの出力結果で確認することができます。
また、Yaraルールを使用した検知ルールの例としては次のようになります。なお、本手法において、ExcelファイルをPDFファイルへ格納した場合には、Excel起動時にファイルの拡張子が異なる旨の警告画面が表示され、警告を許可しないとExcel上でファイルが開かれないため、本手法にExcelファイルが用いられる可能性は現時点で低いと考えられます。
rule malware_MaldocinPDF { strings: $docfile2 = "<w:WordDocument>" ascii nocase $xlsfile2 = "<x:ExcelWorkbook>" ascii nocase $mhtfile0 = "mime" ascii nocase $mhtfile1 = "content-location:" ascii nocase $mhtfile2 = "content-type:" ascii nocase condition: (uint32(0) == 0x46445025) and (1 of ($mhtfile*)) and ( (1 of ($docfile*)) or (1 of ($xlsfile*)) ) }
おわりに
今回紹介した手法は、Wordマクロにおける自動実行を無効化する設定などをバイパスする仕組みではありませんが、ファイルがPDFとして認識されることから、マルウェア分析をツールやSandboxなどによって自動化している場合、悪性判定結果に注意が必要です。今回確認したマルウェアの通信先やハッシュ値などについては、Appendixに記載していますのでご確認ください。
インシデントレスポンスグループ 増渕 維摩、喜野 孝太
参考情報
[1] pdfid.py
https://github.com/DidierStevens/DidierStevensSuite/blob/master/pdfid.py
[2] OLEVBA
https://github.com/decalage2/oletools/wiki/olevba
Appendix A: 通信先
- https://cloudmetricsapp.com
- https://web365metrics.com
Appendix B: マルウェアのハッシュ値
- ef59d7038cfd565fd65bae12588810d5361df938244ebad33b71882dcf683058
- 098796e1b82c199ad226bff056b6310262b132f6d06930d3c254c57bdf548187
- 5b677d297fb862c2d223973697479ee53a91d03073b14556f421b3d74f136b9d