- Sejak 2023, total 4 kerentanan bypass log masuk Azure Entra ID telah ditemukan, dan dua kasus terbaru dipastikan sebagai masalah serius yang tetap memungkinkan penerbitan token valid
- GraphGoblin melewati pembuatan log dengan mengulang parameter
scopepada alur OAuth2 ROPC, sementara Graph**** membuat log benar-benar tidak tercatat dengan string User-Agent lebih dari 50.000 karakter - Kedua kerentanan diduga disebabkan oleh kegagalan logging akibat panjang kolom SQL terlampaui, dan Microsoft telah memperbaikinya setelah laporan diterima
- Microsoft mengklasifikasikan masalah ini sebagai tingkat “Medium” dan memperbaikinya diam-diam tanpa imbalan atau pengakuan resmi, meski menurut CVSS tingkatnya dinilai High (7,5~8,7)
- Karena cacat akibat kegagalan validasi input yang berulang terus muncul, verifikasi silang log dan penguatan aturan deteksi berbasis KQL disebut sebagai tugas penting bagi penanggung jawab keamanan
Pengungkapan kerentanan bypass log masuk Azure Entra ID
- Sejak 2023, total 4 kerentanan bypass log masuk Azure Entra ID telah ditemukan
- Dua kasus awal hanya memungkinkan verifikasi validitas kata sandi, tetapi dua kasus terbaru berada pada tingkat yang lebih serius karena memungkinkan penerbitan token valid
- Semua kerentanan kini telah diperbaiki oleh Microsoft
-
Ringkasan GraphNinja dan GraphGhost
- GraphNinja: saat mencoba login dengan menentukan endpoint tenant lain, validitas kata sandi dapat diketahui tetapi log tidak dibuat
- Penyerang dapat mengirim permintaan autentikasi ke tenant eksternal dan memeriksa dari respons apakah kata sandi benar
- Microsoft kemudian menambahkan logging tambahan untuk mengatasi masalah ini
- GraphGhost: jika menggunakan Client ID yang salah, alur autentikasi gagal setelah verifikasi kata sandi, dan di log hanya ditampilkan sebagai kegagalan
- Informasi bahwa kata sandi benar tidak tercatat di log admin
- Microsoft memperbaikinya dengan menambahkan status verifikasi kata sandi ke log masuk
- GraphNinja: saat mencoba login dengan menentukan endpoint tenant lain, validitas kata sandi dapat diketahui tetapi log tidak dibuat
-
Kerentanan GraphGoblin
- GraphGoblin melewati pembuatan log dengan mengulang parameter
scopepada alur OAuth2 ROPC- Jika dimasukkan berulang ribuan kali dalam bentuk
"openid openid openid ...", token valid tetap diterbitkan tetapi tidak ada catatan sama sekali di log masuk Entra ID
- Jika dimasukkan berulang ribuan kali dalam bentuk
- Penyebabnya diduga adalah kegagalan INSERT akibat panjang kolom SQL terlampaui
- Diperkirakan penyimpanan log gagal karena string scope berulang melebihi panjang field database
- Microsoft kesulitan mereproduksi masalah ini, tetapi memperbaikinya setelah bukti video diberikan
- GraphGoblin melewati pembuatan log dengan mengulang parameter
-
Graph****** (bypass berbasis User-Agent)
- Jika string panjang lebih dari 50.000 karakter dimasukkan ke field User-Agent, log tidak akan dibuat
- Permintaan autentikasi diproses normal dan token diterbitkan, tetapi log sepenuhnya hilang
- Diduga karena kegagalan logging akibat panjang kolom SQL terlampaui
- Ditemukan pada 2025-09-28, dan pada 2025-10-08 Microsoft ternyata sudah menyelesaikan perbaikannya sebelum laporan masuk
- Jika string panjang lebih dari 50.000 karakter dimasukkan ke field User-Agent, log tidak akan dibuat
-
Ringkasan timeline
- 2025-09-20: GraphGoblin pertama kali ditemukan
- 2025-09-26: GraphGoblin dilaporkan ke Microsoft
- 2025-09-28: Graph****** ditemukan
- 2025-10-08: Perbaikan Graph****** selesai
- 2025-11-21: Microsoft berhasil mereproduksi GraphGoblin dan mulai memperbaikinya
Respons dan penilaian Microsoft
- Microsoft mengklasifikasikan kerentanan ini sebagai tingkat “Medium” dan tidak memberikan imbalan maupun pengakuan publik
- Pada dua kasus sebelumnya (2023~2024), ada imbalan dan pengakuan
- Kali ini, meski merupakan masalah serius yang memungkinkan penerbitan token valid, masalah tersebut dinilai tidak penting
- Berdasarkan CVSS v3.1 nilainya 7,5 (High), dan berdasarkan v4.0 8,7 (High)
- Skor tinggi dihasilkan karena dampak terhadap Integrity
- Hilangnya log dianggap sebagai kerusakan langsung pada komponen keamanan
- Microsoft menyelesaikan perbaikan dalam 2 minggu setelah berhasil mereproduksi masalah
- Sebelumnya, perbaikan GraphNinja memakan waktu 7 bulan, dan GraphGhost 5 bulan
Cara mendeteksi bypass log
- Melalui kueri KQL, Session ID atau UniqueTokenIdentifier pada log Graph Activity dapat dibandingkan dengan Sign-In log
- Sesi yang ada di Graph Activity tetapi tidak ada di Sign-In log dapat dianggap sebagai login yang dibypass
- Namun, pengumpulan log Graph Activity hanya tersedia jika memiliki lisensi E5
- Contoh kueri KQL:
MicrosoftGraphActivityLogs | where TimeGenerated > ago(8d) | join kind=leftanti (union isfuzzy=true SigninLogs, AADNonInteractiveUserSignInLogs, AADServicePrincipalSignInLogs, AADManagedIdentitySignInLogs, MicrosoftServicePrincipalSignInLogs | where TimeGenerated > ago(90d) | summarize arg_max(TimeGenerated, *) by UniqueTokenIdentifier ) on $left.SignInActivityId == $right.UniqueTokenIdentifier- Jika perlu, perbandingan juga bisa dilakukan berdasarkan
SessionId - Berdasarkan hasil deteksi, Azure Log Search Alert Rule dapat dikonfigurasi
- Jika perlu, perbandingan juga bisa dilakukan berdasarkan
Ringkasan empat bypass log masuk
| Waktu ditemukan | Metode | Token diterbitkan | Diakui Microsoft |
|---|---|---|---|
| 2023-08 / 2024-05 | Log verifikasi kata sandi tidak dibuat dengan menentukan tenant ID eksternal | X | X |
| 2024-12 / 2025-04 | Memicu kegagalan autentikasi dengan Client ID yang salah | X | X |
| 2025-09-20 | Overflow kolom SQL melalui pengulangan input scope | O | X |
| 2025-09-28 | Overflow kolom SQL melalui string User-Agent panjang | O | N/A |
Kritik terhadap proses keamanan Microsoft
-
Cacat ditemukan pada banyak parameter fitur logging login Entra ID
- Kerentanan berulang terjadi pada field inti seperti
tenant ID,client ID,scope, danuser-agent - Ini bukan serangan kompleks, melainkan masalah akibat kegagalan validasi input yang sederhana
- Muncul kritik atas kurangnya review keamanan dan kontrol kualitas Microsoft
- Cacat serupa terus berulang di area yang sama selama bertahun-tahun
- Muncul dugaan soal kemungkinan penggunaan AI code generation atau celah dalam proses pengelolaan kode
- Kerentanan berulang terjadi pada field inti seperti
-
Kurangnya transparansi pengungkapan
- Keempat kasus tidak menerima CVE dan tidak ada pengumuman resmi
- Microsoft sebagai CNA secara eksklusif menentukan apakah kerentanan produknya sendiri akan diungkap atau tidak
Kesimpulan
- Log masuk Azure Entra ID adalah data inti deteksi intrusi bagi organisasi di seluruh dunia
- Jika log hilang, seluruh sistem deteksi serangan bisa lumpuh
- Keempat kerentanan yang ditemukan semuanya berada pada tingkat yang bisa dideteksi hanya dengan input fuzzing sederhana
- Microsoft perlu memperkuat penjelasan publik dan prosedur review keamanan yang transparan terkait cacat berulang ini
- Administrator dan penanggung jawab keamanan perlu melengkapi pertahanan melalui verifikasi silang log dan aturan deteksi berbasis KQL
1 komentar
Komentar Hacker News
Ini mengingatkan pada laporan insiden pelanggaran Microsoft yang diumumkan CISA
Itu adalah kasus ketika peretas yang didukung negara menembus Microsoft lalu menyusupi berbagai lembaga termasuk Departemen Luar Negeri AS
Hal yang mengejutkan adalah, yang menemukan intrusi itu bukan Microsoft melainkan seorang administrator sistem di Departemen Luar Negeri yang melihat anomali pada log email
Tautan laporan CISA
Masalah era Windows dibawa begitu saja ke cloud, dan sudah dua kali ada insiden kegagalan isolasi antar-tenant
Artikel terkait: Azure’s Security Vulnerabilities Are Out of Control / Microsoft comes under blistering criticism for “grossly irresponsible” security
Dalam artikel yang secara frontal mengkritik Azure oleh ProPublica dan ArsTechnica, disebutkan bahwa para pakar siber federal menyebut cloud Microsoft itu “payah”
Tautan artikel
Kondisi keamanan siber saat ini terlalu rapuh untuk sistem yang diandalkan seluruh peradaban
Rasanya seperti menutup kapal bocor dengan duct tape lalu berlayar ke tengah samudra
Dalam diskusi terkait log SQL, tampaknya penyerang mengirim input yang terlalu panjang sehingga INSERT gagal karena melebihi panjang kolom
Akibatnya, catatan percobaan login tidak tersimpan
Ini tampak seperti masalah struktural dari alur autentikasi yang dirancang terlalu rumit
Saya pernah mengalami audit log Azure tercatat berbeda dari tindakan yang benar-benar terjadi
Saya menghapus client secret, UI mengatakan akan menghapus B, tetapi API justru bertindak dengan hanya menyisakan A
Pada akhirnya log mencatat seolah itu tindakan saya, padahal sebenarnya bug sistem
Setelah pengalaman seperti ini, kepercayaan saya bukan hanya pada log Azure tetapi juga audit log secara umum ikut goyah
Menurut saya, itu berbahaya jika dipakai sebagai bukti di pengadilan
Dibanding kerentanan EntraID belakangan ini, bypass log terlihat kurang penting
Microsoft bahkan pernah menaruh kerentanan kritis di Notepad, jadi hal seperti ini tidak mengejutkan
Saat dulu mengevaluasi Azure VPN, sama sekali tidak ada log sukses/gagal koneksi
Ketika saya mengangkat masalah itu, Microsoft malah menyuruh saya “daftarkan itu sebagai permintaan fitur baru”
Sejak saat itu saya kehilangan kepercayaan sepenuhnya pada Azure. Seiring waktu rasanya tidak membaik, malah makin buruk
Alasan para admin TI terus memakai Microsoft adalah karena tidak ada pilihan lain
Anggaran kecil dan tenaga kerja juga kurang, jadi dipertahankan hanya sampai level cukup untuk terima gaji dan pulang kerja
Saat Microsoft gagal mereproduksi kerentanan Azure lalu meminta bukti video, sangat mengesankan bahwa itu ditunjukkan hanya dengan satu baris perintah curl
Benar-benar momen yang memuaskan