Gemini CLI hỏi trước khi sửa tệp dựng

Gemini CLI 0.61.0 thêm các bước xác nhận trước khi sửa tệp dựng, chạy lệnh liên quan hoặc dùng đối số lấy từ nội dung bên ngoài không đáng tin cậy.

Lập trình viên làm việc với tác tử viết mã trên máy tính
Tác tử viết mã được bổ sung các điểm xác nhận mới.

Gemini CLI 0.61.0 yêu cầu người dùng xác nhận trước khi tác tử sửa tệp dựng hoặc chạy lệnh liên quan. Yêu cầu này cũng áp dụng khi đối số của lệnh bắt nguồn từ nội dung bên ngoài không đáng tin cậy. Theo The New Stack, bản phát hành còn siết chặt môi trường cách ly. Tiến trình bên trong không thể tiếp cận một số thông tin xác thực và cấu hình trên máy của người dùng.

Các điểm xác nhận mới nhằm ngăn nội dung mà tác tử đọc được biến thành thay đổi mã hoặc lệnh hệ vỏ ngoài ý muốn. Khi tác tử có quyền sửa và chạy mã, kẻ tấn công có thể tìm cách lợi dụng chính các quyền đó. Gemini CLI 0.61.0 đưa người dùng trở lại quy trình trước những thao tác có khả năng dẫn đến thực thi mã. Rủi ro này rất quan trọng khi xem xét cách tác tử viết mã bằng AI hoạt động.

Các bản vá bảo mật vẫn được phát triển công khai

Gemini CLI vẫn nhận các bản cập nhật mô hình, sửa lỗi và bản vá bảo mật, còn những thay đổi bảo mật tiếp tục được phát triển công khai. Lịch sử đề nghị hợp nhất mã của phiên bản 0.61.0 vì thế cho thấy những chuỗi hành động mà Google muốn ngăn chặn.

Theo The New Stack, Google thông báo tại sự kiện I/O vào tháng 5 rằng người dùng Gemini CLI thuộc các gói Pro, Ultra và miễn phí sẽ được chuyển sang Antigravity CLI có mã nguồn đóng. Từ ngày 18 tháng 6, công cụ mã nguồn mở chủ yếu phục vụ khách hàng doanh nghiệp và nhà phát triển dùng khóa giao diện lập trình trả phí.

Tệp dựng có thể trở thành đường tấn công

Gemini CLI nay yêu cầu xác nhận khi sửa các tệp dựng đã được nhận diện và giữ lại những lệnh dựng hoặc kiểm thử liên quan cho đến khi người dùng chấp thuận. Cơ chế này chặn chuỗi hành động trong đó nội dung bên ngoài khiến tác tử sửa cấu hình rồi tự chạy phần cấu hình vừa thay đổi.

Một thay đổi trong package.json, Makefile, pyproject.toml hoặc tệp BUILD của Bazel có thể kéo thêm phần phụ thuộc hoặc kích hoạt tập lệnh. Gemini CLI có thể chỉnh sửa những tệp này bằng thông tin lấy từ tìm kiếm trên mạng và công cụ bên ngoài, sau đó tự chạy lệnh hệ vỏ.

Chỉ dẫn ẩn có thể kích hoạt mã độc

Tài liệu được truy xuất trong lúc sửa lỗi có thể chứa chỉ dẫn ẩn yêu cầu thêm tập lệnh postinstall vào package.json. Tác tử sau đó có thể thực hiện thay đổi, chạy bộ kiểm thử và kích hoạt mã độc dù lập trình viên không trực tiếp nhập lệnh. Đây là một dạng tiêm chỉ dẫn gián tiếp. Nội dung tác tử đọc được đã biến thành hành động trong kho mã.

Đề nghị hợp nhất mã số 29250 của Gemini CLI xử lý trực tiếp chuỗi hành động này. Mọi chỉnh sửa đối với tệp dựng đã được nhận diện đều cần xác nhận. Gemini CLI cũng theo dõi những tệp dựng bị thay đổi trong phiên làm việc. Các lệnh tiếp theo như npm run, make và cargo được giữ lại cho đến khi người dùng chấp thuận.

Hộp thoại xác nhận hiển thị toàn bộ phần khác biệt của tệp dựng thay vì cắt ngắn nội dung. Lập trình viên có thể xem chính xác tác tử định thay đổi gì trước khi cho phép một lệnh có khả năng thực thi phần cấu hình vừa được sửa.

Đối số từ nội dung không đáng tin cậy cần được duyệt

Gemini CLI cũng hỏi người dùng trước khi chạy lệnh hệ vỏ có cờ hoặc đối số trùng với nội dung không đáng tin cậy. Phạm vi kiểm tra gồm trang mạng, phản hồi của máy chủ Giao thức ngữ cảnh mô hình và Google Tài liệu. Buganizer, hệ thống theo dõi lỗi nội bộ của Google, cũng nằm trong phạm vi này.

Ở cả thao tác sửa tệp dựng và dùng đối số không đáng tin cậy, lời nhắc không cung cấp lựa chọn cho phép vĩnh viễn. Nhà phát triển không thể cấp sẵn quyền luôn chấp thuận cho hai nhóm hành động này.

Phạm vi kiểm tra còn chưa được giải thích đầy đủ

Thay đổi được gắn với chế độ không gian làm việc hạn chế. Đây là chế độ an toàn dành cho thư mục chưa được người dùng đánh dấu là đáng tin cậy. Đề nghị hợp nhất mã không giải thích cách kiểm tra hoạt động trong thư mục đã được tin cậy. Tài liệu cũng chưa nêu rõ hành vi khi cơ chế tự động chấp thuận được bật.

Kiểm tra đối số dựa trên việc đối chiếu chuỗi thay vì lần theo nguồn gốc của từng giá trị. Lịch sử rà soát cho thấy Google đã phải xử lý nhiều cách né kiểm tra. Các trường hợp gồm đối số trong dấu ngoặc kép, tiền tố biến môi trường và đích chuyển hướng của hệ vỏ. Cách xử lý đường dẫn trên Windows cũng cần được sửa. Theo đề nghị hợp nhất mã số 29250, các trường hợp này đã được khắc phục trước ngày hợp nhất 11 tháng 9.

Việc giữ con người trong vòng kiểm soát đặt ra câu hỏi rộng hơn về việc AI nên được trao bao nhiêu quyền. Câu hỏi trở nên cấp thiết khi hệ thống có thể đọc dữ liệu, gọi công cụ và hành động thay người dùng.

Môi trường cách ly giữ thông tin xác thực ở bên ngoài

Môi trường cách ly của Gemini CLI giới hạn những gì tiến trình có thể tiếp cận sau khi chạy, trong khi bước xác nhận quyết định tác tử có được thực hiện hành động nhạy cảm hay không. Hai biện pháp bảo vệ các giai đoạn khác nhau và không thay thế lẫn nhau.

Đề nghị hợp nhất mã số 29214 của Gemini CLI tăng cường môi trường cách ly. Khi môi trường này chạy qua Docker, Podman, LXC hoặc Seatbelt trên macOS, thư mục ~/.gemini trên máy của người dùng không còn được gắn vào bên trong.

Thay vào đó, giao diện dòng lệnh chuyển vào một bản sao cấu hình người dùng đã được làm sạch. Khóa giao diện lập trình, điểm móc và lệnh công cụ tùy chỉnh đều bị loại bỏ. Môi trường cách ly cũng không được khởi chạy tại các vị trí nhạy cảm như thư mục chính. Quy tắc Seatbelt mới từ chối quyền truy cập thông tin xác thực OAuth, quyết định tin cậy thư mục và tệp .env.

Tài liệu của Google mô tả môi trường cách ly là hàng rào bảo mật giữa hoạt động của AI và hệ thống chủ, đồng thời lưu ý rằng biện pháp này chỉ giảm rủi ro chứ không loại bỏ hoàn toàn.

Tệp dựng cho thấy khoảng trống giữa hai lớp bảo vệ. Môi trường cách ly vẫn phải gắn thư mục dự án để tác tử chỉnh sửa mã. Vì vậy, một tệp package.json đã bị cài nội dung độc hại trong môi trường cách ly vẫn nằm trong kho mã và có thể được lập trình viên hoặc hệ thống tích hợp liên tục chạy bên ngoài môi trường đó.

Quyền tin cậy có thể trở nên nguy hiểm theo thời gian

Quyền được cấp một lần không bảo đảm nguồn công cụ sẽ luôn an toàn. Một công cụ được chấp thuận hôm nay có thể trả về nội dung do kẻ tấn công kiểm soát vào thời điểm khác, vì vậy quyền tin cậy dài hạn cần được xem xét cùng các điểm xác nhận cho từng hành động nhạy cảm.

Gemini CLI cung cấp nhiều cách để nhà phát triển kiểm soát mức độ tự chủ của tác tử. Điểm móc có thể chạy các bước kiểm tra cố định tại những giai đoạn xác định trong quy trình. Thiết lập tin cậy cho máy chủ Giao thức ngữ cảnh mô hình có thể bỏ qua mọi yêu cầu xác nhận khi gọi công cụ từ máy chủ đó.

Rủi ro từ quyền tin cậy dài hạn cũng là lý do việc phân quyền dữ liệu và mô hình trong hệ thống AI cần được xem xét cùng với cơ chế xác nhận thao tác.

Gemini CLI 0.61.0 không loại bỏ tính tự động của tác tử viết mã. Bản phát hành đặt thêm điểm dừng trước những hành động có thể biến nội dung bên ngoài thành thay đổi trong tệp dựng hoặc lệnh thực thi trên máy của nhà phát triển.

Theo dõi Sine để cập nhật những thay đổi bảo mật ảnh hưởng trực tiếp đến cách tác tử AI đọc, sửa và chạy mã.