- CCC có thể xem SMS chứa mật khẩu dùng một lần theo thời gian thực thông qua vụ lộ dữ liệu của IdentifyMobile; đây là trường hợp hơn 198 triệu SMS của hơn 200 công ty bị rò rỉ
- 2FA-SMS là lớp hỗ trợ để ngăn chặn tình huống chỉ mật khẩu bị đánh cắp, nhưng mức độ bảo mật thực tế cũng phụ thuộc rất lớn vào năng lực quản lý của nhà cung cấp dịch vụ gửi SMS
- IdentifyMobile đã để lộ mã xác thực, số điện thoại người nhận, tên người gửi và một phần thông tin tài khoản trên Internet; chỉ cần đoán subdomain
idmdatastorelà có thể truy cập - Google, Amazon, Facebook, Microsoft, Telegram, Airbnb, FedEx, DHL nằm trong phạm vi bị ảnh hưởng; chỉ với feed thời gian thực, kẻ tấn công có thể chiếm số WhatsApp hoặc thử giao dịch tài chính/đăng nhập dịch vụ
- Xác thực hai bước qua SMS vẫn tốt hơn chỉ dùng mật khẩu, nhưng các phương thức ít phụ thuộc hơn vào mạng di động và nhà cung cấp SMS, như mật khẩu dùng một lần dựa trên ứng dụng hoặc token phần cứng, sẽ an toàn hơn
Điểm yếu của 2FA-SMS được phơi bày qua vụ lộ dữ liệu IdentifyMobile
- 2FA-SMS yêu cầu đồng thời mật khẩu mà người dùng biết và mã SMS chứng minh quyền truy cập vào số điện thoại
- Được dùng như một lớp bổ sung để ngăn chiếm đoạt tài khoản khi chỉ mật khẩu bị lộ
- SMS có thể chứa các mã chỉ có hiệu lực trong thời gian ngắn, như mã xác thực WhatsApp hoặc TAN dùng cho chuyển khoản ngân hàng
- Xác thực dựa trên SMS vốn đã bị phơi bày trước nhiều hướng tấn công
- Có thể chặn SMS bằng SIM swapping
- Có thể khai thác lỗ hổng SS7 của mạng di động
- Có thể dùng phishing để khiến người dùng tự giao mật khẩu dùng một lần
- Từ năm 2013, CCC đã khuyến nghị không dùng SMS làm phương thức xác thực hai bước
- Trong trường hợp này, ngay cả khi kẻ tấn công không nhắm trực tiếp vào mạng viễn thông hoặc người dùng, nhà cung cấp dịch vụ gửi SMS vẫn có thể trở thành điểm yếu trong chuỗi xác thực
- IdentifyMobile là nhà cung cấp gửi SMS hàng loạt cho nhiều công ty và dịch vụ
- Nhà cung cấp này có thể truy cập nội dung SMS, trong đó có mã xác thực
- CCC có thể truy cập dữ liệu theo thời gian thực chỉ bằng cách đoán subdomain
idmdatastore
Phạm vi lộ dữ liệu và rủi ro thực tế
- Dữ liệu bị lộ không chỉ gồm nội dung SMS mà còn có số điện thoại người nhận, tên người gửi và trong một số trường hợp là thông tin tài khoản khác
- Hơn 200 công ty bị ảnh hưởng, bao gồm các trường hợp giao phó bảo mật xác thực cho IdentifyMobile trực tiếp hoặc thông qua nhà cung cấp dịch vụ khác
- Google, Amazon, Facebook, Microsoft
- Telegram, Airbnb, FedEx, DHL
- Tổng cộng hơn 198 triệu SMS bị rò rỉ
- Chỉ với feed thời gian thực cũng có thể thực hiện nhiều kịch bản lạm dụng
- Chiếm đoạt số WhatsApp
- Thực hiện giao dịch tài chính mà không cần truy cập điện thoại, nếu đã biết mật khẩu
- Đăng nhập vào nhiều dịch vụ, nếu đã biết mật khẩu
- Việc lạm dụng thực tế nhìn chung vẫn cần mật khẩu, nhưng trong dữ liệu cũng có cả liên kết 1-click login
- Với một số doanh nghiệp lớn bị ảnh hưởng, phạm vi IdentifyMobile bảo vệ chỉ giới hạn ở từng dịch vụ riêng lẻ
- Sự bất cẩn của IdentifyMobile đã đặt doanh nghiệp và khách hàng vào rủi ro đáng kể
- CCC không lưu giữ dữ liệu, nhưng không thể loại trừ khả năng người khác đã truy cập
Các phương thức xác thực có thể chọn thay cho SMS
- Khi có thể, dùng mật khẩu dùng một lần được tạo trong ứng dụng hoặc token phần cứng thay cho SMS sẽ an toàn hơn
- Các phương thức này không phụ thuộc vào mạng di động
- Cũng không phụ thuộc vào nhà cung cấp gửi SMS như IdentifyMobile
- Dù vậy, xác thực hai bước vẫn tốt hơn chỉ dùng một mật khẩu
1 bình luận
Các ý kiến trên Hacker News
Gần đây một người quen của tôi bị dính lừa đảo Google Ads: kẻ tấn công mua quảng cáo cho các từ khóa tìm kiếm như “BANKNAME login”, sao chép rất tinh vi trang đăng nhập ngân hàng, và ở phía sau đang thực hiện một cuộc tấn công chuyển tiếp
Khi nhập mã xác thực hai bước từ ứng dụng trên điện thoại, màn hình báo từ chối và yêu cầu mã mới, nhưng thực ra mã thứ hai là mã phê duyệt để thêm người nhận “pay anyone” mới, và tiền đã bị rút đi bằng cách đó
Tôi vẫn nghĩ xác thực hai bước qua SMS yếu ở cấp độ giao thức, nhưng trong trường hợp này, cách SMS của ngân hàng, gửi thông điệp khác khi thêm người nhận mới so với lúc đăng nhập, có thể đã tốt hơn
Lý tưởng thì không nên chỉ là một ứng dụng tạo token đơn giản, mà cần tạo token theo từng loại giao dịch, như token để đăng nhập và token để thêm người nhận, và khiến chúng không thể thay thế cho nhau. Tôi tò mò không biết có ngân hàng nào cung cấp xác thực hai bước ở mức như vậy chưa
Có lẽ passkey, vì thiết lập kết nối vật lý với phần cứng cục bộ, có thể khiến vấn đề kiểu này trở nên không còn ý nghĩa. Nhân tiện, nạn nhân cuối cùng đã được hoàn tiền
Nếu muốn cải thiện tư thế bảo mật, cài trình chặn quảng cáo là một trong những cách tốt nhất. Tôi rất khuyên nên thiết lập uBlock Origin cho bạn bè hoặc người thân không rành công nghệ
Có thể xem màn hình ứng dụng tại Úc ở đây, ứng dụng tại Mỹ và Anh cũng tương tự: https://www.hsbc.com.au/content/dam/hsbc/au/images/ways-to-b...
HSBC đã cung cấp tính năng này nhiều năm rồi, nhưng tôi không rõ vì sao nó vẫn chưa thành tiêu chuẩn hoặc vì sao các ngân hàng Mỹ khác chưa áp dụng
Thế mà tôi không hiểu vì sao họ lại khắt khe đến vậy với quảng cáo thông thường, nhưng lại bán quảng cáo cho các trang phishing giả mạo ngân hàng và nhắm vào người đang tìm kiếm ngân hàng đó
“Khi tìm kiếm trên Internet, hãy dùng tiện ích chặn quảng cáo. Hầu hết các trình duyệt Internet cho phép thêm tiện ích mở rộng, bao gồm cả tiện ích chặn quảng cáo. Những trình chặn quảng cáo này có thể được bật và tắt trong trình duyệt, cho phép quảng cáo trên một số website cụ thể trong khi chặn quảng cáo ở nơi khác.”
[0] https://www.ic3.gov/Media/Y2022/PSA221221
Tôi đã nghi ngờ từ lâu rằng các công ty bắt buộc dùng xác thực hai bước qua SMS không thật sự nghiêm túc về bảo mật, mà chỉ muốn lấy số điện thoại và dùng xác thực hai bước như một màn diễn kịch bảo mật để thu thập số
Hơn nữa, đó còn là định danh bạn trực tiếp trao cho từng người gặp, nên có thể nói nó trông giống một hệ thống tệ
Nó ngăn việc tạo tài khoản mới để né chặn, và giúp dễ liên kết các hành vi xấu xuất hiện trên nhiều tài khoản
Tôi nghĩ mức độ những kẻ spam góp phần làm Internet suy thoái đang bị đánh giá thấp
Hỗ trợ cũng dễ hơn
NIST từ khá lâu đã nói rõ không nên dùng xác thực hai bước qua SMS
NIST SP 800-63B §5.1.3.3
https://pages.nist.gov/800-63-3/sp800-63b.html#pstnOOB
Khách hàng: “Ứng dụng xác thực hai bước là gì? Không phải mã sẽ được gửi về điện thoại của tôi sao?”
Hỗ trợ: “Đúng vậy, nhưng hiện chúng tôi không còn hỗ trợ xác thực hai bước qua SMS nữa.”
Khách hàng: “Nhưng trước đây khi mã được gửi về điện thoại thì đâu có vấn đề gì.”
Hỗ trợ: “Vâng, nhưng NIST khuyến nghị không dùng xác thực hai bước qua SMS.”
Khách hàng: “NIST là cái gì? Thật bực mình. Tôi cần vào tài khoản của mình.”
Đáng tiếc là gần như mọi ngân hàng đều buộc dùng SMS. Vì các ứng dụng ngân hàng từ chối chạy trên điện thoại đã root. Một thành tựu bảo mật thật tuyệt vời
Ở nước tôi, gần như mọi ngân hàng bắt buộc xác thực hai bước dựa trên ứng dụng, không có phương án SMS thay thế
Nếu không muốn mua và mang theo một điện thoại riêng, bạn chỉ còn cách dùng duy nhất một ngân hàng không yêu cầu điều đó
Trên điện thoại đã root, tức là đã mở khả năng để ứng dụng khác rình xem và đánh cắp thông tin ngân hàng
Việc ứng dụng ngân hàng không chạy trên điện thoại bị tổn hại bảo mật có vẻ hoàn toàn hợp lý
Tuy nhiên GrapheneOS không thuộc trường hợp này, vì các bản build chính thức của GrapheneOS không có quyền root
Bài viết đang trộn lẫn hai vấn đề có ý nghĩa bảo mật khác nhau
Liên kết 1-click login là điều đáng lo ngại, và các dịch vụ như WhatsApp có thể bị chiếm đoạt chỉ bằng quyền truy cập SMS
Nhưng mã xác thực 2 bước thì tương đối ít đáng lo hơn. Vì là yếu tố thứ hai nên kẻ tấn công cũng cần cả mật khẩu
Trong trường hợp như vậy, tôi sẽ bớt lo lắng hơn nhiều về việc dùng SMS và rủi ro bị chặn bắt
Ở Anh, có vẻ như hầu hết mọi giao dịch ngân hàng trực tuyến hiện nay đều được xác minh bằng SMS. Nhìn thì có vẻ như được luật yêu cầu, và đã thay thế hệ thống xác minh trước đây bằng thẻ ngân hàng + đầu đọc thẻ + PIN
Cách cũ không chỉ an toàn hơn, mà cũng không phụ thuộc vào một chiếc điện thoại di động đang hoạt động bình thường và có sóng
Hy vọng một ngày nào đó điều này sẽ được thừa nhận là một sai lầm khủng khiếp và được sửa lại, nhưng tôi không kỳ vọng nhiều
Tôi đồng ý rằng đầu đọc thẻ hữu ích khi ngoại tuyến. Nhưng tôi hầu như chẳng bao giờ nhớ mang theo thiết bị đó, nên thường bị kẹt khi đi du lịch
Thụy Điển đã giải quyết vấn đề này từ lâu bằng BankID
https://en.wikipedia.org/wiki/BankID
Thật đáng kinh ngạc khi các cơ quan công và tư chỉ cần hợp tác một chút là có thể đạt được gì. Đây là cách duy nhất để đăng nhập và xác thực 2 bước cho các dịch vụ chính phủ và hầu hết ngân hàng, và nó hoạt động tốt
Thật khó tin là không phải quốc gia nào cũng có hệ thống như vậy, thậm chí toàn EU cũng chưa có một hệ thống như thế
Dù vậy tôi cũng không đặt kỳ vọng quá cao
https://ec.europa.eu/digital-building-blocks/sites/display/E...
Có vẻ các tin nhắn trong bucket S3 được cập nhật mỗi 5 phút: https://www.zeit.de/digital/datenschutz/2024-07/it-sicherhei...
Tuy nhiên CCC đã sai khi định nghĩa đây là vấn đề chỉ riêng của 2FA-SMS. Bị ảnh hưởng không chỉ có Twilio Verify (API xác thực 2 bước), mà là tất cả SMS được gửi qua nhà cung cấp này
Đây giống vấn đề bảo mật nhà cung cấp do không bảo vệ đúng cách kho lưu trữ dữ liệu nhạy cảm, hơn là vấn đề của bản thân SMS
Đường tấn công cụ thể như vậy hoàn toàn không tồn tại với các công nghệ đó
Nhiều tổ chức tài chính nơi tôi làm việc yêu cầu xác thực 2 bước qua SMS và không cung cấp tùy chọn HOTP/TOTP. Phát điên lên được