1 poin oleh GN⁺ 2024-03-10 | 1 komentar | Bagikan ke WhatsApp

Insiden keamanan Apple curl 12604

  • Pada 28 Desember 2023, laporan bug 12604 diajukan ke issue tracker curl.
  • Judul masalahnya adalah "flag –cacert behavior isn’t consistent between macOS and Linux", yang menunjukkan bahwa perilaku flag --cacert tidak konsisten antara macOS dan Linux.
  • Pelapor menunjukkan bahwa versi curl yang dibundel di macOS berperilaku berbeda dari biner curl yang dibangun sepenuhnya dari sumber terbuka.

Versi Apple memeriksa penyimpanan CA sistem sebagai langkah kedua

  • Opsi baris perintah --cacert memberikan cara bagi pengguna untuk menginstruksikan curl agar hanya mempercayai kumpulan sertifikat CA tertentu.
  • Saat menggunakan versi curl yang disediakan Apple di macOS, jika kumpulan sertifikat CA yang diberikan gagal dalam verifikasi, tampaknya ia kemudian memeriksa penyimpanan CA sistem sebagai langkah kedua.
  • Ini tidak didokumentasikan dan merupakan perilaku yang tidak diharapkan bagi pengguna.

Ini adalah masalah keamanan

  • Saat pengguna menjalankan pemeriksaan dengan file sertifikat CA yang ditentukan, proses tidak akan gagal jika ada sertifikat di penyimpanan CA sistem yang dapat memverifikasi server.
  • Hal ini menimbulkan masalah keamanan karena pemeriksaan sertifikat yang seharusnya tidak lolos justru menjadi lolos.

Apple mengatakan tidak ada masalah

  • Pada 8 Maret 2024, keamanan produk Apple menjawab bahwa versi OpenSSL (LibreSSL) secara sengaja menggunakan penyimpanan kepercayaan sistem bawaan sebagai sumber kepercayaan default.
  • Karena sertifikat server dapat berhasil diverifikasi menggunakan penyimpanan kepercayaan sistem bawaan, mereka tidak menganggapnya sebagai masalah.

Tidak setuju

  • Karena fitur yang tidak didokumentasikan ini, verifikasi sertifikat CA menggunakan curl di macOS tidak sepenuhnya dapat dipercaya dan tidak sesuai dengan dokumentasi.
  • Hal ini dapat membingungkan pengguna.
  • Karena masalah ini bukan kerentanan keamanan pada versi curl yang kami distribusikan, CVE tidak akan diterbitkan.
  • Secara teknis, masalah ini bukan ada pada kode curl, melainkan pada versi LibreSSL yang disediakan Apple dan digunakan untuk membangun curl.

Opini GN⁺

  • Insiden ini menekankan pentingnya keamanan dan keandalan perangkat lunak. Ketika pengguna ingin hanya menggunakan sertifikat CA yang mereka percayai secara eksplisit, sistem yang secara implisit menerima sertifikat lain dapat menimbulkan kekhawatiran keamanan yang serius.
  • Tanggapan Apple menunjukkan adanya kesenjangan antara standar keamanan yang didefinisikan perusahaan sendiri dan ekspektasi komunitas open source. Ini dapat memicu diskusi tentang bagaimana pengguna dan pengembang harus memahami dan mengelola keamanan di platform tersebut.
  • Masalah seperti ini menyoroti persoalan dependensi dan integrasi yang dapat muncul saat menggunakan perangkat lunak open source. Pengembang perlu menyadari perbedaan semacam ini dan meresponsnya dengan tepat saat menggunakan library dan alat yang disediakan platform tertentu.
  • Proyek lain yang menyediakan fungsi serupa mencakup OpenSSL dan GnuTLS, yang masing-masing memiliki filosofi keamanan dan pendekatan implementasi sendiri. Pengguna dan pengembang dapat mempertimbangkan alternatif tersebut.
  • Saat mengadopsi teknologi, model keamanannya dan kompatibilitas lintas platform harus ditinjau dengan cermat. Insiden ini menegaskan pentingnya pemilihan teknologi dengan menunjukkan bahwa implementasi LibreSSL milik Apple bekerja berbeda dari perilaku standar curl.

1 komentar

 
GN⁺ 2024-03-10
Opini Hacker News
  • Kritik terhadap "fitur" tertentu dari Apple

    • Fitur ini dapat menambahkan komputasi yang tidak perlu atau merusak model verifikasi yang diharapkan.
    • Alasan pengguna ingin menyediakan CA mereka sendiri bisa jadi karena CA tersebut tidak ada di bundel OS atau karena mereka ingin memverifikasi terhadap CA tertentu.
    • Tindakan Apple seperti ini bukanlah hasil yang diharapkan.
  • Kebijakan Apple lebih diutamakan terlepas dari niat pemilik perangkat Apple

    • Bukan hal yang mengejutkan, ini adalah fenomena umum bahwa kebijakan Apple didahulukan sambil mengabaikan apa yang diinginkan "pemilik" perangkat Apple.
  • Penjelasan tentang penggunaan penyimpanan CA oleh libcurl

    • Jika opsi CURLSSLOPT_NATIVE_CA diatur, libcurl akan menggunakan penyimpanan CA bawaan sistem operasi untuk melakukan verifikasi sertifikat.
    • Jika file atau direktori sertifikat CA juga diatur, keduanya akan dicari bersama penyimpanan CA bawaan.
    • Jika dikombinasikan dengan opsi --cacert, libcurl mungkin akan mencoba menghormati kedua pengaturan tersebut, yang mengisyaratkan bahwa keduanya bisa saling eksklusif.
  • Situasi yang mirip dengan kasus SQLite F_BARRIERFSYNC

    • Apple tampaknya tidak peduli.
  • Perlunya perbaikan curl berdasarkan penunjukan masalah oleh Daniel

    • Jika Daniel menunjukkan masalah pada curl, Apple harus memperbaikinya.
  • Masalah pada dokumentasi curl dan cacat keamanan libcurl

    • curl tidak mengimplementasikan semua protokol secara langsung, melainkan mendukung berbagai pustaka.
    • Kekurangan dari pendekatan ini adalah sulit untuk menjamin perilaku yang konsisten di antara backend yang independen.
    • libressl bukan reimplementasi sempurna dari openssl, dan tidak berkewajiban untuk sepenuhnya meniru API-nya.
    • curl memiliki dua pilihan: menghentikan dukungan untuk pustaka tersebut atau mendokumentasikan masalahnya.
    • Untuk menghindari merusak kode pengguna, setidaknya masalah itu harus didokumentasikan.
    • Pendekatan libressl memiliki cacat dari sisi keamanan dan mungkin ada alasan untuk membuka CVE.
  • Ketidakpercayaan terhadap perangkat lunak yang disertakan di macOS

    • Menggunakan MacPorts untuk menimpa alat-alat yang disertakan di macOS (misalnya curl), karena sering kali sudah usang atau bermasalah.
  • Perilaku bawaan Apple dapat dianggap sebagai backdoor

    • Bukan berarti ini disengaja atau bersifat jahat, tetapi secara efektif dapat berfungsi sebagai backdoor.
    • Menambahkan kunci ke skema autentikasi pengguna sama saja dengan menambahkan backdoor.
  • Kritik bahwa Apple tidak peduli pada keamanan pengguna

    • Perilaku bawaan dan perilaku alternatif itu berbeda.
    • Mengisyaratkan bahwa tim keamanan Apple mungkin memiliki masalah dalam memahami bacaan.