Objetivos:
El objetivo principal del proyecto es el de realizar ensayos y evaluaciones
de diferentes métodos de obtención de contraseñas,
especialmente mediante técnicas de fuerza bruta. Para esto se definieron
dos objetivos secundarios que son: a) construir un
cluster de PC's que permita realizar cálculos en paralelo
a alta velocidad y b) diseñar una aplicación
que efectúe el obtención de contraseñas sobre ese
cluster. Si bien existen publicados varios sistemas muy
eficientes para la obtención de contraseñas (por ejemplo:
l0phtcrack,
john the ripper,
etc.) en este caso se decidió desarrollar un sistema específicamente
preparado para operar en cluster.
Cluster:
Un cluster es un conjunto o arreglo de computadoras,
conectadas a la misma red LAN, que posee la habilidad de compartir la
capacidad de procesamiento de todos los nodos de dicha red en uno de ellos.
Dado que el cisilia es un sistema multiproceso, su mayor potencia es la
de poder realizar la tarea de obtención de contraseñas,
en paralelo, sobre un cluster. En este caso se decidió
utilizar openMosix
que es un cluster del tipo balanceo de cargas
de modo que el sistema mismo es totalmente transparente a las aplicaciones
que corren sobre él. El openMosix
es un derivado de código abierto del Mosix,
y consiste en un parche al núcleo (kernel) de
Linux que permite la migración automática los procesos entre
los nodos en función de la disponibilidad de los recursos de los
mismos. La utilización de sistemas como openMosix o Mosix permite
además la construcción muy rápida de clusters,
mediante el agregado como nodos de equipos que no posean estos sistemas
instalados. Esto puede realizarse utilizando distribuciones especiales
en CD´s booteables de sistemas como Clump/OS
o Plump/OS.
Cisilia:
C isilia es un sistema de obtención de contraseñas en paralelo.
La versión actual cisilia 0.7.3 obtiene contraseñas
de sistemas Windows NT/2000/XP o Samba mediante el cálculo de hashes
DES/MD4. Si bien cisila tiene incorporado un esquema de obtención
de contraseñas mediante diccionario, el objetivo principal es el
de realizar ataques de fuerza bruta en paralelo. Por
ese motivo se programó como sistema multiproceso con la capacidad
de ejecutarse tanto en sistemas multiprocesador (SMP)
como en clusters de PC´s del tipo balanceo
de carga. Cisilia divide los rangos de contraseñas
que va a calcular cada subproceso y crea dichos "n" subprcesos
hijos. Si cisilia se ejecuta en un cluster del tipo balanceo
de carga, los diferentes subprocesos son migrados automáticamente
a los diferentes nodos aumentando así la velocidad de cálculo.
Cisilia cuenta además con un esquema flexible de alimentación
de conjuntos de caracteres que permitirá realizar pruebas con diferentes
conjuntos con el objetivo de acelerar la obtención de contraseñas.
Xisilia:
El xisilia es una interfase gráfica (front-end)
del cisilia que corre sobre Xwindow. La misma permite
iniciar el cisilia pasándole los parámetros
de inicio y verificar en una ventana de estadística los resultados
de los procesos de obtención de contraseñas.
Condiciones iniciales:
Para la construcción del cluster se decidió utilizar Linux
como sistema operativo dada su versatilidad, su calidad de sistema abierto
y su potencia para poder integrarse fácilmente a un cluster. Como
sistema de conexión en cluster se utilizó openMosix
por la posibilidad de creación de clusters heterogéneos
a través de la distribución de carga de acuerdo al nivel
de disponibilidad de los recursos, además de su facilidad de instalación.
Se decidió además programar una aplicación en lenguaje
"C" que calcule contraseñas a partir de sus funciones
"hash" de los sistemas Windows NT/2000/XP ó Samba y Unix
mediante los algoritmos DES/MD4 y MD5 respectivamente.
Estado actual (24-oct-2004):
Se construyó y configuró en el CISIar
un cluster de prueba basado en openMosix
con 4 PC's conectadas en una LAN.
Se desarrolló una aplicación (cisilia) en lenguaje “C”
que calcula contraseñas a partir de "hashes" de Windows
NT/2000/XP ó Samba mediante el algoritmos DES/MD4.
Se desarrolló una interfase gráfica (xisilia) para la aplicación
mencionada anteriormente.
Ambos sistemas están diseñados específicamente para
ejecutarse en un cluster de PC´s sobre Linux.
El proyecto ha sido migrado del CISIar a nuestro laboratorio SI6 de CITEFA.