Keselamatan

Halaman ini menyebut apa yang kami lindungi dan apa yang tidak dapat kami lindungi. Cerita keselamatan yang meninggalkan bahagian kedua mengajak pembaca menyangka sebuah senarai ialah sebuah jaminan.

Titik permulaannya

Menerbitkan pakej bermakna menjalankan kod pada komputer setiap jurutera yang memasangnya. Setiap keputusan keselamatan dalam produk ini ditimbang terlebih dahulu terhadap satu soalan: adakah perubahan ini menjadikan penerbitan tanpa kebenaran lebih mudah?

  • Pakej ditandatangani (ECDSA P-256)

    Fail tandatangan turut berada di dalam pakej. Yang ditandatangani ialah sebuah manifes yang mengandungi nilai cincangan setiap fail, identiti pakej dan versinya — bukan sekadar cincangan arkib.

    Kalau hanya cincangan yang ditandatangani, sebuah arkib lama yang sah tandatangannya boleh disenaraikan dengan nombor versi baharu: tandatangannya lulus dan pengguna memasang alat yang sudah diketahui cacat sebagai “kemas kini”.

  • Kunci persendirian TIDAK berada pada pelayan

    Pelayan hanya mengesahkan. Penandatanganan berlaku pada komputer penerbit sendiri dengan alat yang berasingan.

    Kalau kunci berada pada pelayan, sesiapa yang menguasai pelayan boleh mengubah pakej lalu menandatanganinya semula — dan itu menjadikan penandatanganan sia-sia.

  • Klien turut menyemak

    Add-in pada komputer jurutera menyemak tandatangan secara bebas, dan senarai kunci dipercayai yang digunakannya tidak datang daripada pelayan.

    Penandatanganan wujud justeru kerana pelayan tidak boleh dipercayai begitu sahaja. Mengambil senarai kepercayaan daripada pelayan yang sama akan membatalkan andaian itu secara senyap.

  • Jejak audit yang tidak boleh dipadamkan

    Setiap keluaran, setiap perubahan hak capaian dan setiap keputusan saluran ditulis secara kekal. Laluan kemas kini dan pemadaman sengaja tidak wujud, dan pembersihan tempoh simpanan tidak menyentuhnya.

    “Bagaimana alat ini sampai ke sini” lazimnya baharu ditanya berbulan-bulan kemudian. Pada hari itu, rekod yang boleh dipadamkan ialah rekod yang tidak pernah wujud.

  • Prinsip empat mata, jika dikehendaki

    Menaikkan sesuatu versi ke saluran yang lebih luas boleh mensyaratkan kelulusan pentadbir kedua, dan pemohon tidak boleh meluluskan permohonannya sendiri. Penarikan balik tidak pernah memerlukan kelulusan.

    Tetapan asalnya mati. Dalam pasukan bertiga, pintu itu dalam beberapa minggu bertukar menjadi mesej yang diluluskan tanpa dibaca; kawalan yang dipercayai melindungi sedangkan ia tidak, lebih buruk daripada tiada kawalan langsung.

  • Mengekstrak arkib pun satu permukaan serangan

    Arkib yang dimuat naik disemak terhadap perayauan laluan (zip-slip) dan bom nyahmampatan, dan saiz hasil ekstraknya dihadkan.

    Mengekstrak arkib kelihatan tidak berbahaya. Arkib yang direka khas boleh menulis fail di luar folder sasaran atau memenuhi seluruh cakera pelayan.

  • Log masuk tanpa kata laluan

    Pengguna log masuk dengan kod sekali guna yang dihantar ke alamat e-melnya. Sesi berjalan di atas token berumur pendek; token penyegar tidak pernah kelihatan oleh kod pelayar.

    Tanpa kumpulan kata laluan yang perlu diurus, tiada pangkalan data kata laluan yang boleh bocor. Dan penggunaan semula token penyegar yang sudah dibatalkan dianggap tanda kecurian: sesinya diputuskan.

  • Anda boleh melihat apa yang anda pasang

    Folder pemasangan membawa senarai komponen yang boleh dibaca mesin (SBOM CycloneDX) dan skrip migrasi bagi kedua-dua enjin pangkalan data.

    Pasukan IT anda sepatutnya boleh menyemak apa yang bakal masuk ke pelayan sebelum benda itu masuk. Apabila sesuatu kelemahan komponen diumumkan, “adakah kita menggunakannya” menjadi sekadar satu carian fail.

Apa yang tidak dapat kami lindungi

Ini bukan lubang, ini had. Semuanya mengikut daripada strukturnya, dan mengaku sebaliknya bermakna berbohong.

  • Dua pentadbir yang bertindak bersama. Prinsip empat mata menghentikan seorang, bukan dua.
  • Pentadbir sistem pada pelayannya. Bagi orang yang mempunyai capaian pangkalan data dan sistem fail, tiada kawalan peringkat aplikasi yang menjadi halangan.
  • Komputer yang menyimpan kunci penandatangan. Kuncinya memang tiada pada pelayan, tetapi ia berada di suatu tempat; kalau komputer itu jatuh, tandatangannya turut jatuh.
  • Kelakuan berniat jahat yang sengaja disembunyikan. Pemeriksaan pakej kami bersifat heuristik dan kami tidak mengaku ia akan menangkap kod yang cuba bersembunyi.
  • Penyedutan data. Alat yang terpasang berjalan dengan kebenaran milik jurutera itu sendiri dan boleh membaca apa sahaja yang dicapai kebenaran tersebut. Yang menghadkannya ialah kawalan sistem pengendalian dan rangkaian, bukan produk ini.
  • Keselamatan sandaran anda. Sandaran pangkalan data berada di tangan anda, dan segala isinya sama berharganya dengan sistem yang hidup.

Melaporkan kelemahan keselamatan

Kalau anda menemuinya, tulis kepada kami. Kami menangani laporan dengan serius, kami tidak menutup pelapor daripada prosesnya, dan kami memberitahu anda bila pembetulannya diterbitkan.

security@ypcad.com