Sigstore dan Cosign: Memverifikasi Tanda Tangan Image Container Sebelum Deploy

Image container yang berhasil dibangun belum tentu berasal dari proses build yang benar atau dari penerbit yang dipercaya. Tag seperti latest juga dapat menunjuk ke image berbeda dari waktu ke waktu. Untuk mengurangi risiko penyusupan ke rantai pasok perangkat lunak, tim perlu memverifikasi bukan hanya isi image, tetapi juga identitas pihak yang menandatanganinya. Sigstore dan Cosign menyediakan pendekatan terbuka untuk menandatangani serta memeriksa artefak, termasuk image container yang disimpan di registry OCI.

Apa itu Sigstore dan Cosign?

Sigstore adalah proyek untuk mempermudah penandatanganan dan verifikasi artefak perangkat lunak. Cosign merupakan salah satu alat utamanya, dengan dukungan untuk image container dan artefak OCI lain. Dalam mode tanpa pengelolaan kunci jangka panjang atau keyless signing, Cosign dapat menggunakan identitas dari penyedia OpenID Connect (OIDC). Fulcio menerbitkan sertifikat penandatanganan berumur pendek, sedangkan Rekor menyediakan log transparansi yang membantu pihak lain menelusuri bukti penandatanganan.

Alur ini mengurangi kebutuhan menyimpan kunci privat permanen di banyak runner CI. Namun, mode keyless bukan berarti tanpa risiko: identitas yang dipakai untuk menandatangani tetap harus dibatasi, alur autentikasi harus diamankan, dan kebijakan verifikasi harus menyebut identitas serta penerbit yang memang dipercaya.

Apa yang sebenarnya dibuktikan oleh tanda tangan?

Tanda tangan menghubungkan artefak tertentu dengan identitas penandatangan dan bukti kriptografis. Jika image berubah, digest-nya juga berubah sehingga tanda tangan yang merujuk ke digest lama tidak otomatis berlaku untuk image baru. Karena itu, rujuk image menggunakan digest seperti registry.example/app@sha256:..., bukan hanya tag yang dapat dipindahkan.

Meski demikian, tanda tangan yang valid tidak otomatis membuktikan bahwa kode aman, bebas kerentanan, atau dibangun dari sumber yang benar. Tanda tangan hanya menjawab sebagian pertanyaan: apakah artefak yang diperiksa cocok dengan bukti penandatanganan, dan apakah identitas penandatangan sesuai dengan kebijakan yang diharapkan? Pemeriksaan kerentanan, provenance build, dan tinjauan perubahan tetap diperlukan.

Alur kerja yang disarankan

  1. Bangun image dari commit yang sudah ditinjau melalui pipeline CI tepercaya.
  2. Ambil digest image setelah proses build dan push ke registry selesai.
  3. Tandatangani referensi berbasis digest menggunakan identitas pipeline atau kunci yang dikelola secara aman.
  4. Verifikasi tanda tangan sebelum image masuk ke lingkungan staging atau produksi.
  5. Simpan log build, commit sumber, hasil pemindaian, dan keputusan deployment agar insiden dapat ditelusuri.

Pemisahan antara build, signing, dan deployment membantu mengurangi kemungkinan satu kredensial yang bocor dapat melakukan semua tindakan sekaligus. Pada sistem yang lebih matang, hak untuk menandatangani diberikan hanya kepada pipeline tertentu, bukan kepada setiap pengembang atau mesin lokal.

Contoh menandatangani dan memverifikasi image

Dengan Cosign terpasang dan autentikasi keyless tersedia, perintah berikut menggambarkan alur dasarnya. Ganti nama image dengan image milik sendiri dan gunakan digest hasil build yang benar.

# Contoh: tandatangani image yang sudah dipush ke registry
cosign sign registry.example.com/tim/aplikasi@sha256:DIGEST_IMAGE

# Verifikasi dengan identitas dan penerbit sertifikat yang diharapkan
cosign verify registry.example.com/tim/aplikasi@sha256:DIGEST_IMAGE \
  --certificate-identity="[email protected]" \
  --certificate-oidc-issuer="https://accounts.example.com"

Nilai identitas dan issuer di atas hanya contoh. Sesuaikan dengan identitas sertifikat yang benar-benar dihasilkan oleh lingkungan CI. Jangan menghapus pemeriksaan identitas demi membuat verifikasi berhasil; hal itu dapat membuat tanda tangan dari pihak yang tidak diharapkan diterima. Untuk konfigurasi key-based, gunakan kunci publik yang didistribusikan melalui jalur tepercaya dan lindungi kunci privat dengan kontrol akses yang memadai.

Jadikan verifikasi bagian dari kebijakan deployment

Menjalankan verifikasi secara manual sesekali tidak cukup untuk layanan produksi. Tambahkan langkah verifikasi pada pipeline sebelum rilis, lalu gunakan kebijakan admission di platform orkestrasi bila tersedia. Kebijakan tersebut dapat menolak image yang tidak memiliki tanda tangan valid atau ditandatangani oleh identitas di luar daftar yang disetujui.

Mulailah dengan lingkungan pengujian dan mode audit agar tim mengetahui image mana yang belum memenuhi aturan. Setelah proses build dan signing konsisten, terapkan penolakan secara bertahap. Pastikan jalur darurat terdokumentasi, dibatasi, dan diaudit—bukan berupa pengecualian permanen yang melewati seluruh pemeriksaan.

Kesalahan yang perlu dihindari

  • Memverifikasi tag saja: tag dapat berubah. Gunakan digest untuk mengikat verifikasi ke artefak yang spesifik.
  • Menerima identitas apa pun: tanda tangan yang valid dari akun yang salah tetap tidak memenuhi kebijakan organisasi.
  • Menganggap tanda tangan sebagai pemindaian keamanan: gabungkan dengan pemindaian kerentanan, pemeriksaan dependensi, dan provenance build.
  • Mengabaikan log transparansi: tentukan cara menyimpan bukti verifikasi dan siapa yang boleh menandatangani.
  • Membagikan kredensial CI: batasi izin token, pisahkan tugas, dan rotasi kredensial yang terpapar.

Checklist sebelum diterapkan

Pastikan registry menyimpan artefak tanda tangan dengan benar, identitas OIDC pipeline telah dibatasi, aturan verifikasi diuji terhadap image valid dan tidak valid, serta log hasilnya dapat diakses saat audit. Dokumentasikan siapa yang menyetujui perubahan kebijakan dan bagaimana pemulihan dilakukan jika penandatanganan gagal. Tim juga sebaiknya meninjau perubahan versi Cosign dan dokumentasi resmi sebelum memperbarui pipeline.

Kesimpulan

Sigstore dan Cosign membantu membangun kepercayaan yang dapat diverifikasi pada image container, terutama ketika tanda tangan diikat ke digest dan diperiksa terhadap identitas yang telah ditentukan. Keduanya bukan pengganti pemindaian keamanan atau kontrol akses, melainkan lapisan penting dalam rantai pasok perangkat lunak. Terapkan penandatanganan di pipeline tepercaya, verifikasi secara otomatis sebelum deployment, dan simpan bukti yang diperlukan untuk audit.

Referensi resmi: Dokumentasi penandatanganan Cosign dan repositori Sigstore Cosign.

PENGALAMAN BARU Coba tampilan baru Penasaran dengan pengalaman membaca Nazuaf versi modern? Coba tampilan baru yang dirancang agar nyaman dibaca dari ponsel dan pc. Buka versi modern dan lanjutkan membaca artikel ini. Jelajahi tampilan baru Nazuaf versi modern · Ketuk kartu untuk mencoba

Bagikan artikel ini

Tinggalkan komentar

Server Load: 24% · CMH · ⚡ --ms