Thông tin này dành cho nhà phát triển có (các) ứng dụng chứa Lỗ hổng xâm nhập hệ thống Intent.
Chuyện gì sẽ xảy ra
Một hoặc nhiều ứng dụng của bạn chứa lỗ hổng xâm nhập hệ thống Intent có thể cho phép các mạng và ứng dụng độc hại truy cập các thành phần riêng tư của ứng dụng.Vui lòng tham khảo thông báo trên Play Console của bạn.Sau thời hạn hiển thị trong Play Console, chúng tôi có thể xóa mọi ứng dụng có lỗ hổng bảo mật chưa được khắc phục khỏi Google Play.
Hành động cần thiết
-
Đăng nhập vào Play Console và chuyển đến phần Cảnh báo để xem những ứng dụng bị ảnh hưởng và thời hạn giải quyết những vấn đề này.
-
Cập nhật các ứng dụng bị ảnh hưởng theo các bước nêu bên dưới.
-
Gửi phiên bản cập nhật của các ứng dụng bị ảnh hưởng.
Sau khi bạn gửi lại, chúng tôi sẽ xem xét lại ứng dụng của bạn. Quá trình này có thể mất vài giờ. Nếu ứng dụng vượt qua quy trình xem xét và được xuất bản thành công thì bạn không cần thực hiện thêm hành động nào. Nếu ứng dụng không vượt qua được quy trình xem xét thì phiên bản ứng dụng mới sẽ không được xuất bản và bạn sẽ nhận được thông báo qua email.
Thông tin chi tiết bổ sung
Những WebView truy cập nội dung web không đáng tin cậy, phân tích liên kết intent:// bằng cách sử dụng Intent.parseUri và gửi những Intent đó bằng startActivity dễ bị tấn công bởi lỗ hổng Intent-Scheme Hijacking. Nội dung web độc hại có thể lừa những WebView này thực hiện việc gửi Intent tùy ý đến các thành phần ứng dụng riêng tư. Điều này có thể dẫn đến việc xâm phạm ứng dụng, chẳng hạn như hành vi lấy cắp dữ liệu ứng dụng riêng tư mà các thành phần đó sử dụng. Xin lưu ý rằng nội dung web không đáng tin cậy bao gồm cả nội dung từ các miền đáng tin cậy được tải qua HTTP.
Bạn nên ngăn chặn lỗ hổng này theo một trong các cách sau:
Tùy chọn 1: Đảm bảo rằng WebViews không thể gửi Intent tùy ý
Các ứng dụng có thể quy định rằng chỉ được gửi các Intent xây dựng bằng Intent.parseUri dưới dạng Intent Implicit đến các thành phần với bộ lọc Intent BROWSABLE bằng cách sử dụng đoạn mã sau:
// convert Intent scheme URL to Intent object
Intent intent = Intent.parseUri(url);
// forbid launching activities without BROWSABLE category
intent.addCategory("android.intent.category.BROWSABLE");
// forbid explicit call
intent.setComponent(null);
// forbid Intent with selector Intent
intent.setSelector(null);
// start the activity by the Intent
view.getContext().startActivity(intent, -1);
Tùy chọn 2: Đảm bảo rằng WebViews bị ảnh hưởng không tải nội dung web không đáng tin cậy
Nếu một WebView cần phải phân tích cú pháp URL hệ thống intent://
tùy ý, hãy đảm bảo rằng WebView đó không tải nội dung web không đáng tin cậy. Nội dung web không đáng tin cậy bao gồm nội dung web tải qua kết nối không được mã hóa. Nhà phát triển có thể đặt android:usesCleartextTraffic
thành false trong Manifest khai của họ hoặc đặt Network Security Config để không cho phép lưu lượng HTTP. Ngoài ra, họ có thể đảm bảo rằng mọi WebView bị ảnh hưởng đều không tải bất kỳ URL nào sử dụng giao thức HTTP bằng loadUrl
.
Nhà phát triển nên đảm bảo rằng WebView bị ảnh hưởng không tải các URL không bị hạn chế thu được từ các nguồn không đáng tin cậy (ví dụ: URL thu được từ Intent không tin cậy).
Chúng tôi sẵn sàng trợ giúp
Nếu có câu hỏi kỹ thuật về lỗ hổng bảo mật, bạn có thể đăng lên Stack Overflow và sử dụng thẻ “android-security”. Để biết rõ các bước cần thực hiện nhằm giải quyết vấn đề này, bạn có thể liên hệ với nhóm hỗ trợ nhà phát triển của chúng tôi.