- Sistem anti-cheat berbasis kernel modern adalah salah satu perangkat lunak keamanan paling kompleks di lingkungan Windows, yang memantau memori dan event sistem pada level kernel bahkan saat game sedang berjalan
- Untuk mengatasi batas perlindungan mode pengguna, sistem ini memanfaatkan driver kernel dan memantau pembuatan proses·thread, pemuatan image, perubahan registry, dan lain-lain secara real-time
- Sistem utama seperti BattlEye, EasyAntiCheat, Vanguard, FACEIT AC bekerja dengan struktur tiga lapis berupa driver kernel·service·DLL game, dan Vanguard yang dimuat saat boot memiliki kendali paling kuat
- Sistem ini memblokir kecurangan dengan menggabungkan pertahanan berlapis seperti pemindaian memori, deteksi hooking, verifikasi integritas driver, respons terhadap serangan DMA, dan deteksi berbasis perilaku
- Pada akhirnya, attestation jarak jauh berbasis TPM dan verifikasi kepercayaan hardware muncul sebagai fondasi utama keamanan game
1. Batas perlindungan mode pengguna dan pergeseran ke kernel
- Proses mode pengguna berada di bawah otoritas kernel, sehingga mudah dilewati oleh cheat pada level driver kernel atau hypervisor
- Contoh: pemanggilan
ReadProcessMemory dapat dipalsukan melalui hooking di kernel
- Cheat mode kernel dapat memanipulasi memori game secara langsung dan menghindari deteksi di mode pengguna
- Untuk menghadapinya, anti-cheat berpindah ke level kernel agar dapat memantau pada tingkat hak akses yang sama
2. ‘Perlombaan senjata’ antara cheat dan anti-cheat
- Persaingan eskalasi hak akses terus berlanjut dari mode pengguna → kernel → hypervisor → DMA
- Anti-cheat merespons dengan pemblokiran driver, deteksi hypervisor, dan pertahanan DMA berbasis IOMMU
- Proses ini meningkatkan biaya dan tingkat kesulitan pembuatan cheat, sehingga menghalangi akses bagi pengguna umum
3. Sistem anti-cheat kernel utama
- BattlEye: berpusat pada driver kernel
BEDaisy.sys, mendaftarkan callback untuk proses·thread·pemuatan image
- EasyAntiCheat(EAC): dimiliki Epic Games, dengan struktur tiga lapis yang serupa
- Vanguard: memuat
vgk.sys saat boot, dengan model whitelist driver untuk kendali yang kuat
- FACEIT AC: memperoleh tingkat kepercayaan tinggi melalui pemantauan level kernel
- Makalah ARES 2024 menegaskan bahwa sistem-sistem ini memiliki struktur teknis yang mirip rootkit, tetapi tujuannya adalah pertahanan
4. Struktur tiga lapis anti-cheat kernel
- Driver kernel: melakukan hooking system call, pemindaian memori, dan kontrol akses
- Service mode pengguna: menangani komunikasi jaringan, manajemen ban, dan pengiriman telemetri
- DLL game: melakukan verifikasi di dalam proses game dan IPC dengan service
- Komunikasi dilakukan melalui IOCTL, Named Pipe, Shared Memory
5. Perbedaan pemuatan saat boot dan saat runtime
- BattlEye/EAC: memuat driver saat game dijalankan, lalu melakukan unload saat game ditutup
- Vanguard: dimuat saat boot dan memantau semua driver yang dimuat setelahnya
- Karena itu, restart sistem diperlukan, dan perlindungan dapat dimulai sejak tahap boot
6. Pemantauan berbasis callback kernel
- ObRegisterCallbacks: mengontrol akses handle proses, memblokir akses memori dari proses eksternal
- PsSetCreateProcessNotifyRoutineEx: memblokir pembuatan proses cheat
- PsSetCreateThreadNotifyRoutine: mendeteksi thread abnormal di dalam proses game
- PsSetLoadImageNotifyRoutine: mendeteksi pemuatan DLL yang tidak diizinkan
- CmRegisterCallbackEx: memantau perubahan registry
- Driver minifilter: memblokir akses ke file cheat pada level sistem file
7. Perlindungan memori dan pemindaian
- Pembatasan akses handle memblokir pembacaan/penulisan memori dari luar
- Verifikasi hash pada section kode mendeteksi patch kode
- Traversal pohon VAD mendeteksi memori eksekusi yang dipetakan secara manual
- Memori eksekusi anonim, DLL yang dipetakan manual, shellcode diidentifikasi dengan heuristik
8. Deteksi injeksi
- Berbagai teknik injeksi seperti CreateRemoteThread, APC, NtMapViewOfSection, Reflective DLL dideteksi
- Analisis stack frame (
RtlWalkFrameChain) digunakan untuk memeriksa apakah ada eksekusi kode yang tidak normal
9. Deteksi hooking
- IAT hooking: mendeteksi modifikasi pada import address table
- Inline hooking: memeriksa apakah ada patch dengan membandingkan instruksi JMP pada awal fungsi
- Pemeriksaan integritas SSDT, IDT, GDT mencegah hooking di level kernel
- Deteksi penggunaan syscall langsung memblokir upaya melewati
ntdll
10. Perlindungan level driver
- Mendeteksi driver tanpa tanda tangan dan mode test signing
- Mengelola blocklist untuk memblokir serangan BYOVD (penyalahgunaan driver rentan)
- Memantau struktur internal kernel seperti PiDDBCacheTable, MmUnloadedDrivers, BigPool untuk mendeteksi driver yang dipetakan manual
11. Anti-debugging dan pencegahan analisis
- NtQueryInformationProcess digunakan untuk memeriksa keberadaan debugger
- Variabel KdDebuggerEnabled mendeteksi kernel debugger
- Flag ThreadHideFromDebugger mendeteksi thread tersembunyi
- Pemeriksaan timing berbasis RDTSC, hardware breakpoint, dan keberadaan hypervisor digunakan untuk memblokir lingkungan analisis
12. Cheat berbasis DMA dan responsnya
- Perangkat PCIe DMA dapat membaca memori tanpa campur tangan CPU
- IOMMU membatasi akses DMA, tetapi dapat menjadi tidak efektif jika dinonaktifkan atau salah konfigurasi
- Penyamaran perangkat FPGA sebagai perangkat sah membuat deteksi menjadi sulit
- Secure Boot, TPM 2.0 dapat sedikit meredakan masalah ini melalui verifikasi integritas saat boot
13. Deteksi berbasis perilaku dan machine learning
- Analisis input mouse membedakan gerakan manusia dan auto-aim
- Model CNN·Transformer digunakan untuk mendeteksi triggerbot dan aimbot
- Graph neural network digunakan untuk mendeteksi kecurangan berbasis tim (wallhack·kolusi)
- Pipeline telemetri: penangkapan input di kernel → transmisi terenkripsi → analisis ML di server → keputusan ban
14. Penghindaran lingkungan virtual dan analisis
- VM dideteksi melalui bit hypervisor CPUID dan string vendor
- Jejak registry dan perangkat dari VMware, VirtualBox, Hyper-V diperiksa
- Lingkungan virtualisasi ganda dapat diidentifikasi melalui keterlambatan eksekusi perintah
15. Identifikasi hardware dan eksekusi ban
- HWID dibuat dari SMBIOS, disk, GPU, MAC, MachineGuid dan lain-lain
- HWID spoofing dicoba melalui manipulasi registry·driver·fisik,
tetapi dapat dideteksi melalui ketidakcocokan identifier atau format yang tidak normal
16. Tren ke depan dan pergeseran teknis
- Tahap setelah DMA adalah cheat berbasis firmware, yang membuat deteksi menjadi jauh lebih sulit
- Aimbot hardware berbasis AI sulit dibedakan dari input manusia
- Attestation jarak jauh berbasis TPM dan cloud gaming muncul sebagai alternatif jangka panjang
- Anti-cheat kernel tetap menjadi garis depan yang paling nyata, tetapi
verifikasi kepercayaan hardware dan verifikasi sisi server ditunjukkan sebagai arah akhir
1 komentar
Komentar Hacker News
Singkatnya, cheat modern menghindari anti-cheat dengan memakai hypervisor, patch BIOS, perangkat DMA, dan semacamnya
Semakin kuat perlindungan di level hardware, semakin ikut berevolusi pula para pembuat cheat
Namun dengan munculnya analisis permainan berbasis AI, pendekatan yang mendeteksi si cheater itu sendiri mulai terbukti efektif
Pada akhirnya, masa depan ada pada anti-cheat mode pengguna dan analisis gameplay, bukan mode kernel
Justru itu terlihat sebagai bukti bahwa anti-cheat bekerja cukup baik
Dulu cukup unduh satu program lalu langsung bisa curang, tetapi sekarang hambatan masuknya lebih tinggi sehingga banyak orang bahkan tidak jadi mencoba
Meski begitu, di bagian awal tulisan disebutkan bahwa pertahanan seperti ini bisa dilumpuhkan, jadi muncul pertanyaan apakah ini benar-benar bisa diandalkan
Dua akun saya juga pernah kena ban, tetapi dipulihkan lewat dukungan pelanggan
Namun sepertinya AI dipakai dalam pekerjaan dukungan, jadi kemungkinan akan ada banyak ban yang tidak adil
Sistem ban berbasis perilaku seperti ini sulit dipercaya karena berisiko menghukum bahkan pengguna yang sangat berdedikasi secara keliru
Artinya, tidak sembarang orang bisa membuat cheat, jadi anti-cheat sampai tingkat tertentu memang berhasil
Hanya saja, analisis gameplay kemungkinan besar cuma menangkap cheater yang terang-terangan, sementara jenis ESP sederhana bisa lolos
Cheater seperti ini justru lebih berbahaya karena perlahan merusak komunitas
Menyentuh kernel berarti mengabaikan seluruh model keamanan OS
Sudah ada kasus nyata anti-cheat yang memiliki bug lalu hak root-nya diambil alih
Yang benar adalah memanfaatkan fitur sandbox OS dan rantai kepercayaan pada tahap boot
Karena itu sulit hanya bergantung pada fitur OS, dan attestation juga dalam praktiknya cakupan penerapannya sempit
Meski tidak sempurna, jika bisa mengurangi jumlah cheater secara statistik maka tetap ada nilainya
Saya ingin melihat game dengan sistem matchmaking anti-cheat opsional
Hanya pemain yang menyalakan anti-cheat dipasangkan satu sama lain, sedangkan yang mematikannya dikelola lewat regulasi mandiri komunitas
Eksperimen seperti ini tampaknya hanya mungkin dilakukan oleh perusahaan sekelas Valve
Tetapi regulasi mandiri komunitas tidak akan pernah efisien dalam skala besar
Secara pribadi, kalau ada cheater saya lebih memilih menutup game lalu keluar dan menghirup udara segar
Daripada memasang anti-cheat level kernel yang ‘mirip malware’, lebih baik main di konsol
Pada dasarnya cheater menunjukkan pola perilaku yang tidak normal, jadi jika server mencatat semua input dan menerapkan deteksi anomali berbasis machine learning, mereka bisa ditangkap
Selain itu ada juga metode membuat objek ‘honeypot’ agar hanya cheater yang bereaksi terhadapnya
Seperti p-hacking, fluktuasi kebetulan bisa disalahartikan sebagai sinyal yang bermakna
Faktanya, Dota 2 pernah mem-ban semua akun yang membaca area data abnormal di dalam klien
Pengumuman patch terkait
Ini bukan masalah yang selesai hanya dengan melempar ML ke dalamnya
Analisis perilaku kesulitan mengikuti kecepatan perubahan dalam komunitas
Cheater biasanya bereaksi sekitar 100 ms lebih cepat daripada pemain pro
Saya bukan gamer, tetapi menurut saya masalah pencegahan cheat di game online adalah tantangan teknis yang menarik
Saran sederhana seperti “proses saja semuanya di server” tidak realistis
Game itu bukan Olimpiade melainkan seperti liga kampung, jadi yang penting adalah kesenangan, bukan keadilan sempurna
Jika cheater dipasangkan dengan sesama cheater, dampaknya ke pengguna biasa akan berkurang
Tetapi perusahaan game besar tidak menyediakan tenaga seperti itu
Anti-cheat hanya berperan menaikkan hambatan masuk
Harus ada suasana yang memandang orang yang curang di online sebagai ‘pecundang’
Anti-cheat level kernel adalah pendekatan yang berusaha mengunci klien semaksimal mungkin, tetapi cheater tetap ada
Pada akhirnya ini berarti server tidak pernah bisa sepenuhnya mempercayai klien
Ini juga tidak bisa diselesaikan sepenuhnya hanya dengan network code
Budaya game kompetitif sekarang membuat perusahaan mendorong pengguna untuk bersaing dengan orang asing, bukan dengan teman
Tetapi terasa layak dipertanyakan apakah harus sejauh itu
Mengadu kemampuan seperti dalam olahraga atau catur adalah dorongan naluriah manusia
Ungkapan bahwa anti-cheat kernel adalah “software paling canggih” terdengar berlebihan
Mencegat system call bukanlah teknik yang istimewa
Tampaknya banyak orang di sini belum pernah memainkan game kompetitif
Kernel-level anti-cheat (KLAC) memang efektif di dunia nyata
Dibanding pendekatan berbasis VAC/VACNet, model kernel seperti FACEIT atau Vanguard jauh lebih rendah tingkat cheat-nya
Tentu tidak sempurna, tetapi sangat menaikkan hambatan masuk
Perangkat DMA saja bisa menelan biaya ratusan dolar, dan cheat kelas atas juga mahal karena berbentuk langganan
Game itu pilihan, jadi kalau tidak suka KLAC ya tidak usah dimainkan
Tetapi jika menolaknya, kita harus menerima lingkungan yang dipenuhi cheater
Saya dengar pengukuran boot berbasis TPM dan UEFI Secure Boot memungkinkan autentikasi jarak jauh, jadi mengejutkan mengetahui bahwa penyerang masih bisa memanipulasinya
Kita harus memiliki kebebasan untuk tidak didiskriminasi sambil tetap sepenuhnya menjamin kepemilikan perangkat kita