セキュリティ研究者は、悪意のあるコードが公式のアプライシステムファイルになりすますことを可能にするコード署名バイパスの脆弱性を発見しました. 言い換えると, Appleの公式コード署名APIの実装の一部は、ハッカーによって悪用される可能性があります.
Appleは、Appleファイルが正当であると検証するセキュリティ機能を構築したい開発者がAPIを利用できるようにしました。. この問題は、一部の開発者がAPIを実装した方法に起因します, したがって、セキュリティ製品に脆弱性を導入します.
この欠陥により、署名されていない悪意のあるコードがAppleによって署名されたように見える可能性があります. この「誤解」の結果として, マルウェアは、脆弱なセキュリティ製品やサービスをだまして、それが単なる別の正当なAppleファイルであると信じ込ませる可能性があります.
この脆弱性の影響を受けるのは誰か? セキュリティ製品のホスト, Googleが使用するいくつかのオープンソースプロジェクトとセキュリティ機能, FacebookとYelp.
脆弱性の詳細
として 説明 Oktaの研究者JoshPittによる, この欠陥は、Mach-Oローダーが署名されたコードをロードする方法と不適切に使用されたコード署名APIが署名されたコードをチェックし、不正な形式のユニバーサル/ファットバイナリを介して悪用される方法の違いに存在します (それぞれが特定のネイティブCPUアーキテクチャを対象とする複数のMach-Oファイルを含むバイナリ形式).
脆弱性が機能するためのいくつかの条件があることに注意する必要があります:
– Fat / Universalファイルの最初のMach-Oは、Appleによって署名されている必要があります, i386にすることができます, x86_64, またはPPC.
– 悪意のあるバイナリ, またはAppleが提供していないコード, アドホック署名され、x86_64ビットターゲットmacOS用にi386がコンパイルされている必要があります.
– AppleバイナリのFatヘッダーのCPU_TYPEは、無効なタイプまたはホストチップセットにネイティブではないCPUタイプに設定する必要があります.
最初の概念実証は、欠陥がうまく悪用されるのがいかに簡単であるかを示しました。この悪用には、管理者アクセスも必要なく、コード署名チェックをバイパスするためにJITのコードやメモリの破損も必要ありません。. 必要なのは “適切にフォーマットされたFat/Universalファイル, と [それから] コード署名チェック [として返されます] 有効“, 研究者は指摘した.
パッチ適用は開発者の責任です
加えて, コード署名APIには、これらすべてのファイルが暗号で署名されていることを確認するフラグがあります. 真実は違う, なので "これらのAPIはデフォルトでは不十分です, サードパーティの開発者は、Fat / Universalファイルの各アーキテクチャを切り分けて検証し、IDが一致し、暗号的に健全であることを確認する必要があります。.」問題のパッチ適用の責任者について, Oktaの研究者はそれが開発者の責任であると言います.
影響を受ける既知のベンダーとオープンソースプロジェクトにアラートが送信され、パッチが利用可能になります. 影響を受けるベンダーと適用されるパッチのリストは次のとおりです:
カーボンブラック (CVE-2018-10407); フェイスブック (CVE-2018-6336); F-Secure (CVE-2018-10403); グーグル (CVE-2018-10405); 客観的な開発 (CVE-2018-10470); 目的-参照 (CVE-2018-10404); VirusTotal (CVE-2018-10408); とYelp (CVE-2018-10406)
さらに多くのサードパーティのセキュリティが存在する可能性があります, 公式のコード署名APIを使用するフォレンジックおよびインシデント対応ツール, より多くの影響を受ける当事者がいることを意味します. 研究者は、開発者に概念実証を使用してコードをチェックするように促します.