Mengumpulkan log Login Azure AD
Dokumen ini menjelaskan cara mengekspor log Login Azure AD ke Google Security Operations menggunakan Akun Penyimpanan Azure. Parser mengambil log mentah dalam format JSON dan mengubahnya menjadi format terstruktur yang mematuhi Unified Data Model (UDM). Alat ini mengekstrak kolom yang relevan, menormalisasi nilai, menangani stempel waktu yang berbeda, dan memperkaya data dengan konteks terkait keamanan seperti informasi pengguna, alamat IP, dan kebijakan akses bersyarat.
Sebelum memulai
- Pastikan Anda memiliki instance Google Chronicle.
- Pastikan Anda memiliki tenant Azure yang aktif.
- Pastikan Anda memiliki akses dengan hak istimewa ke Azure.
Mengonfigurasi Akun Azure Storage
- Di konsol Azure, telusuri Storage accounts.
- Klik + Create.
- Tentukan nilai untuk parameter input berikut:
- Langganan: pilih langganan.
- Resource Group: pilih grup resource.
- Region: pilih region.
- Performa: pilih performa (Standar direkomendasikan).
- Redundansi: pilih redundansi (GRS atau LRS direkomendasikan).
- Nama akun penyimpanan: masukkan nama untuk akun penyimpanan baru.
- Klik Review + create.
- Tinjau ringkasan akun, lalu klik Buat.
- Dari halaman Ringkasan Akun Penyimpanan, pilih submenu Kunci akses di Keamanan + jaringan.
- Klik Tampilkan di samping kunci1 atau kunci2
- Klik Salin ke papan klip untuk menyalin kunci.
- Simpan kunci di lokasi yang aman untuk digunakan nanti.
- Dari halaman Ringkasan Akun Penyimpanan, pilih submenu Endpoint di Setelan.
- Klik Salin ke papan klip untuk menyalin URL endpoint Layanan blob (misalnya,
https://<storageaccountname>.blob.core.windows.net
) - Simpan URL endpoint di lokasi yang aman untuk digunakan nanti.
Mengonfigurasi Ekspor Log untuk Log Login Azure AD
- Login ke Portal Azure menggunakan akun dengan hak istimewa Anda.
- Buka Microsoft Entra ID > Monitoring > Diagnostic settings.
- Klik Tambahkan setelan diagnostik.
- Masukkan nama deskriptif untuk setelan diagnostik.
- Pilih Log login.
- Pilih kotak centang Arsipkan ke akun penyimpanan sebagai tujuan.
- Tentukan Langganan dan Akun Penyimpanan.
Mengonfigurasi feed di Google SecOps untuk menyerap log Login Azure
- Buka Setelan SIEM > Feed.
- Klik Tambahkan baru.
- Di kolom Feed name, masukkan nama untuk feed (misalnya, Azure Sign-In Logs).
- Pilih Microsoft Azure Blob Storage sebagai Jenis sumber.
- Pilih Login Azure sebagai Jenis log.
- Klik Berikutnya.
Tentukan nilai untuk parameter input berikut:
- URI Azure: URL endpoint blob.
ENDPOINT_URL/BLOB_NAME
- Ganti kode berikut:
ENDPOINT_URL
: URL endpoint blob (https://<storageaccountname>.blob.core.windows.net
)BLOB_NAME
: nama blob (seperti,insights-logs-<logname>
)
- URI adalah: pilih JENIS URI sesuai dengan konfigurasi aliran log (File tunggal | Direktori | Direktori yang menyertakan subdirektori).
Opsi penghapusan sumber: pilih opsi penghapusan sesuai preferensi Anda.
Kunci bersama: kunci akses ke Azure Blob Storage.
Namespace aset: namespace aset.
Label penyerapan: label yang akan diterapkan ke peristiwa dari feed ini.
- URI Azure: URL endpoint blob.
Klik Berikutnya.
Tinjau konfigurasi feed baru Anda di layar Finalize, lalu klik Submit.
Tabel Pemetaan UDM
Kolom log | Pemetaan UDM | Logika |
---|---|---|
AppDisplayName | read_only_udm.target.application | Dipetakan langsung dari kolom AppDisplayName dalam log mentah. |
AppId | read_only_udm.security_result.detection_fields.value | Dipetakan langsung dari kolom AppId dalam log mentah. Kunci ditetapkan ke appId . |
Kategori | read_only_udm.security_result.category_details | Dipetakan langsung dari kolom Category dalam log mentah. |
ConditionalAccessPolicies[].displayName | read_only_udm.security_result.rule_name | Dipetakan langsung dari kolom displayName dalam array ConditionalAccessPolicies di log mentah. |
ConditionalAccessPolicies[].enforcedGrantControls[] | read_only_udm.security_result.rule_labels.value | Dipetakan langsung dari array enforcedGrantControls dalam array ConditionalAccessPolicies di log mentah. Kunci ditetapkan ke applied_conditional_access_policies_enforced_grant_controls . |
ConditionalAccessPolicies[].enforcedSessionControls[] | read_only_udm.security_result.rule_labels.value | Dipetakan langsung dari array enforcedSessionControls dalam array ConditionalAccessPolicies di log mentah. Kunci ditetapkan ke applied_conditional_access_policies_enforced_session_controls . |
ConditionalAccessPolicies[].id | read_only_udm.security_result.rule_id | Dipetakan langsung dari kolom id dalam array ConditionalAccessPolicies di log mentah. |
ConditionalAccessPolicies[].Result | read_only_udm.security_result.rule_labels.value | Dipetakan langsung dari kolom Result dalam array ConditionalAccessPolicies di log mentah. Kunci ditetapkan ke applied_conditional_access_policies_result . |
ConditionalAccessStatus | read_only_udm.additional.fields.value.string_value | Dipetakan langsung dari kolom ConditionalAccessStatus dalam log mentah. Kunci ditetapkan ke conditionalAccessStatus . |
CorrelationId | read_only_udm.security_result.detection_fields.value | Dipetakan langsung dari kolom CorrelationId dalam log mentah. Kunci ditetapkan ke correlationId . |
DurationMs | read_only_udm.additional.fields.value.string_value | Dipetakan langsung dari kolom DurationMs dalam log mentah. Kunci ditetapkan ke durationMs . |
HomeTenantId | read_only_udm.security_result.detection_fields.value | Dipetakan langsung dari kolom HomeTenantId dalam log mentah. Kunci ditetapkan ke HomeTenantId . |
IPAddress | read_only_udm.principal.asset.ip, read_only_udm.principal.ip | Dipetakan langsung dari kolom IPAddress dalam log mentah. |
ID | read_only_udm.security_result.detection_fields.value | Dipetakan langsung dari kolom Id dalam log mentah. Kunci ditetapkan ke id . |
Identitas | read_only_udm.target.resource.attribute.labels.value | Dipetakan langsung dari kolom Identity dalam log mentah. Kunci ditetapkan ke identity . |
Tingkat | read_only_udm.security_result.severity, read_only_udm.security_result.severity_details | Dipetakan langsung dari kolom Level dalam log mentah. Tingkat keparahan ditentukan berdasarkan nilai Level : Information , Informational , 0 , atau 4 dipetakan ke INFORMATIONAL ; Warning , 1 , atau 3 dipetakan ke MEDIUM ; Error atau 2 dipetakan ke ERROR ; Critical dipetakan ke CRITICAL . |
OperationName | read_only_udm.metadata.product_event_type | Dipetakan langsung dari kolom OperationName dalam log mentah. |
ResourceGroup | read_only_udm.security_result.detection_fields.value | Dipetakan langsung dari kolom ResourceGroup dalam log mentah. Kunci ditetapkan ke ResourceGroup . |
ResultSignature | read_only_udm.additional.fields.value.string_value | Dipetakan langsung dari kolom ResultSignature dalam log mentah. Kunci ditetapkan ke resultSignature . |
ResultType | read_only_udm.additional.fields.value.string_value | Dipetakan langsung dari kolom ResultType dalam log mentah. Kunci ditetapkan ke resultType . |
TenantId | read_only_udm.metadata.product_deployment_id | Dipetakan langsung dari kolom TenantId dalam log mentah. |
TimeGenerated | read_only_udm.metadata.event_timestamp.seconds, read_only_udm.metadata.event_timestamp.nanos | Dipetakan langsung dari kolom TimeGenerated dalam log mentah. Kolom diuraikan sebagai stempel waktu dan digunakan untuk mengisi kolom seconds dan nanos . |
TokenIssuerType | read_only_udm.security_result.detection_fields.value | Dipetakan langsung dari kolom TokenIssuerType dalam log mentah. Kunci ditetapkan ke TokenIssuerType . |
UniqueTokenIdentifier | read_only_udm.security_result.detection_fields.value | Dipetakan langsung dari kolom UniqueTokenIdentifier dalam log mentah. Kunci ditetapkan ke UniqueTokenIdentifier . |
UserAgent | read_only_udm.network.http.user_agent, read_only_udm.network.http.parsed_user_agent | Dipetakan langsung dari kolom UserAgent dalam log mentah. Kolom diuraikan sebagai string agen pengguna dan digunakan untuk mengisi objek parsed_user_agent . |
UserDisplayName | read_only_udm.target.user.user_display_name | Dipetakan langsung dari kolom UserDisplayName dalam log mentah. |
ID Pengguna | read_only_udm.target.user.userid | Dipetakan langsung dari kolom UserId dalam log mentah. |
UserPrincipalName | read_only_udm.target.user.email_addresses | Dipetakan langsung dari kolom UserPrincipalName dalam log mentah, tetapi hanya jika cocok dengan pola alamat email. |
UserType | read_only_udm.target.user.attribute.roles.name | Dipetakan langsung dari kolom UserType dalam log mentah. |
_Internal_WorkspaceResourceId | read_only_udm.security_result.detection_fields.value | Dipetakan langsung dari kolom _Internal_WorkspaceResourceId dalam log mentah. Kunci ditetapkan ke Internal_WorkspaceResourceId . |
_ItemId | read_only_udm.security_result.detection_fields.value | Dipetakan langsung dari kolom _ItemId dalam log mentah. Kunci ditetapkan ke ItemId . |
properties.appId | read_only_udm.security_result.detection_fields.value | Dipetakan langsung dari kolom appId dalam objek properties di log mentah. Kunci ditetapkan ke appId . |
properties.authenticationDetails[].authenticationMethod | read_only_udm.security_result.detection_fields.value | Dipetakan langsung dari kolom authenticationMethod dalam array authenticationDetails di log mentah. Kunci ditetapkan ke authenticationMethod . |
properties.authenticationDetails[].authenticationMethodDetail | read_only_udm.security_result.detection_fields.value | Dipetakan langsung dari kolom authenticationMethodDetail dalam array authenticationDetails di log mentah. Kunci ditetapkan ke authenticationMethodDetail . |
properties.authenticationDetails[].authenticationStepDateTime | read_only_udm.security_result.detection_fields.value | Dipetakan langsung dari kolom authenticationStepDateTime dalam array authenticationDetails di log mentah. Kunci ditetapkan ke authenticationStepDateTime . |
properties.authenticationDetails[].authenticationStepRequirement | read_only_udm.security_result.detection_fields.value | Dipetakan langsung dari kolom authenticationStepRequirement dalam array authenticationDetails di log mentah. Kunci ditetapkan ke authenticationStepRequirement . |
properties.authenticationDetails[].authenticationStepResultDetail | read_only_udm.security_result.detection_fields.value | Dipetakan langsung dari kolom authenticationStepResultDetail dalam array authenticationDetails di log mentah. Kunci ditetapkan ke authenticationStepResultDetail . |
properties.authenticationDetails[].succeeded | read_only_udm.security_result.action, read_only_udm.security_result.action_details | Dipetakan langsung dari kolom succeeded dalam array authenticationDetails di log mentah. Jika nilainya true , tindakan ditetapkan ke ALLOW ; jika tidak, tindakan ditetapkan ke BLOCK . |
properties.conditionalAccessStatus | read_only_udm.additional.fields.value.string_value | Dipetakan langsung dari kolom conditionalAccessStatus dalam objek properties di log mentah. Kunci ditetapkan ke conditionalAccessStatus . |
properties.id | read_only_udm.security_result.detection_fields.value | Dipetakan langsung dari kolom id dalam objek properties di log mentah. Kunci ditetapkan ke id . |
properties.status.errorCode | read_only_udm.security_result.action | Jika nilainya 0, tindakan ditetapkan ke ALLOW ; jika tidak, tindakan ditetapkan ke BLOCK . |
properties.userId | read_only_udm.target.user.userid | Dipetakan langsung dari kolom userId dalam objek properties di log mentah. |
properties.userPrincipalName | read_only_udm.target.user.email_addresses | Dipetakan langsung dari kolom userPrincipalName dalam objek properties di log mentah, tetapi hanya jika cocok dengan pola alamat email. |
resourceId | read_only_udm.target.resource.name | Dipetakan langsung dari kolom resourceId dalam log mentah. |
waktu | read_only_udm.metadata.event_timestamp.seconds, read_only_udm.metadata.event_timestamp.nanos | Dipetakan langsung dari kolom time dalam log mentah. Kolom diuraikan sebagai stempel waktu dan digunakan untuk mengisi kolom seconds dan nanos . |
read_only_udm.extensions.auth.type | Nilai ditetapkan ke AUTHTYPE_UNSPECIFIED . |
|
read_only_udm.metadata.event_type | Nilai ditentukan berdasarkan keberadaan kolom principal.ip dan target.user.userid : jika keduanya ada, jenisnya ditetapkan ke USER_LOGIN ; jika hanya principal.ip yang ada, jenisnya ditetapkan ke STATUS_UPDATE ; jika tidak, jenisnya ditetapkan ke GENERIC_EVENT . |
Perubahan
2024-05-07
- Parser yang baru dibuat
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.