最近、ランサムウェアについて調査していたのですが、学術研究者とマルウェア対策製品の研究室で働く人々から、そのような攻撃を防ぐのに役立つと聞いた解決策の 1 つは、コンピューター上で未知のソフトウェアが起動するのを防ぐ方法でした。
ランサムウェアは「ユーザー空間」、つまりユーザーが実行および変更を許可されているドキュメントとアプリケーションの集合体で動作します。より悪質なハイジャック型マルウェアのように、システムレベルに侵入するために特別な許可は必要ありません。通常、リモート操作も必要ありません。何らかの策略(例えば、トロイの木馬をインストールさせるなど)によってペイロードがインストールされると、ランサムウェアはユーザーのファイルを暗号化し始めます。暗号化されたファイルをダブルクリックすると、復号鍵を入手するために身代金を支払うように指示されます。
ランサムウェアは入手、改変、配布が非常に容易であるため、数十種類もの異なるコードファミリーから派生した数百万もの亜種が存在します。変更内容によっては、別のアドレスに(ビットコイン経由で)支払いを指示するだけのものもあれば、異なるコードが含まれているものもあります。
しかし、私が話を聞いた全員が示唆したのは、デスクトップオペレーティングシステムは、ユーザーに警告することなく起動するアプリケーションや、Unixユーティリティなど、それが生成する可能性のあるバックグラウンドプログラムを実行すべきではないということです。(ランサムウェアの活動を発見するもう一つの方法は、単一のプログラムが大量の異なるファイル形式のファイルを開くなど、特定の異常なファイル動作を監視することです。)
ほとんどの人は、特定のアプリケーションを定期的にしか使いません。何か新しいものが登場するのは、新しいソフトウェアをインストールしたり、オペレーティングシステムをアップグレードしたりしたときだけです。Appleは自社のアプリに暗号署名を施し、開発者にも署名を許可しています。これらの署名は、Mac App Storeを通じて、またはユーザーに直接配布されます。これらの署名は、アプリの検証と、表示される名前によってアプリを一意に識別します。
OS Xでは、ソフトウェアインストーラを使用する際に管理者パスワードの入力が求められることがほとんどですが、ディスクイメージからドラッグしたり、直接ダウンロードして起動できるアプリの場合は、そのアプリがまだ実行されていないこと、またはAppleが提供する開発者証明書によって署名されていないことのみを警告します。(署名済みアプリの詳細については、最近のこちらのコラムをご覧ください。)
アカウントにペアレンタルコントロールを設定しない限り、任意のアプリの起動を防ぐことはできません。特に、ソフトウェアがコマンドラインユーティリティやスクリプトを個別に起動する場合はなおさらです。だからこそ、「サンタが街にやってくる」機能は、さらなる保護を強化する上で大きな助けとなるでしょう。
サンタクロース
Googleは従業員向けに多数のMacを運用しており、Macintoshオペレーションチームは、他のMac管理者にとって役立つかもしれないサポート対象外のコードを公開リポジトリとして管理しています。「Santa」と呼ばれるプロジェクトには大きな可能性があり、現在も開発中ですが、開発者たちは本当に自分の仕事に精通しているようです。
サンタは、ブラックリストに登録された「はい」アプリ (古い Unix ユーティリティ) が実行しようとしていることを検出します。
マルウェア対策ソフトウェアは、ソフトウェアの実行をブラックリスト化し、特定の種類の悪意のある動作を特定できますが、通常は「シグネチャ」と呼ばれるソフトウェアコードの一意の集合によって識別される悪質なプレイヤーのブラックリストに限定されます。マルウェア作成者は現在、シグネチャチェックを回避するために膨大な数の亜種をリリースしています。
Santaはホワイトリスト/ブラックリスト機能を備えたプログラムで、最終的にはネットワーク上の同期サーバー、あるいはおそらくインターネットからアクセス可能なマスターリストと通信できるようになる予定です。Santaは2つのモードで実行できます。「モニター」モードでは、アプリの起動に関する情報を記録しますが、ブラックリストに登録されたアプリのみをブロックします。Santaはアプリのフィンガープリント(バイナリコードに対して計算される数値演算)に基づいてアプリの実行を阻止します。
「モニター」モードでは、サンタはアプリの署名証明書やその他のデータを記録します。
「ロックダウン」モードでは、Santaはシステムレベルのアプリかユーザーが起動したアプリかを問わず、ホワイトリストに登録されたアプリのみの実行を許可します。このモードでは、バイナリ、または承認された開発者署名で署名されたアプリを許可するようにユーティリティを設定できます。これにより、更新されたアプリは、別途ホワイトリストに登録しなくても実行できます。また、ディレクトリ(例えば/Users/ディレクトリ)をブラックリストに登録することで、アプリケーションフォルダやシステムフォルダにインストールされていないソフトウェアの実行を阻止することもできます。
チームは、しばらく「モニター」モードで実行して、どのアプリが日常的に使用されているかを確認し、そこからホワイトリストを作成してから「ロックダウン」に切り替えることを提案しています。ログをホワイトリストに変換するツールはまだありませんが、今後必ず登場するでしょう。
Santa はまだ導入準備が整っておらず、大規模な組織には最適かもしれませんが、公的な意識を持つ Mac ユーザーや、信頼できる組織が同期用のホワイトリストを作成したり、IT 部門のない組織の開始点として使用したりできる可能性も考えられます。
リトル・フロッカーに会う
セキュリティ研究者のジョナサン・ジアルスキー氏は、サンタクロースに加え、より広範なシステム挙動監視・ブロックツール「Little Flocker」の開発にも取り組んでいる。これには、Appleが提供していない、あるいは将来提供する可能性もある機能が含まれているのには驚きだ。Little Flockerは現在ベータテスト中で、ジアルスキー氏はAppleからkext署名証明書の承認を受けている。これは、El Capitanで追加されたシステム整合性保護(SIP)を無効にすることなくカーネルレベルのソフトウェアをインストールするために必要なものだ。(「flocker」という名称は、ファイルが使用中、つまり「ロック」されていることを示すために使われていた古代のUnix特性「flock」をもじったものだ。)
Little Flockerはファイルをより厳密に監視し、すべてのアプリがファイルを自由に変更または削除できないようにします。ユーザーが変更したすべてのファイルではなく、フォルダ階層の一部のみにアプリのアクセスを許可できます。これにより、既知のアプリが侵害されたり暴走したりするのを防ぐだけでなく、新しいアプリがユーザーの知らないうちに突然すべてのファイルにアクセスできるようになるのを防ぎます。
例えば、電卓アプリだと思っていたアプリをインストールし、Little Flockerを使ってDocumentsディレクトリ内のSaved Calculationsというフォルダへのアクセスを許可したとします。すると、ホームディレクトリ全体のファイルにアクセスしようとし始めたら、きっと驚くでしょう。Little FlockerはSIPを拡張して、マルウェアによってMacからソフトウェアが削除されるのを防ぎ、ディスクイメージや物理ドライブのマウント・アンマウント、外付けドライブへのアクセスをブロックすることもできます。現段階では、本番環境のMacにインストールすることはお勧めしません。もしテストできるMac(El CapitanまたはmacOS Sierraベータ版)をお持ちであれば、そちらの方が賢明でしょう。
現在、Macを悪意のあるソフトウェアから保護しようとするソフトウェアのほとんどは、受信と送信の両方における不正なネットワークアクティビティを監視またはブロックすることに依存しています。これは、多くのマルウェアがリモート制御されたり、データを取得して送信したりできない限り、効果を発揮しないためです。Little Snitchはファイアウォールとして非常に優れており、IntegoのVirusBarrierは既知のマルウェア(Macユーザーが誤って通過してしまう可能性のあるWindowsマルウェアを含む)の侵入を防ぎます。
しかし、サンタクロースとリトル・フロッカーは、ランサムウェアなどの異なるベクトルを持ち、深刻な被害をもたらす可能性のある脅威の台頭によって、新たな領域へと踏み込んでいます。Appleは今のところこの点で優位に立っておらず、Macユーザーは(多くのマルウェアと同様に)今のところ概ね安全を保っています。しかし、この状況が永遠に続くとは考えていません。効果的なMacマルウェアの障壁が高まれば高まるほど、犯罪者がマルウェアを作成する意欲は低下するでしょう。