• Thứ Tư, 11/11/2009 21:24 (GMT+7)

    Bảo vệ từ trong ra ngoài

    Thế Giới Vi Tính - Thế Giới Game đã phỏng vấn Nguyễn Thành Nam (NTN), giám đốc công ty TNHH Tư Vấn Trăng Xanh (Blue Moon) và Galactic Mantis, đã làm việc trong lĩnh vực bảo mật game từ 2004, về bảo mật các trò chơi trực tuyến (game online - GO).

    GO thực chất là phần mềm nhưng bảo mật lại ít được nhắc tới, theo ông, lỗi bảo mật game nếu có sẽ tác hại như thế nào ?

    Quả thật an ninh trong các trò chơi trực tuyến ít được quan tâm. Có lẽ vì các lỗi trong GO không gây ra thiệt hại trực tiếp tới "ví tiền" của các tổ chức như các phần mềm kinh doanh chuyên dụng, mà đa phần ảnh hưởng lớn đến "ví tiền" của người chơi. "Ví tiền" được hiểu theo nghĩa cả thời gian, cảm xúc và tiền bạc. Các lỗi trong GO ảnh hưởng đến các quy luật của trò chơi, làm cho trò chơi không còn công bằng nữa. Ai biết được lỗi và có khả năng tận dụng lỗi sẽ nghiễm nhiên trở thành ngôi sao trong trò chơi đấy. Chẳng hạn, trong các trò chơi dạng bắn súng góc nhìn thứ nhất (First Person Shooter - FPS), nếu như lỗi làm cho tầm sát thương của dao hay súng trong game rộng hơn thì kẻ gian lận chỉ cần đứng một chỗ “chém gió” cũng có thể hạ được rất nhiều người chơi thông thường khác.

    Ngoài ảnh hưởng đến việc giải trí của người khác, các lỗi trong GO còn có thể dẫn đến mất mát về tài sản ảo của người chơi. Chẳng hạn, các lỗi đăng nhập trong một vài trò chơi phổ biến ở Việt Nam khiến cho kẻ xấu có thể đăng nhập vào tài khoản của người khác và chuyển đồ vật của họ vào tài khoản của mình. Đồ vật trong GO có thể là ảo, nhưng hiện kim, hiện vật mà chúng có thể được quy đổi ngoài đời thường thì không ảo chút nào.

    Quan trọng hơn hết là lỗi trong GO có thể dẫn đến kết quả tồi tệ là kẻ xấu chiếm toàn quyền điều khiển máy tính của người chơi. Vì GO cũng là một phần mềm nên chúng cũng mắc phải những lỗ hổng kinh điển như tràn bộ đệm và dẫn đến cơ hội tấn công từ xa của các hacker mũ đen. Nghiêm trọng nhất là khi cả triệu người chơi đều trở thành mồi ngon của các hacker mũ đen này.

    Tại sao các nhà phát triển (NPT) game lại chậm vá lỗi?

    Trớ trêu cho các nhà phát hành (NPH) là tuy trực tiếp chịu tiếng xấu nhưng họ không thể khắc phục lỗi vì chỉ có NPT mới có thể khắc phục lỗi. NPH chỉ có thể làm hết sức mình để hỗ trợ, cung cấp thông tin cho NPT để họ sửa lỗi càng nhanh càng tốt. Nhưng NPT lại có thể có nhiều hợp đồng với các NPH khác nhau, với mức giá khác nhau và độ ưu tiên dịch vụ khác nhau, chưa kể đến những dự án, hoặc tính năng đổi mới mà họ đã vạch kế hoạch. Trong ma trận đấy, yêu cầu sửa lỗi của NPH có thể bị "lãng quên" một thời gian, dẫn đến tình trạng người chơi cảm thấy NPH phản ứng chậm với việc vá lỗi.

    Trách nhiệm chính chắc chắn thuộc về NPT game. Chỉ họ mới có toàn bộ tài liệu và công nghệ để khắc phục lỗi. Mặc dù lỗi không phải do mình tạo ra, và mình cũng không thể vá chúng, nhưng NPH có thể, và rất nên, hỗ trợ tích cực trong việc nghiên cứu tại sao xảy ra lỗi, các cách khắc phục, và bàn giao lại cho NPT để rút ngắn thời gian vá lỗi, cũng như tạo được ấn tượng tốt với cả người chơi, lẫn NPT. Ở Việt Nam đã có một hoặc hai NPH cải thiện đáng kể mối quan hệ với NPT chính nhờ vào phản ứng tích cực như vậy.

    Trần Quốc Bình, trưởng nhóm phát triển web game “Thiên Hà Đại Chiến” đã có vài chia sẻ về chống gian lận game online nói chung và web game nói riêng:

    Web game tồn tại gian lận

    Khả năng gian lận trên nền web là rất cao và cao hơn bên game cài đặt. Lý do là các giao thức trên web cũng là HTTP và văn bản (clear text) nên người dùng biết chút về web cũng có thể thử và nếu kiên trì thì có thể tìm ra chỗ hở. Trong khi phần mềm ứng dụng (application) sử dụng giao thức nhị phân (binary hoặc encrypted binary) nên đòi hỏi hacker có trình độ rất cao mới hiểu và tìm cách hack; tuy nhiên nếu hacker giỏi mà cũng cùng mê game đó thì cơ hội cao hơn. Gian lận có nhiều cách, nhưng thông thường nhất là viết mã chơi tự động (code auto) cho game web. Họ viết xong rồi lại tung ra cho bạn bè và từ đó cả cộng đồng gamer đều có để dùng. Hơn nữa, game web thường là game thời gian thật, dù gamer không chơi game nhưng nhân vật đó vẫn phát triển, vì vậy mà tình trạng multi là tình trạng gian lận lớn nhất mà tất cả game web đang bị mắc phải. Gian lận kiểu multi thôi là một vấn đề tai hại nhất trong các game web thời gian thật.

    Ưu điểm về bảo mật của web game

    Ưu điểm về bảo mật của web game so với game cài đặt là thời gian và tài nguyên băng thông khi triển khai phiên bản mới sau khi đã sửa code chống gian lận sẽ ít tốn kém hơn nên có thể triển khai bao nhiêu lần cũng được; game cài đặt chắc chắn không thể ra hơn 5 phiên bản trong 1 tháng.

    Ưu điểm thứ 2 là dễ dàng “bắt” gamer gian lận. Chẳng hạn, code viết sẵn có phần kiểm tra và bắt gian lận, nhưng không mở ra khi gamer chơi. Tuỳ chính sách, phần chống gian lận này có thể ngẫu nhiên được kích hoạt trong 5 phút để kiểm tra và gamer đang sử dụng auto script có nguy cơ bị bắt mà họ cũng không biết lý do tại sao bị bắt vì trong 5 phút đó họ không online. Vì vậy, những người lập trình script cũng không biết cách nào để cải tiến script nhằm chống bị phát hiện. Trong khi game cài đặt thì sẽ khó làm việc này. Như vậy dù cho gamer đã gian lận nhiều tháng nhưng chỉ cần bị bắt 1 lần cũng mất tất cả nên sẽ khó phát triển mạnh hơn gamer chân chính trong 1 thời gian dài.

    Chân chính và gian lận

    Thật sự muốn cho người chơi chân chính yên tâm thì chỉ có 1 phương pháp. Đó là quản lý và điều hành sao cho game thủ nếu có gian lận cũng không mạnh hơn game thủ chân chính. Game thủ nào mà chẳng muốn mạnh hơn các bạn khác, nhưng nếu chỉ có những gamer gian lận mới mạnh thì gamer chân chính sẽ bỏ game hoặc cũng phải dùng những auto đó để cân bằng với họ.

    Trên thế giới và tại Việt Nam, việc chống gian lận GO như thế nào?

    Đa số các NPH trên thế giới đều rất đau đầu với tình trạng gian lận tràn lan trong GO và hiệu quả thấp của các phương pháp ngăn chặn mà họ đang sử dụng. Thường việc quay lại chỉnh sửa mã game rất tốn kém nên các NPH thường chọn giải pháp phổ thông là mua các hệ thống chống gian lận (anti-cheating system) – vận hành bằng cách "bao bọc" (wrapper) GO bằng lớp bảo vệ ngoài. Giống như chúng ta xây nhà không cửa rồi đặt một hàng rào quanh nhà. Điểm yếu chính ở các giải pháp này là chúng chỉ đơn giản là một lớp bảo vệ ngoài. Một khi tìm được phương pháp vượt rào, mọi người tha hồ vào nhà vơ vét đồ đạc; hàng rào không bao giờ có tác dụng phòng chống mà chỉ có tác dụng cản trở.

    Một số NPH khác gần đây chuyển qua sử dụng các dịch vụ chuyên nghiệp từ các công ty an ninh phần mềm. Kết quả khá tốt vì các công ty này nghiên cứu tận gốc rễ của lỗi và đưa ra giải pháp khắc phục triệt để. Họ hợp tác chặt chẽ với NPT, làm việc như một phần trong nhóm phát triển trò chơi. Đây có thể trở thành xu hướng chống gian lận GO mới. Trăng Xanh và Galactic Mantis cũng vậy. Chúng tôi cung cấp giải pháp bảo vệ từ bên trong ra bên ngoài. Nếu NPH bỏ phần bảo mật này đi thì game sẽ không chạy; còn nếu bật lên thì giải pháp này sẽ phát hiện được các lỗi đang xảy ra.

    Riêng tại Việt Nam, như trên đã trao đổi, các NPH cũng đã sử dụng các biện pháp "bao bọc" và đạt được một số ít kết quả tốt. Một hoặc hai NPH khác gặt hái nhiều thành công hơn khi họ tích cực nghiên cứu lỗi và hỗ trợ tận tình cho NPT. Do đó chắc chắn là các NPH ở Việt Nam cũng có thể sử dụng những cách mà các NPH khác trên thế giới đang làm.

    Không ít bạn trẻ hay tìm cách gắn các đoạn mã vào tập tin thực thi (exe) của game để chủ yếu thực hiện chơi tự động (auto). Đó có là hành động hack và có gây nguy hiểm cho game hay không?

    Một số công cụ tấn công game của hacker mũ đen và các hệ thống chống gian lận phổ biến
    Kiểu gian lận Giải thích
    Hack tốc độ (Speed Hack) Tăng tốc độ đánh và di chuyển của nhân vật; tăng tốc độ xử lý của CPU để game chạy nhanh hơn
    Sửa dữ liệu bộ nhớ (Memory Editing) Tìm kiếm thông số có trong dữ liệu đang chứa trên bộ nhớ và thay đổi chúng dẫn đến việc thay đổi các chỉ số của nhân vật trong game.
    Dịch ngược và thay đổi cách hoạt động của chương game client (Binary Reverse and Modification) Dịch ngược game client và thay đổi cách hoạt động (flow) của game để game hoạt động bất bình thường
    Thay đổi gói tin (Packet interception and manipulation) Can thiệp vào mạng và “bắt” các gói tin gửi qua mạng và thay đổi hoặc lập lại các gói tin đấy.

    Nhiều NPH không cấm triệt để hành động này vì họ vẫn cho phép game thủ auto để giữ chân khách hàng. Về mặt bảo mật, các bản auto không nguy hiểm vì chúng không đụng vào các lỗi lô-gích hay chỉnh sửa dữ liệu, mà chỉ để chơi game tự động. Nếu con bot (nhân vật được điều khiển tự động trong game) biết cách đập cây kiếm lên cấp độ không thể có được theo qui luật thông thường thì đó thực sự là vấn đề nhưng nếu con bot đó chỉ cầm kiếm chém quái vật liên tục không ngừng nghỉ thì đó là chuyện bình thường.

    Các công ty bảo mật như Trăng Xanh có sửa lỗi thuộc về lô-gích game không?

    Những lỗi đó thường rất khó phát hiện mà khi phát hiện ra thì không có giải pháp nào khác ngoại trừ chỉnh sửa mã nguồn của game. Một lỗi lô-gích điển hình của game là “chạy xuyên tường”: do nhân vật di chuyển “cà giựt” theo các khung hình nên có khả năng khung hình trước nằm phía trước bức tường còn khung hình sau “giựt” ra phía sau bức tường. Nếu bạn chạy thật nhanh, bạn có thể chạy xuyên qua bức tường đó. Công việc chính của Trăng Xanh và Galactic Mantis cũng là sửa lô-gích game. Các game thủ chơi ăn gian bằng cách sửa lô-gích của game thì chúng tôi bảo vệ bằng cách không cho họ sửa lô-gích của game. Hacker mũ đen phải tìm những thông tin cần thiết để đến đúng nơi có thể sửa dữ liệu. Chúng tôi chống bằng cách rải thông tin đó ra nhiều nơi thay vì nằm cùng 1 chỗ. Kẻ tấn công sẽ phải mất rất nhiều thời gian để tìm nhưng khi tìm ra thì có lẽ game đã được cập nhật rồi (định kỳ hàng tuần chẳng hạn) và họ phải tìm lại lần nữa, rồi cứ thế tìm hoài…

    Đánh giá của ông về số lượng các vụ tấn công game trực tuyến từ trước đến nay? Lời khuyên cho người chơi GO?

    Xu hướng tấn công ngày càng tăng. Trước đây, game chưa được chú trọng nhiều vì được cho là không mang lại lợi lộc gì. Nhưng giờ đây, GO làm ra tiền. Nhiều người làm bot lượm vàng, lượm “rác”. Các hệ thống chống gian lận hạn chế được các những tay chơi ăn gian nhưng chỉ biết chút chút về hack. Tuy nhiên, khi nói đến bảo vệ game, chúng ta nói đến việc bảo vệ cả trăm ngàn, cả triệu người chơi. Nếu chỉ có vài người hack thì không ảnh hưởng lắm nhưng nếu nhà nhà, người người đều hack bởi vì “không hack thì không công bằng” thì game mất ý nghĩa và khi đó cần phải sửa lỗi.

    Bản thân tôi hàng ngày vẫn tải về các tập tin chạy tự động để nghiên cứu và sẵn sàng chấp nhận bị dính virus để tìm cách khắc phục. Người chơi chỉ có hai cách để tự bảo vệ. Một là thật sự cẩn thận khi tham gia vào các trò chơi trực tuyến, không nên dễ tin vào những người chơi khác. Hai là không tham gia vào các trò chơi trực tuyến mà việc gian lận phổ biến.

    Hệ thống chống gian lận (anti-cheating system)
    Giài thích khái niệm Tên các giải pháp
    Các phần mềm an ninh bảo mật, hoạt động như các lớp “hàng rào điện tử” bảo vệ bên ngoài các “ngôi nhà” game online.
    Giấu cách hoạt động và thông số của trò chơi; không cho các chương trình truy cập thông tin của trò chơi; chống các lệnh Windows messaging; chống thay đổi gói mạng v.v...
    nProtect GameGuard, Ahnlab HackShield, Xtrap, Warden, PunkBuster, IOProtect.

    Hải Phạm - Phi Quân

    ID: G0911_11