New Report
Menlo Security finds a new sophisticated phishing campaign.
Icon Rounded Closed - BRIX Templates

テンプレートインジェクション攻撃におけるカモフラージュされたURL

|

まとめ

Menlo Labsの研究チームは最近、武器化されたテンプレートインジェクション文書がどのように機能するか、そしてそれをどのように防御するかについてのブログを公開しました。悪意のあるURLやエクスプロイトマーカーなどの特定の痕跡がない場合、テンプレートインジェクション攻撃をセキュリティスキャナで検知するのは困難なのです。

テンプレートインジェクション攻撃の研究を続ける中で、私たちは偶然、カモフラージュの手法を用いてURLを肉眼では見えないようにした興味深い武器化文書を見つけました。これらの文書には10進数のIPアドレスが含まれていたり、リモートでホストされているテンプレートを取得するために難読化されたURLフォーマットが使われたりしています。

以前の記事で述べたように、これらの攻撃は以下の理由からも注目されます:

  • 攻撃者は、URLベースのパターンマッチングによるファイルベースのコンテンツ検査エンジンを回避するために、カモフラージュされたテンプレートインジェクションURLを使用しています。これは、Menlo LabsのチームがLURE(Legacy URL Reputation Evasion:レガシーなURLレピュテーションの回避) と名付けたテクニックで、HEAT(Highly Evasive Adaptive Threats:高度に回避的で適応型の脅威)テクニックの一例として知られています。
  • 攻撃者は文書内に悪意のあるURLを挿入して、ローカルまたはリモートのマシンでホストされているテンプレートをレンダリングさせます。この武器化された文書が開かれると、悪意のあるテンプレートをダウンロードして実行しようとします。このペイロードをロードする攻撃のキルチェーンは、LotL(Living off the Land:環境寄生型)攻撃とも呼ばれ、悪意のあるアクションを実行するために正規のソフトウェアを使用する攻撃に分類されます。

このブログでは、カモフラージュを使ったテンプレートインジェクション攻撃に関する調査結果を詳しくご紹介します。

さまざまなIPアドレスの表記方法

通常、IPアドレスはXXX.XXX.XXX.XXXのようなドット付き10進数で表記されますが、この他にも、IPアドレスにはさまざまな表記方法が用いられます。

ここでは、google.comのIPアドレス「42.250.199.142」(本稿執筆時)を例に、IPアドレスの表記方法の違いを説明します。

8進数表記:8進数で表されるIPアドレス → 0052.0372.0307.0216
これは05276543616とも表せます。8進数表現では先頭の0をインタープリターメーカーとして使用するため、0はいくつでも追加できます。例えば、00000000005276543616や0052.0372.0307.000000000216のようになります。

16進数表記:16進数で表したIPアドレス → 0x2afac78e
0x2a.0xfa.0xc7.0x8eと表すこともできます。

10進/DWORD表記:ドットを除いた10進数で表現したIPアドレス → 721078158

バイナリ(2進数)表記:IPアドレスを2進数で表記 → 10001110.11111010.11000111.10001110

エンコード表記:IPアドレスをURLエンコードしたもの → %34%32%2E%32%35%30%2E%31%39%2E%31%34%32

混合表記:上記の異なる表記を組み合わせて表現されたIPアドレス → 0x2a.0372.199%2E%31%34%32

上記の他に、IPアドレスの0を抑制または圧縮した0最適化ドット付き10進数表記という表記法もあります。

この例では、ルーターが使用するデフォルトゲートウェイのIPアドレス(192.168.0.1)を例に挙げます。以下のリストは、IPアドレスの0が最適化された表現を示しています:

  • 192.168.1
  • 192.168.000000000000.0000000001
  • 192.168.00000001

デフォルトでは、ブラウザーはこれらの表記のほとんど(バイナリ表記を除く)を受け入れます。このような表記を使用すると、ファイルベースのコンテンツ検査エンジンを回避することができます。

複雑過ぎますか? 興味深いですよね? もう少しお付き合いください!!!

まだ終わりではありません! このパンドラの箱の他の部分を掘り下げてみましょう。

ミスリーディングなURIを使ったセマンティック攻撃

このようなIPアドレスの表記は、ファイルベースのコンテンツ検査エンジンにとって既に扱いづらいものになっていますが、難読化されたURLの使用が検査をさらに困難なものにしています。この手法は、Uniform Resource Identifier (URI)スキームにおける「@」userinfoサブコンポーネントを使用するものです。この文字を使用すると、URIの一般的な構文形式で難読化されたURLやミスリーディングなURIを作成することができ、URIベースのセマンティック攻撃を行うことができます。理解を深めるために、google.comのIPアドレスと同じ例で考えてみましょう。ミスリーディングなURIの例として、https://test@google.comを使います。ブラウザーのアドレスバーからこのURLにアクセスすると、google.comに解決されます。

ここでは「@」がデリミターとして機能し、「test」を無視してgoogle.comに解決します。さらに、ミスリーディングなURIを作成するために、「://」権威コンポーネントも使用しなければなりません。

これと同じ機能は、「@」が何回繰り返されても機能します:

  • https://test!@test!@test!@test!@test@test@test@test@google.com
  • https://@@@@@@@@@@@@@@@@@@@@@@@@@@@@@google.com
  • https://@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@google.com
  • https://@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@0x8efac78e

また、これはhttps://test@0x8efac78eやhttps://@721078158のように、8進数、16進数、10進数表記でも表記可能です。これは私たちにとって興味深い実験でした。標準的なドット付き10進数表記以外の8進数、16進数、10進数/DWORD表記は、ほとんどのアプリケーションでは無効なリンクとして扱われることが確認されました。

さらに攻撃者は、悪意のあるURLを良性のURLの後ろに隠してしまうこともできます。例として、以下のURLを見てみましょう:

  • https://192.168.1@0x2afac78e
  • https://192.168.0.1@google.com
  • https://youtube.com@google.com

これらの例では、URLはすべてgoogle.comに解決されます:192.168.1、192.168.0.1、youtube.comは、実際のURLではありません。

カモフラージュされたURL

ブラウザーがサポートする非標準のIP表記とミスリーディングなURIを使用することで、カモフラージュの効果を得ることができます。

攻撃者は、以下のような方法で、URLをチェックするコンテンツ検査エンジンを回避することができます:

  • 8進数、16進数、10進数で表記されたリンクを作成し、アプリケーションに無効なリンクとして扱わせる
  • 8進数、16進数、10進数の表記を用いて、ミスリーディングなURIのリンクを作成する(セマンティック攻撃)
  • 悪意のあるURLを良性のURLで隠すことにより、ミスリーディングなURIのリンクを作成する(セマンティック攻撃)

これらの攻撃は新しいものではなく、10年以上前から行われています。2020年9月、TrustwaveはこのようなURL回避の例を引用した詳細を発表しました。暗号化された16進数のIPアドレス形式の使用や、短縮URLをマスクするURLセマンティック攻撃について説明しています。

テンプレートインジェクション攻撃におけるカモフラージュされたURL

私たちは、テンプレートインジェクション攻撃で使用されるカモフラージュされたURLを特定しました。

テンプレートは、以下のようなカモフラージュされたURLでホストされていました:

  • 10進数表記
  • 10進数表記によるミスリーディングなURI(セマンティックアタック)

私たちの分析で確認されたこれらの表記の例を以下に示します。

10進数表記

私たちが分析した10進数表記を用いたURLの文書には、カモフラージュとして「.」や「-」が複数含まれていました(図1参照)。

Camouflaged decimal notation
図1:カモフラージュされた10進数表記

ファイルの詳細は以下の通りです:

  • ファイル名:Axis Bank - 67 Account Pending List - 2022.09.22.docx
  • ハッシュ - b9cb173c049ab9d289dfde58cfd96cf4)
  • パス → word_relswebSettings.xml.rels.
  • テンプレートURL - http[:]//1806450061/…———————-……………..———————–……——-/……….650[.]doc

URLの10進数/DWORD 1806450061は、ドット付きIPアドレス形式では107.172.61.141に相当します。

10進数表記によるミスリーディングなURI(セマンティック・アタック)

別の類似した文書では、「.」や「-」を複数使用した10進数表記によるURLが使用されていました。さらにこの攻撃者は、ミスリーディングなURIのセマンティック攻撃を仕掛けています(図2参照)。

Camouflaged misleading URI with decimal notation
図2:10進数表記で偽装されたミスリードURI

ファイルの詳細は以下の通りです:

  • ファイル名:TT details.docx
  • ハッシュ - e732f54857ee57bebe19fb6f3954114c
  • パス → word_rels\webSettings.xml.rels.
  • テンプレートURL - http://users@1806450061/..———..————–—-_————/………………………….89.doc

先ほど説明したように、「@」は「users」を無視し、「1806450061」を考慮したデリミターとして機能します。これは、ドット付きIPアドレス形式107.172.61.141に解決されます。

カモフラージュを解読する

さて、問題です:このカモフラージュは、ユーザーの介入なしに、自動的に解読できるのでしょうか? 答えは「Yes」です。

前述の2つのケースでは、武器化されたドキュメントを開くとカモフラージュされたURLが解読され、107.172.61.141からテンプレートが取得されます。武器化された文書が実行中にパケットをキャプチャする例を以下に示します(図3参照)。

Screenshot of packet capture
図3:ドット付き10進数表記に変換されたパケットキャプチャ

武器化された文書は、RTFエクスプロイトであるCVE-2017-11882を含むテンプレートをダウンロードしました。このエクスプロイトには、リモートコードの実行につながるEquation Editorのスタックバッファオーバーフローの脆弱性が含まれています。本脆弱性はパッチがリリースされていますが、今でも活発に利用され続けています。

RTFエクスプロイトテンプレートを使用した分析では、武器化された文書からFormBook、Snake Keylogger、SmokeLoaderなどのマルウェアがドロップされました。

Menlo Isolationによる救済!

前回の記事で説明したように、Isolation Core™を搭載したメンロのクラウドセキュリティプラットフォームを利用するお客様は、テンプレートインジェクション攻撃から設計上保護されています。Menlo Securityのクラウドセキュリティプラットフォームは、インターネットからダウンロードされたすべての文書を、ユーザーのエンドポイントから離れたIsolation Core™で開きます。

Menlo SecurityのSafedoc機能は、アクティブなコンテンツをすべて取り除き、それによって悪意のある側面を確実に除去します。ドキュメントは安全なバージョンに変換されます。また、インターネットからのすべてのドキュメントが安全なバージョンとしてダウンロードされるように、ポリシーを設定することも可能です。

まとめ

このブログでは、Menlo Labsが目撃したさまざまなIPアドレス表記とセマンティック攻撃について詳しく説明しました。攻撃者はこの戦略を利用して、ブラウザーでサポートされる標準的で無い表記を作成しています。私たちは、このテクニックを使って武器化したテンプレートインジェクション文書の例や、肉眼で見えないようにカモフラージュするために「.」や「-」文字を使った例を紹介しました。この攻撃は、無効なリンクとして扱う一部のファイルベースのコンテンツ検査エンジンを回避することができます。

テンプレートインジェクション攻撃では、カモフラージュの事例はこれまでにわずかしか観察されていませんが、このパンドラの箱からは、さらに多くのものが出てくると予想されます。

IOCs

Hashes:

b9cb173c049ab9d289dfde58cfd96cf4
f4c5e11473a31d7fd0151e8e8683f21f
b41225fb45bc78c549f6cc55b7c1ad3a
05fe20851e6f72d31d6147c937a5da98
396a604cc05534cd90291dee5877eea6
130181c1c46545bd9a2c6245e71ebb92
5fa0e9c5e0139f2f332ded2610ee1168
f5bf5c010cf46a24c06e45d191ecbcd5
2fce6e97f53169c6e4c2f1f9086712b7
429b2307c47f8f23fc986c7f48afd03b
e732f54857ee57bebe19fb6f3954114c
aa3354211e2042dbabfc21a47dfba19a
db4db708d8ff5693536d5b98251d2274
71feb287d0b9f215ff34ec25abe5ced1
2384fe43ced9acc7734d49f68a5dcc88
7c58cca4a48205c5c77fb4d44c65be51

URLs:

http://1806450055/..—.———————.—-—-—————/……288.doc
http://1806450056/……———————————………————-/…………..17.doc
http://dummy_username@1806450056/….——————………………………………..—————/92.doc
http://users@1806450056/….——————………………………………..—————/93.doc
http://username@1806450056/..-…..———————-…….—————————..—…..—–/136.dothtml
http://1806450056/..-…..———————-…….—————————..—…..—–/137.dothtml
http://1806450061/…———————-……………..———————–……——-/………..77.doc
http://users@1806450061/..———..————–—-——————/…………………….87.doc
http://1806450061/…———————-……………..———————–……——-/……….88.doc
http://users@1806450061/..———..——————_——————/………………………….89.doc
http://users@1806450061/..———..——————_—_————/………99.doc
http://1806450061/…———————-……………..———————–……——-/…………390.doc
http://1806450061/…———————-……………..———————–……——-/………..400.doc
http://1806450061/…———————-……………..———————–……——-/……….650.doc
http://1806453907/..————.—–—-.——-—–…————–.—–—–/o——–O–..—————–D—–-d-Op———-_–.dothtml

IPs:

107.172.61[.]135
107.172.61[.]136
107.172.61[.]141
107.172.76[.]147

Menlo Security

menlo security logo
linkedin logotwitter/x logofacebook logoSocial share icon via eMail