Broken Hill
Broken Hill — это доведённый до production-уровня, готовый к использованию автоматизированный инструмент для атак, который генерирует специально сформированные промпты для обхода ограничений в больших языковых моделях (LLM) с помощью атаки с использованием жадного координатного градиента (GCG), описанной в статье «Universal and Transferable Adversarial Attacks on Aligned Language Models» Энди Цзоу, Цзифань Вана, Николаса Карлини, Милада Насра, Дж. Зико Колтера и Мэтта Фредриксона.
Broken Hill может генерировать устойчивые промпты, которые успешно выполняют джейлбрейк LLM, сконфигурированных иначе, чем модель, использованная для генерации промптов. Например:
- Та же модель, но с бо́льшим или меньшим количеством параметров
- например, промпты были сгенерированы с помощью версии Gemma с 2 миллиардами параметров, но применяются к реализации, основанной на версии Gemma с 7 миллиардами параметров.
- Та же модель, но с весами, квантованными в другие типы
- например, промпты были сгенерированы с помощью версии Phi 3, в которой веса хранятся в формате
FP16, но применяются к версии Phi 3 по умолчанию в ollama, в которой веса квантованы в 4-битный целочисленный формат q4_0.
- Та же модель, но с другими настройками рандомизации
- например, нестандартная температура или случайное начальное значение (random seed).
- Возможно, даже другая модель, отличная от той, которая использовалась для генерации промптов
Этот инструмент частично основан на сильно модифицированной версии репозитория llm-attacks, связанного со статьёй «Universal and Transferable Adversarial Attacks on Aligned Language Models». Он также включает несколько алгоритмов из nanoGCG.
Оригинальное исследование Цзоу, Вана, Карлини, Насра, Колтера и Фредриксона выполнялось на высокопроизводительном облачном оборудовании хостинг-провайдеров с 80 ГиБ видеопамяти, таком как Nvidia A100 и H100. Покупка таких GPU обычно слишком дорога для частных лиц, а аренда доступа к ним может вылиться в крупный счёт.
Нашей первоначальной целью было значительно расширить доступность этой увлекательной области исследований, создав инструмент, который мог бы выполнять атаку GCG против как можно большего числа моделей на GeForce RTX 4090 — потребительском GPU текущего поколения с поддержкой CUDA, обладающем наибольшим объёмом видеопамяти (24 ГиБ). RTX 4090 по-прежнему дорог, но покупка его напрямую (на момент написания) стоит примерно столько же, сколько месячная аренда облачного инстанса с A100 или H100. Кроме того, по крайней мере небольшая часть людей в сфере информационной безопасности уже имеет хотя бы одну RTX 4090 для взлома хэшей и/или игр.
Начиная с версии 0.34, Broken Hill также может выполнять обработку на устройствах без CUDA-оборудования с приемлемой скоростью (хотя и сниженной по сравнению с производительностью, которую обеспечивает CUDA-оборудование) и может использоваться в Mac OS и Windows (хотя в основном он тестируется в Linux). Это позволяет выполнять атаку гораздо более широкой аудитории, а также против значительно более крупных моделей, чем это позволяли предыдущие версии.
Документация
Документация по Broken Hill находится в отдельном дереве каталогов из-за объёма материала.
История версий Broken Hill
Вводный блог-пост, представляющий Broken Hill
Страница инструмента Broken Hill на BishopFox.com
Возможности
- Обширный интерфейс командной строки
- Поддержка множества семейств моделей, многие из которых доступны в размерах, достаточно малых для запуска на RTX 4090 (подробности см. в документе «Model notes»). Некоторые особенности:
- семейство APT от Azurro
- Falcon
- Gemma (включая сторонние производные, такие как
Vikhr-Gemma-2B-instruct)
- Gemma 2
- GLM-4
- GPT-J, GPT-Neo и GPT-NeoX
- Guanaco
- Llama (включая сторонние производные, такие как
Llama-68M-Chat-v1 и alpaca-13b)
- Llama-2 (включая первые и сторонние производные, такие как Meta-Llama-Guard-2, Swallow и Youri)
- Llama-3 (включая первые и сторонние производные, такие как Llama-Guard-3, Swallow и Youko)
- MPT
- Mamba
- Mistral (включая производные сторонние модели, такие как Neural Chat от Intel)
- Mixtral
- OPT
- Orca-2
- Phi-1 – Phi-3.5
- Pythia (включая производные сторонние модели, такие как подмножество моделей OpenAssistant на основе Pythia)
- Qwen 1, 1.5 и 2 (включая сторонние производные, такие как
nekomata-7b-instruction)
- RedPajama-INCITE
- SOLAR
- SmolLM
- Snowflake Arctic
- StableLM 1 и 2
- TinyLlama
- Vicuna
- Результаты могут выводиться в формате JSON для фильтрации/анализа
- Поддержка тестирования каждой итерации состязательных данных против одной и той же LLM с несколькими различными настройками рандомизации, чтобы помочь отсеять хрупкие результаты
- Автоматическое резервное копирование состояния на каждой итерации, позволяющее возобновить работу с контрольной точки в случае ошибки или продолжить выполнение дополнительных итераций после завершения теста.
- Встроенные самотесты, помогающие убедиться, что атака настроена правильно и даст полезные результаты
Запланировано в будущих релизах
- Возможность тестировать или повторно анализировать существующие результаты (против другой модели/конфигурации, с другими правилами обнаружения джейлбрейка и т.д.)
- Позволило бы более простое обнаружение «переносимого» состязательного содержимого
- Позволило бы тестировать результаты против моделей, помещающихся в память устройства, даже когда данные, необходимые для атаки GCG (градиент, данные обратного распространения и т.д.), не помещаются
- Позволило бы тестировать пересмотренные правила обнаружения джейлбрейка без накладных расходов на повторный запуск генерации содержимого
- Более обширные самотесты для дальнейшего уточнения шаблонов диалогов
- Более гибкая модель отката
- Настраиваемые правила рандомизации для генерации более уникальных вариаций («режим Gamma garden»)
- Встроенные функции для вывода данных результатов для последующей работы (вместо использования
jq в текущей версии)
- Улучшенная логика обнаружения джейлбрейка по умолчанию
- Дополнительные алгоритмы функции потерь
- Возможность управления кластером систем, работающих под управлением Broken Hill, координируемых центральным узлом
- Дополнительные режимы атак
- Интернационализация