External Exposure Security Command Center adalah Google Cloud layanan yang membantu Anda mengelola dan mengurangi area serangan eksternal melalui penemuan otomatis dan validasi risiko.
Karena pemindai otomatis dapat menargetkan aset yang terekspos internet dalam hitungan menit, External Exposure secara proaktif menemukan eksposur yang tidak disengaja dan resource bayangan sebelum penyerang dapat menemukan dan mengeksploitasinya.
Dengan menganalisis lingkungan Anda dari perspektif eksternal, layanan ini mencoba mengonfirmasi apa yang benar-benar dapat dijangkau dari internet dan mengidentifikasi eksposur mana yang sebenarnya dapat dieksploitasi.
External Exposure terus memindai alamat IP yang menghadap ke eksternal, nama host, nama domain, dan URL di seluruh Google Cloud lingkungan Anda. Fitur ini menggunakan pemindaian jaringan untuk mengonfirmasi resource dan aplikasi mana yang dapat dijangkau dari internet publik.
Untuk setiap eksposur yang dikonfirmasi, External Exposure melakukan hal berikut:
Melacak dan menampilkan jalur Google Cloud jaringan untuk load balancer eksternal, kebijakan Google Cloud Armor, aturan firewall, Private Service Connect, Cloud Interconnect, dan layanan backend hingga resource yang terekspos.
Resource ini dapat berupa instance Compute Engine atau Pod Google Kubernetes Engine (GKE), termasuk layanan atau aplikasi yang terekspos.
Integrasi mendalam dengan fabric jaringan Google membantu memberikan konteks yang dapat ditindaklanjuti sehingga Anda dapat segera menerapkan mitigasi pencegahan, seperti mengunci aturan firewall tertentu atau mengonfigurasi Google Cloud Armor.
Melakukan fingerprinting untuk mencoba mengidentifikasi software server atau aplikasi web tertentu yang berjalan di setiap aset yang terekspos.
Jika dapat mengidentifikasi layanan atau software yang terekspos, layanan ini akan mengidentifikasi kerentanan apa pun yang diketahui memengaruhinya.
Menggunakan detektor pasif dan aktif tingkat lanjut untuk menguji kemampuan eksploitasi di dunia nyata dengan memvalidasi kerentanan, kesalahan konfigurasi, dan penggunaan kredensial default atau lemah.
Sebelum memulai
Bagian ini menjelaskan cara menyiapkan lingkungan Anda untuk menggunakan External Exposure.
Mengaktifkan Security Center Management API
Jika berencana menggunakan Security Command Center API, Anda harus mengaktifkan Security Center Management API untuk project kuota Anda dan, jika kebijakan organisasi digunakan yang membatasi penggunaan API, pastikan Security Center Management API diizinkan. Security Center Management API digunakan untuk mengontrol status pengaktifan layanan Security Command Center seperti External Exposure.
Di terminal, aktifkan Security Center Management API untuk project kuota Anda:
gcloud services enable securitycentermanagement.googleapis.com \ --project=QUOTA_PROJECT_IDGanti QUOTA_PROJECT_ID dengan ID project yang Anda gunakan untuk mengelola kuota.
Jika Anda memiliki kebijakan organisasi yang membatasi penggunaan API, pastikan Security Center Management API diizinkan. Untuk mengetahui informasi selengkapnya, lihat Meninjau kebijakan organisasi.
Jika Anda ingin menerima insight jalur eksposur jaringan dalam temuan, pastikan Anda mengaktifkan External Exposure di tingkat organisasi atau folder.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk mengonfigurasi External Exposure dan melihat data dasbor, minta administrator untuk memberi Anda peran IAM berikut di organisasi, folder, atau project Anda:
-
Mengonfigurasi setelan External Exposure di Security Command Center dan melihat data dasbor:
Security Center Admin (
roles/securitycenter.admin) -
Memberikan peran kepada agen layanan, seperti peran
externalexposure.serviceAgent: Security Admin (roles/iam.securityAdmin) -
Membuat dan mengelola akun layanan:
Service Account Admin (
roles/iam.serviceAccountAdmin) -
Hanya melihat data dasbor:
Security Center Admin Viewer (
roles/securitycenter.adminViewer) -
Melihat dasbor External Exposure dan metrik pemindaian di konsol, CLI, atau API:
External Exposure Viewer (
roles/externalexposure.viewer)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Perintah Google Cloud CLI berikut dapat digunakan untuk menetapkan peran sebelumnya kepada pengguna:
Menetapkan peran menggunakan gcloud CLI
Untuk memberikan peran Security Center Admin kepada pengguna, jalankan perintah berikut:
gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member=user:USER_EMAIL_ID \ --role=roles/securitycenter.adminUntuk memberikan peran Security Center Admin Viewer kepada pengguna, jalankan perintah berikut:
gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member=user:USER_EMAIL_ID \ --role=roles/securitycenter.adminViewerUntuk memberikan peran External Exposure Viewer kepada pengguna untuk akses metrik CLI atau API, jalankan perintah berikut:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=user:USER_EMAIL_ID \ --role=roles/externalexposure.viewerGanti kode berikut:
- ORGANIZATION_ID: ID organisasi numerik
- PROJECT_ID: project ID
- USER_EMAIL_ID: alamat email pengguna yang memerlukan akses
Mengaktifkan dan mengonfigurasi layanan
Untuk mengaktifkan dan mengonfigurasi External Exposure, selesaikan tugas di bagian berikut.
Anda dapat mengaktifkan dan mengonfigurasi layanan di tingkat organisasi, folder, atau project. Saat menggunakan API, jika Anda ingin mengonfigurasi setelan di tingkat
folder atau organisasi, bukan tingkat project, ganti
projects/PROJECT_ID dengan
folders/FOLDER_ID atau
organizations/ORGANIZATION_ID di semua URL permintaan dan
parameter data JSON.
Mengaktifkan External Exposure
Aktifkan External Exposure untuk organisasi, folder, atau project Anda.
Setelah mengaktifkan layanan, pastikan untuk memberikan izin yang diperlukan kepada agen layanan seperti yang dijelaskan dalam Memberikan izin agen layanan.
Konsol
Di Google Cloud konsol, buka halaman Service Enablement untuk External Exposure.
Pilih organisasi atau project Anda.
Pada tab Service Enablement, di kolom External Exposure , pilih status pengaktifan organisasi, folder, atau project yang ingin Anda ubah, lalu pilih salah satu opsi berikut:
- Enable: mengaktifkan External Exposure.
- Disable: menonaktifkan External Exposure.
- Inherit: Mewarisi setelan dari resource induk kecuali diganti pada resource turunan.
gcloud
Aktifkan Security Center Management API dan aktifkan External Exposure untuk cakupan target Anda.
Di terminal, aktifkan API untuk project kuota Anda:
gcloud services enable securitycentermanagement.googleapis.com \ --project=QUOTA_PROJECT_IDDi terminal, aktifkan External Exposure menggunakan Security Center Management API:
curl --request PATCH \ "https://securitycentermanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityCenterServices/external_exposure?updateMask=intended_enablement_state" \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --header "X-Goog-User-Project: QUOTA_PROJECT_ID" \ --header "Accept: application/json" \ --header "Content-Type: application/json" \ --data '{ "intendedEnablementState": "ENABLED", "name": "projects/PROJECT_ID/locations/global/securityCenterServices/external_exposure" }' \ --compressedGanti kode berikut:
- QUOTA_PROJECT_ID: ID project yang Anda gunakan untuk mengelola kuota.
- PROJECT_ID: ID project tempat Anda ingin mengaktifkan External Exposure.
Memberikan izin agen layanan
Bergantung pada tingkat resource tempat Anda mengaktifkan layanan, Google Cloud akan menghasilkan agen layanan:
- Tingkat organisasi atau folder: Agen layanan tingkat organisasi atau tingkat folder akan dibuat.
- Tingkat project: Agen layanan tingkat project akan dibuat.
Untuk memberikan izin di tingkat organisasi, di terminal, jalankan perintah gcloud berikut:
gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
--member="serviceAccount:service-org-ORGANIZATION_ID@gcp-sa-ee-hpsa.iam.gserviceaccount.com" \
--role=roles/externalexposure.serviceAgent
Ganti ORGANIZATION_ID dengan ID numerik organisasi Anda.
Untuk memberikan izin di tingkat folder, di terminal, jalankan perintah gcloud berikut:
gcloud resource-manager folders add-iam-policy-binding FOLDER_ID \
--member="serviceAccount:service-folder-FOLDER_ID@gcp-sa-ee-hpsa.iam.gserviceaccount.com" \
--role=roles/externalexposure.serviceAgent
Ganti FOLDER_ID dengan ID numerik folder Anda.
Memberikan akses masuk ke perimeter layanan
Jika Anda menggunakan Kontrol Layanan VPC, berikan akses masuk agen layanan External Exposure ke perimeter layanan yang melindungi project yang ingin Anda pindai. Jika Anda tidak memberikan akses masuk, External Exposure tidak dapat melakukan pemindaian atau membuat temuan untuk project yang dilindungi oleh perimeter layanan.
Bergantung pada tingkat resource tempat layanan diaktifkan, ID akun layanan menggunakan salah satu format alamat email berikut:
Untuk organisasi atau folder:
service-RESOURCE_KEYWORD-RESOURCE_ID@gcp-sa-ee-hpsa.iam.gserviceaccount.comUntuk project:
service-project-PROJECT_NUMBER@gcp-sa-ee.iam.gserviceaccount.com
Ganti kode berikut:
RESOURCE_KEYWORD: kata kunciorgataufolderRESOURCE_ID: ID organisasi atau ID folderPROJECT_NUMBER: nomor project
Jika Anda memiliki akun layanan tingkat organisasi dan tingkat project, terapkan langkah-langkah berikut ke keduanya.
Untuk memberikan akses, tambahkan aturan ingress ke setiap perimeter layanan yang memblokir:
Di Google Cloud konsol, buka halaman Kontrol Layanan VPC:
Pilih kebijakan akses yang memblokir dan perimeter layanan.
Klik Edit , lalu Ingress policy.
Klik Add ingress rule dan konfigurasi blok From:
- Untuk Identity, pilih Selected identities & groups.
- Masukkan alamat email akun layanan External Exposure.
- Untuk Source, pilih All sources.
Konfigurasi blok To aturan:
- Untuk Project, pilih All projects.
- Untuk Operations or IAM roles, pilih All operations.
Klik Save.
Mengonfigurasi port kustom
Konfigurasi hingga 32 port kustom per project untuk dipindai selain port dasar:
Konsol
Di Google Cloud konsol, buka halaman Service Enablement:
Pilih organisasi atau project Anda.
Di kolom External Exposure pada baris yang ingin Anda ubah, klik Settings.
Di kolom Custom ports, masukkan nomor port yang dipisahkan koma.
Klik Save.
gcloud
Untuk mengonfigurasi port kustom untuk pemindaian, sertakan service_config di updateMask, dan tentukan bilangan bulat port dalam wrapper array ports di bagian objek serviceConfig. Contoh berikut mengonfigurasi port kustom 8081 dan 8188 untuk pemindaian:
curl --request PATCH \
"https://securitycentermanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityCenterServices/external_exposure?updateMask=service_config" \
--header "Authorization: Bearer $(gcloud auth print-access-token)" \
--header "X-Goog-User-Project: QUOTA_PROJECT_ID" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data '{
"serviceConfig": {
"ports": [8081, 8188]
},
"name": "projects/PROJECT_ID/locations/global/securityCenterServices/external_exposure"
}' \
--compressed
Ganti kode berikut:
- QUOTA_PROJECT_ID: ID project yang Anda gunakan untuk mengelola kuota.
- PROJECT_ID: ID project tempat Anda ingin mengonfigurasi port kustom.
Mengonfigurasi modul pemindaian
Konfigurasi modul pemindaian tertentu untuk diaktifkan atau dinonaktifkan:
Konsol
Di Google Cloud konsol, buka halaman Service Enablement:
Pilih organisasi atau project Anda.
Di kolom External Exposure pada baris yang ingin Anda ubah, klik Settings.
Di bagian Scanning modules, centang kotak untuk mengaktifkan atau menonaktifkan setiap modul (seperti antarmuka yang terekspos, API, kredensial lemah, atau RCE).
Klik Save.
gcloud
Untuk mengaktifkan atau menonaktifkan modul tertentu, sertakan modules di updateMask, dan tentukan status pengaktifan untuk setiap modul di objek modules. Contoh berikut mengaktifkan EXTERNALLY_EXPOSED_RCE_VULNERABILITY dan menonaktifkan EXTERNALLY_EXPOSED_WEAK_CREDENTIALS:
curl --request PATCH \
"https://securitycentermanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityCenterServices/external_exposure?updateMask=modules" \
--header "Authorization: Bearer $(gcloud auth print-access-token)" \
--header "X-Goog-User-Project: QUOTA_PROJECT_ID" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data '{
"modules": {
"EXTERNALLY_EXPOSED_RCE_VULNERABILITY": {
"intendedEnablementState": "ENABLED"
},
"EXTERNALLY_EXPOSED_WEAK_CREDENTIALS": {
"intendedEnablementState": "DISABLED"
}
},
"name": "projects/PROJECT_ID/locations/global/securityCenterServices/external_exposure"
}' \
--compressed
Ganti kode berikut:
- QUOTA_PROJECT_ID: ID project yang Anda gunakan untuk mengelola kuota.
- PROJECT_ID: ID project tempat Anda ingin mengonfigurasi modul.
Anda hanya dapat mengonfigurasi status pengaktifan untuk modul berikut:
EXTERNALLY_EXPOSED_UIEXTERNALLY_EXPOSED_APIEXTERNALLY_EXPOSED_WEAK_CREDENTIALSEXTERNALLY_EXPOSED_RCE_VULNERABILITYEXTERNALLY_EXPOSED_ARBITRARY_DATA_READ
Semua modul External Exposure lainnya (termasuk pemeriksaan penyimpanan database, workload tanpa server, dan load balancer) diaktifkan secara default dan tidak muncul di halaman konfigurasi modul.
Setelah External Exposure diaktifkan, pemindaian batch berkelanjutan akan berjalan secara otomatis untuk mengidentifikasi alamat IP eksternal yang terekspos, menyelidiki layanan yang berjalan, dan memvalidasi kerentanan aktif.
Menyelidiki temuan
Setelah mengaktifkan External Exposure, Anda dapat melihat temuan di Google Cloud konsol. Di Security Command Center, buka halaman Ringkasan Risiko dan lihat dasbor External Exposure. Dasbor ini tersedia saat cakupan Anda ditetapkan ke organisasi, folder, atau project. Untuk mengetahui informasi selengkapnya tentang dasbor ini, lihat Menilai risiko secara a sekilas.
Untuk mengambil temuan External Exposure aktif menggunakan CLI, jalankan perintah berikut:
gcloud alpha scc findings list projects/PROJECT_ID \
--location=global \
--filter="state=\"ACTIVE\" AND finding_class=\"EXTERNAL_EXPOSURE\""
Ganti PROJECT_ID dengan ID project tempat Anda ingin melihat temuan.
Memahami detail temuan
Temuan yang termasuk dalam class EXTERNAL_EXPOSURE mengidentifikasi jenis risiko dan cara resource terekspos.
Untuk mengetahui daftar kategori risiko terperinci yang dihasilkan untuk temuan ini
(seperti EXTERNALLY_EXPOSED_VM_INSTANCE atau
EXTERNALLY_EXPOSED_SERVERLESS_WORKLOAD), lihat Temuan External Exposure.
Semua temuan class EXTERNAL_EXPOSURE mencakup detail berikut:
- Layanan yang terekspos: Aplikasi web, software server, atau protokol tertentu yang diidentifikasi di port aktif.
- Insight jalur jaringan: Konektivitas pelacakan jalur jaringan dari internet publik melalui load balancer, aturan penerusan, dan layanan backend hingga aset target.
- Endpoint yang terekspos: Resource target yang mendasarinya (misalnya, instance Compute Engine atau Pod Google Kubernetes Engine (GKE)).
Jika versi layanan atau software yang terekspos dapat diidentifikasi, temuan tersebut juga akan mencantumkan kerentanan CVE yang memengaruhinya.
Memprioritaskan temuan dengan skor eksposur serangan
Temuan External Exposure terintegrasi dengan Simulasi jalur serangan untuk membantu menyediakan titik masuk yang dikonfirmasi, nyata ke lingkungan Anda. Saat eksposur yang dikonfirmasi terhubung ke jalur pergerakan lateral potensial (misalnya, akun layanan yang terekspos yang dapat menjangkau database BigQuery atau bucket Cloud Storage yang sensitif), temuan tersebut akan menerima skor eksposur serangan. Anda dapat menggunakan skor ini untuk memprioritaskan pemulihan eksposur yang menimbulkan risiko terbesar bagi resource bernilai tinggi Anda.
Memantau metrik pemindaian
Untuk membantu Anda mengonfirmasi bahwa External Exposure beroperasi dengan sukses di seluruh lingkungan Anda, konsol akan menampilkan metrik pemindaian batch berkelanjutan:
- Pemindaian terakhir: Stempel waktu siklus pemindaian yang paling baru selesai, yang mengonfirmasi bahwa temuan mencerminkan tampilan resource Anda saat ini.
- Pemindaian berikutnya: Waktu mulai terjadwal dari siklus pemindaian berikutnya.
- Project yang berhasil: Jumlah total project yang berhasil dianalisis selama siklus pemindaian terbaru.
- Project yang dikecualikan: Jumlah total project yang
dilewati karena kebijakan organisasi atau batasan Kontrol Layanan VPC membatasi
pemindai untuk mengakses resource. Saat project dilewati, Security Command Center akan membuat satu atau beberapa temuan class
SCC_ERROR. - Resource yang terekspos: Jumlah total target resource unik yang diidentifikasi sebagai dapat dijangkau secara publik.
- Port publik yang terekspos: Jumlah total port eksternal aktif yang berbeda yang terdeteksi di seluruh resource Anda yang terekspos.
Mengidentifikasi traffic pemindai di log Anda
Saat External Exposure secara aktif memindai resource yang menghadap ke eksternal, Anda mungkin melihat permintaan pemindaian masuk di log layanan, seperti log permintaan Cloud Run di Cloud Logging.
Untuk memverifikasi bahwa permintaan masuk berasal dari External Exposure, bukan pihak ketiga yang tidak sah, periksa entri log untuk kolom userAgent di bagian httpRequest. Semua permintaan aktif dari layanan mengidentifikasi dirinya dengan agen pengguna TsunamiSecurityScanner.
Contoh berikut menunjukkan entri log permintaan Cloud Logging yang dibuat saat External Exposure memindai layanan Cloud Run yang terekspos:
{
"httpRequest": {
"latency": "0.004745622s",
"protocol": "HTTP/1.1",
"remoteIp": "2600:1900:4180:5b2:0:1ae::",
"requestMethod": "POST",
"requestSize": "441",
"requestUrl": "https://SERVICE_URL/mcp",
"responseSize": "131",
"serverIp": "2600:1900:4244:200::",
"status": 405,
"userAgent": "TsunamiSecurityScanner"
},
"insertId": "6a16af86000c7e0d0fdc1c58",
"labels": {
"goog-managed-by": "cloudfunctions",
"goog-serve-source": "user-container"
},
"logName": "projects/PROJECT_ID/logs/run.googleapis.com%2Frequests",
"receiveTimestamp": "2026-05-27T08:47:03.025492782Z",
"resource": {
"labels": {
"configuration_name": "SERVICE_NAME",
"location": "us-central1",
"project_id": "PROJECT_ID",
"revision_name": "REVISION_NAME",
"service_name": "SERVICE_NAME"
},
"type": "cloud_run_revision"
},
"severity": "WARNING",
"timestamp": "2026-05-27T08:47:02.811254Z"
}
Performa dan batasan
- Resource yang didukung: Instance Compute Engine, layanan Google Kubernetes Engine (GKE) dan pengontrol Ingress, database termasuk Cloud SQL dan AlloyDB untuk PostgreSQL, cluster Managed Service untuk Apache Spark, Cloud Run, Cloud Storage, dan Gemini Enterprise Agent Platform Workbench.
- Interval refresh: Untuk mengetahui informasi tentang frekuensi pemindaian External Exposure, lihat Kapan temuan dapat diharapkan di Security Command Center.
- Port yang dipindai: External Exposure secara otomatis memindai layanan yang berjalan di port umum dasar yang telah ditentukan, yang dikelompokkan terutama berdasarkan jenis layanan atau protokol:
- Administratif / shell: 22 (SSH), 23 (Telnet), 3389 (RDP)
- Web / HTTP(S): 80, 443, 8000, 8080, 8081, 8443, 8800, 9000, 9443
- Database: 1433, 1521, 3306, 5432, 9200, 11211, 27017, 6379
- Kubernetes dan gateway layanan: 6443, 10250, 10255, 15020, 15021
- Alat dan layanan developer umum lainnya: 1099, 1880, 2323, 2375, 2376, 2379, 2746, 3000, 3100, 4040, 5000, 5173, 5678, 6006, 6274, 7001, 7002, 7077, 7860, 8001, 8042, 8083, 8088, 8090, 8111, 8123, 8153, 8154, 8188, 8265, 8500, 8501, 8787, 8888, 8890, 8983, 9001, 9010, 9090, 9091, 9092, 9100, 9870, 9876, 11434, 15672, 18080, 54321, dan 61616.
- Port kustom: Selain port standar, Anda dapat mengonfigurasi hingga 32 port kustom per project untuk pemindaian. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi port kustom.
- Insight jalur jaringan: Temuan melaporkan satu jalur jaringan untuk resource yang terekspos.
- VM dengan load balancing: Jika beberapa instance VM terhubung ke load balancer, temuan hanya dilaporkan untuk salah satu instance VM.
- Prioritas temuan Cloud Run: Karena setiap
deployment Cloud Run menerima URL publik secara default,
temuan dievaluasi berdasarkan kebijakan IAM dan Identity-Aware Proxy
(IAP). Jika workload dilindungi oleh IAM atau IAP (menampilkan respons tidak sah HTTP 403), tingkat keparahan temuan akan diturunkan ke
LOWuntuk mengurangi gangguan informasi. - Insight jalur eksposur jaringan: Temuan tidak menyertakan insight jalur eksposur jaringan saat External Exposure diaktifkan di tingkat project. Untuk menerima insight jalur eksposur jaringan, aktifkan layanan di tingkat organisasi atau folder.