Bảo vệ nền tảng Unity : Hướng dẫn khắc phục sự cố dành cho nhà phát triển
Một lỗ hổng bảo mật đã được phát hiện, ảnh hưởng đến các trò chơi và ứng dụng được xây dựng trên Unity phiên bản 2017.1 trở lên dành cho các hệ điều hành Android, Windows, Linux và macOS. Hiện chưa có bằng chứng nào cho thấy lỗ hổng này bị khai thác, cũng như không gây ra bất kỳ ảnh hưởng nào đến người dùng hoặc khách hàng. Chúng tôi đã chủ động cung cấp các bản vá lỗi để khắc phục lỗ hổng này, và chúng đã có sẵn cho tất cả các nhà phát triển. Tải công cụ vá lỗi tại đây và đọc tiếp để biết thêm hướng dẫn.
Trang web này đã được dịch bằng máy để thuận tiện cho bạn. Chúng tôi không thể đảm bảo tính chính xác hoặc độ tin cậy của nội dung được dịch. Nếu bạn có thắc mắc về tính chính xác của nội dung được dịch, vui lòng tham khảo phiên bản tiếng Anh chính thức của trang web.
Tổng quan
Một lỗ hổng bảo mật đã được phát hiện ảnh hưởng đến các trò chơi và ứng dụng được xây dựng bằng Unity 2017.1 trở lên dành cho Android, Windows, macOS và Linux . Hiện chưa có bằng chứng nào cho thấy lỗ hổng này bị khai thác, cũng như không gây ra bất kỳ ảnh hưởng nào đến người dùng hoặc khách hàng. Lỗ hổng này bắt nguồn từ các đối số dòng lệnh cho phép các ứng dụng Unity tải và thực thi các tiện ích mở rộng gốc và được quản lý. Để hiểu rõ hơn về cách lỗ hổng này có thể ảnh hưởng đến các nền tảng mục tiêu của bạn, vui lòng tham khảo Ghi chú kỹ thuật dành riêng cho từng nền tảng .
Quan trọng : Nếu dự án của bạn được xây dựng bằng bất kỳ phiên bản Unity nào từ năm 2017 đến các bản vá lỗi hiện tại, nó có thể bị ảnh hưởng. Tất cả các nhà phát triển có dự án bị ảnh hưởng phải hành động.
Các lựa chọn khắc phục
Bạn cần thực hiện các bước cần thiết nếu đã phát triển và phát hành trò chơi hoặc ứng dụng bằng Unity 2017.1 trở lên cho Windows, Android hoặc macOS. Do mức độ rủi ro của lỗ hổng này trên Linux thấp hơn, các nhà phát triển sẽ được bảo vệ đầy đủ bằng cách cập nhật lên các phiên bản Unity đã được vá lỗi.
Unity đã phát hành các phiên bản vá lỗi của trình chỉnh sửa bắt đầu từ phiên bản 2019.1 trở đi. Nếu ứng dụng của bạn được xây dựng bằng Unity 2019 trở lên, Unity khuyến nghị bạn nên xây dựng lại ứng dụng của mình bằng Unity Editor đã được vá lỗi. Tuy nhiên, Unity cũng cung cấp một công cụ vá lỗi nếu bạn không thể biên dịch lại dự án từ mã nguồn, hoặc đã biên dịch bằng phiên bản 2017/2018, như đã nêu trong phần Vá lỗi các ứng dụng đã biên dịch.
1. Xây dựng lại bằng Unity Editor đã được vá lỗi (Khuyến nghị)
Các bản vá lỗi của từng phiên bản Unity Editor bị ảnh hưởng đều có sẵn để tải xuống. Bạn có thể tải xuống Unity Editor đã được vá lỗi, sau đó biên dịch lại ứng dụng của mình.
Để biên dịch lại ứng dụng của bạn với phiên bản Unity Editor đã được vá lỗi:
- Tải xuống phiên bản Unity Editor mới nhất phù hợp với phiên bản Unity mà ứng dụng của bạn được xây dựng (ví dụ: Unity 6.1, Unity 2022.2, v.v.):
- Unity Hub
- Kho lưu trữ tải xuống Unity
- Mở dự án của bạn trong Trình chỉnh sửa đã được cập nhật.
- Xây dựng lại và kiểm tra lại ứng dụng của bạn.
- Đăng lại lên các kênh phân phối của bạn.
2. Các ứng dụng được xây dựng bằng bản vá
Nếu bạn không thể biên dịch lại từ mã nguồn (hoặc muốn triển khai bản vá lỗi trong khi biên dịch lại ứng dụng), hãy sử dụng Unity Application Patcher để cập nhật các bản dựng Android , Windows hoặc macOS hiện có của bạn.
Để sử dụng Unity Application Patcher:
- Tải xuống Unity Application Patcher: Tải công cụ
- Vui lòng xem lại thỏa thuận cấp phép, hướng dẫn sử dụng và các tùy chọn nâng cao. Vui lòng tham khảo Tài liệu hướng dẫn về Patcher để biết thêm thông tin.
- Chạy công cụ vá lỗi trên bản dựng hiện có của bạn (yêu cầu kết nối internet để vá lỗi các bản dựng Windows hoặc macOS).
- Hãy kiểm tra ứng dụng của bạn sau khi cập nhật để đảm bảo chức năng hoạt động bình thường.
- Đăng lại lên các kênh phân phối của bạn.
Để hiểu cách Unity Application Patcher hoạt động trên các nền tảng khác nhau, hãy tham khảo các ghi chú kỹ thuật dành riêng cho từng nền tảng.
Ghi chú:
- Công cụ vá lỗi này không tương thích với các bản dựng được bảo vệ bởi một số giải pháp chống giả mạo hoặc chống gian lận.
- Luôn kiểm tra tính toàn vẹn và chức năng của ứng dụng sau khi cập nhật bản vá.
- Công cụ Unity Application Patcher được phát triển với Unity 6.0, do đó các yêu cầu hệ thống tương ứng Windows hoặc macOS sẽ được áp dụng để chạy công cụ này.
Ghi chú kỹ thuật dành riêng cho từng nền tảng
Các phần sau đây mô tả cách lỗ hổng bảo mật ảnh hưởng đến các ứng dụng Android, Windows và macOS, cũng như cách Unity Application Patcher hoạt động trên từng nền tảng.
Loại khối "htmlTable" không xác định, vui lòng chỉ định bộ tuần tự hóa cho nó trong thuộc tính `serializers.types`.
Một số bản phát hành thử nghiệm và bản vá lỗi trong chuỗi phát hành có thể bị ảnh hưởng. Xem danh sách đầy đủ các phiên bản bị ảnh hưởng nếu bạn đã triển khai sản phẩm trong một phiên bản chưa phải là bản phát hành cuối cùng.
Ghi chú : Google, Meta và Microsoft đã triển khai thêm các biện pháp ở cấp độ OS để tăng cường bảo mật cho nền tảng của họ. Tuy nhiên, bạn vẫn cần phải vá lỗi hoặc biên dịch lại ứng dụng Unity của mình để đảm bảo an toàn tuyệt đối.
Android
Ghi chú: Hiện chưa có bằng chứng nào cho thấy lỗ hổng này bị khai thác, cũng như không gây ra bất kỳ ảnh hưởng nào đến người dùng hoặc khách hàng.
Trên Android, bạn cần thực hiện thao tác nếu ứng dụng Unity của bạn được xây dựng bằng Unity 2019.1 trở lên , bất kể quyền hạn hoặc cài đặt đặc biệt nào.
Ngoài ra, nếu ứng dụng của bạn được xây dựng bằng Unity 2017 trở lên và sử dụng runtime Mono (chỉ 32-bit), nó có thể dễ bị tấn công. Xem danh sách đầy đủ các phiên bản bị ảnh hưởng nếu bạn đã triển khai sản phẩm trong một phiên bản chưa phải là bản phát hành cuối cùng.
- Trên Android, các ứng dụng thường được tách biệt với nhau và việc chèn mã giữa các ứng dụng thường không thể thực hiện được nếu không khai thác lỗ hổng hoặc cấu hình sai.
- Lỗ hổng này có thể cho phép các ứng dụng khác trên thiết bị khởi chạy ứng dụng Unity của bạn và chèn thư viện gốc độc hại thông qua các intent được tạo đặc biệt và đối số dòng lệnh
xrsdk-pre-init-library, hoặcoverrideMonoSearchPathđối với các ứng dụng 32-bit được xây dựng bằng mono. - Ứng dụng Android không dễ bị tấn công bởi
thư mục dữ liệuhoặcMonoProfiler.các đối số dòng lệnh.
Những thay đổi đột phá trên Android
Việc khắc phục lỗ hổng này trên Android không gây ra bất kỳ thay đổi nào đáng kể.
Công cụ vá lỗi ứng dụng Unity dành cho Android
Trên Android, Unity Application Patcher sẽ giải nén tệp APK hoặc AAB của bạn và sửa đổi cục bộ các tệp libunity.so và boot.config để chặn đường dẫn mã dễ bị tổn thương, sau đó đóng gói lại và ký lại tệp APK hoặc AAB của bạn.
Công cụ Unity Application Patcher thay đổi chuỗi xrsdk-pre-init-library thành 8rsdk-pre-init-library trong cả libunity.so và boot.config để chặn đường dẫn mã dễ bị tổn thương. Điều này ngăn cản việc sử dụng nó như một đối số dòng lệnh (hoặc một intent extra trên Android) do cách phân tích cú pháp các đối số. Nó vẫn có thể hoạt động như một thiết lập trong boot.config , vì vậy bất kỳ việc sử dụng nào trong tệp boot.config cũng đều được vá lỗi.
Công cụ Unity Application Patcher cũng vô hiệu hóa đối số overrideMonoSearchPath đối với các bản dựng 32-bit sử dụng mono bằng cách thay thế ký tự đầu tiên của chuỗi overrideMonoSearchPath trong libunity.so bằng ký tự unicode không hợp lệ 0xC0 .
Windows
Ghi chú: Hiện chưa có bằng chứng nào cho thấy lỗ hổng này bị khai thác, cũng như không gây ra bất kỳ ảnh hưởng nào đến người dùng hoặc khách hàng.
Trên các nền tảng máy tính để bàn như Windows, có nhiều cách để chèn mã vào một tiến trình đang chạy. Tuy nhiên, các phương pháp này thường bị hạn chế bởi cấp độ quyền hệ thống và các ranh giới bảo mật. Trong hầu hết các trường hợp, bạn chỉ có thể chèn mã vào các tiến trình do chính bạn khởi tạo, và việc làm đó không mang lại cho bạn bất kỳ khả năng bổ sung nào ngoài những gì tiến trình của bạn đã có.
Tuy nhiên, trong trường hợp này, ứng dụng Unity của bạn có thể dễ bị tấn công leo thang đặc quyền nếu nó được đăng ký như một trình xử lý lược đồ URL tùy chỉnh . Việc đăng ký này có thể được thực hiện bởi ứng dụng của bạn (ví dụ: để hỗ trợ liên kết sâu hoặc khởi chạy từ trình duyệt), hoặc bởi các ứng dụng khác (chẳng hạn như trình khởi chạy trò chơi của bên thứ ba hoặc cửa hàng ứng dụng).
Vì không có cách nào để ngăn chặn - hoặc thậm chí phát hiện - việc một ứng dụng bên thứ ba đã đăng ký ứng dụng của bạn làm trình xử lý lược đồ, Unity khuyến nghị bạn nên vá tất cả các ứng dụng Unity Windows như một biện pháp phòng ngừa .
- Với lược đồ URL đã đăng ký, kẻ tấn công chạy mã ở mức độ toàn vẹn thấp hơn (chẳng hạn như từ một tiến trình được cách ly hoặc có ít đặc quyền hơn) có thể khai thác lỗ hổng Unity này để khởi chạy ứng dụng của bạn và chèn một DLL, khiến ứng dụng của bạn chạy mã do kẻ tấn công cung cấp với đặc quyền cao hơn mức bình thường.
- Việc tấn công chèn mã độc có thể xảy ra thông qua bất kỳ đối số dòng lệnh dễ bị tổn thương nào được nêu ở trên.
Các thay đổi gây lỗi trên Windows
- Nếu ứng dụng của bạn sử dụng đối số dòng lệnh
-datafolderđể di chuyểnthư mục dữ liệu, giờ đây bạn cần truyền thư mục dữ liệu tùy chỉnh đó làm đối số thứ hai cho hàm UnityMain: int UnityMain(HINSTANCE hInst, LPCWSTR customDataFolder, LPWSTR szCmdLine, int nCmdShow)- Nếu ứng dụng của bạn sử dụng
xrsdk-pre-init-librarylàm đối số dòng lệnh để chuyển đổi giữa các nhà cung cấp XR , Unity khuyên bạn nên chuyển sang sử dụng OpenXR hoặc cung cấp các bản dựng riêng biệt. Chức năng overrideMonoSearchPathđã bị loại bỏ, do đó nên xây dựng các ứng dụng riêng biệt hoặc đưa tất cả các tập lệnh vào cùng một bản dựng.
Công cụ vá lỗi ứng dụng Unity dành cho Windows
Đối với các bản dựng Windows , công cụ Unity Application Patcher sẽ tải xuống tệp UnityPlayer.dll đã được vá lỗi (hoặc tệp .exe cho các ứng dụng được xây dựng bằng Unity 2017.1) phù hợp với phiên bản Unity của bạn và thay thế tệp dễ bị tổn thương trong ứng dụng đã được xây dựng của bạn.
Ghi chú : Unity Application Patcher tải các tệp nhị phân đã được vá lỗi sẵn từ máy chủ của Unity, đảm bảo chúng đã được kiểm tra và xác minh trước khi bạn nhận được.
Tệp UnityPlayer.dll đã được sửa đổi để bỏ qua các tham số dòng lệnh dễ bị tổn thương.
xrsdk-pre-init-library vẫn hoạt động như một thiết lập trong boot.config .
Quan trọng : Nếu ứng dụng của bạn sử dụng đối số dòng lệnh -datafolder để di chuyển thư mục dữ liệu (được giới thiệu trong Unity 2022.2), bạn cần áp dụng một mẫu mới được nêu trong phần Thay đổi gây ảnh hưởng đến khả năng tương thích ngược trên Windows .
macOS
Ghi chú: Hiện chưa có bằng chứng nào cho thấy lỗ hổng này bị khai thác, cũng như không gây ra bất kỳ ảnh hưởng nào đến người dùng hoặc khách hàng.
Trên macOS, nhiều quyền được quản lý riêng cho từng ứng dụng, chẳng hạn như quyền truy cập vào camera hoặc thư mục tài liệu của người dùng. macOS triển khai nhiều cơ chế để ngăn chặn việc lạm dụng các quyền này, bao gồm cả tính năng Hardened Runtime . Theo mặc định, các ứng dụng được xây dựng bằng Hardened Runtime sẽ bị chặn không cho tải bất kỳ mã nào chưa được ký hoặc được ký bằng mã khác.
Việc sử dụng Hardened Runtime là bắt buộc để chứng thực, điều này được khuyến nghị khi phân phối ứng dụng bên ngoài Mac App Store. Việc này không hoàn toàn bắt buộc đối với việc phân phối ứng dụng trên Mac App Store, nơi các ứng dụng ít nhất phải sử dụng App Sandbox. Mặc dù App Sandbox hạn chế những gì một ứng dụng có thể truy cập trên hệ thống, nhưng nó không ngăn chặn việc chèn mã vào chính tiến trình của ứng dụng. Nếu không có Hardened Runtime, các kỹ thuật như DYLD_INSERT_LIBRARIES đã có thể thực hiện được, điều này có nghĩa là lỗ hổng này không làm tăng khả năng khai thác trong môi trường đó. Unity vẫn khuyến nghị vá lỗi hoặc biên dịch lại tất cả các ứng dụng macOS bị ảnh hưởng để loại bỏ các đường dẫn mã dễ bị tổn thương, đảm bảo chúng vẫn an toàn nếu Hardened Runtime được bật sau này hoặc nếu việc phân phối được thực hiện bên ngoài Mac App Store.
Nếu nhưNếu ứng dụng của bạn được xây dựng bằng Unity 2017.1 trở lên (với backend kịch bản Mono ) hoặc Unity 2019.1 trở lên (với bất kỳ backend kịch bản nào) , được xây dựng với Hardened Runtime và có một số ngoại lệ runtime được bật làm suy yếu khả năng bảo vệ chống lại việc chèn mã, bạn cần phải thực hiện các biện pháp khắc phục. Các trường hợp ngoại lệ có thể khiến ứng dụng của bạn dễ bị tấn công là:
- Vô hiệu hóa xác thực thư viện (
com.apple.security.cs.disable-library-validation) — cho phép tải các plugin hoặc framework chưa được ký hoặc được ký bằng cách khác. Điều này có thể cho phép tải các tệp.dylibgốc độc hại khi sử dụng các đối sốxrsdk-pre-init-libraryhoặcdatafolder. - Cho phép thực thi mã được biên dịch JIT (
com.apple.security.cs.allow-jit) — có thể cho phép thực thi mã được quản lý độc hại nếu các đối sốdatafolderhoặcoverrideMonoSearchPathbị khai thác. Xin lưu ý rằng việc cấp ngoại lệ này là điều kiện bắt buộc đối với mọi hoạt động sử dụng hệ thống xử lý kịch bản Mono . - Cho phép bộ nhớ thực thi không có chữ ký (
com.apple.security.cs.allow-unsigned-executable-memory) — cũng cho phép thực thi mã được quản lý độc hại nếu đối sốdatafolderbị khai thác. - Ứng dụng được xây dựng bằng Unity 2023.2 trở lên: Ngay cả khi không có bất kỳ ngoại lệ nào trong số này,
thư mục dữ liệuvẫn có thể bị khai thác.
Môi trường chạy được tăng cường (Hardened Runtime) thường chặn các phương pháp chèn mã phổ biến, bảo vệ ứng dụng khỏi các cuộc tấn công như vậy. Trong các ứng dụng Unity bị ảnh hưởng có bật bất kỳ ngoại lệ nào nêu trên, kẻ tấn công có thể chèn mã thông qua các đối số dòng lệnh xrsdk-pre-init-library,datafolder hoặc overrideMonoSearchPath .
Điều này có thể cho phép kẻ tấn công chèn một tệp .dylib hoặc assembly được quản lý độc hại vào tiến trình của bạn. Nó không thể cấp quyền truy cập cho những quyền mà chính ứng dụng đó không có.
Những thay đổi gây ảnh hưởng đến khả năng tương thích ngược trên macOS
- Nếu ứng dụng của bạn sử dụng đối số dòng lệnh
-datafolderđể di chuyểnthư mục dữ liệu, chúng tôi khuyên bạn nên sử dụng liên kết tượng trưng thay thế. Chức năng overrideMonoSearchPathđã bị loại bỏ, do đó nên xây dựng các ứng dụng riêng biệt hoặc đưa tất cả các tập lệnh vào cùng một bản dựng.
Công cụ vá lỗi ứng dụng Unity dành cho macOS
Đối với các dự án macOS, công cụ Unity Application Patcher sẽ tải xuống tệp UnityPlayer.dylib đã được vá lỗi phù hợp với phiên bản Unity của bạn và thay thế tệp dễ bị tổn thương trong ứng dụng đã được biên dịch bằng tệp này. Biến boot.config xrsdk-pre-init-library đã được thay đổi thành 8rsdk-pre-init-library . Điều này ngăn cản việc sử dụng nó như một đối số dòng lệnh do cách thức phân tích cú pháp các đối số. Nó vẫn có thể hoạt động như một thiết lập trong boot.config , vì vậy chúng tôi cũng vá bất kỳ cách sử dụng nào trong boot.config .
Tính năng mới trong Unity Application Patcher 1.3:
- Công cụ vá lỗi này sẽ vá tệp
UnityPlayer.dylibcho tất cả các ứng dụng macOS, bất kể có sử dụng Hardened Runtime hay các quyền hạn được thiết lập hay không. - Các ứng dụng sử dụng Hardened Runtime mà không có quyền
com.apple.security.cs.disable-library-validationsẽ không được trình vá lỗi ký sau khi vá. - Khi trình vá lỗi không ký ứng dụng, nó sẽ hiển thị cảnh báo rằng bạn phải ký ứng dụng theo cách thủ công, nếu không ứng dụng sẽ không chạy.
- Thay đổi này đảm bảo rằng các ứng dụng đã được vá lỗi sẽ không chạy trong trạng thái bảo mật yếu hơn nếu nhà phát triển không ký lại chúng một cách rõ ràng.
Khi ứng dụng được trình vá lỗi ký, nó sẽ sử dụng chữ ký tùy chỉnh để thử nghiệm cục bộ. Nếu ứng dụng của bạn trước đây đã được ký bằng chứng chỉ ID nhà phát triển và được Apple chứng thực, việc vá lỗi sẽ làm mất hiệu lực chứng thực đó. Hãy làm theo các khuyến nghị của Apple về phân phối phần mềm, yêu cầu ký lại và chứng thực lại trước khi phát hành.
Linux
Ghi chú: Hiện chưa có bằng chứng nào cho thấy lỗ hổng này bị khai thác, cũng như không gây ra bất kỳ ảnh hưởng nào đến người dùng hoặc khách hàng.
Trên Linux, các đối số dòng lệnh Unity dễ bị tổn thương hoạt động tương tự như cơ chế LD_PRELOAD . Theo mô hình bảo mật tiêu chuẩn Linux , các đối số này không vượt qua ranh giới đặc quyền và do đó không gây ra rủi ro bổ sung so với những gì có thể xảy ra với LD_PRELOAD .
Trong các môi trường như AppArmor, bubblewrap, Firejail hoặc SELinux, nếu một tiến trình bị hạn chế có thể khởi chạy ứng dụng Unity bên ngoài phạm vi kiểm soát của nó, thì việc thực thi mã tùy ý đã khả thi và lỗ hổng này không làm tăng thêm rủi ro nào. Trong một số cấu hình SELinux hoặc AppArmor nhất định, các phương pháp tấn công chèn mã độc phổ biến ( LD_PRELOAD , ptrace ) có thể bị chặn trong khi vẫn cho phép khởi chạy Unity với các tham số tùy ý. Trong trường hợp này, các lập luận dễ bị tổn thương có thể vượt qua các hạn chế về chính sách và trở thành một con đường khai thác khả thi.
Giảm thiểu
Do mức độ rủi ro thấp hơn, Unity không phát hành phiên bản Linux của Unity Application Patcher. Nếu cần, đặc biệt là trong môi trường có chính sách kiểm soát truy cập nghiêm ngặt, hãy biên dịch lại ứng dụng Linux của bạn bằng Unity Editor đã được vá lỗi để loại bỏ các đường dẫn mã dễ bị tổn thương.
Các nền tảng khác (iOS, máy chơi game, v.v.)
Đối với tất cả các nền tảng khác được Unity hỗ trợ, bao gồm cả iOS, hiện chưa có phát hiện nào cho thấy lỗ hổng này có thể bị khai thác. Để đảm bảo an toàn tối đa, Unity khuyến nghị bạn nên biên dịch lại ứng dụng của mình bằng Unity Editor phiên bản vá lỗi mới nhất.
Tài nguyên
- Tải xuống các bản vá lỗi Unity Editor
- Tải xuống Unity Application Patcher
- Thông báo bảo mật Unity
- Chi tiết về lỗ hổng bảo mật CVE
- Dịch vụ hỗ trợ Unity
Bạn cần hành động để bảo mật ứng dụng và bảo vệ người dùng của mình. Nếu có bất kỳ câu hỏi hoặc cần hỗ trợ, vui lòng liên hệ với bộ phận Hỗ trợ Unity .
FAQ
Hiện chưa có bằng chứng nào cho thấy lỗ hổng này bị khai thác, cũng như chưa có bất kỳ ảnh hưởng nào đến người dùng hoặc khách hàng. Mức độ bảo mật của lỗ hổng CVE là “Cao”, và chúng tôi đặc biệt khuyến nghị bạn cập nhật trò chơi và ứng dụng của mình càng sớm càng tốt.
CVE (Common Vulnerabilities and Exposure) là một quy trình tiêu chuẩn trong ngành để công bố các lỗ hổng bảo mật dựa trên các yếu tố như mức độ dễ tấn công hoặc thiệt hại tiềm tàng. Mức độ nghiêm trọng được xếp hạng từ Thấp, Trung bình, Cao đến Nghiêm trọng. Để đạt được xếp hạng “Cao”, bạn nên cập nhật trò chơi hoặc ứng dụng của mình kịp thời.
Để biết thông tin chi tiết về mặt kỹ thuật, vui lòng tham khảo công cụ vá lỗi , hướng dẫn khắc phục sự cố và Thông báo bảo mật của chúng tôi.
Chúng tôi đã trao đổi với Valve và họ sẽ bổ sung thêm các biện pháp bảo vệ cho ứng dụng Steam. Đối với Windows, Microsoft Defender đã được cập nhật và sẽ phát hiện cũng như ngăn chặn lỗ hổng này.
Hiện chưa có bằng chứng nào cho thấy lỗ hổng này có thể bị khai thác trên các nền tảng đó. Để có khả năng bảo vệ tốt nhất, chúng tôi luôn khuyên bạn nên sử dụng phiên bản Unity mới nhất (phiên bản đã được vá lỗi).
Các phiên bản Unity được cập nhật có thể được sử dụng ngay cả trên các nền tảng không dễ bị tấn công. Tuy nhiên, nếu bạn không thể nâng cấp phiên bản Unity trên các nền tảng không bị ảnh hưởng, chúng tôi khuyên bạn nên tích hợp công cụ vá lỗi vào quy trình xây dựng của mình như một bước sau khi xây dựng đối với các nền tảng dễ bị tổn thương.
Ngoài Microsoft Defender, chúng tôi đang hợp tác với Crowdstrike, Fortinet, Sophos, BitDefender và các nhà cung cấp EDR (Phát hiện và Phản hồi Điểm cuối) khác để tăng cường khả năng bảo vệ.
Lỗ hổng này ban đầu được phát hiện bởi một nhà nghiên cứu bảo mật bên thứ ba.
Theo hiểu biết của chúng tôi, hiện chưa có bằng chứng nào cho thấy lỗ hổng này bị khai thác và cũng chưa gây ra bất kỳ ảnh hưởng nào đến người dùng hoặc khách hàng. Để biết thông tin chi tiết về mặt kỹ thuật, vui lòng tham khảo công cụ vá lỗi , hướng dẫn khắc phục sự cố và Thông báo bảo mật của chúng tôi.
Chúng tôi đã chủ động cung cấp các bản vá lỗi để khắc phục lỗ hổng này và chúng đã có sẵn cho tất cả các nhà phát triển. Ngoài ra, các đối tác nền tảng của chúng tôi cũng đã thực hiện thêm các bước để bảo mật nền tảng của họ.
- Nếu nhà phát triển chọn không thực hiện bất kỳ hành động nào, ứng dụng hoặc trò chơi của họ được xây dựng trên phiên bản 2017.1 trở lên có thể vẫn dễ bị tổn thương và có thể gây rủi ro cho người dùng hoặc chức năng của thiết bị, đặc biệt nếu lỗ hổng này bị khai thác sau đó.
- Google, Meta và Microsoft đã thực hiện thêm các bước để bảo mật nền tảng của họ, nhưng chúng tôi vẫn đặc biệt khuyến nghị các nhà phát triển nên vá lỗi hoặc biên dịch lại trò chơi và ứng dụng của mình như một biện pháp phòng ngừa.
- Chúng tôi cũng khuyến nghị người tiêu dùng cập nhật thiết bị và ứng dụng của mình lên phiên bản phần mềm mới nhất, bật tính năng tự động cập nhật, tránh tải xuống các nội dung đáng ngờ và tuân thủ các biện pháp bảo mật tốt nhất.
Chúng tôi có chính sách Công khai Thông tin có Trách nhiệm như một phần của sự hợp tác liên tục với các nhà nghiên cứu bảo mật nội bộ và bên ngoài, đồng thời cũng có chương trình Thưởng tìm lỗi bảo mật. Để biết thêm thông tin về chương trình Tìm lỗi bảo mật của chúng tôi, vui lòng liên hệ security@unity3d.com hoặc truy cập chương trình Tìm lỗi bảo mật trên Bugcrowd.
- Chúng tôi liên tục phát triển chương trình Vòng đời Phát triển Phần mềm An toàn (SSDLC) toàn diện của mình khi xác định được các rủi ro hoặc lỗ hổng, và tận dụng các cơ hội để cải thiện hơn nữa tính bảo mật của sản phẩm, bao gồm cả việc cập nhật các công cụ và quy trình của chúng tôi để đáp ứng những phát hiện mới.
- Để giúp nâng cao hơn nữa khả năng xác định và giải quyết các lỗ hổng tương tự, chúng tôi cũng đang tăng cường chiến lược công cụ của mình với các công cụ quét mới, triển khai các hướng dẫn được cập nhật và bổ sung thêm các bước vào quy trình kiểm thử, bao gồm cả quy trình kiểm thử xâm nhập toàn diện.
Bạn nên liên hệ với cửa hàng ứng dụng đó để hiểu rõ chính sách của họ về việc gỡ bỏ các ứng dụng có lỗ hổng bảo mật đã biết.
- Hiện chưa có bằng chứng nào cho thấy lỗ hổng này bị khai thác, cũng như không gây ra bất kỳ ảnh hưởng nào đến người dùng cuối.
- Chúng tôi đã chủ động cung cấp các bản vá lỗi để khắc phục lỗ hổng này và chúng đã có sẵn cho tất cả các nhà phát triển. Ngoài ra, các đối tác nền tảng của chúng tôi đã thực hiện thêm các bước để bảo mật nền tảng của họ và bảo vệ người dùng cuối.
- Bạn có thể khuyến khích khách hàng cập nhật thiết bị và ứng dụng của họ lên phiên bản phần mềm mới nhất, bật tính năng tự động cập nhật, tránh tải xuống các nội dung đáng ngờ và tuân thủ các biện pháp bảo mật tốt nhất.
- Trên Android, công cụ vá lỗi sẽ sửa đổi tệp libunity.so theo cách ngăn chặn việc khai thác lỗ hổng này.
- Trên Windows, công cụ vá lỗi sẽ tải xuống tệp UnityPlayer.dll đã được vá lỗi cho phiên bản Unity runtime của trò chơi và thay thế tệp gốc.
- Trên macOS, công cụ vá lỗi sẽ tải xuống tệp UnityPlayer.dylib đã được vá lỗi cho phiên bản Unity runtime của trò chơi và thay thế tệp gốc.
- Xin lưu ý rằng nếu ứng dụng sử dụng các kỹ thuật chống giả mạo, bản vá sẽ không hoạt động. Cách duy nhất để áp dụng bản sửa lỗi một cách an toàn và thành công là biên dịch lại ứng dụng từ mã nguồn.
Việc sửa lỗi này khó có thể gây ra lỗi cho hầu hết các trò chơi. Để biết thêm chi tiết, vui lòng tham khảo Hướng dẫn Khắc phục sự cố .
Chúng tôi đã hợp tác với Google để cho phép một ngoại lệ tạm thời đối với các quy tắc nộp hồ sơ, cụ thể là đối với Android SDK , dành cho các ứng dụng đã được phát hành và vá lỗi bằng công cụ vá lỗi do chúng tôi cung cấp. Ngoại lệ này không áp dụng cho các SDK khác của Google có thể có yêu cầu phiên bản riêng và có thể cần phải cập nhật các SDK đó trước khi gửi lại. Hãy liên hệ với Google nếu bạn cần thêm thông tin hoặc các trường hợp ngoại lệ cho ứng dụng cụ thể của mình.
Số lượng ứng dụng được xây dựng bằng runtime Mono trên Unity 2017 hoặc 2018 vẫn còn được sử dụng khá ít và không đủ để biện minh cho sự chậm trễ cần thiết để chuyển các bản vá lỗi sang các phiên bản đó. Đối với các ứng dụng được xây dựng bằng Unity 2017 hoặc 2018, công cụ vá lỗi sẽ đủ để bảo vệ chúng.
Nếu bạn gặp phải tình huống khiến công cụ vá lỗi không thể giải quyết vấn đề một cách hiệu quả, vui lòng mở yêu cầu hỗ trợ tại support.unity.com .
Mức độ rủi ro của lỗ hổng này trên Linux thấp hơn nhiều so với Android, Windows và macOS. Để có khả năng bảo vệ tốt nhất, chúng tôi luôn khuyên bạn nên sử dụng phiên bản Unity mới nhất (phiên bản đã được vá lỗi).
Pico không phải là nền tảng được Unity hỗ trợ, vì vậy chúng tôi không thể chắc chắn liệu nền tảng này có dễ bị tấn công hay không. Ứng dụng này dựa trên Android, vì vậy bạn nên cập nhật các ứng dụng của mình để đảm bảo an toàn. Chúng tôi chưa xây dựng công cụ vá lỗi của mình để tương thích với nền tảng của Pico và chúng tôi nhận được một số báo cáo từ các nhà phát triển cho rằng công cụ vá lỗi của chúng tôi xung đột với tính năng tăng cường bảo mật ứng dụng của Pico. Chúng tôi khuyến nghị các nhà phát triển muốn đảm bảo lỗ hổng này được khắc phục trong ứng dụng của họ nên biên dịch lại trò chơi bằng các bản phát hành Editor đã được vá lỗi của chúng tôi.
Không cần phải gỡ bỏ trò chơi hoặc ứng dụng khỏi bất kỳ nền tảng nào. Hiện chưa có bằng chứng nào cho thấy lỗ hổng này bị khai thác, cũng như chưa có bất kỳ ảnh hưởng nào đến người dùng hoặc khách hàng. Unity đã chủ động cung cấp các bản vá lỗi cho các nhà phát triển để khắc phục lỗ hổng này, và nhiều đối tác nền tảng của chúng tôi cũng đã triển khai thêm các biện pháp bảo vệ khác.