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 alamat IP yang diizinkan dan ditolak, serta aturan yang telah dikonfigurasi sebelumnya untuk mencegah serangan web yang umum.

Kontrol akses ke aplikasi dan layanan web Anda

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

Aktifkan akses bagi pengguna di alamat IP tertentu dengan daftar yang diizinkan

Kasus penggunaan yang umum untuk menempatkan alamat IP pengguna pada daftar yang diizinkan adalah saat Load Balancer Aplikasi eksternal global atau Load Balancer Aplikasi klasik hanya diakses oleh sekumpulan pengguna tertentu. Pada 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 pada daftar yang diizinkan sehingga hanya pengguna berikut yang memiliki akses ke load balancer.

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

Anda dapat 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 yang mengizinkan akses ke load balancer Anda. 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 lalu lintas lainnya ditolak.

Untuk membuat konfigurasi ini, ikuti langkah-langkah berikut:

  1. Membuat 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 izinkan menjadi aturan penolakan. Aturan default mengatur traffic yang tidak sesuai dengan aturan sebelumnya. Ini adalah aturan terakhir dalam kebijakan. Mengubah aturan dari allow menjadi deny akan memblokir semua traffic yang tidak berasal dari rentang dalam 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 Load Balancer dan backend Aplikasi klasik.

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

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

Blokir akses untuk pengguna di alamat IP tertentu yang memiliki daftar yang ditolak

Menggunakan daftar yang ditolak untuk membuat kebijakan keamanan Google Cloud Armor yang menolak traffic dari alamat IP atau rentang CIDR. Dalam 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 dengan menggunakan daftar tolak.
Membatasi akses load balancer dengan menggunakan daftar tolak (klik untuk memperbesar).

Aturan khusus untuk memfilter berdasarkan parameter Lapisan 3 hingga Lapisan 7

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

Contoh berikut adalah ekspresi yang ditulis dalam ekstensi Google Cloud Armor untuk Common Expression Language (CEL). Untuk mengetahui informasi lebih lanjut, baca Referensi bahasa aturan kustom.

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

Pada contoh berikut, permintaan dari 2001:db8::/32 (seperti penguji alfa) 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 versi OWASP

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

Untuk memitigasi risiko, ikuti langkah-langkah berikut:

  1. Buat atau identifikasi layanan backend dengan CDN yang diaktifkan.
  2. Membuat 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 umum. Aturan yang telah dikonfigurasi adalah kumpulan ekspresi yang telah ditetapkan dan dapat Anda tambahkan ke kebijakan keamanan Google Cloud Armor. Untuk menambahkan kumpulan ekspresi ini ke aturan, gunakan flag --expression gcloud atau Google Cloud Console. Untuk mengetahui informasi selengkapnya, baca bagian Membuat kebijakan, aturan, dan ekspresi keamanan.

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

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

evaluatePreconfiguredExpr('xss-stable')

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

evaluatePreconfiguredExpr('sqli-stable')

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

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

Mitigasi 10 teratas versi OWASP untuk workload hybrid

Google Cloud Armor menawarkan mitigasi untuk serangan berikut, baik di-deploy di Google Cloud,secara lokal, atau 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 10 Teratas OWASP.

Aturan WAF Google Cloud Armor yang telah dikonfigurasi sebelumnya 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 meletakkannya di tepi infrastruktur Google. Permintaan tidak di-proxy-kan ke layanan backend, di mana pun layanan backend di-deploy.

Untuk melindungi workload yang tidak dihosting oleh Google Cloud dari serangan ini di edge 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. Membuat 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 asal eksternal Cloud CDN dan pemantauan lapisan 7

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

Google Cloud Armor dan infrastruktur edge Google lainnya mengurangi dan menurunkan serangan L3/L4, memberikan pemberitahuan terkait aktivitas Lapisan 7 yang mencurigakan, dan siap menolak permintaan lapisan 7 yang tidak diinginkan dengan aturan kustom. Logging dan telemetri Google Cloud Armor di Cloud Logging, Cloud Monitoring, dan Security Command Center memberikan hasil analisis yang bisa ditindaklanjuti untuk aplikasi yang dilindungi, di mana pun aplikasi tersebut di-deploy.

Guna mengaktifkan perlindungan Google Cloud Armor untuk server asal 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. Membuat 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 dalam cache. Untuk mengetahui 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 menyalurkan permintaan ke berbagai URL, termasuk konten yang dapat di-cache dan tidak dapat disimpan dalam 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 mengakses konten statis di jalur permintaan yang berbeda.

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

Untuk melakukan hal ini, ikuti langkah-langkah berikut:

  1. Membuat 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