Cada semana suelo dedicar un rato en pensar en qué cosas me gustaría
trabajar, qué herramientas me gustaría desarrollar y qué quiero estudiar
en mi tiempo libre, así como también las cosas quiero evitar a toda
costa en mi vida profesional. Lo considero un ejercicio muy entretenido y
que me ayuda a mejorar mi creatividad y a lo mejor, algún día pueda
tirar de algunas de ellas para dedicarme a tiempo completo. “Sueños”
aparte, cuando alguien quiere escribir una herramienta enfocada a la
seguridad, antes de pensar en el lenguaje de programación o requisitos
técnicos/funcionales específicos, es necesario preguntarse, dos cosas:
“por qué” y “para qué”. El “por qué” es importante, ya que permite
definir objetivos claros sobre lo que queremos hacer, una serie de
funciones que pretenden cubrir una necesidad, automatizar alguna tarea
concreta o simplemente por aprendizaje/diversión. Luego, hay que pensar
en el “para qué” y definir si realmente es algo que le va a servir a la
comunidad. Hay que tener en cuenta que es posible que existan otras
herramientas que ya hacen lo mismo que quieres hacer con la tuya y no
tiene sentido reinventar la rueda. Por ejemplo, ¿Quieres desarrollar un
servidor web? bueno… ya existen algunos cuantos muy buenos y si
consideras que puedes hacer algo interesante que no hacen servidores
como Apache o NGINX, cabe preguntarse, ¿No sería mejor hacer un plugin o
un modulo con esa funcionalidad concreta para alguno de esos
servidores?.
¿Quieres hacer un escáner de puertos? bueno… si crees que lo puedes
hacer mejor que Nmap, Hping3, Queso y un largo, larguísimo etcétera de
herramientas que sirven para lo mismo, adelante!.
Para que tu proyecto tenga éxito, tiene que ser novedoso, cubrir una
necesidad concreta y que tenga tu “sello personal”. De esta forma
ganaras visibilidad y la gente podrá ver lo que has hecho. A
continuación, te dejo un listado de 7 ideas de proyectos que a lo mejor
te pueden interesar y si quieres puedes poner en marcha en cualquier
momento.
- Desarrollo de un RAT.
Un RAT es una herramienta que permite la administración remota de un
ordenador y normalmente cuenta con una serie de funciones que permiten,
literalmente, hacer de todo en el ordenador donde se encuentra
instalado el programa. Es un tipo de herramienta que suele ser utilizada
por equipos de mantenimiento para la resolución de incidencias
concretas, sin embargo, también es una herramienta muy común cuando se
habla de cibercrimen y de APTs. Existen muchas herramientas con estas
características y probablemente una de las más conocidas es
“TeamViewer”, pero también han sonado otras como PoisonIvy o DarkComet
en temas relacionados con campañas de APTs de alto nivel.
El beneficio que conseguirás creando una herramienta con estas
características, es la cantidad de conocimientos técnicos que
adquirirás, ya que incluye muchas funciones, tales como la posibilidad
de ejecutar comandos en una consola, subir/descargar ficheros, controlar
cualquier dispositivo conectado al ordenador, etc.
- Plataforma portable de servicios ocultos en redes anónimas como TOR o I2P.
Si tienes servicios ocultos en TOR o I2P, en la mayoría de casos los
ejecutarás desde tu ordenador y punto, pero si para ti es realmente
importante el anonimato y te conectas desde varios ordenadores lo más
probable es que te interese montar y eliminar tus servicios ocultos de
forma automática o si lo haces desde una máquina virtual del estilo de
TAILS, lo que tengas en dicha máquina virtual será eliminado después de
que termines tu trabajo.
Una aplicación interesante puede consistir en el levantamiento automático de una instancia de TOR y de una serie de
servicios ocultos del tipo HTTP, SSH, SMB, etc.
Si por ejemplo, eres un periodista que trabaja en zonas en conflicto y
que utilizas constantemente TOR desde el ordenador que te pille mejor
para compartir privadamente tus reportajes, una plataforma con estas
características puede venir muy bien, ya que se encargará de la
configuración de los servicios ocultos y de levantar los servidores por
ti, en un instante lo tienes todo montado y funcionando.
- Desarrollo de un spider con funciones para análisis de metadatos.
Existen muchas librerías y herramientas para iniciar procesos de
crawling y
scrapping en
aplicaciones web, sin embargo, algo que siempre echo en falta, es la
capacidad de descargar documentos, imágenes y cualquier otro recurso de
una aplicación web y almacenar dicha información de forma “inteligente”
basándome en los metadatos de dichos documentos. Evidentemente, el
proceso de crawling funcionará igual que como lo hacen muchas de las
herramientas y frameworks que existen en el mercado, pero además,
descargarás contenidos como imágenes y documentos basándote únicamente
en una serie de patrones predefinidos. Esto te permite descargar
solamente el contenido que te interesa (independiente de cuál sea tu
interés
:-) )
- Asistente y simulador de reglas para Snort.
Snort es uno de los NIDS más potentes que conozco, además de que se trata de un proyecto Open Source, que desde luego son los que más me gustan. Sin embargo,
crear reglas robustas
y que permitan detectar ataques y amenazas en el segmento de red no es
una tarea para nada trivial, de hecho, conocer todas las directivas que
se pueden utilizar en
una regla de Snort
y su comportamiento es de las cosas más complicadas a las que se puede
enfrentar un administrador de redes que desea mantener su entorno
seguro. Que yo sepa, el desarrollo de este tipo de reglas se hace
manualmente, no conozco herramientas que permitan facilitar su creación y
mucho menos que permitan simular su comportamiento ante diferentes
tipos de ataque. Una buena idea que puede resultar interesante a más de
uno es justamente desarrollar un asistente que permita crear reglas de
Snort de forma interactiva y que una vez creadas, tenga la opción de
levantar Snort y simular su comportamiento llevando a cabo diferentes
tipos de ataques predefinidos en la simulación, como por ejemplo ataques
DoS, escaneos, patrones de shellcodes, etc. Creo que puede ser un
proyecto muy interesante que aportaría un valor enorme a los
administradores de red que diariamente se tienen que pegar con Snort.
- Plataforma de honeypots para múltiples servicios
Un honeypot es un sistema que se encarga de levantar un servicio
determinado que intenta simular un sistema vulnerable, pero sin ser
realmente un servicio utilizado y mucho menos, con recursos sensibles.
Uno de los más conocidos es “Kippo”, un honeypot de un servidor SSH
completo, en el que se puede incluso definir un sistema de archivos y un
usuario y contraseña predecibles, todo esto con el fin de atraer
atacantes. La idea consiste en levantar múltiples honeypots para
diferentes tipos de servicios, tales como SSH, FTP, SMB, HTTP, etc.
Además, utilizar un firewall como NetFilter/IPTables para filtrar todo
el trafico entrante por puertos como el 21, 22, 80, 139, 443, 8080, etc.
Al puerto en el que se encuentre en ejecución el honeypot
correspondiente. Del mismo modo que ocurre con “Kippo”, si un atacante
entra en el sistema utilizando las credenciales intencionalmente
predecibles, la plataforma de honeypot puede ejecutar un “contra-ataque”
contra el atacante. Se trata de una idea que puede ser interesante para
temas relacionados con la ciberdefensa y la seguridad ofensiva. Existen
proyectos similares a éste, como por ejemplo MHN (
http://threatstream.github.io/mhn/)
sin embargo, solamente se limitan al registro de ataques y no en
ejecutar el siguiente paso correspondiente al “contra-ataque”, que puede
consistir simplemente en recolectar información sobre el atacante,
detectar vulnerabilidades y posteriormente realizar las tareas
correspondientes a la explotación y post-explotación.
- Plugins para Tortazo!
Para aquellos que se encuentran interesados en la red de TOR, a lo mejor les resulte útil aprender a escribir plugins para
Tortazo.
No se trata de una herramienta simple, no es fácil de instalar por la
cantidad de dependencias necesarias, tienes que tener ciertos
conocimientos para poder sacarle el máximo provecho y todo esto es así
de forma premeditada ya que la filosofía de Tortazo es “anti-script
kiddies”.
Nunca ha sido mi intención crear una herramienta como Metasploit,
en la que la gente lanza módulos y exploits contra otros sistemas y no
se enteran de qué es lo que realmente están haciendo esas utilidades ni
mucho menos, comprenden el funcionamiento de los exploits que se
ejecutan. Ese tipo de herramientas, aunque son extremadamente útiles y
ahorran mucho tiempo, suelen fomentar la pereza entre novatos y personas
con escasos conocimientos en seguridad, aquellos que quieren las cosas
rápido y fácil, sin dedicar el tiempo suficiente en aprender cómo
funcionan las herramientas que utilizan.
Si te interesa TOR y Tortazo, puedes escribir plugins que se conecten a
la web profunda de TOR utilizando una sencilla API incluida en Tortazo,
la cual tiene funciones para realizar conexiones a diversos tipos de
servicios ocultos (SSH, SMB, FTP, HTTP, etc.) así como también realizar
actividades de recolección de información sobre los repetidores que
conforman la red de TOR.
- Mapeo de redes inalámbricas a nivel metropolitano.
Para aquellos que conocéis
WiGLE,
probablemente ya sepáis de qué va esta idea, para los que no, basta con
comentar que se trata de una base de datos enorme con información sobre
redes inalámbricas a nivel mundial. En la ciudad en la que vivo
actualmente (Madrid) hay redes inalámbricas a cualquier sitio al que te
dirijas, muchas tienen vulnerabilidades fáciles de explotar y otras se
encuentran abiertas (en muchas ocasiones de forma deliberada para atacar
a los clientes que se conectan). WiGLE tiene mucha información de redes
en USA, pero en el caso de España, no veo tantos registros, por este
motivo una buena idea puede ser intentar hacer lo mismo que hace WiGLE
pero con un enfoque distinto, además de identificar y registrar redes
inalámbricas en una base de datos, almacenar también su localización
aproximada, intentar auditarlas intentando ejecutar los vectores de
ataque más comunes (hirte, coffe latte, fragmentación, etc.) y
determinar cuáles son vulnerables. Un programa de estas características
puede funcionar bastante bien si el atacante se encuentra en constante
movimiento, por ejemplo, si se desplaza en transporte público y deja al
programa recibiendo “Beacon Frames” de los puntos de acceso cercanos y
además, realizar las pruebas de penetración típicas contra este tipo de
redes. Se trata de una actividad que en la mayoría de países puede ser
considerada ilegal en el caso de que se acceda sin permisos a dichas
redes, con lo cual lo mejor es limitar el ataque únicamente al
reconocimiento de vulnerabilidades y su posterior registro y aunque no
soy partidario, ni me gusta la gente que se dedica a usar herramientas
como “aircrack-ng” para fastidiar a otros, creo que es un proyecto del
que se puede aprender bastante sobre el funcionamiento de las redes
inalámbricas y sobre cómo crear programas de auditoría contra dichos
entornos de red.
Son simplemente ideas que se me han ido ocurriendo y que a lo mejor,
te pueden resultar interesantes como proyecto a implementar el año que
viene. En fin, otra idea de proyecto puede ser, como propósito general,
aprender a programar mejor, dedicar tiempo y enfocar esfuerzos en
adquirir esos conocimientos que son tan importantes y que os van a
servir para crear cosas novedosas que seguro nos van a sorprender a
todos!
Un Saludo y Happy Hack!
Adastra.
Fuente: http://thehackerway.com/2014/12/16/10-ideas-para-el-desarrollo-de-software-enfocadas-a-la-seguridad-informatica/
No hay comentarios:
Publicar un comentario