Công nghệ

Claude tự cài gói npm, và một gói độc có thể lấy cắp tập tin của bạn

Susan Hill

Tính năng Computer Use của Claude làm được điều mà một chatbot thông thường không làm được. Nó mở một cửa sổ dòng lệnh trên máy của bạn và cài phần mềm thay bạn, bao gồm cả các gói kéo thẳng từ npm, kho mã nguồn mở lớn nhất thế giới. Sức hút thì rõ ràng, vì nó rút gọn «dựng dự án này cho tôi» thành đúng một câu. Rủi ro nằm ngay trong câu đó, bởi khoảnh khắc một gói cập bến, npm có thể chạy đoạn mã khởi động mà gói đó mang theo, và giờ kẻ bóp cò là một tác nhân tự hành.

Với bất kỳ ai để một tác nhân AI viết hay chạy mã, mà đó là nhóm đang phình ra nhanh gồm lập trình viên, người chơi nghiệp dư và những người tò mò không có nền tảng kỹ thuật, câu hỏi thực tế rất thẳng. Nếu Claude cài một gói bạn chưa từng nhìn tới, và gói đó được dựng để sao chép tập tin của bạn ngay khi tiếp đất, ai đáng lẽ phải chặn nó lại? Một video gần đây của một nhà nghiên cứu bảo mật đi qua đúng tình huống ấy, cho thấy một gói gài bẫy đọc tập tin cục bộ trong một lần cài đặt thường lệ mà AI thực hiện không chút chần chừ.

Cơ chế này không mới, và chính điều đó khiến nó nghiêm trọng. Các gói npm được phép khai báo kịch bản cài đặt, những chỉ dẫn nhỏ chạy tự động ngay khi một gói được thêm vào dự án, trước khi dù chỉ một dòng của nó được dùng một cách có chủ đích. Đây là hành vi đã được ghi rõ trong tài liệu, không phải lỗi. Nó cho phép các công cụ chính danh tự biên dịch hoặc dọn sẵn môi trường. Nó cũng có nghĩa là bất kỳ gói nào cũng có thể chạy mã trên máy bạn vào lúc cài, với cùng quyền hạn như bạn, và các nhóm bảo mật đã cảnh báo điều này nhiều năm.

Thế giới nhận được một lời nhắc sắc bén về mức độ hệ trọng khi kẻ tấn công chiếm tài khoản người bảo trì đứng sau Axios, một thư viện mạng được tải hàng chục triệu lần mỗi tuần, rồi cài lén vào đó một phụ thuộc độc hại cài trojan truy cập từ xa lên máy các lập trình viên. Họ chưa hề chạm vào mã thật của Axios. Kịch bản cài đặt đã làm phần việc đó. Axios tình cờ lại là một viên gạch bên trong chính Claude Code, bên cạnh vô số ứng dụng khác, cho thấy khoảng cách mong manh thế nào giữa công cụ bạn tin tưởng và đoạn mã nó lặng lẽ kéo theo.

Điều bản trình diễn thêm vào bức tranh quen thuộc đó là tác nhân. Một người tự chạy lệnh cài ít nhất còn có thể dừng lại, đọc tên gói, nhận ra nó viết sai chính tả hoặc vừa mới xuất bản, rồi rút lui. Một tác nhân AI hành động trên một mệnh lệnh mơ hồ không có phản xạ ấy. Nó cài thứ nó quyết là cần. Và vì Computer Use còn đọc màn hình, di chuyển con trỏ và gõ phím, một phụ thuộc bị tẩm độc không bị giam trong trình soạn mã. Nó tự do đi khắp màn hình làm việc.

Cũng nên nói cho chính xác đây là gì và không phải là gì. Đây không phải một cửa hậu ẩn riêng có ở Claude, cũng không phải bằng chứng rằng mô hình bị lừa để lách qua chính luật lệ của nó. Đây là hệ quả có thể đoán trước của việc trao cho bất kỳ chương trình tự hành nào quyền cài phần mềm, cộng với một kho đã chạy mã cài đặt theo mặc định suốt hơn một thập kỷ. Thay Claude bằng bất kỳ tác nhân lập trình nào khác với cùng quyền hạn, bức tranh vẫn y hệt. Mối nguy sống trong tính tự hành và trong cái kho, không phải trong chatbot của một công ty.

Anthropic, nếu có gì, đang đẩy theo hướng ngược lại. Công ty mới đây phát hành cho các công cụ lập trình của mình một hộp cát ngăn tác nhân khỏi phần còn lại của hệ thống, giới hạn nó được đọc tập tin nào và chạm tới máy chủ nào, đồng thời công bố mã nguồn mở bộ công cụ cách ly nền tảng để các lập trình viên khác dùng. Lập luận chính là điều bản trình diễn phơi bày. Một tác nhân không với tới khóa SSH của bạn thì không thể làm rò rỉ chúng, và một tác nhân không thể liên lạc với một máy chủ lạ thì không thể gửi tập tin của bạn đi đâu. Công ty nói những ranh giới đó cắt khoảng 84 phần trăm số lần hỏi xin quyền mà nó hiển thị cho người dùng, điều này quan trọng vì một công cụ hỏi về mọi thứ sẽ nhanh chóng dạy người ta bấm đồng ý.

Với những người thực sự dùng các công cụ này, cách phòng thủ vừa nhàm chán vừa hiệu quả. Hãy chạy tác nhân bên trong một hộp cát, một container hoặc một máy ảo dùng một lần, để điều tệ nhất một gói xấu có thể với tới chỉ là một môi trường có thể vứt bỏ. Tắt các kịch bản cài đặt tự động ở nơi quy trình cho phép, điều mà vài trình quản lý gói mới hơn nay đã làm theo mặc định. Giữ thông tin đăng nhập, khóa và tập tin cá nhân ra xa cỗ máy nơi tác nhân được tự tung tự tác. Và hãy đối xử với «cài cái này giúp tôi» bằng sự thận trọng bạn dành cho «mở tệp đính kèm trong email này», vì bên dưới nó gần với điều đó hơn vẻ ngoài.

Gói cụ thể trong bản trình diễn là bằng chứng của một nhà nghiên cứu, không phải một đợt bùng phát thật, và không có dấu hiệu nó đã chạm tới người dùng thật. Khuôn mẫu đằng sau nó mới là phần sẽ không chịu nằm yên. Lập trình bằng tác nhân đang trở thành mặc định nhanh hơn những thói quen lẽ ra giữ cho nó an toàn, và các kho mà những tác nhân này dựa vào chưa từng được dựng cho một thế giới nơi kẻ gõ lệnh cài đặt không phải con người. Cho tới khi khoảng trống ấy khép lại, quy tắc lâu đời nhất của an ninh phần mềm giờ chĩa vào một loại người dùng mới: thứ gì tác nhân của bạn cài, nó sẽ chạy, nên hãy quyết xem nó được phép chạm vào đâu trước khi để nó bắt đầu.

Thảo luận

Có 0 bình luận.