本ブログ記事は、2021年7月29日に米国で公開されたBlackBerryのブログ記事の抄訳版です。原文はこちらからご覧頂けます。
概要
2013 年に出現した Hancitor(別名 Chanitor)マルウェアは、多くの企業に採用されている文書署名サービス、DocuSign® を装うなど、ソーシャルエンジニアリングの手法を悪用しています。このマルウェアは、被害者を欺いて悪意のあるマクロコードの実行を許可させ、被害者のマシン上に自身をドロップします。
Hancitor はコマンドアンドコントロール(C2)インフラストラクチャに接続した後、オペレーターによる最新の悪意のあるキャンペーンに応じて、さまざまな悪意のあるコンポーネントをさらにダウンロードしようとします。
最近では、既知のマルウェアファミリーである Ficker(別名 FickerStealer)や Cobalt Strike ビーコンのペイロードを被害者のデバイスにダウンロードしたことが確認されています。
オペレーティングシステム
リスクと影響
技術的解析
Hancitor マルウェアによる攻撃は、偽造文書が用意された Web ページに被害者を誘導するマルスパムメールから始まります。このメールではさまざまな誘導手口が用いられます。最近では、このマルウェアは以下に示すように、広く用いられている正規の文書署名ユーティリティである DocuSign からのメールを装うことが多くなっています。
図 1: :DocuSign 偽装メールの例
メールが実際に DocuSign から送られたように偽装するために、マルウェアのオペレーターは、ユーザーを DocuSign の正規資料へと案内するサポートリンクをメールに記載しています。しかし、上図の「VIEW INVOICE」ボタンに埋め込まれたリンクは正規のものではありません。
騙されてこのリンクをクリックした被害者は、トロイの木馬化された Microsoft® Word 文書を含む偽の DocuSign ダウンロードページにリダイレクトされます。このファイルには、Hancitor の初期ペイロードが Microsoft® Office 文書のマクロとして含まれています。また、トロイの木馬化した Microsoft® Excel® シートを介して Hancitor を配信することもあり、この場合も同様に動作します。マクロは Microsoft によって自動的に無効化されるため、マルウェアはソーシャルエンジニアリングによって被害者を欺き、マクロの実行を許可させます。
トロイの木馬化された文書を被害者が開くと、セキュリティ警告でマクロが無効にされたことを示す警告が表示されます。これは、マクロが埋め込まれた Office 文書を開いた際に表示される通常の通知です。このセキュリティ機能に対処するために、トロイの木馬化された Word 文書で、該当文書が保護されていることを示す警告テキストが出力された場合に被害者が警告を気にせずマクロを有効化する必要があることが示されます。このテキストを図 2 に示します。これらのマクロが有効になると、悪意のあるコードの実行が可能になります。
図 2: Hancitor マルウェアを含むトロイの木馬化された文書
悪意のあるマクロの実行が許可されると、マクロのコードが Hancitor の中核をなすダイナミックリンクライブラリ(.DLL)をドロップし、悪意のある内部コマンドをさらに用いて実行します。
概して、最近検出されたサンプルは被害者のシステムで以下の場所にドロップされていました。
- %AppData% \Roaming\Microsoft\Word\Startup\
- %AppData% \Roaming\Microsoft\Template\
なお、これらの場所は変わる可能性があり、これらの 2 つのディレクトリだけに制限されたり限定されたりするわけではないことに注意してください。
また別のマクロでは、すべての Windows® デバイスに備わるコマンドラインユーティリティである RunDll32.exe を介して、悪意のある .DLL ファイルの実行が試みられます。このマルウェアにはエクスポートされた関数が 1 つ含まれています。この関数は悪意のある文書に埋め込まれており、Hancitor の実行に使用されます。エクスポート関数名は特に限定されておらず、多くの場合、以下に示すようにサンプルごとに固有となっています。
図 3: Hancitor DLL の実行
動的に実行された Hancitor は、api[.]ipify[.]org の Web API にアクセスします。これはシンプルなパブリック IP アドレスの Web API であり、マルウェアはこの API を使用して、新たに感染した被害デバイスの外部 IP アドレスを収集します。この API 呼び出しに対する正常な応答がない場合は C2 インフラストラクチャにアクセスできないため、マルウェアはこの API を仮想化環境対策の確認手段として利用している可能性があります。
永続性をさらに高めるために、Hancitor の各サンプルには C2 の URL が 3 つ含まれています。マルウェア実行中にそれぞれの URL へのアクセスを試みる前に、マルウェアによってこれらの URL が生成されます。これら複数の C2 サーバーは、どちらかのサーバーがダウンした場合や応答しない場合の予備として使用されます。マルウェアは適切な応答が得られるまで、これらのサーバーを巡回しながらアクセスを試みます。
コマンドアンドコントロールへのチェックイン
いずれかの C2 サーバーに対する DNS クエリが成功すると、マルウェアは新たに感染した被害者を特定するために POST リクエスト(下図参照)を送り返します。
図 4: Hancitor C2 への POST リクエスト
Hancitor はサンプルごとに異なる「ビルド ID」を複数用いており、これはマルウェアの特定のビルドやキャンペーンを識別するために使用されます。感染に成功した際の POST リクエストには以下の情報が含まれています。
識別子
|
詳細
|
GUID=
|
グローバル一意識別子
|
BUILD=
|
キャンペーン用のボット識別子
|
INFO=
|
コンピューター名、ドメイン\ユーザー名の情報
|
EXT=&IP=
|
外部 IP(ipify から取得したもの)
|
TYPE=
|
ドメインの信頼度「1」
|
WIN=
|
被害デバイスの OS とアーキテクチャ(x32 / x64)
|
マルウェアはこのリクエストが受信されると、最新の Hancitor キャンペーンのペイロードが置かれた別の悪意のある URL へのアクセスを試みます。
コマンドアンドコントロールからの応答
C2 サーバーが稼働していれば、応答が成功したことを示す「200 OK」が返されます。以下に示すように、この応答にはエンコードされた文字列が 1 つ含まれています。
図 5: C2 からのエンコード応答
この文字列は Base64 でエンコードされています。ただし、先頭の 4 バイトは冗長ですが、手動解析と自動解析を妨害するために用意されていると考えられます。これらのバイト列は Base64 でエンコードされた文字列から切り取られて破棄されます。
また、Hancitor は従来より、C2 サーバーからのペイロードに対して「排他的論理和」(XOR)暗号を採用しており、HEX キーには 0x7A を使用しています。これを手動でデコードすると、サーバー応答の実際の出力を明らかにできます。
図 6: C2 ペイロードのデコード
エンコードされた IOC
|
ARhAEg40CkBVVRcTFEoJCBtUCA9VTQ50GhwdFBcREU1UHwIfBw
|
デコードされた IOC
|
{b:hXXp://min0sra[.]ru/7t4dfgnmkk7[.]exe}
|
デコードすると、応答には別の悪意のある URL が含まれており、ダウンロードする Windows 実行ファイルを指しています。Hancitor はこの URL への GET リクエストを生成し、当該ファイルを被害者のマシンにダウンロードします。
Hancitor コマンド
Hancitor は、追加マルウェアのダウンロード用リンクだけでなく、ダウンロード対象の内容や、被害者のデバイスで新たなプロセスとして開始する方法といった重要な情報も受け取ることができます。
C2 から送り返されるデコード済みペイロード内で確認でき、今回の例では URL の前に「b:」と表示されています。これらのコマンドは長年にわたって発展し変化しており、Hancitor は現在以下の 5 つの主要コマンドを用いています。
コマンド
|
詳細
|
b:
|
ダウンロードして svchost.exe に注入
|
e:
|
ダウンロードして実行中プロセスに注入
|
l:
|
シェルコードをダウンロードし、svchost.exe または現在のプロセスに注入
|
r:
|
ダウンロードして svchost.exe に注入、ダウンロードしているファイルを確認
|
n:
|
ダウンロードしない(被害者がまだアクティブかどうかを確認するために利用される可能性あり)
|
図 7: 悪意のある URL からダウンロードされた実行可能ファイル(MZ)のペイロード
最近の解析では、こうしてダウンロードされたファイルが Ficker マルウェアファミリーの既知のサンプルであることが確認されました。これは、Hancitor の最新のマルウェアキャンペーンにおいて、Hancitor が C2 インフラストラクチャへのアクセスに成功した後で一貫して観測されています。2021 年の初めには、Cuba ランサムウェア が要注意マルウェアに選ばれていました。これは北米と南米、そしてヨーロッパの Windows システムを標的とした C++ ベースのマルウェアです。
Hancitor はこのような追加のマルウェアコンポーネントをダウンロードし、正規の Windows サービスホストプロセスである SvcHost.exe の新たなインスタンスに注入します。これにより、脅威(最近では Ficker)が独自の悪意のある活動を行います。
Ficker インフォスティーラ(情報窃取型スパイウェア)
続いて、Ficker は被害者のデバイス上にミューテックスを作成し、api[.]ipify の Web API を再び使用してから、独自の C2 サーバーへの接続を確立します。
Ficker は Rust ベース* のインフォスティーラであり、以下の機能に重点を置いています。
- ブラウザーの認証情報の保存(Chromium および Mozilla ベースの両方)
- 暗号通貨のウォレット情報の窃取
- スクリーンショットの保存
- ファイル情報の取得
- システム情報の収集
*Rust やその他の珍しいプログラミング言語の悪用についての詳細は、最新ホワイトペーパー”Old Dogs, New Tricks: Attackers Adopt Exotic Programming Languages” をご覧ください。
上述の機能例を以下の図に示します。
図 8: デコードされた FickerStealer のトラフィックの例 – システム情報
Ficker による通信の後、Hancitor は再度 C2 インフラストラクチャにアクセスします。今回の解析では、以下に示すように「{n:}」という応答が得られました。これは、いかなるダウンロードコマンドも与えていないことを示しています。この時点で、それ以上のアクションは実行されませんでした。
図 9: {n:} コマンドを受信する Hancitor
Cobalt Strike
Hancitor が C2 トラフィックを確立すると、多くの場合、C2 サーバーから追加の確認が行われます。そして、5 つの主要コマンドのいずれかが選択されます。
最初に Ficker をドロップした後、Hancitor はさらに多くのマルウェアで被害者のマシンを感染させるために、Cobalt Strike のステージャもドロップする可能性があります。Cobalt Strike は、当初は正規のネットワーク侵入テスターによって開発されたツールですが、その強力な機能ゆえにマルウェアオペレーターの間で非常に広く用いられています。
YARA ルール
以下の YARA ルールは、この記事で説明した脅威を捕捉するために BlackBerry のリサーチ・インテリジェンスチームが作成しました。
import "pe"
rule Mal_Hancitor
import “pe”
rule Mal_Downloader_Hancitor_DLL_2021
{
meta:
description = "Detects Hancitor Dynamic-Link Library dropped by trojanised Word documents"
author = "BlackBerry Threat Research Team"
date = "2021-07-19"
strings:
$x0 = "OWma`JXrcHms?f"
$x1 = "Kr%U|H-T`D-Yi"
$x2 = "SJ|TiRxPmY`A"
$x3 = "OSqpXimc^^xt"
$x4 = "U|DiT|rk^Ceu"
$x5 = "Oe@uzo/J{sUI"
$x6 = "OQgs1min(Qm"
$x7 = "gm<sms?c}f2"
$x8 = "ZLztaDdF^Hm"
condition:
//PE File
uint16(0) == 0x5a4d and
//All Strings
all of ($x*)
}
|
侵入の痕跡(IOCs)
BlackBerry では、サイバーセキュリティに対して 予防ファースト の AI 主導アプローチを採用しています。予防第一とすることで、キルチェーンの悪用段階の前にマルウェアを無力化できます。
BlackBerry® ソリューションは、この段階でマルウェアを阻止することで、組織の回復力向上に役立ちます。また、インフラストラクチャの複雑さが削減され、セキュリティ管理が合理化されて、業務、スタッフ、およびエンドポイントが確実に保護されます。
オペレーティングシステム: Windows
ネットワーク通信
Hancitor によるリクエストの例:
日付
|
要求タイプ
|
URL
|
2021 年 7 月 16日
|
DNS
|
gatiallyde[.]com
|
2021 年 6 月16 日
|
POST
|
gatiallyde[.]com/8/forum[.]php
|
2021 年 6 月 16 日
|
DNS
|
min0sra[.]ru
|
2021 年 6 月 16 日
|
GET
|
min0sra[.]ru/7t4dfgnmkk7[.]exe
|
2021 年 6 月 16 日
|
POST
|
gatiallyde[.]com/8/forum[.]php
|
Hancitor C2 の例:
ドメイン
|
作成日
|
登録者
|
gatiallyde[.]com/8/forum[.]php
|
2021 年 6 月 15 日
|
-
|
accomead[.]ru/8/forum[.]php
|
2021 年 6 月 15 日
|
REGRU-RU
|
dialencelu[.]ru/8/forum[.]php
|
2021 年 6 月 15 日
|
REGRU-RU
|
Ficker C2:
ドメイン
|
作成日
|
登録者
|
pospvisis[.]com
|
2021 年 1 月 19 日
|
-
|
|
BlackBerry によるサポート
もしHancitorマルウェアのような脅威への対応にお困りでしたら、BlackBerry にご相談ください。現在 BlackBerry 製品をご利用されていなくても、問題ありません。
BlackBerry のインシデント対応チームは、世界的に活躍するコンサルタントから構成され、ランサムウェアや持続的標的型攻撃(APT)など、さまざまなインシデントへの対応と封じ込めのサービスを専門としています。
弊社はグローバルコンサルティングチームを常に待機させており、24 時間サポートと現地支援がご提供可能です。以下の URL からお問い合わせください。 https://www.blackberry.com/ja/jp/forms/enterprise/contact-us.