Nếu là người dùng Android, bạn nên biết về cuộc tấn công Man-in-the-Disk và những nguy hiểm mà nó mang lại. Lỗ hổng này cho phép những kẻ xâm nhập kiểm soát các ứng dụng hợp pháp trên thiết bị Android của bạn và sử dụng chúng để giới thiệu những ứng dụng độc hại.
Vậy, chính xác thì Man-in-the-Disk là gì? Nó hoạt động ra sao? Và làm cách nào để bạn có thể bảo vệ thiết bị của mình khỏi nó?
Tấn công Man-in-the-Disk là gì?
Man-in-the-Disk là một kiểu tấn công mạng trên các thiết bị sử dụng hệ điều hành Android, trong đó phần mềm độc hại được cài đặt trên điện thoại thông minh hoặc máy tính bảng nhắm mục tiêu vào một ứng dụng thông qua các file nằm trong bộ nhớ ngoài.
Sau đó, mã độc sẽ thực thi khi người dùng cố gắng truy cập các file đó, cho phép kẻ tấn công chiếm quyền kiểm soát thiết bị rộng hơn. Cuộc tấn công này có thể xảy ra vì Android cho phép các ứng dụng đọc và ghi dữ liệu vào bộ nhớ ngoài theo mặc định.
Bộ nhớ ngoài được sử dụng cho các mục đích khác nhau, chẳng hạn như lưu trữ nhạc, video và hình ảnh. Tuy nhiên, nó cũng cung cấp một cách để phần mềm độc hại tồn tại trên thiết bị, ngay cả sau khi khôi phục cài đặt gốc Android.
Sau khi kẻ tấn công có quyền truy cập vào bộ nhớ ngoài, chúng có thể sửa đổi hoặc xóa file, chèn mã độc hại vào các ứng dụng hợp pháp hoặc cài đặt ứng dụng mới mà người dùng không hề hay biết.
Cuộc tấn công Man-in-the-Disk có liên quan khá chặt chẽ với khái niệm về cuộc tấn công Man-in-the-Middle (MitM).
Sandbox trong Android là gì?
Để hiểu về cuộc tấn công Man-in-the-Disk, trước tiên bạn cần biết cách các ứng dụng và dữ liệu của chúng được lưu trữ trên thiết bị Android.
Một trong những tính năng bảo mật chính của hệ điều hành Android là sandbox. Ý tưởng của sandbox là tách từng ứng dụng đã cài đặt và các file của ứng dụng đó khỏi những ứng dụng đã cài đặt khác.
Vì vậy, bất cứ khi nào bạn cài đặt một ứng dụng trên thiết bị Android của mình, ứng dụng đó sẽ được lưu trữ trong một khu vực biệt lập được gọi là sandbox. Mỗi ứng dụng nằm trong một sandbox riêng biệt mà các ứng dụng đã cài đặt khác không thể truy cập được.
Lợi thế của sandbox là ngay cả khi một ứng dụng độc hại tìm thấy đường vào thiết bị Android của bạn, nó sẽ không thể thay đổi và lấy cắp dữ liệu từ các ứng dụng hợp pháp khác như ứng dụng ngân hàng, mạng xã hội, v.v...
Bằng cách này, dữ liệu thiết yếu của bạn, chẳng hạn như chi tiết tài chính, thông tin đăng nhập, v.v…, vẫn được bảo vệ bất chấp sự hiện diện của phần mềm độc hại. Tuy nhiên, những kẻ tấn công mạng đã thành công trong việc khai thác phương pháp sandbox bằng cách sử dụng cuộc tấn công Man-in-the-Disk.
Cuộc tấn công Man-in-the-Disk hoạt động như thế nào?
Như đã thảo luận ở trên, Android sử dụng sandbox để lưu trữ các ứng dụng và file của chúng. Tuy nhiên, ngoài sandbox, Android cũng có bộ nhớ dùng chung được gọi là bộ nhớ ngoài.
Khi bạn cài đặt một số ứng dụng, chúng có thể yêu cầu bạn cho phép sử dụng bộ nhớ ngoài. Quyền có dạng như sau - "Cho phép [Tên ứng dụng] truy cập ảnh, phương tiện và file trên thiết bị của bạn?".
Bằng cách cấp quyền này, bạn đang thực sự cho phép ứng dụng đọc và ghi trên bộ nhớ ngoài của mình. Nói chung, điều này được coi là an toàn và hầu hết mọi ứng dụng đều yêu cầu nó. Trên thực tế, nhiều ứng dụng yêu cầu nó lưu trữ tạm thời dữ liệu đã tải xuống của họ trên bộ nhớ ngoài trước khi chuyển nó vào sandbox.
Ví dụ, khi bạn cập nhật một ứng dụng, đầu tiên các mô-đun mới được tải xuống trên bộ nhớ ngoài và sau đó được thêm vào sandbox riêng biệt. Đây là lúc cuộc tấn công Man-in-the-Disk bắt đầu hoạt động.
Cuộc tấn công Man-in-the-Disk hoạt động bằng cách khai thác lỗ hổng trong cách Android xử lý bộ nhớ ngoài. Không giống như sandbox, bất kỳ ứng dụng nào có quyền đọc/ghi đối với bộ nhớ ngoài đều có thể sửa đổi bất kỳ file nào có trong đó. Vì vậy, ngay cả khi các file của một số ứng dụng chỉ được lưu trữ tạm thời trong bộ nhớ ngoài, ứng dụng bất hợp pháp được cài đặt bởi những kẻ xâm nhập có thể sửa đổi chúng và chèn mã độc hại.
Điều này có nghĩa là trong khi cập nhật một ứng dụng hợp pháp, bạn thậm chí có thể không biết rằng bạn đã vô tình đưa phần mềm độc hại vào thiết bị của mình. Khi bạn cố gắng khởi chạy ứng dụng, mã độc sẽ thực thi và kẻ tấn công sẽ giành được quyền kiểm soát thiết bị.
Cách bảo vệ thiết bị khỏi cuộc tấn công Man-in-the-Disk
Bây giờ, bạn đã biết cách thức hoạt động của cuộc tấn công Man-in-the-Disk, bạn cần biết cách bạn có thể bảo vệ thiết bị của mình khỏi nó. Có một số điều bạn có thể làm để bảo vệ mình khỏi cuộc tấn công Man-in-the-Disk:
- Cách tốt nhất để luôn được bảo vệ khỏi cuộc tấn công này là không cấp quyền đọc/ghi bộ nhớ ngoài cho bất kỳ ứng dụng nào không thực sự cần đến nó. Khi một ứng dụng yêu cầu quyền này, hãy suy nghĩ kỹ trước khi cấp.
- Thứ hai, bạn nên luôn cài đặt ứng dụng từ các nguồn đáng tin cậy như Google Play Store. Tránh tải xuống và cài đặt ứng dụng từ các trang web và cửa hàng ứng dụng của bên thứ ba vì chúng có thể là nơi lưu trữ các ứng dụng độc hại.
- Thu hồi quyền bạn đã cung cấp cho các ứng dụng mà bạn hiếm khi sử dụng.
- Trên thiết bị Android của bạn, hãy tắt quyền cài đặt ứng dụng từ những nguồn không xác định.
- Luôn cập nhật thiết bị Android của bạn với các bản vá bảo mật mới nhất do nhà sản xuất phát hành. Các bản vá bảo mật này giải quyết các lỗ hổng trong hệ điều hành và ngăn những kẻ tấn công khai thác chúng.
- Bạn phải sử dụng giải pháp diệt virus Android đáng tin cậy có thể bảo vệ toàn diện chống lại tất cả các loại phần mềm độc hại và những mối đe dọa mạng.
- Gỡ cài đặt các ứng dụng mà bạn không cần nữa. Ngoài ra, đừng cài đặt các ứng dụng mà bạn không thực sự cần. Càng ít ứng dụng trên thiết bị của bạn, cơ hội bị khai thác các lỗ hổng càng ít.
Là một người dùng ứng dụng Android, đây là những mẹo cần thiết bạn phải nhớ để giảm thiểu khả năng bị tấn công Man-in-the-Disk trên thiết bị của bạn.
Làm cách nào các nhà phát triển có thể bảo vệ ứng dụng khỏi cuộc tấn công Man-in-the-Disk?
Bộ nhớ ngoài là một phần thiết yếu của hệ điều hành Android và lỗ hổng bảo mật của nó cũng vậy. Vì vậy, nếu bạn là nhà phát triển Android, hãy đảm bảo bạn thiết kế ứng dụng theo cách mà chúng sử dụng bộ nhớ ngoài một cách an toàn.
Có một số điều bạn có thể làm để bảo vệ ứng dụng của mình khỏi các cuộc tấn công Man-in-the-Disk:
- Hãy làm theo cẩn thận phần "Best Practices" của Google trong hướng dẫn phát triển ứng dụng. Nó chứa một tập hợp các nguyên tắc mà các nhà phát triển phải tuân theo để thiết kế ứng dụng Android an toàn.
https://developer.android.com/guide
- Nếu bạn đang lưu trữ dữ liệu nhạy cảm trên bộ nhớ ngoài, hãy mã hóa dữ liệu đó bằng thuật toán mã hóa mạnh. Điều này sẽ gây khó khăn cho những kẻ tấn công trong việc giải mã và sử dụng dữ liệu.
- Chỉ yêu cầu quyền "WRITE_EXTERNAL_STORAGE" khi thực sự cần thiết. Nếu ứng dụng của bạn không yêu cầu điều này, đừng cho phép nó.
- Sử dụng các tính năng bảo mật tích hợp của Android, chẳng hạn như quyền và sandbox ứng dụng, để bảo mật thêm cho ứng dụng của bạn.
- Nếu ứng dụng của bạn không yêu cầu quyền đọc/ghi trên bộ nhớ ngoài, đừng khai báo ứng dụng đó trong file Manifest.
Là một nhà phát triển Android, bạn có trách nhiệm thiết kế các ứng dụng an toàn và bảo vệ dữ liệu của người dùng không bị lạm dụng. Cuộc tấn công Man-in-the-Disk chỉ là một trong nhiều cuộc tấn công có thể gây ra mối đe dọa cho ứng dụng của bạn và người dùng của nó. Vì vậy, hãy đảm bảo bạn làm theo các phương pháp tốt nhất để phát triển ứng dụng Android và bảo mật ứng dụng của bạn trước tất cả các loại mối đe dọa.
Có nên lo lắng về các cuộc tấn công người trong đĩa không?
Mặc dù cuộc tấn công Man-in-the-Disk là một mối đe dọa nghiêm trọng, bạn không cần phải lo lắng về nó miễn là bạn thực hiện các biện pháp thích hợp để bảo vệ thiết bị của mình.
Chỉ cần nhớ cài đặt ứng dụng từ các nguồn đáng tin cậy, cập nhật thiết bị của bạn và sử dụng giải pháp bảo mật di động đáng tin cậy để luôn an toàn trước tất cả các loại phần mềm độc hại và mối đe dọa mạng.
Nếu bạn là nhà phát triển Android, hãy đảm bảo bạn làm theo các phương pháp tốt nhất để phát triển và bảo vệ ứng dụng của bạn trước cuộc tấn công này. Các biện pháp đơn giản này sẽ giúp bạn giữ thiết bị và dữ liệu an toàn trước các cuộc tấn công Man-in-the-Disk.