Apple curl セキュリティインシデント 12604
- 2023年12月28日、curl のイシュートラッカーにバグレポート 12604 が提出された。
- 問題のタイトルは「flag –cacert behavior isn’t consistent between macOS and Linux」で、macOS と Linux の間で
--cacert フラグの動作が一貫していないことを指摘している。
- レポーターは、macOS にバンドルされた curl のバージョンが、オープンソースから完全にビルドされた curl バイナリとは異なる動作をすることを示した。
Apple のバージョンはシステム CA ストアを2回目に確認する
--cacert コマンドラインオプションは、ユーザーが特定の CA 証明書セットのみを信頼するよう curl に指示する方法を提供する。
- macOS で Apple 提供の curl バージョンを使う場合、指定された CA 証明書セットでの検証に失敗すると、システム CA ストアを2回目に確認しているように見える。
- これは文書化されておらず、ユーザーにとって予想外の挙動である。
これはセキュリティ問題である
- ユーザーが指定した CA 証明書ファイルで検査を実行する際、システム CA ストアにサーバーを検証できる証明書があれば失敗しない。
- その結果、本来通過してはならない証明書検査が通過してしまうというセキュリティ問題が発生する。
Apple は問題ないと述べる
- 2024年3月8日、Apple Product Security は、OpenSSL のバージョンである LibreSSL が、意図的に組み込みのシステム信頼ストアをデフォルトの信頼ソースとして使用すると回答した。
- サーバー証明書が組み込みのシステム信頼ストアを使って正常に検証できるため、これを問題とは見なしていない。
同意できない
- この文書化されていない機能により、macOS における curl を使った CA 証明書検証は完全には信頼できず、ドキュメントとも一致していない。
- ユーザーを混乱させる可能性がある。
- この問題は、私たちが配布する curl バージョンのセキュリティ脆弱性ではないため、CVE は発行しない。
- 問題は厳密には curl コードではなく、Apple が提供し curl のビルドに使用している LibreSSL のバージョンにある。
GN⁺ の見解
- このインシデントは、ソフトウェアのセキュリティと信頼性の重要性を強調している。ユーザーが明示的に信頼する CA 証明書だけを使いたい場合に、システムが暗黙的に別の証明書を受け入れることは、深刻なセキュリティ上の懸念を引き起こしかねない。
- Apple の回答は、企業が独自に定義したセキュリティ基準と、オープンソースコミュニティの期待との間に隔たりがあることを示している。これは、ユーザーや開発者がそのプラットフォーム上のセキュリティをどのように認識し管理すべきかという議論を促す可能性がある。
- このような問題は、オープンソースソフトウェアを利用する際に起こりうる依存関係や統合の問題を浮き彫りにしている。開発者は、特定のプラットフォームが提供するライブラリやツールを使う際、こうした違いを認識し適切に対応する必要がある。
- 類似の機能を提供する他のプロジェクトとしては OpenSSL や GnuTLS があり、それぞれ独自のセキュリティ哲学と実装方式を持っている。ユーザーや開発者はこうした代替案を検討できる。
- 技術を導入する際には、その技術のセキュリティモデルとプラットフォーム間の互換性を綿密に検討すべきである。このインシデントは、Apple の LibreSSL 実装が標準的な curl の動作とは異なることを明らかにし、技術選定の重要性を強調している。
1件のコメント
Hacker Newsの意見
Appleのある種の「機能」への批判
Appleデバイス所有者の意図に関係なくAppleのポリシーが優先される
libcurlのCAストア利用に関する説明
CURLSSLOPT_NATIVE_CAオプションを設定すると、libcurlはオペレーティングシステムの既定のCAストアを使って証明書検証を行う。--cacertオプションと組み合わせた場合、libcurlは両方の設定を尊重しようとする可能性があり、これは相互排他的であり得ることを示唆している。SQLiteのF_BARRIERFSYNC事件と似た状況
Danielの指摘に基づくcurlの修正の必要性
curlドキュメントの問題点とlibcurlのセキュリティ欠陥
macOSに同梱されたソフトウェアへの不信
Appleの既定の挙動はバックドアと見なされ得る
Appleがユーザーのセキュリティを重視していないことへの批判