Trên một số trình duyệt web phổ biến tồn tại lỗ hổng về mã chữ khiến người dùng “gần như không thể” phân biệt được địa chỉ trang web chính thức và trang web giả mạo, vì nó cho phép tin tặc tạo tên miền bằng các ký tự của ngôn ngữ khác, nhưng hiển thị giống chữ La-tinh.
Ngày 14/4/2017, trên blog cá nhân, nhà phát triển web Xudong Zheng (Trung Quốc) đã cảnh báo người dùng về lỗ hổng mã chữ trên một số trình duyệt web phổ biến. Lỗ hổng này cho phép tin tặc tạo tên miền bằng các ký tự của ngôn ngữ khác nhưng hiển thị giống chữ La-tinh. Đây được gọi là tấn công đồng bộ hóa (homograph attack) tên miền quốc tế (IDN).
Theo Xudong Zheng, kẻ tấn công có thể đã đăng ký tên miền “xn--80ak6aa92e.com” và nhận chứng thư số miễn phí từ Let's Encrypt (tổ chức phát hành chứng thư số ở Hoa Kỳ). Thay vì hiển thị tên miền đầy đủ dưới dạng mã Punycode, tên miền sẽ trở thành “apple.com” trên một số trình duyệt phổ biến, với thông báo “an toàn” vì có chứng thư số. Tên miền này có thể được đọc là “apple.com”, nhưng thực chất là một loạt các ký tự Kirin. Bằng mắt thường, người dùng “gần như không thể” phân biệt được địa chỉ trang web chính thức và trang web giả mạo.
Punycode là một mã chữ đặc biệt, sử dụng trên các trình duyệt web để chuyển đổi các ký tự Unicode sang bộ ký tự giới hạn của mã ASCII (A-Z, 0-9). Theo mặc định, nhiều trình duyệt web sử dụng Punycode để hiển thị các ký tự Unicode trong URL, nhằm phát hiện và chống lại các cuộc tấn công đồng bộ hóa IDN. Nhưng khi các ký tự của tên miền đều thuộc cùng một bộ ký tự ngôn ngữ duy nhất, thì các trình duyệt sẽ hiển thị dưới dạng ngôn ngữ đó thay vì Punycode.
Từ lâu, tên miền được viết bằng các ký tự La-tinh thông thường, nhưng từ năm 1998, kiểu ngôn ngữ có thể hiển thị với Unicode đều có thể được đăng ký. Tin tặc có thể lợi dụng điều này để tạo nên những tên miền giả mạo bằng ngôn ngữ khác nhưng hiển thị giống với chữ La-tinh, hoặc đăng ký chứng thư số để tăng độ tin cậy. Từ đó, có thể lấy cắp thông tin đăng nhập, thông tin ngân hàng và các thông tin nhạy cảm khác của nạn nhân.
Các trình duyệt bị ảnh hưởng bao gồm Chrome, Firefox và Opera. Các trình duyệt chưa bị ảnh hưởng là: Microsoft Edge, Apple Safari, Brave, và Vivaldi. Internet Explorer chỉ bị ảnh hưởng khi có cài đặt ngôn ngữ của tên miền trong hệ thống máy tính.
Xudong Zheng đã báo cáo cho Google và Mozilla vào ngày 20/01/2017. Google đã phát hành bản vá cho lỗ hổng này trong Chrome 58 vào ngày 19/4/2017. Mozilla đã quyết định không tạo bản vá cho Firefox về vấn đề này, và cho biết sẽ là thiếu công bằng nếu giới hạn các ngôn ngữ khác ngoài La-tinh. Người dùng Firefox có thể hiển thị tên miền dưới mã Punycode bằng cách gõ “about: config” vào thanh địa chỉ và thay đổi “network.IDN_show_punycode” thành “true”.
Email Office 365 được báo cáo rằng, dịch vụ đang bị tin tặc nhằm vào để khai thác lỗ hổng hiển thị Punycode
Để tự bảo vệ mình, người dùng cần thực hiện các biện pháp sau:
- Cập nhật phiên bản mới nhất của trình duyệt.
- Sử dụng chương trình quản lý mật khẩu đi cùng với ứng dụng trên trình duyệt. Khi vào đúng trang web chính thức, thông tin đăng nhập sẽ tự động điền vào đầy đủ.
- Gõ lại đường dẫn hoặc truy cập thông qua trang tìm kiếm.
- Chú ý cẩn thận và kiểm tra nếu cần nhấp chuột vào bất kỳ đường dẫn nào.