Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
cleverhans — Библиотека состязательных примеров для построения атак, создания защит и сравнительного тестирования тех и других. | Kitploit
Инструменты/GitHubGitHub/cleverhans-lab/cleverhans
Оборонительные ИнструментыАнализ уязвимостейМашинное ОбучениеБезопасность ИИСостязательная Атака
GitHubcleverhans-lab/cleverhans

cleverhans

Библиотека состязательных примеров для построения атак, создания защит и сравнительного тестирования тех и других.

Репозиторий
6.4k1.4k2 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CleverHans (latest release: v4.0.0)

cleverhans logo

Этот репозиторий содержит исходный код CleverHans — библиотеки Python для оценки уязвимости систем машинного обучения к состязательным примерам. Подробнее о таких уязвимостях можно узнать в сопутствующем блоге.

Библиотека CleverHans находится в постоянном развитии и всегда рада вкладу в виде новейших атак и защит. В частности, мы всегда приветствуем помощь в решении открытых вопросов.

Начиная с версии v4.0.0, CleverHans поддерживает 3 фреймворка: JAX, PyTorch и TF2. В настоящее время мы в первую очередь реализуем атаки в PyTorch, но очень приветствуем вклад для всех трёх фреймворков. В версиях v3.1.0 и более ранних CleverHans поддерживал TF1; код для v3.1.0 можно найти в cleverhans_v3.1.0/ или переключившись на более ранний релиз на GitHub.

Библиотека сосредоточена на предоставлении эталонных реализаций атак против моделей машинного обучения, чтобы помочь в сравнительном тестировании моделей на устойчивость к состязательным примерам.

Структура каталогов следующая: cleverhans/ содержит реализации атак, tutorials/ — скрипты, демонстрирующие возможности CleverHans, а defenses/ — реализации защит. Каждый фреймворк имеет свой подкаталог внутри этих папок, например cleverhans/jax.

Настройка CleverHans

Зависимости

Эта библиотека использует Jax, PyTorch или TensorFlow 2 для ускорения графовых вычислений, выполняемых многими моделями машинного обучения. Поэтому установка одной из этих библиотек является обязательным условием.

Установка

После того как зависимости установлены, вы можете установить CleverHans с помощью pip или клонировав этот репозиторий на GitHub.

Установка через pip

Если вы устанавливаете CleverHans с помощью pip, выполните следующую команду:

root@kitploit:~
pip install cleverhans

Будет установлена последняя версия, загруженная на Pypi. Если вместо этого вы хотите установить самую свежую версию, используйте:

root@kitploit:~
pip install git+https://github.com/cleverhans-lab/cleverhans.git#egg=cleverhans

Установка для разработки

Если вы хотите сделать редактируемую установку CleverHans, чтобы иметь возможность разрабатывать библиотеку и вносить изменения обратно, сначала сделайте форк репозитория на GitHub, а затем клонируйте свой форк в каталог по вашему выбору:

root@kitploit:~
git clone https://github.com/<your-org>/cleverhans

Затем вы можете установить локальный пакет в «редактируемом» режиме, чтобы добавить его в ваш PYTHONPATH:

root@kitploit:~
cd cleverhans
pip install -e .

Поддерживаемые в настоящее время конфигурации

Хотя CleverHans, вероятно, будет работать и на многих других конфигурациях машин, в настоящее время мы тестируем его с Python 3.6, Jax 0.2, PyTorch 1.7 и Tensorflow 2.4 на Ubuntu 18.04 LTS (Bionic Beaver).

Получение поддержки

Если у вас есть запрос на поддержку, пожалуйста, задайте вопрос на StackOverflow, а не открывайте issue в трекере GitHub. Трекер issues на GitHub следует использовать только для сообщения об ошибках или запросов новых функций.

Участие в разработке

Вклад приветствуется! Чтобы ускорить процесс рецензирования кода, мы просим:

  • Новые проекты и функции координировать на дискуссионном форуме.
  • При внесении вклада в код CleverHans следует придерживаться стиля кодирования Black в ваших pull request.
  • Мы не принимаем pull request, добавляющие git-подмодули, из-за проблем, возникающих при поддержке git-подмодулей.

Исправления ошибок могут быть инициированы через pull request на GitHub.

Учебные пособия: каталог tutorials

Чтобы помочь вам начать работу с функциями, предоставляемыми этой библиотекой, папка tutorials/ содержит следующие учебные пособия:

  • MNIST с FGSM и PGD (jax, tf2): это руководство рассказывает, как обучить модель MNIST и создать состязательные примеры с помощью метода быстрого градиентного знака и проективного градиентного спуска.
  • CIFAR10 с FGSM и PGD (pytorch, tf2): это руководство рассказывает, как обучить модель CIFAR10 и создать состязательные примеры с помощью метода быстрого градиентного знака и проективного градиентного спуска.

ПРИМЕЧАНИЕ: за учебными пособиями тщательно следят, в том смысле, что мы используем непрерывную интеграцию, чтобы гарантировать их работоспособность. Они не считаются частью API и могут быть изменены в любое время без предупреждения. Вам не следует писать сторонний код, который импортирует учебные пособия, и ожидать, что интерфейс не сломается. Только основная библиотека подлежит нашему правилу шестимесячного предупреждения об устаревании интерфейса.

ПРИМЕЧАНИЕ: пожалуйста, создайте тему на дискуссионном форуме, прежде чем писать новое учебное пособие. Поскольку каждое новое руководство включает большой объём дублирующегося кода по сравнению с существующими руководствами, и поскольку каждая строка кода требует постоянного тестирования и сопровождения бессрочно, мы в целом предпочитаем не добавлять новые руководства. Каждое учебное пособие должно демонстрировать совершенно иной способ использования библиотеки. Просто использование другой атаки, модели или набора данных недостаточно для оправдания поддержки параллельного руководства.

Примеры: каталог examples

Папка examples/ содержит дополнительные скрипты, демонстрирующие различные способы использования библиотеки CleverHans, или помогающие начать участвовать в различных состязаниях по состязательным примерам. Мы не обеспечиваем почти такой же уровень постоянного сопровождения или поддержки для этого каталога, как для остальной части библиотеки, и если код здесь сломается, мы можем просто удалить его без предупреждения.

Поскольку мы недавно прекратили поддержку TF1, каталог examples/ сейчас пуст, но вы можете отправить свои варианты использования через pull request :)

Старые примеры для CleverHans v3.1.0 и более ранних версий можно найти в cleverhans_v3.1.0/examples/.

Отчёт о результатах тестирования

При составлении отчётов о результатах тестирования, пожалуйста:

  • Используйте версионированный релиз CleverHans. Список выпущенных версий можно найти здесь.
  • Либо используйте последнюю версию, либо, если вы сравниваете с более ранней публикацией, используйте ту же версию, что и более ранняя публикация.
  • Укажите, какой метод атаки использовался.
  • Укажите все переменные конфигурации, использованные для определения поведения атаки.

Например, вы можете указать: «Мы оценили устойчивость нашего метода к состязательной атаке, используя v4.0.0 CleverHans. На тестовом наборе, модифицированном с помощью FastGradientMethod с максимальной нормой eps 0,3, мы получили точность на тестовом наборе 71,3%».

Цитирование этой работы

Если вы используете CleverHans в академических исследованиях, настоятельно рекомендуется (хотя и не обязательно) цитировать следующую статью:

root@kitploit:~
@article{papernot2018cleverhans,
  title={Technical Report on the CleverHans v2.1.0 Adversarial Examples Library},
  author={Nicolas Papernot and Fartash Faghri and Nicholas Carlini and
  Ian Goodfellow and Reuben Feinman and Alexey Kurakin and Cihang Xie and
  Yash Sharma and Tom Brown and Aurko Roy and Alexander Matyasko and
  Vahid Behzadan and Karen Hambardzumyan and Zhishuai Zhang and
  Yi-Lin Juang and Zhi Li and Ryan Sheatsley and Abhibhav Garg and
  Jonathan Uesato and Willi Gierke and Yinpeng Dong and David Berthelot and
  Paul Hendricks and Jonas Rauber and Rujun Long},
  journal={arXiv preprint arXiv:1610.00768},
  year={2018}
}

О названии

Название CleverHans отсылает к презентации Боба Штурма под названием «Clever Hans, Clever Algorithms: Are Your Machine Learnings Learning What You Think?» и соответствующей публикации "A Simple Method to Determine if a Music Information Retrieval System is a 'Horse'." Умный Ганс — это лошадь, которая, казалось, научилась отвечать на арифметические вопросы, но на самом деле научилась лишь считывать социальные сигналы, позволявшие ей давать правильный ответ. В контролируемых условиях, когда она не могла видеть лица людей или получать другую обратную связь, она не могла ответить на те же вопросы. История Умного Ганса — это метафора для систем машинного обучения, которые могут достигать очень высокой точности на тестовом наборе, взятом из того же распределения, что и обучающие данные, но которые на самом деле не понимают основную задачу и показывают плохие результаты на других входных данных.

Авторы

Эта библиотека совместно поддерживается CleverHans Lab в Университете Торонто. Текущее контактное лицо — Джонас Гуань. Ранее её поддерживали Иан Гудфеллоу и Николас Паперно.

Следующие авторы внесли 100 или более строк кода (в порядке согласно странице участников GitHub):

  • Ian Goodfellow (Google Brain)
  • Nicolas Papernot (Google Brain)
  • Nicholas Carlini (Google Brain)
  • Fartash Faghri (University of Toronto)
  • Tzu-Wei Sung (National Taiwan University)
  • Alexey Kurakin (Google Brain)
  • Reuben Feinman (New York University)
  • Shiyu Duan (University of Florida)
  • Phani Krishna (Video Analytics Lab)
  • David Berthelot (Google Brain)
  • Tom Brown (Google Brain)
  • Cihang Xie (Johns Hopkins)
  • Yash Sharma (The Cooper Union)
  • Aashish Kumar (HARMAN X)
  • Aurko Roy (Google Brain)
  • Alexander Matyasko (Nanyang Technological University)
  • Anshuman Suri (University of Virginia)
  • Yen-Chen Lin (MIT)
  • Vahid Behzadan (Kansas State)
  • Jonathan Uesato (DeepMind)
  • Florian Tramèr (Stanford University)
  • Haojie Yuan (University of Science & Technology of China)
  • Zhishuai Zhang (Johns Hopkins)
  • Karen Hambardzumyan (YerevaNN)
  • Jianbo Chen (UC Berkeley)
  • Catherine Olsson (Google Brain)
  • Aidan Gomez (University of Oxford)
  • Zhi Li (University of Toronto)
  • Yi-Lin Juang (NTUEE)
  • Pratyush Sahay (formerly HARMAN X)
  • Abhibhav Garg (IIT Delhi)
  • Aditi Raghunathan (Stanford University)
  • Yang Song (Stanford University)
  • Riccardo Volpi (Italian Institute of Technology)
  • Angus Galloway (University of Guelph)
  • Yinpeng Dong (Tsinghua University)
  • Willi Gierke (Hasso Plattner Institute)
  • Bruno López
  • Jonas Rauber (IMPRS)
  • Paul Hendricks (NVIDIA)
  • Ryan Sheatsley (Pennsylvania State University)
  • Rujun Long (0101.AI)
  • Bogdan Kulynych (EPFL)
  • Erfan Noury (UMBC)
  • Robert Wagner (Case Western Reserve University)
  • Erh-Chung Chen (National Tsing Hua University)
  • Joel Frank (Ruhr-University Bochum)

Авторские права

Copyright 2021 - Google Inc., OpenAI, Pennsylvania State University, University of Toronto.

Скачать инструмент