2 điểm bởi GN⁺ 2026-03-16 | 1 bình luận | Chia sẻ qua WhatsApp
  • Các hệ thống anti-cheat dựa trên nhân hiện đại là một trong những phần mềm bảo mật phức tạp nhất trên Windows, giám sát bộ nhớ và các sự kiện hệ thống ở cấp nhân ngay cả khi trò chơi đang chạy
  • Chúng sử dụng trình điều khiển nhân để vượt qua giới hạn của cơ chế bảo vệ ở user mode, đồng thời theo dõi theo thời gian thực việc tạo tiến trình·luồng, tải image và thay đổi registry
  • Các hệ thống lớn như BattlEye, EasyAntiCheat, Vanguard, FACEIT AC hoạt động theo cấu trúc 3 lớp gồm trình điều khiển nhân·dịch vụ·DLL của game; trong đó Vanguard được nạp từ lúc khởi động nên có quyền kiểm soát mạnh nhất
  • Chúng kết hợp phòng thủ nhiều lớp như quét bộ nhớ, phát hiện hooking, kiểm tra tính toàn vẹn của driver, đối phó tấn công DMA, phát hiện dựa trên hành vi để chặn hành vi gian lận
  • Cuối cùng, chứng thực từ xa dựa trên TPM và xác minh độ tin cậy phần cứng đang nổi lên như nền tảng cốt lõi của bảo mật game

1. Giới hạn của bảo vệ user mode và sự dịch chuyển sang nhân

  • Tiến trình ở user mode luôn thấp quyền hơn nhân, nên rất dễ bị cheat ở cấp driver nhân hoặc hypervisor vượt qua
    • Ví dụ: lệnh gọi ReadProcessMemory có thể bị giả mạo thông qua kernel hooking
  • Cheat ở kernel mode có thể thao túng trực tiếp bộ nhớ của game và né tránh cơ chế phát hiện ở user mode
  • Để đối phó, anti-cheat đã chuyển xuống cấp kernel, thực hiện giám sát ở cùng mức đặc quyền

2. “Cuộc chạy đua vũ trang” giữa cheat và anti-cheat

  • Cuộc đua leo thang đặc quyền theo chuỗi user mode → kernel → hypervisor → DMA vẫn tiếp diễn
  • Anti-cheat đáp trả bằng chặn driver, phát hiện hypervisor, phòng thủ DMA dựa trên IOMMU
  • Quá trình này làm tăng chi phí và độ khó phát triển cheat, từ đó ngăn người dùng phổ thông tiếp cận

3. Các hệ thống anti-cheat cấp nhân tiêu biểu

  • BattlEye: xoay quanh driver nhân BEDaisy.sys, đăng ký callback cho tiến trình·luồng·tải image
  • EasyAntiCheat (EAC): thuộc sở hữu của Epic Games, có cấu trúc 3 lớp tương tự
  • Vanguard: nạp vgk.sys ngay khi khởi động, dùng mô hình whitelist driver để kiểm soát mạnh mẽ
  • FACEIT AC: đạt mức độ tin cậy cao nhờ giám sát ở cấp nhân
  • Bài báo ARES 2024 chỉ ra rằng các hệ thống này có cấu trúc kỹ thuật tương tự rootkit, nhưng mục đích là phòng vệ

4. Cấu trúc 3 lớp của anti-cheat cấp nhân

  • Driver nhân: thực hiện hook system call, quét bộ nhớ và kiểm soát truy cập
  • Dịch vụ user mode: phụ trách liên lạc mạng, quản lý lệnh cấm và gửi telemetry
  • DLL của game: xác minh bên trong tiến trình game và giao tiếp IPC với dịch vụ
  • Chúng giao tiếp với nhau qua IOCTL, Named Pipe, Shared Memory

5. Khác biệt giữa nạp lúc khởi động và nạp lúc chạy

  • BattlEye/EAC: nạp driver khi chạy game và gỡ khi thoát
  • Vanguard: được nạp từ lúc khởi động và giám sát mọi driver được nạp sau đó
    • Vì vậy cần khởi động lại hệ thống, nhưng đổi lại có thể bảo vệ ngay từ giai đoạn boot

6. Giám sát dựa trên callback của kernel

  • ObRegisterCallbacks: kiểm soát truy cập handle tiến trình, chặn truy cập bộ nhớ từ tiến trình bên ngoài
  • PsSetCreateProcessNotifyRoutineEx: chặn việc tạo tiến trình cheat
  • PsSetCreateThreadNotifyRoutine: phát hiện luồng bất thường trong tiến trình game
  • PsSetLoadImageNotifyRoutine: phát hiện việc tải DLL không được cho phép
  • CmRegisterCallbackEx: giám sát thay đổi registry
  • Mini-filter driver: chặn truy cập tệp cheat ở cấp hệ thống tệp

7. Bảo vệ và quét bộ nhớ

  • Chặn đọc/ghi bộ nhớ từ bên ngoài bằng cách hạn chế quyền truy cập handle
  • Phát hiện vá mã bằng xác minh hash của code section
  • Phát hiện bộ nhớ thực thi được manual map bằng duyệt cây VAD
  • Nhận diện theo heuristic các dạng bộ nhớ thực thi ẩn danh, DLL manual map, shellcode

8. Phát hiện tiêm mã

  • Phát hiện nhiều kỹ thuật tiêm khác nhau như CreateRemoteThread, APC, NtMapViewOfSection, Reflective DLL
  • Kiểm tra việc thực thi mã bất thường bằng phân tích stack frame (RtlWalkFrameChain)

9. Phát hiện hooking

  • IAT hooking: phát hiện sửa đổi Import Address Table
  • Inline hooking: kiểm tra việc vá bằng cách so sánh lệnh JMP ở phần đầu hàm
  • Ngăn hooking cấp kernel bằng kiểm tra tính toàn vẹn của SSDT, IDT, GDT
  • Chặn nỗ lực né ntdll bằng phát hiện việc dùng syscall trực tiếp

10. Bảo vệ ở cấp driver

  • Phát hiện driver không ký số và chế độ test signing
  • Duy trì blocklist để chặn tấn công BYOVD (lợi dụng driver dễ bị tổn thương)
  • Giám sát các cấu trúc nội bộ của kernel như PiDDBCacheTable, MmUnloadedDrivers, BigPool để phát hiện driver manual map

11. Chống debug và ngăn phân tích

  • Kiểm tra sự tồn tại của debugger bằng NtQueryInformationProcess
  • Phát hiện kernel debugger bằng biến KdDebuggerEnabled
  • Phát hiện luồng ẩn bằng cờ ThreadHideFromDebugger
  • Chặn môi trường phân tích bằng kiểm tra thời gian dựa trên RDTSC, hardware breakpointsự hiện diện của hypervisor

12. Cheat dựa trên DMA và cách đối phó

  • Thiết bị DMA qua PCIe có thể đọc bộ nhớ mà không cần CPU can thiệp
  • IOMMU giới hạn truy cập DMA, nhưng có thể bị vô hiệu hóa hoặc mất tác dụng nếu cấu hình sai
  • Thiết bị FPGA ngụy trang thành thiết bị hợp pháp khiến việc phát hiện trở nên khó khăn
  • Có thể giảm nhẹ phần nào bằng Secure Boot, TPM 2.0 để xác minh tính toàn vẹn khi khởi động

13. Phát hiện dựa trên hành vi và machine learning

  • Phân tích đầu vào chuột để phân biệt chuyển động của con người và auto-aim
  • Phát hiện triggerbot·aimbot bằng mô hình CNN·Transformer
  • Dùng graph neural network để phát hiện gian lận theo nhóm (wallhack·thông đồng)
  • Pipeline telemetry: ghi nhận đầu vào ở kernel → truyền mã hóa → máy chủ phân tích ML → quyết định cấm

14. Né tránh môi trường ảo và phân tích

  • Phát hiện VM bằng bit hypervisor trong CPUID và chuỗi vendor
  • Kiểm tra dấu vết registry·thiết bị của VMware, VirtualBox, Hyper-V
  • Môi trường ảo hóa lồng nhau có thể bị nhận diện qua độ trễ thực thi lệnh

15. Nhận diện phần cứng và thực thi lệnh cấm

  • Tạo HWID từ SMBIOS, ổ đĩa, GPU, MAC, MachineGuid
  • HWID spoofing có thể được thử qua registry·driver·can thiệp vật lý, nhưng
    vẫn có thể bị phát hiện qua sự không khớp định danh hoặc định dạng bất thường

16. Xu hướng tương lai và chuyển dịch công nghệ

  • Bước tiếp theo sau DMA là cheat dựa trên firmware, khiến việc phát hiện trở nên cực kỳ khó
  • Aimbot phần cứng dựa trên AI rất khó phân biệt với đầu vào của con người
  • Chứng thực từ xa dựa trên TPM và cloud gaming đang nổi lên như phương án dài hạn
  • Anti-cheat cấp nhân vẫn là tuyến đầu thực tế hiện nay, nhưng
    xác minh độ tin cậy phần cứng và xác minh phía máy chủ được xem là hướng đi cuối cùng

1 bình luận

 
GN⁺ 2026-03-16
Ý kiến trên Hacker News
  • Tóm lại, cheat hiện đại dùng hypervisor, vá BIOS, thiết bị DMA... để vượt qua anti-cheat
    Việc bảo vệ ở mức phần cứng càng được tăng cường thì những người làm cheat cũng tiến hóa tương ứng
    Nhưng khi phân tích lối chơi dựa trên AI xuất hiện, cách phát hiện trực tiếp kẻ gian lận đang cho thấy hiệu quả
    Cuối cùng, tương lai nằm ở anti-cheat chế độ người dùng chứ không phải chế độ kernel, cùng với phân tích gameplay

    • Nói rằng vá BIOS là thứ “rất phổ biến” nghe có vẻ phóng đại
      Ngược lại, điều đó dường như là bằng chứng cho thấy anti-cheat đang hoạt động tốt
      Trước đây chỉ cần tải một chương trình là có thể cheat ngay, còn bây giờ rào cản gia nhập đã cao đến mức nhiều người còn không thử nữa
      Tuy vậy, ở phần đầu bài viết lại nói các biện pháp phòng thủ như vậy có thể bị vô hiệu hóa, nên cũng khiến người ta tự hỏi liệu chúng có thật sự đáng tin không
    • Tôi chơi WoW, và đã có rất nhiều lời phàn nàn rằng Blizzard cấm nhầm người dùng vô tội
      Tôi cũng từng bị khóa hai tài khoản nhưng đã được gỡ nhờ hỗ trợ khách hàng
      Tuy nhiên có vẻ AI đang được dùng trong khâu hỗ trợ, nên chắc sẽ có nhiều vụ cấm oan
      Loại hệ thống cấm dựa trên hành vi này có nguy cơ trừng phạt nhầm cả những người chơi tận tâm, nên khó mà tin tưởng
    • Những công nghệ bạn nhắc tới có tác dụng làm tăng chi phí tấn công
      Tức là không còn ai cũng có thể làm cheat được nữa, nên anti-cheat ở một mức nào đó vẫn đang thành công
      Tuy nhiên, phân tích gameplay có lẽ chỉ bắt được những kẻ cheat lộ liễu, còn các kiểu ESP đơn giản thì dễ bị bỏ sót
    • Phân tích hành vi không bắt được những ‘kẻ cheat kín đáo’
      Chính kiểu cheat này mới nguy hiểm hơn vì nó từ từ phá hỏng cộng đồng
    • ActiBlizz gần như là công ty duy nhất thường xuyên có hành động pháp lý chống lại các nhà phát triển cheat trả phí như Bossland hay EngineOwning
  • Đụng tới kernel là hành vi phớt lờ toàn bộ mô hình bảo mật của hệ điều hành
    Trên thực tế đã có trường hợp anti-cheat có lỗi bị chiếm quyền root
    Điều đúng đắn là tận dụng chức năng sandbox của OS và chuỗi tin cậy ở giai đoạn khởi động

    • Hệ sinh thái PC không coi trọng bảo mật chuỗi khởi động nghiêm túc như điện thoại
      Vì vậy khó có thể chỉ dựa vào chức năng của OS, còn attestation cũng có phạm vi áp dụng thực tế khá hẹp
      Dù không hoàn hảo, nếu có thể giảm số lượng cheater về mặt thống kê thì vẫn có ý nghĩa
    • Bảo mật thật sự không phải là khóa chặt client, mà là xác minh trên server chỉ những hành vi được phép
    • Cũng có người tự hỏi liệu điều đó có nghĩa là “hãy bán những chiếc PC bị khóa chỉ cho cài phần mềm đã được xác minh” hay không
    • Lập luận rằng “sau khi kẻ tấn công đã xâm nhập thì giảm thiểu thiệt hại là vô nghĩa” là điều không đúng trong toàn bộ lĩnh vực an ninh mạng
    • Việc đòi ngăn cheat bằng cái giá là mọi người mất quyền chạy phần mềm họ muốn là quá mức
  • Tôi muốn thấy một game có hệ thống ghép trận anti-cheat tùy chọn
    Những người bật anti-cheat chỉ ghép với nhau, còn người tắt thì vận hành bằng cơ chế cộng đồng tự điều tiết
    Có lẽ chỉ công ty cỡ Valve mới đủ khả năng làm một thử nghiệm như vậy

    • CS2 của Valve dùng cách tương tự, nhưng nghe nói tỷ lệ cheat vẫn cao hơn Valorant
    • FACEIT thực ra đã đóng vai trò đó rồi
      Nhưng việc cộng đồng tự điều tiết sẽ không bao giờ hiệu quả ở quy mô lớn
    • Cũng có phản ứng kiểu “thế chẳng phải là PlaySafe ID sao”
    • Tôi cũng ủng hộ ý tưởng này
      Cá nhân tôi nghĩ nếu gặp cheater thì cứ tắt game rồi ra ngoài hít thở chút không khí còn hơn
      Thà chơi trên console còn hơn cài anti-cheat cấp kernel kiểu ‘giống malware’
  • Về bản chất, cheater sẽ thể hiện mẫu hành vi bất thường, nên nếu ghi lại mọi đầu vào trên server rồi áp dụng phát hiện bất thường bằng machine learning thì có thể bắt được
    Ngoài ra còn có cách tạo các đối tượng ‘honeypot’ để chỉ cheater mới phản ứng

    • Nhưng không thể kết luận ai đó là cheater chỉ dựa vào các ngoại lệ thống kê
      Giống như p-hacking, ta có thể nhầm biến động ngẫu nhiên là tín hiệu có ý nghĩa
    • Tôi cũng đã ủng hộ mô hình honeypot thống kê từ lâu
      Thực tế, Dota 2 từng cấm tất cả các tài khoản đọc vùng dữ liệu bất thường bên trong client
      Thông báo vá liên quan
    • Tuy nhiên Valve cũng đã dùng mô hình ML từ lâu, nhưng Counter-Strike vẫn còn rất nhiều cheater
      Đây không phải vấn đề có thể giải quyết chỉ bằng cách ném ML vào là xong
    • Honeypot hữu ích, nhưng không đủ
      Phân tích hành vi khó mà theo kịp tốc độ thay đổi của cộng đồng
    • Trong CS2, chỉ riêng thống kê ‘time-to-damage’ cũng đã có thể phân biệt được nhiều cheater
      Cheater thường phản ứng nhanh hơn tuyển thủ chuyên nghiệp khoảng 100 ms
  • Tôi không phải game thủ, nhưng thấy vấn đề chống cheat trong game online là một bài toán cực khó và rất thú vị về mặt kỹ thuật
    Lời khuyên kiểu “cứ xử lý mọi thứ trên server” đơn giản là không thực tế

    • Chống cheat thực chất là bất khả thi
      Game giống giải phong trào hơn là Thế vận hội, nên vui vẻ quan trọng hơn công bằng tuyệt đối
      Nếu để cheater ghép với nhau thì ảnh hưởng tới người dùng bình thường sẽ giảm đi
    • Cách hiệu quả nhất là để quản trị viên server chủ động tự quan sát và ban
      Nhưng các hãng game lớn không duy trì đội ngũ như vậy
    • Về mặt kỹ thuật, cheater luôn có lợi thế vì họ kiểm soát cái máy đang chạy game
      Anti-cheat chỉ có vai trò nâng cao rào cản gia nhập
    • Cũng có thể áp dụng kiến trúc phân tán đặt server gần ISP như Netflix
    • Giải pháp căn cơ là thay đổi nhận thức văn hóa
      Cần có bầu không khí xem người cheat game online là ‘kẻ thảm hại’
  • Anti-cheat cấp kernel là cách khóa client chặt nhất có thể, nhưng cheater vẫn tồn tại
    Rốt cuộc điều đó có nghĩa là server không thể hoàn toàn tin tưởng client

    • Đây không đơn thuần là vấn đề chi phí mà còn là vấn đề độ trễ (latency) và chênh lệch thời điểm
      Ngay cả network code cũng không thể giải quyết triệt để
    • Nếu đủ quyết tâm, cheater thậm chí có thể tự động hóa đầu vào bằng camera và một máy tính riêng
  • Văn hóa game cạnh tranh ngày nay là cấu trúc nơi doanh nghiệp khiến người dùng cạnh tranh với người lạ thay vì bạn bè
    Nhưng cũng có người tự hỏi liệu có nhất thiết phải đến mức đó không

    • Dù vậy, nhiều người vẫn thích bản thân sự cạnh tranh
      So tài kỹ năng như thể thao hay cờ vua là một nhu cầu rất bản năng của con người
  • Cách diễn đạt rằng anti-cheat kernel là “phần mềm tinh vi nhất” nghe có vẻ phóng đại
    Chặn system call không phải kỹ thuật gì đặc biệt

    • Câu nói kiểu “quét các cấu trúc bộ nhớ mà phần lớn lập trình viên cả đời không bao giờ chạm tới” nghe hơi buồn cười
  • Có vẻ nhiều người ở đây chưa từng chơi game cạnh tranh
    Kernel-level anti-cheat (KLAC) thực sự có hiệu quả
    So với nền tảng VAC/VACNet, các giải pháp kernel như FACEIT hay Vanguard có tỷ lệ cheat thấp hơn nhiều
    Tất nhiên không hoàn hảo, nhưng nó làm tăng rào cản gia nhập rất mạnh
    Chỉ riêng thiết bị DMA đã tốn tới hàng trăm USD, còn cheat cao cấp thì đắt vì bán theo thuê bao
    Chơi game là lựa chọn, nên nếu không thích KLAC thì đừng chơi
    Nhưng nếu từ chối nó, bạn phải chấp nhận một môi trường đầy rẫy cheater

  • Tôi từng nghe rằng có thể xác thực từ xa bằng đo đạc khởi động dựa trên TPMUEFI Secure Boot, nên khá bất ngờ khi biết kẻ tấn công vẫn có thể thao túng chúng

    • Ví dụ như tee.fail, có giải thích cách vô hiệu hóa xác thực từ xa
      Chúng ta phải có quyền tự do không bị phân biệt đối xử trong khi vẫn được bảo đảm đầy đủ quyền sở hữu thiết bị
    • Giao tiếp giữa bo mạch chủ và chip TPM không được mã hóa nên có thể thay đổi giá trị bằng tấn công MITM