Khắc phục lỗ hổng Cross App Scripting

Thông tin này dành cho những nhà phát triển có ứng dụng gặp phải lỗ hổng Cross App Scripting.

Điều gì đang xảy ra

Bạn có ít nhất một ứng dụng đang chứa lỗ hổng Cross App Scripting qua WebView. Lỗ hổng này có thể cho phép các ứng dụng độc hại đánh cắp cookie và dữ liệu khác của người dùng. Vui lòng tham khảo thông báo cho bạn trên Play ConsoleSau thời hạn nêu trên Play Console, chúng tôi có thể xóa mọi ứng dụng chưa khắc phục lỗ hổng bảo mật khỏi Google Play.

Việc cần làm​

  1. Đă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.
  2. Cập nhật các ứng dụng bị ảnh hưởng và khắc phục lỗ hổng.
  3. Gửi phiên bản cập nhật của những ứng dụng bị ảnh hưởng.

Trong thời gian này, ứng dụng mới hoặc bản cập nhật ứng dụng của bạn sẽ ở trạng thái đang chờ phát hành cho đến khi yêu cầu của bạn được xem xét. Bạn sẽ vẫn thấy thông báo khi chưa cập nhật ứng dụng đúng cách.

Thông tin chi tiết bổ sung

Những WebViews kích hoạt JavaScript và tải dữ liệu đọc từ Intents không đáng tin cậy có thể bị ứng dụng độc hại lừa thực thi mã JavaScript trong bối cảnh không an toàn. 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 không thể xuất những hoạt động bị ảnh hưởng

Tìm mọi ActivityWebView bị ảnh hưởng. Nếu những Activity này không cần lấy Intent từ các ứng dụng khác, thì bạn có thể đặt android:exported=false cho những Activity này trong tệp kê khai của mình. Việc này nhằm đảm bảo các ứng dụng độc hại không thể gửi dữ liệu đầu vào có hại cho WebView bất kỳ trong các Activity này.

Tùy chọn 2: Bảo vệ WebView trong các hoạt động đã xuất

Nếu bạn muốn xuất một ActivityWebView bị ảnh hưởng thì bạn nên thực hiện những thay đổi sau:

  1. Bảo vệ các lệnh gọi đến evaluateJavascript và loadUrl

    Đảm bảo các tham số đến evaluateJavascript luôn đáng tin cậy. Thao tác gọi evaluateJavascript bằng những dữ liệu đầu vào chưa được dọn dẹp từ những Intent không tin cậy sẽ cho phép kẻ tấn công thực thi các tập lệnh độc hại trong WebView bị ảnh hưởng. Tương tự như vậy, thao tác gọi loadUrl bằng những dữ liệu đầu vào chưa được dọn dẹp chứa javascript: URL lược đồ sẽ cho phép kẻ tấn công thực thi các tập lệnh độc hại.

  2. Ngăn hoạt động tải tệp không an toàn

    Đảm bảo WebView bị ảnh hưởng không thể tải cơ sở dữ liệu cookie. Những WebView tải URL file:// chưa được dọn dẹp từ những Intent không đáng tin cậy có thể bị ứng dụng độc hại tấn công qua hai bước. Bước 1: trang web độc hại có thể ghi các thẻ <script> vào cơ sở dữ liệu cookie. Bước 2: tệp cơ sở dữ liệu cookie bị sửa đổi này có thể được tải khi một ứng dụng độc hại gửi một Intent cùng một URL file:// trỏ đến cơ sở dữ liệu cookie WebView của bạn, hoặc nếu trang web độc hại đó tự chuyển hướng WebView của bạn tới URL của tệp. <script> độc hại được lưu trữ trong cơ sở dữ liệu cookie sẽ tải và thực thi, từ đó có thể đánh cắp thông tin về phiên.

    Có 3 cách để đảm bảo WebView bị ảnh hưởng không thể tải cơ sở dữ liệu cookie WebView.

    1. Vô hiệu hóa quyền truy cập vào mọi tệp.
    2. Đảm bảo WebView chỉ tải các URL file:// và xác minh rằng mọi URL file:// đã tải đều trỏ đến các tệp an toàn. Hãy lưu ý rằng kẻ tấn công có thể dùng một đường liên kết tượng trưng để đánh lừa quy trình kiểm tra trên đường dẫn URL. Để ngăn những cuộc tấn công như vậy, hãy nhớ kiểm tra đường dẫn chính tắc của mọi URL file:// không tin cậy trước khi tải, thay vì chỉ kiểm tra đường dẫn URL.
    3. Nếu bạn muốn chấp nhận cả URL http:// và URL file://, hãy xác minh URL file:// bằng shouldOverrideUrlLoadingshouldInterceptRequest trong WebViewClient. Thao tác này đảm bảo tất cả URL đã tải vào WebView đều được xác minh, không chỉ những URL được cung cấp trực tiếp cho một lệnh gọi hàm loadUrl ().

Chúng tôi sẵn sàng trợ giúp
Nếu có câu hỏi kỹ thuật liên quan đến lỗ hổng này, bạn có thể đăng lên Stack Overflow và sử dụng thẻ “android-security”. Để nắm rõ những 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.

Thông tin này có hữu ích không?

Chúng tôi có thể cải thiện trang này bằng cách nào?
false
Trình đơn chính
13369988332422320857
true
Tìm kiếm trong Trung tâm trợ giúp
true
true
true
true
true
5016068
false
false