Claude Code và Kỹ Thuật Ẩn Dấu Thông Tin Bí Mật Trong Lời Nhắc 🕵️
Nguồn: thereallo.dev Tác giả: Thereallo Ngày phân tích: 30 tháng 06 năm 2026 Công cụ được phân tích: Claude Code (v2.1.196)
---
Tổng Quan Phát Hiện 😱
Một phân tích sâu về mã nguồn của phiên bản Claude Code (v2.1.196) đã hé lộ một phát hiện gây sốc: công cụ này lặng lẽ thay đổi chuỗi ngày tháng trong lời nhắc hệ thống (system prompt) để ẩn dấu thông tin về môi trường người dùng. Cụ thể, Claude Code đã sửa đổi ký tự dấu nháy đơn và ký tự phân tách ngày dựa trên cấu hình ANTHROPIC_BASE_URL và múi giờ hệ thống, nhằm chuyển các dấu hiệu phân loại ẩn về máy chủ của Anthropic.
Đây không phải là một tính năng độc hại, nhưng lại là một lựa chọn cực kỳ bất thường và gây tranh cãi đối với một công cụ dành cho nhà phát triển, vốn yêu cầu sự tin tưởng tuyệt đối. Về mặt thị giác, văn bản trông hoàn toàn bình thường đối với người dùng thông thường, nhưng thực tế, nó đã nhúng những chữ ký theo dõi chính xác, đi kèm với nội dung prompt – ngay cả khi qua các lớp proxy hoặc định tuyến cổng.
Cơ Chế Ẩn Dấu Thông Tin 📝
Chuỗi ngày tháng mặc định được chèn vào prompt hệ thống là: Today's date is YYYY-MM-DD.
Claude Code ngầm sửa đổi hai thành phần của chuỗi này khi một điểm cuối API tùy chỉnh được cấu hình (qua ANTHROPIC_BASE_URL):
1. Dấu nháy đơn trong Today's (sử dụng các ký tự Unicode trông tương tự). 2. Ký tự phân tách ngày, chuyển từ - sang /.
Cách thức hoạt động
Ngắn gọn, mã nguồn của Claude Code sẽ kiểm tra ANTHROPIC_BASE_URL và múi giờ hệ thống để xác định cách thức chèn các ký tự đặc biệt:
javascript // Mã nguồn đã được làm sạch cho thấy logic này: function Vla(date) { let marker = Zup(); // Lấy thông tin về host và múi giờ let apostrophe = edp(marker?.known ?? false, marker?.labKw ?? false); // Chọn ký tự dấu nháy let renderedDate = marker?.cnTZ ? date.replaceAll("-", "/") : date; // Thay đổi ký tự phân tách ngày return `Today ${apostrophe}s date is ${renderedDate}.`; }
Điều Kiện Kích Hoạt và Dấu Hiệu 🚨
Việc đánh dấu ẩn mật được kích hoạt khi ANTHROPIC_BASE_URL được đặt tùy chỉnh (ví dụ: khi định tuyến qua máy chủ tự lưu trữ, cổng doanh nghiệp hoặc proxy bên thứ ba) và không trỏ đến api.anthropic.com.
1. Kiểm Tra Múi Giờ (Ký Tự Phân Tách Ngày)
Nếu múi giờ hệ thống được đặt thành Asia/Shanghai hoặc Asia/Urumqi (chủ yếu được sử dụng ở Trung Quốc), ký tự phân tách định dạng ngày sẽ được thay đổi từ dấu gạch ngang sang dấu gạch chéo một cách lặng lẽ:
* Định dạng chuẩn: 2026-06-30 * Định dạng khi kích hoạt: 2026/06/30
2. Kiểm Tra Tên Máy Chủ (Biến Thể Dấu Nháy Đơn)
Công cụ này phân tích tên máy chủ API tùy chỉnh và kiểm tra nó so với danh sách các tên miền đã biết hoặc kiểm tra xem nó có chứa các từ khóa phòng thí nghiệm AI cụ thể hay không, sau đó lặng lẽ thay đổi ký tự dấu nháy đơn được sử dụng:
| Điều kiện | Ký tự | Unicode | Mô tả | | :---------------------------- | :---: | :--------- | :--------------------------- | | Bình thường | ' | Standard | Dấu nháy đơn ASCII chuẩn | | Phù hợp tên miền đã biết | ’ | \u2019 | Dấu nháy đơn phải | | Phù hợp từ khóa Lab AI | ʼ | \u02BC | Ký tự sửa đổi dấu nháy đơn | | Phù hợp cả hai | ʹ | \u02B9 | Ký tự sửa đổi dấu nháy đơn chính |
Danh Sách Bị Che Giấu và Mật Mã 🔐
Để ngăn chặn việc phân tích tĩnh dễ dàng phát hiện các mục tiêu theo dõi này, các danh sách tên miền và từ khóa được lưu trữ dưới dạng chuỗi base64 và bị làm tối nghĩa bằng một mật mã XOR-91 đơn giản.
javascript // Hàm giải mã XOR-91 function Gla(encoded) { let bytes = Buffer.from(encoded, "base64"); let out = ""; for (let byte of bytes) { out += String.fromCharCode(byte ^ Kup); // Kup = 91 } return out.split(","); }
Từ Khóa Lab AI Đã Giải Mã:
Các từ khóa phòng thí nghiệm AI được nhắm mục tiêu bao gồm các điểm cuối AI hàng đầu của Trung Quốc và toàn cầu:
* deepseek, moonshot, minimax, xaminim, zhipu, bigmodel, baichuan, stepfun, 01ai, dashscope, volces
Ví Dụ Tên Miền Đã Giải Mã:
Danh sách tên miền nhắm mục tiêu cụ thể vào các công ty công nghệ Trung Quốc, các tên miền mạng nội bộ doanh nghiệp, cổng AI và các đại lý bên thứ ba:
* cn, baidu.com, alibaba-inc.com, alipay.com, antgroup-inc.cn, bytedance.net, kuaishou.com, xiaohongshu.com, jd.com, bilibili.co, iflytek.com, stepfun-inc.com, moonshot.ai, anyrouter.top, claude-code-hub.app, claude-opus.top, openclaude.me, proxyai.com, yunwu.ai, zenmux.ai
Tích Hợp Ngữ Cảnh và Hệ Quả Nghiêm Trọng ⚠️
Ngày tháng được đánh dấu ẩn mật được chèn trực tiếp vào ngữ cảnh hệ thống người dùng (user system context) được gửi đến phần backend của mô hình Anthropic trong mọi tin nhắn của người dùng:
javascript { // ... các thông tin khác như userEmail, attachedProject currentDate: Vla(GSe()) // Ngày tháng đã được đánh dấu }
Tranh Cãi về Bảo Mật & Quyền Riêng Tư
Trong khi các ứng dụng tiêu chuẩn xác định client của họ qua các tiêu đề HTTP (như User-Agent hoặc X-Client-Id), việc nhúng các trình theo dõi vào chính văn bản prompt có nghĩa là chữ ký sẽ đi cùng với tải trọng ngữ nghĩa. Điều này dẫn đến hai vấn đề lớn:
1. Không thể bị đánh bại bởi Proxy: Ngay cả khi nhà phát triển sử dụng cổng doanh nghiệp, proxy ngược hoặc lớp lọc để loại bỏ tất cả các tiêu đề HTTP và cookie theo dõi nhằm tuân thủ quyền riêng tư, dấu hiệu ẩn mật vẫn còn nguyên trong phần thân prompt. 2. Thiết Kế Lừa Dối: Claude Code tự giới thiệu là một công cụ phát triển minh bạch, mã nguồn mở. Việc âm thầm thay đổi dấu câu để mã hóa phân loại mạng lưới đã làm dấy lên những lo ngại trong cộng đồng mã nguồn mở về dữ liệu đo lường từ xa không được công bố và việc thu thập dấu vân tay ẩn (stealth fingerprinting), phá vỡ niềm tin của người dùng và cộng đồng.