Kasus penggunaan umum untuk kebijakan keamanan

Halaman ini menampilkan kasus penggunaan umum untuk kebijakan keamanan Google Cloud Armor. Kebijakan keamanan Google Cloud Armor dapat melindungi aplikasi Anda dengan fitur seperti daftar yang diizinkan dan daftar yang ditolak alamat IP, serta aturan yang telah dikonfigurasi sebelumnya untuk mencegah serangan web umum.

Mengontrol akses ke aplikasi dan layanan web Anda

Bagian ini menyajikan beberapa cara menggunakan kebijakan keamanan Google Cloud Armor untuk mengontrol akses ke aplikasi atau layanan Anda.

Mengaktifkan akses untuk pengguna di alamat IP tertentu dengan daftar yang diizinkan

Kasus penggunaan umum untuk menempatkan alamat IP pengguna di daftar yang diizinkan adalah saat Load Balancer Aplikasi eksternal global atau Load Balancer Aplikasi klasik Anda hanya diakses oleh sekumpulan pengguna tertentu. Dalam contoh berikut, hanya pengguna dari organisasi Anda yang diizinkan mengakses layanan di balik load balancer Anda. Pengguna ini memiliki alamat IP atau blok alamat yang ditetapkan oleh organisasi Anda. Anda dapat menempatkan alamat IP atau rentang CIDR ini di daftar yang diizinkan sehingga hanya pengguna ini yang memiliki akses ke load balancer.

Membatasi akses load balancer menggunakan daftar yang diizinkan.
Membatasi akses load balancer menggunakan daftar yang diizinkan (klik untuk memperbesar).

Anda mengontrol akses ke Load Balancer Aplikasi eksternal global atau Load Balancer Aplikasi klasik dengan mengonfigurasi daftar yang diizinkan dengan alamat IP sumber atau rentang CIDR sumber tempat akses ke load balancer Anda diizinkan. Bagian berikut menjelaskan konfigurasi ini lebih lanjut.

Dalam konfigurasi ini, Anda hanya ingin mengizinkan pengguna dari organisasi dengan alamat IP dari rentang IP untuk mengakses Load Balancer Aplikasi eksternal global atau Load Balancer Aplikasi klasik. Anda ingin semua traffic lain ditolak.

Untuk membuat konfigurasi ini, ikuti langkah-langkah berikut:

  1. Buat kebijakan keamanan Google Cloud Armor.
  2. Dalam kebijakan keamanan, tambahkan aturan yang menambahkan rentang ke daftar yang diizinkan sebagai aturan pertama. Aturan ini memiliki deskripsi allow [RANGE], dengan [RANGE] adalah rentang IP yang diinginkan.
  3. Ubah aturan default dalam kebijakan dari aturan izin menjadi aturan tolak. Aturan default mengatur traffic yang tidak cocok dengan aturan sebelumnya. Ini adalah aturan terakhir dalam kebijakan. Mengubah aturan dari allow menjadi deny akan memblokir semua traffic yang tidak berasal dari rentang di daftar yang diizinkan.
  4. Kaitkan kebijakan ini dengan Load Balancer Aplikasi eksternal global atau layanan backend Load Balancer Aplikasi klasik.

Jika organisasi Anda menggunakan penyedia keamanan pihak ketiga untuk menghapus traffic, Anda dapat menambahkan alamat IP penyedia keamanan ke daftar yang diizinkan untuk memastikan bahwa hanya traffic yang dihapus yang dapat mengakses Load Balancer Aplikasi eksternal global atau backend dan Load Balancer Aplikasi klasik.

Dalam ilustrasi berikut, penyedia pihak ketiga diidentifikasi oleh rentang CIDR 192.0.2.0/24, dan rentang ini ada dalam daftar yang diizinkan.

Membatasi akses load balancer menggunakan daftar yang diizinkan untuk membatasi traffic dari penyedia keamanan pihak ketiga.
Membatasi akses load balancer menggunakan daftar yang diizinkan untuk membatasi traffic dari penyedia keamanan pihak ketiga (klik untuk memperbesar).

Memblokir akses untuk pengguna di alamat IP tertentu dengan daftar yang tidak diizinkan

Gunakan daftar tolak untuk membuat kebijakan keamanan Google Cloud Armor yang menolak traffic dari alamat IP atau rentang CIDR. Pada ilustrasi berikut, kebijakan keamanan Google Cloud Armor memiliki aturan deny yang memblokir traffic dari alamat IP 198.51.100.1, tempat pengguna berbahaya telah diidentifikasi.

Membatasi akses load balancer menggunakan daftar tolak.
Membatasi akses load balancer menggunakan daftar tolak (klik untuk memperbesar).

Aturan kustom untuk memfilter berdasarkan parameter Lapisan 3 hingga Lapisan 7

Gunakan bahasa aturan kustom Google Cloud Armor untuk menentukan satu atau beberapa ekspresi dalam kondisi pencocokan aturan. Saat menerima permintaan, Google Cloud Armor akan mengevaluasi permintaan berdasarkan ekspresi ini. Jika ada kecocokan, tindakan aturan akan diterapkan, baik menolak maupun mengizinkan traffic yang masuk.

Contoh berikut adalah ekspresi yang ditulis dalam ekstensi Google Cloud Armor dari Common Expression Language (CEL). Untuk informasi selengkapnya, lihat Referensi bahasa aturan kustom.

Untuk menentukan ekspresi dalam aturan, gunakan flag --expression gcloud atau Konsol Google Cloud. Untuk mengetahui informasi selengkapnya, lihat Membuat kebijakan, aturan, dan ekspresi keamanan Google Cloud Armor.

Dalam contoh berikut, permintaan dari 2001:db8::/32 (seperti penguji alfa Anda) di region AU cocok dengan ekspresi berikut:

origin.region_code == "AU" && inIpRange(origin.ip, '2001:db8::/32')

Contoh berikut cocok dengan permintaan dari 192.0.2.0/24 dan dengan agen pengguna yang berisi string WordPress:

inIpRange(origin.ip, '192.0.2.0/24') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('WordPress')

Untuk contoh tambahan, lihat Contoh ekspresi dalam referensi bahasa aturan kustom.

Melindungi deployment Anda dari serangan lapisan aplikasi dan membantu memitigasi 10 risiko teratas OWASP

Anda dapat menggunakan Google Cloud Armor untuk melindungi server origin Cloud CDN dari serangan lapisan aplikasi (L7) seperti injeksi SQL (SQLi) dan pembuatan skrip lintas situs (XSS). Konten dalam cache bersifat statis dan kemungkinan tidak menimbulkan risiko serangan bertarget dari web. Namun, server origin konten yang mendasarinya mungkin merupakan aplikasi dinamis dengan kerentanan aplikasi web yang diketahui atau potensial. Persyaratan keamanan atau kepatuhan mungkin mengharuskan Anda untuk mengurangi risiko ini guna mencegah eksploitasi kerentanan dari internet agar tidak berhasil menyerang server origin.

Untuk mengurangi risiko, ikuti langkah-langkah berikut:

  1. Buat atau identifikasi layanan backend dengan CDN diaktifkan.
  2. Buat kebijakan keamanan Google Cloud Armor.
  3. Buat satu atau beberapa aturan dalam kebijakan keamanan untuk menolak serangan L7.
  4. Konfigurasikan salah satu target kebijakan keamanan menjadi layanan backend yang Anda buat atau identifikasi pada langkah 1.

Anda juga dapat menggunakan aturan yang telah dikonfigurasi sebelumnya untuk mendeteksi dan memblokir serangan lapisan aplikasi yang umum. Aturan yang telah dikonfigurasi sebelumnya adalah kumpulan ekspresi standar yang dapat Anda tambahkan ke kebijakan keamanan Google Cloud Armor. Untuk menambahkan kumpulan ekspresi ini ke aturan, gunakan flag --expression gcloud atau konsol Google Cloud. Untuk mengetahui informasi selengkapnya, lihat Membuat kebijakan, aturan, dan ekspresi keamanan.

Untuk informasi selengkapnya tentang aturan yang telah dikonfigurasi sebelumnya, lihat Aturan yang telah dikonfigurasi sebelumnya dalam referensi bahasa aturan kustom.

Contoh berikut menggunakan aturan yang telah dikonfigurasi sebelumnya untuk mengurangi serangan pembuatan skrip lintas situs (XSS):

evaluatePreconfiguredExpr('xss-stable')

Contoh berikut menggunakan aturan yang telah dikonfigurasi sebelumnya untuk mengurangi serangan injeksi SQL (SQLi):

evaluatePreconfiguredExpr('sqli-stable')

Anda juga dapat menggabungkan aturan yang telah dikonfigurasi sebelumnya dengan ekspresi lain. Contoh berikut menggunakan aturan yang telah dikonfigurasi untuk memitigasi serangan SQLi dari rentang alamat IP 192.0.2.1/24:

inIpRange(origin.ip, '192.0.2.1/24') && evaluatePreconfiguredExpr('sqli-stable')

Mitigasi 10 teratas OWASP untuk beban kerja hybrid

Google Cloud Armor menawarkan mitigasi untuk serangan berikut, baik yang di-deploy di Google Cloud,di infrastruktur lokal, maupun di penyedia pihak ketiga:

  • Injeksi SQL (SQLi)
  • Pembuatan skrip lintas situs (XSS)
  • Penyertaan File Lokal (LFI)
  • Penyertaan File Jarak Jauh (RFI)
  • Eksekusi Kode Jarak Jauh (RCE)

Anda dapat menggunakan kemampuan ini untuk mengatasi beberapa risiko keamanan aplikasi web yang paling umum, termasuk risiko yang diidentifikasi dalam daftar OWASP Top 10.

Aturan WAF yang telah dikonfigurasi sebelumnya di Google Cloud Armor dapat ditambahkan ke kebijakan keamanan untuk mendeteksi dan menolak permintaan lapisan 7 yang tidak diinginkan yang berisi upaya SQLi atau XSS. Google Cloud Armor mendeteksi permintaan berbahaya dan menghentikannya di edge infrastruktur Google. Permintaan tidak di-proxy ke layanan backend, terlepas dari tempat layanan backend di-deploy.

Untuk mempertahankan workload yang tidak dihosting Google Cloud dari serangan ini di tepi jaringan Google, ikuti langkah-langkah berikut:

  1. Konfigurasikan Load Balancer Aplikasi eksternal global atau Load Balancer Aplikasi klasik dengan layanan backend yang memiliki NEG internet sebagai backend.
  2. Buat kebijakan keamanan Google Cloud Armor.
  3. Tambahkan aturan SQLi dan XSS yang telah dikonfigurasi sebelumnya ke kebijakan.
  4. Lampirkan kebijakan keamanan ke layanan backend yang Anda buat di langkah 1.
  5. Pantau aktivitas Google Cloud Armor menggunakan Cloud Logging, Cloud Monitoring, dan temuan yang dikirim ke Security Command Center.

Pertahanan DDoS server origin eksternal Cloud CDN dan pemantauan lapisan 7

Deployment Cloud CDN dengan server origin eksternal dapat memiliki infrastruktur edge Google sebagai frontend untuk proxy, cache, dan pemfilteran lapisan 7 Google Cloud Armor. Dengan menggunakan NEG internet, server origin dapat ditempatkan di lokasi atau dengan penyedia infrastruktur pihak ketiga.

Google Cloud Armor dan infrastruktur edge Google lainnya memitigasi dan menghentikan serangan L3/L4, memberikan pemberitahuan tentang aktivitas Lapisan 7 yang mencurigakan, dan siap menolak permintaan lapisan 7 yang tidak diinginkan dengan aturan kustom. Logging dan telemetri Google Cloud Armor di seluruh Cloud Logging, Cloud Monitoring, dan Security Command Center memberikan insight yang bisa ditindaklanjuti untuk aplikasi yang dilindungi, terlepas dari tempat aplikasi tersebut di-deploy.

Untuk mengaktifkan perlindungan Google Cloud Armor bagi server origin eksternal CDN, ikuti langkah-langkah berikut:

  1. Konfigurasikan Load Balancer Aplikasi eksternal global atau Load Balancer Aplikasi klasik dengan layanan backend yang memiliki NEG internet sebagai backend.
  2. Aktifkan Cloud CDN untuk layanan backend ini.
  3. Buat kebijakan keamanan Google Cloud Armor.
  4. Lampirkan kebijakan keamanan ke layanan backend yang Anda buat di langkah 1.
  5. Mengakses pemberitahuan, logging, dan telemetri Google Cloud Armor di Security Command Center, Cloud Logging, dan Cloud Monitoring.

Selain itu, Anda dapat menggunakan kebijakan keamanan edge untuk melindungi konten yang disimpan di cache. Untuk informasi selengkapnya tentang kebijakan keamanan edge, lihat Ringkasan kebijakan keamanan.

Kontrol akses Lapisan 7 dan serangan cache-busting

Bergantung pada arsitektur aplikasi, Anda dapat mengonfigurasi satu layanan backend untuk menayangkan permintaan berbagai URL, termasuk konten yang dapat di-cache dan tidak dapat di-cache. Dalam skenario deployment tersebut, buat kebijakan keamanan Google Cloud Armor yang menolak traffic yang tidak diinginkan di jalur permintaan tertentu, tetapi mengizinkan semua klien untuk mengakses konten statis di jalur permintaan yang berbeda.

Dalam situasi lain, meskipun konten ditayangkan secara efisien dari cache, klien berbahaya atau rusak dapat menghasilkan permintaan dalam volume tinggi yang mengakibatkan cache tidak ditemukan dan mengharuskan server origin yang mendasarinya untuk mengambil atau menghasilkan konten yang diminta. Hal ini dapat membebani resource yang terbatas dan memiliki dampak negatif terhadap ketersediaan aplikasi untuk semua pengguna. Anda dapat membuat kebijakan keamanan Google Cloud Armor untuk mencocokkan tanda tangan klien yang menyebabkan masalah dan menolak permintaan sebelum mencapai server asal dan memengaruhi performa.

Untuk melakukannya, ikuti langkah-langkah berikut:

  1. Buat kebijakan keamanan Google Cloud Armor.
  2. Konfigurasikan aturan; misalnya, aturan berikut menolak akses ke "/admin":

    request.path.contains("/admin") && !inIpRange(origin.ip, '<allowed_ip_range>')
    
  3. Lampirkan kebijakan keamanan dari langkah 1 ke layanan backend yang telah mengaktifkan Cloud CDN.

Langkah selanjutnya