Cómo entrenar a tu IA
- December 5, 2016
- cybercaronte
- Juegos Atari
- Juegos Flash
- Juegos con recompensas (juegos con puntuación por ejemplo)
- Tareas con navegadores (navegar, leer, hacer click, etc).
- Mini World of Bits (tareas sencillas muy específicas como leer un texto, identificar formas, etc)
- Tareas con navegadores más reales (reservar un hotel por ejemplo
¿Tienes una IA pero no sabes cómo probarla?
Pues ya no tienes que preocuparte, OpenAI te ofrece su nueva plataforma llamada Universe la cual te permite comprobar y entrenar una IA utilizando juegos, páginas web ó incluso aplicaciones como medio de pruebas.
La base de su funcionamiento es sencillo: hacer que un agente (la IA) utilice un ordenador igual como lo haría un ser humano, es decir, mirando la pantalla (en su caso identificando pixeles) y utilizando el ratón y el teclado. Por lo tanto sólo tenemos que elegir en qué entorno queremos probar nuestra IA y dejamos que vaya adquiriendo experiencia poco a poco. Como hemos comentado antes, los agentes utilizan las interfaces comunes, por lo tanto el agente de la IA funcionará controlando un escritorio remoto observando los pixeles proyectados en la pantalla y generando respuestas tanto en el teclado como en el ratón. El sistema está basado en servidores VNC y la librería propia de Universe permite al agente conectar con ellos.
Estos son los entornos que podemos elegir para realizar nuestras pruebas:
Esta infraestructura permite que cualquier aplicación, juegos, página web, etc que pueda integrarse en un contenedor Docker (este es el entorno ideal) ó en una máquina virtual (este no funciona tan bien como Docker) sea susceptible de ser integrada dentro de Universe. Esto abre otro mundo de posibilidades, como el subir tu propia aplicación, juego, página web, etc y que lo prueben los agentes de OpenAI, un verdadero centro de pruebas realmente útil para tareas de testing.
La instalación es bastante sencilla, sólo necesitas Docker y Universe
$ git clone https://github.com/openai/universe && pip install -e universe
Luego instalamos el port de VNC para poder controlar el teclado y el ratón, además incluimos el tipo de entorno, en el ejemplo son juegos flash:
$ docker run --privileged --cap-add=SYS_ADMIN --ipc=host \ -p 5900:5900 -p 15900:15900 quay.io/openai/universe.flashgames
Finalmente sólo tenemos que conectarnos con nuestro visor VNC al puerto 5900.
Pero claro, para poder hacer las pruebas tenemos que crear nuestro propio agente de IA. Tenemos varias opciones utilizando Frameworks como por ejemplo TensorFlow ó Theano (OpenAI te ofrece la opción de comenzar con un agente inicial creado con Theano). Este agente de pruebas utiliza la librería NumPy para el control de los pixels (o en otras palabras, ver la pantalla), y además genera los eventos necesarios para controlar el ratón y el teclado a través de VNC.
Este es un ejemplo de un agente que activará el juego flash “Dusk Drive” (es un juego de coches) y pulsará la tecla “hacia adelante” (que se realiza con la flecha arriba del teclado) constantemente:
import gym
import universe # register Universe environments into Gym
env = gym.make('flashgames.DuskDrive-v0') # any Universe environment ID here
# If using docker-machine, replace "localhost" with your Docker IP
env.configure(remotes="vnc://localhost:5900+15900")
observation_n = env.reset()
while True:
# agent which presses the Up arrow 60 times per second
action_n = [[('KeyEvent', 'ArrowUp', True)] for _ in observation_n]
observation_n, reward_n, done_n, info = env.step(action_n)
env.render()
Puedes simplemente estar como observador viendo como juega la AI o puedes unirte también para jugar en modo cooperativo.
Para que veáis que la cosa va en serio, estos son sólo algunas de las aplicaciones y juegos que dan soporte a OpeanAI para este proyecto:
Portal, Fable Anniversary, World of Goo, RimWorld, Slime Rancher, Shovel Knight, SpaceChem, Wing Commander III, Command & Conquer: Red Alert 2, Syndicate, Magic Carpet, Mirror's Edge, Sid Meier's Alpha Centauri, y Wolfram Mathematica.
Un proyecto realmente espectacular sobre el cual tendremos que hacer un seguimiento exhaustivo. Además, seguro que más de uno ya está pensando en cómo sacar partido a esta plataforma para montar un entorno de pentesting para temas de seguridad ¿verdad? ;)
Un teorema para cada día
- December 4, 2016
- cybercaronte
Siguiendo la misma filosofía de otras páginas web como por ejemplo, Astronomy Picture of the Day, esta página nos ofrece una breve pero muy completa explicación de un teorema cada día:
Además cada teorema se publica en PDF en formato “cheat sheet” el cual suele ocupar una sola página, pero con una completa descripción y explicación del mismo.
En este enlace puedes ver una lista con todos los teoremas publicados hasta ahora.
Vídeos de App Sec USA 2016
- November 15, 2016
- tuxotron
- Cleaning Your Applications' Dirty Laundry with Scumblr - AppSecUSA 2016
- Everything is Terrible: Three Perspectives on Building, Configuring, and Securing Software
- HTTPS & TLS in 2016: Security practices from the front lines - AppSecUSA 2016
- Justin Collins - Practical Static Analysis for Continuous Application Security - AppSecUSA 2016
- Using language-theoretics and runtime visibility to align AppSec with DevOps - AppSecUSA 2016
- Manideep Konakandla - Breaking and Fixing your âDockerâ ized environments - AppSecUSA 2016
- Chris Gates & Ken Johnson - DevOops: Redux - AppSecUSA 2016
- Zane Lackey - Practical tips for web application security in the age of agile and DevOps
- Chenxi Wang - Protect Containerized Applications With System Call Profiling - AppSecUSA 2016
- Scaling Security Assessment at the Speed of DevOps - AppSecUSA 2016
- Yair Amit - The Ways Hackers Are Taking To Win The Mobile Malware Battle - AppSecUSA 2016
- Your License for Bug Hunting Season - AppSecUSA 2016
- When encryption is not enough: Attacking Wearable - AppSecUSA 2016
- Jimmy Mesta - Containerizing your Security Operations Center - AppSecUSA 2016
- Practical Tips For Running A Successful Bug Bounty Program - AppSecUSA 2016
- Simon Thorpe - Why using SMS in the authentication chain is risky - AppSecUSA 2016
- Marco Lancini - Needle: Finding Issues within iOS Applications - AppSecUSA 2016
- Patterns of Authentication and Self-Announcement in IoT - AppSecUSA 2016
- [AUDIO] Should there be an Underwriters Laboratories certification for software in IoT products?
- Arshan Dabirsiaghi - How To Find The Next Great Deserialization CVE - AppSecUSA 2016
- Stephen De Vries - Threat Modeling With Architectural Risk Patterns - AppSecUSA 2016
- Kevin Johnson & Jason Gillam - Next Gen Web Pen Testing - AppSecUSA 2016
- Dave Lewis - Barbarians at the Gate(way) - AppSecUSA 2016
- Eric Johnson - Continuous Integration: Live Static Analysis using Visual Studio & the Roslyn API
- Matt Tesauro - AppSec++ Take the best of Agile, DevOps and CI/CD into your AppSec Program
- Dan Kuykendall - SPArring with the Security of Single Page Applications - AppSecUSA 2016
- Automating API Penetration Testing using fuzzapi - AppSecUSA 2016
- James Kettle - Exploiting CORS Misconfigurations for Bitcoins and Bounties - AppSecUSA 2016
- Evan Johnson - Misconfigured CORS and why web appsec is not getting easier - AppSecUSA 2016
- Ofer Maor - Putting an 'I' in Code Review Turning Code Reviewing Interactive - AppSecUSA 2016
Ya están disponibles los vídeos de las presentaciones de App Sec USA 2016
Buscar
Entradas Recientes
- Posts
- Reemplazando la bateria del AirTag
- OpenExpo Europe décima edición, 18 de mayo: El Epicentro de la Innovación y la Transformación Digital
- Docker Init
- Kubernetes para profesionales
- Agenda: OpenExpo Europe 2022 llega el 30 de junio en formato presencial
- Libro 'Manual de la Resilencia', de Alejandro Corletti, toda una referencia para la gestión de la seguridad en nuestros sistemas
- Mujeres hackers en ElevenPaths Radio
- Creando certificados X.509 caducados
- Generador de imágenes Docker para infosec