Menerapkan keamanan shift-left

Last reviewed 2025-02-05 UTC

Prinsip ini dalam pilar keamanan Google Cloud Framework dengan Arsitektur yang Baik membantu Anda mengidentifikasi kontrol praktis yang dapat Anda terapkan lebih awal dalam siklus proses pengembangan software untuk meningkatkan postur keamanan Anda. Panduan ini memberikan rekomendasi yang membantu Anda menerapkan pembatasan keamanan preventif dan kontrol keamanan pasca-deployment.

Ringkasan prinsip

Keamanan shift-left berarti menerapkan praktik keamanan di awal siklus proses pengembangan software. Prinsip ini memiliki tujuan berikut:

  • Hindari cacat keamanan sebelum perubahan sistem dilakukan. Terapkan batasan keamanan preventif dan adopsi praktik seperti infrastruktur sebagai kode (IaC), kebijakan sebagai kode, dan pemeriksaan keamanan di pipeline CI/CD. Anda juga dapat menggunakan kemampuan khusus platform lainnya seperti Layanan Kebijakan Organisasi dan cluster GKE yang di-harden di Google Cloud.
  • Mendeteksi dan memperbaiki bug keamanan lebih awal, cepat, dan andal setelah perubahan sistem dilakukan. Terapkan praktik seperti peninjauan kode, pemindaian kerentanan pasca-deployment, dan pengujian keamanan.

Prinsip keamanan Implement security by design dan shift-left terkait, tetapi cakupannya berbeda. Prinsip keamanan melalui desain membantu Anda menghindari kekurangan desain mendasar yang akan memerlukan perancangan ulang seluruh sistem. Misalnya, latihan pembuatan model ancaman menunjukkan bahwa desain saat ini tidak menyertakan kebijakan otorisasi, dan semua pengguna akan memiliki tingkat akses yang sama tanpanya. Keamanan shift-left membantu Anda menghindari cacat implementasi (bug dan kesalahan konfigurasi) sebelum perubahan diterapkan, dan memungkinkan perbaikan yang cepat dan andal setelah deployment.

Rekomendasi

Untuk menerapkan prinsip keamanan shift-left untuk workload cloud Anda, pertimbangkan rekomendasi di bagian berikut:

Mengadopsi kontrol keamanan preventif

Rekomendasi ini relevan dengan area fokus berikut:

  • Pengelolaan akses dan identitas
  • Tata kelola, risiko, dan kepatuhan cloud

Kontrol keamanan preventif sangat penting untuk mempertahankan postur keamanan yang kuat di cloud. Kontrol ini membantu Anda mengurangi risiko secara proaktif. Anda dapat mencegah kesalahan konfigurasi dan akses tidak sah ke resource, memungkinkan developer bekerja secara efisien, dan membantu memastikan kepatuhan terhadap standar industri dan kebijakan internal.

Kontrol keamanan preventif lebih efektif jika diterapkan dengan menggunakan infrastruktur sebagai kode (IaC). Dengan IaC, kontrol keamanan preventif dapat menyertakan lebih banyak pemeriksaan yang disesuaikan pada kode infrastruktur sebelum perubahan di-deploy. Jika digabungkan dengan otomatisasi, kontrol keamanan preventif dapat berjalan sebagai bagian dari pemeriksaan otomatis pipeline CI/CD Anda.

Produk dan Google Cloud kemampuan berikut dapat membantu Anda menerapkan kontrol pencegahan di lingkungan Anda:

IAM memungkinkan Anda memberikan otorisasi kepada siapa yang dapat bertindak atas resource tertentu berdasarkan izin. Untuk mengetahui informasi selengkapnya, lihat Kontrol akses untuk resource organisasi dengan IAM.

Layanan Kebijakan Organisasi memungkinkan Anda menetapkan batasan pada resource untuk menentukan cara mengonfigurasinya. Misalnya, Anda dapat menggunakan kebijakan organisasi untuk melakukan hal berikut:

Selain menggunakan kebijakan organisasi, Anda dapat membatasi akses ke resource menggunakan metode berikut:

  • Tag dengan IAM: menetapkan tag ke kumpulan resource, lalu menetapkan definisi akses untuk tag itu sendiri, bukan menentukan izin akses di setiap resource.
  • IAM Conditions: menentukan kontrol akses berbasis atribut bersyarat untuk resource.
  • Defense in depth: gunakan Kontrol Layanan VPC untuk lebih membatasi akses ke resource.

Untuk mengetahui informasi selengkapnya tentang pengelolaan resource, lihat Menentukan hierarki resource untuk Google Cloud zona landing Anda.

Mengotomatiskan penyediaan dan pengelolaan resource cloud

Rekomendasi ini relevan dengan area fokus berikut:

  • Keamanan aplikasi
  • Tata kelola, risiko, dan kepatuhan cloud

Mengotomatiskan penyediaan dan pengelolaan resource dan workload cloud akan lebih efektif jika Anda juga mengadopsi IaC deklaratif, bukan skrip imperatif. IaC bukanlah alat atau praktik keamanan tersendiri, tetapi membantu Anda meningkatkan keamanan platform. Dengan mengadopsi IaC, Anda dapat membuat infrastruktur yang dapat diulang dan memberi tim operasi Anda status yang baik. IaC juga meningkatkan efisiensi rollback, perubahan audit, dan pemecahan masalah.

Jika digabungkan dengan pipeline dan otomatisasi CI/CD, IaC juga memberi Anda kemampuan untuk mengadopsi praktik seperti kebijakan sebagai kode dengan alat seperti OPA. Anda dapat mengaudit perubahan infrastruktur dari waktu ke waktu dan menjalankan pemeriksaan otomatis pada kode infrastruktur sebelum perubahan di-deploy.

Untuk mengotomatiskan deployment infrastruktur, Anda dapat menggunakan alat seperti Config Controller, Terraform, Jenkins, dan Cloud Build. Untuk membantu Anda membuat lingkungan aplikasi yang aman menggunakan IaC dan otomatisasi, Google Cloud menyediakan blueprint fondasi perusahaan. Blueprint ini adalah desain opini Google yang mengikuti semua praktik dan konfigurasi yang kami rekomendasikan. Blueprint ini memberikan petunjuk langkah demi langkah untuk mengonfigurasi dan men-deploy topologi Google Cloud Anda menggunakan Terraform dan Cloud Build.

Anda dapat mengubah skrip blueprint fondasi perusahaan untuk mengonfigurasi lingkungan yang mengikuti rekomendasi Google dan memenuhi persyaratan keamanan Anda sendiri. Anda dapat mengembangkan blueprint lebih lanjut dengan blueprint tambahan atau mendesain otomatisasi Anda sendiri.Google Cloud Architecture Center menyediakan blueprint lain yang dapat diterapkan di atas blueprint dasar-dasar perusahaan. Berikut adalah beberapa contoh blueprint ini:

Mengotomatiskan rilis aplikasi yang aman

Rekomendasi ini relevan dengan area fokus berikut: Keamanan aplikasi.

Tanpa alat otomatis, akan sulit untuk men-deploy, mengupdate, dan mem-patch lingkungan aplikasi yang kompleks guna memenuhi persyaratan keamanan yang konsisten. Sebaiknya Anda mem-build pipeline CI/CD otomatis untuk siklus proses pengembangan software (SDLC). Pipeline CI/CD otomatis membantu Anda menghapus error manual, menyediakan feedback loop pengembangan standar, dan memungkinkan iterasi produk yang efisien. Continuous delivery adalah salah satu praktik terbaik yang direkomendasikan oleh framework DORA.

Mengotomatiskan rilis aplikasi menggunakan pipeline CI/CD membantu meningkatkan kemampuan Anda untuk mendeteksi dan memperbaiki bug keamanan lebih awal, cepat, dan andal. Misalnya, Anda dapat memindai kerentanan keamanan secara otomatis saat artefak dibuat, mempersempit cakupan peninjauan keamanan, dan melakukan rollback ke versi yang diketahui dan aman. Anda juga dapat menentukan kebijakan untuk lingkungan yang berbeda (seperti lingkungan pengembangan, pengujian, atau produksi) sehingga hanya artefak terverifikasi yang di-deploy.

Untuk membantu Anda mengotomatiskan rilis aplikasi dan menyematkan pemeriksaan keamanan di pipeline CI/CD, Google Cloud menyediakan beberapa alat, termasuk Cloud Build, Cloud Deploy, Web Security Scanner, dan Binary Authorization.

Untuk menetapkan proses yang memverifikasi beberapa persyaratan keamanan dalam SDLC Anda, gunakan framework Supply-chain Levels for Software Artifacts (SLSA), yang telah ditentukan oleh Google. SLSA memerlukan pemeriksaan keamanan untuk kode sumber, proses build, dan provenance kode. Banyak dari persyaratan ini dapat disertakan dalam pipeline CI/CD otomatis. Untuk memahami cara Google menerapkan praktik ini secara internal, lihat pendekatanGoogle Cloudterhadap perubahan.

Pastikan deployment aplikasi mengikuti proses yang disetujui

Rekomendasi ini relevan dengan area fokus berikut: Keamanan aplikasi.

Jika penyerang menyusupi pipeline CI/CD Anda, seluruh stack aplikasi Anda dapat terpengaruh. Untuk membantu mengamankan pipeline, Anda harus menerapkan proses persetujuan yang ditetapkan sebelum men-deploy kode ke produksi.

Jika menggunakan Google Kubernetes Engine (GKE), GKE Enterprise, atau Cloud Run, Anda dapat menetapkan proses persetujuan menggunakan Otorisasi Biner. Otorisasi Biner melampirkan tanda tangan yang dapat dikonfigurasi ke image container. Tanda tangan ini (juga disebut pengesahan) membantu memvalidasi image. Pada waktu deployment, Otorisasi Biner menggunakan pengesahan ini untuk menentukan apakah proses telah selesai. Misalnya, Anda dapat menggunakan Otorisasi Biner untuk melakukan hal berikut:

  • Pastikan bahwa sistem build atau pipeline CI tertentu membuat image container.
  • Validasi bahwa image container mematuhi kebijakan penandatanganan kerentanan.
  • Pastikan bahwa image container lulus kriteria untuk promosi ke lingkungan deployment berikutnya, seperti dari pengembangan hingga UM (Uji Mutu).

Dengan menggunakan Otorisasi Biner, Anda dapat menerapkan bahwa hanya kode tepercaya yang berjalan di platform target Anda.

Memindai kerentanan yang diketahui sebelum deployment aplikasi

Rekomendasi ini relevan dengan area fokus berikut: Keamanan aplikasi.

Sebaiknya gunakan alat otomatis yang dapat terus melakukan pemindaian kerentanan pada artefak aplikasi sebelum di-deploy ke produksi.

Untuk aplikasi dalam container, gunakan Artifact Analysis untuk menjalankan pemindaian kerentanan secara otomatis untuk image container. Artifact Analysis akan memindai image baru saat diupload ke Artifact Registry. Pemindaian akan mengekstrak informasi tentang paket sistem dalam penampung. Setelah pemindaian awal, Artifact Analysis terus memantau metadata image yang dipindai di Artifact Registry untuk mencari kerentanan baru. Saat Artifact Analysis menerima informasi kerentanan baru dan yang diperbarui dari sumber kerentanan, akan dilakukan hal berikut:

  • Memperbarui metadata gambar yang dipindai agar tetap terbaru.
  • Membuat kejadian kerentanan baru untuk catatan baru.
  • Menghapus kemunculan kerentanan yang tidak lagi valid.

Pantau kode aplikasi Anda untuk kerentanan yang diketahui

Rekomendasi ini relevan dengan area fokus berikut: Keamanan aplikasi.

Gunakan alat otomatis untuk terus memantau kode aplikasi Anda untuk menemukan kerentanan umum, seperti OWASP Top 10. Untuk informasi selengkapnya tentang Google Cloud produk dan fitur yang mendukung teknik mitigasi Top 10 OWASP, lihat 10 opsi mitigasi teratas OWASP di Google Cloud.

Gunakan Web Security Scanner untuk membantu mengidentifikasi kerentanan keamanan di aplikasi web App Engine, Compute Engine, dan GKE Anda. Pemindai meng-crawl aplikasi Anda, mengikuti semua link dalam cakupan URL awal, dan mencoba menggunakan input pengguna dan pengendali peristiwa sebanyak mungkin. API ini dapat otomatis memindai dan mendeteksi kerentanan umum, termasuk pembuatan skrip lintas situs, injeksi kode, konten campuran, dan library yang usang atau tidak aman. Web Security Scanner memberikan identifikasi awal atas jenis kerentanan ini tanpa mengganggu Anda dengan positif palsu.

Selain itu, jika Anda menggunakan GKE Enterprise untuk mengelola kumpulan cluster Kubernetes, dasbor postur keamanan akan menampilkan rekomendasi opini yang dapat ditindaklanjuti untuk membantu meningkatkan postur keamanan kumpulan cluster Anda.