Microsoftは1月5日(米国時間)、「Unraveling the techniques of Mac ransomware - Microsoft Security Blog」において、KeRanger、FileCoder、MacRansom、EvilQuestという4つのMacランサムウェアファミリーが使っている攻撃手法を紹介した。これらランサムウェアはMacのマルウェアファミリとしては古いものであり、ランサムウェアの典型的な攻撃手法を理解する上で参考になるといえる。
Macランサムウェアファミリ(KeRanger、FileCoder、MacRansom、EvilQuest)が使っているとされる主な手法は次のとおり。
- ファイルとディレクトリを列挙するためにfindコマンドを使う(FileCoder、MacRansom)
- ファイルとディレクトリを列挙するためにopendir()、readdir()、closedir()関数を使う(KeRanger、EvilQuest)
- sysctlコマンドでデバイスのハードウェア情報を確認する(MacRansom、EvilQuest)
- デバイスのMACアドレスの最初の24ビットでデバイスベンダーを確認する(EvilQuest)
- sleep()関数で実行を遅延させる(KeRanger)
- 複数のテクニックを使ってデバッガがランサムウェアプロセスにアタッチするのを防ぐ(EvilQuest、MacRansom)
- sleep()にパッチが適用されているかどうかを確認することで、サンドボックスで実行されているかどうかを判断する(EvilQuest)
- 起動用plistを作成して永続的にランサムウェアが機能するように仕込む(EvilQuest、MacRansom)
- kqueue()システムコールを使用してランサムウェアが機能するように仕込む(EvilQuest)
- findでファイルを探しzipでファイルを暗号化する(FileCoder)
- mbedtlsライブラリを使い暗号ブロックチェーンモードでAESを使ってファイルを暗号化する(KeRanger)
- Mach-Oファイルを探し感染可能な条件を満たしている場合はファイルの先頭にマルウェアコードを挿入し、さらにオリジナルバイナリを指し示すトレイラーを追加する。感染したファイルは実行時に偽装工作を行いオリジナルバイナリが実行されるように振る舞う(EvilQuest)
- CGEventTapCreate() APIまたはIOHIDManagerCreate() APIを使ってキーロギングを行う(EvilQuest)
- プロセス一覧を取得しセキュリティソフトウェアのパターンに一致する場合に動作の終了およびファイルから実行権限の削除を行う(EvilQuest)
- NSCreateObjectFileImageFromMemory() API、NSLinkModule() API、NSLookupSymbolInModule() API、NSAddressOfSymbol() APIを使ってインメモリでファイルを実行する(EvilQuest)
Microsoftはこうした手法を使ったランサムウェアの被害を回避する対策として、以下を取り上げている。
- 公式アプリストアなど信頼できるソースからのみアプリをインストールする
- OSXエンタープライズ管理ソリューションなどを使ってLaunchDaemons/LaunchAgentsフォルダやsudoersファイルといった特権リソースへのアクセスを制限する
- 最新のオペレーティングシステムおよびアプリケーションを実行する
またMicrosoftは、Macで動作する「Microsoft Defender for Endpoint」を使うこと、Microsoft Defender SmartScreenをサポートするmacOS版のMicrosoft Edgeの利用などを勧めている。