Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
deep-pwning — Metasploit para aprendizaje automático. | Kitploit
Herramientas/GitHubGitHub/cchio/deep-pwning
Frameworks de Pruebas de PenetraciónFrameworks de ExploitsAprendizaje AutomáticoSeguridad de IAAtaque Adversario
GitHubcchio/deep-pwning

deep-pwning

Metasploit para aprendizaje automático.

Ver Repositorio
571132hace 3 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Deep-pwning splash

Deep-pwning es un framework ligero para experimentar con modelos de aprendizaje automático con el objetivo de evaluar su robustez frente a un adversario motivado.

Tenga en cuenta que deep-pwning en su estado actual está lejos de madurez o completitud. Está pensado para que experimentes con él, lo expandas y lo extiendas. Solo así podremos ayudarlo a convertirse realmente en el kit de herramientas de pruebas de penetración para modelos de aprendizaje automático estadístico.

Antecedentes

Los investigadores han descubierto que es sorprendentemente trivial engañar a un modelo de aprendizaje automático (clasificador, agrupador, regresor, etc.) para que tome decisiones objetivamente incorrectas. Este campo de investigación se llama Aprendizaje Automático Adversario. No es una exageración afirmar que cualquier atacante motivado puede eludir cualquier sistema de aprendizaje automático, dada suficiente información y tiempo. Sin embargo, este problema a menudo se pasa por alto cuando los arquitectos e ingenieros diseñan y construyen sistemas de aprendizaje automático. Las consecuencias son preocupantes cuando estos sistemas se ponen en uso en escenarios críticos, como en los campos médico, de transporte, financiero o relacionados con la seguridad.

Por lo tanto, al evaluar la eficacia de las aplicaciones que utilizan aprendizaje automático, su maleabilidad en un entorno adversario debe medirse junto con la precisión y el recall del sistema.

Esta herramienta fue lanzada en DEF CON 24 en Las Vegas, agosto de 2016, durante una charla titulada Machine Duping 101: Pwning Deep Learning Systems.

Estructura

Este framework está construido sobre Tensorflow, y muchos de los ejemplos incluidos en este repositorio son ejemplos de Tensorflow modificados obtenidos del repositorio de Tensorflow en GitHub.

Todos los ejemplos y código incluidos implementan redes neuronales profundas, pero se pueden usar para generar imágenes adversarias para clasificadores con tareas similares que no estén implementados con redes neuronales profundas. Esto se debe al fenómeno de 'transferibilidad' en el aprendizaje automático, del cual hablaron expertamente Papernot et al. en este artículo. Esto significa que las muestras adversarias creadas con un modelo DNN A pueden engañar a otro modelo DNN B con estructura diferente, así como a algún otro modelo SVM C.

Esta figura tomada del artículo mencionado anteriormente (Papernot et al.) muestra el porcentaje de clasificaciones erróneas adversarias exitosas para un modelo fuente (utilizado para generar la muestra adversaria) en un modelo objetivo (sobre el cual se prueba la muestra adversaria).

Matriz de clasificación errónea por transferibilidad

Componentes

Deep-pwning está modularizado en varios componentes para minimizar la repetición de código. Debido a la naturaleza muy diferente de las posibles tareas de clasificación, la iteración actual del código está optimizada para clasificar imágenes y frases (usando vectores de palabras).

Estos son los módulos de código que componen la iteración actual de Deep-pwning:

  1. Drivers

    Los drivers son el punto de ejecución principal del código. Aquí es donde puedes unir los diferentes módulos y componentes, y donde puedes inyectar más personalizaciones en los procesos de generación adversaria.

  2. Models

    Aquí es donde se encuentran las implementaciones reales de los modelos de aprendizaje automático. Por ejemplo, la definición del modelo lenet5 proporcionado se encuentra en la función model() dentro de lenet5.py. Define la red de la siguiente manera:

    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. [Red Neuronal Convolucional LeNet-5](http://yann.lecun.com/exdb/lenet/)
  3. Adversarial (advgen)

    Este módulo contiene el código que genera la salida adversaria para los modelos. La función run() definida en cada una de estas clases advgen toma un input_dict, que contiene varias operaciones de tensor predefinidas para el modelo de aprendizaje automático definido en Tensorflow. Si el modelo para el que estás generando la muestra adversaria es conocido, las variables en el dict de entrada deben basarse en esa definición del modelo. De lo contrario, si el modelo es desconocido (generación de caja negra), se debe usar/implementar un modelo sustituto, y se debe usar esa definición del modelo. Las variables que deben pasarse son las variables placeholder del tensor de entrada y las etiquetas (a menudo denominadas -> entrada y -> etiquetas), la salida del modelo (a menudo denominada ), y los datos de prueba reales y las etiquetas en las que se basarán las imágenes adversarias.

Estos son los directorios de recursos relevantes para la aplicación:

  1. Checkpoints

    Tensorflow te permite cargar un modelo parcialmente entrenado para reanudar el entrenamiento, o cargar un modelo completamente entrenado en la aplicación para evaluación o realización de otras operaciones. Todos estos 'checkpoints' guardados se almacenan en este directorio de recursos.

  2. Data

    Este directorio almacena todos los datos de entrada en el formato que la aplicación controladora acepte.

  3. Output

    Este es el directorio de salida para toda la salida de la aplicación, incluidas las imágenes adversarias generadas.

Primeros pasos

Instalación

Siga las instrucciones para instalar tensorflow que se encuentran aquí https://www.tensorflow.org/versions/r0.8/get_started/os_setup.html, lo que le permitirá elegir el binario de tensorflow a instalar.

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

Ejemplo de ejecución (con el driver MNIST)

Para restaurar desde un checkpoint previamente entrenado. (configuración en config/mnist.conf)

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

Para entrenar desde cero. (tenga en cuenta que cualquier checkpoint anterior ubicado en la carpeta especificada en la configuración se sobrescribirá)

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

Lista de tareas

  • Implementar el método de mapa de saliencia para generar muestras adversarias
  • Agregar el módulo defense al proyecto para ejemplos de algunas defensas propuestas en la literatura
  • Actualizar a Tensorflow 0.9.0
  • Agregar soporte para usar modelo word2vec preentrenado en sentiment driver
  • Agregar soporte para SVM y Regresión Logística en models (+ ejemplo que los use)
  • Agregar ejemplo de clasificador que no sea de imágenes ni de frases
  • Agregar soporte de entrenamiento multi-GPU para velocidades de entrenamiento más rápidas

Requisitos

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

Tenga en cuenta que dpwn requiere Tensorflow 0.8.0. Tensorflow 0.9.0 introduce algunos

Contribuciones

(tomado del increíble repositorio Requests de kennethreitz)

  • Verifique si hay problemas abiertos o abra un nuevo problema para iniciar una discusión sobre una idea de funcionalidad o un error.
  • Haga un fork del repositorio en GitHub para comenzar a hacer sus cambios en la rama master (o cree una rama a partir de ella).
  • Escriba una prueba que demuestre que el error fue corregido o que la funcionalidad funciona como se espera.
  • Envíe un pull request y moleste al mantenedor hasta que se fusione y publique. :) Asegúrese de agregarse a AUTHORS.md.

Agradecimientos

Hay tanto trabajo impresionante de tantos investigadores de aprendizaje automático y seguridad que contribuyeron directa o indirectamente a este proyecto e inspiraron este framework. Esta es una lista no concluyente de recursos que se utilizaron o referenciaron de una u otra manera:

Artículos

  • 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 datos

  • 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)
Descargar herramienta
x
y_
y_conv
  • Config

    Configuraciones de la aplicación.

  • Utils

    Utilidades misceláneas que no pertenecen a ningún otro lugar. Estas incluyen funciones auxiliares para leer datos, manejar entradas de cola de Tensorflow, etc.