自社製品の脆弱性に関する報告に報奨金を支払う脆弱性報奨金制度は、MicrosoftやGoogleなど多くの企業が導入しています。Appleも2019年に同様のプログラムである「Apple Security Bounty」を開始しましたが、同プログラムを利用したソフトウェアエンジニアであるジェフ・ジョンソンが「報告した脆弱性が半年間も修正されていない」と自身のブログ上で明かしました。

Disclosure: Another macOS privacy protections bypass

https://lapcatsoftware.com/articles/disclosure2.html

ジョンソン氏がAppleに報告した脆弱性は、macOSに搭載されているセキュリティフレームワーク「Transparency Consent and Control(TCC)」に関するもので、発見したのは2019年9月だったとのこと。TCCはプライバシー保護機能が強化されたmacOS Mojave以降のmacOSで利用されており、ユーザーによるデータへのアクセス権限管理を実現しています。



ジョンソン氏が発見した脆弱性はTCCのアプリ検証フローが原因とのこと。TCCでは、データへのアクセスが許可されたアプリは「TCC.db」という名称のデータベースファイルに記録されますが、その内容がファイルパスではなくバンドル識別子に基づくものである点、TCCによるアプリ検証がコード署名を表面的にチェックしているだけである点が脆弱性につながっているとジョンソン氏は説明。このアプリ検証フローの仕組みでは、攻撃者が正規のアプリを改変した複製アプリでも、データにアクセスすることができてしまうというわけです。

例えば、「~/Library/Safari」へのアクセスは、デフォルトではSafariとFinderのみアクセス権限を持っています。しかし、ジョンソン氏が発見した脆弱性を利用すれば、悪意のある第三者が改変した複製版のSafariも「~/Library/Safari」へアクセスできてしまうとのこと。Safariではアプリ上で実行されるJavaScriptにもアクセス権が付与されるため、悪用できる範囲が大きくなります。



Appleが2019年12月19日にバグ報告に対する報奨金を支払うプログラム「Apple Security Bounty」を開始したため、ジョンソン氏はこの脆弱性をプログラム開始と同時にAppleに報告。2020年1月にAppleから「2020年4月にこの問題に取り組む予定です」という回答があったものの、2020年6月に至るまで脆弱性は修正されませんでした。ジョンソン氏は「今回の件では、ベンダーに問題を報告してから脆弱性を開示するまでの一般的な期間である『90日間』を大きく超えており、報奨金のために何年も待つことに興味はない」と考え、脆弱性を公開することに。「プライバシー保護を頼っているシステムが実際には機能していないと知る権利がユーザーにはあります」とし「Apple Security Bountyには失望した」と語っています。

この脆弱性はmacOS Mojave、Catalina、そしてBig Surのベータ版に存在しているとのこと。High Sierra以前のOSにはそもそもこうしたプライバシー保護機能は存在していなかったため、今回の脆弱性を心配する必要があるかどうかは「macOSのプライバシー保護機能をどのように感じるか」次第であるとジョンソン氏。「最高のセキュリティは、インストールするソフトウェアを選択し、最初からマルウェアをインストールすることがないように注意することです」とジョンソン氏は語っています。