Estudio sobre Hackers
Por Dr. Williams
¿Cómo se ve un hacker desde el punto de vista del
administrador de un sistema? Un estudiante universitario
se hizo esa pregunta y llegó a interesantes conclusiones,
las que cuenta en esta nota.
En "Hacker's Handbook" (Manual del Hacker), en la página
123, Hugh Cornwall expuso su idea de instalar la PC que
tiene en su casa para que parezca y funcione como un
mainframe. Dejaría que los hackers trataran de acceder a
dicho sistema mientras él monitoreaba los resultados. La
intención era que su sistema hogareño emulara el M15,
hasta el momento el objetivo más frecuentado por los
hackers británicos. Ellos ingresarían al sistema emulado
e intentarían acceder a los diferentes niveles de
privilegio, cuando sin saberlo estarían en realidad
tratando de ingresar al sistema de Cornwall. Hugh no
llevó a cabo el plan, aunque había realizado una
sofisticada emulación del M15. Justo en el momento en el
que iba a comenzar a poner en práctica el plan en
cuestión, un empleado disgustado con él abandonó el
equipo de trabajo del M15 y acudió a la prensa, poniendo
en descubierto todo el proyecto. Hugh pensó que si
llevaba a cabo el plan después de este episodio se le
presentarían problemas, o al menos más publicidad de la
que quería, por lo que decidió abandonar ese proyecto.
Llevé a cabo esta idea por mis propios medios y pensé que
los resultados serían interesantes.
Había terminado recientemente un curso en sistemas
operativos. En dicho curso se utilizó MINIX como modelo
para estudiar y modificar. MINIX es un sistema operativo
compatible con la versión 7 de UNIX, especificamente
creado para correr en IBM y sus clones. Tiene más de
12.000 líneas de código fuente escrito en C. Después de
finalizar las clases, decidí usar MINIX porque pensé que
podría ser el que daría mejores resultados para simular
un sistema de computación grande bajo el disfraz de UNIX.
Me llevó cierto tiempo construir un "pseudo sistema"
apropiado; es decir, un sistema que yo creyera que era
capaz de hacer creer a usuarios con poca experiencia en
UNIX que en realidad se trataba de un sistema UNIX. Por
otra parte, hubiese excedido ampliamente las
posibilidades de mi máquina si hubiera intentado llevar a
cabo todas las operaciones necesarias para engañar a
usuarios expertos en UNIX sin considerar, además, las
limitaciones de tiempo que yo tenía. Primero debí
reformatear mi disco rígido para el sistema operativo
MINIX. Luego, debí escribir un device driver para usar el
módem, tarea que me insumió bastante tiempo. Tuve que
cambiar apariencias físicas: los nombres de los archivos,
directorios, sintaxis de los diversos ítems y estilo de
emulación. Agregué algunas características, incluyendo
juegos, archivos con nombres interesantes, ítems que
pudieran llamar la atención y recursos de correo
adicionales. Finalmente, escribí un programa que sería el
encargado de efectuar realmente la mímica y que además
recopilaría las estadísticas de actividades de los
usuarios. En total, utilicé seis meses de valioso tiempo
libre para obtener un sistema satisfactorio.
El programa fue pensado para imitar a UNIX en todo
sentido. En varias oportunidades mostraría a distintos
usuarios conectados al sistema, la ejecución de
diferentes procesos, cupos de disco, estadísticas de
terminales, espacios libres, estado de tareas de
impresoras, etc. Mostraría también diferentes discos y
disponía de la mayoría de los archivos que usa UNIX para
efectuar funciones administrativas y del sistema, como
así también, planificaciones de backups.
Estuve tentado de incluir en la entrada una leyenda que
dijese: "Nodo Boeing #2, por favor conéctese", o "General
Dynamics Puesto 3, terminal 2". Sin embargo, pensé que
esto sólo podría ocasionarme problemas o llamar demasiado
la atención, por lo que decidí incluir una aproximación
más genérica.
BN Puesto #2
Por favor conéctese:
Después de efectuar la conexión, la primera pantalla era:
*********************************************************
Se produjo una caída del sistema en /grupo3 el 8/6/89 a
las 03:00 aprox. Se borraron algunos archivos de ese
puesto de trabajo. Controle su cuenta para verificar la
integridad de sus archivos. Llame a los operadores al
Interno 3524 si necesita usar alguno de los archivos de
backup. Se realizará una reunión en la cafetería el
24/6/93 al mediodía (durante el horario de almuerzo),
para todos los empleados que deseen formar un grupo
interesado en el tema de aviones y autos comandados por
control remoto. Póngase en contacto con Jeff Smith
llamando al interno 2146, para mayores detalles.
*********************************************************
Y el prompt del sistema era:
Junio[1]
Cada vez que se ingresara un comando, el número que está
entre corchetes se incrementaría en uno.
En el programa, dejé algunos bugs famosos de UNIX,
esperando que alguien intentara manipular la cuenta para
tratar de obtener más privilegios. Dejé los bugs del
sistema de correo y la posibilidad de escribir comandos
para la línea 25 utilizando el
mismo sistema de encriptación para el archivo de
passwords que usa UNIX, además de algunos otros ítems de
menor importancia. Para tentar todavía más a los posibles
hackers, incluí algunos juegos que sólo podrían
ejecutarse con privilegios, y archivos con nombres
tentadores como CAR.DATA, PRIVATE.DOC Y DOCUM.SECRT, los
que sólo se podrían leer con privilegios. Cada vez que el
que llamaba se desconectaba, volvía a colocar todos los
elementos en su definición original; incluyendo algunas
de las posibilidades o privilegios obtenidos durante la
conexión. Por lo tanto, si una persona lograba conectarse
más de una vez, debía comenzar desde cero cada vez. No me
agradaba hacer esto, pero como pensaba que mucha gente
utilizaría pocas cuentas, supuse que parecería menos
creíble si la cuenta cambiaba drásticamente cada vez que
la persona se conectaba a ella. Esto también me ayudó a
obtener observaciones más precisas. En aquel momento, un
amigo me prestó el teléfono de su habitación del
dormitorio estudiantil por algunos meses, ya que estaría
afuera durante cierto tiempo. Por lo tanto, instalé allí
la computadora y la dejé correr.
Quería destinar las cuentas a tres objetivos diferentes:
aspirantes a hackers, hackers experimentados y grupos
universitarios. En los BBSs en los que tenía privilegios
de hacker, ingresé un mensaje indicando a los usuarios
que llamaran a este interesante sistema que había
descubierto. El mensaje decía algo así:
"He descubierto una cuenta correspondiente a un sistema
UNIX en el 555-5555.
El nombre de la cuenta es 'PAULS', y la contraseña es
'dog$car'. ¡Que se diviertan!"
Un día después, dejé el mismo tipo de mensaje en
diferentes BBSs en los que sólo tenía priviliegios
normales para conectarme, pero donde habían muchos
chicos. Cambié el nombre y la password de la cuenta. Por
último, una semana más tarde comenté verbalmente a
algunos de mis amigos de la universidad que había
descubierto este sistema, pero les di una combinación de
cuenta/contraseña diferente.
Por supuesto, sucedió algo que había previsto, ya que
varios sysops en cuyos sistemas yo había dejado el
mensaje destinado a los chicos borraron dicho mensaje.
Más de la mitad de ellos habían borrado el mensaje en
cuestión en apenas unas horas. La otra mitad, borró el
mensaje un día después. Igualmente, los mensajes
cumplieron su cometido, porque ya habían sido leídos por
gran cantidad de personas. Estuve tentado de decirle a
los sysops en cuyos sistemas había ingresado los
mensajes, que todo se trataba de una trampa, un
experimento, pero pensé que algunos de ellos no serían
capaces de mantener en secreto esta información.
Algo que también esperaba fue que gran cantidad de sysops
me enviaron notas de respuesta furiosos porque les había
dejado ese mensaje. La mayoría de ellos pensó que los
estaba poniendo en peligro legal (es comprensible). Otros
dijeron que sus BBSs no estaban destinados a manejar ese
tipo de información, amenazaron con informar a la policía
sobre el particular y me advirtieron que nunca más dejara
ese tipo de mensajes, e incluso borraron mi cuenta del
BBS (no fue ninguna pérdida para mi). Ninguno de los
mensajes destinados a los hackers se perdió. Envié 17
veces el mensaje destinado a los chicos, 6 veces el
destinado a los hackers experimentados y le comenté mi
descubrimiento a 4 amigos que sabía que se lo contarían a
algunas otras personas.
Supongo que si alguien se hubiese detenido a pensar un
instante, habría llegado a la conclusión de que era una
incoherencia distribuir una combinación de
cuenta/contraseña en un BBS público en el que cualquiera
puede leerla. Una de dos, o yo habría sido realmente
soberbio, o tenía motivaciones ulteriores.
Transcurridas ocho horas de enviado el mensaje, el
sistema recibió la primera llamada. En realidad, yo
esperaba que fuese alguien que supiera lo que estaba
haciendo. Quería saber si alguien era capaz de sortear
los obstáculos que yo había establecido para alcanzar
mayores privilegios. La primera persona no pareció estar
familiarizada con el sistema operativo UNIX, estuvo un
largo rato intentando ejecutar comandos MS-DOS. No pudo
crear un directorio de disco ni efectuar otras
operaciones básicas de UNIX. En rigor de verdad, para
quien no está familiarizado con UNIX, este sistema
operativo resulta sencillamente poco amigable.
Las personas que llamaron después parecieron tener
mayores conocimientos sobre lo que estaba sucediendo. Se
conectaron bajo el número de cuenta destinado a los
hackers más experimentados. Lograron encontrar los
atributos de la cuenta, echaron un vistazo general para
conocer el sistema en su aspecto global y analizaron cuál
era el rango del sistema. Algunos otros consiguieron
localizar unos cuantos objetivos de interés que yo había
preparado a tal efecto, pero no accedieron a ellos.
Luego, la cuenta de los chicos tuvo un pico de uso muy
alto. La mayoría de las personas que se conectaron en esa
oportunidad no estaban familiarizados con el sistema
UNIX. Algunos de ellos tenían conocimientos superficiales
sobre comandos básicos pero realmente no sabían cómo
manejar la máquina.
Por último, comenzaron a ingresar algunos pocos llamados
de la cuenta destinada al grupo universitario. La mayoría
de ellos no perdieron demasiado tiempo en la cuenta. Como
tenían mayores conocimientos sobre el tema, le dieron un
vistazo general al sistema y lo abandonaron. Sólo uno o
dos de ellos intentó utilizar algunos de los comandos más
sofisticados que funcionan bajo UNIX pero no bajo MINIX.
Durante un período de más de dos meses pude observar
cuáles fueron los atributos de uso generales. No se
cuántas personas individuales se conectaron a la cuenta,
pero mantuve una estadística precisa de la cantidad de
veces que se usó la misma. Observando el registro de
comandos de la cuenta de los chicos y jóvenes,
aproximadamente la mitad de su tiempo de uso fue empleado
por personas que no estaban familiarizadas con UNIX. Fue
una característica entre estos usuarios la utilización de
comandos MS-DOS o comandos de otros tipos de PCs, su
incapacidad para acceder al archivo de ayuda y la falta
de experiencia con el entorno UNIX. Aproximadamente una
cuarta parte del uso de esta cuenta fue efectuado por
personas que sólo tenían conocimientos básicos de UNIX.
Pudieron encontrar la estructura básica de la cuenta y
del sistema y jugar un poco con el mismo, pero no fueron
capaces de llevar a cabo ninguna operación sofisticada.
La última cuarta parte estuvo compuesta por usuarios
competentes, como mínimo; algunos de ellos con bastante
experiencia. Pudieron descubrir los ítems de interés,
encontraron la mayoría de los ítems importantes, pudieron
obtener mayores privilegios de acceso y además intentaron
ocultar la cuenta que habían utilizado.
De alrededor del 50 por ciento de los usuarios que
pudieron manejarse de manera competente con UNIX, sólo un
tercio de ellos intentó obtener privilegios. Los otros
dos tercios debieron contentarse con permanecer en el
nivel de privilegio que tenían. Entre los restantes, el
método más popular que utilizaron para obtener mayores
privilegios fue leer el archivo de passwords, que tal
como sucede en UNIX, lo puede leer cualquiera sin
inconvenientes, pero está encriptado. Esto no me
sorprendió, ya que el Gusano de Morris utilizó
básicamente el mismo método. Varios artículos trataron el
tema y algunos de ellos hasta mostraron paso a paso, como
si fuese un libro de recetas de cocina, el procedimiento
a seguir. Los usuarios tratarían de desencriptar el
archivo de contraseñas y obtener así la contraseña de la
cuenta raíz. El siguiente método más común consistió en
escribir comandos en la línea 25 de una cuenta con
privilegio más alto. Esto tampoco me sorprendió, ya que
mucho se ha hablado al respecto y el método es bastante
conocido. El resto estuvo repartido de manera pareja
entre los bugs de correo, la búsqueda de bugs en comandos
que corren shells en modalidades privilegiadas, o bien
probando algún otro método.
Del tercio de usuarios que quedó, el 32 por ciento de
ellos logró elevar los niveles de privilegio que otorgaba
la cuenta. Sin contar ese 32 por ciento, el 68 por ciento
restante de las personas que pudieron ingresar lograron
como mínimo privilegios de operador.
Fuera de ese 68 por ciento mencionado, el 18 por ciento
(25 personas) consiguieron acceder a privilegios de
directorio raíz. Sin embargo, no sé si en realidad se
trató de una sola persona que obtuvo 25 veces el
privilegio de directorio raíz, o si fueron 25 personas
diferentes que lo lograron solo una vez. El programa que
escribí sólo simulaba dicho privilegio, pero no permitía
el control total de la máquina.
La sofisticación y conocimientos de los usuarios
estuvieron directamente relacionados con la cantidad de
cosas tontas que cada uno de ellos hizo. Algunos de los
chicos hicieron cosas realmente tontas, como crear
archivos que decían algo así: "Ja, ja, ja. Soy un hacker
y me metí en su sistema", borrando archivos y editando
otros de manera obvia. Otros merodearon por todo el
sistema, verificando cada uno de los archivos existentes
en cada subdirectorio. En los casos de ítems que no eran
tan obvios, utilizaron en exceso los archivos de ayuda,
ingresando varias veces comandos incorrectos de manera
reiterada y tratando continuamente de acceder a ítems
para los cuales tenían privilegios insuficientes. La
mayoría de los usuarios con buenos conocimientos,
intentaron ocultar su presencia dentro del sistema.
Algunos de ellos lograron con éxito editar el registro de
usuarios sin dejar rastro alguno, mantuvieron un bajo
perfil de actividades, no utilizaron los juegos, o si lo
hicieron, fue por períodos cortos. Salvo aquellos que
obtuvieron mayores niveles de privilegio, sólo se produjo
un caso de alguien que borrara un archivo por el simple
hecho de destruirlo y sin objetivo alguno.
En resumen, en la cuenta destinada a los "chicos" se
efectuaron 2.017 conexiones de usuarios. En la cuenta de
los "hackers" se produjeron 1.432 conexiones de usuarios,
y en la de los "universitarios" se registraron 382. No
tengo manera alguna de conocer cuántas personas en forma
individual utilizaron las cuentas. Me sorprendió la baja
cantidad de conexiones registradas entre la comunidad
universitaria. Se lo comenté a alguien a quien le había
dado el número de la cuenta y, aparentemente, algunas de
las razones fueron que ciertas personas no se dedicaban
al hacking, tenían cuentas legítimas, no estaban
interesados en otros sistemas o no deseaban correr el
riesgo de tener algún problema.
En términos generales, la mayor parte del ingreso de
usuarios incompetentes o con falta de experiencia provino
de la cuenta de los "chicos". La cuenta de los "hackers"
demostró que entre sus miembros se encontraban aquellos
más familiarizados con todas las debilidades del sistema,
pero carecían de un conocimiento completo y general del
mismo. La cuenta destinada al grupo universitario fue
exactamente lo opuesto; sus integrantes conocían
perfectamente cómo funcionaba el sistema, pero no
supieron sortear los obstáculos de seguridad impuestos
por UNIX. Sin embargo, los mejores usuarios provinieron
de la cuenta destinada al grupo de universitarios, en la
que probablemente exista una élite de estudiantes que
también son hackers.
Al poco tiempo de haber enviado el mensaje original en
los BBSs, se produjo un efecto secundario. Rápidamente,
otros usuarios comenzaron a dejar mensajes mencionando la
combinación de cuenta/contraseña del los "chicos",
indicando que habían obtenido esta información a través
de un amigo o que ellos mismos la habían "hackeado". Ese
es el motivo por el que no me preocupé cuando los sysops
borraron mi mensaje, ya que ya lo había leído suficiente
gente como para divulgarlo entre otros usuarios.
Otra de las cosas que supuse que podría llegar a suceder,
es que alguna agencia legal se sintiera sorprendida por
este mensaje y tratara de investigar sobre el tema.
Después de todo, yo había realizado algo bastante
grotesco. Sin embargo, no recibí ningún tipo de preguntas
al respecto, ni tampoco de la persona propietaria de la
línea telefónica. Quizá alguien lo haya hecho, pero no
tuve noticias al respecto.
Nota de la revista: Este artículo fue publicado por
primera vez en la revista 2600, The Hacker Quarterly,
publicada por 2600 Enterprises Inc, 7 Strong's Lane,
Setauket, NY 11733 Estados Unidos de América. Reimpreso y
traducido con permiso de su editor.