Danh mục OWASP: MASVS-PLATFORM: Tương tác với nền tảng
Tổng quan
Lỗ hổng bảo mật tấn công StrandHogg/lỗ hổng bảo mật Tác vụ có đối tượng tương đồng do một lỗi thiết kế trong cách Android xử lý nhiều tác vụ thực hiện/gây ra, cụ thể là tính năng gán lại cấp độ gốc cho tác vụ. Gán lại cấp độ gốc cho tác vụ trong ứng dụng là tính năng cho phép một ứng dụng di chuyển hoạt động từ tác vụ này sang tác vụ khác.
Cuộc tấn công StrandHogg khai thác tình trạng thiếu rõ ràng về cách xem xét các hoạt động ngăn xếp tác vụ của ứng dụng sắp tới và cho phép ứng dụng độc hại:
- di chuyển hoạt động độc hại sang hoặc từ ngăn xếp của ứng dụng bị hại
- đặt hoạt động độc hại làm ngăn xếp trả về sau khi hoàn thành một hoạt động từ ứng dụng bị hại.
Lỗ hổng bảo mật này được khai thác bằng cách chỉnh sửa các chế độ cài đặt allowTaskReparenting
và taskAffinity
.
Mức độ tác động
Ứng dụng độc hại có thể đặt taskAffinity của một trong các hoạt động của ứng dụng này khớp với packageName của ứng dụng mục tiêu. Sau đó, ứng dụng độc hại có thể được kết hợp với ý định xâm nhập để người dùng khởi chạy ứng dụng mục tiêu vào lần tiếp theo. Ứng dụng độc hại này cũng sẽ được khởi chạy và hiển thị ở đầu ứng dụng mục tiêu.
Tiếp đến, lỗ hổng bảo mật Tác vụ có đối tượng tương đồng có thể được dùng để xâm nhập các hành động hợp lệ của người dùng.
Người dùng có thể bị lừa cung cấp thông tin đăng nhập cho một ứng dụng độc hại. Theo mặc định, khi một hoạt động bắt đầu và được liên kết với một tác vụ, mối liên kết đó sẽ vẫn tồn tại trong toàn bộ vòng đời của hoạt động này. Tuy nhiên, việc đặt allowTaskReparenting thành true sẽ phá vỡ quy tắc hạn chế này, cho phép một hoạt động hiện có được gán lại cấp độ gốc cho tác vụ "gốc" mới tạo.
Ví dụ: Ứng dụng A có thể được Ứng dụng B nhắm mục tiêu, chuyển hướng các hoạt động trong Ứng dụng A tới ngăn xếp hoạt động của Ứng dụng B khi trả về hoạt động đã hoàn tất của Ứng dụng A. Người dùng sẽ không thấy được quá trình chuyển đổi từ ứng dụng này sang ứng dụng kia, do đó quá trình này có thể tạo ra một mối đe doạ lừa đảo đáng kể.
Giải pháp giảm thiểu
Hãy cập nhật lên android:targetSdkVersion=>28
.
Lỗ hổng bảo mật tấn công StrandHogg/lỗ hổng bảo mật Tác vụ có đối tượng tương đồng đã được khắc phục vào tháng 3 năm 2019 và SDK Android phiên bản 28 trở lên (Android 9) chứa các bản vá hệ điều hành thích hợp để tránh lỗ hổng bảo mật này. Mặc dù có thể giảm thiểu một phần phiên bản 1 của cuộc tấn công StrandHogg thông qua cấu hình ứng dụng riêng lẻ, nhưng chúng tôi chỉ có thể ngăn chặn phiên bản 2 của cuộc tấn công đó bằng bản vá phiên bản SDK này.
Tài nguyên
- Bài viết học thuật gốc mô tả về lỗ hổng bảo mật ở Usenix 15
- Mở rộng lỗ hổng bảo mật gốc của Nhóm bảo mật Promon