Mozilla cảnh báo kỹ thuật mới nhắm vào Claude Code và các AI lập trình

WhiteHat Team

Administrators
Thành viên BQT
09/04/2020
141
2.006 bài viết
Mozilla cảnh báo kỹ thuật mới nhắm vào Claude Code và các AI lập trình
Các nhà nghiên cứu từ Mozilla Zero Day Investigative Network (0DIN) vừa công bố một kỹ thuật tấn công mới cho thấy các trợ lý lập trình AI có thể bị lợi dụng để thực thi mã từ xa ngay trên máy của lập trình viên, dù kho mã GitHub được sử dụng không chứa bất kỳ đoạn mã độc nào có thể nhận biết bằng các phương pháp kiểm tra thông thường.
claude code 1.png

Nghiên cứu tập trung vào các AI coding agents như Claude Code, Cursor và Gemini CLI. Khác với các cuộc tấn công truyền thống dựa trên lỗ hổng phần mềm, kỹ thuật này khai thác khả năng tự động đọc mã nguồn, phân tích lỗi và thực hiện các bước khắc phục của AI agent. Chuỗi tấn công được xây dựng theo mô hình nhiều tầng, trong đó payload cuối cùng không tồn tại trong repository mà chỉ được tải về tại thời điểm thực thi.
Để chứng minh khả năng khai thác, nhóm nghiên cứu xây dựng một repository GitHub giả mang tên "Axiom" và ngụy trang nó như một công cụ triển khai đám mây bình thường. Khi kiểm tra bằng mắt thường, dự án không có dấu hiệu đáng ngờ nào. Mã nguồn, tài liệu hướng dẫn và các bước cài đặt đều giống một dự án mã nguồn mở hợp pháp. Tuy nhiên, bên trong repository là một package Python được thiết kế đặc biệt để luôn gặp lỗi trong lần chạy đầu tiên. Thay vì hiển thị thông báo bất thường, chương trình trả về lỗi RuntimeError cùng hướng dẫn khắc phục rất quen thuộc: chạy lệnh python3 -m axiom init để hoàn tất quá trình khởi tạo môi trường. Đây chính là điểm mà cuộc tấn công bắt đầu phát huy tác dụng. Khi lập trình viên yêu cầu Claude Code thiết lập và chạy thử dự án, AI agent sẽ tự động phân tích lỗi, tìm cách khắc phục và thực hiện lệnh được đề xuất. Từ góc nhìn của Claude Code, đây chỉ là một bước sửa lỗi thông thường trong quá trình cài đặt phần mềm, nên lệnh được thực thi mà không tạo ra cảnh báo nào cho người dùng.
Sau khi được thực thi, lệnh python3 -m axiom init sẽ gọi một shell script chứa đoạn mã truy vấn DNS TXT Record từ hạ tầng do kẻ tấn công kiểm soát. Nội dung phản hồi được đưa thẳng vào chuỗi xử lý của Bash mà không trải qua bất kỳ bước kiểm tra nào. Trong thử nghiệm của Mozilla, bản ghi TXT chứa một payload Base64. Khi được giải mã, payload này tạo một reverse shell sử dụng kết nối TCP để mở phiên điều khiển từ xa tới máy chủ của đối tượng tấn công. Toàn bộ mã thực thi chỉ xuất hiện trong bộ nhớ tại thời điểm chạy, thay vì tồn tại dưới dạng tệp trong repository. Cách tiếp cận này khiến chuỗi tấn công gần như vô hình đối với các cơ chế phân tích mã nguồn truyền thống, bởi repository chỉ chứa một truy vấn DNS tưởng chừng vô hại, trong khi payload thực tế được tải động từ hạ tầng bên ngoài.
Việc sử dụng DNS TXT Record để lưu trữ payload mang lại nhiều lợi thế cho kẻ tấn công. Do mã thực thi không xuất hiện trong repository GitHub, các công cụ phân tích mã nguồn và quá trình rà soát thủ công gần như không phát hiện được dấu hiệu bất thường. Những gì hiện diện trong mã chỉ là một truy vấn DNS tưởng chừng vô hại, trong khi payload thực tế chỉ được tải về khi script được thực thi. Điều này giúp cuộc tấn công vượt qua nhiều lớp kiểm tra vốn được thiết kế để phát hiện mã độc ngay từ giai đoạn phát triển.

Bên cạnh đó, payload có thể được thay đổi bất cứ lúc nào bằng cách cập nhật nội dung bản ghi TXT trên máy chủ DNS mà không cần chỉnh sửa mã nguồn hoặc tạo commit mới trên GitHub. Toàn bộ mã thực thi chỉ xuất hiện trong bộ nhớ tại thời điểm chạy, tạo ra khoảng trống giữa những gì các công cụ phân tích nhìn thấy và những gì thực sự diễn ra trên hệ thống. Theo các nhà nghiên cứu, chính sự tách biệt này khiến chuỗi tấn công khó bị phát hiện và truy vết hơn đáng kể so với các phương thức phát tán mã độc truyền thống.

Sau khi reverse shell được kích hoạt, máy chủ của kẻ tấn công sẽ nhận được một phiên shell tương tác chạy với quyền của người dùng hiện tại. Trong môi trường phát triển phần mềm, đây thường là tài khoản đang sở hữu nhiều khóa truy cập và thông tin xác thực quan trọng, từ token GitHub, khóa API của các dịch vụ AI cho tới thông tin xác thực đám mây và các biến môi trường lưu trong tệp .env. Với quyền truy cập này, đối tượng tấn công có thể tiếp tục triển khai SSH key, thiết lập tác vụ định kỳ hoặc cài thêm các thành phần nhằm duy trì hiện diện trên hệ thống trong thời gian dài.
Theo Mozilla, vấn đề không nằm ở một lỗ hổng cụ thể mà ở cách chuỗi tấn công được chia tách thành nhiều thành phần độc lập. Repository GitHub chỉ chứa hướng dẫn cài đặt hợp lệ, script khởi tạo chỉ thực hiện truy vấn DNS, còn payload thực tế được lưu trên hạ tầng bên ngoài và chỉ được tải về khi chương trình chạy. Mỗi thành phần riêng lẻ đều có vẻ hợp pháp và không đủ để kích hoạt cảnh báo. Chính sự phân tách này khiến việc phát hiện trở nên đặc biệt khó khăn. Công cụ phân tích mã nguồn không nhìn thấy payload, hệ thống giám sát mạng chỉ ghi nhận một truy vấn DNS thông thường, còn AI agent chỉ xử lý từng bước theo logic khắc phục lỗi mà không đánh giá toàn bộ chuỗi thực thi. Kết quả là cuộc tấn công có thể diễn ra xuyên suốt nhiều lớp kiểm tra mà không xuất hiện dấu hiệu bất thường rõ ràng nào.

 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Thẻ
ai coding agents claude code cursor dns txt record gemini cli reverse shell
Bên trên