Hacker News: AI bài nổi bật
95

Thủ thuật

Cảnh báo: Ứng dụng AI ZCode âm thầm thu thập và tải lên toàn bộ lịch sử Git của người dùng

(giờ Việt Nam)

Tóm tắt AI

Nhà phát triển phát hiện ứng dụng ZCode tự động đóng gói và tải lên toàn bộ dữ liệu làm việc, bao gồm lịch sử Git và cấu hình cá nhân lên máy chủ Aliyun OSS mà không có sự đồng ý của người dùng.

Bản dịch AI

ZCode uploads your git history; Z.ai holds the only key

Vào ngày 18 tháng 9 năm 2026, một lập trình viên có biệt danh ferstar đã công bố một bài hướng dẫn kỹ thuật đảo ngược (reverse-engineering) về ZCode, ứng dụng lập trình AI trên máy tính để bàn của Z.ai, công ty có trụ sở tại Bắc Kinh đứng sau dòng mô hình mã nguồn mở (open-weight) GLM - cùng những mô hình đang chạy trên các hệ thống cục bộ trong cộng đồng AI địa phương, bao gồm cả GLM-5.3-Flash được theo dõi trên trang web này. Phát hiện này còn tồi tệ hơn hầu hết các vụ bê bối về quyền riêng tư: bất cứ khi nào ứng dụng được đăng nhập, nó sẽ âm thầm đóng gói toàn bộ không gian làm việc của người dùng - bao gồm lịch sử.git, bộ nhớ đệm tài nguyên LFS, reflogs và các cấu hình ứng dụng toàn cục - sau đó mã hóa và tải kho lưu trữ này lên Aliyun OSS, dịch vụ lưu trữ đối tượng của Alibaba Cloud. Dữ liệu thu thập được của chính nhà nghiên cứu: một tệp lưu trữ mã hóa 313MB được tạo từ một không gian làm việc thương mại 345MB, chứa 42.411 tệp, với 564 lần thử tải lên thất bại được ghi lại trong khi nhà nghiên cứu đang điều tra.

Nếu bạn chạy GLM cục bộ, công ty phát hành trọng số (weights) không đồng nghĩa với môi trường thực thi (runtime) mà lập trình viên sử dụng trên nền tảng đó - và các phản hồi trên diễn đàn cho thấy sự nhầm lẫn này vẫn đang diễn ra: nhiều người bình luận cho rằng ZCode là mã nguồn mở vì GLM là mã nguồn mở. Thực tế không phải vậy. Các trọng số thì mở; nhưng bộ khung (harness) thì đóng, và đó là bộ khung của Z.ai dành cho các mô hình của chính họ, được quảng bá là sự tích hợp chính chủ mà không trình soạn thảo bên thứ ba nào có thể sánh kịp.

Câu chuyện lan truyền bằng cả hai ngôn ngữ chỉ trong vài giờ: bài đăng của ferstar đã vượt mốc 276.000 lượt xem, và chuỗi bài cảnh báo bằng tiếng Trung của FeiZ (“hãy vô hiệu hóa ZCode ngay bây giờ… tốt nhất vẫn nên sử dụng các tác nhân mã nguồn mở nhiều nhất có thể”) đã thu hút thêm 63.800 lượt xem. Phản hồi được trích dẫn nhiều nhất đến từ Petri Kuittinen, người có tác nhân AI riêng được mở mã nguồn với tài liệu bảo mật đầy đủ: “Lời khuyên của tôi vẫn luôn là: ĐỪNG tin tưởng các bộ khung AI đóng.”

Chi tiết biến một thư mục đáng ngờ thành một câu chuyện lớn: khóa mã hóa. ZCode sử dụng mã hóa phong bì (envelope encryption) - dữ liệu được mã hóa bằng khóa đối xứng, và khóa đó lại được bọc bằng khóa công khai RSA-OAEP. Khóa công khai được máy chủ cung cấp trong quá trình thương lượng thông tin xác thực tải lên. Khóa riêng tương ứng chỉ tồn tại trên đám mây của Z.ai. ferstar đã cố gắng giải mã kho lưu trữ bằng mọi khóa riêng trên hệ thống cục bộ nhưng đều thất bại. Tệp mã hóa 313MB nằm trên ổ đĩa của người dùng không thể bị giải mã bởi chính người dùng hay bởi ứng dụng ZCode.

Kết luận của ferstar từ bài đăng: “Một chiếc khóa mà chỉ máy chủ mới có thể sử dụng chỉ phục vụ đúng một mục đích: đảm bảo máy chủ có thể đọc mã nguồn của bạn bất cứ khi nào nó muốn.”

Những gì bị đóng gói

Bản kê khai đóng gói được lưu trữ cục bộ dưới dạng văn bản thuần (plaintext) và rất cụ thể. Đối với một bản chụp nhanh (snapshot) gồm 42.411 tệp:

Riêng thư mục.git đã chiếm 86,6% dung lượng dữ liệu.

Phân tích dữ liệu của một bản chụp nhanh gồm 42.411 tệp: thư mục.git chiếm 86,6% kho lưu trữ đã mã hóa.

Điều đó quan trọng vì kho lưu trữ đối tượng git không phải là một bản chụp nhanh của cây làm việc (working tree) của bạn - nó là toàn bộ lịch sử của kho lưu trữ kể từ ngày đầu tiên. Các khóa API đã bị xóa trong các lần commit sau đó vẫn nằm ở đó. Tên các nhánh chưa được đẩy (unpushed branch) tiết lộ kế hoạch sản phẩm chưa ra mắt cũng nằm ở đó. Tên máy chủ nội bộ và đường dẫn kho lưu trữ từ.git/config cũng ở đó. Một kho lưu trữ bị thu thập là cả nhiều năm lịch sử kỹ thuật, chứ không chỉ là những tệp bạn đang mở.

Quy trình tải lên, được tái tạo từ tệp app.asar của ứng dụng: ứng dụng yêu cầu thông tin xác thực từ zcode.z.ai, máy chủ này trả về chữ ký biểu mẫu OSS, khóa đối tượng, giới hạn kích thước và khóa công khai RSA theo từng vòng; ứng dụng đóng gói không gian làm việc thành tar.gz, mã hóa bằng AES-256-CTR, bọc khóa đối xứng và gửi trực tiếp kho lưu trữ đến Aliyun OSS qua phương thức POST, sau đó OSS gọi ngược lại (callback) backend của Z.ai để đăng ký bản chụp nhanh. Ứng dụng khi chạy duy trì các kết nối liên tục tới zcode.z.ai và hai nút Aliyun OSS trong quá trình thử nghiệm.

Quy trình tải lên bản chụp nhanh ZCode được tái tạo: thông tin xác thực từ bộ điều phối, đóng gói và mã hóa cục bộ, gửi biểu mẫu trực tiếp đến Aliyun OSS, đăng ký callback. Được ferstar tái tạo từ tệp app.asar của ứng dụng.

Các nút gạt không ngăn được điều đó

Hành động tự nhiên là mở phần cài đặt. ferstar đã đối chiếu các nút chuyển đổi trong giao diện người dùng với mã nguồn:

Bộ phận lắp ráp máy chủ khởi tạo sidecar thu thập dữ liệu một cách vô điều kiện khi khởi động, không có bất kỳ sự kiểm soát nào dựa trên tùy chọn của người dùng - yêu cầu duy nhất là nhà cung cấp token có thể tạo ra một JWT hợp lệ. Nhật ký phiên cho thấy 62 sự kiện thu thập từ một phiên hoạt động duy nhất, được kích hoạt trước mỗi câu lệnh (prompt) và khi hoàn thành tác vụ.

Một nguồn thứ hai xác nhận cơ chế này. OrcaPromptVault, một bộ sưu tập công khai các câu lệnh của các bộ khung AI, chứa một câu lệnh hệ thống 131KB và bề mặt 31 công cụ từ ZCode. Tính năng checkpoint/rewind được tích hợp vào câu lệnh hệ thống - mẫu “Workspace rewind applied. rewindId, checkpointId, strategy, restoredFiles” xuất hiện năm lần. Đây là phần nổi của quy trình chụp nhanh mà người dùng có thể thấy, tính năng mà việc khóa hệ thống tệp sẽ vô hiệu hóa.

Bề mặt công cụ hoàn chỉnh của tác nhân không chứa bất kỳ công cụ chụp nhanh, tải lên hoặc đo từ xa (telemetry) nào. Quy trình trích xuất dữ liệu không phải là một công cụ của tác nhân; nó là một sidecar cấp máy chủ được khởi tạo bên ngoài vòng lặp công cụ. Đó là lý do tại sao không có cài đặt quyền nào ngăn chặn được nó, và tại sao chính tác nhân đó không bao giờ nhìn thấy nó. Trong 131KB hướng dẫn bị thu thập, không có bất kỳ đề cập nào đến Aliyun, OSS, tải lên hoặc quyền riêng tư.

Bản thu thập bổ sung một chi tiết mà ferstar không đề cập: ZCode cung cấp công cụ ReadSessionContext có khả năng đọc các phiên ZCode khác đã được lưu theo ID phiên. Kết hợp với sidecar chụp nhanh cấp máy chủ, nội dung phiên vừa được lưu cục bộ vừa bị thu thập lên đám mây.

Mẫu checkpoint trong câu lệnh hệ thống bị rò rỉ (xuất hiện năm lần) và bề mặt 31 công cụ của tác nhân, không chứa công cụ chụp nhanh, tải lên hoặc đo từ xa nào.

Chính sách quyền riêng tư không đề cập đến điều đó

Chính sách quyền riêng tư của ZCode tuyên bố công cụ thu thập “văn bản, tệp và mã nguồn được gửi trong các cuộc hội thoại” - tiết lộ tiêu chuẩn về ngữ cảnh suy luận mà mọi công cụ lập trình AI đều thực hiện. Xuyên suốt chính sách, FAQ và nhật ký thay đổi, ferstar không tìm thấy bất kỳ đề cập nào về việc đóng gói và tải lên toàn bộ không gian làm việc và lịch sử git. Dòng gần nhất là một tuyên bố mẫu về việc chương trình tối ưu hóa bị tắt theo mặc định.

Bối cảnh khiến mọi thứ tồi tệ hơn

ZCode ra mắt vào tháng 7 năm 2026, và lời chào hàng khi ra mắt dựa hoàn toàn vào sự tin tưởng. Z.ai định vị bộ khung của mình đối đầu với Claude Code của Anthropic vài tuần sau vụ bê bối đo từ xa ẩn của Claude Code, với các trọng số mở được định vị là lối thoát khỏi vấn đề "kill-switch". Một giám đốc điều hành của Z.ai, khi được hỏi trên X liệu ZCode có bao gồm “bất kỳ loại phần mềm gián điệp nào” không, đã trả lời rằng công ty sẽ không triển khai “bất cứ điều gì ngoài những gì được liệt kê” trên trang web của ZCode.

Việc chụp nhanh không gian làm việc không được liệt kê trên trang web của ZCode.

Z.ai đã niêm yết trên Sở giao dịch chứng khoán Hồng Kông vào tháng 1 năm 2026. Tài khoản X chính thức của công ty vẫn chưa phản hồi bài đăng của ferstar tính đến thời điểm xuất bản. Phản hồi đáng chú ý nhất đến từ một tài khoản liên kết với nhóm ZCode - “này tôi xin lỗi vì để bạn phát hiện ra nó” - điều này được hiểu là sự xác nhận về cơ chế, chứ không phải là sự bác bỏ. Tweet của ferstar đã vượt 276.000 lượt xem trong vòng 13 giờ, và các chuỗi thảo luận trên V2EX và các kênh gần gũi với HN chủ yếu chia làm một luồng: các tác nhân tải lên các đoạn mã trong quá trình gọi công cụ mọi lúc, với sự đồng ý. Đây là toàn bộ kho lưu trữ cộng với toàn bộ lịch sử của nó, không có sự đồng ý, được mã hóa để chỉ nhà cung cấp mới có thể đọc được.

Cách phòng thủ hiệu quả

Xóa kho lưu trữ đang chờ xử lý không có tác dụng: ứng dụng sẽ đóng gói lại một kho lưu trữ 313MB mới trong vòng nửa giờ, bộ đếm thử lại tăng lên. Giải pháp hiệu quả là ở cấp độ hệ thống tệp. Hãy làm cho thư mục checkpoints không thể ghi được ở cấp kernel:

Linux:

macOS:

Cái giá phải trả: giao diện khôi phục checkpoint sẽ ngừng hoạt động - một tính năng vốn yêu cầu tải mã nguồn của bạn lên ngay từ đầu. Trò chuyện, tự động hoàn thành và gọi công cụ vẫn hoạt động bình thường. Khôi phục bằng lệnh chattr -i hoặc chflags nouchg.

Điều này có ý nghĩa gì đối với việc chạy cục bộ

Chạy các trọng số mở cục bộ là lời chào hàng: mô hình của bạn, phần cứng của bạn, không hóa đơn theo token, không bị nhà cung cấp ngắt kết nối. Câu chuyện ZCode làm sắc nét vấn đề vượt ra ngoài lớp mô hình. Môi trường thực thi xung quanh mô hình - bộ khung, ứng dụng máy tính để bàn, quy trình cập nhật - là một phần của bề mặt tin cậy, và một mô hình chạy cục bộ được bọc trong một bộ khung gọi về đám mây thì không phải là cục bộ.

Hai kiểm tra cần thực hiện từ điều này, và chúng áp dụng cho mọi bộ khung trong không gian này, không chỉ ZCode: môi trường thực thi truyền đi những gì khi bạn đăng nhập, và ai có thể giải mã những gì nó lưu trữ. Tokenstead theo dõi các bộ khung tác nhân và hành vi đo từ xa của chúng vì chính lý do này; bài viết này sẽ được cập nhật nếu Z.ai phản hồi bằng một bản sửa lỗi, thay đổi tiết lộ hoặc tuyên bố chính thức.

Nguồn:

Đọc bài gốc

Bài viết được AI dịch và tổng hợp tự động từ Hacker News: AI bài nổi bật. Liên kết bài gốc ở phía trên. 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.