Web脅威の動向: 休暇シーズンは攻撃アクティビティが活発化

By , , and

Category: Malware

Tags: , ,

A conceptual image representing trends, including the trends in web threats discussed here, including trends in web threats landing URLs and web threats malicious host URLs

This post is also available in: English (英語)

概要

休暇シーズンに消費者のオンラインショッピングが増える傾向はよく知られています。このためサイバー犯罪者がこの傾向を利用しようとする可能性は高いと考えられます。弊社は、Web脅威の動向と攻撃者がこうした傾向をどう利用しているのかを継続的に追跡・観測しており、直近の休暇シーズンについても、自社Web脅威検知モジュールで悪質なURLの急増を定量的に把握しました。

2021年10月から2021年12月にかけて、プロアクティブな監視・検知サービスを利用する弊社Web脅威検知モジュールは悪質なランディングURLを約53万3,000件発見しています。このうち12万0,753件が一意なランディングURLであることが確認されています。悪質なホストURLは約290万件検出され、このうち16万5,000件が一意なものであることもわかりました。ここでは「悪質なランディングURL」を「ユーザーが悪意のあるリンクをクリックする機会を提供するURL」と定義しています。また「悪質なホストURL」は、「悪意のあるコードスニペットが実際に含まれているページのうち、ユーザーのコンピュータリソースを悪用したり、機密情報を盗んだり、さまざまな種類の攻撃を行う可能性のあるもの」を指しています。

以下のセクションでこれらWeb脅威の傾向から得られた知見について解説し、アクティビティの活発な時期はいつか、ホストされやすい場所はどこか、それらの脅威の分類がどうなっているか、どのマルウェアファミリが頻繁に脅威となる傾向があるかをご紹介します。休暇シーズンにアクティブになる脅威への啓発のため、ここでは米国の休暇シーズンにあたる2021年10月から12月までの数字を中心に見ていきます。

パロアルトネットワークスのお客様はAdvanced URL Filtering[1][2]と脅威防御のクラウド配信型セキュリティサブスクリプションにより本稿で取り上げる脅威その他のWeb脅威から保護されています。

本稿で取り上げる攻撃の種類と脆弱性の種別 Skimmer attacks, formjacking, malware, cryptominers
Unit 42の関連トピック 情報窃取, Webスキマーに関する詳細な考察
, Web脅威の一年: クラウドホスティングを利用するWebスキマー 他

目次

Web脅威のランディングURL: 検出分析
Web脅威のランディングURL検出: 時間分析
Web脅威のランディングURL検出: ジオロケーション分析
Web脅威のランディングURL検出: カテゴリ分析
Web脅威の悪質ホストURL: 検出分析
Web脅威の悪質ホストURL検出: 時間分析
Web脅威の悪質ホストURL検出: ジオロケーション分析
Web脅威のマルウェア分類分析
Web脅威のマルウェアファミリ分析
Web脅威のケーススタディ
結論
IoC

Web脅威のランディングURL: 検出分析

2021年10月~12月のデータをAdvanced URL Filtering[1][2]で収集し、さまざまなWeb脅威を含むランディングURLを53万3,452件検出しました。このうち一意なURLをもつものは12万753件検出されました。

Web脅威のランディングURL検出: 時間分析

2021年11月~12月は、総ヒット数・ユニークヒット数ともに、2021年9月~10月とくらべ、Web脅威アクティビティが活発になっています(図1参照)。以前のブログ「Web脅威の一年: クラウドホスティングを利用するWebスキマー 他」でも指摘したとおり、攻撃者、とくにeコマースサイトを標的とする攻撃者は、休暇中のショッピングが盛んになる時期に活発化する可能性が示唆されます。サイバー犯罪者がよく利用するWeb脅威の種別を追跡するため、Web脅威の分類と時間との関係を掘り下げて傾向分析を行いました。「Web脅威のマルウェア分類分析」のセクションでデータを紹介します。

図1. Web脅威ランディングURLの内訳(2021年9月~12月)(青の棒グラフは重複URL検出を含む全検出結果、赤の棒グラフは一意なURL検出を示す)
図1. Web脅威ランディングURLの内訳(2021年9月~12月)(青の棒グラフは重複URL検出を含む全検出結果、赤の棒グラフは一意なURL検出を示す)

Web脅威のランディングURL検出: ジオロケーション分析

弊社の分析によると、先に述べた12万753件のユニークURLは、2万1,430個のユニークなドメインからのものです。これらのドメインネームの地理的分布を特定すると、米国がもっとも多く、ついでドイツ、ロシアの順となっています。ただし攻撃者はそれらの国に設置されたプロキシサーバーやVPNを利用し、実際の物理的な場所を隠している可能性があることも私たちは認識しています。

図2のコロプレス(塗り分け)地図は、アフリカやオーストラリアを含むほぼすべての大陸にこれらのドメイン名が広く分布していることを示しています。図3は、これらのドメインネーム所有者の所在地と思われる場所の上位8カ国を示したものです。

図2. Web脅威ランディングURLのドメインのジオロケーション分布(2021年10月~12月)
図2 Web脅威ランディングURLのドメインのジオロケーション分布(2021年10月~12月)
図3. Web脅威のランディングURLのドメイン所在地と考えられる国 上位8カ国(2021年10月〜12月)
図3. Web脅威のランディングURLのドメイン所在地と考えられる国 上位8カ国(2021年10月〜12月)

Web脅威のランディングURL検出: カテゴリ分析

私たちは、もともとは良性とされていたランディングURLを分析することで、サイバー攻撃者に狙われやすい対象カテゴリや、どのような種類のサイトでユーザーを騙そうとしているのかを確認することにしました。なおこれらのランディングURLは、現在はユーザーに悪意のあるホストのURLをクリックさせる機会を与えるものになっています。このためそれ以降は悪意のあるコードスニペットにつながるこれらのランディングURLをすべて弊社製品では「悪意あるもの」としてマークしています。図4に示すように、一見無害なカテゴリは「個人サイト・ブログ」がトップで、ついで「ビジネス・経済」、「ショッピング」となっています。攻撃者はこうした一見問題なさそうなサイトからユーザーをだまして悪意のあるリンクを辿らせようとすることが多いので、あるサイトを初めて訪れる場合は注意を払うことをお勧めします。

図4 もともとは良性とされていたランディングURLをカテゴリ別に分類。Web脅威をホストしていた上位10種類のカテゴリ(2021年10月~12月)
図4 もともとは良性とされていたランディングURLをカテゴリ別に分類。Web脅威をホストしていた上位10種類のカテゴリ(2021年10月~12月)

Web脅威の悪質ホストURL: 検出分析

Advanced URL Filtering [1][2]は、2021年10月~12月に290万6,875件の悪質ホストURLを検出しました。このうち16万5,255件は一意なURLであることが確認されています。次のセクションでこれらの悪質ホストURLを詳しく見ていきます。なお具体的に「悪質ホストURL」とは「ユーザーのコンピュータリソースを悪用したり、機密情報を盗んだり、さまざまな種類の攻撃を行う可能性のある悪質なスニペットを含むページ」を指します。

Web脅威の悪質ホストURL検出: 時間分析

ランディングURLの分析でも見られたように、2021年11月~12月は全ヒット数・ユニークヒット数ともに2021年9月~10月とくらべてWeb脅威アクティビティが活発になっています(図5参照)。これらのアクティビティは11月がピークでした。これはアメリカ、イギリス、ドイツなどの国々で行われる大規模なショッピングイベント「ブラックフライデー」の影響と思われます。

図5 Web脅威の悪質ホストURL分布(2021年9月~12月)
図5 Web脅威の悪質ホストURL分布(2021年9月~12月)

Web脅威の悪質ホストURL検出: ジオロケーション分析

16万5,255件の悪質ホストURLは1万4,891個の一意なドメインに属していました。この数はランディングURLで観測された一意なドメイン数よりも少なくなっています。このことから、「攻撃者は侵入口としてさまざまな対象を狙うが、悪質コードホスト用ドメインは少ない傾向がある」ということがわかります。一方、一意な悪質ホストURL数は一意なランディングURL数よりも多くなっています。このことから「攻撃者は、侵入口が利用できる場合はより多くの悪質コードをそこに展開する」ということが示唆されます。

これらのドメイン名の見た目上の所在地を確認したところ、一般的なWeb脅威と同様に、その多くが米国発であることがわかりました。図6はそのヒートマップです。

図6 Web脅威の悪質ホストURLドメインのジオロケーション分布(2021年10月~12月)
図6 Web脅威の悪質ホストURLドメインのジオロケーション分布(2021年10月~12月)

図7はこれらドメイン名の所有者が所在すると思われる上位8カ国を示したものです。Web上の脅威全体では米国、ドイツ、ロシアが上位3カ国となっていましたが、悪質ホストURLの上位3カ国は、米国、オランダ、ロシアとなっています。サイバー犯罪者はマルウェアのホストURLとランディングURLに異なるドメインを利用しうる、ということがわかります。

図7 Web脅威の悪質ホストURLのドメイン所在地と考えられる国 上位8カ国(2021年10月〜12月)
図7 Web脅威の悪質ホストURLのドメイン所在地と考えられる国 上位8カ国(2021年10月〜12月)

Web脅威のマルウェア分類分析

観測されたWeb脅威のトップ5は、クリプトマイナー、JSダウンローダ、Webスキマー、Web詐欺(インターネット詐欺)、JSリダイレクタです。これらの分類の定義については、前回の分析「Web脅威の一年: クラウドホスティングを利用するWebスキマー 他」をご参照ください。

図8に示すように、2021年末時点ではJSダウンローダの脅威がもっとも活発で、ついでクリプトマイマー、Webスキマーの順となりました。上記のように、この数ヶ月Web脅威は全体に増加傾向にあります。この増加にもっとも寄与しているのがどのような種類のWeb脅威なのかを追跡するため、分類種別ごとに傾向を追跡したのが図9〜13です。Webスキマー、JSダウンローダ、Web詐欺は、Web脅威全体と同じ傾向を示していることがわかります。つまりユニークヒット数は増加傾向で、総ヒット数のピークは11月です。被害者がオンラインショッピングに精を出すにつれサイバー犯罪者の攻撃性も高まっていたと考えられます。

JSリダイレクタのアクティビティの増加は堅調で(ただし11月のピークはなし)、Webマイナーのアクティビティも比較的安定しています。

図8 Web脅威カテゴリ内訳トップ5 (2021年10月~12月)
図8 Web脅威カテゴリ内訳トップ5 (2021年10月~12月)
図9 Webスキマーのヒット数分布(2021年9月~12月)
図9 Webスキマーのヒット数分布(2021年9月~12月)
図10 Webマイナーのヒット数分布(2021年9月~12月)
図10 Webマイナーのヒット数分布(2021年9月~12月)
図11 JSダウンローダのヒット数分布(2021年9月~12月)
図11. JSダウンローダのヒット数分布(2021年9月~12月)
図12 JSリダイレクタのヒット数分布(2021年9月~12月)
図12. JSリダイレクタのヒット数分布(2021年9月~12月)
図13 Web詐欺のヒット数分布(2021年9月~12月)
図13. Web詐欺のヒット数分布(2021年9月~12月)

Web脅威のマルウェアファミリ分析

上で説明したWeb脅威の分類に基づいて、Web脅威のグループをマルウェアファミリごとにさらに整理しました。ファミリの把握は脅威の仕組みを理解する上で重要です。なぜなら同一ファミリの脅威は、表示されるHTMLランディングページのレイアウトやスタイルが異なっていても、同じようなJavaScriptコードを共有しているからです。

年次の分析「Web脅威の一年: クラウドホスティングを利用するWebスキマー 他」でもそうしたように、「コードのパターンや振る舞いが似ている」、「同じ攻撃者から発信されている」といった特徴をチェックすることで、私たちは「あるマルウェアがある特定のファミリに属するかどうか」を識別しています。図14は、今回確認した上位18のマルウェアファミリで観測されたスニペットの数を示しています。前回同様、クリプトマイナーとJSダウンローダのファミリは少なく、Webスキマーはコードや振る舞いが多様です。

図14 Web脅威のマルウェアファミリの分布(2021年9月~12月)
図14 Web脅威のマルウェアファミリの分布(2021年9月~12月)

Web脅威のケーススタディ

今回の分析で検出したWeb脅威でとくに興味深かったのが、発見当初VirusTotalの検出数がほぼなかったケースです。

このWebスキマーのサンプルは、電気製品の人気オンラインショッピングサイトにインジェクト(注入)されていました。当該Webスキマーは、高度なJavaScript機能を複数使い、悪意のあるJavaScriptコードを難読化することで、セキュリティベンダによる検出を回避しようとしていました。この悪意のあるJavaScriptファイルは、被害Webサイトの多数のページにインジェクトされていました(図15にその例)。

図15 悪意のあるJavaScriptファイルがインジェクトされた被害Webサイトのページ
図15. 悪意のあるJavaScriptファイルがインジェクトされた被害Webサイトのページ

さらなる分析のため、このサードパーティのWebサイトから悪意のあるJavaScriptファイルを抽出しました。そのコードスニペットを図16に示します。

図16 悪意のあるWebスキマーのコードスニペット
図16. 悪意のあるWebスキマーのコードスニペット

このコードは高度に難読化されており、あの手この手でアナリストを欺こうとしていることがわかります。

まずは、もっとも興味深かった部分(図17)を取り上げます。

図17 悪意のあるWebスキマーのコードスニペット
図17. 悪意のあるWebスキマーのコードスニペット

1行目は特定の変数_0x2d92を参照していますが、この変数は後で定義されています。

このコードで例外は発生するでしょうか?いいえ、発生しません。これはJavaScriptの特別な構文で、JavaScriptでは変数への参照をその定義よりも前に行うことができます (ただし同じファイルに定義されている場合に限る)。

同様に変数_0x52f6もコードの後半で定義されています。これは暗号化された配列を含む関数です。

ここで私たちは、ある無名関数が呼び出されることに気づきました。変数0x52f6はパラメータで、無名関数は_0x2d92関数と多数のparseInt関数を使って暗号化された配列を復号します。

「暗号化配列は_0x52f6関数の中にあるのにどうやって変更するの?」と疑問をもつかもしれません。

それはこのサンプルの使う高度なJavaScript構文で実現しています。たとえば、図18のようなものです。

図18 悪意のあるWebスキマーのコードスニペット
図18. 悪意のあるWebスキマーのコードスニペット

このコードはJavaScriptのクロージャ構文を使って永続配列を作成しています。onefunc()[0]=123を呼び出すと、配列の最初の要素が永続的に変更されます。

無名関数の実行後に配列を再確認すると、これは暗号化されたままでした。つまり暗号化は二重になっているということです。

次は無意味なコードを多数フィルタリングして取り除きました。以下、コードスニペットの目的に関連する部分のみを図19に示します。

図19 悪意のあるWebスキマーのコードスニペット
図19. 悪意のあるWebスキマーのコードスニペット

上記のコードでは、xxxxfunc(array_index, decryption_key)をふんだんに使用しています。二重に暗号化された配列から平文を読み出すにはこの方法しかありません。配列の各要素はそれぞれ異なる復号キーを持っていることも分かりました。

基本的にこのコードのロジックは、以前のブログで分析したWebスキマーキャンペーンのサンプルと完全に同じです。

ここまでくればGate: _0x2f1e7d(0x280, "H(U$")に定義されているマルウェアのコマンド&コントロール(C2)サーバーを復号できます。

結論

これまで見てきたとおり、もっとも一般的なWeb脅威は依然として、クリプトマイナー、JSダウンローダ、Webスキマー、Webスキャム、JSリダイレクタです。分析したランディングURLのうち、攻撃者に狙われやすいターゲットの上位3つは、「個人サイトやブログ」、「ビジネス・経済サイト」、「ショッピングサイト」でした。

また休暇シーズンは、消費者の購買欲の高まりに応じてWeb脅威アクティビティが活発化することがわかりました。このため、休暇シーズンに家族・友人へのプレゼントを購入する場合、とくに新しいWebサイトの閲覧時は、注意を払う必要があります。

サイバー犯罪者は悪意のあるサイバーアクティビティのチャンスをつねにうかがっています。パロアルトネットワークスのお客様は、クラウド配信型セキュリティサブスクリプションの脅威防御Advanced URL Filteringを通じて今回取り上げた攻撃その他のさまざまなWeb脅威から保護されています。

私たちはこのほか以下の対策を推奨します。

侵害の懸念があり弊社にインシデントレスポンスに関するご相談をなさりたい場合は、infojapan@paloaltonetworks.com まで電子メールにてご連絡いただくか、下記の電話番号までお問い合わせください(ご相談は弊社製品のお客様には限定されません)。

  • 北米フリーダイヤル: 866.486.4842 (866.4.UNIT42)
  • 欧州: +31.20.299.3130
  • アジア太平洋: +65.6983.8730
  • 日本: +81.50.1790.0200

IoC

悪質なWebスキマー
SHA256: 69ae50160f22494759f89e2b318fe3f1342a87eeeeb4829fefaeafa4a560d57e

謝辞

ブログにご協力いただいたBilly Melicher氏、Alex Starov氏、Jun Javier Wang氏、Shresta Bellary Seetharam氏、Laura Novak氏、Erica Naone氏に感謝いたします。