Rekomendasi keamanan untuk sumber daya Google Cloud Platform (GCP)

Artikel ini mencantumkan semua rekomendasi yang mungkin Anda lihat di Microsoft Defender untuk Cloud jika Anda menghubungkan akun Google Cloud Platform (GCP) dengan menggunakan halaman Pengaturan lingkungan. Rekomendasi yang muncul di lingkungan Anda didasarkan pada sumber daya yang Anda lindungi dan pada konfigurasi yang disesuaikan.

Untuk mempelajari tentang tindakan yang dapat Anda ambil sebagai respons terhadap rekomendasi ini, lihat Memulihkan rekomendasi di Defender untuk Cloud.

Skor aman Anda didasarkan pada jumlah rekomendasi keamanan yang Anda selesaikan. Untuk memutuskan rekomendasi mana yang harus diselesaikan terlebih dahulu, lihat tingkat keparahan setiap rekomendasi dan efek potensialnya pada skor aman Anda.

Rekomendasi Komputasi GCP

VM Mesin Komputasi harus menggunakan OS yang Dioptimalkan Kontainer

Deskripsi: Rekomendasi ini mengevaluasi properti konfigurasi kumpulan simpul untuk pasangan kunci-nilai, 'imageType': 'COS.'

Tingkat keparahan: Rendah

Masalah konfigurasi EDR harus diselesaikan pada komputer virtual GCP

Deskripsi: Untuk melindungi komputer virtual dari ancaman dan kerentanan terbaru, atasi semua masalah konfigurasi yang diidentifikasi dengan solusi Deteksi dan Respons Titik Akhir (EDR) yang diinstal.
Catatan: Saat ini, rekomendasi ini hanya berlaku untuk sumber daya dengan Microsoft Defender untuk Titik Akhir (MDE) diaktifkan.

Tingkat keparahan: Tinggi

Solusi EDR harus diinstal pada Komputer Virtual GCP

Deskripsi: Untuk melindungi komputer virtual, instal solusi Deteksi dan Respons Titik Akhir (EDR). EDR membantu mencegah, mendeteksi, menyelidiki, dan merespons ancaman tingkat lanjut. Gunakan Pertahanan Microsoft untuk Server untuk menyebarkan Microsoft Defender untuk Titik Akhir. Jika sumber daya diklasifikasikan sebagai "Tidak Sehat", sumber daya tidak memiliki solusi EDR yang didukung yang diinstal [tautan Place Holder - Pelajari lebih lanjut]. Jika Anda memiliki solusi EDR yang terinstal yang tidak dapat ditemukan oleh rekomendasi ini, Anda dapat mengecualikannya.

Tingkat keparahan: Tinggi

Pastikan 'Blokir kunci SSH di seluruh proyek' diaktifkan untuk instans VM

Deskripsi: Disarankan untuk menggunakan kunci SSH spesifik Instans alih-alih menggunakan kunci SSH umum/bersama di seluruh proyek untuk mengakses Instans. Kunci SSH di seluruh proyek disimpan dalam Komputasi/Project-meta-data. Kunci SSH lebar proyek dapat digunakan untuk masuk ke semua instans dalam proyek. Menggunakan kunci SSH di seluruh proyek memudahkan manajemen kunci SSH tetapi jika disusupi, menimbulkan risiko keamanan yang dapat memengaruhi semua instans dalam proyek. Disarankan untuk menggunakan kunci SSH spesifik Instans yang dapat membatasi permukaan serangan jika kunci SSH disusupi.

Tingkat keparahan: Sedang

Pastikan instans Komputasi diluncurkan dengan VM Terlindungi diaktifkan

Deskripsi: Untuk melindungi dari ancaman tingkat lanjut dan memastikan bahwa pemuat boot dan firmware pada VM Anda ditandatangani dan tidak dirusak, disarankan agar instans Komputasi diluncurkan dengan Shielded VM diaktifkan. VM terlindungi adalah komputer virtual (VM) di Google Cloud Platform yang diperkuat oleh serangkaian kontrol keamanan yang membantu melindungi dari rootkit dan bootkit. Shielded VM menawarkan integritas instans VM Mesin Komputasi yang dapat diverifikasi, sehingga Anda dapat yakin instans Anda belum disusupi oleh malware atau rootkit tingkat boot atau kernel. Integritas yang dapat diverifikasi VM Terlindungi dicapai melalui penggunaan Boot Aman, modul platform tepercaya virtual (vTPM)-enabled Measured Boot, dan pemantauan integritas. Instans VM Terlindungi menjalankan firmware yang ditandatangani dan diverifikasi menggunakan Otoritas Sertifikat Google, memastikan bahwa firmware instans tidak dimodifikasi dan menetapkan akar kepercayaan untuk Boot Aman. Pemantauan integritas membantu Anda memahami dan membuat keputusan tentang status instans VM Anda dan VM Terlindungi vTPM memungkinkan Boot Terukur dengan melakukan pengukuran yang diperlukan untuk membuat garis besar boot yang dikenal baik, yang disebut garis besar kebijakan integritas. Garis besar kebijakan integritas digunakan untuk perbandingan dengan pengukuran dari boot VM berikutnya untuk menentukan apakah ada yang berubah. Boot Aman membantu memastikan bahwa sistem hanya menjalankan perangkat lunak autentik dengan memverifikasi tanda tangan digital semua komponen boot, dan menghentikan proses boot jika verifikasi tanda tangan gagal.

Tingkat keparahan: Tinggi

Pastikan 'Aktifkan menyambungkan ke port serial' tidak diaktifkan untuk Instans VM

Deskripsi: Berinteraksi dengan port serial sering disebut sebagai konsol serial, yang mirip dengan menggunakan jendela terminal, dalam input dan output tersebut sepenuhnya dalam mode teks dan tidak ada antarmuka grafis atau dukungan mouse. Jika Anda mengaktifkan konsol serial interaktif pada instans, klien dapat mencoba menyambungkan ke instans tersebut dari alamat IP apa pun. Oleh karena itu, dukungan konsol serial interaktif harus dinonaktifkan. Instans komputer virtual memiliki empat port serial virtual. Berinteraksi dengan port serial mirip dengan menggunakan jendela terminal, dalam input dan output tersebut sepenuhnya dalam mode teks dan tidak ada antarmuka grafis atau dukungan mouse. Sistem operasi instans, BIOS, dan entitas tingkat sistem lainnya sering menulis output ke port serial, dan dapat menerima input seperti perintah atau jawaban atas perintah. Biasanya, entitas tingkat sistem ini menggunakan port serial pertama (port 1) dan port serial 1 sering disebut sebagai konsol serial. Konsol serial interaktif tidak mendukung pembatasan akses berbasis IP seperti daftar yang diizinkan IP. Jika Anda mengaktifkan konsol serial interaktif pada instans, klien dapat mencoba menyambungkan ke instans tersebut dari alamat IP apa pun. Ini memungkinkan siapa pun untuk terhubung ke instans tersebut jika mereka mengetahui kunci SSH, nama pengguna, ID proyek, zona, dan nama instans yang benar. Oleh karena itu, dukungan konsol serial interaktif harus dinonaktifkan.

Tingkat keparahan: Sedang

Pastikan bendera database 'log_duration' untuk instans Cloud SQL PostgreSQL diatur ke 'aktif'

Deskripsi: Mengaktifkan pengaturan log_hostname menyebabkan durasi setiap pernyataan yang selesai dicatat. Ini tidak mencatat teks kueri dan dengan demikian berperilaku berbeda dari bendera log_min_duration_statement. Parameter ini tidak dapat diubah setelah sesi dimulai. Memantau waktu yang diperlukan untuk menjalankan kueri dapat sangat penting dalam mengidentifikasi kueri hogging sumber daya apa pun dan menilai performa server. Langkah-langkah lebih lanjut seperti penyeimbangan beban dan penggunaan kueri yang dioptimalkan dapat diambil untuk memastikan performa dan stabilitas server. Rekomendasi ini berlaku untuk instans database PostgreSQL.

Tingkat keparahan: Rendah

Pastikan bendera database 'log_executor_stats' untuk instans Cloud SQL PostgreSQL diatur ke 'nonaktif'

Deskripsi: Eksekutor PostgreSQL bertanggung jawab untuk menjalankan rencana yang diserahkan oleh perencana PostgreSQL. Pelaksana memproses rencana secara rekursif untuk mengekstrak kumpulan baris yang diperlukan. Bendera "log_executor_stats" mengontrol penyertaan statistik performa pelaksana PostgreSQL di log PostgreSQL untuk setiap kueri. Bendera "log_executor_stats" memungkinkan metode pembuatan profil kasar untuk mencatat statistik performa eksekutor PostgreSQL, yang meskipun dapat berguna untuk pemecahan masalah, itu dapat meningkatkan jumlah log secara signifikan dan memiliki overhead performa. Rekomendasi ini berlaku untuk instans database PostgreSQL.

Tingkat keparahan: Rendah

Pastikan bendera database 'log_min_error_statement' untuk instans Cloud SQL PostgreSQL diatur ke 'Kesalahan' atau lebih ketat

Deskripsi: Bendera "log_min_error_statement" menentukan tingkat keparahan pesan minimum yang dianggap sebagai pernyataan kesalahan. Pesan untuk pernyataan kesalahan dicatat dengan pernyataan SQL. Nilai yang valid termasuk "DEBUG5," "DEBUG4," "DEBUG3," "DEBUG2," "DEBUG1," "INFO," "NOTICE," "WARNING," "ERROR," "LOG," "FATAL," dan "PANIC." Setiap tingkat keparahan mencakup tingkat berikutnya yang disebutkan di atas. Pastikan nilai ERROR atau stricter diatur. Audit membantu dalam memecahkan masalah operasional dan juga mengizinkan analisis forensik. Jika "log_min_error_statement" tidak diatur ke nilai yang benar, pesan mungkin tidak diklasifikasikan sebagai pesan kesalahan dengan tepat. Mempertimbangkan pesan log umum karena pesan kesalahan akan membuat sulit untuk menemukan kesalahan aktual dan hanya mempertimbangkan tingkat keparahan yang lebih ketat karena pesan kesalahan mungkin melewati kesalahan aktual untuk mencatat pernyataan SQL mereka. Bendera "log_min_error_statement" harus diatur ke "ERROR" atau lebih ketat. Rekomendasi ini berlaku untuk instans database PostgreSQL.

Tingkat keparahan: Rendah

Pastikan bendera database 'log_parser_stats' untuk instans Cloud SQL PostgreSQL diatur ke 'nonaktif'

Deskripsi: Perencana/pengoptimal PostgreSQL bertanggung jawab untuk mengurai dan memverifikasi sintaks setiap kueri yang diterima oleh server. Jika sintaksnya benar, "pohon urai" dibangun jika tidak, kesalahan akan dihasilkan. Bendera "log_parser_stats" mengontrol penyertaan statistik performa pengurai dalam log PostgreSQL untuk setiap kueri. Bendera "log_parser_stats" memungkinkan metode pembuatan profil kasar untuk mencatat statistik performa pengurai, yang meskipun dapat berguna untuk pemecahan masalah, itu dapat meningkatkan jumlah log secara signifikan dan memiliki overhead performa. Rekomendasi ini berlaku untuk instans database PostgreSQL.

Tingkat keparahan: Rendah

Pastikan bendera database 'log_planner_stats' untuk instans Cloud SQL PostgreSQL diatur ke 'nonaktif'

Deskripsi: Kueri SQL yang sama dapat dijalankan dengan berbagai cara dan masih menghasilkan hasil yang berbeda. Perencana/pengoptimal PostgreSQL bertanggung jawab untuk membuat rencana eksekusi yang optimal untuk setiap kueri. Bendera "log_planner_stats" mengontrol penyertaan statistik performa perencana PostgreSQL dalam log PostgreSQL untuk setiap kueri. Bendera "log_planner_stats" memungkinkan metode pembuatan profil kasar untuk mencatat statistik performa perencana PostgreSQL, yang meskipun dapat berguna untuk pemecahan masalah, itu dapat meningkatkan jumlah log secara signifikan dan memiliki overhead performa. Rekomendasi ini berlaku untuk instans database PostgreSQL.

Tingkat keparahan: Rendah

Pastikan bendera database 'log_statement_stats' untuk instans Cloud SQL PostgreSQL diatur ke 'nonaktif'

Deskripsi: Bendera "log_statement_stats" mengontrol penyertaan statistik performa ujung ke ujung kueri SQL di log PostgreSQL untuk setiap kueri. Ini tidak dapat diaktifkan dengan statistik modul lain (log_parser_stats, log_planner_stats, log_executor_stats). Bendera "log_statement_stats" memungkinkan metode pembuatan profil mentah untuk mencatat statistik performa end to end dari kueri SQL. Ini dapat berguna untuk pemecahan masalah tetapi dapat meningkatkan jumlah log secara signifikan dan memiliki overhead performa. Rekomendasi ini berlaku untuk instans database PostgreSQL.

Tingkat keparahan: Rendah

Pastikan instans Komputasi tidak memiliki alamat IP publik

Deskripsi: Instans komputasi tidak boleh dikonfigurasi untuk memiliki alamat IP eksternal. Untuk mengurangi permukaan serangan Anda, instans Komputasi tidak boleh memiliki alamat IP publik. Sebagai gantinya, instans harus dikonfigurasi di belakang load balancer, untuk meminimalkan paparan instans ke internet. Instans yang dibuat oleh GKE harus dikecualikan karena beberapa di antaranya memiliki alamat IP eksternal dan tidak dapat diubah dengan mengedit pengaturan instans. VM ini memiliki nama yang dimulai dengan gke- dan diberi label goog-gke-node.

Tingkat keparahan: Tinggi

Pastikan instans tidak dikonfigurasi untuk menggunakan akun layanan default

Deskripsi: Disarankan untuk mengonfigurasi instans Anda agar tidak menggunakan akun layanan Compute Engine default karena memiliki peran Editor pada proyek. Akun layanan Compute Engine default memiliki peran Editor pada proyek, yang memungkinkan akses baca dan tulis ke sebagian besar Google Cloud Services. Untuk mempertahankan diri dari eskalasi hak istimewa jika VM Anda disusupi dan mencegah penyerang mendapatkan akses ke semua proyek Anda, disarankan untuk tidak menggunakan akun layanan Compute Engine default. Sebagai gantinya, Anda harus membuat akun layanan baru dan hanya menetapkan izin yang diperlukan oleh instans Anda. Akun layanan Compute Engine default diberi nama [PROJECT_NUMBER]- compute@developer.gserviceaccount.com. VM yang dibuat oleh GKE harus dikecualikan. VM ini memiliki nama yang dimulai dengan gke- dan diberi label goog-gke-node.

Tingkat keparahan: Tinggi

Pastikan bahwa instans tidak dikonfigurasi untuk menggunakan akun layanan default dengan akses penuh ke semua API Cloud

Deskripsi: Untuk mendukung prinsip hak istimewa paling sedikit dan mencegah potensi eskalasi hak istimewa, disarankan agar instans tidak ditetapkan ke akun layanan default "Akun layanan default Mesin Komputasi" dengan Cakupan "Izinkan akses penuh ke semua API Cloud." Seiring dengan kemampuan untuk membuat, mengelola, dan menggunakan akun layanan kustom terkelola pengguna secara opsional, Google Compute Engine menyediakan akun layanan default "akun layanan default Compute Engine" untuk instans guna mengakses layanan cloud yang diperlukan. Peran "Editor Proyek" ditetapkan ke "Akun layanan default Mesin Komputasi" oleh karena itu, Akun layanan ini memiliki hampir semua kemampuan di semua layanan cloud kecuali penagihan. Namun, ketika "Akun layanan default Compute Engine" yang ditetapkan ke instans, akun tersebut dapat beroperasi dalam tiga cakupan.

  1. Izinkan akses default: Hanya mengizinkan akses minimum yang diperlukan untuk menjalankan Instans (Hak Istimewa Terkecil).
  2. Izinkan akses penuh ke semua API Cloud: Izinkan akses penuh ke semua API/Layanan cloud (Terlalu banyak akses).
  3. Mengatur akses untuk setiap API: Memungkinkan administrator Instans untuk memilih hanya API yang diperlukan untuk melakukan fungsionalitas bisnis tertentu yang diharapkan oleh instans Ketika instans dikonfigurasi dengan "Akun layanan default Mesin Komputasi" dengan Cakupan "Izinkan akses penuh ke semua API Cloud," berdasarkan peran IAM yang ditetapkan ke pengguna yang mengakses Instans, mungkin memungkinkan pengguna untuk melakukan operasi cloud/panggilan API yang tidak seharusnya dilakukan pengguna yang mengarah ke eskalasi hak istimewa yang berhasil. VM yang dibuat oleh GKE harus dikecualikan. VM ini memiliki nama yang dimulai dengan "gke-" dan diberi label "goog-gke-node."

Tingkat keparahan: Sedang

Pastikan penerusan IP tidak diaktifkan pada Instans

Deskripsi: Instans Mesin Komputasi tidak dapat meneruskan paket kecuali alamat IP sumber paket cocok dengan alamat IP instans. Demikian pula, GCP tidak akan mengirimkan paket yang alamat IP tujuannya berbeda dari alamat IP instans yang menerima paket. Namun, kedua kemampuan diperlukan jika Anda ingin menggunakan instans untuk membantu merutekan paket. Penerusan paket data harus dinonaktifkan untuk mencegah kehilangan data atau pengungkapan informasi. Instans Mesin Komputasi tidak dapat meneruskan paket kecuali alamat IP sumber paket cocok dengan alamat IP instans. Demikian pula, GCP tidak akan mengirimkan paket yang alamat IP tujuannya berbeda dari alamat IP instans yang menerima paket. Namun, kedua kemampuan diperlukan jika Anda ingin menggunakan instans untuk membantu merutekan paket. Untuk mengaktifkan pemeriksaan IP sumber dan tujuan ini, nonaktifkan bidang canIpForward, yang memungkinkan instans mengirim dan menerima paket dengan TUJUAN atau IP sumber yang tidak cocok.

Tingkat keparahan: Sedang

Pastikan bahwa bendera database 'log_checkpoints' untuk instans Cloud SQL PostgreSQL diatur ke 'aktif'

Deskripsi: Pastikan bahwa bendera database log_checkpoints untuk instans Cloud SQL PostgreSQL diatur ke aktif. Mengaktifkan log_checkpoints menyebabkan titik pemeriksaan dan titik mulai ulang dicatat di log server. Beberapa statistik disertakan dalam pesan log, termasuk jumlah buffer yang ditulis dan waktu yang dihabiskan untuk menulisnya. Parameter ini hanya dapat diatur dalam file postgresql.conf atau di baris perintah server. Rekomendasi ini berlaku untuk instans database PostgreSQL.

Tingkat keparahan: Rendah

Pastikan bahwa bendera database 'log_lock_waits' untuk instans Cloud SQL PostgreSQL diatur ke 'aktif'

Deskripsi: Mengaktifkan bendera "log_lock_waits" untuk instans PostgreSQL membuat log untuk setiap sesi menunggu yang memakan waktu lebih lama dari waktu "deadlock_timeout" yang dialokasikan untuk memperoleh kunci. Batas waktu kebuntuan menentukan waktu untuk menunggu pada kunci sebelum memeriksa kondisi apa pun. Eksekusi yang sering terjadi pada batas waktu kebuntuan dapat menjadi indikasi masalah yang mendasarinya. Pencatatan seperti menunggu kunci dengan mengaktifkan bendera log_lock_waits dapat digunakan untuk mengidentifikasi performa yang buruk karena penundaan penguncian atau jika SQL yang dibuat khusus mencoba kelaparan sumber daya melalui menahan kunci untuk jumlah waktu yang berlebihan. Rekomendasi ini berlaku untuk instans database PostgreSQL.

Tingkat keparahan: Rendah

Pastikan bahwa bendera database 'log_min_duration_statement' untuk instans Cloud SQL PostgreSQL diatur ke '-1'

Deskripsi: Bendera "log_min_duration_statement" menentukan jumlah minimum waktu eksekusi pernyataan dalam milidetik di mana total durasi pernyataan dicatat. Pastikan bahwa "log_min_duration_statement" dinonaktifkan, yaitu, nilai -1 diatur. Pernyataan SQL pengelogan mungkin menyertakan informasi sensitif yang seharusnya tidak direkam dalam log. Rekomendasi ini berlaku untuk instans database PostgreSQL.

Tingkat keparahan: Rendah

Pastikan bahwa bendera database 'log_min_messages' untuk instans Cloud SQL PostgreSQL diatur dengan tepat

Deskripsi: Bendera "log_min_error_statement" menentukan tingkat keparahan pesan minimum yang dianggap sebagai pernyataan kesalahan. Pesan untuk pernyataan kesalahan dicatat dengan pernyataan SQL. Nilai yang valid termasuk "DEBUG5," "DEBUG4," "DEBUG3," "DEBUG2," "DEBUG1," "INFO," "NOTICE," "WARNING," "ERROR," "LOG," "FATAL," dan "PANIC." Setiap tingkat keparahan mencakup tingkat berikutnya yang disebutkan di atas. Catatan: Untuk menonaktifkan pernyataan gagal pengelogan secara efektif, atur parameter ini ke PANIC. KESALAHAN dianggap sebagai pengaturan praktik terbaik. Perubahan hanya boleh dilakukan sesuai dengan kebijakan pengelogan organisasi. Audit membantu dalam memecahkan masalah operasional dan juga mengizinkan analisis forensik. Jika "log_min_error_statement" tidak diatur ke nilai yang benar, pesan mungkin tidak diklasifikasikan sebagai pesan kesalahan dengan tepat. Mempertimbangkan pesan log umum karena pesan kesalahan akan menyulitkan untuk menemukan kesalahan aktual, sementara hanya mempertimbangkan tingkat keparahan yang lebih ketat karena pesan kesalahan mungkin melewati kesalahan aktual untuk mencatat pernyataan SQL mereka. Bendera "log_min_error_statement" harus ditetapkan sesuai dengan kebijakan pengelogan organisasi. Rekomendasi ini berlaku untuk instans database PostgreSQL.

Tingkat keparahan: Rendah

Pastikan bahwa bendera database 'log_temp_files' untuk instans Cloud SQL PostgreSQL diatur ke '0'

Deskripsi: PostgreSQL dapat membuat file sementara untuk tindakan seperti pengurutan, hash, dan hasil kueri sementara ketika operasi ini melebihi "work_mem." Bendera "log_temp_files" mengontrol nama pengelogan dan ukuran file saat dihapus. Mengonfigurasi "log_temp_files" ke 0 menyebabkan semua informasi file sementara dicatat, sementara file log nilai positif hanya yang ukurannya lebih besar dari atau sama dengan jumlah kilobyte yang ditentukan. Nilai "-1" menonaktifkan pengelogan informasi file sementara. Jika semua file sementara tidak dicatat, mungkin lebih sulit untuk mengidentifikasi potensi masalah performa yang mungkin disebabkan oleh pengodean aplikasi yang buruk atau upaya kelaparan sumber daya yang disyaratkan.

Tingkat keparahan: Rendah

Pastikan disk VM untuk VM penting dienkripsi dengan Kunci Enkripsi yang Disediakan Pelanggan

Deskripsi: Kunci Enkripsi yang Disediakan Pelanggan (CSEK) adalah fitur di Google Cloud Storage dan Google Compute Engine. Jika Anda menyediakan kunci enkripsi Anda sendiri, Google menggunakan kunci Anda untuk melindungi kunci yang dihasilkan Google yang digunakan untuk mengenkripsi dan mendekripsi data Anda. Secara default, Google Compute Engine mengenkripsi semua data tidak aktif. Mesin Komputasi menangani dan mengelola enkripsi ini untuk Anda tanpa tindakan tambahan apa pun di bagian Anda. Namun, jika Anda ingin mengontrol dan mengelola enkripsi ini sendiri, Anda dapat menyediakan kunci enkripsi Anda sendiri. Secara default, Google Compute Engine mengenkripsi semua data tidak aktif. Mesin Komputasi menangani dan mengelola enkripsi ini untuk Anda tanpa tindakan tambahan apa pun di bagian Anda. Namun, jika Anda ingin mengontrol dan mengelola enkripsi ini sendiri, Anda dapat menyediakan kunci enkripsi Anda sendiri. Jika Anda menyediakan kunci enkripsi Anda sendiri, Compute Engine menggunakan kunci Anda untuk melindungi kunci yang dihasilkan Google yang digunakan untuk mengenkripsi dan mendekripsi data Anda. Hanya pengguna yang dapat memberikan kunci yang benar yang dapat menggunakan sumber daya yang dilindungi oleh kunci enkripsi yang disediakan pelanggan. Google tidak menyimpan kunci Anda di servernya dan tidak dapat mengakses data yang dilindungi kecuali Anda memberikan kuncinya. Ini juga berarti bahwa jika Anda lupa atau kehilangan kunci Anda, tidak ada cara bagi Google untuk memulihkan kunci atau memulihkan data apa pun yang dienkripsi dengan kunci yang hilang. Setidaknya VM penting bisnis harus memiliki disk VM yang dienkripsi dengan CSEK.

Tingkat keparahan: Sedang

Proyek GCP harus mengaktifkan provisi otomatis Azure Arc

Deskripsi: Untuk visibilitas penuh konten keamanan dari Pertahanan Microsoft untuk server, instans VM GCP harus terhubung ke Azure Arc. Untuk memastikan bahwa semua instans VM yang memenuhi syarat secara otomatis menerima Azure Arc, aktifkan provisi otomatis dari Defender untuk Cloud di tingkat proyek GCP. Pelajari lebih lanjut tentang Azure Arc, dan Microsoft Defender untuk Server.

Tingkat keparahan: Tinggi

Instans VM GCP harus terhubung ke Azure Arc

Deskripsi: Koneksi Komputer Virtual GCP Anda ke Azure Arc untuk memiliki visibilitas penuh ke konten keamanan Pertahanan Microsoft untuk Server. Pelajari lebih lanjut tentang Azure Arc, dan tentang Microsoft Defender untuk Server di lingkungan hybrid-cloud.

Tingkat keparahan: Tinggi

Instans VM GCP harus menginstal agen konfigurasi OS

Deskripsi: Untuk menerima kemampuan Defender for Servers lengkap menggunakan provisi otomatis Azure Arc, VM GCP harus mengaktifkan agen konfigurasi OS.

Tingkat keparahan: Tinggi

Fitur perbaikan otomatis kluster GKE harus diaktifkan

Deskripsi: Rekomendasi ini mengevaluasi properti manajemen kumpulan simpul untuk pasangan kunci-nilai, 'key': 'autoRepair,' 'value': true.

Tingkat keparahan: Sedang

Fitur peningkatan otomatis kluster GKE harus diaktifkan

Deskripsi: Rekomendasi ini mengevaluasi properti manajemen kumpulan simpul untuk pasangan kunci-nilai, 'kunci': 'autoUpgrade,' 'value': true.

Tingkat keparahan: Tinggi

Pemantauan pada kluster GKE harus diaktifkan

Deskripsi: Rekomendasi ini mengevaluasi apakah properti monitoringService kluster berisi lokasi yang harus digunakan Cloud Monitoring untuk menulis metrik.

Tingkat keparahan: Sedang

Rekomendasi Kontainer GCP

[Pratinjau] Gambar kontainer dalam registri GCP harus memiliki temuan kerentanan yang diselesaikan

Deskripsi: Defender untuk Cloud memindai gambar registri Anda untuk kerentanan (CVE) yang diketahui dan memberikan temuan terperinci untuk setiap gambar yang dipindai. Memindai dan memulihkan kerentanan untuk gambar kontainer dalam registri membantu menjaga rantai pasokan perangkat lunak yang aman dan andal, mengurangi risiko insiden keamanan, dan memastikan kepatuhan terhadap standar industri.

Tingkat keparahan: Tinggi

Jenis: Penilaian Kerentanan

[Pratinjau] Kontainer yang berjalan di GCP harus memiliki temuan kerentanan yang diselesaikan

Deskripsi: Defender untuk Cloud membuat inventaris semua beban kerja kontainer yang saat ini berjalan di kluster Kubernetes Anda dan menyediakan laporan kerentanan untuk beban kerja tersebut dengan mencocokkan gambar yang digunakan dan laporan kerentanan yang dibuat untuk gambar registri. Memindai dan memulihkan kerentanan beban kerja kontainer sangat penting untuk memastikan rantai pasokan perangkat lunak yang kuat dan aman, mengurangi risiko insiden keamanan, dan memastikan kepatuhan terhadap standar industri.

Tingkat keparahan: Tinggi

Jenis: Penilaian Kerentanan

Konfigurasi tingkat lanjut Defender untuk Kontainer harus diaktifkan pada konektor GCP

Deskripsi: Pertahanan Microsoft untuk Kontainer menyediakan kemampuan keamanan Kubernetes cloud-native termasuk pengerasan lingkungan, perlindungan beban kerja, dan perlindungan run-time. Untuk memastikan solusi disediakan dengan benar, dan set kemampuan lengkap tersedia, aktifkan semua pengaturan konfigurasi tingkat lanjut.

Tingkat keparahan: Tinggi

Kluster GKE harus menginstal ekstensi Pertahanan Microsoft untuk Azure Arc

Deskripsi: Ekstensi kluster Pertahanan Microsoft menyediakan kemampuan keamanan untuk kluster GKE Anda. Ekstensi mengumpulkan data dari cluster dan nodenya untuk mengidentifikasi kerentanan dan ancaman keamanan. Ekstensi berfungsi dengan Kubernetes yang mendukung Azure Arc. Pelajari lebih lanjut tentang fitur keamanan Microsoft Defender for Cloud untuk lingkungan kemas.

Tingkat keparahan: Tinggi

Kluster GKE harus menginstal ekstensi Azure Policy

Deskripsi: Ekstensi Azure Policy untuk Kubernetes memperluas Gatekeeper v3, webhook pengontrol penerimaan untuk Open Policy Agent (OPA), untuk menerapkan penegakan dan perlindungan dalam skala besar pada kluster Anda secara terpusat dan konsisten. Ekstensi berfungsi dengan Kubernetes yang mendukung Azure Arc.

Tingkat keparahan: Tinggi

Pertahanan Microsoft untuk Kontainer harus diaktifkan pada konektor GCP

Deskripsi: Pertahanan Microsoft untuk Kontainer menyediakan kemampuan keamanan Kubernetes cloud-native termasuk pengerasan lingkungan, perlindungan beban kerja, dan perlindungan run-time. Aktifkan paket Kontainer pada konektor GCP Anda, untuk memperkuat keamanan kluster Kubernetes dan memulihkan masalah keamanan. Pelajari selengkapnya tentang Microsoft Defender untuk Kontainer.

Tingkat keparahan: Tinggi

Fitur perbaikan otomatis kluster GKE harus diaktifkan

Deskripsi: Rekomendasi ini mengevaluasi properti manajemen kumpulan simpul untuk pasangan kunci-nilai, 'key': 'autoRepair,' 'value': true.

Tingkat keparahan: Sedang

Fitur peningkatan otomatis kluster GKE harus diaktifkan

Deskripsi: Rekomendasi ini mengevaluasi properti manajemen kumpulan simpul untuk pasangan kunci-nilai, 'kunci': 'autoUpgrade,' 'value': true.

Tingkat keparahan: Tinggi

Pemantauan pada kluster GKE harus diaktifkan

Deskripsi: Rekomendasi ini mengevaluasi apakah properti monitoringService kluster berisi lokasi yang harus digunakan Cloud Monitoring untuk menulis metrik.

Tingkat keparahan: Sedang

Pengelogan untuk kluster GKE harus diaktifkan

Deskripsi: Rekomendasi ini mengevaluasi apakah properti loggingService dari kluster berisi lokasi yang harus digunakan Cloud Logging untuk menulis log.

Tingkat keparahan: Tinggi

Dasbor web GKE harus dinonaktifkan

Deskripsi: Rekomendasi ini mengevaluasi bidang kubernetesDashboard dari properti addonsConfig untuk pasangan kunci-nilai, 'disabled': false.

Tingkat keparahan: Tinggi

Otorisasi Warisan harus dinonaktifkan pada kluster GKE

Deskripsi: Rekomendasi ini mengevaluasi properti warisanAbac dari kluster untuk pasangan kunci-nilai, 'diaktifkan': true.

Tingkat keparahan: Tinggi

Control Plane Authorized Networks harus diaktifkan pada kluster GKE

Deskripsi: Rekomendasi ini mengevaluasi properti masterAuthorizedNetworksConfig dari kluster untuk pasangan kunci-nilai, 'diaktifkan': false.

Tingkat keparahan: Tinggi

Kluster GKE harus mengaktifkan rentang IP alias

Deskripsi: Rekomendasi ini mengevaluasi apakah bidang useIPAliases dari ipAllocationPolicy dalam kluster diatur ke false.

Tingkat keparahan: Rendah

Kluster GKE harus mengaktifkan kluster Privat

Deskripsi: Rekomendasi ini mengevaluasi apakah bidang enablePrivateNodes properti privateClusterConfig diatur ke false.

Tingkat keparahan: Tinggi

Kebijakan jaringan harus diaktifkan pada kluster GKE

Deskripsi: Rekomendasi ini mengevaluasi bidang networkPolicy dari properti addonsConfig untuk pasangan kunci-nilai, 'dinonaktifkan': true.

Tingkat keparahan: Sedang

Rekomendasi sarana data

Semua rekomendasi keamanan sarana data Kubernetes didukung untuk GCP setelah Anda mengaktifkan Azure Policy untuk Kubernetes.

Rekomendasi Data GCP

Pastikan bendera database '3625 (bendera pelacakan)' untuk instans Cloud SQL SQL Server diatur ke 'nonaktif'

Deskripsi: Disarankan untuk mengatur bendera database "3625 (bendera pelacakan)" untuk instans Cloud SQL SQL Server ke "nonaktif." Bendera pelacakan sering digunakan untuk mendiagnosis masalah performa atau untuk men-debug prosedur tersimpan atau sistem komputer yang kompleks, tetapi mungkin juga direkomendasikan oleh Dukungan Microsoft untuk mengatasi perilaku yang berdampak negatif pada beban kerja tertentu. Semua bendera pelacakan yang didokumenkan dan yang direkomendasikan oleh Dukungan Microsoft didukung sepenuhnya di lingkungan produksi saat digunakan sebagaimana diarahkan. "3625(trace log)" Membatasi jumlah informasi yang dikembalikan kepada pengguna yang bukan anggota peran server tetap sysadmin, dengan menutupi parameter beberapa pesan kesalahan menggunakan '******.' Ini dapat membantu mencegah pengungkapan informasi sensitif. Oleh karena itu, disarankan untuk menonaktifkan bendera ini. Rekomendasi ini berlaku untuk instans database SQL Server.

Tingkat keparahan: Sedang

Pastikan bendera database 'skrip eksternal diaktifkan' untuk instans Cloud SQL SQL Server diatur ke 'nonaktif'

Deskripsi: Disarankan untuk mengatur bendera database "skrip eksternal diaktifkan" untuk instans Cloud SQL SQL Server ke nonaktif. "Skrip eksternal diaktifkan" mengaktifkan eksekusi skrip dengan ekstensi bahasa jarak jauh tertentu. Properti ini NONAKTIF secara default. Saat Layanan Analitik Tingkat Lanjut diinstal, penyiapan dapat secara opsional mengatur properti ini ke true. Karena fitur "Skrip Eksternal Diaktifkan" memungkinkan skrip eksternal ke SQL seperti file yang terletak di pustaka R untuk dijalankan, yang dapat berdampak buruk pada keamanan sistem, oleh karena itu ini harus dinonaktifkan. Rekomendasi ini berlaku untuk instans database SQL Server.

Tingkat keparahan: Tinggi

Pastikan bendera database 'akses jarak jauh' untuk instans Cloud SQL SQL Server diatur ke 'nonaktif'

Deskripsi: Disarankan untuk mengatur bendera database "akses jarak jauh" untuk instans Cloud SQL SQL Server ke "nonaktif." Opsi "akses jarak jauh" mengontrol eksekusi prosedur tersimpan dari server lokal atau jarak jauh tempat instans SQL Server berjalan. Nilai default untuk opsi ini adalah 1. Ini memberikan izin untuk menjalankan prosedur tersimpan lokal dari server jarak jauh atau prosedur tersimpan jarak jauh dari server lokal. Untuk mencegah prosedur tersimpan lokal dijalankan dari server jarak jauh atau prosedur tersimpan jarak jauh agar tidak dijalankan di server lokal, ini harus dinonaktifkan. Opsi Akses Jarak Jauh mengontrol eksekusi prosedur tersimpan lokal di server jarak jauh atau prosedur tersimpan jarak jauh di server lokal. Fungsionalitas 'Akses jarak jauh' dapat disalahgunakan untuk meluncurkan serangan Denial-of-Service (DoS) pada server jarak jauh dengan menghentikan pemuatan pemrosesan kueri ke target, oleh karena itu ini harus dinonaktifkan. Rekomendasi ini berlaku untuk instans database SQL Server.

Tingkat keparahan: Tinggi

Pastikan bendera database 'skip_show_database' untuk instans Cloud SQL Mysql diatur ke 'aktif'

Deskripsi: Disarankan untuk mengatur bendera database "skip_show_database" untuk instans Cloud SQL Mysql ke "aktif." Bendera database 'skip_show_database' mencegah orang menggunakan pernyataan SHOW DATABASES jika mereka tidak memiliki hak istimewa SHOW DATABASES. Ini dapat meningkatkan keamanan jika Anda memiliki kekhawatiran tentang pengguna yang dapat melihat database milik pengguna lain. Efeknya tergantung pada hak istimewa SHOW DATABASES: Jika nilai variabel AKTIF, pernyataan SHOW DATABASES hanya diizinkan untuk pengguna yang memiliki hak istimewa SHOW DATABASES, dan pernyataan menampilkan semua nama database. Jika nilai NONAKTIF, SHOW DATABASEs diizinkan untuk semua pengguna, tetapi hanya menampilkan nama database yang penggunanya memiliki SHOW DATABASES atau hak istimewa lainnya. Rekomendasi ini berlaku untuk instans database Mysql.

Tingkat keparahan: Rendah

Pastikan bahwa kunci enkripsi default yang dikelola Pelanggan (CMEK) ditentukan untuk semua Himpunan Data BigQuery

Deskripsi: BigQuery secara default mengenkripsi data sebagai tidak aktif dengan menggunakan Enkripsi Amplop menggunakan kunci kriptografi yang dikelola Google. Data dienkripsi menggunakan kunci enkripsi data dan kunci enkripsi data itu sendiri dienkripsi lebih lanjut menggunakan kunci enkripsi kunci. Ini mulus dan tidak memerlukan input tambahan dari pengguna. Namun, jika Anda ingin memiliki kontrol yang lebih besar, Kunci enkripsi yang dikelola pelanggan (CMEK) dapat digunakan sebagai solusi manajemen kunci enkripsi untuk BigQuery Data Sets. BigQuery secara default mengenkripsi data sebagai tidak aktif dengan menggunakan Enkripsi Amplop menggunakan kunci kriptografi yang dikelola Google. Ini mulus dan tidak memerlukan input tambahan dari pengguna. Untuk kontrol yang lebih besar atas enkripsi, kunci enkripsi yang dikelola pelanggan (CMEK) dapat digunakan sebagai solusi manajemen kunci enkripsi untuk BigQuery Data Sets. Mengatur kunci enkripsi default yang dikelola Pelanggan (CMEK) untuk himpunan data memastikan tabel apa pun yang dibuat di masa mendatang akan menggunakan CMEK yang ditentukan jika tidak ada yang lain yang disediakan. Catatan: Google tidak menyimpan kunci Anda di servernya dan tidak dapat mengakses data yang dilindungi kecuali Anda memberikan kunci. Ini juga berarti bahwa jika Anda lupa atau kehilangan kunci Anda, tidak ada cara bagi Google untuk memulihkan kunci atau memulihkan data apa pun yang dienkripsi dengan kunci yang hilang.

Tingkat keparahan: Sedang

Pastikan bahwa semua Tabel BigQuery dienkripsi dengan kunci enkripsi yang dikelola pelanggan (CMEK)

Deskripsi: BigQuery secara default mengenkripsi data sebagai tidak aktif dengan menggunakan Enkripsi Amplop menggunakan kunci kriptografi yang dikelola Google. Data dienkripsi menggunakan kunci enkripsi data dan kunci enkripsi data itu sendiri dienkripsi lebih lanjut menggunakan kunci enkripsi kunci. Ini mulus dan tidak memerlukan input tambahan dari pengguna. Namun, jika Anda ingin memiliki kontrol yang lebih besar, Kunci enkripsi yang dikelola pelanggan (CMEK) dapat digunakan sebagai solusi manajemen kunci enkripsi untuk BigQuery Data Sets. Jika CMEK digunakan, CMEK digunakan untuk mengenkripsi kunci enkripsi data alih-alih menggunakan kunci enkripsi yang dikelola google. BigQuery secara default mengenkripsi data sebagai tidak aktif dengan menggunakan Enkripsi Amplop menggunakan kunci kriptografi yang dikelola Google. Ini mulus dan tidak memerlukan input tambahan dari pengguna. Untuk kontrol yang lebih besar atas enkripsi, kunci enkripsi yang dikelola pelanggan (CMEK) dapat digunakan sebagai solusi manajemen kunci enkripsi untuk tabel BigQuery. CMEK digunakan untuk mengenkripsi kunci enkripsi data alih-alih menggunakan kunci enkripsi yang dikelola google. BigQuery menyimpan tabel dan asosiasi CMEK dan enkripsi/dekripsi dilakukan secara otomatis. Menerapkan kunci default yang dikelola Pelanggan pada himpunan data BigQuery memastikan bahwa semua tabel baru yang dibuat di masa mendatang akan dienkripsi menggunakan CMEK tetapi tabel yang ada perlu diperbarui untuk menggunakan CMEK satu per satu. Catatan: Google tidak menyimpan kunci Anda di servernya dan tidak dapat mengakses data yang dilindungi kecuali Anda memberikan kunci. Ini juga berarti bahwa jika Anda lupa atau kehilangan kunci Anda, tidak ada cara bagi Google untuk memulihkan kunci atau memulihkan data apa pun yang dienkripsi dengan kunci yang hilang.

Tingkat keparahan: Sedang

Pastikan himpunan data BigQuery tidak dapat diakses secara anonim atau dapat diakses publik

Deskripsi: Disarankan agar kebijakan IAM pada himpunan data BigQuery tidak mengizinkan akses anonim dan/atau publik. Memberikan izin kepada allUsers atau allAuthenticatedUsers memungkinkan siapa pun untuk mengakses himpunan data. Akses tersebut mungkin tidak diinginkan jika data sensitif disimpan dalam himpunan data. Oleh karena itu, pastikan akses anonim dan/atau publik ke himpunan data tidak diizinkan.

Tingkat keparahan: Tinggi

Pastikan instans database Cloud SQL dikonfigurasi dengan cadangan otomatis

Deskripsi: Disarankan agar semua instans database SQL diatur untuk mengaktifkan pencadangan otomatis. Cadangan menyediakan cara untuk memulihkan instans Cloud SQL untuk memulihkan data yang hilang atau memulihkan dari masalah dengan instans tersebut. Pencadangan otomatis perlu diatur untuk instans apa pun yang berisi data yang harus dilindungi dari kehilangan atau kerusakan. Rekomendasi ini berlaku untuk instans SQL Server, PostgreSql, MySql generasi 1, dan MySql generasi 2.

Tingkat keparahan: Tinggi

Pastikan instans database Cloud SQL tidak terbuka untuk dunia

Deskripsi: Server Database harus menerima koneksi hanya dari Jaringan/IP tepercaya dan membatasi akses dari dunia. Untuk meminimalkan permukaan serangan pada instans server Database, hanya IP tepercaya/diketahui dan diperlukan yang harus disetujui untuk menyambungkannya. Jaringan resmi tidak boleh memiliki IP/jaringan yang dikonfigurasi ke "0.0.0.0/0", yang akan memungkinkan akses ke instans dari mana saja di dunia. Perhatikan bahwa jaringan resmi hanya berlaku untuk instans dengan IP publik.

Tingkat keparahan: Tinggi

Pastikan instans database Cloud SQL tidak memiliki IP publik

Deskripsi: Disarankan untuk mengonfigurasi instans Sql Generasi Kedua untuk menggunakan IP privat alih-alih IP publik. Untuk menurunkan permukaan serangan organisasi, database Cloud SQL tidak boleh memiliki IP publik. IP privat menyediakan keamanan jaringan yang ditingkatkan dan latensi yang lebih rendah untuk aplikasi Anda.

Tingkat keparahan: Tinggi

Pastikan wadah Cloud Storage tidak dapat diakses secara anonim atau publik

Deskripsi: Disarankan agar kebijakan IAM pada wadah Cloud Storage tidak mengizinkan akses anonim atau publik. Mengizinkan akses anonim atau publik memberikan izin kepada siapa pun untuk mengakses konten wadah. Akses tersebut mungkin tidak diinginkan jika Anda menyimpan data sensitif apa pun. Oleh karena itu, pastikan bahwa akses anonim atau publik ke wadah tidak diizinkan.

Tingkat keparahan: Tinggi

Pastikan wadah Cloud Storage mengaktifkan akses tingkat bucket yang seragam

Deskripsi: Disarankan agar akses tingkat wadah seragam diaktifkan pada wadah Cloud Storage. Disarankan untuk menggunakan akses tingkat bucket seragam untuk menyatukan dan menyederhanakan cara Anda memberikan akses ke sumber daya Cloud Storage Anda. Cloud Storage menawarkan dua sistem untuk memberikan izin kepada pengguna untuk mengakses wadah dan objek Anda: Cloud Identity and Access Management (Cloud IAM) dan Access Control Lists (ACL).
Sistem ini bertindak secara paralel - agar pengguna dapat mengakses sumber daya Cloud Storage, hanya salah satu sistem yang perlu memberikan izin pengguna. Cloud IAM digunakan di seluruh Google Cloud dan memungkinkan Anda memberikan berbagai izin di tingkat wadah dan proyek. ACL hanya digunakan oleh Cloud Storage dan memiliki opsi izin terbatas, tetapi memungkinkan Anda untuk memberikan izin per objek.

Untuk mendukung sistem izin seragam, Cloud Storage memiliki akses tingkat wadah yang seragam. Menggunakan fitur ini menonaktifkan ACL untuk semua sumber daya Cloud Storage: akses ke sumber daya Cloud Storage kemudian diberikan secara eksklusif melalui Cloud IAM. Mengaktifkan akses tingkat wadah seragam menjamin bahwa jika wadah Penyimpanan tidak dapat diakses secara publik, tidak ada objek di wadah yang dapat diakses secara publik.

Tingkat keparahan: Sedang

Pastikan instans Komputasi mengaktifkan Komputasi Rahasia

Deskripsi: Google Cloud mengenkripsi data tidak aktif dan dalam transit, tetapi data pelanggan harus didekripsi untuk diproses. Komputasi Rahasia adalah teknologi terobosan yang mengenkripsi data yang sedang digunakan saat sedang diproses. Lingkungan Komputasi Rahasia menjaga data tetap dienkripsi dalam memori dan di tempat lain di luar unit pemrosesan pusat (CPU). VM Rahasia memanfaatkan fitur Secure Encrypted Virtualization (SEV) dari CPU AMD EPYC. Data pelanggan akan tetap dienkripsi saat digunakan, diindeks, dikueri, atau dilatih. Kunci enkripsi dihasilkan dalam perangkat keras, per VM, dan tidak dapat diekspor. Berkat pengoptimalan perangkat keras bawaan dari performa dan keamanan, tidak ada penalti performa yang signifikan untuk beban kerja Komputasi Rahasia. Komputasi Rahasia memungkinkan kode sensitif pelanggan dan data lain yang dienkripsi dalam memori selama pemrosesan. Google tidak memiliki akses ke kunci enkripsi. VM rahasia dapat membantu meringankan kekhawatiran tentang risiko yang terkait dengan dependensi pada infrastruktur Google atau akses orang dalam Google ke data pelanggan dengan jelas.

Tingkat keparahan: Tinggi

Pastikan bahwa kebijakan retensi pada wadah log dikonfigurasi menggunakan Bucket Lock

Deskripsi: Mengaktifkan kebijakan penyimpanan pada wadah log akan melindungi log yang disimpan dalam wadah penyimpanan cloud agar tidak ditimpa atau dihapus secara tidak sengaja. Disarankan untuk menyiapkan kebijakan retensi dan mengonfigurasi Bucket Lock pada semua wadah penyimpanan yang digunakan sebagai sink log. Log dapat diekspor dengan membuat satu atau beberapa sink yang menyertakan filter log dan tujuan. Karena Pengelogan Stackdriver menerima entri log baru, mereka dibandingkan dengan setiap sink. Jika entri log cocok dengan filter sink, salinan entri log ditulis ke tujuan. Sink dapat dikonfigurasi untuk mengekspor log dalam wadah penyimpanan. Disarankan untuk mengonfigurasi kebijakan retensi data untuk wadah penyimpanan cloud ini dan untuk mengunci kebijakan penyimpanan data; sehingga secara permanen mencegah kebijakan dikurangi atau dihapus. Dengan cara ini, jika sistem pernah disusupi oleh penyerang atau orang dalam berbahaya yang ingin menutupi jejak mereka, log aktivitas pasti dipertahankan untuk penyelidikan forensik dan keamanan.

Tingkat keparahan: Rendah

Pastikan instans database Cloud SQL memerlukan semua koneksi masuk untuk menggunakan SSL

Deskripsi: Disarankan untuk memberlakukan semua koneksi masuk ke instans database SQL untuk menggunakan SSL. Koneksi database SQL jika berhasil terperangkap (MITM); dapat mengungkapkan data sensitif seperti kredensial, kueri database, output kueri, dll. Untuk keamanan, disarankan untuk selalu menggunakan enkripsi SSL saat menyambungkan ke instans Anda. Rekomendasi ini berlaku untuk instans Postgresql, MySql generasi 1, dan MySql generasi 2.

Tingkat keparahan: Tinggi

Pastikan bahwa bendera database 'autentikasi database yang terkandung' untuk Cloud SQL pada instans SQL Server diatur ke 'nonaktif'

Deskripsi: Disarankan untuk mengatur bendera database "autentikasi database terkandung" untuk Cloud SQL pada instans SQL Server diatur ke "nonaktif." Database mandiri mencakup semua pengaturan database dan metadata yang diperlukan untuk menentukan database dan tidak memiliki dependensi konfigurasi pada instans Mesin Database tempat database diinstal. Pengguna dapat tersambung ke database tanpa mengautentikasi login di tingkat Mesin Database. Mengisolasi database dari Mesin Database memungkinkan untuk dengan mudah memindahkan database ke instans SQL Server lain. Database yang terkandung memiliki beberapa ancaman unik yang harus dipahami dan dimitigasi oleh administrator SQL Server Database Engine. Sebagian besar ancaman terkait dengan proses autentikasi USER WITH PASSWORD, yang memindahkan batas autentikasi dari tingkat Mesin Database ke tingkat database, oleh karena itu disarankan untuk menonaktifkan bendera ini. Rekomendasi ini berlaku untuk instans database SQL Server.

Tingkat keparahan: Sedang

Pastikan bahwa bendera database 'rantai kepemilikan silang db' untuk instans Cloud SQL SQL Server diatur ke 'nonaktif'

Deskripsi: Disarankan untuk mengatur bendera database "rantai kepemilikan silang db" untuk instans Cloud SQL SQL Server ke "nonaktif." Gunakan opsi "kepemilikan lintas db" untuk menautkan untuk mengonfigurasi rantai kepemilikan lintas database untuk instans Microsoft SQL Server. Opsi server ini memungkinkan Anda mengontrol rantai kepemilikan lintas database di tingkat database atau untuk memungkinkan rantai kepemilikan lintas database untuk semua database. Mengaktifkan "kepemilikan lintas db" tidak disarankan kecuali semua database yang dihosting oleh instans SQL Server harus berpartisipasi dalam rantai kepemilikan lintas database dan Anda menyadari implikasi keamanan dari pengaturan ini. Rekomendasi ini berlaku untuk instans database SQL Server.

Tingkat keparahan: Sedang

Pastikan bahwa bendera database 'local_infile' untuk instans Cloud SQL Mysql diatur ke 'nonaktif'

Deskripsi: Disarankan untuk mengatur bendera database local_infile untuk instans Cloud SQL MySQL ke nonaktif. Bendera local_infile mengontrol kemampuan LOKAL sisi server untuk pernyataan LOAD DATA. Bergantung pada pengaturan local_infile, server menolak atau mengizinkan pemuatan data lokal oleh klien yang mengaktifkan LOKAL di sisi klien. Untuk secara eksplisit menyebabkan server menolak pernyataan LOAD DATA LOCAL (terlepas dari bagaimana program dan pustaka klien dikonfigurasi pada waktu build atau runtime), mulai mysqld dengan local_infile dinonaktifkan. local_infile juga dapat diatur pada runtime. Karena masalah keamanan yang terkait dengan bendera local_infile, disarankan untuk menonaktifkannya. Rekomendasi ini berlaku untuk instans database MySQL.

Tingkat keparahan: Sedang

Pastikan filter metrik log dan pemberitahuan ada untuk perubahan izin IAM Cloud Storage

Deskripsi: Disarankan agar filter metrik dan alarm dibuat untuk perubahan IAM Wadah Penyimpanan Cloud. Memantau perubahan pada izin wadah penyimpanan cloud dapat mengurangi waktu yang diperlukan untuk mendeteksi dan memperbaiki izin pada wadah dan objek penyimpanan cloud sensitif di dalam wadah.

Tingkat keparahan: Rendah

Pastikan filter metrik log dan pemberitahuan ada untuk perubahan konfigurasi instans SQL

Deskripsi: Disarankan agar filter metrik dan alarm dibuat untuk perubahan konfigurasi instans SQL. Memantau perubahan konfigurasi instans SQL dapat mengurangi waktu yang diperlukan untuk mendeteksi dan memperbaiki kesalahan konfigurasi yang dilakukan di server SQL. Di bawah ini adalah beberapa opsi yang dapat dikonfigurasi yang mungkin berdampak pada postur keamanan instans SQL:

  • Mengaktifkan pencadangan otomatis dan ketersediaan tinggi: Kesalahan konfigurasi mungkin berdampak buruk pada kelangsungan bisnis, pemulihan bencana, dan ketersediaan tinggi
  • Mengotorisasi jaringan: Kesalahan konfigurasi dapat meningkatkan paparan ke jaringan yang tidak tepercaya

Tingkat keparahan: Rendah

Pastikan hanya ada kunci akun layanan yang dikelola GCP untuk setiap akun layanan

Deskripsi: Akun layanan terkelola pengguna tidak boleh memiliki kunci yang dikelola pengguna. Siapa pun yang memiliki akses ke kunci akan dapat mengakses sumber daya melalui akun layanan. Kunci yang dikelola GCP digunakan oleh layanan Platform Cloud seperti App Engine dan Compute Engine. Kunci ini tidak dapat diunduh. Google akan menyimpan kunci dan memutarnya secara otomatis setiap minggu. Kunci yang dikelola pengguna dibuat, diunduh, dan dikelola oleh pengguna. Mereka kedaluwarsa 10 tahun dari pembuatan. Untuk kunci yang dikelola pengguna, pengguna harus mengambil kepemilikan aktivitas manajemen kunci, yang meliputi:

  • Penyimpanan kunci
  • Distribusi kunci
  • Pencabutan kunci
  • Rotasi kunci
  • Melindungi kunci dari pengguna yang tidak sah
  • Pemulihan kunci

Bahkan dengan tindakan pencegahan pemilik kunci, kunci dapat dengan mudah dibocorkan oleh malpraktik pengembangan umum seperti memeriksa kunci ke dalam kode sumber atau meninggalkannya di direktori Unduhan, atau secara tidak sengaja meninggalkannya di blog/saluran dukungan. Disarankan untuk mencegah kunci akun layanan yang dikelola pengguna.

Tingkat keparahan: Rendah

Pastikan bendera database 'koneksi pengguna' untuk instans Cloud SQL SQL Server diatur sebagaimana mewajarkan

Deskripsi: Disarankan untuk mengatur bendera database "koneksi pengguna" untuk instans Cloud SQL SQL Server sesuai dengan nilai yang ditentukan organisasi. Opsi "koneksi pengguna" menentukan jumlah maksimum koneksi pengguna simultan yang diizinkan pada instans SQL Server. Jumlah aktual koneksi pengguna yang diizinkan juga tergantung pada versi SQL Server yang Anda gunakan, dan juga batas aplikasi atau aplikasi dan perangkat keras Anda. SQL Server memungkinkan maksimum 32.767 koneksi pengguna. Karena koneksi pengguna adalah opsi dinamis (mengonfigurasi sendiri), SQL Server menyesuaikan jumlah maksimum koneksi pengguna secara otomatis sesuai kebutuhan, hingga nilai maksimum yang diizinkan. Misalnya, jika hanya 10 pengguna yang masuk, 10 objek koneksi pengguna dialokasikan. Dalam kebanyakan kasus, Anda tidak perlu mengubah nilai untuk opsi ini. Defaultnya adalah 0, yang berarti bahwa koneksi pengguna maksimum (32.767) diizinkan. Rekomendasi ini berlaku untuk instans database SQL Server.

Tingkat keparahan: Rendah

Pastikan bendera database 'opsi pengguna' untuk instans Cloud SQL SQL Server tidak dikonfigurasi

Deskripsi: Disarankan agar, bendera database "opsi pengguna" untuk instans Cloud SQL SQL Server tidak boleh dikonfigurasi. Opsi "opsi pengguna" menentukan default global untuk semua pengguna. Daftar opsi pemrosesan kueri default dibuat selama durasi sesi kerja pengguna. Opsi opsi pengguna memungkinkan Anda mengubah nilai default opsi SET (jika pengaturan default server tidak sesuai). Pengguna dapat mengambil alih default ini dengan menggunakan pernyataan SET. Anda dapat mengonfigurasi opsi pengguna secara dinamis untuk login baru. Setelah Anda mengubah pengaturan opsi pengguna, sesi masuk baru menggunakan pengaturan baru; Sesi masuk saat ini tidak terpengaruh. Rekomendasi ini berlaku untuk instans database SQL Server.

Tingkat keparahan: Rendah

Pengelogan untuk kluster GKE harus diaktifkan

Deskripsi: Rekomendasi ini mengevaluasi apakah properti loggingService dari kluster berisi lokasi yang harus digunakan Cloud Logging untuk menulis log.

Tingkat keparahan: Tinggi

Penerapan versi objek harus diaktifkan pada wadah penyimpanan tempat sink dikonfigurasi

Deskripsi: Rekomendasi ini mengevaluasi apakah bidang yang diaktifkan di properti penerapan versi wadah diatur ke true.

Tingkat keparahan: Tinggi

Identitas yang disediakan berlebihan dalam proyek harus diselidiki untuk mengurangi Indeks Creep Izin (PCI)

Deskripsi: Identitas yang disediakan berlebihan dalam proyek harus diselidiki untuk mengurangi Indeks Creep Izin (PCI) dan untuk melindungi infrastruktur Anda. Kurangi PCI dengan menghapus penetapan izin berisiko tinggi yang tidak digunakan. PCI tinggi mencerminkan risiko yang terkait dengan identitas dengan izin yang melebihi penggunaan normal atau yang diperlukan.

Tingkat keparahan: Sedang

Proyek yang memiliki kunci kriptografi seharusnya tidak memiliki pengguna dengan izin Pemilik

Deskripsi: Rekomendasi ini mengevaluasi kebijakan izinkan IAM dalam metadata proyek untuk prinsipal yang diberi peran/Pemilik.

Tingkat keparahan: Sedang

Wadah penyimpanan yang digunakan sebagai sink log tidak boleh dapat diakses publik

Deskripsi: Rekomendasi ini mengevaluasi kebijakan IAM wadah untuk allUsers utama atau allAuthenticatedUsers, yang memberikan akses publik.

Tingkat keparahan: Tinggi

Rekomendasi GCP IdentityAndAccess

Kunci kriptografi tidak boleh memiliki lebih dari tiga pengguna

Deskripsi: Rekomendasi ini mengevaluasi kebijakan IAM untuk cincin kunci, proyek, dan organisasi, dan mengambil prinsipal dengan peran yang memungkinkan mereka mengenkripsi, dekripsi, atau tanda tangani data menggunakan kunci Cloud KMS: peran/pemilik, peran/cloudkms.cryptoKeyEncrypterDecrypter, roles/cloudkms.cryptoKeyEncrypter, roles/cloudkms.cryptoKeyDecrypter, roles/cloudkms.signer, dan roles/cloudkms.signerVerifier.

Tingkat keparahan: Sedang

Pastikan kunci API tidak dibuat untuk proyek

Deskripsi: Kunci tidak aman karena dapat dilihat secara publik, seperti dari dalam browser, atau dapat diakses di perangkat tempat kunci berada. Disarankan untuk menggunakan alur autentikasi standar sebagai gantinya.

Risiko keamanan yang terlibat dalam penggunaan KUNCI API muncul di bawah ini:

  1. Kunci API adalah string terenkripsi sederhana
  2. Kunci API tidak mengidentifikasi pengguna atau aplikasi yang membuat permintaan API
  3. Kunci API biasanya dapat diakses oleh klien, sehingga mudah untuk menemukan dan mencuri kunci API

Untuk menghindari risiko keamanan dalam menggunakan kunci API, disarankan untuk menggunakan alur autentikasi standar sebagai gantinya.

Tingkat keparahan: Tinggi

Pastikan kunci API dibatasi hanya untuk API yang memerlukan akses aplikasi

Deskripsi: Kunci API tidak aman karena dapat dilihat secara publik, seperti dari dalam browser, atau dapat diakses di perangkat tempat kunci berada. Disarankan untuk membatasi kunci API untuk menggunakan (panggilan) hanya API yang diperlukan oleh aplikasi.

Risiko keamanan yang terlibat dalam penggunaan API-Keys di bawah ini:

  1. Kunci API adalah string terenkripsi sederhana
  2. Kunci API tidak mengidentifikasi pengguna atau aplikasi yang membuat permintaan API
  3. Kunci API biasanya dapat diakses oleh klien, sehingga mudah untuk menemukan dan mencuri kunci API

Mengingat potensi risiko ini, Google merekomendasikan penggunaan alur autentikasi standar alih-alih API-Keys. Namun, ada kasus terbatas di mana kunci API lebih tepat. Misalnya, jika ada aplikasi seluler yang perlu menggunakan Google Cloud Translation API, tetapi tidak memerlukan server backend, kunci API adalah cara paling sederhana untuk mengautentikasi ke API tersebut.

Untuk mengurangi permukaan serangan dengan memberikan hak istimewa paling sedikit, KUNCI API dapat dibatasi untuk menggunakan (panggilan) hanya API yang diperlukan oleh aplikasi.

Tingkat keparahan: Tinggi

Pastikan kunci API dibatasi untuk digunakan hanya oleh Host dan Aplikasi tertentu

Deskripsi: Kunci yang tidak dibatasi tidak aman karena dapat dilihat secara publik, seperti dari dalam browser, atau dapat diakses di perangkat tempat kunci berada. Disarankan untuk membatasi penggunaan kunci API ke host tepercaya, perujuk HTTP, dan aplikasi.

Risiko keamanan yang terlibat dalam penggunaan KUNCI API muncul di bawah ini:

  1. Kunci API adalah string terenkripsi sederhana
  2. Kunci API tidak mengidentifikasi pengguna atau aplikasi yang membuat permintaan API
  3. Kunci API biasanya dapat diakses oleh klien, sehingga mudah untuk menemukan dan mencuri kunci API

Mengingat potensi risiko ini, Google merekomendasikan penggunaan alur autentikasi standar alih-alih kunci API. Namun, ada kasus terbatas di mana kunci API lebih tepat. Misalnya, jika ada aplikasi seluler yang perlu menggunakan Google Cloud Translation API, tetapi tidak memerlukan server backend, kunci API adalah cara paling sederhana untuk mengautentikasi ke API tersebut.

Untuk mengurangi vektor serangan, KUNCI API hanya dapat dibatasi untuk host tepercaya, perujuk HTTP, dan aplikasi.

Tingkat keparahan: Tinggi

Pastikan kunci API diputar setiap 90 hari

Deskripsi: Disarankan untuk memutar kunci API setiap 90 hari.

Risiko keamanan yang terlibat dalam menggunakan API-Keys tercantum di bawah ini:

  1. Kunci API adalah string terenkripsi sederhana
  2. Kunci API tidak mengidentifikasi pengguna atau aplikasi yang membuat permintaan API
  3. Kunci API biasanya dapat diakses oleh klien, sehingga mudah untuk menemukan dan mencuri kunci API

Karena potensi risiko ini, Google merekomendasikan penggunaan alur autentikasi standar alih-alih Kunci API. Namun, ada kasus terbatas di mana kunci API lebih tepat. Misalnya, jika ada aplikasi seluler yang perlu menggunakan Google Cloud Translation API, tetapi tidak memerlukan server backend, kunci API adalah cara paling sederhana untuk mengautentikasi ke API tersebut.

Setelah kunci dicuri, kunci tidak memiliki kedaluwarsa, yang berarti kunci tersebut mungkin digunakan tanpa batas waktu kecuali pemilik proyek mencabut atau meregenerasi kunci. Memutar kunci API akan mengurangi jendela peluang untuk kunci akses yang terkait dengan akun yang disusupi atau dihentikan untuk digunakan.

Kunci API harus diputar untuk memastikan bahwa data tidak dapat diakses dengan kunci lama yang mungkin hilang, retak, atau dicuri.

Tingkat keparahan: Tinggi

Pastikan kunci enkripsi KMS diputar dalam jangka waktu 90 hari

Deskripsi: Google Cloud Key Management Service menyimpan kunci kriptografi dalam struktur hierarkis yang dirancang untuk manajemen kontrol akses yang berguna dan elegan. Format untuk jadwal rotasi tergantung pada pustaka klien yang digunakan. Untuk alat baris perintah gcloud, waktu rotasi berikutnya harus dalam format "ISO" atau "RFC3339", dan periode rotasi harus dalam bentuk "INTEGER[UNIT]," di mana unit dapat berupa salah satu detik ,menit (m), jam (h), atau hari (d). Atur periode rotasi kunci dan waktu mulai. Kunci dapat dibuat dengan "periode rotasi" tertentu, yang merupakan waktu antara kapan versi kunci baru dibuat secara otomatis. Kunci juga dapat dibuat dengan waktu rotasi berikutnya yang ditentukan. Kunci adalah objek bernama yang mewakili "kunci kriptografi" yang digunakan untuk tujuan tertentu. Materi utama, bit aktual yang digunakan untuk "enkripsi," dapat berubah dari waktu ke waktu saat versi kunci baru dibuat. Kunci digunakan untuk melindungi beberapa "corpus data." Kumpulan file dapat dienkripsi dengan kunci yang sama dan orang-orang dengan izin "dekripsi" pada kunci tersebut akan dapat mendekripsi file-file tersebut. Oleh karena itu, perlu untuk memastikan "periode rotasi" diatur ke waktu tertentu.

Tingkat keparahan: Sedang

Pastikan filter metrik log dan pemberitahuan ada untuk penetapan/perubahan kepemilikan proyek

Deskripsi: Untuk mencegah penetapan kepemilikan proyek yang tidak perlu kepada pengguna/akun layanan dan penyalahgunaan proyek dan sumber daya lebih lanjut, semua tugas "peran/Pemilik" harus dipantau. Anggota (pengguna/Akun Layanan) dengan penetapan peran ke peran primitif "peran/Pemilik" adalah pemilik proyek. Pemilik proyek memiliki semua hak istimewa pada proyek tempat peran tersebut berada. Berikut ini dirangkum di bawah ini:

  • Semua izin penampil pada semua Layanan GCP dalam proyek
  • Izin untuk tindakan yang mengubah status semua layanan GCP dalam proyek
  • Mengelola peran dan izin untuk proyek dan semua sumber daya dalam proyek
  • Menyiapkan penagihan untuk proyek yang Memberikan peran pemilik kepada anggota (pengguna/Akun Layanan) akan memungkinkan anggota tersebut mengubah kebijakan Manajemen Identitas dan Akses (IAM). Oleh karena itu, berikan peran pemilik hanya jika anggota memiliki tujuan yang sah untuk mengelola kebijakan IAM. Ini karena kebijakan IAM proyek berisi data kontrol akses sensitif. Memiliki sekumpulan pengguna minimal yang diizinkan untuk mengelola kebijakan IAM akan menyederhanakan audit apa pun yang mungkin diperlukan. Kepemilikan proyek memiliki tingkat hak istimewa tertinggi pada proyek. Untuk menghindari penyalahgunaan sumber daya proyek, tindakan penetapan/perubahan kepemilikan proyek yang disebutkan di atas harus dipantau dan diberi tahu kepada penerima yang bersangkutan.
  • Mengirim undangan kepemilikan proyek
  • Penerimaan/Penolakan undangan kepemilikan proyek oleh pengguna
  • role\Owner Menambahkan ke pengguna/akun layanan
  • Menghapus akun pengguna/Layanan dari role\Owner

Tingkat keparahan: Rendah

Memastikan oslogin diaktifkan untuk Proyek

Deskripsi: Mengaktifkan login OS mengikat sertifikat SSH ke pengguna IAM dan memfasilitasi manajemen sertifikat SSH yang efektif. Mengaktifkan osLogin memastikan bahwa kunci SSH yang digunakan untuk menyambungkan ke instans dipetakan dengan pengguna IAM. Mencabut akses ke pengguna IAM akan mencabut semua kunci SSH yang terkait dengan pengguna tertentu. Ini memfasilitasi manajemen pasangan kunci SSH terpusat dan otomatis, yang berguna dalam menangani kasus seperti respons terhadap pasangan kunci SSH yang disusupi dan/atau pencabutan pengguna eksternal/pihak ketiga/Vendor. Untuk mengetahui instans mana yang menyebabkan proyek tidak sehat, lihat rekomendasi "Pastikan oslogin diaktifkan untuk semua instans."

Tingkat keparahan: Sedang

Pastikan oslogin diaktifkan untuk semua instans

Deskripsi: Mengaktifkan login OS mengikat sertifikat SSH ke pengguna IAM dan memfasilitasi manajemen sertifikat SSH yang efektif. Mengaktifkan osLogin memastikan bahwa kunci SSH yang digunakan untuk menyambungkan ke instans dipetakan dengan pengguna IAM. Mencabut akses ke pengguna IAM akan mencabut semua kunci SSH yang terkait dengan pengguna tertentu. Ini memfasilitasi manajemen pasangan kunci SSH terpusat dan otomatis, yang berguna dalam menangani kasus seperti respons terhadap pasangan kunci SSH yang disusupi dan/atau pencabutan pengguna eksternal/pihak ketiga/Vendor.

Tingkat keparahan: Sedang

Pastikan Pengelogan Audit Cloud dikonfigurasi dengan benar di semua layanan dan semua pengguna dari proyek

Deskripsi: Disarankan agar Pengelogan Audit Cloud dikonfigurasi untuk melacak semua aktivitas admin dan membaca, menulis akses ke data pengguna.

Pengelogan Audit Cloud mempertahankan dua log audit untuk setiap proyek, folder, dan organisasi: Aktivitas Admin dan Akses Data.

  1. Log Aktivitas Admin berisi entri log untuk panggilan API atau tindakan administratif lainnya yang mengubah konfigurasi atau metadata sumber daya. Log audit Aktivitas Admin diaktifkan untuk semua layanan dan tidak dapat dikonfigurasi.
  2. Log audit Data Access merekam panggilan API yang membuat, memodifikasi, atau membaca data yang disediakan pengguna. Ini dinonaktifkan secara default dan harus diaktifkan. Ada tiga jenis informasi log audit Akses Data:
  • Baca admin: Merekam operasi yang membaca metadata atau informasi konfigurasi. Log audit Aktivitas Admin mencatat penulisan metadata dan informasi konfigurasi yang tidak dapat dinonaktifkan.
  • Baca data: Merekam operasi yang membaca data yang disediakan pengguna.
  • Penulisan data: Operasi rekaman yang menulis data yang disediakan pengguna.

Disarankan untuk memiliki konfigurasi audit default yang efektif yang dikonfigurasi sedih sehingga:

  1. logtype diatur ke DATA_READ (untuk mencatat pelacakan aktivitas pengguna) dan DATA_WRITES (untuk mencatat perubahan/mengubah data pengguna).
  2. konfigurasi audit diaktifkan untuk semua layanan yang didukung oleh fitur log audit Akses Data.
  3. Log harus diambil untuk semua pengguna, yaitu, tidak ada pengguna yang dikecualikan di salah satu bagian konfigurasi audit. Ini akan memastikan pengesampingan konfigurasi audit tidak akan bertentangan dengan persyaratan.

Tingkat keparahan: Sedang

Pastikan cryptokey Cloud KMS tidak dapat diakses secara anonim atau publik

Deskripsi: Disarankan agar kebijakan IAM di Cloud KMS "cryptokeys" harus membatasi akses anonim dan/atau publik. Memberikan izin ke "allUsers" atau "allAuthenticatedUsers" memungkinkan siapa pun untuk mengakses himpunan data. Akses tersebut mungkin tidak diinginkan jika data sensitif disimpan di lokasi tersebut. Dalam hal ini, pastikan bahwa akses anonim dan/atau publik ke "cryptokey" Cloud KMS tidak diizinkan.

Tingkat keparahan: Tinggi

Pastikan kredensial masuk perusahaan digunakan

Deskripsi: Gunakan kredensial masuk perusahaan alih-alih akun pribadi, seperti akun Gmail. Sebaiknya akun Google perusahaan yang dikelola sepenuhnya digunakan untuk meningkatkan visibilitas, audit, dan kontrol akses ke sumber daya Cloud Platform. Akun Gmail yang berbasis di luar organisasi pengguna, seperti akun pribadi, tidak boleh digunakan untuk tujuan bisnis.

Tingkat keparahan: Tinggi

Pastikan bahwa pengguna IAM tidak diberi peran Pengguna Akun Layanan atau Pembuat Token Akun Layanan di tingkat proyek

Deskripsi: Disarankan untuk menetapkan peran "Pengguna Akun Layanan (iam.serviceAccountUser)" dan "Pembuat Token Akun Layanan (iam.serviceAccountTokenCreator)" kepada pengguna untuk akun layanan tertentu daripada menetapkan peran kepada pengguna di tingkat proyek. Akun layanan adalah akun Google khusus milik aplikasi atau komputer virtual (VM), bukan untuk pengguna akhir individual. Application/VM-Instance menggunakan akun layanan untuk memanggil Google API layanan sehingga pengguna tidak terlibat secara langsung. Selain menjadi identitas, akun layanan adalah sumber daya yang memiliki kebijakan IAM yang melekat padanya. Kebijakan ini menentukan siapa yang dapat menggunakan akun layanan. Pengguna dengan peran IAM untuk memperbarui instans App Engine dan Compute Engine (seperti App Engine Deployer atau Compute Instance Admin) dapat secara efektif menjalankan kode sebagai akun layanan yang digunakan untuk menjalankan instans ini, dan secara tidak langsung mendapatkan akses ke semua sumber daya yang dapat diakses oleh akun layanan. Demikian pula, akses SSH ke instans Mesin Komputasi mungkin juga memberikan kemampuan untuk menjalankan kode sebagai akun instans/Layanan tersebut. Berdasarkan kebutuhan bisnis, mungkin ada beberapa akun layanan yang dikelola pengguna yang dikonfigurasi untuk proyek. Memberikan peran "iam.serviceAccountUser" atau "iam.serviceAserviceAccountTokenCreatorccountUser" kepada pengguna untuk proyek memberi pengguna akses ke semua akun layanan dalam proyek, termasuk akun layanan yang mungkin dibuat di masa mendatang. Hal ini dapat mengakibatkan peningkatan hak istimewa dengan menggunakan akun layanan dan "Instans Mesin Komputasi" yang sesuai. Untuk menerapkan praktik terbaik "hak istimewa paling sedikit", pengguna IAM tidak boleh diberi peran "Pengguna Akun Layanan" atau "Pembuat Token Akun Layanan" di tingkat proyek. Sebaliknya, peran ini harus ditetapkan kepada pengguna untuk akun layanan tertentu, memberikan akses pengguna tersebut ke akun layanan. "Pengguna Akun Layanan" memungkinkan pengguna untuk mengikat akun layanan ke layanan pekerjaan yang berjalan lama, sedangkan peran "Pembuat Token Akun Layanan" memungkinkan pengguna untuk langsung meniru (atau menegaskan) identitas akun layanan.

Tingkat keparahan: Sedang

Deskripsi: Disarankan agar prinsip 'Pemisahan Tugas' diberlakukan saat menetapkan peran terkait KMS kepada pengguna. Peran IAM bawaan/yang telah ditentukan sebelumnya "Cloud KMS Admin" memungkinkan pengguna/identitas untuk membuat, menghapus, dan mengelola akun layanan. Peran IAM bawaan/yang telah ditentukan sebelumnya "Cloud KMS CryptoKey Encrypter/Decrypter" memungkinkan pengguna/identitas (dengan hak istimewa yang memadai pada sumber daya yang bersangkutan) untuk mengenkripsi dan mendekripsi data tidak aktif menggunakan kunci enkripsi. Peran IAM bawaan/yang telah ditentukan sebelumnya Cloud KMS CryptoKey Encrypter memungkinkan pengguna/identitas (dengan hak istimewa yang memadai pada sumber daya yang bersangkutan) untuk mengenkripsi data tidak aktif menggunakan kunci enkripsi. Peran IAM bawaan/yang telah ditentukan sebelumnya "Cloud KMS CryptoKey Decrypter" memungkinkan pengguna/identitas (dengan hak istimewa yang memadai pada sumber daya yang bersangkutan) untuk mendekripsi data tidak aktif menggunakan kunci enkripsi. Pemisahan tugas adalah konsep untuk memastikan bahwa satu individu tidak memiliki semua izin yang diperlukan untuk dapat menyelesaikan tindakan berbahaya. Di Cloud KMS, ini bisa menjadi tindakan seperti menggunakan kunci untuk mengakses dan mendekripsi data yang biasanya tidak dapat diakses pengguna. Pemisahan tugas adalah kontrol bisnis yang biasanya digunakan dalam organisasi yang lebih besar, dimaksudkan untuk membantu menghindari insiden dan kesalahan keamanan atau privasi. Ini dianggap sebagai praktik terbaik. Tidak ada pengguna yang harus memiliki Admin Cloud KMS dan salah satu peran "Cloud KMS CryptoKey Encrypter/Decrypter," "Cloud KMS CryptoKey Encrypter," "Cloud KMS CryptoKey Decrypter" yang ditetapkan pada saat yang sama.

Tingkat keparahan: Tinggi

Deskripsi: Disarankan agar prinsip 'Pemisahan Tugas' diberlakukan saat menetapkan peran terkait akun layanan kepada pengguna. Peran IAM bawaan/yang telah ditentukan sebelumnya "Admin Akun Layanan" memungkinkan pengguna/identitas untuk membuat, menghapus, dan mengelola akun layanan. Peran IAM bawaan/yang telah ditentukan sebelumnya "Pengguna Akun Layanan" memungkinkan pengguna/identitas (dengan hak istimewa yang memadai pada Compute dan App Engine) untuk menetapkan akun layanan ke Apps/Compute Instances. Pemisahan tugas adalah konsep untuk memastikan bahwa satu individu tidak memiliki semua izin yang diperlukan untuk dapat menyelesaikan tindakan berbahaya. Di Cloud IAM - akun layanan, ini bisa menjadi tindakan seperti menggunakan akun layanan untuk mengakses sumber daya yang biasanya tidak dapat diakses pengguna. Pemisahan tugas adalah kontrol bisnis yang biasanya digunakan dalam organisasi yang lebih besar, dimaksudkan untuk membantu menghindari insiden dan kesalahan keamanan atau privasi. Ini dianggap sebagai praktik terbaik. Tidak ada pengguna yang harus memiliki peran "Admin Akun Layanan" dan "Pengguna Akun Layanan" yang ditetapkan secara bersamaan.

Tingkat keparahan: Sedang

Pastikan Akun Layanan tidak memiliki hak istimewa Admin

Deskripsi: Akun layanan adalah akun Google khusus milik aplikasi atau VM, bukan pengguna akhir individual. Aplikasi ini menggunakan akun layanan untuk memanggil Google API layanan sehingga pengguna tidak terlibat secara langsung. Disarankan untuk tidak menggunakan akses admin untuk ServiceAccount. Akun layanan mewakili keamanan tingkat layanan Sumber Daya (aplikasi atau VM) yang dapat ditentukan oleh peran yang ditetapkan untuknya. Mendaftarkan ServiceAccount dengan hak Admin memberikan akses penuh ke aplikasi atau VM yang ditetapkan. Pemegang Akses ServiceAccount dapat melakukan tindakan penting seperti menghapus, memperbarui pengaturan perubahan, dll. tanpa intervensi pengguna. Untuk alasan ini, disarankan agar akun layanan tidak memiliki hak Admin.

Tingkat keparahan: Sedang

Pastikan bahwa sink dikonfigurasi untuk semua entri log

Deskripsi: Disarankan untuk membuat sink yang akan mengekspor salinan semua entri log. Ini dapat membantu mengagregasi log dari beberapa proyek dan mengekspornya ke Security Information and Event Management (SIEM). Entri log disimpan di Pengelogan Stackdriver. Untuk mengagregasi log, ekspor ke SIEM. Agar lebih lama, disarankan untuk menyiapkan sink log. Mengekspor melibatkan penulisan filter yang memilih entri log untuk diekspor, dan memilih tujuan di Cloud Storage, BigQuery, atau Cloud Pub/Sub. Filter dan tujuan disimpan dalam objek yang disebut sink. Untuk memastikan semua entri log diekspor ke sink, pastikan bahwa tidak ada filter yang dikonfigurasi untuk sink. Sink dapat dibuat dalam proyek, organisasi, folder, dan akun penagihan.

Tingkat keparahan: Rendah

Pastikan filter metrik log dan pemberitahuan ada untuk perubahan Konfigurasi Audit

Deskripsi: Layanan Google Cloud Platform (GCP) menulis entri log audit ke log Aktivitas Admin dan Akses Data untuk membantu menjawab pertanyaan, "siapa yang melakukan apa, di mana, dan kapan?" dalam proyek GCP. Informasi rekaman pencatatan audit cloud mencakup identitas pemanggil API, waktu panggilan API, alamat IP sumber pemanggil API, parameter permintaan, dan elemen respons yang dikembalikan oleh layanan GCP. Pengelogan audit cloud menyediakan riwayat panggilan API GCP untuk akun, termasuk panggilan API yang dilakukan melalui konsol, SDK, alat baris perintah, dan layanan GCP lainnya. Aktivitas admin dan log akses data yang dihasilkan oleh pengelogan audit cloud memungkinkan analisis keamanan, pelacakan perubahan sumber daya, dan audit kepatuhan. Mengonfigurasi filter metrik dan pemberitahuan untuk perubahan konfigurasi audit memastikan status konfigurasi audit yang direkomendasikan dipertahankan sehingga semua aktivitas dalam proyek dapat diaudit kapan saja.

Tingkat keparahan: Rendah

Pastikan filter metrik log dan pemberitahuan ada untuk perubahan Peran Kustom

Deskripsi: Disarankan agar filter metrik dan alarm dibuat untuk perubahan pada pembuatan peran, penghapusan, dan pembaruan aktivitas Manajemen Identitas dan Akses (IAM). Google Cloud IAM menyediakan peran yang telah ditentukan sebelumnya yang memberikan akses terperinci ke sumber daya Google Cloud Platform tertentu dan mencegah akses yang tidak diinginkan ke sumber daya lain. Namun, untuk memenuhi kebutuhan khusus organisasi, Cloud IAM juga menyediakan kemampuan untuk membuat peran kustom. Pemilik dan administrator proyek dengan peran Administrator Peran Organisasi atau peran Administrator Peran IAM dapat membuat peran kustom. Memantau aktivitas pembuatan, penghapusan, dan pembaruan peran akan membantu mengidentifikasi peran yang terlalu istimewa pada tahap awal.

Tingkat keparahan: Rendah

Pastikan kunci yang dikelola pengguna/eksternal untuk akun layanan diputar setiap 90 hari atau kurang

Deskripsi: Kunci Akun Layanan terdiri dari ID kunci (Private_key_Id) dan Kunci privat, yang digunakan untuk menandatangani permintaan terprogram yang dibuat pengguna ke layanan cloud Google yang dapat diakses oleh akun layanan tertentu. Disarankan agar semua kunci Akun Layanan diputar secara teratur. Memutar kunci Akun Layanan akan mengurangi jendela kesempatan untuk kunci akses yang terkait dengan akun yang disusupi atau dihentikan untuk digunakan. Kunci Akun Layanan harus diputar untuk memastikan bahwa data tidak dapat diakses dengan kunci lama yang mungkin hilang, retak, atau dicuri. Setiap akun layanan dikaitkan dengan pasangan kunci yang dikelola oleh Google Cloud Platform (GCP). Ini digunakan untuk autentikasi layanan ke layanan dalam GCP. Google memutar kunci setiap hari. GCP menyediakan opsi untuk membuat satu atau beberapa pasangan kunci yang dikelola pengguna (juga disebut pasangan kunci eksternal) untuk digunakan dari luar GCP (misalnya, untuk digunakan dengan Kredensial Default Aplikasi). Saat pasangan kunci baru dibuat, pengguna diharuskan untuk mengunduh kunci privat (yang tidak dipertahankan oleh Google).

Dengan kunci eksternal, pengguna bertanggung jawab untuk menjaga kunci privat tetap aman dan operasi manajemen lainnya seperti rotasi kunci. Kunci eksternal dapat dikelola oleh API IAM, alat baris perintah gcloud, atau halaman Akun Layanan di Google Cloud Platform Console.

GCP memfasilitasi hingga 10 kunci akun layanan eksternal per akun layanan untuk memfasilitasi rotasi kunci.

Tingkat keparahan: Sedang

Dasbor web GKE harus dinonaktifkan

Deskripsi: Rekomendasi ini mengevaluasi bidang kubernetesDashboard dari properti addonsConfig untuk pasangan kunci-nilai, 'disabled': false.

Tingkat keparahan: Tinggi

Otorisasi Warisan harus dinonaktifkan pada kluster GKE

Deskripsi: Rekomendasi ini mengevaluasi properti warisanAbac dari kluster untuk pasangan kunci-nilai, 'diaktifkan': true.

Tingkat keparahan: Tinggi

Peran Redis IAM tidak boleh ditetapkan di tingkat organisasi atau folder

Deskripsi: Rekomendasi ini mengevaluasi kebijakan izinkan IAM dalam metadata sumber daya untuk prinsipal yang diberi peran/redis.admin, roles/redis.editor, roles/redis.viewer di tingkat organisasi atau folder.

Tingkat keparahan: Tinggi

Akun layanan harus memiliki akses proyek terbatas dalam kluster

Deskripsi: Rekomendasi ini mengevaluasi properti konfigurasi kumpulan simpul untuk memeriksa apakah tidak ada akun layanan yang ditentukan atau apakah akun layanan default digunakan.

Tingkat keparahan: Tinggi

Pengguna harus memiliki akses hak istimewa paling sedikit dengan peran IAM terperinci

Deskripsi: Rekomendasi ini mengevaluasi kebijakan IAM dalam metadata sumber daya untuk setiap prinsipal yang diberi peran/Pemilik, peran/Penulis, atau peran/Pembaca.

Tingkat keparahan: Tinggi

Identitas Super di lingkungan GCP Anda harus dihapus

Deskripsi: Identitas super memiliki serangkaian izin yang kuat. Admin super adalah identitas manusia atau beban kerja yang memiliki akses ke semua izin dan semua sumber daya. Mereka dapat membuat dan memodifikasi pengaturan konfigurasi ke layanan, menambahkan atau menghapus identitas, dan mengakses atau bahkan menghapus data. Dibiarkan tidak dimonitor, identitas ini memberikan risiko signifikan penyalahgunaan izin jika dilanggar.

Tingkat keparahan: Tinggi

Identitas yang tidak digunakan di lingkungan GCP Anda harus dihapus

Deskripsi: Sangat penting untuk mengidentifikasi identitas yang tidak digunakan karena menimbulkan risiko keamanan yang signifikan. Identitas ini sering melibatkan praktik buruk, seperti izin yang berlebihan dan kunci yang salah dikelola yang membuat organisasi terbuka terhadap penyalahgunaan atau eksploitasi kredensial dan meningkatkan permukaan serangan sumber daya Anda. Identitas tidak aktif adalah entitas manusia dan non-manusia yang belum melakukan tindakan apa pun pada sumber daya apa pun dalam 90 hari terakhir. Kunci akun layanan dapat menjadi risiko keamanan jika tidak dikelola dengan hati-hati.

Tingkat keparahan: Sedang

Identitas berlebih GCP seharusnya hanya memiliki izin yang diperlukan

Deskripsi: Identitas aktif yang disediakan berlebihan adalah identitas yang memiliki akses ke hak istimewa yang belum mereka gunakan. Identitas aktif yang disediakan berlebihan, terutama untuk akun non-manusia yang memiliki tindakan dan tanggung jawab yang sangat ditentukan, dapat meningkatkan radius ledakan jika pengguna, kunci, atau sumber daya membahayakan Prinsip hak istimewa paling sedikit menyatakan bahwa sumber daya hanya boleh memiliki akses ke sumber daya yang tepat yang diperlukan untuk berfungsi. Prinsip ini dikembangkan untuk mengatasi risiko identitas yang disusupi yang memberikan akses penyerang ke berbagai sumber daya.

Tingkat keparahan: Sedang

Rekomendasi Jaringan GCP

Host kluster harus dikonfigurasi untuk hanya menggunakan alamat IP internal privat untuk mengakses Google API

Deskripsi: Rekomendasi ini mengevaluasi apakah properti privateIpGoogleAccess dari subnetwork diatur ke false.

Tingkat keparahan: Tinggi

Instans komputasi harus menggunakan load balancer yang dikonfigurasi untuk menggunakan proksi HTTPS target

Deskripsi: Rekomendasi ini mengevaluasi apakah properti selfLink dari sumber daya targetHttpProxy cocok dengan atribut target dalam aturan penerusan, dan jika aturan penerusan berisi bidang loadBalancingScheme yang diatur ke Eksternal.

Tingkat keparahan: Sedang

Control Plane Authorized Networks harus diaktifkan pada kluster GKE

Deskripsi: Rekomendasi ini mengevaluasi properti masterAuthorizedNetworksConfig dari kluster untuk pasangan kunci-nilai, 'diaktifkan': false.

Tingkat keparahan: Tinggi

Aturan penolakan keluar harus diatur pada firewall untuk memblokir lalu lintas keluar yang tidak diinginkan

Deskripsi: Rekomendasi ini mengevaluasi apakah properti destinationRanges di firewall diatur ke 0.0.0.0/0 dan properti yang ditolak berisi pasangan kunci-nilai, 'IPProtocol': 'all.'

Tingkat keparahan: Rendah

Pastikan Aturan Firewall untuk instans di balik Proksi Sadar Identitas (IAP) hanya mengizinkan lalu lintas dari Pemeriksaan Kesehatan Google Cloud Loadbalancer (GCLB) dan Alamat Proksi

Deskripsi: Akses ke VM harus dibatasi oleh aturan firewall yang hanya memungkinkan lalu lintas IAP dengan memastikan hanya koneksi yang diproksi oleh IAP yang diizinkan. Untuk memastikan bahwa penyeimbangan beban berfungsi dengan benar pemeriksaan kesehatan juga harus diizinkan. IAP memastikan bahwa akses ke VM dikontrol dengan mengautentikasi permintaan masuk. Namun jika VM masih dapat diakses dari alamat IP selain IAP, mungkin masih mungkin untuk mengirim permintaan yang tidak diautentikasi ke instans. Perawatan harus dilakukan untuk memastikan bahwa pemeriksaan kesehatan loadblancer tidak diblokir karena ini akan menghentikan load balancer mengetahui kesehatan VM dan penyeimbangan beban dengan benar.

Tingkat keparahan: Sedang

Pastikan jaringan warisan tidak ada untuk proyek

Deskripsi: Untuk mencegah penggunaan jaringan warisan, proyek tidak boleh memiliki jaringan warisan yang dikonfigurasi. Jaringan warisan memiliki satu rentang awalan IPv4 jaringan dan satu alamat IP gateway untuk seluruh jaringan. Jaringan bersifat global dalam cakupan dan mencakup semua wilayah cloud. Subjaringan tidak dapat dibuat di jaringan warisan dan tidak dapat beralih dari jaringan subnet warisan ke otomatis atau kustom. Jaringan warisan dapat berdampak pada proyek lalu lintas jaringan yang tinggi dan tunduk pada satu titik ketidakcocokan atau kegagalan.

Tingkat keparahan: Sedang

Pastikan bendera database 'log_hostname' untuk instans Cloud SQL PostgreSQL diatur dengan tepat

Deskripsi: PostgreSQL hanya mencatat alamat IP host yang terhubung. Bendera "log_hostname" mengontrol pengelogan "nama host" selain alamat IP yang dicatat. Hit performa tergantung pada konfigurasi lingkungan dan pengaturan resolusi nama host. Parameter ini hanya dapat diatur dalam file "postgresql.conf" atau di baris perintah server. Nama host pengelogan dapat menimbulkan overhead pada performa server seperti untuk setiap pernyataan yang dicatat, resolusi DNS akan diperlukan untuk mengonversi alamat IP ke nama host. Bergantung pada penyiapan, ini mungkin tidak dapat diabaikan. Selain itu, alamat IP yang dicatat dapat diselesaikan ke nama DNS mereka nanti saat meninjau log tidak termasuk kasus di mana nama host dinamis digunakan. Rekomendasi ini berlaku untuk instans database PostgreSQL.

Tingkat keparahan: Rendah

Pastikan tidak ada penyeimbang beban proksi HTTPS atau SSL yang mengizinkan kebijakan SSL dengan suite cipher yang lemah

Deskripsi: Kebijakan Secure Sockets Layer (SSL) menentukan fitur Port Transport Layer Security (TLS) apa yang diizinkan digunakan klien saat menyambungkan ke load balancer. Untuk mencegah penggunaan fitur yang tidak aman, kebijakan SSL harus menggunakan (a) setidaknya TLS 1.2 dengan profil MODERN; atau (b) profil RESTRICTED, karena secara efektif mengharuskan klien untuk menggunakan TLS 1.2 terlepas dari versi TLS minimum yang dipilih; atau (3) profil KUSTOM yang tidak mendukung salah satu fitur berikut: TLS_RSA_WITH_AES_128_GCM_SHA256 TLS_RSA_WITH_AES_256_GCM_SHA384 TLS_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_256_CBC_SHA TLS_RSA_WITH_3DES_EDE_CBC_SHA

Load balancer digunakan untuk mendistribusikan lalu lintas secara efisien di beberapa server. Proksi SSL dan load balancer HTTPS adalah load balancer eksternal, yang berarti mereka mendistribusikan lalu lintas dari Internet ke jaringan GCP. Pelanggan GCP dapat mengonfigurasi kebijakan SSL load balancer dengan versi TLS minimum (1.0, 1.1, atau 1.2) yang dapat digunakan klien untuk membuat koneksi, bersama dengan profil (Kompatibel, Modern, Terbatas, atau Kustom) yang menentukan suite sandi yang diizinkan. Untuk mematuhi pengguna yang menggunakan protokol yang kedaluarsa, load balancer GCP dapat dikonfigurasi untuk mengizinkan suite cipher yang tidak aman. Bahkan, kebijakan SSL default GCP menggunakan versi TLS minimum 1.0 dan profil Kompatibel, yang memungkinkan berbagai suite sandi yang tidak aman. Akibatnya, mudah bagi pelanggan untuk mengonfigurasi load balancer tanpa mengetahui bahwa mereka mengizinkan suite sandi yang kedaluarsa.

Tingkat keparahan: Sedang

Pastikan pengelogan DNS Cloud diaktifkan untuk semua jaringan VPC

Deskripsi: Pengelogan DNS cloud merekam kueri dari server nama dalam VPC Anda ke Stackdriver. Kueri yang dicatat dapat berasal dari VM Mesin Komputasi, kontainer GKE, atau sumber daya GCP lainnya yang disediakan dalam VPC. Pemantauan keamanan dan forensik tidak hanya dapat bergantung pada alamat IP dari log alur VPC, terutama ketika mempertimbangkan penggunaan IP dinamis sumber daya cloud, perutean host virtual HTTP, dan teknologi lain yang dapat mengaburkan nama DNS yang digunakan oleh klien dari alamat IP. Pemantauan log DNS Cloud memberikan visibilitas ke nama DNS yang diminta oleh klien dalam VPC. Log ini dapat dipantau untuk nama domain anomali, dievaluasi terhadap inteligensi ancaman, dan Catatan: Untuk penangkapan penuh DNS, firewall harus memblokir UDP/53 (DNS) dan TCP/443 (DNS melalui HTTPS) untuk mencegah klien menggunakan server nama DNS eksternal untuk resolusi.

Tingkat keparahan: Tinggi

Pastikan DNSSEC diaktifkan untuk Dns Cloud

Deskripsi: Cloud Domain Name System (DNS) adalah sistem nama domain yang cepat, andal, dan hemat biaya yang mendukung jutaan domain di internet. Domain Name System Security Extensions (DNSSEC) di Cloud DNS memungkinkan pemilik domain mengambil langkah mudah untuk melindungi domain mereka dari pembajakan DNS dan serangan man-in-the-middle dan lainnya. Ekstensi Keamanan Sistem Nama Domain (DNSSEC) menambahkan keamanan ke protokol DNS dengan mengaktifkan respons DNS untuk divalidasi. Memiliki DNS tepercaya yang menerjemahkan nama domain seperti www.example.com ke dalam alamat IP terkaitnya adalah blok penyusun yang semakin penting dari aplikasi berbasis web saat ini. Penyerang dapat membajak proses pencarian domain/IP ini dan mengalihkan pengguna ke situs berbahaya melalui pembajakan DNS dan serangan man-in-the-middle. DNSSEC membantu mengurangi risiko serangan tersebut dengan menandatangani catatan DNS secara kriptografis. Akibatnya, mencegah penyerang mengeluarkan respons DNS palsu yang mungkin salah mengalihkan browser ke situs web jahat.

Tingkat keparahan: Sedang

Pastikan akses RDP dibatasi dari Internet

Deskripsi: Aturan Firewall GCP khusus untuk Jaringan VPC. Setiap aturan mengizinkan atau menolak lalu lintas saat kondisinya terpenuhi. Kondisinya memungkinkan pengguna untuk menentukan jenis lalu lintas, seperti port dan protokol, dan sumber atau tujuan lalu lintas, termasuk alamat IP, subnet, dan instans. Aturan firewall didefinisikan pada tingkat jaringan VPC dan khusus untuk jaringan di mana aturan tersebut ditentukan. Aturan itu sendiri tidak dapat dibagikan di antara jaringan. Aturan firewall hanya mendukung lalu lintas IPv4. Saat menentukan sumber untuk aturan masuk atau tujuan untuk aturan keluar menurut alamat, alamat IPv4 atau blok IPv4 dalam notasi CIDR dapat digunakan. Lalu lintas masuk generik (0.0.0.0/0) dari Internet ke instans VPC atau VM menggunakan RDP pada Port 3389 dapat dihindari. Aturan Firewall GCP dalam Jaringan VPC. Aturan ini berlaku untuk lalu lintas keluar (keluar) dari instans dan lalu lintas masuk (masuk) ke instans di jaringan. Arus lalu lintas keluar dan masuk dikontrol meskipun lalu lintas tetap berada dalam jaringan (misalnya, komunikasi instans-ke-instans). Agar instans memiliki akses Internet keluar, jaringan harus memiliki rute gateway Internet yang valid atau rute kustom yang IP tujuannya ditentukan. Rute ini hanya menentukan jalur ke Internet, untuk menghindari Rentang IP tujuan yang paling umum (0.0.0.0/0) yang ditentukan dari Internet melalui RDP dengan Port default 3389. Akses generik dari Internet ke Rentang IP tertentu harus dibatasi.

Tingkat keparahan: Tinggi

Pastikan RSASHA1 tidak digunakan untuk kunci penandatanganan kunci di Dns DNSSEC Cloud

Deskripsi: Nomor algoritma DNSSEC dalam registri ini mungkin digunakan di CERT RR. Penandatanganan zona (DNSSEC) dan mekanisme keamanan transaksi (SIG(0) dan TSIG) memanfaatkan subset tertentu dari algoritma ini. Algoritma yang digunakan untuk penandatanganan kunci harus direkomendasikan dan harus kuat. Nomor algoritma Ekstensi Keamanan Sistem Nama Domain (DNSSEC) dalam registri ini mungkin digunakan di CERT RR. Zonesigning (DNSSEC) dan mekanisme keamanan transaksi (SIG(0) dan TSIG) memanfaatkan subset tertentu dari algoritma ini. Algoritma yang digunakan untuk penandatanganan kunci harus direkomendasikan dan harus kuat. Saat mengaktifkan DNSSEC untuk zona terkelola, atau membuat zona terkelola dengan DNSSEC, pengguna dapat memilih algoritma penandatanganan DNSSEC dan jenis penolakan keberadaan. Mengubah pengaturan DNSSEC hanya efektif untuk zona terkelola jika DNSSEC belum diaktifkan. Jika ada kebutuhan untuk mengubah pengaturan untuk zona terkelola tempat zona tersebut diaktifkan, nonaktifkan DNSSEC lalu aktifkan kembali dengan pengaturan yang berbeda.

Tingkat keparahan: Sedang

Pastikan bahwa RSASHA1 tidak digunakan untuk kunci penandatanganan zona di Dns DNSSEC Cloud

Deskripsi: Nomor algoritma DNSSEC dalam registri ini mungkin digunakan di CERT RR. Penandatanganan zona (DNSSEC) dan mekanisme keamanan transaksi (SIG(0) dan TSIG) memanfaatkan subset tertentu dari algoritma ini. Algoritma yang digunakan untuk penandatanganan kunci harus direkomendasikan dan harus kuat. Nomor algoritma DNSSEC dalam registri ini mungkin digunakan dalam CERT RR. Zonesigning (DNSSEC) dan mekanisme keamanan transaksi (SIG(0) dan TSIG) memanfaatkan subset tertentu dari algoritma ini. Algoritma yang digunakan untuk penandatanganan kunci harus direkomendasikan dan harus kuat. Saat mengaktifkan DNSSEC untuk zona terkelola, atau membuat zona terkelola dengan DNSSEC, algoritma penandatanganan DNSSEC, dan jenis penolakan keberadaan dapat dipilih. Mengubah pengaturan DNSSEC hanya efektif untuk zona terkelola jika DNSSEC belum diaktifkan. Jika ada kebutuhan untuk mengubah pengaturan untuk zona terkelola di mana telah diaktifkan, nonaktifkan DNSSEC lalu aktifkan kembali dengan pengaturan yang berbeda.

Tingkat keparahan: Sedang

Pastikan akses SSH dibatasi dari internet

Deskripsi: Aturan Firewall GCP khusus untuk Jaringan VPC. Setiap aturan mengizinkan atau menolak lalu lintas saat kondisinya terpenuhi. Kondisinya memungkinkan pengguna untuk menentukan jenis lalu lintas, seperti port dan protokol, dan sumber atau tujuan lalu lintas, termasuk alamat IP, subnet, dan instans. Aturan firewall didefinisikan pada tingkat jaringan VPC dan khusus untuk jaringan di mana aturan tersebut ditentukan. Aturan itu sendiri tidak dapat dibagikan di antara jaringan. Aturan firewall hanya mendukung lalu lintas IPv4. Saat menentukan sumber untuk aturan ingress atau tujuan untuk aturan keluar berdasarkan alamat, hanya alamat IPv4 atau blok IPv4 dalam notasi CIDR yang dapat digunakan. Lalu lintas masuk generik (0.0.0.0/0) dari internet ke instans VPC atau VM menggunakan SSH pada Port 22 dapat dihindari. Aturan Firewall GCP dalam Jaringan VPC berlaku untuk lalu lintas keluar (keluar) dari instans dan lalu lintas masuk (masuk) ke instans di jaringan. Arus lalu lintas keluar dan masuk dikontrol meskipun lalu lintas tetap berada dalam jaringan (misalnya, komunikasi instans-ke-instans). Agar instans memiliki akses Internet keluar, jaringan harus memiliki rute gateway Internet yang valid atau rute kustom yang IP tujuannya ditentukan. Rute ini hanya menentukan jalur ke Internet, untuk menghindari Rentang IP tujuan yang paling umum (0.0.0.0/0) yang ditentukan dari Internet melalui SSH dengan Port default '22.' Akses generik dari Internet ke Rentang IP tertentu perlu dibatasi.

Tingkat keparahan: Tinggi

Pastikan bahwa jaringan default tidak ada dalam proyek

Deskripsi: Untuk mencegah penggunaan jaringan "default", proyek tidak boleh memiliki jaringan "default". Jaringan default memiliki konfigurasi jaringan yang telah dikonfigurasi sebelumnya dan secara otomatis menghasilkan aturan firewall yang tidak aman berikut:

  • default-allow-internal: Memungkinkan koneksi ingress untuk semua protokol dan port di antara instans dalam jaringan.
  • default-allow-ssh: Memungkinkan koneksi ingress pada port TCP 22 (SSH) dari sumber apa pun ke instans apa pun di jaringan.
  • default-allow-rdp: Memungkinkan koneksi ingress pada port TCP 3389(RDP) dari sumber apa pun ke instans apa pun di jaringan.
  • default-allow-icmp: Memungkinkan lalu lintas ICMP masuk dari sumber apa pun ke instans apa pun di jaringan.

Aturan firewall yang dibuat secara otomatis ini tidak dicatat auditnya dan tidak dapat dikonfigurasi untuk mengaktifkan pengelogan aturan firewall. Selain itu, jaringan default adalah jaringan mode otomatis, yang berarti bahwa subnetnya menggunakan rentang alamat IP yang telah ditentukan sebelumnya yang sama, dan akibatnya, tidak dimungkinkan untuk menggunakan Cloud VPN atau VPC Network Peering dengan jaringan default. Berdasarkan persyaratan keamanan dan jaringan organisasi, organisasi harus membuat jaringan baru dan menghapus jaringan default.

Tingkat keparahan: Sedang

Pastikan filter metrik log dan pemberitahuan ada untuk perubahan jaringan VPC

Deskripsi: Disarankan agar filter metrik dan alarm dibuat untuk perubahan jaringan Virtual Private Cloud (VPC). Dimungkinkan untuk memiliki lebih dari satu VPC dalam proyek. Selain itu, Anda juga dapat membuat koneksi serekan antara dua VPC yang memungkinkan lalu lintas jaringan untuk merutekan antar VPC. Memantau perubahan pada VPC akan membantu memastikan arus lalu lintas VPC tidak terpengaruh.

Tingkat keparahan: Rendah

Pastikan filter metrik log dan pemberitahuan ada untuk perubahan aturan Firewall Jaringan VPC

Deskripsi: Disarankan agar filter metrik dan alarm dibuat untuk perubahan aturan Firewall Jaringan Virtual Private Cloud (VPC). Pemantauan untuk membuat atau memperbarui peristiwa aturan Firewall memberikan wawasan tentang perubahan akses jaringan dan dapat mengurangi waktu yang diperlukan untuk mendeteksi aktivitas yang mencurigakan.

Tingkat keparahan: Rendah

Pastikan filter metrik log dan pemberitahuan ada untuk perubahan rute jaringan VPC

Deskripsi: Disarankan agar filter metrik dan alarm dibuat untuk perubahan rute jaringan Virtual Private Cloud (VPC). Rute Google Cloud Platform (GCP) menentukan jalur yang diambil lalu lintas jaringan dari instans VM ke tujuan lain. Tujuan lain dapat berada di dalam jaringan VPC organisasi (seperti VM lain) atau di luarnya. Setiap rute terdiri dari tujuan dan lompatan berikutnya. Lalu lintas yang IP tujuannya berada dalam rentang tujuan dikirim ke hop berikutnya untuk pengiriman. Memantau perubahan pada tabel rute akan membantu memastikan bahwa semua lalu lintas VPC mengalir melalui jalur yang diharapkan.

Tingkat keparahan: Rendah

Pastikan bahwa bendera database 'log_connections' untuk instans Cloud SQL PostgreSQL diatur ke 'aktif'

Deskripsi: Mengaktifkan pengaturan log_connections menyebabkan setiap koneksi yang dicoba ke server dicatat, bersama dengan keberhasilan penyelesaian autentikasi klien. Parameter ini tidak dapat diubah setelah sesi dimulai. PostgreSQL tidak mencatat koneksi yang dicoba secara default. Mengaktifkan pengaturan log_connections akan membuat entri log untuk setiap koneksi yang dicoba serta keberhasilan penyelesaian autentikasi klien, yang dapat berguna dalam memecahkan masalah dan untuk menentukan upaya koneksi yang tidak biasa ke server. Rekomendasi ini berlaku untuk instans database PostgreSQL.

Tingkat keparahan: Sedang

Pastikan bahwa bendera database 'log_disconnections' untuk instans Cloud SQL PostgreSQL diatur ke 'aktif'

Deskripsi: Mengaktifkan pengaturan log_disconnections mencatat akhir setiap sesi, termasuk durasi sesi. PostgreSQL tidak mencatat detail sesi seperti durasi dan akhir sesi secara default. Mengaktifkan pengaturan log_disconnections akan membuat entri log di akhir setiap sesi, yang dapat berguna dalam memecahkan masalah dan menentukan aktivitas yang tidak biasa selama periode waktu tertentu. Log_disconnections dan log_connections bekerja bersama dan umumnya, pasangan akan diaktifkan/dinonaktifkan bersama-sama. Rekomendasi ini berlaku untuk instans database PostgreSQL.

Tingkat keparahan: Sedang

Pastikan bahwa Log Alur VPC diaktifkan untuk setiap subnet di Jaringan VPC

Deskripsi: Log Alur adalah fitur yang memungkinkan pengguna untuk mengambil informasi tentang lalu lintas IP yang masuk ke dan dari antarmuka jaringan di Subnet VPC organisasi. Setelah log alur dibuat, pengguna dapat melihat dan mengambil datanya di Pengelogan Stackdriver. Disarankan agar Log Alur diaktifkan untuk setiap subnet VPC yang penting bagi bisnis. Jaringan dan subnetwork VPC menyediakan partisi jaringan yang terisolasi dan aman secara logis di mana sumber daya GCP dapat diluncurkan. Ketika Log Alur diaktifkan untuk subnet, VM dalam subnet tersebut mulai melaporkan semua alur Protokol Kontrol Transmisi (TCP) dan Protokol Datagram Pengguna (UDP). Setiap VM mengambil sampel alur TCP dan UDP yang dilihatnya, masuk dan keluar, baik alurnya ke atau dari VM lain, host di pusat data lokal, layanan Google, atau host di Internet. Jika dua VM GCP berkomunikasi, dan keduanya berada di subnet yang mengaktifkan Log Alur VPC, kedua VM melaporkan alur. Log Alur mendukung kasus penggunaan berikut: 1. Pemantauan jaringan. 2. Memahami penggunaan jaringan dan mengoptimalkan pengeluaran lalu lintas jaringan. 3. Forensik jaringan. 4. Analisis keamanan real time Log Alur memberikan visibilitas ke dalam lalu lintas jaringan untuk setiap VM di dalam subnet dan dapat digunakan untuk mendeteksi lalu lintas atau wawasan anomali selama alur kerja keamanan.

Tingkat keparahan: Rendah

Pengelogan aturan firewall harus diaktifkan

Deskripsi: Rekomendasi ini mengevaluasi properti logConfig dalam metadata firewall untuk melihat apakah kosong atau berisi pasangan kunci-nilai 'aktifkan': false.

Tingkat keparahan: Sedang

Firewall tidak boleh dikonfigurasi agar terbuka untuk akses publik

Deskripsi: Rekomendasi ini mengevaluasi sourceRanges dan properti yang diizinkan untuk salah satu dari dua konfigurasi:

Properti sourceRanges berisi 0.0.0.0/0 dan properti yang diizinkan berisi kombinasi aturan yang mencakup protokol atau protokol:port apa pun, kecuali berikut: icmp tcp:22 tcp:443 tcp:3389 udp:3389 sctp:22

Properti sourceRanges berisi kombinasi rentang IP yang mencakup alamat IP nonprivate dan properti yang diizinkan berisi kombinasi aturan yang mengizinkan semua port tcp atau semua port udp.

Tingkat keparahan: Tinggi

Firewall tidak boleh dikonfigurasi untuk memiliki port CASSANDRA terbuka yang memungkinkan akses generik

Deskripsi: Rekomendasi ini mengevaluasi properti yang diizinkan dalam metadata firewall untuk protokol dan port berikut: TCP:7000-7001, 7199, 8888, 9042, 9160, 61620-61621.

Tingkat keparahan: Rendah

Firewall tidak boleh dikonfigurasi untuk memiliki port CISCOSECURE_WEBSM terbuka yang memungkinkan akses generik

Deskripsi: Rekomendasi ini mengevaluasi properti yang diizinkan dalam metadata firewall untuk protokol dan port berikut: TCP:9090.

Tingkat keparahan: Rendah

Firewall tidak boleh dikonfigurasi untuk memiliki port DIRECTORY_SERVICES terbuka yang memungkinkan akses generik

Deskripsi: Rekomendasi ini mengevaluasi properti yang diizinkan dalam metadata firewall untuk protokol dan port berikut: TCP:445 dan UDP:445.

Tingkat keparahan: Rendah

Firewall tidak boleh dikonfigurasi untuk memiliki port DNS terbuka yang memungkinkan akses generik

Deskripsi: Rekomendasi ini mengevaluasi properti yang diizinkan dalam metadata firewall untuk protokol dan port berikut: TCP:53 dan UDP:53.

Tingkat keparahan: Rendah

Firewall tidak boleh dikonfigurasi untuk memiliki port ELASTICSEARCH terbuka yang memungkinkan akses generik

Deskripsi: Rekomendasi ini mengevaluasi properti yang diizinkan dalam metadata firewall untuk protokol dan port berikut: TCP:9200, 9300.

Tingkat keparahan: Rendah

Firewall tidak boleh dikonfigurasi untuk memiliki port FTP terbuka yang memungkinkan akses generik

Deskripsi: Rekomendasi ini mengevaluasi properti yang diizinkan dalam metadata firewall untuk protokol dan port berikut: TCP:21.

Tingkat keparahan: Rendah

Firewall tidak boleh dikonfigurasi untuk memiliki port HTTP terbuka yang memungkinkan akses generik

Deskripsi: Rekomendasi ini mengevaluasi properti yang diizinkan dalam metadata firewall untuk protokol dan port berikut: TCP:80.

Tingkat keparahan: Rendah

Firewall tidak boleh dikonfigurasi untuk memiliki port LDAP terbuka yang memungkinkan akses generik

Deskripsi: Rekomendasi ini mengevaluasi properti yang diizinkan dalam metadata firewall untuk protokol dan port berikut: TCP:389, 636 dan UDP:389.

Tingkat keparahan: Rendah

Firewall tidak boleh dikonfigurasi untuk memiliki port MEMCACHED terbuka yang memungkinkan akses generik

Deskripsi: Rekomendasi ini mengevaluasi properti yang diizinkan dalam metadata firewall untuk protokol dan port berikut: TCP:11211, 11214-11215 dan UDP:11211, 11214-11215.

Tingkat keparahan: Rendah

Firewall tidak boleh dikonfigurasi untuk memiliki port MONGODB terbuka yang memungkinkan akses generik

Deskripsi: Rekomendasi ini mengevaluasi properti yang diizinkan dalam metadata firewall untuk protokol dan port berikut: TCP:27017-27019.

Tingkat keparahan: Rendah

Firewall tidak boleh dikonfigurasi untuk memiliki port MYSQL terbuka yang memungkinkan akses generik

Deskripsi: Rekomendasi ini mengevaluasi properti yang diizinkan dalam metadata firewall untuk protokol dan port berikut: TCP:3306.

Tingkat keparahan: Rendah

Firewall tidak boleh dikonfigurasi untuk memiliki port NETBIOS terbuka yang memungkinkan akses generik

Deskripsi: Rekomendasi ini mengevaluasi properti yang diizinkan dalam metadata firewall untuk protokol dan port berikut: TCP:137-139 dan UDP:137-139.

Tingkat keparahan: Rendah

Firewall tidak boleh dikonfigurasi untuk memiliki port ORACLEDB terbuka yang memungkinkan akses generik

Deskripsi: Rekomendasi ini mengevaluasi properti yang diizinkan dalam metadata firewall untuk protokol dan port berikut: TCP:1521, 2483-2484 dan UDP:2483-2484.

Tingkat keparahan: Rendah

Firewall tidak boleh dikonfigurasi untuk memiliki port POP3 terbuka yang memungkinkan akses generik

Deskripsi: Rekomendasi ini mengevaluasi properti yang diizinkan dalam metadata firewall untuk protokol dan port berikut: TCP:110.

Tingkat keparahan: Rendah

Firewall tidak boleh dikonfigurasi untuk memiliki port PostgreSQL terbuka yang memungkinkan akses generik

Deskripsi: Rekomendasi ini mengevaluasi properti yang diizinkan dalam metadata firewall untuk protokol dan port berikut: TCP:5432 dan UDP:5432.

Tingkat keparahan: Rendah

Firewall tidak boleh dikonfigurasi untuk memiliki port REDIS terbuka yang memungkinkan akses generik

Deskripsi: Rekomendasi ini mengevaluasi apakah properti yang diizinkan dalam metadata firewall berisi protokol dan port berikut: TCP:6379.

Tingkat keparahan: Rendah

Firewall tidak boleh dikonfigurasi untuk memiliki port SMTP terbuka yang memungkinkan akses generik

Deskripsi: Rekomendasi ini mengevaluasi apakah properti yang diizinkan dalam metadata firewall berisi protokol dan port berikut: TCP:25.

Tingkat keparahan: Rendah

Firewall tidak boleh dikonfigurasi untuk memiliki port SSH terbuka yang memungkinkan akses generik

Deskripsi: Rekomendasi ini mengevaluasi apakah properti yang diizinkan dalam metadata firewall berisi protokol dan port berikut: TCP:22 dan SCTP:22.

Tingkat keparahan: Rendah

Firewall tidak boleh dikonfigurasi untuk memiliki port TELNET terbuka yang memungkinkan akses generik

Deskripsi: Rekomendasi ini mengevaluasi apakah properti yang diizinkan dalam metadata firewall berisi protokol dan port berikut: TCP:23.

Tingkat keparahan: Rendah

Kluster GKE harus mengaktifkan rentang IP alias

Deskripsi: Rekomendasi ini mengevaluasi apakah bidang useIPAliases dari ipAllocationPolicy dalam kluster diatur ke false.

Tingkat keparahan: Rendah

Kluster GKE harus mengaktifkan kluster Privat

Deskripsi: Rekomendasi ini mengevaluasi apakah bidang enablePrivateNodes properti privateClusterConfig diatur ke false.

Tingkat keparahan: Tinggi

Kebijakan jaringan harus diaktifkan pada kluster GKE

Deskripsi: Rekomendasi ini mengevaluasi bidang networkPolicy dari properti addonsConfig untuk pasangan kunci-nilai, 'dinonaktifkan': true.

Tingkat keparahan: Sedang