Menerapkan keamanan shift-left

Last reviewed 2025-02-05 UTC

Prinsip ini dalam pilar keamanan dari Google Cloud Well-Architected Framework membantu Anda mengidentifikasi kontrol praktis yang dapat diterapkan sejak awal siklus proses pengembangan software untuk meningkatkan postur keamanan Anda. Prinsip ini memberikan rekomendasi yang membantu Anda menerapkan batasan pengaman keamanan preventif dan kontrol keamanan pasca-deployment.

Ringkasan prinsip

Keamanan shift left berarti mengadopsi praktik keamanan sejak awal siklus proses pengembangan software. Prinsip ini memiliki tujuan berikut:

  • Menghindari cacat keamanan sebelum perubahan sistem dilakukan. Menerapkan batasan pengaman keamanan preventif dan mengadopsi praktik seperti infrastructure as code (IaC), policy as code, dan pemeriksaan keamanan dalam pipeline CI/CD. Anda juga dapat menggunakan kemampuan khusus platform lainnya seperti Layanan Kebijakan Organisasi dan cluster GKE yang diperkuat di Google Cloud.
  • Mendeteksi dan memperbaiki bug keamanan dengan cepat, andal, dan sejak awal setelah perubahan sistem dilakukan. Mengadopsi praktik seperti peninjauan kode, pemindaian kerentanan pasca-deployment, dan pengujian keamanan.

Prinsip Menerapkan keamanan berdasarkan desain dan keamanan shift left saling terkait, tetapi berbeda dalam cakupan. Prinsip keamanan berdasarkan desain membantu Anda menghindari kekurangan desain mendasar yang akan memerlukan arsitektur ulang seluruh sistem. Misalnya, latihan pembuatan model ancaman mengungkapkan bahwa desain saat ini tidak menyertakan kebijakan otorisasi, dan semua pengguna akan memiliki tingkat akses yang sama tanpa kebijakan tersebut. 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 memitigasi 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 menggunakan infrastructure as code (IaC). Dengan IaC, kontrol keamanan preventif dapat mencakup pemeriksaan yang lebih 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 preventif di lingkungan Anda:

IAM memungkinkan Anda memberikan otorisasi 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 sekumpulan resource, lalu menetapkan definisi akses untuk tag itu sendiri, bukan menentukan izin akses di setiap resource.
  • Kondisi IAM: menentukan kontrol akses berbasis atribut bersyarat untuk resource.
  • Defense in depth: menggunakan Kontrol Layanan VPC untuk lebih membatasi akses ke resource.

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

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 serta workload cloud lebih efektif jika Anda juga mengadopsi IaC deklaratif, bukan skrip imperatif. IaC bukan alat atau praktik keamanan dengan sendirinya, tetapi membantu Anda meningkatkan keamanan platform. Mengadopsi IaC memungkinkan Anda membuat infrastruktur yang dapat diulang dan memberi tim operasi Anda status baik yang diketahui. 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 policy as code 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 membangun lingkungan aplikasi yang aman menggunakan IaC dan otomatisasi, Google Cloud menyediakan blueprint dasar-dasar perusahaan. Blueprint ini adalah desain opini Google yang mengikuti semua praktik dan konfigurasi yang direkomendasikan. Blueprint ini memberikan petunjuk langkah demi langkah untuk mengonfigurasi dan men-deploy topologi Anda menggunakan Google Cloud Terraform dan Cloud Build.

Anda dapat mengubah skrip blueprint dasar-dasar perusahaan untuk mengonfigurasi lingkungan yang mengikuti rekomendasi Google dan memenuhi persyaratan keamanan Anda sendiri. Anda dapat mengembangkan blueprint tersebut dengan blueprint tambahan atau merancang otomatisasi Anda sendiri. Architecture Center menyediakan blueprint lain yang dapat diimplementasikan di atas blueprint dasar-dasar perusahaan.Google Cloud Berikut 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 buat pipeline CI/CD otomatis untuk siklus proses pengembangan software (SDLC) Anda. 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 dengan cepat, andal, dan sejak awal. 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 dalam pipeline CI/CD, Google Cloud menyediakan beberapa alat termasuk Cloud Build, Cloud Deploy, Web Security Scanner, dan Otorisasi Biner.

Untuk membuat 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 persyaratan ini dapat disertakan dalam pipeline CI/CD otomatis. Untuk memahami cara Google menerapkan praktik ini secara internal, lihat Google Cloud's pendekatan terhadap perubahan.

Memastikan 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) atau Cloud Run, Anda dapat membuat 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. Saat waktu deployment, Otorisasi Biner menggunakan pengesahan ini untuk menentukan apakah proses telah selesai. Misalnya, Anda dapat menggunakan Otorisasi Biner untuk melakukan hal berikut:

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

Dengan menggunakan Otorisasi Biner, Anda dapat memastikan 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 memindai image baru saat diupload ke Artifact Registry. Pemindaian akan mengekstrak informasi tentang paket sistem dalam container. 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.

Memantau 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 mengetahui informasi selengkapnya tentang Google Cloud produk dan fitur yang mendukung teknik mitigasi OWASP Top 10, lihat Opsi mitigasi OWASP Top 10 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. Pemindai 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 untuk mengelola fleet cluster Kubernetes, dasbor postur keamanan akan menampilkan rekomendasi opini yang dapat Anda tindaklanjuti untuk membantu meningkatkan postur keamanan fleet Anda.