1. Trang chủ
  2. » Công Nghệ Thông Tin

Gameguard hệ thống phần mềm bảo vệ trò chơi trực tuyến trên nền windows chống lại các hacker

100 455 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 100
Dung lượng 6,28 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ SỬ DỤNG Game online : Trò chơi trực tuyến CCU : Đơn vị người chơi trong gamecommunication control unit NPP : Nhà phân phối Client-Server : Giao thức

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

LUẬN VĂN THẠC SĨ KHOA HỌC

CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC :

TS Nguyễn Khanh Văn

Hà Nội – Năm 2010

Trang 2

LỜI CẢM ƠN

Để hoàn thành chương trình cao học và viết luận văn này, tôi đã nhận được sự hướng dẫn, giúp đỡ và góp ý nhiệt tình của quý thầy cô thuộc Viện công nghệ thông tin, trường Đại học Bách Khoa Hà Nội

Trước hết, tôi xin chân thành cảm ơn đến quí thầy cô thuộc Viện công nghệ Thông tin, trường Đại học Bách Khoa Hà Nội, đặc biệt là những thầy cô đã tận tình dạy bảo cho tôi suốt thời gian học tập tại trường

Tôi xin gửi lời biết ơn sâu sắc đến Tiến sĩ Nguyễn Khanh Văn đã dành rất nhiều thời gian và tâm huyết hướng dẫn nghiên cứu và giúp tôi hoàn thành luận văn tốt nghiệp

Đồng thời, tôi cũng xin cảm ơn quí anh, chị và ban lãnh đạo Công ty đầu tư và phát triển công nghệ thông tin (VTC Intecom), Tổng công ty Truyền thông đa phương tiện (VTC) … đã tạo điều kiện và dành cho tôi thời gian nghiên cứu để thực hiện luận văn này

Mặc dù tôi đã có nhiều cố gắng hoàn thiện luận văn bằng tất cả sự nhiệt tình và năng lực của mình, tuy nhiên không thể tránh khỏi những thiếu sót, rất mong nhận được những đóng góp quí báu của quí thầy cô và các bạn Mọi ý kiến góp ý xin gửi về địa chỉ luanbt@gmail.com

Xin chân thành cảm ơn!

Hà Nội, ngày tháng năm 2010

Học viên

Bùi Thế Luân

Trang 3

LỜI CAM ĐOAN

Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi, không thực hiện sao chép bất cứ nội dung từ nguồn tài liệu, tư liệu nào Nội dung của luận văn hoàn toàn được tác giả nghiên cứu và thực hiện dưới sự hướng dẫn của Tiến sĩ Nguyễn Khanh Văn, thuộc Viện Công nghệ Thông tin, trường Đại học Bách Khoa Hà Nội

Ngoài ra, nội dung của luận văn có tham khảo các thông tin được đăng tải trên các website, bài báo và công trình nghiên cứu có trong danh mục tài liệu tham khảo của quyển luận văn này

Tác giả luận văn

Bùi Thế Luân

Trang 4

MỤC LỤC

PHẦN 1: MỞ ĐẦU    7 

1 Lý do chọn đề tài 8

2 Lịch sử nghiên cứu 9

3 Mục đích nghiên cứu của luận văn, đối tượng, phạm vi nghiên cứu 10

4 Tóm tắt cô đọng các luận điểm cơ bản và đóng góp mới của tác giả 12

5 Phương pháp nghiên cứu 13

PHẦN 2: NỘI DUNG ĐỀ TÀI    15 

CHƯƠNG I TỔNG QUAN VỀ HỆ THỐNG TRÒ CHƠI TRỰC TUYẾN 15

1.1 Giới thiệu tổng quan về trò chơi trực tuyến 15

1.2 Giới thiệu các loại trò chơi trực tuyến 16

1.3 Mô hình, tính chất của các trò chơi trực tuyến 17

1.3.1.Mô hình các game trực tuyến 17

1.3.2.Tính chất của các trò chơi trực tuyến 21

1.4 Ưu điểm, nhược điểm tính bảo mật của các trò chơi trực tuyến 22

CHƯƠNG II KHẢO SÁT CÁC LOẠI TẤN CÔNG, LỪA DỐI ĐỐI VỚI TRÒ CHƠI TRỰC TUYẾN 24

2.1 Khảo sát các hình thức tấn công, lừa dối đối với trò chơi trực tuyến 24

2.2 Các loại hình tấn công, lừa dối đối với trò chơi trực tuyến 25

2.2.1 Tấn công, lừa dối tác động vào bộ nhớ (Memory attack) 25

2.2.2 Tấn công, lừa dối tác động vào đồ họa (DirectX attack) 27

2.2.3 Tấn công, lừa dối tác động vào phần cứng (Hardware attack) 30

2.2.4 Tấn công vào máy chủ (Server attack) 31

2.3 Các kỹ thuật sử dụng trong hack game 32

2.3.1 Kỹ thuật hooking: 32

2.3.2 Kỹ thuật DLL Injection 34

2.3.3 Kỹ thuật đón, nhận và sửa gói tin kết quả 35

CHƯƠNG III NGHIÊN CỨU GIẢI PHÁP VÀ XÂY DỰNG MÔ HÌNH FRAMEWORK CHỐNG TẤN CÔNG LỪA DỐI TRONG TRÒ CHƠI TRỰC TUYẾN 36

3.1 Định hướng nghiên cứu các giải pháp, công nghệ chống tấn công, lừa dối 36

Trang 5

3.2 Xây dựng mô hình framework chống tấn công, lừa dối trong trò chơi trực

tuyến 40

3.3 Giới thiệu các thành phần chi tiết chức năng của mô hình framework 43

3.4 Quy trình hoạt động của mô hình framework 50

CHƯƠNG IV: CÀI ĐẶT, TÍCH HỢP VÀ THỬ NGHIỆM HỆ THỐNG 52

4.1 Mô hình cài đặt và tích hợp hệ thống 52

4.2 Mô hình triển khai hệ thống 53

4.3 Mô hình triển khai và phân tải hệ thống: 54

4.4 Kết quả thử nghiệm hệ thống 56

CHƯƠNG V: KẾT LUẬN 59

5.1 Những kết luận mới 59

5.2 Đóng góp mới và kiến nghị của tác giả về sử dụng kết quả nghiên cứu 60

PHỤ LỤC VÀ CÁC VẤN ĐỀ THAM KHẢO 63

A Quản lý bộ nhớ window (Window memory management) 63

A.2 Paging in x86 Processor 63

A.3 Windows Page Table Management 64

A.4 Memory Protection 66

A.5 Windows Logical Memory Layout (sự xếp đặt) 67

B Bảo mật trong hệ điều hành windows 71

B.1 Các vòng bảo vệ trong hệ điều hành windows (Protection Rings) 71

B.2 Chức năng các tầng trong hệ điều hành Windows 72

C Giới thiệu vài nét về DirectX 73

D Giới thiệu các đoạn code có khả năng thực thi độc lập ko phụ thuộc vào “nơi cư trú” (independence code section) 83

D.1 Mở đầu 83

D.2 Kỹ thuật “Delta offset “ 85

D.3 Các chỉ thị chuyển hướng điều khiển: 87

D.4 Định hướng biên dịch trong ASM để tính tổng số Bytes một đoạn code 91

E Giới thiệu cơ bản về lập trình hook 92

E.1 Hook là gì ? 93

E.2 Cơ chế hoạt động của Hook 93

E.3 Ứng dụng của Hook 94

E.4 Cài đặt Hook 94

Trang 6

DANH MỤC HÌNH VẼ

Hình 1: Mô hình cung cấp dịch vụ game trực tuyến của các NCC.   17 

Hình 2: Mô hình WebGame   18 

Hình 3: WebGame Linh Vương chạy trên web browser.   18 

Hình 4: Mô hình GameConsole   19 

Hình 5: Game Console khi chơi trên máy client   19 

Hình 6: Mô hình tấn công của hacker vào hệ thống game trực tuyến   24 

Hình 7: Cấp phát và quản lý bộ nhớ của hệ điều hành Windows.   25 

Hình 8: Mô phỏng tấn công bộ nhớ   26 

Hình 9: Hacker dùng công cụ để dò tìm biến của game và thay đổi giá trị   27 

Hình 10: Mô phỏng tấn công đồ họa DirectX   28 

Hình 11 : Ví dụ về hack tàng hình trong trò chơi CrossFire.   28 

Hình 12: Một số API đã bị thay đổi bởi hacker.   29 

Hình 13: Minh họa tác động vào đồ họa DirectX   30 

Hình 14: Mô phỏng tấn công phần cứng   31 

Hình 15: Mô phỏng tấn công máy chủ (Server)   31 

Hình 16: Ví dụ về tấn công máy chủ   31 

Hình 17: Kỹ thuật đón nhận và sửa gói tin kết quả.   35 

Hình 18: Mô hình hai giải pháp chống các công cụ hack.   39 

Hình 19: Tác động tới window nhằm hidden thông tin và monitor hệ thống.   40 

Hình 20: Mô hình hệ thống Client-Server của trò chơi trực tuyến   41 

Hình 21: Mô hình tổng thể của hệ thống GameGuard   42 

Hình 22: Mô hình tương tác giữa các thành phần của hệ thống GameGuard   43 

Hình 23: Mô hình cấu trúc của hệ thống GameGuard dưới phía Client   45 

Hình 24: GG tác động vào nhân của window nhằm che dấu(hidden) thông tin và giám sát hệ thống.   46 

Hình 25: Tổ chức các module chức năng trong frameword GameGuard.   46 

Hình 26: Cơ chế đồng bộ và tương tác giữa GG và GC   47 

Hình 27: Cơ chế xác thực chéo giữa các thành phần hệ thống   48 

Trang 7

Hình 28: Cơ chế xác thực và so sánh mẫu để nhận biết tiến trình hack.   49 

Hình 29: Khả năng bảo vệ nhiều trò chơi chạy cùng một lúc.   50 

Hình 30: Sơ đồ khối hoạt động của mô hình framework.   51 

Hình 31: Mô hình cài đặt hệ thống GG với hệ thống GC tại VTC.   53 

Hình 32: Mô hình triển khai hệ thống.   54 

Hình 33: Mô hình triển khai và phân tải của hệ thống.   55 

Hình 34: Mô hình kết nối và phân tải trên một site của hệ thống   56 

Hình 35: Bảng kết quả thử nghiệm khả năng nhận biết công cụ hack game   57 

Hình 36: Bảng kết quả so sánh giữa GG và X-Trap, NProtect   58 

Hình 37: Ánh xạ (mapping) địa chỉ trong bộ xử lý X86   64 

Hình 38: Bảng sắp xếp đia chỉ   67 

Hình 39: Minh họa các Ring trong kiến trúc x86   71 

Hình 40: Cấu tạo đường ống của Driect3D 11   76 

Hình 41: Tạo đối tượng với cấu trúc đường ống hiện tại   77 

Hình 42: Hull Shader trong tiến trình   78 

Hình 43: Hoạt động của công cụ phủ Tessellator   79 

Hình 44: Hoạt động của Domain Shader   80 

Hình 45: Tạo đối tượng với cấu trúc đường ống mới   81

Trang 8

DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ SỬ DỤNG

Game online : Trò chơi trực tuyến

CCU : Đơn vị người chơi trong game(communication control

unit) NPP : Nhà phân phối

Client-Server : Giao thức client-server

Syn/Alarm : Cơ chế đồng bộ và cảnh báo

Hack tool : Công cụ tấn công

Native API : Thư viện hàm của window NT

DirectX : Thư viện hỗ trợ đồ họa và âm thanh

Trang 9

PHẦN 1: MỞ ĐẦU

1 Lý do chọn đề tài

Trò chơi trực tuyến, tức Game Online, đang trở thành một ngành công nghiệp dịch vụ giải trí có mức độ phát triển nóng hiện nay Hình thức dịch vụ này cung cấp một trò chơi tập thể trong đó các người chơi có thể ngồi tại nhà mình với máy tính nối mạng, cùng tham gia vào một thế giới trò chơi ảo, xây dựng bởi nhà cung cấp game Máy chủ của nhà cung cấp sẽ làm nhiệm vụ liên tục thu nhận hành vi chơi của người chơi, xử lý thông tin đồng bộ từ tập thể người chơi rồi cập nhật trạng thái mới cho mỗi máy chơi Sự tham gia tập thể của rất nhiều người chơi dù có thể không biết mặt nhau vào một trò chơi có kịch bản công phu, thu hút, làm nên sức nóng của Game Online, loại hình dịch vụ hứa hẹn sẽ trở nên một trong những sức hút lớn về đầu tư cho công nghiệp dịch vụ IT Điều này đã và đang thúc đẩy các nghiên cứu về lĩnh vực này với hai quan tâm chính: cải thiện chất lượng trò chơi và xây dựng phương pháp phát hiện

và ngăn chặn lừa gạt, dối trá (cheating) trong game online

Lừa dối trong Game Online là khá đa dạng và phổ biến với rất nhiều kỹ thuật từ thô sơ cho đến công phu Kẻ lừa dối thường là những hacker với kiến thức tin học nhất định, tìm cách can thiệp vào các yếu tố của chương trình trò chơi để đạt được lợi thế nhất định đối với các đối thủ cùng chơi, vi phạm luật lệ cũng như tính công bằng của trò chơi Một trong những hình thức lừa dối điển hình là can thiệp vào bộ nhớ dữ liệu chương trình để thay đổi trạng thái trò chơi theo hướng có lợi cho kẻ lừa dối Các nhà cung cấp trò chơi đã cố gắng xây dựng các phương pháp bảo vệ phần mềm để ngăn cản các hình thức lừa dối, nhưng thực tế cho thấy nhưng cố gắng này còn nhiều hạn chế, chưa thu được nhiều hiệu quả

Đặc biệt tại một số nước chưa có công nghiệp game online nội địa phát triển như Việt nam, các nhà cung cấp chính thường là từ nước ngoài còn các công ty trong nước chỉ làm nhiệm vụ phân phối và tổ chức dịch vụ cùng thiết bị cho người chơi Vì vậy việc bảo vệ chống lừa dối còn thêm những khó khăn khác do nhà cung cấp không

Trang 10

thể chủ động khảo sát môi trường chơi để phát hiện tấn công lừa dối còn nhà phân phối nội địa thì không có khả năng thay đổi ảnh hưởng đáng kể vào bản thân phần mềm cung cấp để chống lại các tấn công lừa dối này Cụ thể hơn, nhà cung cấp/xây dựng (NCC) trò chơi thiếu điều kiện để nắm được đặc thù các dạng tấn công, các công

cụ lừa dối (hack tool ) phát triển tại địa phương; ngược lại nhà phân phối (NPP) địa phương không thể trực tiếp phát triển mã nguồn kiểm tra môi trường máy chơi game client

Hiện nay trên thị trường game của Việt Nam đã có rất nhiều nhà cung cấp dịch

vụ, trong đó phải kể đến nhà cấp dịch vụ lớn là Game, với các trò chơi do Game cung cấp đã chiếm thị phần rất lớn (khoảng 55%) người chơi (CCU) trong nước, lượng người chơi trong lúc cao điểm có thể lên tới khoảng 10 ngàn CCU đối với 1 game tại một thời điểm Tuy nhiên trong thời gian qua lượng CCU giảm đáng kể do lượng người chơi sử dụng các công cụ hack game lớn, do đó làm cho doanh thu và lượng người chơi cũng giảm xuống nhanh chóng, và nạn hack game trở thành một vấn

VTC-đề gây đau đầu đối với các nhà phát hành game trong nước hiện nay Một câu hỏi lớn

được đặt ra là “Làm sao có thể ngăn chặn được nạn hack game đang diễn ra phức tạp ở nước ta trong thời điểm hiện nay?”, câu hỏi này vẫn còn được bỏ ngỏ và dường

như chưa có câu trả lời thực sự đúng đắn cho nó

Chính vì để trả lời cho câu hỏi đó mà tác giả đã lựa chọn đề tài này để nghiên cứu, ngoài việc bám sát các bước tiến của các nghiên cứu trên thế giới đã có, tác giả cũng đưa ra một số đóng góp mới về phân tích và ý tưởng xây dựng mô hình (framework) mang tính tổng quát hóa về lĩnh vực chống hack game hiện nay Đề tài này có ý nghĩa thực tiễn rất lớn ngoài việc mang tính ứng dụng cần thiết nó còn cung cấp cho những người làm về bảo mật một tài liệu nghiên cứu có tính tổng quát cao và sát với thực tế thời điểm hiện nay trong lĩnh vực bảo mật

2 Lịch sử nghiên cứu

Trên thực tế hiện nay, lượng các bài báo nghiên cứu về các lỗ hổng, điểm yếu của các hệ thống game trực tuyến và từ đó xây dựng các giải pháp bảo vệ Game trực

Trang 11

tuyến hầu như đã có rất nhiều, hầu hết các bài báo cũng đã tập chung phân tích và phân loại các loại cheat cho từng game, việc lấy mẫu và phân loại cheat này nhằm liệt

kê và có những định hướng phát triển các phần mềm bảo mật cho Game như tài liệu

“A Systematic Classification of Cheating in Online Games” của Jeff Yan và Brian Randell School of Computing Science, University of Newcastle, NE1 7RU, UK, ngoài

ra còn có khá nhiều các tài liệu khác (có thể tham khảo phần Reference Tuy nhiên các

tài liệu tổng hợp các phân loại lừa dối(cheat) và đưa ra nguyên tắc xây dựng hệ thống chống các loại lừa dối này là chưa có, vì vậy trong bào báo này cũng sẽ dựa trên ý tưởng phân loại lừa dối của các bài báo khác để nghiên cứu và tổng hợp thành một bài báo với các quy luật tấn công của các lừa dối đó Ngoài ra trọng tâm bài báo còn tập trung vào việc nghiên cứu và xây dựng hệ thống mô hình framework để chống lại các hình thức tấn công phổ biến

Trên thế giới cũng đã tồn tại rất nhiều hệ thống chống hack game như Nprotect, X-Trap, DMW Anticheat, GameGuard, PunkBuster, VAC, ProtectEnviron, ShoxGuard, CleanDoD, XRay or Warden, Tuy nhiên hai hệ thống chống hack game rất nổi tiếng, khả năng chống hack game khá thành công là Nprotect và X-Trap, chúng được tích hợp và chạy với hầu hết các game trực tuyến trên thị trường hiện nay, tuy nhiên công ty viết phần mềm hai hệ thống này cũng chưa có một tài liệu công bố chính thức nào nói đến việc nghiên cứu các lỗ hổng của game và giải pháp để bảo vệ game tránh bị hacker tấn công vào các lỗ hổng đó

3 Mục đích nghiên cứu của luận văn, đối tượng, phạm vi nghiên cứu

a) Mục đích nghiên cứu:

Hiện nay các trò chơi trực tuyến đang là một thị trường hấp dẫn đối với người chơi, các trò chơi trở lên phong phú và đa dạng, người chơi cũng càng ngày càng đông hơn Doanh thu đem lại từ các trò chơi là rất lớn, tuy nhiên trong thời gian qua nạn hack game trở lên khá phổ biến và biến tướng dưới rất nhiều hình thức và nó cũng là vấn đề nhức nhối thách thức các nhà quản lý và nhà phát hành game, các nhà phát hành game

đã bỏ ra rất nhiều tiền để mua các phần mềm bảo vệ cho game của mình, tuy nhiên nạn

Trang 12

hack game cũng không giảm đi nhiều Đứng trước tình trạng đó tác giả cũng muốn nghiên cứu và tìm hiểu xem hacker tấn công vào hệ thống trò chơi như thế nào? Từ đó

đề xuất và xây dựng một mô hình framework tương đối tổng quát và cũng là tiền đề để tác giả xây dựng một phần mềm gọi là GameGuard tích hợp framework đã dựng để có thể cài đặt được với các game trực tuyến hiện nay nhằm bảo vệ và chống lại những tấn công, lừa dối của hacker trên nền hệ điều hành Windows

b) Đối tượng áp dụng:

Đề tài tác giả nghiên cứu vừa mang tính nghiên cứu, xây dựng và đưa ra những đóng góp mới, mà nó còn mang tính thực tế ứng dụng cao Các nghiên cứu này ngoài việc cung cấp cho lĩnh vực bảo mật về trò chơi có được một cái nhìn tổng quan và mang tính chuyên sâu, nó còn cung cấp cho những người làm về bảo mật trên nền hệ điều hành Window một tài liệu rất hữu ích để họ xây dựng những hệ thống bảo vệ cho những ứng dụng của mình Ngoài ra luận văn cũng có thể là tài liệu tham khảo cho các chuyên gia về lĩnh vực chống virus máy tính, vì cơ chế của hai hệ thống cũng có nhiều nét tương đồng

Để minh chứng cho tính ứng dụng thực tế và tính đúng đắn của nghiên cứu, tác giả cũng đã xây dựng phần mềm GameGuard dựa trên mô hình tác giả

đã đề xuất, và phần mềm này có thể áp dụng cho tất cả các nhà cung cấp dịch vụ game trực tuyến trong nước và ngoài nước, tuy nhiên trong quyển luận văn này tác giả mới chỉ thử nghiệm và áp dụng cho nhà cung cấp dịch

vụ game của VTC

c) Phạm vi nghiên cứu:

Phạm vi nghiên cứu trong quyển luận văn này nằm trong khuôn khổ những phân tích, nghiên cứu và xây dựng một khung cơ chế (mechanism framework) để người đọc có thể hình dung được nạn hack game ở nước ta đang diễn ra như thế nào?, và ngăn chặn nó bằng cách nào? Ngoài việc nghiên cứu, xây dựng khung cơ chế, tác giả cũng đã xây phần mềm GameGuard dựa trên những đề xuất của chính tác giả để minh chứng cho tính ứng dụng thực tế và tính đúng đắn định hướng nghiên cứu của tác giả

Trang 13

Phần mềm GameGuard cũng đã được tích hợp và áp dụng cho các game trực tuyến của VTC chạy trên nền các hệ điều hành Window như WinXP, Win7, Win Vista, WinServer2003

4 Tóm tắt cô đọng các luận điểm cơ bản và đóng góp mới của tác giả

Trong quyển luận văn này, tác giả xin tóm tắt lại một số luận điểm cơ bản và đóng góp mới của tác giả như sau:

• Khảo sát và nghiên cứu các hình thức tấn công, lừa dối phổ biến của trò chơi trực tuyến tại môi trường trong nước, các kỹ thuật tấn công mới do các hacker sử dụng hiện nay

• Tác giả xây dựng một giải pháp hỗ trợ cho nhà phân phối trong nước thông qua một khung cơ chế (mechanism framework) có tính chất tổng quát để giúp nhà phân phối game trong nước có thể chống lại một cách có hiệu quả các hình thức lừa dối phổ biến Sơ đồ giải pháp của tác giả có sử dụng cộng tác với nhà cung cấp nước ngoài nhưng ở mức độ tối thiểu, tức là hoàn toàn không yêu cầu nhà cung cấp phải sửa đổi nhiều hoặc thường xuyên lên chương trình chơi (Game Client) mà chỉ thực hiện bổ sung thêm một lời gọi thủ tục với mã nguồn thực hiện (dạng thư viện DLL) do nhà phân phối tự xây dựng

• Ý tưởng cơ bản của tác giả là xây dựng một hệ thống bảo vệ nhiều lớp, trong đó lớp bảo vệ quan trọng nhất được thực hiện trên cơ sở xây dựng một

cơ chế tương tác đặc biệt như sau:

- Xây dựng cho nhà phân phối (NPP) một chương trình GameGuard để quét kiểm tra môi trường máy chơi độc lập, phát hiện sự tồn tại của các chương trình tấn công (hacking process) thông qua các kỹ thuật kiểm tra quét trên bộ nhớ chương trình, tập dữ liệu tiến trình (process profiles) và dữ liệu điểu khiển của Windows Registry

- Xây dựng cơ chế tương tác mật giữa trình trò chơi GameClient (GC)

và trình kiểm tra GameGuard (GG) Quan hệ hoạt động chính giữa hai trình này là GG sẽ thường xuyên quét kiểm tra môi trường máy

Trang 14

chơi và nếu phát hiện tấn công can thiệp với mức độ không kiểm soát được, sẽ yêu cầu GC kết thúc rồi tự kết thúc ngay sau đó (ngược lại

GC sẽ kích hoạt GG khi mới chạy và cung cấp các thông tin cần thiết)

- Bên cạnh đó, tác giả đồng thời xây dựng các tính năng hỗ trợ mạnh khác như can thiệp hệ điều hành để che giấu (hiding) sự tồn tại của các modul chương trình cần bảo vệ khiến hacker không phát hiện được Các kỹ thuật can thiệp này được thực hiện trên các dữ liệu điều khiển của Windows ở mức lõi (kernel) để có thể “qua mắt” ngay cả các hacking tool rất mạnh có khả năng can thiệp sâu vào hệ điều hành Như vậy cùng với cơ chế tương tác GG-GC nói trên, hệ thống bảo vệ được tạo ra sẽ gồm nhiều lớp, trong đó dù hacker có cao tay đến mức vượt qua lớp bảo vệ “che giấu” thì sẽ bị lớp bảo vệ dựa trên tương tác GG-GC phát hiện và trò chơi sẽ kết thúc ngay không cho hacker can thiệp lợi dụng

• Giải pháp của tác giả có cơ sở chứng minh tính tin cậy vững chãi; đảm bảo

hệ thống có thể đứng vững với hacker chuyên nghiệp tấn công nhằm vào chính modul GameGuard và cơ chế tương tác nói trên Giả thiết an toàn duy nhất của tác giả là giả sử modul GC chế tạo bởi NCC đã có trang bị cơ chế đặc biệt để chống lại (phát hiện được) tấn công sửa đổi vào mã nguồn của

GC Tính vững chãi của giải pháp dựa trên việc xác lập tính nguyên vẹn của các modul chương trình phát triển thêm từ phía NPP trên cơ sở giả thiết về

tính nguyên vẹn của GC Nói cách khác, nếu GC sạch thì phần còn lại của

hệ thống xây dựng do NPP cũng đảm bảo sạch Mục đích của tác giả là hỗ

trợ nhà phân phối trò chơi, nên đặt ra giả thiết về tính nguyên vẹn của GC là hợp lý Xin lưu ý rằng các NCC lớn đầu tư rất nhiều để đảm bảo tính an toàn

cơ sở này và nghiên cứu về lĩnh vực này đã phát triển từ lâu

5 Phương pháp nghiên cứu

Phương pháp nghiên cứu của tác giả tập chung vào bốn vấn đề chính sau:

Trang 15

• Đi tìm hiểu, nghiên cứu các hình thức, kỹ thuật mà hacker đã sử dụng để tấn công vào các trò chơi trực tuyến như thế nào? Từ các kết quả nghiên cứu được tác giả tổng hợp và đánh giá các loại hình tấn công đó

• Dựa vào kết quả bước trên, tác giả đi nghiên cứu, tìm hiểu các giải pháp, kỹ thuật có thể ứng dụng để chống lại các hình thức tấn công đó

• Từ những kết quả nghiên cứu được tác giả đề xuất và xây dựng một mô hình framework gọi là GameGuard tích hợp các giải pháp, kỹ thuật bảo vệ trò chơi trực tuyến chống lại các tấn công, lừa dối của hacker ở trên môi trường Windows

• Ứng dụng thực tế: cài đặt và tích hợp hệ thống GameGuard đã xây dựng được với một số trò chơi trực tuyến của VTC phát hành, từ đó đưa ra kết quả và các đánh giá cho hệ thống

Trang 16

PHẦN 2: NỘI DUNG ĐỀ TÀI

CHƯƠNG I TỔNG QUAN VỀ HỆ THỐNG TRÒ CHƠI TRỰC TUYẾN 1.1 Giới thiệu tổng quan về trò chơi trực tuyến

Game là những trò chơi, mang tính giải trí cho con người, nó giúp cho con người có thể thư giãn trong những lúc nghỉ ngơi và giảm căng thẳng khi bị áp lực công việc,… Với phương trâm “Học mà chơi, chơi mà học” nhiều trò chơi chở thành những công cụ giúp con người vừa chơi vừa học, cụ thể là những trò chơi đã ứng dụng các môn học trong nhà trường như Tiếng Anh, Toán học, Lịch sử, Nhạc, Họa… giúp cho trẻ em, học sinh và sinh viên có thể học tốt hơn các môn học mà không bị căng thẳng như các buổi học thông thường nhàm chán và căng thẳng, nó kích thích tính tò mò của các bạn trẻ ham học hỏi và khả năng tư duy của từng người Ngoài các trò chơi mang tính giáo dục lành mạnh, còn các trò chơi mang tính bạo lực nó làm cho giới trẻ ham mê và vùi đầu vào các trò chơi này làm cho giới trẻ yếu về thể chất và hư hỏng về đạo đức, tinh thần Xu hướng các trò chơi phát hành gần đây của các nhà cung cấp dịch vụ là các trò có nội dung dựa trên các cốt truyện và các trào lưu văn hóa mới của thế hệ trẻ Các trò chơi càng ngày càng được cải thiện và phát triển rất nhanh về công nghệ, nội dung và hình thức, nhất là các nhà cung cấp rất chú ý đến chất lượng trò chơi như đồ họa và âm thanh, kịch bản trò chơi cũng được biến tấu để cho sinh động, thu hút và lôi kéo người chơi Ban đầu các trò chơi trực tuyến được du nhập về Việt Nam một cách manh mún, sau đó do lợi nhuận thu được từ các trò chơi này đem lại một khoản tiền khổng lồ, vì vậy các hàng loạt các nhà cung cấp dịch vụ đã ra đời và đồng thời hàng loạt trò chơi trực tuyến cũng đã ra đời theo, làm cho người chơi tha hồ lựa chọn các trò chơi đúng như sở thích của mình, Nói chung dần thì trò chơi trực tuyến chở thành món ăn tinh thần không thể thiếu được của thế hệ trẻ, tuy nhiên trò chơi trực tuyến lúc nào cũng có 2 mặt của nó, nếu biết chơi có mức độ và chọn được trò chơi có nội dung tốt thì sẽ tốt còn nếu không nó cũng sẽ tự hại đến chính bản thân người chơi

Trang 17

1.2 Giới thiệu các loại trò chơi trực tuyến

Hiện nay các trò chơi được phân ra làm hai loại chính là (theo tiêu chí phạm vi sử dụng): trò chơi offline và trò chơi online

• Trò chơi offline: là trò chơi mà không cần kết nối đến mạng internet, không

có nhà cung cấp dịch vụ Trò chơi này người chơi có thể tải về máy và người chơi có thể chơi với máy, hoặc chơi với một nhóm trong mạng LAN (phạm vi nhỏ) với số lượng người chơi hạn chế Game offline thường thì có nội dung giới hạn, tính phong phú không cao, nhàm chán, chính vì thế mà không thu hút được người chơi rỗng rãi, nhất là thế hệ trẻ hiện nay

• Trò chơi trực tuyến (game online): là trò chơi cần sử dụng đến mạng internet, có nhà cung cấp dịch vụ, các trò chơi này có thể tải về máy hoặc chơi trực tiếp trên mạng thông qua Browser (như các trò chơi flash game,

…) Các trò chơi này với số lượng người chơi lớn thông qua mạng internet, nội dung đa dạng, phong phú, các loại game này thường được chia ra làm 2 loại chính gồm:

o Game console: là loại game được tải về và cài đặt trực tiếp trên máy

người chơi (client) Loại này thường là các trò có dung lượng lớn, đòi hỏi đồ họa cao cấp, nội dung trò chơi phong phú, chủ yếu các trò chơi này dựa trên những Engine game cao cấp dạng 2D hoặc 3D, các engine này đòi hỏi cấu hình máy cao (nhất là Card đồ họa), các trò chơi này thường đòi hỏi sự hỗ trợ về đồ họa cao từ các bản DirectX được phát hành bời Microsoft,…

o Web Game: là những loại trò chơi có dung lượng nhỏ như web

game, flash game,… chủ yếu là các trò chơi 2D được tích hợp với các Browser như IE, Nescape, FireFox,… người chơi có thể chơi trực tiếp trên Browser, điều đặc biệt là game này có đồ họa và nội dung trò chơi đơn giản không đòi hỏi quá lớn đối với đồ họa hoặc cấu hình máy tính cao, một máy tính có cấu hình bình thường cũng vẫn có thể chơi tốt được các game này,

Trang 18

1.3 Mô hình, tính chất của các trò chơi trực tuyến

1.3.1 Mô hình các game trực tuyến

Hiện nay Game trực tuyến ngày càng phát triển và trở thành một dịch vụ sinh lời cao, chính vì thế đã xuất hiện rất nhiều nhà cung cấp dịch vụ game ra đời như VTCgame, FPTgame, Vinagame, …Các nhà cung cấp game này đã phát hành và cho ra đời rất nhiều loại game khác nhau tập trung vào thị hiếu của người chơi như

đồ họa cao cấp, nội dung phong phú,vv…Nhưng mô hình của các game trực tuyến này đều có một mô hình chung là Client-Server như hình 1, trong đó nhà cung cấp dịch vụ Game (NCC) là trọng tâm và phân phối tới các người chơi trên mạng Internet bằng việc bán tài khoản của dịch vụ game thông qua các dịch vụ nạp tiền như SMS, thẻ cào, …của từng nhà cung cấp

Provider Game Server

 

Hình 1: Mô hình cung cấp dịch vụ game trực tuyến của các NCC

Với mô hình trên, game trực tuyến cũng được phát triển dựa trên hai nền tảng là WebGame và ConsoleGame

Với mô hình WebGame người chơi (Game Client) thông qua giao diện WebBrowser, các game này thường có dung lượng nhỏ và có thể chạy được trên nền của webbrowser như IE, FireFox,…do dung lượng game nhỏ nên nội dung và

Trang 19

đồ họa của trò chơi cũng đơn giản và bị hạn chế, nhưng đổi lại người dùng không phải cài đặt gì nhiều và cấu hình máy tính cũng không yêu cầu cao

 

Hình 2: Mô hình WebGame

Hình 3: WebGame Linh Vương chạy trên web browser

Với mô hình Game Console, người chơi phải tải gameclient về máy và cài đặt trên máy của mình, các GameClient thường là có dung lượng lớn, dung lượng càng lớn thì nội dung của game càng phong phú, ngoài ra đồ họa cũng được hỗ trợ tốt nhất làm cho trò chơi sinh động, đẹp và thân thiện với người chơi Thông thường các game console lớn thường yêu cầu cấu hình PC cao như là CPU, RAM và nhất là card đồ họa Xu hướng các game console tập trung và chú trọng rất nhiều về nội dung và đồ họa Nội dung trò chơi càng ngày càng phong phú, các nhà phát hành game có xu hướng phát triển game theo các cốt truyện, lịch sử,…đồ họa cũng ngày càng được chú trọng phát triển cho tới thời điểm hiện tại nhiều game đã sử

Trang 20

dụng các game engines hỗ trợ DirectX 11 (phiên bản hỗ trợ 3D mạnh, hình ảnh mượt và màu sắc sống động) Nhờ có nội dung phong phú và đồ họa đẹp mắt mà game console đã thu hút được số lượng người chơi lớn, các nhà phát hành cũng tập trung nhiều hơn cho việc phát triển game console hơn là webgame

Trang 21

Bảng đánh giá so sánh giữa web game và game console

Tiêu chí so sánh Web game Game console

Hệ điều hành (OS) Không phụ thuộc hệ điều

hành, chỉ cần có web browser như FireFox, IE,… là có thể chơi được

Phụ thuộc vào hệ điều hành là 32bit hay 64bit, mỗi hệ điều hành đều có phiên bản riêng

Cấu hình máy tính PC Không đòi hỏi máy có

cấu hình cao

Đòi hỏi máy có cấu hình cao (CPU, RAM, VGA card)

Nội dung game Mức độ bình thường Phong phú, đa dạng

Đồ họa Mức độ bình thường Cao cấp, đòi hỏi phải có

card đồ họa cao đáp ứng tốt các phiên bản DirectX mới nhất (các phiên bản DrirectX mới thường hỗ trợ tốt 3D và khả năng xử

lý hình ảnh linh hoạt) Tính thông dụng Người chơi không phải

cài đặt trò chơi trên máy của mình Số lượng người chơi ít

Người chơi phải cài đặt trò chơi (gameclient) trên máy mình, Số lượng người chơi nhiều

Tính bảo mật dữ liệu

giữa client-server

Dữ liệu trao đổi giữa client và server đơn giản, tính bảo mật không cao

và dễ bị hack tấn công

Dữ liệu trao đổi giữa client và server phức tạp hơn so với web game nhưng tính bảo mật không cao và dễ bị hack tấn công

Trang 22

1.3.2 Tính chất của các trò chơi trực tuyến

Các trò chơi trực tuyến đều tuân theo nguyên tắc Client-Server, dữ liệu được nạp

từ Server về client mỗi khi người chơi khởi động game (login vào game), trong quá trình chơi các thông số của game được thay đổi và được trao đổi theo các cách sau:

• Trao đổi liên tục: đối với một số game, thông số game được trao đổi liên tục giữa client và server, do tính cập nhật liên tục giữa người chơi và máy chủ nên các thông số được trao đổi liên tục thông qua kênh kết nối

• Trao đổi không liên tục: đối với một số game các thông số không nhất thiết phải trao đổi thường xuyên, thông thường có 2 loại chính như sau:

o Loại 1: loại game chỉ kết nối lần đầu vào máy chủ sau đó lấy các thông số về và cắt khỏi máy chủ, người chơi sẽ thao tác trên game client và làm các thông số này thay đổi, đến khi nào người chơi kết thúc chơi thì các thông số này sẽ được chuyển về server và kết thúc chu trình

o Loại 2: loại game giống như loại 1, nhưng khác một điểm là khi 2 client lựa chọn chơi trực tiếp với nhau thì sau khi cả 2 client ngắt kết nối khỏi máy chủ thì 2 client này sẽ được server sinh ra một connection trực tiếp với nhau dạng peer-to-peer Sau đó 2 client chơi trực tiếp với nhau các thông số trên hai client được thay đổi liên tục

và gửi cho nhau thông qua connection peer-to-peer này Khi 2 client kết thúc cuộc chơi thì các thông số đó sẽ được gửi về server để lưu lại

Thông thường các trò chơi đang phát hành hiện nay đều tập trung vào loại trao đổi không liên tục, vì sao các trò chơi lại sử dụng hình thức này? Câu trả lời là nó có 2

lý do cơ bản sau:

• Các trò chơi trực tuyến hiện nay thường là những trò chơi đối kháng đánh theo nhóm hoặc hai người đánh trực tiếp với nhau, dữ liệu chỉ cần nạp từ server về client một lần không nhất thiết phải liên tục, dữ liệu được nạp về

Trang 23

game client sau đó client chơi và kết quả cuối cùng được cập nhật lên server

• Do lượng người chơi trong một thời điểm lớn, vì vậy nếu duy trì việc kết nối liên tục thì sẽ làm cho lượng connection đến server game sẽ bị quá tải

và gây ra việc nghẽn mạng hoặc quá tải, vì vậy các nhà sản xuất game rất tránh lượng người chơi connect cùng vào một thời điểm

1.4 Ưu điểm, nhược điểm tính bảo mật của các trò chơi trực tuyến

Khi nói đến trò chơi game, nhất là các trò chơi trực tuyến đang được ưa chuộng hiện nay cả nhà phát hành game cũng như là nhà viết game đều nghĩ đã là trò chơi thì phải hấp dẫn, sáng tạo trong cả nội dung và hình thức mà không đề cập đến việc bảo vệ trò chơi, chính vì vậy mà các nhà sản xuất game chú trọng nhiều đến việc khai thác đến nội dung (nội dung của trò chơi thường được phát triển dựa trên những cốt truyện) cũng như hình thức (tập trung vào đồ họa của game, khai thác tối đa về hình ảnh, cấu hình và công nghệ của máy tính) Việc tạo ra sản phẩm để bảo vệ GameClient lại được những hãng thứ ba phát triển, các hãng này thường tạo ra các sản phẩm có thể chống lại các hacker game thường là các hãng chuyên

về bảo mật và an ninh mạng Chính vì bản thân các nhà phát hành game không tự phát triển các phần mềm bảo mật cho chính hệ thống game của mình sản xuất ra nên nó có những ưu, nhược điểm sau đây:

• Ưu điểm:

- Nhà phát hành game tập trung đầu tư thời gian công sức vào việc phát triển game chứ không đầu tư sang lĩnh vực bảo mật, vì vậy các game được họ xây dựng công phu, nội dung phong phú và rất có sức hút đối với người chơi

- Với sự phát triển về công nghệ như phần cứng máy tính, các công cụ hỗ trợ người chơi như gamepad, joytich,…đa dạng, phong phú, các nhà sản xuất game cũng cho ra đời rất nhiều loại hình game ứng dụng các công nghệ mới đó, làm cho thế giới trò chơi càng phong phú hơn đối với các game thủ

Trang 24

- Nếu người chơi không sử dụng các công cụ hack đối với game thì game trực tuyến thực sự trở thành một thế giới ảo để các game thủ có thể đắm mình thưởng thức và thể hiện những màn biểu diễn vô cùng ngoạn mục của họ

• Nhược điểm:

Nói đến nhược điểm của trò chơi trực tuyến thì có rất nhiều nhược điểm, ở đây tác giả chỉ đề cập đến một nhược điểm lớn nhất đó là tính bảo mật của game là rất yếu, vì bản thân các nhà sản xuất game (NCC) không chú trọng vấn đề này vì thế khi GameClient chạy trên Client nó không thể tự bảo vệ trước những công cụ tấn công mà hacker (chính là người sử dụng máy Client đó) sử dụng, và điểm yếu của game được thể hiện rất rõ ở những vấn

đề sau:

- Bộ nhớ mà trò chơi sử dụng: chúng rất dễ bị các công cụ hack có thể tác động làm thay đổi giá trị của biến, từ đó làm thay đổi tính chất của mặc định của trò chơi

- Các thư viện, engine mà trò chơi sử dụng: là những thư viện đồ họa, engine game mà trò chơi sử dụng, chúng rất dễ bị hacker làm thay đổi, giả mạo bởi các kỹ thuật hooking, inject code,…từ đó làm cho tính chất, hình ảnh trò chơi cũng thay đổi theo

- Phần cứng của máy Client: nhiều trò chơi sử dụng tính chất của phần cứng như xung nhịp CPU, sự kiện nhấn phím keyboard,… cũng rất dễ bị thay đổi do hacker có thể sử dụng các công cụ làm thay đổi tính chất của mặc định của phần cứng như ép xung CPU, chương trình tự nhấn phím,…từ đó tác động lên trò chơi làm cho tính chất của trò chơi cũng bị thay đổi

Trang 25

CHƯƠNG II KHẢO SÁT CÁC LOẠI TẤN CÔNG, LỪA DỐI ĐỐI VỚI

TRÒ CHƠI TRỰC TUYẾN 2.1 Khảo sát các hình thức tấn công, lừa dối đối với trò chơi trực tuyến

Tấn công, lừa dối đối với trò chơi trực tuyến là những hình thức hacker tác động trực tiếp hoặc gián tiếp vào trò chơi với mục đích thay đổi một số tính chất vốn

có của trò chơi để thực hiện ý đồ có lợi cho họ chứ không có mục đích phá hoại trò chơi Thông thường khi chơi trò chơi người chơi phải tuân theo nguyên tắc, quy luật hay là kịch bản của trò chơi, các quy luật và kịch bản này do người viết trò chơi lập trình sẵn Các hacker khai thác các lỗi của trò chơi như bug tồn tại trong trò chơi hay điểm yếu bảo mật của trò chơi để tác động, một số điểm mà hacker hay tấn công nhất hiện nay được tác giả phân tích, tổng hợp như hình 6 gồm có:

• Memory attack: Tấn công vào memory (bộ nhớ chứa các biến trò chơi)

• Graphic (DirectX) attack: Tấn công vào đồ họa (phần DirectX của window)

• Server attack: Tấn công vào server (chỉnh sửa các giá trị truyền về server)

• Hardware attack: Tấn công vào phần cứng (bàn phím, chuột, CPU)

 

Hình 6: Mô hình tấn công của hacker vào hệ thống game trực tuyến

Trang 26

2.2 Các loại hình tấn công, lừa dối đối với trò chơi trực tuyến

Hiện nay hack hay còn gọi là cheat game ngày càng phức tạp và tinh vi, qua nghiên cứu phần này tác giả sẽ trình bày hai trong bốn hình thức lừa dối (tấn công) của hacker như đã nêu ở trên, hai hình thức này được coi là thông dụng và được sử dụng nhiều nhất trong thời điểm hiện nay

2.2.1 Tấn công, lừa dối tác động vào bộ nhớ (Memory attack)

Như chúng ta đã biết game cũng là một trình ứng dụng thông thường như những trình ứng dụng khác, khi chương trình game chạy các biến của nó được khởi tạo

và phân bổ vào các vùng bộ nhớ trên memory, việc phân bổ bộ nhớ cho các biến của game theo chuẩn của hệ điều hành (Operating System) như loại x86, x64,…nhưng nguyên tắc chung thì diễn ra như hình dưới Do trình ứng dụng chỉ làm việc với biến trên Virtual Memory nên khi trình ứng dụng game chạy các biến sẽ được cấp phát trên Virtual Memory (VM) tương ứng trên Physical Memory cũng được cấp phát vùng nhớ vật lý, hai vùng nhớ này ánh xạ (mapping) với nhau thông qua bảng địa chỉ Page Table Entries, ở đây tác giả cũng không đề cập sâu vào việc cấp phát và quản lý bộ nhớ của Window, để tìm hiểu thêm bạn

có thể tham khảo tại địa chỉ:

http://www.microsoft.com/whdc/driver/kernel/mem‐mgmt.mspx

Hình 7: Cấp phát và quản lý bộ nhớ của hệ điều hành Windows

Trang 27

Dựa vào nguyên tắc này với hacker chuyên nghiệp, am hiểu về lập trình hệ thống,

họ đã lập trình ra các công cụ dò tìm các vùng nhớ chứa các biến của tiến trình game và thay đổi các giá trị thực của các biến game đó, các công cụ mà hacker tạo ra có thể hỗ trợ việc dò tìm bằng tay hoặc tự động

Ví dụ: Hacker có thể dùng công cụ (phần mềm) của mình để dò tìm và thay đổi biến máu, biến đạn, lực,…trong các trò chơi đối kháng, ví dụ như công cụ CheatEngine

Vậy ta có thể kết luận rằng với khả năng am hiểu về hệ thống và lập trình cấp thấp các hacker hoàn toàn có thể tạo ra các công cụ tác động, tấn công vào bộ nhớ của trình ứng dụng game, làm thay đổi các biến trong game theo ý đồ của chúng Hiện nay các công cụ do các hacker lập trình tạo ra để tác động vào bộ nhớ của game xuất hiện rất nhiều và ngày càng trở lên thông dụng, người chơi trên mạng cũng sử dụng nhiều các công cụ này để phục vụ mục đích hack game của mình

Hình 8: Mô phỏng tấn công bộ nhớ

Trang 28

Hình 9: Hacker dùng công cụ để dò tìm biến của game và thay đổi giá trị

2.2.2 Tấn công, lừa dối tác động vào đồ họa (Graphic attack)

Nền tảng đồ họa ứng dụng của Window là dựa trên DirectX, vậy DirectX là gì? Bạn có thể tham khảo tại phụ lục hoặc tại địa chỉ:

http://en.wikipedia.org/wiki/DirectX , Nói ngắn gọn DirectX là một tập hợp đa định dạng của các hàm giao tiếp lập trình ứng dụng (Application Programming Interface-API) của riêng Windows, cung cấp một bộ công cụ đã chuẩn hoá các tính năng hỗ trợ cho đồ hoạ, âm thanh, việc cài đặt các ứng dụng, sự tương tác của nhiều người cùng tham gia trong một trò chơi nối mạng DirectX được coi như một thư viện, một driver chứa các hàm API hỗ trợ về đồ họa và âm thanh, nó giao tiếp trực tiếp với phần cứng của máy tính như Card đồ họa và Card âm thanh Các trình ứng dụng Application thực thi các chức năng liên quan đến hình ảnh và âm thanh thì đều thông qua DirectX để DirectX tương tác với hệ thống phần cứng thực thi các yêu cầu đó

Ví dụ: trình Media Player chơi một bản nhạc hay một bộ phim thì trình Media Player phải tương tác thông qua DirectX để DirectX tương tác với phần cứng thực thi việc hiển thị hình ảnh và âm thanh của bộ phim đó

Với từng phiên bản của DirectX thì Microsoft đã xây dựng và phát triển thành một công cụ, một thư viện các hàm API chuẩn, hỗ trợ về công nghệ hình ảnh như

Trang 29

2D, 3D và âm thanh ngày càng hoàn thiện Trò chơi(game) cũng là một trình ứng dụng sử dụng rất nhiều các hàm API của thư viện DirectX để vẽ và tạo âm thanh Lợi dụng tính chất này mà các hacker am hiểu hệ thống đã sử dụng kỹ thuật hook các hàm hệ thống nhằm tác động, tấn công giả mạo các API của DirectX để làm thay đổi một số tính năng vốn có của nó, gián tiếp nhằm tác động đến ứng dụng game khi gọi đến các API của DirectX đã bị thay đổi, xem hình dưới một số API chuẩn đã bị đổi thành API’

Ví dụ: hack Wall trong game CrossFire do VTC phát hành, Player1 sử dụng tool

hack tác động đến DirectX để thay API vẽ màu tường xám vốn có thành màu trong suốt, vì vậy khi chơi Player1 có thể nhìn xuyên qua tường để thấy được Player2, nhưng ngược lại Player2 không dùng tool hack thì bức tường được vẽ trên máy của mình là màu xám và Player2 không thể nhìn xuyên được tường để thấy được Player1 Bạn có thể xem minh họa ví dụ bằng hình 11

Hình 10: Mô phỏng tấn công đồ họa DirectX

 

Hình 11 : Ví dụ về hack tàng hình trong trò chơi CrossFire

Trang 30

Như vậy Player 1 đã dùng tool hack tác động lên DirectX trên máy của mình làm cho nó bị thay đổi khi vẽ bức tường màu xám thành màu trong suốt Như vậy Player 1 có thể quan sát được 3 đối thủ kia di chuyển, nhưng ngược lại 3 đối thủ kia không thể quan sát được Player 1 di chuyển như thế nào Cơ chế tác động vào DirectX được minh họa như hình dưới, hacker chỉ tác động làm thay đổi một số API mong muốn và có lợi cho hacker chứ không tác động và thay toàn bộ các API vốn có của thư viện DirectX

 

Hình 12: Một số API đã bị thay đổi bởi hacker

Vậy ta có thể kết luận rằng với các hacker am hiểu hệ thống và lập trình cấp thấp,

họ không cần phải tác động trực tiếp vào trình ứng dụng game vì nó vốn rất phức tạp mà họ tác động gián tiếp thông qua thư viện đồ họa của Window, với các kỹ thuật tinh vi như kỹ thuật hook, injectcode,… (bạn có thể tham khảo phụ lục) hacker hoàn toàn có thể tác động được lên trình ứng dụng của game, và kiểu tấn công này trở lên rất phổ biến hiện nay và chúng được sử dụng nhiều trong các trò chơi có đồ họa cao cấp

Dưới đây là một số hình ảnh minh họa trong game CrossFire (đột kích-CF) của VTC phát hành, hacker đã tác động vào DirectX làm cho game bị thay đổi tính chất

Trang 31

Hack độn thổ Hack wall Hack xuyên tường

Hình 13: Minh họa tác động vào đồ họa DirectX

2.2.3 Tấn công, lừa dối tác động vào phần cứng (Hardware attack)

Với một số game có sử dụng và tương tác đến phần cứng của máy tính như sử dụng xung nhịp của CPU, sử dụng các phím điều khiển của bàn phím,…thì hacker đã lợi dụng sự tương tác này để tác động đến phần cứng nhằm thay đổi tính chất của game

Ví dụ: hacker sử dụng các phần mềm ép xung máy tính làm cho CPU có thể chạy nhanh hơn, giả sử nhân vật trong game theo quy định thì sau 3 giây mới tung ra được 1 chưởng mới (3 giây này được lấy qua xung của CPU), nhưng do hacker

đã ép xung làm cho CPU tăng lên giả sử là 3 lần thì nhân vật game có thể sau 1 giây có thể ra được 1 chưởng mới (rút ngắn được từ 3 giây xuống còn 1 giây) Hoặc trong game Audition, các điệu nhảy được dựa trên các nút mũi tên khi người chơi nhấn, thay vì người nhấn thì hacker đã viết sẵn phần mềm nhấn hộ người chơi

Vậy có thể kết luận việc hacker tấn công vào phần cứng cũng làm thay đổi rất nhiều đến tính chất và kịch bản của trò chơi

Trang 32

Hình 14: Mô phỏng tấn công phần cứng

2.2.4 Tấn công vào máy chủ (Server attack)

Hiện nay cũng có một số công cụ hack được các hacker phát triển nhằm gián tiếp tác động vào máy chủ game, ở đây hacker không có ý đồ tấn công làm hỏng hệ thống máy chủ mà chỉ gián tiếp nhằm đón các chỉ số mà từ game Client gửi về Server Game, việc can thiệp thay đổi các chỉ số của game client trước khi gửi về server được thực hiện ngay trên máy người chơi và được minh họa như hình dưới

Hình 15: Mô phỏng tấn công máy chủ (Server)

 

Hình 16: Ví dụ về tấn công máy chủ

Trang 33

Ví dụ: Đối với một số game tăng Level (cấp độ) các Level này được quy định bởi một số chỉ số, khi người chơi kết thúc game các chỉ số mới sẽ được cập nhật lên server để lưu lại, nhưng tool hack đã đón các chỉ số này và thay đổi giá trị của nó sau đó mới gửi về Server để cập nhật

2.3 Các kỹ thuật sử dụng trong hack game

Hiện nay với khuôn khổ quyển luận văn này, tác giả cũng chỉ giới thiệu và đề cập tóm tắt một số kỹ thuật mà hacker hay sử dụng mà chính tác giả đã nghiên cứu được để cho chúng ta có cái nhìn tổng quan về việc hacker đã làm gì và tác động đến hệ thống game trực tuyến như thế nào?

Như phần 2.2 đã giới thiệu về bốn loại hình tấn công điển hình đối với trò chơi trực tuyến, thì tương ứng với nó là các kỹ thuật được hacker sử dụng như thế nào với từng trường hợp đó:

2.3.1 Kỹ thuật hooking:

Là kỹ thuật được hacker sử dụng nhiều nhất trong các kỹ thuật hack thông dụng hiện nay Hooking được chia ra làm 2 loại là hooking API trong UserMode (ring3) và hooking API trong KenelMode(ring0)

Hooking User-Mode API: hooking trong User-Mode là phương pháp thông dụng nhất, nó được áp dụng rộng rãi trong nhiều loại rootkit, các debugger-hider như OnlyInvisible (teerayoot), các công cụ hack đối với game console,…Hooking loại này chỉ nằm trong phạm vi tầng User-Mode (ring3), nghĩa là trong phạm vi vùng nhớ từ 00000000h -> 7FFFFFFFh

- Hooking bằng cách thay đổi các file thư viện (DLL hoặc EXE)

Phương pháp này là phương pháp thường được ứng dụng trong virus coding Cơ chế của nó là thay đổi, patching các thư viện DLL, EXE trực tiếp trên ổ cứng các hàm, thủ tục (function) cần hook như các function liệt kê process Có thể đè code lên entry point để hướng code tới nơi

Trang 34

hacker mong muốn, hoặc có thể thay đổi toàn bộ DLL bằng DLL của chúng ta viết giả mạo

- Hooking trong khi chạy - patching trên bộ nhớ ảo của process

Phương pháp này thực hiện bằng cách sử dụng API WriteProcessMemory Tuy nhiên, nó chỉ áp dụng được khi ta có quyền write đối với process memory Tương tự như phương pháp trên, phương pháp này cũng là thay đổi entry point của các API hoặc ghi đè code của các API, nhưng không phải trực tiếp lên file mà là trên virtual memory của process

Trong cấu trúc của file PE, có một bảng gọi là IAT (Import Address Table) lưu giữ các địa chỉ các API mà process cần gọi trong khi chạy (vd: ExitProcess, GetMođuleHanle ) Các process thực chất là các file PE/EXE được ánh xạ (mapping) vào virtual memory và tự động kích hoạt và chạy bởi Windows Và IAT cũng được map vào memory, hooking chỉ còn là công việc thay đổi các address trong IAT thành địa chỉ các hàm, thủ tục (function) mà ta muốn

Hooking kernel-mode Native API: Hầu hết các API được sử dụng trong user-mode thực ra đều chỉ là đầu cuối của các API nằm trong lõi của Windows, được gọi là Native API Vd: trong user-mode, hàm VirtualAlloc sẽ gọi hàm VirtualAllocEx; hàm VirtualAllocEx sẽ gọi hàm NtAllocateVirtualMemory trong ntdll.dll; từ ntdll, Windows sẽ thực thi 2 opcode đặc biệt là sysenter và syscall để chuyển từ ring3 (user-mode) sang ring0 (kernel-mode), và thực thi phần chính của công việc trong ntoskrnl.exe - lõi thực sự của Windows NT

Các service (hay các kernel-mode API hoặc Native API) hầu hết nằm trong ntoskrnl.exe Nếu chúng ta thực hiện hooking tại đây, các user-mode application sẽ khó nhận biết được sự việc tác động (hooking) này,

do code trong user-mode không được phép access tới address dành cho

Trang 35

kernel Hooking trong kernel-mode cũng tương tự như trong user-mode, cũng là thay đổi địa chỉ của API thật bằng hàm của chúng ta tạo ra

2.3.2 Kỹ thuật DLL Injection

Chúng ta có thể chạy thread từ memory của process khác Điều này nghĩa là gì?

Có nghĩa là chúng ta có thể load code vào memory của process và chạy code của chúng ta từ đây Phần code này có nhiệm vụ hook các API Để chạy thread trong memory của process khác, chúng ta dùng API:

CreateRemoteThread HANDLE CreateRemoteThread(

Chúng ta có thể tạo thread vào process muốn hook Vậy còn load code vào memory process thế nào mà không dùng WriteProcessMemory? Câu trả lời: Chúng ta sẽ dùng GetProcAddress để lấy địa chỉ của LoadLibrary rồi cho lpStartAddress là địa chỉ của LoadLibrary, lpParameter trỏ tới tham số là tên DLL của chúng ta, vd như: thug_hooks_y0u.dll Hàm LoadLibrary chỉ có một tham số duy nhất là con trỏ trỏ tới thư viện cần load

Trang 36

từ địa chỉ của LoadLibrary với tham số là tên thư viện của chúng ta Khi thread được bắt đầu chạy, thì phần khởi tạo với tham số như trên được thi hành, và DLL của chúng ta được load vào memory - lưu ý: memory này là memory của process

ta muốn hook, do thread này nằm trong memory của process này và thread này chấm dứt Tuy thread đã chấm dứt nhưng DLL của chúng ta thì vẫn nằm trong memory

2.3.3 Kỹ thuật đón, nhận và sửa gói tin kết quả

Mỗi khi kết quả do người chơi tạo ra thì GameClient sẽ cập nhật về Game Server

để lưu giữ kết quả, hacker sẽ đón nhận các gói tin kết quả đó và sửa giá trị của chúng trước khi truyền về Game Server Kỹ thuật này được hacker sử dụng nhiều, bởi vì bản thân Server hacker không thể tấn công trực tiếp được vào, với lại mục đích của hacker không phải là phá hoại mà chỉ làm sao để kết quả của họ

có lợi, chính vì thế mà hacker chỉ sử dụng kỹ thuật đón nhận và sửa gói tin Có rất nhiều công cụ có thể thực hiện làm việc này ví dụ như sniffer,…Tuy nhiên kỹ thuật này tương đối khó, đòi hỏi hacker phải là người rất am hiểu về mạng và phân tích gói tin, bởi vì nếu gói tin mà bị sửa thành sai thì Game Server không chấp nhận kết quả Việc đón nhận gói tin có thể được thực hiện trên tầng Network, hoặc trên card mạng Như hình dưới công cụ hack nằm đón kết quả X

từ GameClient gửi về Server, sau đó hacker sửa X thành Y và tiếp tục gửi về Server để cập nhật

 

Hình 17: Kỹ thuật đón nhận và sửa gói tin kết quả

Trang 37

CHƯƠNG III NGHIÊN CỨU GIẢI PHÁP VÀ XÂY DỰNG MÔ HÌNH FRAMEWORK CHỐNG TẤN CÔNG LỪA DỐI TRONG TRÒ CHƠI

TRỰC TUYẾN 3.1 Định hướng nghiên cứu các giải pháp, công nghệ chống tấn công, lừa dối

Như chương II tác giả đã nghiên cứu và trình bày về các hình thức và kỹ thuật mà hacker sử dụng để viết thành các công cụ hack đối với các trò chơi Tác giả không đi theo các mô hình và giải pháp của các hệ thống đi trước, vì họ tập trung nhiều vào việc nhận biết trực tiếp các process hack bằng cách quét(scan) các tiến trình đang chạy trên máy Client và so sánh thông tin mẫu Cách này có các ưu, nhược điểm sau:

• Ưu điểm:

- Giải pháp đơn giản, dễ xây dựng và phát triển

- Rất hiệu quả đối với các công cụ hack game đơn giản và khi chúng ít có biến thể

- Lấy mẫu và cập nhật hệ thống nhanh bằng phương pháp lấy mẫu

- Hệ thống hầu hết chỉ tương tác trên tầng Usermode nên àn toàn không bị xung đột với các hệ thống khác, ví dụ hệ thống antivirus đang có trên máy

- Sử dụng các API sẵn có do Microsoft cung cấp mà không cần phải phát triển từ đầu

• Nhược điểm:

- Do hệ thống được xây dựng đơn giản và chủ yếu tác động trên mức UserMode nên không thể chống được các công cụ hack phức tạp, tinh vi khi chúng tác động dưới mức KenelMode

- Khi công cụ hack có biến thể khi bị chỉnh sửa thì lập tức hệ thống này không nhận ra và lại phải lấy mẫu mới, như vậy

Trang 38

lượng mẫu trong CSDL cập nhật càng ngày càng phình ra rất nhanh

- Khi lượng mẫu lớn thì việc so sánh mẫu trong hệ thống sẽ phải xử lý mất nhiều thời gian hơn, làm cho performance của

hệ thống giảm

- Xu hướng hiện nay các hacker tập trung phát triển các công

cụ hack tác động mức KenelMode chính vì thế hệ thống sẽ không thể sử dụng giải pháp so sánh mẫu được nữa

Chính vì những nhược điểm cơ bản của hệ thống hiện tại, trước những xu hướng phát triển các công cụ hack hiện nay của các hacker mà tác giả xác định hướng nghiên cứu, từ đó xây dựng một mô hình, giải pháp cho một hệ thống hoàn thiện hơn Trong quyển đề tài này, tác giả xác định hướng nghiên cứu của đề tài theo một số chủ đề sau:

• Nhận biết tiến trình hack đang chạy bằng việc so sánh mẫu (compare blacklist): Thay vì việc lấy mẫu rất nhiều thông tin để so sánh và nhận

biết process như các hệ thống trước đây thì tác giả xác định chỉ lấy số lượng ít thông tin như: địa chỉ offset 32bit, mã hash của process, địa chỉ

PA Các thông tin này rất có giá trị, dựa vào việc lấy mẫu các thông tin này ta có thể xác định được nhanh chóng và chính xác các process đang running có phải là tools hack hay không?

• Che dấu (hidden) thông tin của tiến trình GameClient trên máy Client: Thường các tools hack trước khi tác động vào game thì nó phải

thực hiện việc lấy thông tin của process game thông qua PID ở lớp UserMode, chính vì vậy để chống hacker lấy được các thông tin process game, ta cần một phương pháp che dấu thông tin process (hidden) ở mức UserMode bằng phương pháp hooking ở mức KenelMode

• Đồng bộ và điều khiển (Syn/Alarm) GameClient bằng giải pháp IPC (Intenal process communication): Do trò chơi và hệ thống chống hack

game được phát triển độc lập bởi hai nhà cung cấp, vì vậy hệ thống chống hack game cần phải có một sự liên kết chặt chẽ giữa hai tiến trình, để có

Trang 39

thể liên lạc và điều khiển được trạng thái tắt/mở trò chơi Việc liên lạc giữa hai tiến trình này thông qua một đường ống Pipe và dữ liệu điều khiển được mã hóa và trao đổi qua đường ống này

• Nghiên cứu và xây dựng giải pháp giám sát (monitor) trên máy Client gồm ở những hình thức giám sát như là:

o Giám sát việc khởi tạo process mới (process monitor): giám sát

việc khởi tạo các process mới, kiểm tra tức thì các process vừa được khởi tạo bằng phương pháp so sánh mẫu thông tin trong blacklist

o Giám sát khởi tạo Key trong registry (registry monitor): hệ thống

giám sát việc khởi tạo key trong registry của window, nhằm chống hacker cài đặt driver (driver hack tấn công mức kenelmode) trên hệ thống

o Giám sát khởi tạo file (file monitor): hệ thống giám sát việc khởi

tạo các file lưu trên ổ đĩa khi hacker cài đặt công cụ hack

o Giám sát đọc/ghi bộ nhớ (memory monitor) : hệ thống giám sát việc

đọc/ghi bộ nhớ, giám sát các process thao tác với bộ nhớ của process game, ở đây nếu ta monitor tốt thì hệ thống hoàn toàn có thể chống lại công cụ hack tác động tấn công vào bộ nhớ của game Vậy với những định hướng nghiên cứu về giải pháp trên thì hệ thống sẽ thực

sự trở thành một hệ thống chống hack game tương đối hiệu quả và có khả năng chống lại nhiều loại hình tấn công từ phía hacker, có khả năng thay thế và có thể đánh giá là tốt hơn hẳn so với các phần mềm chống hack game hiện có

Kết luận:

Do hệ thống được thiết kế tương tác trực tiếp với 2 mức của hệ điều hành (OS) window như hình dưới Do mức User mode nếu để lộ thông tin tiến trình game thì có rất nhiều hacker sẽ tận dụng sơ hở này để lấy thông tin và tác động vào

Trang 40

game, nếu ta thực hiện che dấu (hidden) thông tin làm cho mức Usermode không thể nhìn và lấy được thông tin thì tất cả nỗ lực của hacker đều như được vô hiệu Một số phần mềm chống hack game khác thay vì việc che dấu (hidden) thông tin thì lại cập nhật và so sánh mẫu các tool hack trên mức usermode, nhưng mẫu chỉ thực sự hiệu quả khi tool hack đó không thay đổi, nhưng nếu nó có thay đổi ví dụ như sửa đi và biên dịch lại thì lập tức mẫu đó đã thay đổi và không còn đúng nữa như vậy một tool có thể biến thể thành rất nhiều mẫu, như vậy ta lại phải lấy mẫu mới và cập nhật vào hệ thống Thay vì giải pháp lấy mẫu và so sánh mẫu nếu ta dùng giải pháp che dấu (hidden) toàn bộ thông tin phía usermode thì ta không cần quan tâm đến việc lấy mẫu nữa mà mức usermode hacker hoàn toàn không thể lấy được thông tin tiến trình game để tấn công, như vậy ta có thể hoàn yên tâm trước những công cụ tấn công nằm trên mức usermode

Hình 18: Mô hình hai giải pháp chống các công cụ hack

Như vậy, nếu mức UserMode hacker không làm được gì ở đây thì sẽ chuyển hướng đến mức sâu hơn là mức Kenel-Mode, việc tác động đến mức kenelmode hoàn toàn phải sử dụng việc viết Driver tác động cấp thấp, và phải được chạy (running) trên hệ thống Vậy hệ thống GameGuard đặt ra sẽ là Monitor hệ thống, nếu phát hiện driver thuộc dạng tool hack được cài (phát hiện bằng việc so sánh mẫu) thì hệ thống sẽ tự thoát, việc monitor thông qua 4 loại là : tạo file mới, tạo registry mới, tạo tiến trình mới và thao tác đọc /ghi bộ nhớ của process Ở đây regitry được cho là vấn đề chính vì Driver muốn chạy được thì bắt buộc phải đăng ký với Window tức là phải khởi tạo Key mới vào registry, vì thế nếu ta monitor ở đó chắc chắn sẽ kiểm soát chặt được driver hack được cài đặt

Ngày đăng: 27/07/2017, 20:26

HÌNH ẢNH LIÊN QUAN

Hình 2: Mô hình WebGame - Gameguard hệ thống phần mềm bảo vệ trò chơi trực tuyến trên nền windows chống lại các hacker
Hình 2 Mô hình WebGame (Trang 19)
Hình 4: Mô hình GameConsole - Gameguard hệ thống phần mềm bảo vệ trò chơi trực tuyến trên nền windows chống lại các hacker
Hình 4 Mô hình GameConsole (Trang 20)
Hình 6: Mô hình tấn công của hacker vào hệ thống game trực tuyến - Gameguard hệ thống phần mềm bảo vệ trò chơi trực tuyến trên nền windows chống lại các hacker
Hình 6 Mô hình tấn công của hacker vào hệ thống game trực tuyến (Trang 25)
Hình 7: Cấp phát và quản lý bộ nhớ của hệ điều hành Windows. - Gameguard hệ thống phần mềm bảo vệ trò chơi trực tuyến trên nền windows chống lại các hacker
Hình 7 Cấp phát và quản lý bộ nhớ của hệ điều hành Windows (Trang 26)
Hình 9: Hacker dùng công cụ để dò tìm biến của game và thay đổi giá trị - Gameguard hệ thống phần mềm bảo vệ trò chơi trực tuyến trên nền windows chống lại các hacker
Hình 9 Hacker dùng công cụ để dò tìm biến của game và thay đổi giá trị (Trang 28)
Hình 21: Mô hình tổng thể của hệ thống GameGuard - Gameguard hệ thống phần mềm bảo vệ trò chơi trực tuyến trên nền windows chống lại các hacker
Hình 21 Mô hình tổng thể của hệ thống GameGuard (Trang 43)
Hình 22: Mô hình tương tác giữa các thành phần của hệ thống GameGuard - Gameguard hệ thống phần mềm bảo vệ trò chơi trực tuyến trên nền windows chống lại các hacker
Hình 22 Mô hình tương tác giữa các thành phần của hệ thống GameGuard (Trang 44)
Hình 24: GG tác động vào nhân của window nhằm che dấu(hidden) thông tin và giám - Gameguard hệ thống phần mềm bảo vệ trò chơi trực tuyến trên nền windows chống lại các hacker
Hình 24 GG tác động vào nhân của window nhằm che dấu(hidden) thông tin và giám (Trang 47)
Hình 25: Tổ chức các module chức năng trong frameword GameGuard. - Gameguard hệ thống phần mềm bảo vệ trò chơi trực tuyến trên nền windows chống lại các hacker
Hình 25 Tổ chức các module chức năng trong frameword GameGuard (Trang 47)
Hình 30: Sơ đồ khối hoạt động của mô hình framework. - Gameguard hệ thống phần mềm bảo vệ trò chơi trực tuyến trên nền windows chống lại các hacker
Hình 30 Sơ đồ khối hoạt động của mô hình framework (Trang 52)
Hình 31: Mô hình cài đặt hệ thống GG với hệ thống GC tại VTC. - Gameguard hệ thống phần mềm bảo vệ trò chơi trực tuyến trên nền windows chống lại các hacker
Hình 31 Mô hình cài đặt hệ thống GG với hệ thống GC tại VTC (Trang 54)
Hình 34: Mô hình kết nối và phân tải trên một site của hệ thống - Gameguard hệ thống phần mềm bảo vệ trò chơi trực tuyến trên nền windows chống lại các hacker
Hình 34 Mô hình kết nối và phân tải trên một site của hệ thống (Trang 57)
Hình 35: Bảng kết quả thử nghiệm khả năng nhận biết công cụ hack game - Gameguard hệ thống phần mềm bảo vệ trò chơi trực tuyến trên nền windows chống lại các hacker
Hình 35 Bảng kết quả thử nghiệm khả năng nhận biết công cụ hack game (Trang 58)
Hình 37: Ánh xạ (mapping) địa chỉ trong bộ vi xử lý X86 - Gameguard hệ thống phần mềm bảo vệ trò chơi trực tuyến trên nền windows chống lại các hacker
Hình 37 Ánh xạ (mapping) địa chỉ trong bộ vi xử lý X86 (Trang 65)
Hình 45: Tạo đối tượng với cấu trúc đường ống mới - Gameguard hệ thống phần mềm bảo vệ trò chơi trực tuyến trên nền windows chống lại các hacker
Hình 45 Tạo đối tượng với cấu trúc đường ống mới (Trang 82)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w