Phân tích lỗ hổng bảo mật làm thiết bị Android treo - không thể sử dụng khi load file ảnh lớn

Thảo luận trong 'Virus/Malware' bắt đầu bởi Malware, 22/06/15, 06:06 PM.

  1. Malware

    Malware Wh------

    Tham gia: 08/01/15, 11:01 AM
    Bài viết: 56
    Đã được thích: 38
    Điểm thành tích:
    48
    1.Giới thiệu lỗ hổng
    Đây là một lỗ hổng nghiêm trọng, kẻ tấn công sẽ sử dụng 1 icon có kích thước rất lớn trong ứng dụng của mình (khoảng 3000x3000px) để tấn công vào lỗ hổng này. Rất đơn giản, bất cứ khi nào icon của ứng dụng được load lên RAM, nó sẽ gây crash, treo, giật thiết bị. Ở một số thiết bị chạy Andorid 2.3 -3.0 có thể bị lỗi hệ thống và không thể khởi động lại, hoặc uninstall ứng dụng đó được. Vậy cơ chế của cuộc tấn công này như thế nào?

    Ở đây có 1 sự sai khác giữa kích thước bộ nhớ cho phép để khởi chạy ứng dụng và bộ nhớ mà ứng dụng yêu cầu. Chúng ta cùng phân tích sự chênh lệch này thông qua việc tìm hiểu cơ chế Android cấp phát bộ nhớ cho mỗi ứng dụng. Android quản lý bộ nhớ theo kiểu phân trang và sử dụng cơ chế ánh xạ bộ nhớ để quản lý chúng. Để duy trì môi trường multi-tasking Android thiết lập một giới hạn chính xác bộ nhớ Heap cấp phát cho mỗi ứng dụng. Giới hạn này thì phụ thuộc vào các thiết bị Android khác nhau vì tổng dung lượng RAM của mỗi thiết bị là khác nhau. Nếu ứng dụng nào yêu cầu lượng RAM nhiều hơn cho phép thì sẽ nhận được thông báo lỗi
    OutOfMemoryError và buộc phải dừng.

    Chúng ta có thể kiểm tra lượng Heap cho phép mỗi ứng dụng sử dụng thông qua hàm
    maxMemory() hoặc lượng Heap nên sử dụng cho mỗi app thông qua hàm getMemoryClass(). (Sẽ Demo ở phần sau). Ở những phiên bản Android từ 4.0 trở đi thì giá trị trả về từ các hàm maxMemory()getMemoryClass() là tương đương nhau. Đặc biệt, Android chỉ cho phép load ảnh, icon, background… có kích thước
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan