domingo, 15 de mayo de 2011

Mis primeras experiencias con Arduino...

Pues les contaré que llegaron mis placas arduino... tocó mandarselas a un familiar en los united y luego que me los traigan con alguien en equipaje... pero valió la pena la espera...

Había comprado 1 placa arduino uno enun starter kit (el cual incluye algunos sensores, motores, potenciómetros y demás, un ethernet shield y un par de displays para soldar, uno de 16x2 y otro de 128x128 bits... Super contento la verdad... (aunque la verdad que pensé que serían mas grandes)...

Pero mejor, mientras mas pequeños, mas diversión (y mas posibilidades de ocultarlos en algún lugar jejeje...

En fin... retomando el tema, de repente alguno de ustedes no han saben de que estoy hablando, vamos a la fuente, la web oficial de arduino para explicarles...
Arduino es una herramienta para hacer que los ordenadores puedan sentir y controlar el mundo físico a través de tu ordenador personal. Es una plataforma de desarrollo de computación física (physical computing) de código abierto, basada en una placa con un sencillo microcontrolador y un entorno de desarrollo para crear software (programas) para la placa.
Puedes usar Arduino para crear objetos interactivos, leyendo datos de una gran variedad de interruptores y sensores y controlar multitud de tipos de luces, motores y otros actuadores físicos. Los proyecto de Arduino pueden ser autónomos o comunicarse con un programa (software) que se ejecute en tu ordenador (ej. Flash, Processing, MaxMSP). La placa puedes montarla tu mismo o comprarla ya lista para usar, y el software de desarrollo es abierto y lo puedes descargar gratis.


Ahora, creo que una foto vale mas que mil palabras... esta es una placa arduino.


Al final de cuentas lo que tienes es un microprocesador con algunos pocos Kb's de memoria, y algunas interfases digitales y analógicas... para aterrizarlos en valores numéricos, tenemos puertos digitales, (es decir pueden ser 1's o 0's) y analógicos (que para estos fines, maneja valores de 0 a 1023) ahora, los shields, son placas "adicionales" que tienen un diseño hecho para poder "apilar" placas adicionales que permiten añadirles ciertas funcionalidades a nuestra configuración, por ejemplo, la placa ethernet shield, le añade la funcionalidad de conectar la placa arduino a la una red ethernet, así como el ethernet shield, hay shields, de gsm, gps, motor shields, shields de wireless (xbee)...

Cada uno de estos puertos (digitales y/o analógicos) pueden ser utilizados para entrada o para salida, que podríamos entenderlos como de lectura o de escritura, ahora, también es posible conectarle leds (diodos emisores de luz, o "foquitos" si prefieren), potenciómetros para regular
la intensidad de la corriente, resistencias, displays, motores, parlantes, brazos mecánicos a los motores, rotores, sensores de presión, luz, en fin, sensores de lo que se les ocurra y así mil cosas...

bueno, a eso, falta añadirle la aplicación de desarrollo que podemos bajar desde la web, la cual la tenemos en plataformas windows, linux y mac... (así que no hay excusas)...

Hay varios demos, y puden encontrar varios videos en youtube (incluso con audio en castellano) así que no me vengan con excusas...

He visto ciertas adaptaciones como por ejemplo, un arduino que le llamaban el "stalker device", le colocaron una pila para darle poder independiente y portabilidad, una placa de gps para que ubique la posición en el tiempo, y una placa de gsm, para conectarla a la red celular, con eso y una aplicación pequeña hecha en casa, tienen un aparato que dentro de un carro o un maletín puede hacer el seguimiento, y trazado de ruta en google maps para saber en donde anduvo nuestro "dispositivo" y el "transportador" del mismo.

Así también vi otros shields por ejemplo uno de rfid, donde podrías hacer que el shield "simule" ser una tarjeta rfid y acceder una puerta de acceso por rfid utilizando un ataque de "fuerza bruta" o copiando una tarjeta válida.

He visto navegando por ahí que hasta se pueden armar arduinos utilizando protoboards, los "ingredientes" los pueden encontrar en nuestro querido paruro, o en mercadolibre de perú me parece haber visto venta de atmega128 que es el chip "principal" por así decirlo...

Adicionalmente, como les comentaba, había traido unos displays, para soldar... pues no me imaginé que la soldad estaría tan "estrecha", tocó conseguir una de esas lupas con luz blanca, y como que luego de algo de tiempo, práctica y dedicación logramos soldar todas las mini piezas, ya les pondré algunas fotos del resultado, no serán las mejores solduras, pero podemos decir que no sobraron piezas y que el producto funciona...

Así que super contentos y afanados en compartirles en mediano plazo algunos de los mini proyectos... (también hay que trabajar pues... que le vamos a hacer...)

Bueno, ya les iré contando de mis avances...

miércoles, 4 de mayo de 2011

Echenle un ojo a esto... NETinVM

No se si lo habían visto... la verdad que para mi es algo nuevo, pero me encuentro gratamente sorprendido con el mismo, pero dejenme explicarles el porque...

Como ustedes sabrán... hace algún tiempo atrás... era difícil pensar en armar una red en casa, para hacer investigación... Es mas... contar con una red para pruebas, era difícil, incluso en la universidad, para ello debías apoderarte de unas cuantas máquinas del laboratorio, o armar unas viejas máquinas en casa y empezar a hacer tus pruebas... o bueno... la forma mas fácil pero tal vez menos "elegante" hubiera sido aprovechar los miles de equipos que se encontraban "despertigados" por el internet...

Pero a medida que pasan los años uno viene profundizando en sus investigaciones, y a medida que uno se va metiendo en los temas de seguridad, se vuelve... mmmm... digamos... mas "intrusivo"... por lo que pensar en esos miles de equipos en el internet se hace impensable, y aquel laboratorio de cómputo en la universidad ya no puede convertirse en tu "objetivo de ataque", recuerda... otros alumnos también necesitan usar esas PC's... jejeje...

Entonces, la idea de "jugar" en casa era la mas compleja de hacer, pero no la mas irreal... con el tiempo y la difusión de las máquinas virtuales, y la potenciación de equipos que permitían soportar capacidades respetables para levantar mas de un equipo en una pc, era algo bastante probable... de ahí hoy en día encontramos muchos proyectos de maquinas virtuales "de ataque" (como lo fueron PHLAK, PLAC, SLAX, AUDITOR), máquinas de tipo "vulnerables" (DE-ICE, Metasploitable, DVL, entre otras muchas)...

Pues este proyecto me pareció bastante particular por que implementa algo que tenía en mente hacer hace tiempo... pero que por una u otra razón no llegué a hacer... Lo que han hecho es preparar una virtual que levanta una red completa... y cuando digo una red, me refiero a 3 pequeñas redes que simulan ser internet, una red dmz (o zona desmilitarizada), y red una interna. Hasta 6 equipos UML (User-Mode Linux) en cada uno de estos "segmentos", y una máquina adicional que hace las veces de firewall para generar reglas de comunicación entre los tres segmentos.

Todo listo y empacado en una máquina virutal con lo necesario para contar con un laboratorio que podría ser replicado en casa o en donde quisieran...

Ahora, si hay cambios que hacer sobre la red, lo interesante es que basta configurar todo desde un solo equipo y este afecta a los otros.

Me ha parecido un proyecto bastante interesante... y la verdad que empecé a pensar en que podría de repente cambiar un poco la "alineación" e instalar algunas herramientas que permitan darle un poco mas de "realismo" a dicho entorno para hacer simulaciones de evaluaciones de red, de repente levantar un backtrack en una de las máquinas o una versión reducida del mismo, o de repente las mínimas herramientas necesarias para realizar algunas prácticas, y con ello desarrollar laboratorios mas completos... mmm la verdad que me ha parecido super interesante...

Ya tengo la imagen bajando y vamos a ver como se porta en casa con una Core2Duo con 3gigas de RAM, ojalá aguante... ya les iré contando...

Si quieren mas información de NETinVM, les paso el link...

Sitio NETinVM

Salu2

Juan Pablo.