1 điểm bởi GN⁺ 2023-10-20 | 1 bình luận | Chia sẻ qua WhatsApp
  • Nhắm vào thói quen tin tưởng quảng cáo tìm kiếm và trang web chính thức, quảng cáo Google giả mạo Keepass có thể dẫn cả những người dùng am hiểu bảo mật tới trang giả mạo
  • Sau khi nhấp, thanh địa chỉ hiển thị ķeepass[.]info trông như thật, nhưng tên miền thực là xn--eepass-vbb[.]info được mã hóa bằng punycode và phát tán mã độc FakeBat
  • Quảng cáo này được hiển thị từ thứ Bảy đến thứ Tư, và nhà quảng cáo được ghi là Digital Eagle, đã được Google xác minh danh tính
  • Quảng cáo Google, URL trông hợp lệ và chứng chỉ TLS hợp lệ được dùng cùng lúc, khiến việc chỉ nhìn thanh địa chỉ là không đủ để xác định có phải giả mạo hay không
  • Cả 5 trình duyệt phổ biến đều chuyển tới trang giả mạo khi nhập ķeepass[.]info, nên nếu nghi ngờ, người dùng nên tự nhập URL trong tab mới hoặc kiểm tra chủ sở hữu chứng chỉ TLS

Sự kết hợp giữa quảng cáo Google và trang giả mạo Keepass

  • Trên Google đã xuất hiện quảng cáo độc hại trông như quảng cáo Keepass
  • Quảng cáo này ngụy trang như đang quảng bá trình quản lý mật khẩu mã nguồn mở Keepass
  • Người dùng có thể dễ tin hơn vì đây là quảng cáo Google và Google vốn được biết là có kiểm duyệt quảng cáo
  • Khi nhấp vào, thanh địa chỉ hiển thị ķeepass[.]info giống như trang Keepass thật
  • Trang Keepass chính thức thực tế là keepass.info

Tên miền tương tự được tạo bằng punycode

  • ķeepass[.]info hiển thị trên thanh địa chỉ thực chất là cách biểu diễn được mã hóa của xn--eepass-vbb[.]info
  • Trang này phát tán một họ mã độc được theo dõi dưới tên FakeBat
  • Thủ thuật này sử dụng cơ chế mã hóa punycode
    • punycode cho phép biểu diễn ký tự Unicode dưới dạng văn bản ASCII tiêu chuẩn
    • Trong trường hợp này, ký tự được dùng là một chữ k có thêm dấu nhỏ bên dưới trông như dấu phẩy
  • Trang này còn có cả chứng chỉ TLS hợp lệ, nên chỉ nhìn thanh địa chỉ rất dễ nhầm là trang bình thường

Thông tin minh bạch quảng cáo và phản ứng của Google

  • Google Ad Transparency Center cho thấy quảng cáo này đã chạy từ thứ Bảy đến thứ Tư
  • Tổ chức chi trả cho quảng cáo được ghi là Digital Eagle
  • Trên trang minh bạch, Digital Eagle được hiển thị là nhà quảng cáo đã được Google xác minh danh tính
  • Một đại diện Google cho biết qua email sau khi bài báo được đăng rằng quảng cáo này đã bị gỡ theo chính sách của công ty

Phân tích từ Malwarebytes

  • Jérôme Segura, Giám đốc Threat Intelligence của Malwarebytes, tóm tắt rằng người dùng bị lừa qua hai bước
    • Đầu tiên là tin vào một quảng cáo Google trông hoàn toàn hợp pháp
    • Sau đó tiếp tục bị lừa bởi một tên miền tương tự trông như trang hợp pháp
  • Malwarebytes đã công khai vụ lừa đảo này trong bài đăng hôm thứ Tư
  • Sự kết hợp giữa quảng cáo Google và một trang web có URL nhìn gần như giống hệt tạo ra hiệu ứng giả mạo rất mạnh

Các trường hợp độc hại punycode trước đây

  • Các trò lừa đảo mã độc lợi dụng punycode đã tồn tại từ lâu
  • Cách đây 2 năm, kẻ lừa đảo từng dùng quảng cáo Google để dẫn người dùng tới một trang trông gần như giống brave.com
    • Trang đó phân phối phiên bản giả mạo độc hại của trình duyệt
  • Năm 2017, một nhà phát triển web application đã tạo một trang proof-of-concept trông như apple.com, khiến kỹ thuật punycode được chú ý rộng rãi

Cách người dùng có thể tự kiểm tra

  • Không có cách chắc chắn để phát hiện quảng cáo Google độc hại hoặc URL mã hóa bằng punycode
  • Khi nhập ķeepass[.]info trên 5 trình duyệt phổ biến, tất cả đều dẫn tới trang giả mạo
  • Nếu thấy đáng ngờ, người dùng có thể mở tab trình duyệt mới và tự nhập URL
  • Với URL dài, việc tự nhập không phải lúc nào cũng thực tế
  • Một cách khác là kiểm tra chứng chỉ TLS để xác nhận trang hiển thị trên thanh địa chỉ có khớp với chủ sở hữu chứng chỉ hay không

1 bình luận

 
GN⁺ 2023-10-20
Ý kiến trên Hacker News
  • Danh tính của Digital Eagle hẳn nhiên đã được Google xác minh. Cách xác minh danh tính của Google là thu tiền, và nếu trả tiền thì xem như đã được xác minh
    Đoạn “đại diện Google không phản hồi email ngay lập tức” cũng đáng nghi. Tôi không biết ở Google có người thật sự trả lời email hay không, và hơn 10 năm rồi tôi chưa từng thấy họ hồi âm. Ngay cả khi báo cáo phishing và spam, tôi cũng nghi ngờ liệu có gì thực sự được xử lý không
    Thành thật mà nói, đã đến lúc thế giới phải rời khỏi Google. Ít nhất hơn 2 năm qua, rất khó dùng nó như một công cụ tìm kiếm an toàn
    Sau khi khách hàng bị dẫn tới các trang phishing qua quảng cáo Google, tôi đã quyết định chặn các domain dưới đây trên mọi mạng do tôi quản lý
    googlesyndication.com
    googleadservices.com
    googletagservices.com
    googletagmanager.com
    google-analytics.com

    • Nói thẳng hơn, theo tôi khả năng tìm kiếm của Google đã đi xuống từ khoảng cuối thập niên 2000 đến đầu thập niên 2010. Trước đây nhập nguyên cả câu vẫn tìm được, còn giờ ngay cả tìm kiếm bằng dấu ngoặc kép cũng không hoạt động đúng
      Thế mạnh của Google đã bị bào mòn từng chút một trong nhiều năm. Windows cũng tương tự: marketing và quảng cáo đang phá hỏng một sản phẩm vốn cũng tạm ổn
    • Về câu “liệu ở Google có người thật sự trả lời email không?”, Google từ trước đến nay luôn tập trung vào những thứ có thể mở rộng quy mô. Con người trả lời điện thoại hay email thì không mở rộng quy mô được, nên họ không có hỗ trợ khách hàng hướng tới người dùng
      Lý do những quảng cáo như thế này lọt qua có vẻ cũng tương tự. Có lẽ phần lớn dựa vào báo cáo tập thể, và liên kết “báo cáo vấn đề” là một trong những cơ chế chính để lọc quảng cáo xấu. Nếu ngày càng nhiều quảng cáo lọt qua hơn, đó có thể là dấu hiệu cho thấy quá ít người bỏ thời gian báo cáo, khiến sự cân bằng của mô hình báo cáo tập thể bị phá vỡ
    • Năm 2007, tôi từng đăng một bài có thể nhận dạng cá nhân tôi lên một bảng thảo luận. Tôi đã xóa trên diễn đàn, nhưng nó vẫn còn trong phần tóm tắt kết quả tìm kiếm của Google. Khi tôi gửi email cho Google yêu cầu xóa, họ thực sự đã xóa và còn có người trả lời “done”
      Đúng là một thời đại khác
    • Tôi thường là người đi đầu trong việc chỉ trích Google, nhưng nếu báo cáo phishing cho Google nhiều thì ít nhất các trang phishing được Google lưu trữ cũng bị gỡ khá nhanh. Tôi chưa từng nhận được hồi âm và cho rằng tất cả đều tự động hóa, nhưng vẫn tốt hơn nhiều so với các nhà cung cấp hosting khác
      Khi báo cáo website độc hại cho namecheap, có trường hợp chúng vẫn sống trong nhiều tháng; họ cũng tệ, nhưng trong xử lý báo cáo lạm dụng còn có nhiều nơi tệ hơn nữa. Google vẫn có thể làm tốt hơn, nhưng thực tế là họ khá ổn
      Tuy nhiên, trường hợp này là thêm một lý do nữa để mọi người chặn quảng cáo. Chặn quảng cáo giúp tất cả an toàn hơn
    • Tôi tò mò không biết bạn đã từng gặp website nào ngừng hoạt động khi chặn như vậy chưa
  • Cần buộc bên trung gian quảng cáo chịu một phần trách nhiệm với quảng cáo lừa đảo, hoặc buộc quảng cáo phải được định danh thật nghiêm ngặt, hoặc cả hai. Tôi không thích việc áp đặt nghĩa vụ kiểu impressum của Đức lên các ấn phẩm nói chung, nhưng quảng cáo thì khác
    Vì quảng cáo chen vào các trang khác một cách hung hăng theo cách người dùng không kiểm soát được. Ngoài chặn toàn bộ quảng cáo ra thì không còn lựa chọn nào
    Khi bấm vào góc quảng cáo, người dùng phải xem được mã số công ty và địa chỉ kinh doanh của đơn vị chịu trách nhiệm. Các quảng cáo “nước ngoài” đến từ quốc gia khác cần được xác minh nghiêm ngặt hơn. Vì nếu là lừa đảo thì dù không ẩn danh, việc được bồi thường cũng khó hơn nhiều

  • Theo bài viết, ķeepass[.]info dù hiển thị như vậy trên thanh địa chỉ nhưng thực ra là dạng ký hiệu đã mã hóa đại diện cho xn--eepass-vbb[.]info, và đang phát tán mã độc FakeBat. Khi kết hợp quảng cáo Google với một website có URL gần như giống hệt, nó gần như trở thành một cú lừa hoàn hảo
    Năm 2017, Google Chrome 59 từng nói đã sửa tấn công phishing bằng Punycode. Ví dụ: https://www.engadget.com/2017-04-17-google-chrome-phishing-u...
    Có thể một tội phạm kiên trì đã phân tích mã nguồn Chromium kiểm tra Punycode và tìm ra kẽ hở cho phép dùng ķ thay cho k
    https://www.xn--80ak6aa92e.com/ --> trang giả “аррӏе.com” hiển thị cảnh báo phishing
    https://xn--eepass-vbb.info/ --> trang giả “ķeepass.info” không hiển thị cảnh báo

    • Trong quy tắc tên miền quốc tế hóa liên quan của Chrome [1], việc phát hiện “ký tự dễ nhầm lẫn giữa các hệ chữ hỗn hợp” và “ký tự dễ nhầm lẫn toàn bộ hệ chữ” có vẻ là trọng tâm
      ķ(U+0137) thuộc chữ Latin [2], nên có lẽ “ķeepass.info” sẽ không bị bắt bởi kiểm tra ký tự dễ nhầm lẫn giữa các hệ chữ hỗn hợp
      Trong danh sách glyph “ký tự dễ nhầm lẫn toàn bộ hệ chữ” [3] cũng không thấy ķ. Có nên đưa nó vào đây không? Trong phần chữ Hy Lạp của file đó có chú thích đại ý rằng “bỏ qua các biến thể như ά, έ, ή, ί”, nên có thể có quy tắc chung là các chữ có dấu không được xem là ký tự tương tự
      Nếu vậy thì cũng hiểu được phần nào. Chẳng hạn nếu tên miền có é bị hiển thị dưới dạng Punycode, người dùng Pháp chắc sẽ khá thất vọng
      [1] https://chromium.googlesource.com/chromium/src/+/main/docs/i...
      [2] https://www.compart.com/en/unicode/U+0137
      [3] https://source.chromium.org/chromium/chromium/src/+/main:com...
    • “Tấn công Punycode” đầu tiên dùng các ký tự như chữ Kirin, vốn không thể phân biệt hoàn toàn với chữ “thật”. Có lẽ người ta giả định rằng người dùng có thể nhận ra và tránh các chữ có dấu phụ, dù chúng khó phân biệt với bụi trên màn hình
      Rốt cuộc thì chắc cũng chẳng ai vào “göogle.com” đâu nhỉ?
  • Google vừa chiến đấu với trình chặn quảng cáo trên YouTube, vừa lại cho thấy hoàn toàn không thể tin họ đảm nhận trách nhiệm hiển thị quảng cáo an toàn
    Hơn nữa, họ còn hiển thị video chiến tranh dưới dạng quảng cáo cho trẻ nhỏ

    • Tôi vẫn liên tục báo cáo các quảng cáo không phù hợp, lừa đảo hoặc trắng trợn bất hợp pháp, nhưng thường sau 1–2 tuần chúng lại xuất hiện, hoặc thậm chí ngay từ đầu còn không bị gỡ
      Tôi đặc biệt thích mấy quảng cáo cục sạc ngu ngốc hứa “chống phân mảnh điện thoại bằng phép thuật” và quảng cáo súng lục Micro Ghost
    • Trong khi đó họ lại chặn các nhà báo dùng video chiến tranh không đúng ngữ cảnh
    • Một đứa trẻ bảy tuổi liên tục thấy quảng cáo bộ dụng cụ cạo râu có cả dao cạo. Tất nhiên Google hẳn biết bố nó có bộ râu rậm, nhưng bỏ chuyện đùa sang một bên, tôi không muốn đứa trẻ quan tâm đến lưỡi dao, nên đã chặn quảng cáo cho toàn bộ nhà
    • Muốn hiển thị quảng cáo an toàn thì nghĩa là phải có ai đó kiểm duyệt quảng cáo. Tòa nhà nơi Google bắt người ta xem quảng cáo YouTube có lẽ sẽ cần lưới kiểu Foxconn
  • Tôi nghĩ mình là người khá chú ý đến bảo mật, nhưng không biết liệu mình có nhận ra vụ này không. Đây là thêm một lý do để dùng uBO mà không phải hối tiếc

    • Khi nhìn ảnh chụp màn hình, điều duy nhất tôi nghĩ là “mình nên lau bớt bụi trên màn hình”. Nếu không có uBO thì 100% tôi đã bị lừa
    • uBlock Origin thì tốt, nhưng tôi không hiểu nó liên quan gì đến tấn công giả mạo tên miền quốc tế hóa. Trong môi trường của tôi, nó không chặn được cái này
    • uBO là gì?
  • “Công ty cho biết khi quảng cáo lừa đảo được báo cáo, họ sẽ lập tức gỡ bỏ nhanh nhất có thể”
    Nếu muốn trở thành một phần của giải pháp, họ đã xác minh quảng cáo trước khi công khai. Nhưng việc đó không mở rộng được, nên mọi người bị lừa, xã hội chịu thiệt hại, còn Google kiếm nhiều tiền đến mức không kham nổi. Một giao dịch khá công bằng chăng...?
    Như nhiều người đã nói, chặn quảng cáo trên Internet là một phần của việc sử dụng Internet lành mạnh và an toàn

    • Ranh giới đúng là khá tinh tế. Nếu Google bắt đầu kiểm duyệt quảng cáo trước và chặn cả một số quảng cáo phần nào chính đáng, rồi cũng sẽ lại có bài viết về chuyện đó
      Điều phối/kiểm duyệt là một vấn đề khó gỡ. Chúng ta muốn sự tiện lợi cho những thứ đúng đắn, và muốn chặn mạnh tay với bất cứ thứ gì hơi đáng ngờ. Kiểu gì cũng sẽ bỏ sót thứ này thứ kia
      Điểm mấu chốt ở đây là liệu đây có phải trường hợp ngoại lệ hay là một vấn đề nổi bật với nhiều trường hợp được phê duyệt kiểu này trong Google Ads, nhưng bài viết không đưa ra câu trả lời
    • “Công ty cho biết khi quảng cáo lừa đảo được báo cáo, họ sẽ lập tức gỡ bỏ nhanh nhất có thể”
      Một năm trước cũng từng có cùng vấn đề, và tiền tố tên miền trông cũng giống nhau
      https://www.bleepingcomputer.com/news/security/google-ad-for...
    • Họ không kiểm duyệt nội dung trừ khi được trả tiền hoặc vì mục đích tốt. Google Ads thì chẳng thuộc trường hợp nào
  • Nếu vì quy trình xác minh khách hàng mà tôi phải trải qua đủ thứ thủ tục, thì tôi cũng mong các công ty phải làm y như vậy trong những trường hợp khiến cuộc sống khó khăn kiểu này
    Tất cả đều như vậy: quảng cáo gây hiểu lầm, cuộc gọi spam, hàng giả trên những nơi như Amazon, cho tới email
    Mọi thứ có vẻ được thiết kế để mọi kẻ lừa đảo trên đời có thể tiếp cận tôi 100%, nhưng rốt cuộc lại không có cách nào để tiếp cận các công ty khiến những việc này thành khả thi

    • Bất cân xứng thông tin nằm dưới nền kinh tế lừa đảo thật sự khiến tôi tức giận
  • Đây là một chiêu khá khôn. Nếu thấy liên kết trong một ngữ cảnh không phải quảng cáo, có lẽ tôi cũng đã mắc bẫy
    Với các kiểu thay thế Unicode thông thường, tôi đã học cách nhận ra vì chữ trông dù chỉ hơi kỳ lạ một chút, nhưng trường hợp này thì khác. Dù có mũi tên chỉ vào, tôi vẫn không thấy dấu chấm dưới chữ k; với mắt tôi nó trông như một hạt bụi hay vết bẩn nhỏ trên màn hình
    Trên màn hình có nhiều thứ như vậy, và hệ thống thị giác thì rất giỏi bỏ qua các nhiễu như thế

    • Tôi cũng nghĩ mình sẽ bị lừa y hệt. Nhưng vì tôi dùng dark mode, nó hiện thành một chấm trắng trên nền đen nên không giống bụi trên màn hình. Nó hiện rất rõ
      Không phải bụi kiểu điểm ảnh đen chặn ánh sáng, mà là một điểm ảnh trắng phát sáng. Tôi chưa từng nghĩ dark mode là một biện pháp tăng cường bảo mật :)
    • Có rất nhiều ký tự cực kỳ khó phân biệt. Trình duyệt lẽ ra phải bắt được những thứ này, nhưng không phải lúc nào cũng làm được
  • Punycode ngay từ đầu đã có công dụng đáng ngờ. Đây chủ yếu là góc nhìn của người dùng bảng chữ cái Latin, nhưng nhiều trang web dùng hệ chữ phi Latin mà tôi xem trong 10 năm qua đều dùng tên miền ASCII thông thường
    Ngay cả trong tên người dùng trên các website cho phép Unicode, cũng có thể thấy phần lớn người dùng hệ chữ phi Latin vẫn dùng tên người dùng bằng bảng chữ cái Latin
    Trên thực tế, nơi Punycode được dùng gần như toàn là tên miền spam. Phần lớn tên miền ở khu vực dùng chữ Cyrillic hay châu Á cũng không dùng Punycode
    Tôi hiểu khái niệm Punycode và thấy nó ấn tượng về mặt kỹ thuật, nhưng trong tên miền nó đã trở thành một vấn đề phishing khổng lồ

    • Tôi hoàn toàn ủng hộ ngôn ngữ của từng quốc gia, và ASCII không phù hợp với một phần lớn nhân loại. Nhưng rõ ràng Unicode hiện nay không phù hợp với các ứng dụng nhạy cảm về bảo mật
      Ngay cả tôi, người dùng nhiều ngôn ngữ châu Âu, cũng cần chưa đến 10 ký tự Unicode, và thật ra từng ký tự đó vẫn là mã ISO 8859-15 8-bit. Dù nói là cần, đa số website thậm chí không đăng ký tên miền Punycode mà dùng một phiên bản ASCII làm méo mó tên gọi
      Như một biện pháp thực tế, trình duyệt nên hỏi người dùng có cho phép URL của một ngôn ngữ cụ thể hay không khi họ lần đầu nhập URL có ký tự không phải ASCII. Chỉ cho phép một hoặc hai ngôn ngữ cũng sẽ giảm đáng kể bề mặt tấn công với đa số người dùng
    • Một trong những vấn đề của tên miền ASCII là ánh xạ theo âm đọc của các ngôn ngữ CJK
      Ví dụ hiện asahi.com đã thuộc về 朝日 (báo Asahi), nên Asahi town (旭) không thể dùng. Tất nhiên có thể dùng kiểu asahi-town.co.jp, nhưng cũng có nhiều địa danh Asahi với cách viết khác nhau (旭日, 朝陽, 浅緋, v.v.)
      Yêu cầu tất cả các trường hợp này phải dùng một biến thể ASCII tùy ý là vô lý. Chỉ nói riêng địa danh Nhật đã đến mức này, chưa kể vấn đề trùng lặp trên toàn bộ khu vực dùng chữ Hán
      Việc các tên miền như vậy có thực sự được đăng ký hay không gần như là vấn đề con gà và quả trứng, và không có vẻ không gian xung đột nói trên sẽ được giải quyết gọn gàng trong bảng chữ cái ASCII
      Tên miền ASCII của phương Tây dễ bị lừa đảo là vấn đề, nhưng cũng không thể vì diệt rệp mà đốt cả nhà
    • Tôi sống ở một quốc gia không nói tiếng Anh, và về mặt kỹ thuật thì có tên miền không phải ASCII nhưng rất hiếm. Tuyệt đại đa số website dùng chữ Latin
      Tuy nhiên, với các tên miền cấp cao nhất chuyên biệt như .рф, tôi không cho rằng bản thân Punycode là vấn đề. Ví dụ dạng кремль.рф thì tôi thấy ổn
    • Nhiều người có thể muốn đăng ký tên của mình, tên thành phố, v.v. Những thứ này đều có vẻ là các trường hợp sử dụng hợp lệ
      Có thể nói mọi thứ vượt ngoài ASCII đều đáng ngờ, nhưng những người không dùng tiếng Anh làm tiếng mẹ đẻ sẽ luôn phản đối
    • Có thể là ý kiến không được ưa chuộng, nhưng cố nhồi toàn bộ Unicode vào tên miền là một ý tưởng tệ. Đáng lẽ nên giữ ở ASCII [A-Za-z0-9-] không phân biệt chữ hoa/thường
  • Một cách để giảm quảng cáo độc hại là minh bạch. Mỗi quảng cáo phải bao gồm thông tin liên hệ pháp lý của nhà quảng cáo, tức tên công ty và quốc gia
    Điều này sẽ không giải quyết triệt để vấn đề, nhưng người tiêu dùng có thể tránh quảng cáo của các công ty Đông Âu đáng ngờ. Các nhà nghiên cứu bảo mật cũng dễ lần theo tác nhân độc hại hơn, và Google với tư cách nền tảng quảng cáo cũng sẽ có phần trách nhiệm
    Facebook đã làm vậy với quảng cáo chính trị, nên việc này là khả thi

    • Làm vậy thì doanh thu của Google và Facebook sẽ giảm
      Trừ khi chính phủ bắt buộc hoặc rủi ro trách nhiệm pháp lý trở nên quá lớn, họ sẽ không tự nguyện làm đâu
    • Tại sao Đông Âu lại đáng ngờ?
      Như vậy có hơi bài ngoại không?
    • Chỉ cần có cơ sở dữ liệu chứng chỉ SSL[0] của tất cả website, rồi so sánh với website đang truy cập hoặc website đã mua vị trí quảng cáo là được
      [0] https://www.cloudflare.com/learning/ssl/what-is-an-ssl-certi...
    • Nếu được như vậy thì thật sự tốt