Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
deep-pwning — Metasploit para aprendizado de máquina. | Kitploit
Ferramentas/GitHubGitHub/cchio/deep-pwning
Frameworks de Testes de PenetraçãoFrameworks de ExploraçãoAprendizado de MáquinaSegurança de IAAtaque Adversário
GitHubcchio/deep-pwning

deep-pwning

Metasploit para aprendizado de máquina.

Ver Repositório
571132há 3 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Deep-pwning splash

Deep-pwning é um framework leve para experimentar modelos de aprendizado de máquina com o objetivo de avaliar sua robustez contra um adversário motivado.

Note que deep-pwning em seu estado atual está em lugar nenhum perto da maturidade ou conclusão. Ele deve ser experimentado, expandido e estendido por você. Só assim podemos ajudá-lo a se tornar verdadeiramente o kit de teste de penetração para modelos de aprendizado de máquina estatístico.

Background

Pesquisadores descobriram que é surpreendentemente trivial enganar um modelo de aprendizado de máquina (classificador, clusterizador, regressor, etc.) para que tome decisões objetivamente erradas. Esse campo de pesquisa é chamado de Aprendizado de Máquina Adversarial. Não é exagero afirmar que qualquer atacante motivado pode contornar qualquer sistema de aprendizado de máquina, dado tempo e informações suficientes. No entanto, essa questão é frequentemente ignorada quando arquitetos e engenheiros projetam e constroem sistemas de aprendizado de máquina. As consequências são preocupantes quando esses sistemas são colocados em uso em cenários críticos, como nas áreas médica, de transporte, financeira ou relacionadas à segurança.

Portanto, ao avaliar a eficácia de aplicações que usam aprendizado de máquina, sua maleabilidade em um ambiente adversarial deve ser medida juntamente com a precisão e o recall do sistema.

Esta ferramenta foi lançada no DEF CON 24 em Las Vegas, agosto de 2016, durante uma palestra intitulada Machine Duping 101: Pwning Deep Learning Systems.

Estrutura

Este framework é construído sobre o Tensorflow, e muitos dos exemplos incluídos neste repositório são exemplos modificados do Tensorflow obtidos do repositório GitHub do Tensorflow.

Todos os exemplos e código incluídos implementam redes neurais profundas, mas podem ser usados para gerar imagens adversariais para classificadores com tarefas similares que não são implementados com redes neurais profundas. Isso ocorre devido ao fenômeno de 'transferibilidade' no aprendizado de máquina, que foi exposto de forma magistral por Papernot et al. neste artigo. Isso significa que amostras adversariais criadas com um modelo de rede neural profunda A podem ser capazes de enganar outro modelo de rede neural profunda B de estrutura diferente, bem como algum outro modelo SVM C.

Esta figura retirada do artigo mencionado (Papernot et al.) mostra a porcentagem de classificação incorreta adversarial bem-sucedida para um modelo fonte (usado para gerar a amostra adversarial) em um modelo alvo (no qual a amostra adversarial é testada).

Transferability Misclassificaiton Matrixh

Componentes

Deep-pwning é modularizado em vários componentes para minimizar a repetição de código. Devido à natureza extremamente diferente das tarefas de classificação potenciais, a iteração atual do código é otimizada para classificar imagens e frases (usando vetores de palavras).

Estes são os módulos de código que compõem a iteração atual do Deep-pwning:

  1. Drivers

    Os drivers são o ponto de execução principal do código. É aqui que você pode conectar os diferentes módulos e componentes, e onde pode injetar mais customizações nos processos de geração adversarial.

  2. Models

    É aqui que estão localizadas as implementações reais do modelo de aprendizado de máquina. Por exemplo, a definição do modelo lenet5 fornecida está na função model() dentro de lenet5.py. Ela define a rede da seguinte forma:

    root@kitploit:~
       -> Input
       -> Convolutional Layer 1
       -> Max Pooling Layer 1
       -> Convolutional Layer 2
       -> Max Pooling Layer 2
       -> Dropout Layer
       -> Softmax Layer
       -> Output
    

    LeNet-5

    LeCun et al. [LeNet-5 Convolutional Neural Network](http://yann.lecun.com/exdb/lenet/)
  3. Adversarial (advgen)

    Este módulo contém o código que gera a saída adversarial para os modelos. A função run() definida em cada uma dessas classes advgen recebe um input_dict, que contém várias operações de tensor predefinidas para o modelo de aprendizado de máquina definido no Tensorflow. Se o modelo para o qual você está gerando a amostra adversarial for conhecido, as variáveis no dict de entrada devem ser baseadas nessa definição de modelo. Caso contrário, se o modelo for desconhecido (geração em caixa-preta), um modelo substituto deve ser usado/implementado, e essa definição de modelo deve ser usada. As variáveis que precisam ser passadas são as variáveis placeholder do tensor de entrada e os rótulos (frequentemente referidos como -> entrada e -> rótulos), a saída do modelo (frequentemente referida como ), e os dados de teste reais e rótulos nos quais as imagens adversariais serão baseadas.

Estes são os diretórios de recursos relevantes para a aplicação:

  1. Checkpoints

    O Tensorflow permite carregar um modelo parcialmente treinado para retomar o treinamento, ou carregar um modelo totalmente treinado na aplicação para avaliação ou realização de outras operações. Todos esses 'checkpoints' salvos são armazenados neste diretório de recursos.

  2. Data

    Este diretório armazena todos os dados de entrada em qualquer formato que a aplicação driver aceite.

  3. Output

    Este é o diretório de saída para toda a saída da aplicação, incluindo imagens adversariais geradas.

Começando

Instalação

Siga as instruções para instalar o tensorflow encontradas aqui https://www.tensorflow.org/versions/r0.8/get_started/os_setup.html que permitirão escolher o binário do tensorflow para instalar.

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

Exemplo de Execução (com o driver MNIST)

Para restaurar a partir de um checkpoint previamente treinado. (configuração em config/mnist.conf)

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

Para treinar do zero. (note que qualquer checkpoint anterior localizado na pasta especificada na configuração será sobrescrito)

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

Lista de tarefas

  • Implementar método de mapa de saliência para gerar amostras adversariais
  • Adicionar módulo defense ao projeto para exemplos de algumas defesas propostas na literatura
  • Atualizar para Tensorflow 0.9.0
  • Adicionar suporte para usar modelo word2vec pré-treinado no sentiment driver
  • Adicionar suporte a SVM e Regressão Logística em models (+ exemplo que os utiliza)
  • Adicionar exemplo de classificador que não seja de imagem nem de frase
  • Adicionar suporte a treinamento multi-GPU para velocidades de treinamento mais rápidas

Requisitos

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

Note que dpwn requer Tensorflow 0.8.0. O Tensorflow 0.9.0 introduz algumas

Contribuindo

(emprestado do incrível Repositório Requests por kennethreitz)

  • Verifique issues abertas ou abra uma nova issue para iniciar uma discussão sobre uma ideia de funcionalidade ou um bug.
  • Faça um fork do repositório no GitHub para começar a fazer suas alterações no branch master (ou crie um branch a partir dele).
  • Escreva um teste que mostre que o bug foi corrigido ou que a funcionalidade funciona conforme o esperado.
  • Envie um pull request e perturbe o mantenedor até que ele seja mesclado e publicado. :) Certifique-se de adicionar-se ao AUTHORS.md.

Agradecimentos

Há tanto trabalho impressionante de tantos pesquisadores de aprendizado de máquina e segurança que contribuíram direta ou indiretamente para este projeto, e inspiraram este framework. Esta é uma lista inconclusiva de recursos que foram usados ou referenciados de uma forma ou de outra:

Artigos

  • 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

Código

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

Conjuntos de Dados

  • 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)
Baixar ferramenta
x
y_
y_conv
  • Config

    Configurações da aplicação.

  • Utils

    Utilitários diversos que não pertencem a nenhum outro lugar. Estes incluem funções auxiliares para ler dados, lidar com entradas de fila do Tensorflow, etc.