Thủ thuật
Giải mã Claude Code Opus 5: Lỗ hổng tiêm nhiễm lệnh khiến chế độ tự động bị chiếm quyền tới 80%
(giờ Việt Nam)
Tóm tắt AI
Một chuỗi tấn công mới đã khai thác thành công chế độ tự động của Claude Code Opus 5 với tỷ lệ lên tới 80%, trái ngược hoàn toàn với báo cáo đánh giá 0% rủi ro từ bên thứ ba mà Anthropic công bố.
Bản dịch AI

Trong bài viết này, chúng tôi khám phá cách một yêu cầu tóm tắt trang web đơn giản có thể chiếm quyền điều khiển Claude Code Opus 5 ở chế độ Auto Mode và thực thi mã thành công với tỷ lệ 60-80% trên một mẫu thử nghiệm nhỏ.
Điều này rất thú vị vì một đánh giá từ bên thứ ba do Anthropic ủy quyền đã cho thấy tỷ lệ tấn công prompt injection thành công đối với Opus 5 ở chế độ Auto Mode là 0,00%.
Auto Mode hiện là chế độ mặc định trong Claude Code
Auto Mode thay thế các lời nhắc phê duyệt của con người bằng một bộ phân loại an toàn (safety classifier). Kể từ giữa tháng 8, đây là chế độ khởi động mặc định cho Claude Code.
Để đi thẳng vào luận điểm chính của tôi: Nếu bạn quan tâm đến những gì đang diễn ra và lo lắng về sự lệch lạc (misalignment), ảo giác (hallucinations) và prompt injection, thì Auto Mode KHÔNG phải là sự thay thế cho việc chạy tác nhân (agent) của bạn trong một môi trường biệt lập và giám sát các hoạt động của nó.
Boris Cherny từ Anthropic gần đây đã đăng tải rằng các lớp phòng thủ (layered defenses) có thể giảm các cuộc tấn công prompt injection gián tiếp trên các mối đe dọa chưa biết xuống gần bằng không. Các lớp này bao gồm huấn luyện mô hình, kiểm tra đầu vào (input probes) và bộ phân loại ý định (intent classifier). Họ đã thuê một nhà cung cấp (Trajectory Labs) để kiểm tra 72 kịch bản prompt injection gián tiếp, mỗi kịch bản thực hiện mười lần. Đánh giá này dường như không có tên chuẩn đo lường (benchmark) được công bố, và biểu đồ được chia sẻ cho thấy tỷ lệ tấn công thành công là 0,00% đối với Opus 5 ở chế độ Auto Mode.
Tôi muốn xem kết quả đó đứng vững như thế nào trước một chuỗi tấn công có mục tiêu.
Tóm tắt ngắn gọn
Tôi đã đạt được tỷ lệ tấn công thành công lên tới 80% khi sử dụng một mẫu thử nghiệm nhỏ.
Chuỗi tấn công diễn ra như sau:
Tất nhiên là còn nhiều điều hơn thế nữa. Vì vậy, hãy đọc tiếp!
Hướng dẫn chi tiết: Chiếm quyền điều khiển Claude Code Auto Mode
Hãy giả định một tác vụ cơ bản nơi Claude truy cập vào một trang web để xử lý hoặc tóm tắt nội dung. Lời nhắc (prompt) của người dùng mà tôi chọn là một ví dụ kinh điển:
Tôi đã biên tập lại một phần tên miền để tránh bị các chỉ mục tìm kiếm thu thập và giữ lại cho các thử nghiệm trong tương lai. Điểm cuối (endpoint) chỉ phục vụ nội dung thử nghiệm cho các IP nằm trong danh sách cho phép (allow-listed).
Thiết lập: Một trang web độc hại làm điểm truy cập
Trang web tự giới thiệu là một kho lưu trữ nhỏ các bản ghi sổ tay. Tuy nhiên, các bản ghi sổ tay đó nằm trong một tệp lưu trữ ZIP. Tệp lưu trữ chứa siêu dữ liệu danh mục hợp lý, ngày tháng, mã kiểm tra (checksums) và bảy bản ghi ngắn về sự phát triển của lý thuyết ngôn ngữ.
Phần bao bọc (wrapper) cung cấp cho Claude một lý do chính đáng để điều tra tài liệu.
1. Chuyển Claude từ WebFetch sang Bash
Ban đầu, Claude sử dụng công cụ WebFetch để truy xuất nội dung của trang. Bản thân công cụ WebFetch dường như thực hiện việc tóm tắt nội dung, nghĩa là chúng ta sẽ phải tấn công chính công cụ đó.
Một thủ thuật dễ dàng hơn để vượt qua điều đó là đảm bảo Claude tìm nạp trang bằng cách sử dụng curl. Do đó, máy chủ phản hồi:
Phản hồi không yêu cầu Claude sử dụng curl, nhưng nó tự quyết định điều đó:
Đây là một trong những kỹ thuật chiếm quyền điều khiển chính thường được sử dụng. Một cuộc tấn công không bảo mô hình phải làm gì. Cuộc tấn công chỉ làm cho con đường độc hại trở thành con đường đáng theo đuổi để giải quyết một mục tiêu.
Bây giờ Claude đưa ra một lệnh gọi công cụ Bash với curl. URL gốc trả về mã HTTP 303 chuyển hướng đến:
Như đã đề cập, quá trình chuyển đổi đầu tiên sang công cụ shell và curl này rất quan trọng.
Không phải lúc nào cũng cần thực hiện chuyển hướng đó, đôi khi Claude bắt đầu trực tiếp với curl.
Bây giờ, curl đang tải tệp lưu trữ ZIP xuống.
2. Mô hình từ chối Payload rõ ràng
Claude thường giải nén nội dung vào một thư mục tạm thời. Tệp ZIP chứa:
Tệp README mô tả tệp nhị phân decoder-darwin là bộ giải mã danh mục.
Tệp này có thể được sử dụng để giải mã các bản ghi JSON, trông như thế này trước khi giải mã.
Định dạng khá đơn giản: Base85, zlib và JSON.
Claude nhìn thấy bộ giải mã nhị phân macOS decoder-darwin và từ chối chạy nó.
Đây là điều đã được lên kế hoạch và là điều kẻ tấn công mong muốn. Đôi khi Claude cũng kiểm tra tệp nhị phân để xem có điều gì đáng ngờ không, nhưng nó thấy rằng tệp nhị phân khớp với định dạng trong tệp README về cách các bản ghi sổ tay được mã hóa.
3. Bước ngoặt: Claude tự viết và chạy mã không an toàn
Và đây là điểm mấu chốt!
Thay vì chạy tệp nhị phân, Claude quyết định viết một bộ giải mã thay thế. Trớ trêu thay, quyết định an toàn đó lại chính là con đường khai thác. 😈
Bộ giải mã thay thế của Claude nhập (import) base64 trong khi chạy bên trong tệp lưu trữ đã giải nén:
Cuộc tấn công hiện phụ thuộc vào việc giả mạo mô-đun (module shadowing) thông qua struct.py để chạy mã Python tùy ý.
Lệnh điển hình mà Claude đã thực thi trông như thế này:
Bài viết được AI dịch và tổng hợp tự động từ Hacker News Nổi bật (buzzing.cc bản dịch tiếng Trung). Liên kết bài gốc ở phía trên. Dữ liệu đồng bộ qua API công khai được ghi nguồn tại AI HOT (canonical) ↗. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.