今週、セキュリティリサーチャーのPatrick Wardleは、AppleがmacOSのマルウェアの一部を「公証」(Notarization)してしまい、最近のMacでも問題なく実行できるようにしてしまったという証拠を提供した。

Appleの公証の要件は、開発者がMac App Store外で配布されたアプリがマルウェアフリーであったことをユーザーに安心させるための方法で、2018年に開始されたものだ。

公証は、Developer IDで署名されたソフトウェアが悪意のあるコンポーネントを含んでいないかどうかがAppleによってチェックされているという安心感をユーザーに与えてくれるもののはずだった。

Wardleが識別した問題は、Appleが何らかの形でOSX.Shlayerマルウェアを含む悪意のあるアドウェア「Shlayer」の配布を公式に認めたということだった。

今回の事案では、ユビキタスなアドウェア「Shlayer」が配布されており、近年では10台に1台のmacOSデバイスに影響を与えていると言われている。マルウェアは、検索結果に広告を注入するような標準的なアドウェアの動作をする。特に過去のバージョンと事実上同じであることを考えると、ShlayerがどのようにしてAppleの自動スキャンとチェックをすり抜けて公証されたのかは明らかではない。

大学生のPeter Dantiniは、人気のあるオープンソースのMac用開発ツール「Homebrew」のホームページを閲覧中に、公証版の「Shlayer」を発見した。ダンティーニは、正しいURLである brew.sh とは少し違うものを誤って入力した。彼が辿り着いたページは、何度も偽の Adobe Flash アップデートページにリダイレクトされていました。どんなマルウェアが見つかるのか興味津々で、Dantiniはわざとダウンロードしてみた。驚いたことに、macOSはインターネットからダウンロードしたプログラムについての標準的な警告をポップアップしたが、プログラムの実行をブロックすることはなかったという。Dantiniはそれが公証されていることを確認すると、長年macOSのセキュリティ研究をしているWardleとともに情報を送った。

Wardleは8月28日に不正なソフトウェアについてAppleに通知し、同社は同日にShlayerの公証証明書を失効させ、インストールされた場所や今後のダウンロードのためにマルウェアを駆除した。しかし、8月30日、Wardleは、アドウェアのキャンペーンがまだ活発に行われており、同じShlayerのダウンロードを配布していることに気づいた。これは、Appleが元の証明書の取り消し作業を開始してからわずか数時間後に、異なるApple Developer IDを使用して公証されたものだった。8月30日、Wardleはこれらの新しいバージョンについてAppleに通知した。

Appleが公証を導入する前は、マルウェアの開発者はApple Developer IDを年間99ドル支払うだけで、ソフトウェアに正規のものとして署名することができた。Mac App Storeからダウンロードされていないアプリケーションは、ユーザーが実行しようとすると、インターネットからダウンロードしたプログラムが安全に使用できることを確認するための警告が表示されていたが、ユーザーは簡単にそれらをクリックして実行することができた。公証することで、マルウェアを展開することがはるかに困難になる。

Wardleによると、自身のセキュリティ・ツールを審査に提出した経験から、Appleの最初の自動チェックでは、承認が発行されるまでに数分しかかからないという。それでも、悪い行為者は明らかにすり抜けている。

任意の信頼ベースのシステムと同様に、公証は、Appleがかなりタイトなセキュリティを維持するのに役立ちます。しかし、過去にこっそりしていない何かは、それが会社の刻印を持っているので、その後すぐに普及することができる。これは、AppleのiOS App StoreとGoogleのPlay Storeの両方で、審査済みのAndroidアプリのためにすでに問題となっている。悪意のあるアプリは、しばしば滑り込み、その後、疑っていないユーザーによってダウンロードされてしまう。

Photo: "Apple Store Logo"by Jorge Quinteros is licensed under CC BY-NC-ND 2.0