コンピュータのメンテナンス
 Computer >> コンピューター >  >> トラブルシューティング >> コンピュータのメンテナンス

Macを狙う新種マルウェア「Silver Sparrow」の全貌――感染状況、技術仕様、駆除方法を徹底解説

「Macだからウイルスに感染しない」というのは、もはや過去の常識です。マルウェア作者たちはmacOSを含むさまざまなプラットフォームの脆弱性を巧みに悪用しており、これまでにもShlayerやTop Resultsなど、Macを標的としたマルウェアが多数確認されています。

Silver Sparrow macOSマルウェアとは?

Red Canary、Malwarebytes、VMware Carbon Blackのセキュリティ研究者たちによって、世界中で4万台以上のMacに感染した新型macOSマルウェア「Silver Sparrow」が発見されました。Malwarebytesによると、このマルウェアは153か国に拡散しており、特に米国、英国、カナダ、フランス、ドイツで感染者が集中しているといいます。ただし、4万台のうちどれほどがM1搭載Macなのか、その内訳は明らかになっていません。

研究者たちは、Silver Sparrowが感染端末に対して一定の脅威となる一方で、一般的なmacOSアドウェアに見られるような典型的な悪意ある動作を行っていないことを指摘しています。何のために作られたマルウェアなのか、セキュリティ専門家ですら見当がつかず、謎めいた存在となっています。

とはいえ、調査の結果、このマルウェアはいつでも悪意あるペイロードを配信できる状態で待機していたことが判明しています。実際には感染端末上でペイロードが配信された例は確認されていないものの、専門家は潜伏状態であっても依然として重大なリスクがあると警告しています。

M1チップへの対応、世界的な感染範囲、高い感染率、成熟した運用体制——これらの要素を踏まえると、Silver Sparrowは十分に深刻な脅威と評価できます。また、IntelプロセッサとAppleシリコン(ARM)プロセッサの両方に対応していることも確認されています。

Silver Sparrowマルウェアの進化タイムライン

  • 2020年8月18日:バージョン1(非M1版)のコールバック用ドメイン api.mobiletraits[.]com が登録される
  • 2020年8月31日:バージョン1(非M1版)がVirusTotalに提出される
  • 2020年9月2日:バージョン2実行時に生成される version.json ファイルがVirusTotalに提出される
  • 2020年12月5日:バージョン2(M1版)のコールバック用ドメイン api.specialattributes[.]com が登録される
  • 2021年1月22日:M1バイナリを含むPKGファイル(バージョン2)がVirusTotalに提出される
  • 2021年1月26日:Red Canaryがバージョン1を検出
  • 2021年2月9日:Red Canaryがバージョン2(M1版)を検出

Silver Sparrowマルウェアは何をするのか?

このマルウェアは、macOS Installer JavaScript APIを利用してコマンドを実行する点が大きな特徴です。感染後、Silver Sparrowは1時間に1回、外部サーバーへ接続し、指示やバイナリの有無を確認します。セキュリティ研究者たちは、大規模攻撃に向けた準備段階である可能性を懸念しています。

最終的な目的は誰にもわかっていません。ペイロードの配信は確認されていないものの、Red Canaryはこのマルウェアがかなり深刻な脅威になり得ると考えています。M1チップで動作することで注目を集めましたが、これは犯罪者がM1 Macだけを狙っているという意味ではなく、Intel MacもM1 Macも両方感染し得ることを示しています。

Apple側は、Silver Sparrow関連パッケージの署名に使われていた開発者証明書を速やかに失効させました。しかし、Appleの公証(Notary)サービスが存在しても、最新のARMチップを搭載したMacBook Pro、MacBook Air、Mac miniなどを含むApple製品は、依然としてマルウェアの標的になっています。Appleは「業界最高水準」とうたうユーザー保護機構を掲げていますが、マルウェアの脅威は繰り返し表面化しているのが現状です。多くの正規開発者がまだ新プラットフォームへアプリを移植していない段階で、攻撃者はいち早くM1チップに対応してきたのです。

AWSとAkamai CDNを利用した運用

研究者たちは、「Clipping Silver Sparrow's wings: Outing macOS malware before it takes flight」と題したブログ記事でSilver Sparrowの仕組みを解説しています。このマルウェアは、Intel x86_64向けのMach-O形式バイナリと、M1 Mac向けのMach-Oバイナリという2種類のバイナリで構成されています。

感染は「update.pkg」または「updater.pkg」という名前のAppleインストーラパッケージ経由で行われます。パッケージにはJavaScriptコードが含まれており、インストールスクリプトが実行される前に起動し、「ソフトウェアがインストール可能かどうかを判定するため、プログラムの実行を許可してください」と促します。Malwarebytesによれば、ユーザーがここで許可するとverx.shというスクリプトがインストールされ、この時点で中止してもすでに感染は完了しているため手遅れだといいます。

インストール後、スクリプトは1時間ごとにC2(コマンド&コントロール)サーバーへ接続し、実行すべきコマンドやバイナリがないかをチェックします。C2インフラはAmazon Web Services(AWS)とAkamai CDN上に構築されており、クラウドインフラの利用によりブロックが困難になっています。

驚くことに、最終的なペイロードの展開は一切確認されませんでした。特定の条件が満たされるのを待っていた可能性や、研究者による監視を検知してペイロード配信を控えている可能性も指摘されています。

「傍観者バイナリ」の不思議

実行すると、Intel x86_64バイナリは「Hello World」、Mach-Oバイナリは「You did it!」と表示するだけで、悪意ある動作は一切見られませんでした。研究者たちはこれらを「bystander binaries(傍観者バイナリ)」と呼んでいます。さらに、このマルウェアには自己削除機能が備わっており、隠密性を高めています。ただし、自己削除機能が実際に使用されたケースは確認されていません。

また、マルウェアはインストール後に自身のダウンロード元URLを探します。これは、どの配布チャネルが最も効果的だったかを開発者が追跡しようとしたためと考えられています。配布経路自体は特定できていませんが、偽のFlashアップデート、海賊版ソフト、悪意ある広告、正規アプリなどが考えられます。

サイバー犯罪者は攻撃のルールを自ら定めます。私たちには彼らの手口を理解し、防御策を講じるしかありません。Silver Sparrowは現時点では大きな被害をもたらしていませんが、今後備えるべき戦術を学ぶ貴重な事例といえます。

Silver Sparrowマルウェアの技術仕様

研究者の調査によると、Silver Sparrowには「バージョン1」と「バージョン2」の2つの系統があります。

バージョン1

  • ファイル名:updater.pkg(v1用インストーラパッケージ)
  • MD5:30c9bc7d40454e501c358f77449071aa

バージョン2

  • ファイル名:update.pkg(v2用インストーラパッケージ)
  • MD5:fdd6fb2b1dfe07b0e57d4cbfef9c8149

ダウンロードURLとスクリプト内コメントの違いを除けば、両バージョンの大きな相違点は一つだけです。バージョン1のバイナリはIntel x86_64アーキテクチャ専用にコンパイルされていましたが、バージョン2ではIntel x86_64とM1 ARM64の両方に対応したMach-Oバイナリが含まれています。M1 ARM64は新しいプラットフォームであり、これまでほとんど脅威が確認されてこなかったことを考えると、非常に重要なポイントです。

Silver Sparrowはどうやって配布される?

多くのmacOS脅威は、Adobe Flash Playerなどの正規アプリやアップデートを装ったPKG/DMG形式の単体インストーラとして、悪意ある広告経由で配布されます。今回の場合、攻撃者はupdater.pkgとupdate.pkgという2種類のパッケージを使い分けました。実行手法は共通しており、違いは傍観者バイナリのコンパイル内容のみです。

Silver Sparrowの特異な点は、インストーラパッケージがmacOS Installer JavaScript APIを使って疑わしいコマンドを実行することです。同様の手法を使う正規ソフトもありますが、マルウェアがこれを採用したのは初めてのことです。従来の悪意あるmacOSインストーラは、preinstall/postinstallスクリプトでコマンドを実行するのが一般的でした。その場合、以下のようなテレメトリパターンが生成されます。

  • 親プロセス:package_script_service
  • プロセス:bash、zsh、sh、Pythonなどのインタプリタ
  • コマンドライン:「preinstall」または「postinstall」を含む

このパターンは正規ソフトでも使用されるため、それ単体では悪意の確度の高い指標にはなりませんが、preinstall/postinstallスクリプトを使うインストーラを確実に識別できます。一方、Silver Sparrowはパッケージファイル内のDistribution定義XMLにJavaScriptコマンドを組み込んでおり、次のような異なるテレメトリパターンを生み出します。

  • 親プロセス:Installer
  • プロセス:bash

この方式では、正規のmacOS Installerプロセスを使ってJavaScriptコマンドが実行されるため、インストールパッケージの中身やその使い道を把握することが極めて困難です。

PlistBuddyによる永続化の仕組み

.pkgファイル内のJavaScriptコードは、インストール本番の開始前に実行され、「ソフトウェアがインストール可能かどうかを判定するプログラムの実行を許可しますか?」とユーザーに尋ねます。つまり「続ける」をクリックした後に気が変わってインストーラを終了しても、すでに感染は完了しているのです。

もう一つの悪性兆候は、PlistBuddyプロセスがLaunchAgentを作成することです。LaunchAgentは、macOSの初期化システムlaunchdに対してタスクを定期的・自動的に実行させる仕組みで、任意のユーザーが作成できます。ハッカーはPlistBuddyを使って永続化を確立することがあります。Silver Sparrowの場合、plistの内容を書き込むコマンドは以下の通りです。

  • PlistBuddy -c "Add :Label string init_verx" ~/Library/Launchagents/init_verx.plist
  • PlistBuddy -c "Add :RunAtLoad bool true" ~/Library/Launchagents/init_verx.plist
  • PlistBuddy -c "Add :StartInterval integer 3600" ~/Library/Launchagents/init_verx.plist
  • PlistBuddy -c "Add :ProgramArguments array" ~/Library/Launchagents/init_verx.plist
  • PlistBuddy -c "Add :ProgramArguments:0 string '/bin/sh'" ~/Library/Launchagents/init_verx.plist
  • PlistBuddy -c "Add :ProgramArguments:1 string -c" ~/Library/Launchagents/init_verx.plist

生成されるLaunchAgentのplist XMLは、おおよそ次のような構造になります。

Label:init_verx
RunAtLoad:true
StartInterval:3600
ProgramArguments:'/bin/sh' -c "~/Library/Application Support/verx_updater/verx.sh" [タイムスタンプ] [ダウンロードしたplistのデータ]

さらにSilver Sparrowは、~/Library/._insu ファイルの存在をチェックする仕組みを持っています。このファイルが存在すると、マルウェアはすべての永続化機構とスクリプトを削除します。Malwarebytesが報告したハッシュ(d41d8cd98f00b204e9800998ecf8427e)によると、._insuファイルは空でした。

インストールの最後には、インストール完了を示すcurl HTTP POSTリクエスト用データを構築するための2つの探索コマンドが実行されます。1つ目は報告用のシステムUUIDを取得し、2つ目は元のパッケージファイルのダウンロード元URLを特定します。sqlite3クエリによってPKGのダウンロード元URLを突き止めることで、犯罪者は成功した配布チャネルを把握できます。こうした挙動は、macOSの悪意あるアドウェアでよく見られるものです。

MacからSilver Sparrowマルウェアを駆除する方法

AppleはSilver Sparrowのインストールを可能にしていた開発者証明書をすでに失効させており、新たな感染は不可能になっています。通常、Mac App Store以外からダウンロードされるすべてのソフトは公証が必須ですが、今回はマルウェア作者が署名用の証明書を入手できてしまったのです。証明書が失効した今、このマルウェアがさらに多くのコンピュータに感染することはありません。

感染の兆候をチェックする

以下の指標を探すことで、Silver Sparrow感染かどうかを確認できます。

  • 「LaunchAgents」「RunAtLoad」「true」を含むコマンドラインでPlistBuddyが実行されているプロセスを探す(複数のmacOSマルウェアファミリーがLaunchAgentによる永続化に使用)
  • 「LSQuarantine」を含むコマンドラインでsqlite3が実行されているプロセスを探す(ダウンロードファイルのメタデータ操作・検索に使用)
  • 「s3.amazonaws.com」を含むコマンドラインでcurlが実行されているプロセスを探す(S3バケットを利用した配布に使用)

また、以下のファイルが存在する場合、デバイスはSilver Sparrowのバージョン1または2に感染している可能性があります。

  • ~/Library/._insu(マルウェアに自己削除を指示する空ファイル)
  • /tmp/agent.sh(インストールコールバック用に実行されるシェルスクリプト)
  • /tmp/version.json(S3からダウンロードされ、実行フローを決定するファイル)
  • /tmp/version.plist(version.jsonをプロパティリストに変換したもの)

バージョン1のIOC(侵害指標)

  • ファイル名:updater.pkg(v1インストーラ)/updater(v1パッケージ内のIntel Mach-Oバイナリ)
  • MD5:30c9bc7d40454e501c358f77449071aa / c668003c9c5b1689ba47a431512b03cc
  • s3.amazonaws[.]com(v1のversion.jsonを保持するS3バケット)
  • ~/Library/Application Support/agent_updater/agent.sh(毎時実行されるv1スクリプト)
  • /tmp/agent(配信された場合のv1最終ペイロード格納ファイル)
  • ~/Library/Launchagents/agent.plist(v1永続化機構)
  • ~/Library/Launchagents/init_agent.plist(v1永続化機構)
  • Developer ID Saotia Seay(5834W6MYX3)――v1傍観者バイナリの署名はAppleにより失効済み

バージョン2のIOC(侵害指標)

  • ファイル名:update.pkg(v2インストーラ)/tasker.app/Contents/MacOS/tasker(v2のIntel & M1 Mach-Oバイナリ)
  • MD5:fdd6fb2b1dfe07b0e57d4cbfef9c8149 / b370191228fef82635e39a137be470af
  • s3.amazonaws[.]com(v2のversion.jsonを保持するS3バケット)
  • ~/Library/Application Support/verx_updater/verx.sh(毎時実行されるv2スクリプト)
  • /tmp/verx(配信された場合のv2最終ペイロード格納ファイル)
  • ~/Library/Launchagents/verx.plist(v2永続化機構)
  • ~/Library/Launchagents/init_verx.plist(v2永続化機構)
  • Developer ID Julie Willey(MSZ3ZH74RK)――v2傍観者バイナリの署名はAppleにより失効済み

ステップ1:アンチマルウェアソフトでスキャンする

マルウェア対策の基本は、信頼できるアンチマルウェアソフトの活用です。アンチマルウェアソフトはコンピュータ全体をスキャンし、どれほど巧妙に隠されていても疑わしいプログラムを検出・削除します。手動での削除も可能ですが、見落としのリスクは常に伴います。優れたアンチマルウェアならその心配はありません。

ステップ2:Silver Sparrowのプログラム、ファイル、フォルダを削除する

まずアクティビティモニタを開き、疑わしいプロセスを終了させてください。そのまま放置すると、削除時にエラーが表示されることがあります。

  1. Finderを開きます。
  2. 「アプリケーション」→「ユーティリティ」→「アクティビティモニタ」へ移動します。
  3. 実行中のプロセスを確認し、怪しい、または見覚えのないものがあれば終了します。プロセスをマウスで選択して右クリックし、ファイルの場所を確認して精査しましょう。

疑わしいプログラムを削除したら、マルウェア関連のファイルやフォルダも削除します。

  1. Finderの「フォルダへ移動」で /Library/LaunchAgents フォルダを開き、Silver Sparrowに関連する疑わしいファイルを探します。「myppes.download.plist」「mykotlerino.ltvbit.plist」「installmac.AppRemoval.plist」などが該当例です。共通の文字列を含むファイルに注目すると見つけやすくなります。
  2. Finderで /Library/Application Support フォルダを開き、削除済みアプリに関連する疑わしいファイルを探して削除します。これにより、Silver Sparrowが再び姿を現すのを防げます。
  3. /Library/LaunchDaemons フォルダを確認し、疑わしいファイルをゴミ箱へ移動します。「com.myppes.net-preferences.plist」「com.kuklorest.net-preferences.plist」「com.aoudad.net-preferences.plist」「com.avickUpd.plist」などが該当例です。

ステップ3:Silver Sparrowのブラウザ拡張機能をアンインストールする

ハードディスクからマルウェアを手動で削除した後は、ブラウザ拡張機能も確認が必要です。使用中のブラウザの「設定」→「拡張機能」を開き、見覚えのない拡張機能を削除してください。あるいは、ブラウザを初期状態にリセットすれば、拡張機能もまとめて除去できます。

まとめ

Silver Sparrowは、長期間にわたって追加ペイロードをダウンロードしなかったため、その真の目的が今なお謎に包まれています。Macユーザーにとってもセキュリティ専門家にとっても、何のために作られたのか不明なままの奇妙なマルウェアです。しかし、悪意ある活動が確認されていないからといって油断は禁物です。マルウェアが端末に存在していること自体が脅威であり、発見した場合は直ちに駆除し、痕跡を完全に消し去ることが重要です。

  1. Wi-Fi 6(802.11ax)とは?特徴・メリット・導入のポイントを徹底解説

    テクノロジーの世界では毎年のように新しい驚きが登場しますが、その中でも特に注目すべき存在が「Wi-Fi 6」です。Wi-Fi 6は次世代の無線通信規格で、正式名称は「802.11ax」。従来のWi-Fiに比べて通信速度と性能が大幅に向上しており、特に多くの機器が接続される混雑した環境でこそ真価を発揮します。スマートフォンやタブレット、PCなどデジタル機器が生活に深く浸透するほど、この新世代Wi-Fiの存在は大きな朗報となるでしょう。また、Wi-Fi 6では新しい命名規則が採用され、デバイス上に「Wi-Fi 5」「Wi-Fi 6」といったバージョン番号が表示されるようになりました。これにより、ど

  2. ファイルレスマルウェアとは?仕組み・攻撃手法・対策を徹底解説

    マルウェアにはさまざまな種類や脅威レベルが存在します。その中でも特に危険とされるのが「ファイルレスマルウェア(Fileless Malware)」です。 「ファイルレス」という名前から、ファイルが関与しないのにどうやって感染が広がるのかと不思議に思う方も多いでしょう。たとえば、何もファイルをダウンロードしていないのに、どうして自分のPCが乗っ取られてしまうのか――疑問に感じるのは当然です。 ここで、攻撃者の思考に少し踏み込んでみましょう。攻撃者がファイルレスマルウェアを使う理由は以下の通りです。 通常の状況ではアンチウイルスソフトに検知されにくいため(その理由は後述します) 検出対象となるフ