Từ email đến số điện thoại: một cách tiếp cận OSINT mới (2019)
(martinvigo.com)- Giao diện đặt lại mật khẩu hiển thị một phần số điện thoại để xác minh tài khoản, nên chỉ với địa chỉ email cũng có thể thu thập các mảnh số từ nhiều dịch vụ
- Mỗi dịch vụ có tiêu chí che PII khác nhau, nên khi kết hợp số chữ số bị lộ từ eBay, Paypal, Yahoo, LastPass, Google, Facebook, Twitter, Hotmail, Steam, có thể suy ra phần lớn số điện thoại 10 chữ số ở Mỹ
- Dùng dữ liệu phân bổ số công khai của NANPA và National Pooling Administration có thể giảm mạnh số ứng viên dựa trên mã vùng, mã tổng đài và khối số thuê bao
- Các dịch vụ như Amazon và Twitter, khi bắt đầu đặt lại mật khẩu bằng số điện thoại, sẽ hiển thị một phần email; điều này có thể được dùng để đối chiếu các số ứng viên còn lại với gợi ý email đã che
- Việc lộ số điện thoại có thể dẫn đến SIM swapping, tấn công SS7, xâm nhập hộp thư thoại, theo dõi vị trí và giả mạo caller ID, nên với gợi ý khôi phục, cách an toàn hơn là hiển thị nhãn do người dùng tự đặt thay vì các mảnh PII
Rò rỉ thông tin do UI đặt lại mật khẩu tạo ra
- Quy trình đặt lại mật khẩu trên nhiều website sẽ hiển thị các tùy chọn khôi phục như liên kết qua email, mã SMS hoặc mã qua cuộc gọi điện thoại sau khi nhập email
- Khi hiển thị tùy chọn SMS hoặc gọi điện, nhiều UI để lộ một phần số điện thoại để người dùng có thể nhận ra số của mình
- Nếu biết địa chỉ email, có thể bắt đầu luồng đặt lại mật khẩu của nhiều tài khoản để lấy được một số chữ số trong số điện thoại
- Vấn đề là không có chuẩn thống nhất về cách che thông tin định danh cá nhân (PII) như số điện thoại, và việc triển khai được giao cho từng nhóm phát triển dịch vụ tự quyết
- Trong trường hợp của Paypal, khi đặt lại mật khẩu hệ thống hiển thị chữ số đầu tiên và bốn chữ số cuối, nhưng ở thử thách 2FA sau khi đăng nhập thì chỉ hiển thị ba chữ số cuối
- Với kẻ tấn công chỉ biết email, 5/10 chữ số bị lộ
- Với kẻ tấn công biết cả email và mật khẩu, chỉ thấy 3 chữ số
Khác biệt che giấu giữa các dịch vụ và hiệu ứng khi kết hợp
- Đã kiểm tra quy trình đặt lại mật khẩu của nhiều website phổ biến để so sánh liệu có thể bắt đầu chỉ với email hay không, có hỗ trợ khôi phục dựa trên di động hay không, và lộ ra bao nhiêu chữ số
- Mẫu lộ thông tin khác nhau tùy dịch vụ
- eBay: 3 chữ số đầu và 2 chữ số cuối
- Paypal: chữ số đầu tiên và 4 chữ số cuối
- Yahoo: chữ số đầu tiên và 2 chữ số cuối
- LastPass: 4 chữ số cuối
- Google, Facebook, Twitter, Hotmail, Steam: 2 chữ số cuối
- Nếu có cả tài khoản eBay và LastPass, chỉ với địa chỉ email có thể biết 7 chữ số trong số điện thoại 10 chữ số
- Chỉ riêng sự kết hợp này cũng làm phạm vi phỏng đoán giảm từ 1 tỷ xuống còn 1.000 số
Thu hẹp ứng viên bằng hệ thống số điện thoại của Mỹ
- Số điện thoại Mỹ, không tính mã quốc gia, gồm 3 trường
- mã vùng (area code hoặc NPA)
- mã tổng đài (exchange hoặc Central Office Code)
- số thuê bao (subscriber number)
- Thông tin thu được từ tổ hợp eBay và LastPass là mã vùng và số thuê bao; 3 chữ số còn thiếu không phải số ngẫu nhiên đơn thuần mà là mã tổng đài
- NANPA quản lý kế hoạch đánh số mạng điện thoại công cộng cho Canada, Mỹ và các vùng lãnh thổ của Mỹ, cùng một số quốc gia Caribe
- NANPA cung cấp danh sách mã tổng đài tương ứng với từng mã vùng dưới dạng dữ liệu công khai, có thể tra cứu hoặc tải file để phân tích
- Nếu chỉ giữ lại các mã tổng đài đã thực sự được phân bổ theo từng mã vùng, số ứng viên sẽ giảm xuống
- Với mã vùng 415 ở San Francisco, thay vì 1.000 mã tổng đài có thể có thì chỉ có 784 mã được phân bổ, nên loại được 216 mã
- Mã vùng 907 ở Alaska có 625 mã tổng đài được phân bổ
- Mã vùng 253 ở Tacoma có 458 mã tổng đài được phân bổ, nên có thể loại hơn một nửa
Cách tận dụng cả khối số thuê bao
- Không chỉ mã vùng và mã tổng đài, còn có thể tiếp tục giảm số ứng viên dựa trên một phần số thuê bao
- National Pooling Administration quản lý việc pooling số và cung cấp hồ sơ công khai về các khối đã được phân bổ
- Pooling số là cách phân bổ số theo khối 1.000 số thay vì 10.000 số ở các khu vực tăng trưởng nhanh
- Ví dụ, nếu trong 415-272-XXXX chỉ có khối 415-272-9XXX được phân bổ, thì có thể loại 415-272-[0-8]XXX và chỉ giữ 9XXX làm ứng viên
- Bằng cách này, số hợp lệ khả dĩ giảm từ 10.000 xuống 1.000
Các ứng viên còn lại và đặt lại mật khẩu theo chiều ngược
- Nếu mục tiêu ở khu vực Tacoma và có tài khoản eBay lẫn LastPass, trước tiên có thể thu thập 7 chữ số, sau đó dùng NANPA để loại 542 khả năng và thu hẹp còn 458 ứng viên
- Kiểm tra việc phân bổ khối bằng dữ liệu của National Pooling Administration thì trong ví dụ này số ứng viên điện thoại còn 445
- Để tiếp tục giảm các ứng viên còn lại, có thể dùng nguồn dữ liệu bên ngoài như công cụ tìm kiếm, pipl, BeenVerified, Spokeo, hoặc dịch vụ tra cứu ngược số điện thoại
- Add-on Twilio của WhitePages từng chỉ cần cung cấp số điện thoại và trả 10 cent là có thể lấy thông tin cá nhân
- Nhưng các cách này khó tin cậy 100%, nên có thể tái sử dụng chính luồng đặt lại mật khẩu theo chiều ngược lại
Các dịch vụ lấy gợi ý email từ số điện thoại
- Amazon và Twitter cho phép nhập số điện thoại để bắt đầu đặt lại mật khẩu, rồi hiển thị một phần địa chỉ email sẽ nhận liên kết đặt lại
- Amazon hiển thị chữ cái đầu và cuối của username cùng toàn bộ domain, và còn cho biết độ dài username thông qua số lượng dấu sao
- Twitter hiển thị hai ký tự đầu của username và chữ cái đầu của domain, đồng thời cho biết độ dài qua số dấu sao
- Luồng tấn công như sau
- Bắt đầu đặt lại mật khẩu trên nhiều website bằng email của mục tiêu để thu thập một phần số điện thoại
- Dùng dữ liệu công khai của NANPA và National Pooling Administration để loại mã vùng, mã tổng đài và khối số thuê bao không tồn tại
- Thử đặt lại mật khẩu với các số điện thoại ứng viên còn lại rồi đối chiếu các ký tự email đã che với email mục tiêu
- Theo quy trình này, có thể lấy được số điện thoại 10 chữ số gắn với địa chỉ email mà không cần gọi điện một lần nào
email2phonenumber và phonerator
- email2phonenumber là công cụ nhận vào một phần số điện thoại rồi loại các mã vùng và mã tổng đài không tồn tại để tạo danh sách các số điện thoại hợp lệ có thể có
- Công cụ này dùng chức năng đặt lại mật khẩu của Amazon và Twitter để thử các số điện thoại, rồi đối chiếu email đã che được hiển thị với email đã nhập
- Nó ngẫu nhiên hóa tham số request, mô phỏng hành vi người dùng và cũng hỗ trợ dùng proxy server
- Ngoài Amazon và Twitter, còn có nhiều dịch vụ hỗ trợ đặt lại mật khẩu dựa trên số điện thoại, và công cụ dự định nhận pull request để bổ sung hỗ trợ cho các dịch vụ khác
- phonerator được lên kế hoạch như một dịch vụ trực tuyến tạo danh sách số khả dĩ bằng cách tập hợp dữ liệu về hệ thống số điện thoại của từng quốc gia, và sau đó đã được công bố
- Hướng đi là hỗ trợ đa quốc gia, nhiều chi tiết hơn, dữ liệu lịch sử và bộ lọc nâng cao
- Nếu biết thông tin như nhà mạng, khu vực, thời gian giữ số, có thể dùng để tiếp tục thu hẹp ứng viên
Vấn đề còn lớn hơn ở các quốc gia có số điện thoại ngắn
- Dù trọng tâm là số điện thoại Mỹ, trong hệ thống số điện thoại của các nước khác, cùng kiểu che như vậy có thể làm lộ nhiều thông tin hơn
- Số di động ở Tây Ban Nha bắt đầu bằng 6 và gần đây có thêm 7, với tổng độ dài 9 chữ số
- Nếu các dịch vụ như eBay hay LastPass không giảm mức che cho phù hợp với số ngắn hơn, thì với mục tiêu ở Tây Ban Nha, chỉ riêng LastPass cũng có thể làm lộ 5/9 chữ số
- Ở các quốc gia dùng số điện thoại 7 chữ số như Iceland, Estonia, San Salvador, 5/7 chữ số của khách hàng eBay có thể bị lộ cho người chỉ biết email
- Nếu kết hợp tài khoản eBay và LastPass, ở các quốc gia như vậy có thể lấy toàn bộ số điện thoại chỉ từ địa chỉ email
Các cuộc tấn công kéo theo khi có được số điện thoại
- Khi biết số điện thoại, đó có thể là điểm khởi đầu cho nhiều cuộc tấn công bảo mật và quyền riêng tư
- Các vector tấn công có thể gồm
- SIM swapping: chuyển số sang SIM của kẻ tấn công thông qua social engineering, cưỡng ép hoặc nội gián nhà mạng, rồi dùng để đặt lại mật khẩu hoặc vượt qua 2FA
- Tấn công SS7: giao thức cũ dùng cho tương tác giữa các nhà mạng có thể bị lạm dụng để theo dõi vị trí hoặc nghe lén liên lạc, điều này đã được trình diễn tại nhiều hội nghị bảo mật
- Tấn công hộp thư thoại: xâm nhập voicemail có thể ảnh hưởng đến an toàn tài khoản
- Theo dõi vị trí: vấn đề theo dõi vị trí dựa trên số điện thoại đã từng được bàn tới riêng
- Giả mạo caller ID: có thể giả mạo số gọi đi bằng dịch vụ trực tuyến để phục vụ social engineering
Biện pháp giảm thiểu được đề xuất và phản hồi công khai
- Chỉ che một phần PII là chưa đủ
- Ở các quốc gia có số điện thoại ngắn, che cùng số lượng chữ số sẽ làm lộ tỷ lệ thông tin lớn hơn
- Với email cũng vậy, chỉ che username là chưa đủ; domain có thể tiết lộ nơi làm việc, còn TLD có thể cho biết tình trạng sinh viên hoặc quốc gia
- Một phương án thay thế là cho phép người dùng đặt nhãn cho email hoặc số điện thoại
- Ví dụ: “personal email”, “work phone”
- Trong gợi ý đặt lại mật khẩu, hiển thị nhãn thay vì các mảnh PII
- Người dùng nên tránh cung cấp số điện thoại nếu không thật sự cần thiết; nếu cần, có thể cân nhắc dùng số ảo như Google Voice hoặc một SIM riêng
- Trong quá trình công bố có trách nhiệm, tác giả đã liên hệ các dịch vụ hiển thị quá 2 chữ số hoặc làm lộ cả mã vùng/mã tổng đài
- LastPass đã cập nhật cách che để chỉ hiển thị 2 chữ số cuối
- eBay đổi sang hiển thị chữ số đầu tiên và 2 chữ số cuối, nhưng vẫn chưa hoàn toàn đủ
- Yahoo khi đó đang xem xét rủi ro và biện pháp giảm thiểu
- Paypal xem việc hiển thị 5 chữ số cho người chỉ biết email là thiết kế có chủ đích và quyết định không xử lý
1 bình luận
Các ý kiến trên Hacker News
Tôi đã mua vài phụ tùng ô tô từ một người hơi giống lừa đảo: đã nhận tiền suốt mấy tuần nhưng không gửi đủ những món tôi đặt.
Vì chúng tôi nói chuyện trên nhiều nền tảng, mỗi nền tảng lại hé lộ một mảnh danh tính, và khi ghép các mảnh lại thì toàn bộ bức tranh khớp với nhau.
Tôi gọi đến nơi làm việc của anh ta, cùng ngành với loại phụ tùng anh ta bán, yêu cầu gửi phụ tùng cho tôi, đồng thời hỏi nhẹ xem chủ lao động của anh ta có liên quan gì đến vụ bán hàng này không; thái độ của anh ta lập tức thay đổi, và ngày hôm sau anh ta gửi toàn bộ món tôi đã mua cùng vài món tặng thêm.
Tôi chỉ cần một điểm gây áp lực mà thôi.
Một mảnh còn thiếu trong bài viết, riêng ở Mỹ, là cơ sở dữ liệu CNAM.
CNAM là cơ sở dữ liệu mà nhà mạng dùng để hiển thị ID người gọi dạng chữ như "SMITH JOHN" thay vì "+1 (555) 123-4567".
Việc tra cứu không miễn phí, nhưng hẳn có cách xử lý vài trăm số với chi phí khá rẻ; vì tên và email thường tương tự nhau, cũng có thể xây dựng thuật toán chọn ứng viên có khả năng nhất.
Dữ liệu này cũng hay sai theo những cách thú vị, nhưng dù vậy vẫn khá hữu ích.
curl./usr/local/bin/curl -s -X GET "https://lookups.twilio.com/v1/PhoneNumbers/…; -u $accountsid:$authtoken | /usr/local/bin/jq '.'Tôi không nhớ chính xác chi phí, nhưng có thể khoảng 1 cent mỗi lượt tra cứu, và nó cũng cho biết nhà mạng cũng như số đó là di động hay điện thoại cố định.
Tôi đã đổi CNAM rồi kiểm tra bằng tra cứu số của Twilio; về nguyên tắc phải dùng tên người thật, nhưng trên thực tế đó là hệ thống dựa vào lương tâm.
[1] https://www.t-mobile.com/support/tutorials/device/app/ios/to...
[2] https://www.twilio.com/code-exchange/lookup
Tôi dùng tên thật trong địa chỉ email, và số điện thoại của tôi cũng được công khai trong nhiều danh bạ điện thoại.
Ở Thụy Điển, nếu không chủ động từ chối, việc địa chỉ và số điện thoại được công khai để có thể tìm kiếm là thông lệ tiêu chuẩn; có thể xem như thông tin từng nằm trong danh bạ điện thoại thập niên 80 đã được đưa lên mạng trong thập niên 90.
Dữ liệu cá nhân công khai kiểu này có thể hữu ích, nhưng cũng có thể bị lạm dụng.
Tuy nhiên, vì có nhiều PII công khai như SSN, địa chỉ, số điện thoại, ngày sinh, nên ngược lại mọi người không cần coi những thông tin này như bí mật; thay vào đó cần có giấy tờ tùy thân và eID đúng nghĩa để việc biết vài con số không khiến người khác dễ mạo danh ai đó.
Nếu ai đó muốn số điện thoại của tôi, họ có thể lấy email có họ tên, tìm 100 người trùng tên trên các trang tìm kiếm, rồi chỉ cần biết thành phố và độ tuổi xấp xỉ là thu hẹp được còn vài ứng viên.
Hồ sơ công khai còn hiển thị ngày sinh, xe hơi, thu nhập, thậm chí những người đăng ký cùng địa chỉ, nên thu thập thông tin nguồn mở ở Thụy Điển không khó.
Thật ngạc nhiên là PayPal hiển thị 5 chữ số gồm cả mã vùng cho người chỉ biết địa chỉ email, trong khi nếu kẻ tấn công biết mật khẩu của mục tiêu thì lại chỉ hiển thị 3 chữ số.
Cũng lạ là họ xem việc này là “hoạt động đúng như thiết kế” và không xử lý.
Tôi tò mò những kẻ lừa đảo lấy số từ LinkedIn như thế nào, hoặc liên kết nó với số từ nguồn khác ra sao; ở một công ty nọ, nhân viên vẫn liên tục mắc bẫy tin nhắn CEO giả.
Công sức dùng địa chỉ email và số Google Voice khác nhau cho từng dịch vụ rốt cuộc cũng đáng giá.
+của Gmail để tạo các địa chỉ trộn lẫn.Với dịch vụ bên ngoài, nó trông như
gary+FqZWMK@gmail.com, còn trong hộp thư của tôi,FqZWMKđược chuyển thành tên dịch vụ như Netflix để tự động tạo thư mục đã sắp xếp.Vì tôi kiểm soát hoàn toàn phần ánh xạ, tôi cũng có thể đưa nhiều địa chỉ ngẫu nhiên vào một hộp thư đến “dùng một lần”, nơi chúng sẽ tự động bị xử lý như spam sau một khoảng thời gian.
Để dùng SIM thứ hai, ở Mỹ bạn vẫn cần một thiết bị dual SIM, vốn còn khá ngách
Số VoIP bị nhiều trang tra cứu rồi chặn, nhưng trên Android vẫn chưa có cách tốt để gửi/nhận tin nhắn SMS của nhà mạng một cách tử tế từ máy tính để bàn
Giao diện web của Google Messages quên thiết bị quá thường xuyên nên khó dùng nghiêm túc, và nếu sau này họ thêm chặn VoIP thì có thể phát sinh vấn đề con gà-quả trứng: SMS xác thực hai bước cũng bị chặn, khiến bạn không thể dùng lại tài khoản
Cũng có những dịch vụ như nhà thuốc Harris Teeter không kiểm tra xem số có thật sự liên lạc được không, nên vẫn chấp nhận số VoIP, nhưng hệ thống lại không gọi hoặc nhắn tin được, khiến bạn không nhận được thông báo đơn thuốc
Nó đã thay đổi cách điện thoại và laptop tương tác với nhau, và có lẽ là dự án mã nguồn mở tôi thích nhất
Bạn có thể dùng laptop như bàn phím, trả lời tin nhắn từ bất kỳ ứng dụng nào gửi thông báo, hoặc gửi tệp nhanh và tốt hơn bất kỳ cách nào khác
Nó có kích thước như thiết bị 2FA kiểu thẻ mật khẩu ngày xưa, và ban đầu nguyên nhân là vợ tôi cứ lấy điện thoại thật của tôi để nhận mã bảo mật cho các tài khoản dùng chung
So với dùng số điện thoại thật, opsec cũng tốt hơn một chút
Theo kinh nghiệm của tôi, trang chặn nó chỉ khoảng Discord
Cá nhân tôi thích dùng email riêng cho từng tài khoản nhưng ít hiển nhiên hơn, như
ebpnw@mydomain.com, để kẻ tấn công còn phải đoán đúng cả emailiPhone dual SIM có từ iPhone XS, iPhone XS Max, iPhone XR
Nguồn: https://support.apple.com/en-us/HT209044
Các iPhone dual SIM có ít nhất một eSIM đã trải qua 6 thế hệ rồi
Kiểu rò rỉ thông tin không được phối hợp như thế này là một vấn đề sâu xa hơn
Nhiều nơi chia sẻ bốn chữ số cuối của SSN, trong khi năm chữ số đầu trước đây thường có thể dễ dàng suy đoán từ ngày sinh và bang sinh, còn các chữ số đầu cho biết bang nơi số được cấp
Phần lớn người trưởng thành hiện nay vẫn thuộc nhóm đó, nhưng vẫn cần phân biệt rõ
Nó hoàn toàn không ngăn được việc chính phủ và các tổ chức lớn theo dõi, thu thập dữ liệu; mỗi khi làm việc quan trọng lại phải tiếp tục móc nối với một hệ thống căn cước quốc gia tạm thời trên thực tế, trong khi chẳng có bất kỳ lợi ích nào của một hệ thống căn cước quốc gia đúng nghĩa
Nó gây ra vô số đau khổ và lãng phí thời gian mà không vì lý do gì
Tôi luôn thắc mắc các nhà nghiên cứu bảo mật biện minh thế nào cho việc công khai các công cụ tự động tạo số điện thoại từ email như bài blog này
Những công cụ như vậy có khả năng được dùng vào mục đích xấu hoặc rùng rợn nhiều hơn rất nhiều so với mục đích tốt
Tôi tự hỏi liệu họ thấy ổn vì đó là “nghiên cứu” và dù sao cũng là vùng xám nên cho qua, hay vì họ đã trao đổi với các công ty để lộ lỗ hổng và giờ nó đã bị vô hiệu hóa nên cảm thấy ổn
Một ví dụ tốt là Firesheep: chỉ cần chạy một plugin Firefox trên Wi-Fi công cộng là có thể lấy ngay phiên của người dùng cùng mạng đã đăng nhập qua HTTP
Khi đó Facebook mặc định dùng HTTP, và khi plugin này lên tin tức, áp lực đã khiến họ gần như chỉ sau một đêm phải bắt buộc HTTPS, rồi nhiều công ty khác làm theo
Không quá lời khi nói công bố đó đã đẩy nhanh đáng kể việc áp dụng HTTPS
Tôi không biết lần công bố này có tầm ảnh hưởng đến mức đó không, nhưng tôi nghĩ vẫn tốt hơn việc chỉ blackhat biết các kỹ thuật như vậy
Có thể cân nhắc “khi công bố thông tin này, lợi ích có lớn hơn tác hại không?”
Nhờ thông tin Martin Vigo công bố năm 2019, tôi đã có thể thông báo cho các nhà tuyển dụng và khách hàng hiện tại về một mô hình đe dọa bổ sung cần cân nhắc khi quyết định cách đặt lại mật khẩu
Nếu biện hộ cho việc đó, bản proof of concept ban đầu được công bố khá hạn chế, cần tài khoản Twilio nên có rào cản gia nhập, và nếu dùng vào tội phạm thì cũng để lại manh mối cho nhà phân tích
Có vẻ là một bí mật công khai rằng khá nhiều người bước vào lĩnh vực an ninh mạng vì thích phá bảo mật theo cách thông minh hơn là thật sự giúp người khác an toàn
Tuy nhiên nghiên cứu bảo mật là hợp pháp, còn hack mục tiêu ngẫu nhiên là bất hợp pháp
Khi có hành động pháp lý, công ty cũng khó bào chữa rằng họ không biết