Một nhóm nghiên cứu bảo mật đã tìm ra cách chiếm đoạt bất kỳ tài khoản ChatGPT nào chỉ bằng cách yêu cầu nạn nhân mở một liên kết trò chuyện được chia sẻ, theo một tiết lộ kỹ thuật được Parameter Labs công bố vào ngày 28 tháng 10. Công ty đã báo cáo rằng OpenAI đã sửa lỗ hổng này vào ngày 26 tháng 10 và phân loại báo cáo là P1, xếp hạng mức độ nghiêm trọng cao nhất.

Phát hiện này là một vụ chiếm đoạt tài khoản đầu cuối hiếm hoi chống lại nền tảng AI chính thống và nó xảy ra khi sự phát triển AI mới nhất tiếp tục cho thấy mọi người hiện lưu giữ bao nhiêu tài liệu nhạy cảm trong các ứng dụng trò chuyện. Parameter Labs cho biết cuộc tấn công không yêu cầu cài đặt ứng dụng, không cần công cụ dành cho nhà phát triển và không cần tương tác ngoài việc mở URL ChatGPT được chia sẻ của kẻ tấn công.

Chuỗi tấn công hoạt động như thế nào

Chuỗi đã lạm dụng hai tính năng ChatGPT thông thường trông có vẻ vô hại khi tách biệt: biểu đồ tương tác và hộp cát Xem trước HTML. Tính năng Xem trước của ChatGPT chạy HTML được tạo trong một khung bị hạn chế trên một địa chỉ web riêng biệt, điều này sẽ ngăn nó chạm vào trang chatgpt.com đã đăng nhập xung quanh nó.

Bước đột phá đến từ biểu đồ tải thư viện toán học có tên MathLive. Thư viện đó đã cài đặt trình nghe tin nhắn trong trang ChatGPT chính cho bàn phím ảo, nhưng Parameter Labs nhận thấy trình nghe đã chấp nhận tin nhắn từ bất kỳ nguồn nào mà không xác minh người gửi. Một loại thông báo được chấp nhận có thể thay thế bố cục bàn phím ảo bằng HTML do kẻ tấn công kiểm soát, sau đó MathLive sẽ chèn vào trang ChatGPT thực thông qua InnerHTML.

Các tập lệnh được chèn theo cách đó thường không thực thi, vì vậy các nhà nghiên cứu đã gói tải trọng của chúng vào iframe bằng thuộc tính srcdoc. Vì trang ChatGPT chính đã tạo khung đó mà không có hộp cát nên trình duyệt coi mã bên trong khung đó là nội dung chatgpt.com chính hãng có quyền truy cập vào trang mẹ.

Thoát khỏi Chính sách bảo mật nội dung

Chính sách bảo mật nội dung của ChatGPT vẫn chặn các tập lệnh nội tuyến, nhưng Parameter Labs đã tìm thấy một lỗ hổng: chính sách này cho phép các tập lệnh từ YouTube. Các nhà nghiên cứu phát hiện ra rằng điểm cuối oEmbed của YouTube phản ánh tham số gọi lại JSONP không hợp lệ vào phản hồi lỗi trước khi xác thực, cho phép họ thêm JavaScript thực thi vào phản hồi mà trình duyệt sẽ vui vẻ tải dưới dạng tập lệnh.

Vào thời điểm đó, nhóm đã chạy JavaScript tùy ý với danh tính của chatgpt.com trong phiên đăng nhập của nạn nhân. Parameter Labs đã nêu rõ ý nghĩa của điều đó trong thực tế: tải trọng không bị giới hạn ở việc sửa đổi trang hoặc hiển thị cảnh báo — nó có thể gọi trực tiếp các API được xác thực của ChatGPT là nạn nhân. Trong quá trình thử nghiệm, phần tải trọng có thể liệt kê danh sách cuộc trò chuyện của nạn nhân, truy xuất nội dung của các cuộc trò chuyện riêng tư chưa bao giờ được chia sẻ với kẻ tấn công và gửi dữ liệu đó đến máy chủ bên ngoài. Trình duyệt xác định mọi hành động đều đến từ chính chatgpt.com, không đưa ra tín hiệu rõ ràng nào cho nạn nhân rằng có điều gì đó không ổn.

Một liên kết là đủ

Điều đã biến lỗi nghiên cứu thành vũ khí thực tế chính là khả năng phân phối. Các nhà nghiên cứu đã đưa biểu đồ và khối HTML có thể xem trước vào một cuộc trò chuyện thông thường, xuất bản nó bằng tính năng chia sẻ thông thường của ChatGPT và gửi liên kết /share/ kết quả theo cùng các tuyến đường mà bất kỳ ai cũng sẽ sử dụng: email, trò chuyện, phiếu hỗ trợ hoặc bài đăng trên mạng xã hội.

Ở cách sao chép ổn định nhất, nạn nhân phải nhấp vào nút Xem trước của ChatGPT một lần sau khi mở liên kết. Phiên bản mới hơn đánh dấu khối HTML là có thể xem trước, vì vậy ChatGPT đã tự động mở nó và hành động bắt buộc duy nhất của nạn nhân là truy cập URL. Nhóm đã tái tạo đường dẫn hoàn toàn tự động đó ba lần trong một tài khoản riêng biệt, kể cả sau khi làm mới cứng, với tải trọng kích hoạt khoảng 4,5 giây sau khi trang được tải.

Vì biểu đồ và bản xem trước được tải độc lập nên tải trọng đôi khi có thể kích hoạt trước khi MathLive sẵn sàng. Phiên bản cuối cùng đã thử lại các tin nhắn của nó trong một khoảng thời gian giới hạn để xử lý tình trạng dồn đuổi đó.

Tiết lộ và khắc phục

Parameter Labs đã báo cáo vấn đề này với OpenAI, tổ chức này đã đưa ra bản sửa lỗi vào ngày 26 tháng 10 và xếp hạng báo cáo là P1. Tiết lộ này được đưa ra trong bối cảnh nghiên cứu bảo mật nền tảng AI đang diễn ra rộng rãi hơn; đầu tuần này The Register đã báo cáo lỗi trong năm công cụ dành cho nhà phát triển AI, một số vẫn chưa được vá khi xuất bản.

Bài học khái quát ngoài một thư viện. Các ứng dụng trò chuyện hiện đại bao gồm các thành phần của bên thứ ba, bản xem trước trong hộp cát và các kênh tin nhắn cho phép trong một trang được xác thực duy nhất và bất kỳ người nhận postMessage nào chưa được xác minh đều có thể trở thành cầu nối giữa chúng. Đối với người dùng, hướng dẫn thực tế không thay đổi so với bảo mật web cổ điển: xử lý các liên kết đến các cuộc hội thoại AI được chia sẻ theo cách bạn xử lý bất kỳ liên kết không được yêu cầu nào khác vì nền tảng không còn có thể hứa rằng việc mở một liên kết là vô hại.

Về phần mình, phân loại P1 và khả năng xử lý nhanh của OpenAI cho thấy công ty coi các cuộc tấn công phiên dựa trên trình duyệt trên chatgpt.com là mối đe dọa cấp một. Vụ việc cũng là một lời nhắc nhở về mức độ tập trung giá trị trong các tài khoản này khi người dùng lưu trữ tài liệu công việc, câu hỏi y tế và dự án riêng tư trong lịch sử trò chuyện - chính xác là nội dung mà Parameter Labs đã chứng minh rằng kẻ tấn công có thể đã trích xuất.

---

Đi trước AI

Nhận tin tức, phân tích và đột phá mới nhất về AI — tất cả ở cùng một nơi.

Đọc thêm tin tức về AI →