
Token
Một token trong ngữ cảnh của các mô hình ngôn ngữ lớn (LLMs) là một chuỗi ký tự mà mô hình chuyển đổi thành các biểu diễn số để xử lý hiệu quả. Token là các đơn...

Token smuggling khai thác khoảng cách giữa cách con người đọc văn bản và cách tokenizer LLM xử lý nó. Kẻ tấn công sử dụng các biến thể Unicode, ký tự có độ rộng bằng không, homoglyph hoặc mã hóa bất thường để ẩn các lệnh độc hại khỏi bộ lọc nội dung trong khi vẫn có thể đọc được bởi tokenizer.
Token smuggling là một loại tấn công nhắm vào khoảng cách giữa các lớp xử lý văn bản trong hệ thống AI. Bộ lọc kiểm duyệt nội dung, xác thực đầu vào và kiểm tra an toàn thường hoạt động trên văn bản mà con người có thể đọc. Ngược lại, tokenizer của LLM hoạt động ở cấp độ thấp hơn — chuyển đổi ký tự thành các ID token số. Bằng cách khai thác sự khác biệt giữa các lớp này, kẻ tấn công có thể tạo đầu vào vượt qua bộ lọc cấp văn bản nhưng vẫn truyền các lệnh độc hại đến LLM.
Trước khi LLM xử lý văn bản, một tokenizer chuyển đổi chuỗi đầu vào thành một chuỗi các ID token số nguyên. Các ID này ánh xạ đến từ vựng của mô hình — thường được mã hóa bằng các thuật toán như Byte Pair Encoding (BPE) hoặc WordPiece.
Các đặc tính chính của tokenization mà kẻ tấn công khai thác:
Unicode chứa hàng nghìn ký tự trông giống với các ký tự ASCII phổ biến. Bộ lọc tìm kiếm từ “harmful” có thể không nhận ra “hármful” (với dấu kết hợp) hoặc “harⅿful” (với ký tự phân số Unicode).
Ví dụ: Từ “ignore” có thể được mã hóa thành “іgnore” (sử dụng “і” Cyrillic thay vì “i” Latin) — trông giống hệt đối với hầu hết người đọc và một số bộ lọc, nhưng có khả năng được xử lý khác đi ở cấp độ tokenizer.
Các ký tự có độ rộng bằng không (như U+200B ZERO WIDTH SPACE hoặc U+200C ZERO WIDTH NON-JOINER) vô hình trong văn bản được hiển thị. Chèn chúng giữa các ký tự trong các từ khóa phá vỡ bộ lọc khớp chuỗi mà không ảnh hưởng đến hình thức trực quan hoặc, trong nhiều trường hợp, biểu diễn được tokenize.
Ví dụ: “ignore” với khoảng trắng có độ rộng bằng không giữa mỗi ký tự xuất hiện dưới dạng “ignore” khi hiển thị nhưng phá vỡ khớp mẫu chuỗi đơn giản.
Chuyển đổi văn bản sang mã hóa thay thế trước khi gửi:
Hiệu quả phụ thuộc vào việc LLM có được huấn luyện để giải mã các biểu diễn này hay không, điều mà nhiều mô hình đa năng có thể làm.
Các biến thể đơn giản nhưng đôi khi hiệu quả:
Một số tokenizer xử lý đặc biệt các ký tự phân cách. Bằng cách giới thiệu các ký tự mà tokenizer diễn giải là ranh giới phân đoạn, kẻ tấn công có thể thao túng cách mô hình phân đoạn đầu vào thành các đơn vị có ý nghĩa.
Vượt qua jailbreak: Mã hóa các lời nhắc jailbreak bằng các kỹ thuật vượt qua lớp bộ lọc an toàn nhưng được giải mã bởi LLM, cho phép vượt qua rào cản an toàn.
Trốn tránh bộ lọc nội dung: Nhúng lời nói thù ghét, yêu cầu nội dung bất hợp pháp hoặc hướng dẫn vi phạm chính sách dưới dạng mã hóa.
Làm rối prompt injection: Sử dụng mã hóa để ẩn các lệnh được chèn vào khỏi bộ lọc khớp mẫu đơn giản trong khi đảm bảo LLM xử lý chúng chính xác.
Fingerprinting bộ lọc: Kiểm tra có hệ thống các biến thể mã hóa khác nhau để xác định biến thể nào mà bộ lọc của hệ thống mục tiêu phát hiện và không phát hiện — lập bản đồ phạm vi bộ lọc cho các cuộc tấn công có mục tiêu hơn.
Áp dụng chuẩn hóa Unicode (NFC, NFD, NFKC hoặc NFKD) cho tất cả đầu vào trước khi lọc. Điều này chuyển đổi các biến thể Unicode sang dạng chuẩn, loại bỏ nhiều cuộc tấn công homoglyph và ký tự kết hợp.
Triển khai ánh xạ homoglyph rõ ràng để chuẩn hóa các ký tự tương tự về mặt trực quan thành các ký tự ASCII tương đương trước khi lọc. Thư viện cho mục đích này tồn tại trong hầu hết các ngôn ngữ lập trình.
Thay vì (hoặc bổ sung cho) bộ lọc dựa trên chuỗi, sử dụng bộ lọc dựa trên LLM hoạt động trên biểu diễn token. Vì các bộ lọc này xử lý văn bản ở cùng cấp độ với mô hình mục tiêu, các thủ thuật mã hóa kém hiệu quả hơn — bộ lọc nhìn thấy cùng biểu diễn như mô hình.
Đánh giá bảo mật nên bao gồm kiểm tra có hệ thống các bộ lọc nội dung với các biến thể mã hóa đã biết. Nếu bộ lọc được thiết kế để chặn “ignore previous instructions”, hãy kiểm tra xem nó có chặn homoglyph Unicode, biến thể có độ rộng bằng không, mã hóa Base64 và các dạng làm rối khác không.
Ghi lại bản hiển thị mà con người có thể đọc của đầu vào đã chuẩn hóa cùng với đầu vào thô. Sự khác biệt giữa hai bản có thể phát hiện các cuộc tấn công mã hóa trong quá trình xem xét sự cố.
Token smuggling là một kỹ thuật tấn công khai thác sự khác biệt giữa văn bản mà con người có thể đọc và biểu diễn tokenizer của LLM. Kẻ tấn công mã hóa các lệnh độc hại bằng cách sử dụng các biến thể ký tự, thủ thuật Unicode hoặc định dạng bất thường để bộ lọc nội dung không phát hiện được, nhưng tokenizer của LLM vẫn xử lý chúng như dự định.
Các bộ lọc nội dung thường hoạt động trên văn bản mà con người có thể đọc — kiểm tra các chuỗi, mẫu hoặc từ khóa cụ thể. Tuy nhiên, tokenizer của LLM xử lý văn bản ở cấp độ thấp hơn và có thể ánh xạ các ký tự khác nhau về mặt trực quan thành các token giống nhau hoặc tương tự. Khoảng cách này cho phép kẻ tấn công tạo văn bản được đọc theo một cách đối với bộ lọc và được xử lý khác đi bởi tokenizer.
Các biện pháp phòng thủ bao gồm: chuẩn hóa văn bản đầu vào trước khi lọc (chuẩn hóa Unicode, thay thế homoglyph), sử dụng bộ lọc nội dung dựa trên LLM hoạt động trên biểu diễn cấp token thay vì văn bản thô, kiểm tra bộ lọc với các biến thể mã hóa đã biết và tiến hành đánh giá bảo mật bao gồm các kịch bản tấn công dựa trên mã hóa.
Token smuggling và các cuộc tấn công mã hóa vượt qua các bộ lọc cấp bề mặt. Chúng tôi kiểm tra các kỹ thuật này trong mọi đánh giá bảo mật chatbot.

Một token trong ngữ cảnh của các mô hình ngôn ngữ lớn (LLMs) là một chuỗi ký tự mà mô hình chuyển đổi thành các biểu diễn số để xử lý hiệu quả. Token là các đơn...

Bảo mật LLM bao gồm các thực hành, kỹ thuật và kiểm soát được sử dụng để bảo vệ các triển khai mô hình ngôn ngữ lớn khỏi một lớp mối đe dọa đặc thù của AI bao g...

Thao túng cửa sổ ngữ cảnh đề cập đến các cuộc tấn công khai thác cửa sổ ngữ cảnh hữu hạn của các mô hình ngôn ngữ lớn — bao gồm nhồi nhét ngữ cảnh, tràn ngữ cản...