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
cleverhans — Una biblioteca de ejemplos adversariales para construir ataques, desarrollar defensas y comparar ambos. | Kitploit
Herramientas/GitHubGitHub/cleverhans-lab/cleverhans
Herramientas DefensivasAnálisis de VulnerabilidadesAprendizaje AutomáticoSeguridad de IAAtaque Adversario
GitHubcleverhans-lab/cleverhans

cleverhans

Una biblioteca de ejemplos adversariales para construir ataques, desarrollar defensas y comparar ambos.

Ver Repositorio
6.4k1.4khace 2 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

CleverHans (última versión: v4.0.0)

logo de cleverhans

Este repositorio contiene el código fuente de CleverHans, una biblioteca de Python para evaluar la vulnerabilidad de los sistemas de aprendizaje automático a los ejemplos adversariales. Puedes aprender más sobre estas vulnerabilidades en el blog adjunto.

La biblioteca CleverHans está en continuo desarrollo, y siempre recibe contribuciones de los últimos ataques y defensas. En particular, siempre agradecemos ayuda para resolver los issues actualmente abiertos.

Desde v4.0.0, CleverHans soporta 3 frameworks: JAX, PyTorch y TF2. Actualmente priorizamos la implementación de ataques en PyTorch, pero agradecemos mucho las contribuciones para los 3 frameworks. En las versiones v3.1.0 y anteriores, CleverHans soportaba TF1; el código para v3.1.0 se puede encontrar en cleverhans_v3.1.0/ o revisando una versión anterior de Github.

La biblioteca se centra en proporcionar una implementación de referencia de ataques contra modelos de aprendizaje automático para ayudar a evaluar los modelos frente a ejemplos adversariales.

La estructura de directorios es la siguiente: cleverhans/ contiene implementaciones de ataques, tutorials/ contiene scripts que demuestran las funcionalidades de CleverHans, y defenses/ contiene implementaciones de defensas. Cada framework tiene su propio subdirectorio dentro de estas carpetas, p. ej., cleverhans/jax.

Configuración de CleverHans

Dependencias

Esta biblioteca utiliza Jax, PyTorch o TensorFlow 2 para acelerar los cálculos de grafos realizados por muchos modelos de aprendizaje automático. Por lo tanto, instalar una de estas bibliotecas es un requisito previo.

Instalación

Una vez que las dependencias hayan sido gestionadas, puedes instalar CleverHans usando pip o clonando este repositorio de Github.

Instalación con pip

Si estás instalando CleverHans usando pip, ejecuta el siguiente comando:

root@kitploit:~
pip install cleverhans

Esto instalará la última versión subida a Pypi. Si prefieres instalar la versión más avanzada, usa:

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

Instalación para desarrollo

Si quieres hacer una instalación editable de CleverHans para poder desarrollar la biblioteca y contribuir con cambios, primero haz un fork del repositorio en GitHub y luego clona tu fork en un directorio de tu elección:

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

Luego puedes instalar el paquete local en modo "editable" para añadirlo a tu PYTHONPATH:

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

Configuraciones actualmente soportadas

Aunque es probable que CleverHans funcione en muchas otras configuraciones de máquina, actualmente lo probamos con Python 3.6, Jax 0.2, PyTorch 1.7 y Tensorflow 2.4 en Ubuntu 18.04 LTS (Bionic Beaver).

Obtención de soporte

Si tienes una solicitud de soporte, por favor haz una pregunta en StackOverflow en lugar de abrir un issue en el rastreador de GitHub. El rastreador de issues de GitHub debe solo utilizarse para reportar errores o hacer solicitudes de funciones.

Contribuciones

¡Las contribuciones son bienvenidas! Para acelerar el proceso de revisión de código, pedimos que:

  • Los nuevos esfuerzos y funciones se coordinen en el foro de discusión.
  • Al hacer contribuciones de código a CleverHans, sigas el estilo de codificación Black en tus pull requests.
  • No aceptamos pull requests que añadan submódulos de git debido a los problemas que surgen al mantener submódulos de git.

Las correcciones de errores pueden iniciarse mediante pull requests de Github.

Tutoriales: directorio tutorials

Para ayudarte a comenzar con las funcionalidades que proporciona esta biblioteca, la carpeta tutorials/ incluye los siguientes tutoriales:

  • MNIST con FGSM y PGD (jax, tf2: este tutorial cubre cómo entrenar un modelo MNIST y crear ejemplos adversariales usando el método del signo del gradiente rápido y el descenso de gradiente proyectado.
  • CIFAR10 con FGSM y PGD (pytorch, tf2): este tutorial cubre cómo entrenar un modelo CIFAR10 y crear ejemplos adversariales usando el método del signo del gradiente rápido y el descenso de gradiente proyectado.

NOTA: los tutoriales se mantienen cuidadosamente, en el sentido de que utilizamos integración continua para asegurarnos de que sigan funcionando. No se consideran parte de la API y pueden cambiar en cualquier momento sin previo aviso. No debes escribir código de terceros que importe los tutoriales y esperar que la interfaz no se rompa. Solo la biblioteca principal está sujeta a nuestra regla de aviso de desaprobación de interfaces con seis meses de antelación.

NOTA: por favor, inicia un hilo en el foro de discusión antes de escribir un nuevo tutorial. Debido a que cada nuevo tutorial implica una gran cantidad de código duplicado en relación con los tutoriales existentes, y porque cada línea de código requiere pruebas y mantenimiento continuos indefinidamente, generalmente preferimos no añadir nuevos tutoriales. Cada tutorial debe mostrar una forma extremadamente diferente de usar la biblioteca. Simplemente usar un ataque, modelo o conjunto de datos diferente no es suficiente para justificar el mantenimiento de un tutorial paralelo.

Ejemplos : directorio examples

La carpeta examples/ contiene scripts adicionales para mostrar diferentes usos de la biblioteca CleverHans o para ayudarte a comenzar a competir en diferentes concursos de ejemplos adversariales. No ofrecemos ni mucho menos el mismo mantenimiento o soporte continuo para este directorio que para el resto de la biblioteca, y si el código aquí se rompe, podríamos simplemente eliminarlo sin previo aviso.

Dado que recientemente descontinuamos el soporte para TF1, la carpeta examples/ está actualmente vacía, ¡pero puedes enviar tus usos mediante un pull request :)

Los ejemplos antiguos para CleverHans v3.1.0 y anteriores se pueden encontrar en cleverhans_v3.1.0/examples/.

Informe de benchmarks

Al reportar benchmarks, por favor:

  • Usa una versión publicada de CleverHans. Puedes encontrar una lista de versiones publicadas aquí.
  • Usa la última versión o, si comparas con una publicación anterior, usa la misma versión que la publicación anterior.
  • Informa qué método de ataque se utilizó.
  • Informa cualquier variable de configuración utilizada para determinar el comportamiento del ataque.

Por ejemplo, podrías reportar: "Evaluamos la robustez de nuestro método ante ataques adversariales usando la v4.0.0 de CleverHans. En un conjunto de prueba modificado por el FastGradientMethod con una eps de norma máxima de 0.3, obtuvimos una precisión del 71.3% en el conjunto de prueba."

Cómo citar este trabajo

Si usas CleverHans para investigación académica, te recomendamos encarecidamente (aunque no es obligatorio) citar el siguiente artículo:

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}
}

Sobre el nombre

El nombre CleverHans hace referencia a una presentación de Bob Sturm titulada “Clever Hans, Clever Algorithms: Are Your Machine Learnings Learning What You Think?" y la publicación correspondiente, "A Simple Method to Determine if a Music Information Retrieval System is a 'Horse'." Clever Hans era un caballo que parecía haber aprendido a responder preguntas aritméticas, pero en realidad solo había aprendido a leer señales sociales que le permitían dar la respuesta correcta. En entornos controlados donde no podía ver los rostros de las personas ni recibir otra retroalimentación, era incapaz de responder las mismas preguntas. La historia de Clever Hans es una metáfora de los sistemas de aprendizaje automático que pueden alcanzar una precisión muy alta en un conjunto de prueba extraído de la misma distribución que los datos de entrenamiento, pero que en realidad no entienden la tarea subyacente y se desempeñan mal en otras entradas.

Autores

Esta biblioteca es mantenida colectivamente por el CleverHans Lab de la Universidad de Toronto. El punto de contacto actual es Jonas Guan. Anteriormente fue mantenida por Ian Goodfellow y Nicolas Papernot.

Los siguientes autores contribuyeron con 100 líneas o más (ordenados según la página de contribuyentes de GitHub):

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

Copyright

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

Descargar herramienta