Trình duyệt như một cửa hậu: Việc khai thác bí mật LLM phía máy khách được làm sáng tỏ | B4N1

Trình duyệt như một cửa hậu: Việc khai thác bí mật LLM phía máy khách được làm sáng tỏ

1 month ago · b4n1 Tiempo de lectura: 8 min

Trình duyệt đóng vai trò là cửa hậu: Làm sáng tỏ việc khai thác bí mật LLM phía máy khách

Trong một thời gian dài, chúng ta đã coi "cảnh báo bảo mật AI" là những mối đe dọa xa vời hoặc sự tò mò về mặt học thuật. Chúng tôi đã nghe nói về việc chèn nhanh, bẻ khóa và rò rỉ dữ liệu với giọng điệu kín đáo, thường sau đó là một cái nhún vai và "chúng tôi sẽ giải quyết vấn đề đó". Tuy nhiên, các cuộc biểu tình tương tác gần đây đã phá tan ảo tưởng thoải mái đó. Đây không còn là lỗ hổng về mặt lý thuyết nữa; đó là một cách khai thác trực tiếp, dựa trên trình duyệt, phía máy khách để trích xuất thông tin nhạy cảm từ Mô hình ngôn ngữ lớn (LLM) [2]. Nếu bạn đang triển khai các ứng dụng được hỗ trợ bởi LLM, đặc biệt là bất kỳ ứng dụng nào trên web, thì "vấn đề trong tương lai" của bạn đã trở thành một trách nhiệm pháp lý rất hiện hữu, rất công khai và có thể rất đáng xấu hổ.

Đây không phải là một tiêu đề chung chung "AI có rủi ro". Đây là minh chứng cụ thể, hữu hình về cách một kẻ độc hại, chỉ sử dụng trình duyệt của họ, có thể ép buộc LLM của bạn tiết lộ thông tin nhạy cảm. Hãy xem xét điều đó trong giây lát. Nó không phải về các cuộc tấn công phía máy chủ phức tạp hay sự xem xét sâu sắc về mô hình. Đó là về lớp tương tác—cửa trước của ứng dụng của bạn—đang được khai thác với một vài ký tự được tạo cẩn thận. Nó tương đương với việc ai đó tạo ra cụm từ phù hợp cho chatbot được cho là an toàn của bạn và nó nghiêm túc chuyển giao dữ liệu quan trọng, thường là từng chút một.

Ảo tưởng về mô hình bảo mật

Nhiều doanh nghiệp đã đầu tư rất nhiều vào LLM "an toàn", tinh chỉnh các mô hình độc quyền hoặc dựa vào API cấp doanh nghiệp với các biện pháp bảo vệ được cho là. Giả định ngầm định là nếu bản thân mô hình mạnh mẽ thì ứng dụng được xây dựng trên nó sẽ kế thừa tính bảo mật đó. Các cuộc biểu tình gần đây cho thấy đây là một quan niệm sai lầm nguy hiểm. Lỗ hổng không nằm ở trí thông minh cốt lõi của mô hình hoặc dữ liệu đào tạo của nó; nó nằm trong giao diện mà chúng tôi xây dựng xung quanh nó [1]. Đó là vấn đề kinh điển về "kho tiền chắc chắn, cửa trước mỏng manh". Bạn có thể có LLM tiên tiến, cứng cáp nhất trên thế giới, nhưng nếu trình phân tích cú pháp đầu vào của ứng dụng của bạn chưa rõ ràng hoặc bộ lọc đầu ra của bạn không tồn tại thì về cơ bản, bạn đang để lộ thông tin quan trọng cho bất kỳ ai tìm thấy.

Kỹ thuật "tiêm nhanh" này đặc biệt đáng lo ngại vì nó tận dụng bản chất vốn có của LLM: khả năng làm theo hướng dẫn và hoàn thành các mẫu. Bằng cách đưa tiền tố được xây dựng cẩn thận vào đầu vào của người dùng, kẻ tấn công có thể thao túng trạng thái bên trong của mô hình, buộc nó tiết lộ thông tin mà nó không bao giờ có ý định tiết lộ [3]. Khía cạnh "một bit" hoặc lặp lại ở đây rất quan trọng. Nó ngụ ý một quá trình lọc có phương pháp, có kiểm soát, không chỉ là một bãi chứa dữ liệu hỗn loạn. Hãy tưởng tượng kẻ tấn công liên tục hỏi: "Ký tự đầu tiên của bí mật là 'A' phải không?" rồi "Có phải là 'B' không?" và vân vân. Đúng là nó chậm, nhưng nó cũng cực kỳ hiệu quả và khó phát hiện nếu bạn không đặc biệt tìm kiếm nó.

Trình duyệt của bạn, vũ khí của họ

Thực tế rằng đây là một cách khai thác dựa trên trình duyệt đã thay đổi hoàn toàn trò chơi. Nó có nghĩa là:

  • Rào cản gia nhập thấp: Bất kỳ ai có kỹ năng phát triển web cơ bản và trình duyệt đều có thể thử điều này. Không cần có công cụ chuyên dụng hoặc kiến ​​thức AI sâu.
  • Thực thi phía máy khách: Cuộc tấn công bắt nguồn từ máy của người dùng, khiến việc phân biệt với đầu vào hợp pháp của người dùng ở biên mạng trở nên khó khăn hơn.
  • Mối đe dọa ngay lập tức: Nếu ứng dụng LLM của bạn đang hoạt động và có thể truy cập được qua giao diện web, thì ứng dụng đó đã dễ bị tấn công bởi vectơ này. Đây không phải là bản vá trong tương lai; đó là một trường hợp khẩn cấp hiện tại.

Hãy xem xét các hàm ý: đoạn mã độc quyền, tài liệu nội bộ, dữ liệu khách hàng, khóa API hoặc thậm chí là thao túng tinh vi hành vi LLM của bạn để truyền bá thông tin sai lệch hoặc tạo ra nội dung có hại. Tất cả những điều này có thể được trích xuất hoặc tác động, từng chút một, thông qua một hộp văn bản đơn giản.

Trách nhiệm là của bạn

Đây không phải là vấn đề mà các nhà cung cấp mô hình như OpenAI hay Google có thể khắc phục trong bản cập nhật mô hình tiếp theo của họ. Đây là một vấn đề bảo mật ứng dụng và trách nhiệm giảm nhẹ hoàn toàn thuộc về các nhà phát triển, nhóm bảo mật và CTO triển khai các hệ thống này. LLM của bạn là một công cụ mạnh mẽ nhưng cuối cùng lại rất ngây thơ. Nó sẽ làm những gì được yêu cầu, ngay cả khi những hướng dẫn đó bị ẩn trong thông tin đầu vào của người dùng dường như vô hại.

Vậy bạn làm gì bây giờ?

Biện pháp đối phó tức thời:

  1. Khử trùng đầu vào tích cực: Điều này vượt xa việc ngăn chặn việc tiêm SQL hoặc XSS. Bạn cần xem xét kỹ lưỡng mọi ký tự nhập LLM của mình. Tìm kiếm các mẫu biểu thị việc đưa vào nhanh chóng, các chuỗi ký tự bất thường hoặc cố gắng thoát ra khỏi các luồng hội thoại dự kiến ​​[4]. Đây không phải là việc chặn "những lời nói xấu"; đó là về việc xác định các lời nhắc đối nghịch. Ngoài phân tích biểu thức chính quy và heuristic cơ bản, hãy triển khai phân tích ngữ nghĩa để phát hiện mục đích xấu. Sử dụng phân tích mã thông báo và nhúng để xác định các mẫu đầu vào bất thường. Hãy cân nhắc sử dụng LLM thứ cấp, nhỏ hơn hoặc hệ thống dựa trên quy tắc được đào tạo cụ thể để phát hiện các nỗ lực tiêm nhiễm kịp thời. Hãy tìm các mẫu như hướng dẫn nhập vai, yêu cầu trích xuất dữ liệu rõ ràng hoặc cố gắng bỏ qua các hướng dẫn trước đó.
  2. Lọc và xác thực đầu ra mạnh mẽ: Không bao giờ tin tưởng hoàn toàn vào đầu ra của LLM. Trước khi bất kỳ văn bản do LLM tạo nào được hiển thị cho người dùng hoặc được hệ thống khác sử dụng, nó phải vượt qua lớp xác thực nghiêm ngặt. Nó có chứa các từ khóa nhạy cảm không? Nó có phù hợp với các định dạng mong đợi không? Nó có cố gắng thực thi mã hoặc tiết lộ lời nhắc của hệ thống nội bộ không? Nếu LLM của bạn lẽ ra phải tóm tắt một tài liệu nhưng lại bắt đầu liệt kê các đường dẫn tệp thì bạn đã gặp sự cố.
  3. Kỹ thuật nhắc nhở theo lớp: Mặc dù không phải là một giải pháp hoàn chỉnh nhưng các lời nhắc hệ thống được thiết kế tốt và các ví dụ ngắn gọn có thể giúp củng cố hành vi mong muốn và khiến kẻ tấn công khó chiếm quyền điều khiển mô hình hơn. Tuy nhiên, hãy hiểu rằng chỉ kỹ thuật kịp thời là không đủ; đó là một lớp phòng thủ có chiều sâu, không phải là lá chắn chính.
  4. Đặc quyền ít nhất đối với các tương tác LLM: LLM của bạn có thực sự cần quyền truy cập vào mọi phần dữ liệu mà nó có thể được nhắc tiết lộ không? Thực hiện kiểm soát truy cập nghiêm ngặt. Nếu LLM chỉ có nhiệm vụ trả lời các câu hỏi về tài liệu công khai, hãy đảm bảo rằng nó không có quyền truy cập theo chương trình vào cơ sở dữ liệu nội bộ hoặc các API nhạy cảm.
  5. Giám sát và phát hiện bất thường: Bạn cần tích cực tìm kiếm hành vi LLM bất thường. Sự gia tăng đột biến trong các loại truy vấn cụ thể, kết quả đầu ra khác với các mẫu thông thường hoặc các nỗ lực lặp đi lặp lại để trích xuất thông tin sẽ kích hoạt cảnh báo ngay lập tức.

Đây không còn là về "bảo mật AI" rộng rãi nữa. Đây là về việc bảo vệ lớp tương tác của các ứng dụng LLM của bạn trước một vectơ tấn công cụ thể, đã được chứng minh và có thể khai thác ngay lập tức. Chúng tôi đã và đang xây dựng những hệ thống mạnh mẽ, đáng kinh ngạc này nhưng thường không có đủ các biện pháp bảo mật ở giao diện. Các cuộc biểu tình gần đây đã cho chúng ta thấy chính xác việc khai thác những khoảng trống này dễ dàng như thế nào. Thời gian thảo luận lý thuyết đã qua. Cần có hành động ngay lập tức để bảo mật các ứng dụng LLM.

Nguồn

[1] Top 10 OWASP cho các ứng dụng mô hình ngôn ngữ lớn - https://owasp.org/www-project-top-10-for-large-lingu-model-appluggest/ [2] Lakera Gandalf: Thử thách tiêm thuốc nhắc nhở tương tác - https://gandalf.lakera.ai/ [3] Tấn công tiêm nhắc | Học viện bảo mật web - https://portswigger.net/web-security/llm-Attack/prompt-injection [4] Tiêm thuốc ngay là gì và cách phòng ngừa? - https://www.tenable.com/blog/what-is-prompt-injection-and-how-to-prevent-it


¿Tienes preguntas?

Hablemos

Contáctame en LinkedIn