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

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

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

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

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

Категории

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

deep-pwning

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

Репозиторий
57113254 лет назадПроверено 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. Она определяет сеть следующим образом:

    root@kitploit:~
       -> Вход
       -> Сверточный слой 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 для установки.

root@kitploit:~
$ pip install -r requirements.txt

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

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

root@kitploit:~
$ cd dpwn
$ python mnist_driver.py --restore_checkpoint

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

root@kitploit:~
$ 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 вносит некоторые

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

(позаимствовано из замечательного Requests репозитория от kennethreitz)

  • Проверьте открытые issues или создайте новый issue, чтобы начать обсуждение идеи функции или ошибки.
  • Сделайте форк репозитория на GitHub, чтобы начать вносить свои изменения в ветку master (или ответвиться от неё).
  • Напишите тест, который показывает, что ошибка исправлена или что функция работает как ожидается.
  • Отправьте pull request и докучайте мейнтейнеру, пока он не будет принят и опубликован. :) Не забудьте добавить себя в AUTHORS.md.

Благодарности

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

Статьи

  • Szegedy et al. Intriguing properties of neural networks
  • Papernot et al. The Limitations of Deep Learning in Adversarial Settings
  • Papernot et al. Practical Black-Box Attacks against Deep Learning Systems using Adversarial Examples
  • Goodfellow et al. Explaining and Harnessing Adversarial Examples
  • Papernot et al. Transferability in Machine Learning: from Phenomena to Black-Box Attacks using Adversarial Samples
  • Grosse et al. Adversarial Perturbations Against Deep Neural Networks for Malware Classification
  • Nguyen et al. Deep Neural Networks are Easily Fooled: High Confidence Predictions for Unrecognizable Images
  • Xu et al. Automatically Evading Classifiers: A Case Study on PDF Malware Classifiers
  • Kantchelian et al. Evasion and Hardening of Tree Ensemble Classifiers
  • Biggio et al. Support Vector Machines Under Adversarial Label Noise
  • Biggio et al. Poisoning Attacks against Support Vector Machines
  • Papernot et al. Distillation as a Defense to Adversarial Perturbations against Deep Neural Networks
  • Ororbia II et al. Unifying Adversarial Training Algorithms with Flexible Deep Data Gradient Regularization
  • Jin et al. Robust Convolutional Neural Networks under Adversarial Noise
  • Goodfellow et al. Deep Learning Adversarial Examples – Clarifying Misconceptions

Код

  • tensorflow/tensorflow
  • WildML Implementing a CNN for Text Classification in Tensorflow
  • wgrathwohl/captcha_crusher
  • josecl/cool-php-captcha

Наборы данных

  • Krizhevsky et al. The CIFAR-10 dataset
  • LeCun et al. THE MNIST DATABASE of handwritten digits
  • Pang et al. Movie Review Data (v2.0 from Rotten Tomatoes)
Скачать инструмент