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

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

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

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

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

Категории

Все категории
Loading categories
deep-pwning — Metasploit для машинного обучения. | Kitploit
Инструменты/GitHubGitHub/cchio/deep-pwning
Фреймворки для пентестаФреймворки для эксплойтовМашинное ОбучениеБезопасность ИИСостязательная Атака
GitHubcchio/deep-pwning

deep-pwning

Metasploit для машинного обучения.

Репозиторий
571132264 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

Заставка Deep-pwning

Deep-pwning — это легковесный фреймворк для экспериментов с моделями машинного обучения с целью оценки их устойчивости против мотивированного противника.

Обратите внимание, что deep-pwning в его текущем состоянии далеко от зрелости или завершения. Он предназначен для того, чтобы вы могли с ним экспериментировать, расширять и дополнять его. Только тогда мы сможем помочь ему стать настоящим инструментом пентестинга для статистических моделей машинного обучения.

Предыстория

Исследователи обнаружили, что удивительно легко обмануть модель машинного обучения (классификатор, кластеризатор, регрессор и т.д.), заставив её принять объективно неверное решение. Эта область исследований называется Adversarial Machine Learning. Не будет преувеличением утверждать, что любой мотивированный злоумышленник может обойти любую систему машинного обучения, имея достаточно информации и времени. Однако эту проблему часто упускают из виду, когда архитекторы и инженеры проектируют и создают системы машинного обучения. Последствия вызывают беспокойство, когда такие системы используются в критических сценариях, например, в медицинской, транспортной, финансовой сферах или сферах, связанных с безопасностью.

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

Этот инструмент был представлен на DEF CON 24 в Лас-Вегасе в августе 2016 года во время доклада под названием Machine Duping 101: Pwning Deep Learning Systems.

Структура

Этот фреймворк построен на основе Tensorflow, и многие включенные примеры в этом репозитории являются модифицированными примерами Tensorflow, взятыми из GitHub-репозитория Tensorflow.

Все включенные примеры и код реализуют глубокие нейронные сети, но их можно использовать для создания состязательных изображений для аналогично настроенных классификаторов, которые не реализованы с помощью глубоких нейронных сетей. Это связано с феноменом 'переносимости' в машинном обучении, который был подробно описан Papernot и др. в этой статье. Это означает, что состязательные образцы, созданные с помощью модели DNN A, могут обмануть другую модель DNN B с иной структурой, а также некоторую модель SVM C.

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

Матрица ошибочной классификации при переносимости

Компоненты

Deep-pwning модуляризирован на несколько компонентов для минимизации повторения кода. Из-за сильно различающейся природы возможных задач классификации текущая версия кода оптимизирована для классификации изображений и фраз (с использованием векторов слов).

Вот модули кода, составляющие текущую версию Deep-pwning:

  1. Драйверы

    Драйверы являются основной точкой выполнения кода. Здесь вы можете связывать различные модули и компоненты и вносить дополнительные настройки в процессы генерации состязательных примеров.

  2. Модели

    Здесь находятся фактические реализации моделей машинного обучения. Например, предоставленное определение модели lenet5 находится в функции model() внутри lenet5.py. Она определяет сеть следующим образом:

       -> Вход
       -> Сверточный слой 1
       -> Слой подвыборки (максимальный пулинг) 1
       -> Сверточный слой 2
       -> Слой подвыборки (максимальный пулинг) 2
       -> Dropout слой
       -> Softmax слой
       -> Выход
    

    LeNet-5

    LeCun и др. [Сверточная нейронная сеть LeNet-5](http://yann.lecun.com/exdb/lenet/)
  3. Состязательный модуль (advgen)

    Этот модуль содержит код для генерации состязательного вывода для моделей. Функция run(), определенная в каждом из этих классов advgen, принимает input_dict, который содержит несколько предопределенных тензорных операций для модели машинного обучения, определенной в Tensorflow. Если модель, для которой вы генерируете состязательный образец, известна, переменные во входном словаре должны основываться на определении этой модели. В противном случае, если модель неизвестна (генерация черного ящика), следует использовать/реализовать модель-заменитель, и следует использовать определение этой модели. Переменные, которые необходимо передать: переменные-заполнители входных тензоров и метки (часто обозначаемые как x -> вход и y_ -> метки), вывод модели (часто обозначаемый как y_conv) и фактические тестовые данные и метки, на которых будут основываться состязательные изображения.

  4. Конфигурация

    Конфигурации приложения.

  5. Утилиты

    Разные утилиты, которые не относятся к другим категориям. Они включают вспомогательные функции для чтения данных, работы с очередями ввода Tensorflow и т.д.

Вот каталоги ресурсов, относящиеся к приложению:

  1. Контрольные точки

    Tensorflow позволяет загрузить частично обученную модель для возобновления обучения или загрузить полностью обученную модель в приложение для оценки или выполнения других операций. Все эти сохраненные 'контрольные точки' хранятся в этом каталоге ресурсов.

  2. Данные

    Этот каталог хранит все входные данные в любом формате, который принимает драйвер приложения.

  3. Вывод

    Это выходной каталог для всех выходных данных приложения, включая сгенерированные состязательные изображения.

Начало работы

Установка

Пожалуйста, следуйте инструкциям по установке Tensorflow, которые можно найти здесь https://www.tensorflow.org/versions/r0.8/get_started/os_setup.html — они позволят вам выбрать бинарный файл Tensorflow для установки.

$ pip install -r requirements.txt

Пример выполнения (с драйвером MNIST)

Для восстановления из ранее обученной контрольной точки. (конфигурация в config/mnist.conf)

$ cd dpwn
$ python mnist_driver.py --restore_checkpoint

Для обучения с нуля. (обратите внимание, что любые предыдущие контрольные точки, находящиеся в папке, указанной в конфигурации, будут перезаписаны)

$ cd dpwn
$ python mnist_driver.py

Список задач

  • Реализовать метод карт значимости для генерации состязательных образцов
  • Добавить модуль defense в проект с примерами некоторых защит, предложенных в литературе
  • Обновить до Tensorflow 0.9.0
  • Добавить поддержку предварительно обученной модели word2vec в sentiment driver
  • Добавить поддержку SVM и логистической регрессии в models (с примером их использования)
  • Добавить пример классификатора, не связанного с изображениями и фразами
  • Добавить поддержку многопроцессорного обучения на GPU для ускорения обучения

Требования

  • Tensorflow 0.8.0
  • Matplotlib >= 1.5.1
  • Numpy >= 1.11.1
  • Pandas >= 0.18.1
  • Six >= 1.10.0

Обратите внимание, что dpwn требует Tensorflow 0.8.0. Tensorflow 0.9.0 вносит некоторые

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