2 điểm bởi GN⁺ 2024-04-05 | 1 bình luận | Chia sẻ qua WhatsApp

Thư Kobold

  • Những người phải xử lý email HTML về mặt kỹ thuật hẳn đã có lúc muốn nghỉ việc hoặc muốn đốt sạch mọi trình khách email vì cách triển khai không nhất quán giữa các client.
  • Email HTML không chỉ đơn thuần gây bực bội mà còn có thể trở thành một rủi ro bảo mật nghiêm trọng.
  • Hãy tưởng tượng sếp chuyển tiếp một email yêu cầu chuyển một khoản tiền lớn; vì bạn từng nghe về các vụ lừa đảo giả mạo CEO nên bạn sẽ kiểm tra xem email đó có thật sự đến từ sếp hay không.
  • Email đúng là từ sếp, và nếu công ty làm như vậy thì thậm chí nó còn có thể được ký mã hóa.
  • Nhưng bạn vẫn chưa hoàn toàn chắc chắn, nên gọi điện cho sếp để xác minh tính xác thực của email.
  • Khi sếp xác nhận, bạn chuyển tiền.
  • Nhưng nếu đây không phải là một vụ lừa đảo thì bài viết này đã kết thúc ở đây rồi.

Thunderbird

  • Vấn đề này đã được báo cáo cho Mozilla vào ngày 5 tháng 3 năm 2024, và ngày phát hành dự kiến cùng bản nháp của phần tiếp theo đã được gửi cho Mozilla vào ngày 20 tháng 3 năm 2024.
  • Các biện pháp giảm thiểu khả thi đã được thảo luận, nhưng dự kiến chỉ được triển khai sau này.
  • Việc khai thác điều này trên Thunderbird rất đơn giản. Thunderbird bọc email trong `

` và ngoài ra không thay đổi gì.

  • Khi chuyển tiếp email, email được trích dẫn sẽ được bọc trong một `

` khác và bị đẩy xuống một cấp trong DOM.

  • Xét đến điều đó, ta có đoạn proof of concept sau:

      .kobold-letter {
        display: none;
      }
      .moz-text-html>div>.kobold-letter {
        display: block !important;
      }

    This text is always visible.

    This text will only appear after forwarding.

  • Email chứa văn bản luôn hiển thị và văn bản bị ẩn bằng display: none;.
  • Khi email được chuyển tiếp, đoạn văn bản ẩn đột nhiên chỉ hiện ra với người nhận mới.

Outlook Web

  • Vấn đề này đã được báo cáo cho Microsoft vào ngày 5 tháng 3 năm 2024, và ngày phát hành dự kiến cùng bản nháp của phần tiếp theo đã được gửi cho Microsoft vào ngày 20 tháng 3 năm 2024.
  • Vào ngày 26 tháng 3 năm 2024, Microsoft quyết định không thực hiện hành động ngay lập tức và đóng báo cáo.
  • Trong Outlook Web (OWA), tình hình phức tạp hơn một chút. Email được bọc trong `

`, nhưng tên class chính xác có thể thay đổi.

  • Để CSS của email không ảnh hưởng đến style của webmailer, Outlook thêm tiền tố x_ vào mọi id và class trong email rồi điều chỉnh CSS.
  • Xét đến điều đó, ta có đoạn proof of concept sau:

      .kobold-letter {
        display: none;
      }
      body>div>.kobold-letter {
        display: block !important;
      }

    This text is always visible.

    This text will only appear after forwarding.

  • Khi hiển thị email trong OWA, CSS sẽ trông như sau:

  • Sau khi email được chuyển tiếp, thư Kobold lại được bọc trong một `` khác và CSS lại được cập nhật.

Gmail

  • Vấn đề này đã được báo cáo cho Google vào ngày 5 tháng 3 năm 2024, và ngày phát hành dự kiến cùng bản nháp của phần tiếp theo đã được gửi cho Google vào ngày 20 tháng 3 năm 2024.
  • Về mặt kỹ thuật, Gmail không dễ bị tấn công bởi thư Kobold vì nó loại bỏ toàn bộ style khi email được chuyển tiếp.
  • Khi chuyển tiếp email, trước khi CSS bị xóa, thư Kobold bị ẩn bằng CSS sẽ tự động xuất hiện.

Nghiên cứu trước đây

  • Khả năng này không phải điều đáng ngạc nhiên hay mới mẻ.
  • Các vấn đề tương tự đã từng được báo cáo trong quá khứ.

Triển vọng

  • Người dùng có thể giảm thiểu thư Kobold bằng cách tắt hoàn toàn email HTML hoặc xem ở chế độ hạn chế.
  • Đối với các trình khách email, việc triển khai biện pháp giảm thiểu là khó khăn. Ngăn việc sử dụng `` có thể giải quyết vấn đề, nhưng cũng có thể phá vỡ nhiều giải pháp đã tồn tại trong hệ sinh thái email.
  • Đáng tiếc là không thực tế khi kỳ vọng các trình khách email sẽ triển khai biện pháp giảm thiểu vững chắc trong tương lai gần.

Ý kiến của GN⁺

  • Bài viết này cho thấy các lỗ hổng của email HTML, đặc biệt giải thích về cuộc tấn công 'thư Kobold', nơi nội dung có thể thay đổi khi email được chuyển tiếp. Đây là thông tin quan trọng giúp nâng cao nhận thức bảo mật cho người dùng email.
  • Bài viết cho thấy lỗ hổng bảo mật có thể phát sinh tùy theo cách các trình khách email xử lý CSS, đồng thời kêu gọi cả người dùng lẫn nhà phát triển chú ý hơn đến bảo mật.
  • Kiểu tấn công này đặc biệt nguy hiểm vì nó trông như đến từ một nguồn mà người dùng tin tưởng. Điều này nhấn mạnh sự cần thiết phải luôn cảnh giác trong giao tiếp qua email.
  • Ở góc độ kỹ thuật, các nhà phát triển trình khách email cần cải thiện cách xử lý CSS để ngăn chặn các cuộc tấn công như vậy. Tuy nhiên, điều này có thể gây ra vấn đề tương thích với thiết kế email hiện có, nên điều quan trọng là phải tìm được sự cân bằng phù hợp.
  • Bài viết này không nói về công nghệ mới hay mã nguồn mở, nhưng đưa ra những điểm cần cân nhắc khi áp dụng các công nghệ liên quan đến bảo mật email. Các nhà phát triển trình khách email cần tìm cách tăng cường bảo mật cho người dùng mà vẫn duy trì được tính khả dụng.

1 bình luận

 
GN⁺ 2024-04-05
Ý kiến Hacker News
  • “However, you are still not convinced, so you call your manager to ensure that the email is legit. He confirms, so you transfer the money.”

    • Bình luận này nhấn mạnh rằng khi nảy sinh nghi ngờ về một yêu cầu chuyển tiền qua email, không nên chỉ hỏi đơn giản là “anh có gửi email này không” mà cần hỏi cụ thể hơn, chẳng hạn như “anh thực sự muốn tôi chuyển khoản số tiền này theo cách này chứ”. Ý kiến này cho rằng kiểu trao đổi như vậy sẽ làm tăng khả năng cuộc tấn công thất bại. Bình luận cũng chỉ ra rằng để kịch bản tấn công được mô tả trong bài viết thành công thì cần một tình huống rất cụ thể và hẹp, đồng thời bày tỏ hoài nghi về khả năng một cuộc tấn công phức tạp như vậy thực sự thành công.
  • The other day I was discussing the design for an "update" email that our designer was putting together...

    • Bình luận này chia sẻ một trải nghiệm về thiết kế email. Người viết chỉ ra vấn đề là phần đầu đồ họa của email do nhà thiết kế tạo ra khiến phải cuộn xuống mới thấy được tiêu đề, và bày tỏ sự ngạc nhiên về việc khi email được chuyển tiếp thì phiên bản di động lại biến thành phiên bản desktop. Bình luận cũng phê phán việc dùng CSS trong email là không cần thiết, đồng thời thể hiện sự không hài lòng với thực trạng hiện nay khi chưa có một dạng đánh dấu văn bản đơn giản như Markdown được áp dụng.
  • I long argued that we should use markdown (without the inline HTML) or a similar simple text markup...

    • Bình luận này cho rằng nên dùng Markdown hoặc một kiểu đánh dấu văn bản đơn giản tương tự thay cho HTML trong email. Theo đó, ứng dụng email sẽ dễ quyết định hơn việc hiển thị dưới dạng rich text hay plain text, đồng thời vẫn hỗ trợ phần lớn định dạng mà người dùng cần. Bình luận cũng nêu quan điểm rằng HTML nâng cao dùng trong email marketing không thực sự quan trọng.
  • The real risk to your organisation is that the developer you assign to generate HTML emails will go mad...

    • Bình luận này đùa rằng rủi ro thực sự với tổ chức là lập trình viên được giao tạo email HTML sẽ phát điên vì sự khác biệt trong cách Outlook render, đồng thời nhận xét rằng kiểu tấn công qua email này khá thú vị.
  • Wouldn’t this be fixable by not allowing Stylesheets but only inline style attributes on the tags?

    • Bình luận này đề xuất liệu có thể giải quyết vấn đề bằng cách không cho phép stylesheet mà chỉ cho dùng thuộc tính style nội tuyến trên các thẻ hay không. Người viết cho rằng khả năng sử dụng có thể được cải thiện nếu ứng dụng email có thêm bước tự động chuyển stylesheet thành inline style.
  • HTML in email shouldn't be as big of a nightmare as it is.

    • Bình luận này cho rằng HTML trong email không nên là một cơn ác mộng lớn như hiện nay. Người viết lập luận rằng vấn đề có thể được giải quyết khá dễ nếu mọi ứng dụng email kiểm tra text so với HTML, và nếu là HTML thì chuyển sang engine render của WebKit. Người viết cũng thắc mắc liệu đã từng có tiêu chuẩn nào như vậy được đề xuất hay chưa.
  • Some possible mitigations from the top of my head (maybe ineffective):

    • Bình luận này đưa ra một vài cách có thể giảm thiểu tấn công qua email. Ví dụ như cảnh báo về các phần tử bị ẩn, hoặc khi chuyển tiếp thì tính toán giao diện của thông điệp và nếu thay đổi quá nhiều thì yêu cầu xác nhận.
  • When efail came out, I wrote a blogpost about the security risks of HTML mail.

    • Bình luận này nhắc rằng người viết từng đăng một bài blog về rủi ro bảo mật của email HTML khi efail xuất hiện. Bình luận chỉ ra rằng đặc tả email HTML đã cũ, hầu như không có cân nhắc bảo mật, và email HTML an toàn đáng ra phải là một tập con của HTML, nhưng dường như không ai định nghĩa rõ tập con đó là gì, nên các lỗ hổng bảo mật cứ liên tục xuất hiện.
  • This is really clever!

    • Bình luận này khen rằng việc dùng CSS trong email HTML để chỉ làm lộ một đoạn văn bản nhất định sau khi thư được chuyển tiếp là rất khéo léo. Người viết cho rằng điều này có thể trở thành mối đe dọa lớn đối với độ tin cậy của email đã được xác minh. Bình luận cũng bày tỏ thắc mắc về việc các ứng dụng email bao bọc nội dung email bằng các thẻ HTML bổ sung và sửa đổi CSS cũng như tên lớp. Ngoài ra, người viết đặt câu hỏi vì sao các ứng dụng email không dùng iframe sandbox để render email HTML.