Cuối tuần vừa rồi, Lorenzo đã sử dụng Giallo Zafferano - một ứng dụng nấu ăn đáng tin cậy trên iPhone, để tra cứu công thức nấu ăn mà anh đang cần. Đột nhiên, một khung thông báo xuất hiện trên màn hình yêu cầu anh nhập mật khẩu Apple ID của mình. Cảm thấy không ổn, anh đã lập tức tắt khung thông báo đó đi.
Felix Krause, một lập trình viên iOS đồng thời cũng là nhà sáng lập Fastlane, đã phát hiện ra rằng các hacker có thể dễ dàng tạo ra những khung thông báo giả mạo để lừa người dùng cung cấp mật khẩu của họ cho bọn chúng.
“Điều này đơn giản đến mức chỉ cần chưa đến 30 dòng code là đã có thể thực hiện được rồi”, Krause chia sẻ trên trang blog của mình. Anh chàng lập trình viên này cũng thử tạo ra một ứng dụng tương tự, để cho tất cả mọi người thấy lỗ hổng bảo mật nghiêm trọng này.
Tất nhiên vì lý do đạo đức, Krause đã không công bố mã nguồn của phương pháp đánh cắp mật khẩu Apple ID.
Tại sao phương pháp này hiệu quả?
Hệ điều hành iOS thường xuyên yêu cầu người dùng nhập mật khẩu Apple ID để thực hiện nhiều tác vụ khác nhau. Phổ biến nhất là khi cài đặt bản cập nhật hệ điều hành iOS hoặc trong khi cài đặt các ứng dụng iOS.
Bên trái là popup hệ thống, bên phải là popup của ứng dụng để đánh cắp mật khẩu.
Do đó, người dùng hình thành thói quen nhập mật khẩu Apple ID của mình bất cứ khi nào hệ điều hành iOS yêu cầu. Sẽ có một cửa sổ popup hiện ra khi iOS yêu cầu bạn nhập mật khẩu.
Tuy nhiên các popup không chỉ hiển thị trên màn hình khóa, màn hình trang chủ mà còn bên trong các ứng dụng. Ví dụ như khi họ muốn truy cập iCloud, Game Center hay thanh toán trong ứng dụng.
Dựa vào đó, các hacker dễ dàng tạo ra một popup giả mạo, được gọi là UIAlertController và trông giống hệt hộp thoại của hệ thống. Người dùng sẽ dễ dàng bị đánh lừa và nhập mật khẩu Apple ID vào hộp thoại này, mà không biết rằng nó sẽ được gửi tới tận tay hacker.
Phương pháp đánh cắp mật khẩu Apple ID mới nguy hiểm, nhưng lại dễ dàng thực hiện
Việc tạo ra một vài dòng code để có thể hiển thị cửa sổ popup giả mạo yêu cầu hệ thống là rất đơn giản. Lập trình viên Felix Krause cho biết anh mất chưa tới 30 dòng code để hoàn thiện, tất cả các lập trình viên iOS đều có thể làm được.
Các ứng dụng iOS đều cho phép các lập trình viên thực hiện tùy chỉnh sau khi đã đăng ký.
Bên trái là yêu cầu của hệ thống, bên phải là giả mạo.
Mặc dù người dùng có thể tự bảo vệ mình bằng cách kích hoạt tính năng xác thực hai bước (two-factor authentication) trên Apple ID. Nhưng điều đó cũng không đảm bảo 100%. Bởi hacker có thể tạo ra thêm một cửa sổ popup nữa và yêu cầu người dùng nhập luôn cả mã xác thực.
Với những người không rành về công nghệ và thiếu cẩn trọng, họ có thể dễ dàng cung cấp mã xác thực mà không biết rằng đó là popup giả mạo.
Ngay cả khi Apple quản lý rất chặt chẽ các ứng dụng của bên thứ ba trên App Store. Việc tùy chỉnh và thêm một vài dòng code vào ứng dụng sau khi đã được Apple cấp phép là điều dễ dàng.
Ví dụ, các hacker có thể sử dụng một công cụ cấu hình từ xa để kích hoạt tính năng mới cho ứng dụng sau khi được Apple cấp phép. Hay sử dụng một trình kích hoạt theo thời gian, với các đoạn mã đặc biệt chỉ khởi chạy sau khi ứng dụng được cấp phép.
Tất nhiên Apple có thể phát hiện và khóa tài khoản của các nhà phát triển thực hiện các hành vi này, nhưng có thể lúc đó đã quá muộn.
Làm thế nào để tự bảo vệ mình?
Lập trình viên Felix Krause đã chia sẻ một số mẹo nhỏ để người dùng có thể nhận biết các popup yêu cầu mật khẩu Apple ID giả mạo.
Đầu tiên, bạn có thể thử nhấn nút Home và xem ứng dụng có bị thoát ra hay không. Nếu như ứng dụng thoát ra cùng với cả popup, ứng dụng đó đã được cài mã đánh cắp mật khẩu của bạn.
Nếu như ứng dụng và hộp thoại vẫn hiển thị, thì đó là thông báo của hệ thống iOS. Lý do là vì hộp thoại của hệ thống được chạy trên một tiến trình riêng và không phải của bất kỳ ứng dụng nào, do đó bạn không thể thoát bằng cách ấn nút Home.
Sử dụng biện pháp thủ công để bảo vệ mật khẩu Apple ID.
Bạn có thể không cần nhập mật khẩu vào cửa sổ popup, thay vào đó bạn có thể bỏ qua và mở Cài đặt ứng dụng theo cách thủ công. Cũng giống như việc bạn không nên bấm trực tiếp vào các đường link trong messenger hay email, mà bạn nên mở trang web một cách thủ công.
Nếu như bạn đã lỡ gõ mật khẩu trong cửa sổ popup, nhưng chưa gửi, ứng dụng vẫn có quyền truy cập vào nội dung của trường mật khẩu. Do đó, hacker vẫn có được mật khẩu dù bạn kịp thời bấm nút Cancel.
Lừa đảo đánh cắp mật khẩu thông qua ứng dụng di động vô cùng nguy hiểm
Ngay cả những người am hiểu về công nghệ cũng có thể dễ dàng dính phải cạm bẫy này. Nguyên nhân là do UI của hệ thống và của ứng dụng chưa được tách biệt, để người dùng dễ dàng nhận ra.
Theo lập trình viên Felix Krause, iOS cần phải tách biệt rõ ràng giữa giao diện hệ thống và các giao diện của ứng dụng. Nhờ đó, người dùng sẽ dễ dàng nhận ra đâu là yêu cầu của hệ thống iOS và đâu là yêu cầu từ ứng dụng của bên thứ 3.
Tất nhiên sự thay đổi này liên quan đến một số vấn đề lập trình rắc rối và bảo mật. Thậm chí ngay cả một số trang web cũng có thể tạo ra những cửa sổ popup với giao diện giống như thông báo của hệ thống macOS, khiến nhiều người dùng nghĩ rằng đó là thông báo của hệ điều hành.
Việc siết chặt quản lý ứng dụng, xem xét các đoạn mã cập nhật mới thường xuyên có thể giúp Apple ngăn chặn được phương pháp lừa đảo mới này.
Tuy nhiên cho đến nay Apple vẫn chưa có bất kỳ bình luận gì, vì vậy chúng ta phải tự bảo vệ bản thân mình trước bằng cách nâng cao cảnh giác trước những yêu cầu đăng nhập mật khẩu trong ứng dụng một cách đáng ngờ.