¿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.