Безопасность LLM
Тема дорожной карты · Большие языковые модели (LLM)
Безопасность больших языковых моделей (LLM) представляет собой уникальную модель угроз, связанную с генеративными системами. Она включает в себя такие угрозы, как внедрение подсказок (direct и indirect через инструменты или RAG), джейлбрейки, отравление обучающих данных, извлечение модели и подсказок, утечку чувствительных данных через контекст, а также небезопасное использование инструментов, которые могут дать модели реальные побочные эффекты. Эти угрозы требуют специализированных подходов к обеспечению безопасности, таких как принцип наименьших привилегий для инструментов, контент-фильтры, валидация входа и выхода, аудит-логи и red-teaming как часть процесса релиза. Эталонный чек-лист для безопасности LLM — OWASP Top 10 для LLM-приложений.
Как это работает
Безопасность LLM включает в себя защиту от внедрения подсказок (атакующий вставляет инструкции в user-input, которым LLM следует — читайте OWASP LLM Top 10), от данных, выведенных через output (обмануть модель выдать секреты), джейлбрейки (обход safety training), отравление обучающих данных, и угрозы по цепочке поставок (скомпрометированные веса модели, злонамеренные инструменты). Защитные меры включают в себя валидацию входных данных, фильтрацию выходных данных, установление границ для system-промптов, изоляцию возможностей, аудит-логи, red-teaming и различные уровни привилегий между user input и инструкциями.
Когда применять
Относитесь к LLM I/O как к недоверенному с первого дня — user input и LLM output должны проходить через security-границу. OWASP LLM Top 10 — это чек-лист, который помогает определить, какие меры безопасности необходимо применить. Также важно санитизировать tool-input (LLM может сгенерировать ; DROP TABLE users;). Разные LLM следует использовать для "untrusted user" и "trusted system" контекстов, где это важно. Red-team ваш продукт до запуска, чтобы убедиться, что все уязвимости были выявлены и устранены.
Типичные ошибки
Типичные ловушки безопасности LLM включают доверие system-промпту, которое может быть перебито user injection ("ignore previous instructions" иногда работает); использование LLM с доступом к вашим секретам в контексте (не делайте); агенты, которые пишут в БД без подтверждения (later movement); и отсутствие логирования LLM I/O для расследования инцидентов. Эти ошибки могут привести к серьезным последствиям, поэтому важно тщательно контролировать все аспекты взаимодействия с LLM.