• Vào tháng trước tôi đã giải thích lý do tại sao các nhà phát triển game mobile phương Tây cần phải quan tâm về vấn đề vi phạm bản quyền và sao chép ứng dụng .Và tôi cũng đã hứa rằng sẽ đưa ra một số lời khuyên để giúp bạn chống lại vấn đề đó.Bài viết này sẽ xem xét 6 chiến lược đáng được quan tâm nhất, dựa trên cơ sở thực tiễn mà tôi đã học được trong quá trình phát triển game hơn hai thập kỷ của mình nhằm thích ứng được với môi trường mobile. Các nhà phát triển game có thể đối phó được với những vấn đề nhức nhối như đánh cắp thông tin và vi phạm bản quyền với những nền tảng mà họ lựa chọn ( ví dụ như vụ việc can thiệp vào hệ thống của máy PS4 gần đây, máy chủ MMORPG bất hợp pháp hay đánh cắp thông tin máy chủ, vv), tuy nhiên do sự phát triển nhanh chóng vượt bậc của ngành công nghiệp game với những nguồn thu lợi nhuận khổng lồ, có rất nhiều kẻ xấu đang ngày càng dồn nhiều nguồn lực để khai thác nguồn lợi béo bở này.Trước khi tôi bắt đầu bàn về các chi tiết cụ thể, tôi cần nhấn mạnh 2 điều:Những chiến lược bảo mật là đáng tin cậy chỉ khi chúng được triển khai trước khi game của bạn được tung ra thị trường. Điều này là rất quan trọng để luôn luôn được ghi nhớ, vì vậy tôi sẽ giải thích điều này chi tiết hơn ở phần sau.Không có giải pháp nào là an toàn tuyệt đối, đặc biệt nền tảng ngày nay luôn được cải tiến không ngừng và luôn có rất nhiều kẻ muốn đánh cắp thông tin game của bạn vì những mục đích khác nhau.Rồi các bạn sẽ thấy, các giải pháp này sẽ tạo ra nhữngrào cản khá vững chắc, chẳng hạn như ngăn cản và làm chậm quá trình tấn công của hacker. Phần lớn các vụ đánh cắp thông tin và vi phạm bản quyền game mobile thường xuất phát từ mục đích kiếm được lợi nhuận, do đó cần tốn nhiều thời gian để xâm nhập vào hệ thống bảo mật của ứng dụng.I. Ngăn ngừa sự xâm nhập vào bộ nhớ Ví dụ về công cụ xâm nhập vào bộ nhớ của tựa game Angry Birds, nó cho phép xác định và thay đổi giá trị tốc độ của game​Những tựa game mobile Free-to-play chủ yếu kiếm lợi nhuận bằng cách bán các item thông qua các thanh toán bên trong ứng dụng, những thứ sẽ giúp người chơi vượt qua các chướng ngại vật nhanh hơn, hiệu suất tốt hơn, v.v... Xâm nhập vào bộ nhớ có thể cô lập nơi mà các giá trị item đó được lưu trữ và thay đổi chúng, hoặc cho phép các hacker truy cập vào hệ thống và tùy chỉnh lượng gold/cash không giới hạn bằng cách sử dụng cùng một phương pháp. Dưới đây là cách thức thực hiện:Trong hầu hết các game, khi một người chơi thực hiện một hành động thì bộ ghi của hành động và các kết quả mà hành động đó tạo ra sẽ được ghi lại trong local memory (bộ nhớ cục bộ - trên thiết bị mobile trong trường hợp này) sau đó tự động xử lý trước khi được gửi đến máy chủ. Chúng được truyền tải dưới dạng batch (các câu lệnh xử lý tự động) vì việc tải lên mỗi và mọi hành động cùng một lúc sẽ dẫn đến tình trạng lag và làm gián đoạn trải nghiệm chơi game. Tuy nhiên, điều này lại cho phép các công cụ xâm nhập vào bộ nhớ nhắm mục tiêu vào các điểm truyền tải batch và đính kèm một công cụ sửa đổi bộ nhớ ngoài vào bên trong bộ nhớ của ứng dụng, do đó, các hacker có thể sửa đổi những hành động trong game - bao gồm quyền truy cập vào các item thanh toán trong ứng dụng. (Một số các công cụ xâm nhập vào bộ nhớ có thể hoạt động được bất kể game đã được decompile (dịch ngược) hay chưa được decompile, vì vậy điều quan trọng là phải tạo ra hoặc sử dụng một giải pháp của bên thứ ba toàn diện để bảo vệ game tránh khỏi sự nguy hại trên)Phát hiện và ngăn chặn bất kỳ sự sửa đổi bộ nhớ ngoài có thể giúp ngăn ngừa loại đánh cắp thông tin này xảy ra. Điều này có thể tự phát triển, nếu nhà phát triển tự tin vào khả năng của họ trong việc tạo ra những biện pháp ngăn ngừa/bảo vệ sự xâm nhập vào bộ nhớ, nếu không, các giải pháp thương mại luôn có sẵn trên thị trường để có thể được tích hợp vào game. Lời khuyên mang tính cá nhân của tôi là hãy thực hiện những nghiên cứu của bạn và chọn ra một giải pháp thương mại; chương trình xâm nhập vào bộ nhớ luôn luôn được phát triển và nâng cấp và các dịch vụ thương mại có thể đầu tư nhiều nguồn lực để xử lý những vấn đề này tốt hơn là một nhà phát triển game tầm trung.Dự kiến thời gian thực hiện: Phụ thuộc vào việc các giải pháp được cung cấp thông qua binary injection (dữ liệu đầu nhị phân) (có thể mất vài phút), một SDK integration (điều này có thể mất từ vài ngày đến vài tuần), v.v...II. Ngăn ngừa dịch ngược mã nguồn Ví dụ về dịch ngược trước và sau Mã nguồn được viết theo văn bản tiếng Anh thì dễ đọc, nhưng khi văn bản đó được thay thế bằng các ký hiệu và số, lại là một vấn đề hoàn toàn khác. Obfuscated code (nôm na là kỹ thuật làm rối code) sẽ làm chậm khả năng để hacker có thể hiểu rõ được mã nguồn, hãy chỉ để một mình bạn làm chủ những thứ bên trong game của bạn.Thời gian dự kiến thực hiện: Một vài phút đến hơn một giờ, tùy thuộc vào mức độ phức tạp của code của bạn. Ví dụ, tại Second Wave Games, chúng tôi chọn sử dụng các công cụobfuscator/packer được cung cấp bởi Google cho các tựa game Android của chúng tôi. Chúng tôi mất khoảng một giờ để đọc qua các tài liệu và bài ​​viết liên quan đến Stack Overflow, sau đó dành thêm một giờ để thực hiện.III. Mã hóa theo hệ nhị phân Ở bên trái, là tựa game Tap Titans gốc, được phát triển bởi Game Hive và được phát hành tại Trung Quốc bởi Oniix - còn bên phải, là tựa game nhái Tap Tap-Heroes xuất hiện trên thị trường một tháng sau khi Titans ra mắt , với những cơ chế cấp độ, chiến đấu, cân bằng game, và tỉ lệ monetization giống y chang bản gốc Nếu mã hóa mã nguồn tương đương với việc khóa chặt cánh cửa phòng ngủ của bạn, thì mã hóa cấp độ theo nhị phân tương đương với khóa chặt cánh cổng của bạn và dựng lên một hàng rào bao bộc xung quanh ngôi nhà của bạn. Phương pháp này mã hóa ở cấp độ tập tin ứng dụng, làm cho việc giải mã trở nên khó khăn hơn. Và bởi vì nội dung của chính bản thân ứng dụng được giữ nguyên vẹn, phương pháp này không cản trở hiệu suất ứng dụng.Chiến lược này cung cấp một sự bảo đảm an toàn chống lại kỹ thuật đảo ngược, với yêu cầu dịch ngược các tập tin nhị phân. Điều không may đây là một kỹ thuật khá phổ biến của hacker.Trong bài viết đầu tiên của tôi, tôi đã thảo luận cách Lilith Games đã dịch ngược mã nhị phân để mã nguồn có thể được sao chép và có thể tạo ra một game mới. Oniix, một nhà phát hành game ở Trung Quốc có trụ sở tại Boston và Thượng Hải, lại phải đau đầu với vấn đề này: Everett Wallace của Oniix chia sẽ với tôi rằng: "Trong một tựa game mà gần đâychúng tôi mới phát hành, chúng tôi tình cờ thấy một tựa game mà có cơ chế Reverse-Engineering thực sự giống với tựa game đối tác của chúng tôi một tháng sau khi game chính thức được phát hành trên toàn thế giới." (Xem hình trên). Việc mã hóa các tập tin theo hệ nhị phân có thể ngăn chặn được điều này xảy ra.Thời gian dự kiến thực hiện: Tùy thuộc vào giải pháp, sựtích hợp có thể mất vài tháng (đối với giải pháp đòi hỏi tích hợp sâu rộngtừ sự phát triển ban đầu của ứng dụng), phải mất hai hoặc nhiều tuần với SDK. Các giải pháp mới luôn có sẵn để có thể giảm bớt được lượng thời gian này xuống chỉ còn vài phút. Một giải pháp mà gần đây giúp tôi kiểm tra những yêu cầu của việc upload/download một tập tin đơn giản và toàn bộ quá trình chỉ mất 10 phút để hoàn thành.IV. Mã hóa các key theo dạng động chứ không phải là tĩnh Số lần mà chúng tôi tìm thấy các key code thủ công và tĩnh trong một mã nguồn của game trong plain text (Văn bản thuần túy) là đáng kinh ngạc. Điều này không chỉ xuất hiện ở các nhà phát triển nhỏ. Chúng tôi thấy các game và ứng dụng của các nhà xuất bản lớn cũng như các tập đoàn nổi tiếng đều sử dụng một token (mã xác thực) cho tất cả các cài đặt của họ. Ảnh trên: key lỗ hổng của snapchat (nguồn) Ví dụ, đây là một trong những lỗ hổng bảo mật của snapchat theo báo cáo của Gibson Security:Do sự mã hóa đối xứng được sử dụng bởi snapchat cho mỗi snap đã được gửi, nếu người dùng nguy hiểm được quyền truy cập vào các máy chủ của snapchat, họ có thể có khả năng:Xem tất cả các snap chưa được đọc gần đây (mà không ai biết).Sửa đổi hoặc thay thế các snap chưa được đọc gần đây (mà không ai biết).Xem các snap cũ đã được gửi đi. Cho dù đó là một key mà bạn đang sử dụng để mã hóa dữ liệu được truyền đi hoặc lưu trữ trên các thiết bị, code thủ công chúng trong plain text đồng nghĩa là mã hóa có thể dễ dàng xâm nhập.Hãy suy nghĩ đơn giản hơn theo cách này: Bạn sẽ không bao giờ sử dụng một chìa khóa cho toàn bộ những chiếc xe của bạn và bạn không nên sử dụng một mật khẩu cho tất cả các trang web. Có lẽ quan trọng hơn, bạn sẽ không bao giờ làm ra những chiếc chìa khóa hoặc mật khẩu có sẵn để người khác sử dụng hoặc sao chép.Key mã hóa là một trong những nền tảng của dịch vụ Internet bảo mật, nhưng nó phải được sử dụng một cách chính xác. Bất cứ khi nào có thể, hãy sử dụng các key động và nếu bạn phải sử dụng một key tĩnh, phải đảm bảo rằng bạn đã mã hóa nó.Thời gian dự kiến thực hiện: Một vài giờ đến vài tuần, tùy thuộc vào thời lượng của chu kỳ phát triển game và có bao nhiêu công việc có liên quan đến việc xác định tất cả các key mà cần phải được giải quyết.V. Xác nhận thanh toán thời gian thực Bên trên: Dòng IAP mẫu từ trang web phát triển của AppleApp Store cung cấp một mã xác minh thanh toán bất cứ khi nào một hành động IAP được thực hiện. Từ khi có một hành động mua hàng được xác nhận bởi máy chủ game và gửi lại cho máy chủ thanh toán của app store để xác nhận, app store cho phép sử dụng mã xác minh thanh toán để được tái sử dụng nhiều lần, đôi khi trên nhiều ứng dụng khác nhau.Do các quy định ngân hàng và cách thẻ tín dụng được xử lý thông qua clearinghouses (thanh toán bù trừ), đôi khi một khoản phí thẻ tín dụng sẽ bị thất thoát ngay lập tức. Hay có những trường hợp, sẽ mất khoảng một hoặc hai ngày cho một khoản phí để hiển thị lên hoặc đi từ "cấp phát" đến "gửi." (Việc xác minh đôi khi bị đảo lộn và phải xử lý mỗi vài giờ một lần, hoặc mỗi ngày một lần). Ví dụ, quy trình thanh toán thẻ tín dụng của Uber diễn ra theo thời gian thực, tuy nhiên sẽ mất đến 24 giờ để khoản phí này hiển thị trong thông báo mua hàng của tôi. Điều này tạo ra một trường hợp một số thẻ tín dụng giả, cũng như thẻ tín dụng bị đánh cắp, có thể được sử dụng để thực hiện các hành động in app purchase.Tình trạng này khá phổ biến. Theo báo cáo từ công ty phân tích mobile Appsalar "tỉ lệ gian lận vượt quá 50 % đối với các thiết bị đã được bẻ khóa." có thông tin cho rằng một trong những đối tác của nhà phát triển Game platform mang tên SOOMLA đã kiếm được hơn $ 1,000 sau ngày đầu tiên, tuy nhiên báo cáo doanh thu của Apple tiết lộ rằng công ty này chỉthực sự kiếm được $ 1-2.Bằng cách thực hiện xác minh thanh toán thời gian thực trên server-side, bạn có thể ngăn chặn nhiều trường hợp lạm dụng mã thanh toán, giảm bớt các vụ gian lận thông tin thẻ tín dụng hợp lệ.Dự kiến thời gian thực hiện: Điều này chỉ cần mất nhiều nhất vài giờ đến vài ngày để thực hiện và không khó để thực hiện một khi bạn hiểu cơ chế hoạt động của hệ thống IAP. Khi tích hợp hệ thống IAP, hãy chắc chắn rằng máy chủ của bạn đang kiểm tra server-side ngay khi có hành động mua hàng.VI. Giám sát bảo mật ứng dụng theo thời gian thựcMột cánh cửa được khóa thì khá an toàn và một tòa nhà được bảo vệ thì an toàn hơn. Hiệu quả hơn là có một hệ thống giám sát chuyển động được lắp đặt xung quanh phạm vi bên ngoài, để cảnh báo cho chủ sở hữu biết và theo dõi các mối đe dọa tiềm tàng trước khi tòa nhà bị xâm phạm. Một lĩnh vực đang được phân tích tương tự như điều này, cho phép các nhà phát triển để theo dõi các ứng dụng của họ trong môi trường rộng lớn, giám sát những sự xâm nhập bất thường và theo dõi tần số cũng như nguồn gốc của chúng. Hiện tại chỉ có một vài dịch vụ có sẵn trên thị trường và chúng có giá trị nghiên cứu và xem xét.Bảo mật server-side nên được thực hiện với các bức tường lửa và phần mềm bảo mật server side thông tin liên lạc cần phải thông qua SSL và các phương pháp khác "an toàn hơn". Bây giờ chúng ta nên áp dụng cùng một logic cho client side của ứng dụng. Trong khi sensitive data (dữ liệu nhạy cảm) được lưu trữ trên server-side, truy cập vào dữ liệu này phải thông qua các client. Trở lại với ví dụ ngôi nhà bị khóa, một hệ thống các rào cản quan trọng là an toàn - nhưng một hệ thống quét võng mạc với nhận dạng vân tay, nhận dạng thân nhiệt và khóa cửa kỹ thuật số với một camera giám sát thậm chí còn an toàn hơn.Thời gian dự kiến thực hiện: Có một vài giải pháp có sẵn trên thị trường, với thời gian thực hiện từ một vài phút đến vài tuần.Bảo mật đầu tiên: Tại sao những giải pháp bảo mật áp dụng trong khi phát hành lại mang lại nhiều rủi roNhư tôi đã nói ở phần đầu, chiến lược bảo mật chỉ đáng tin cậy khi nó được thực hiện trước khi các ứng dụng được tung ra trên thị trường. Điều này là rất quan trọng, hãy để tôi nhắc lại: Nếu bạn cố gắng bảo vệ ứng dụng của bạn sau khi nó đã có trong kho ứng dụng, điều này là quá muộn. Sau khi một game đã được phát hành, đôi khi có thể cần đến hàng tuần thời gian phát triển để những thay đổi code có hiệu lực nhằm giúp bảo mật được an toàn hơn .Và sau đó, chúng ta thấy quá thường xuyên, hacker có thể đã thực hiện những hành động xấu xa nhất của họ. Như tôi đã đề cập trong bài viết trước đây của tôi trên Gamasutra, các phiên bản lậu của một game có thể xuất hiện trong một khu vực trước khi bản game phát triển gốc của nó ra mắt phiên bản chính thức. Ở Trung Quốc, nơi mà Google Play bị chặn và có hàng trăm các cửa hàng ứng dụng Android, các nhà phát triển đôi khi có thể tìm thấy phiên bản game của chính mình phải cạnh tranh với hàng chục phiên bản lậu. Vì thế không có lý do gì để thực hiện các hành động bảo mật ngay từ đầu, trước khi ứng dụng xuất hiện.Tôi hiểu điều này đi ngược lại với cách mà các tựa game mobile (đặc biệt là các tựa game free-to-play) thường được phát triển. Chúng là một sản phẩm sống với những bản cập nhật liên tục và cải tiến. Như vậy, hầu hết các game ban đầu phát hành với một phiên bản MVP (sản phẩm khả thi tối thiểu) và được phát triển thêm nội dung theo thời gian. Deadlines của sản phẩm trở lên ngắn hơn và các nhà phát triển phải chiến đấu với cuộc đua chống lại thời, đôi khi họ phải đối mặt với sự lựa chọn giữa việc kết hợp tất cả các tính năng lập kế hoạch hoặc tung ra trên một lịch trình thiết lập. Trong quá trình này, bảo mật thường không được chú trọng, với những lời phản biện rằng "đương nhiên bảo mật là tốt nhưng chúng tôi lại không có đủ thời gian" .Thật không may, thời đại mà bảo mật chỉ đơn giản là "tốt để có" là đã qua rồi. Ngành công nghiệp game mobile có giá trị hàng ngàn tỷ đô la, nơi một nhãn hiệu có thể thu về gần một tỷ chỉ trong một năm. Và nó vẫn đang phát triển. Với rất nhiều điều nan giải, dành một vài giờ đồng hồ hoặc thậm chí một vài ngàyđể thực hiện các biện pháp phòng ngừa bảo mật là điều cần thiết và là một phần của chi phí kinh doanh.Nguồn http://gamasutra.comDịch bởi Lamgame.vn
    1. Đọc tiếp
    Post is under moderation
    Stream item published successfully. Item will now be visible on your stream.
Unable to load tooltip content.