Está en la página 1de 95

Capítulo 2

Problemática de la seguridad
y conceptos básicos
Leobardo Hernández Audelo
Enrique Daltabuit Godás

Introducción
La Segunda Guerra Mundial fue un parteaguas histórico, en más de un sentido,
para la seguridad informática. Las técnicas de ocultamiento no sólo se aplicaron
al ámbito estrictamente militar sino también a las relaciones diplomáticas con los
gobiernos, a la información sobre secretos comerciales e industriales, a la infor­
mación científica y técnica y, sobre todo, a mantener la información almacenada
en las grandes computadoras que surgieron en esa época, oculta de accesos no
autorizados, entre otras aplicaciones.
La protección que la información guardada en las computadoras requería
en ese entonces pudiera parecer sencilla a la luz de la época actual, ya que los
equipos eran centralizados y las computadoras eran de propósito específico.
Pero el hecho de que esas computadoras empezaran a ser multiusuario y multi-
tarea, inició el camino sin retorno de las preocupaciones de seguridad informá­
tica y computacional actuales.
Después de la Segunda Guerra, cuando las computadoras se hicieron de
propósito general y multiusuario, el panorama de la seguridad de la información
empezó a cambiar de manera compleja. Ya las computadoras no procesaban
información solamente militar, de estado, o científica. Se trataba ahora de prote­

75
76 P r o b lem á t ic a d e la seg u r id a d y c o n c e p t o s bá sico s

ger información tan diversa, dependiendo de las aplicaciones, que bien podían
ser de tipo bancaria, nóminas, comercio de diferente naturaleza, etc.
La situación se tornó aún más compleja al surgir las microcomputadoras y
con ello la necesidad de proteger información particular en distintos y numero­
sos ámbitos y lugares.
Con el surgimiento de las redes de computadoras, la situación se volvió
patológica, ya que ahora había que proteger la información también durante su
viaje por canales públicos y abiertos.
Actualmente el problema no termina aquí. Hoy, muchas de las actividades
de la sociedad se realizan a través de redes de todo tipo. Estas actividades van
desde comunicaciones y transferencia, proceso y acceso de información, hasta
servicios bancarios, dinero y comercio electrónicos, entre otros. Igualmente se
tienen tecnologías de código distribuible, que obligan a proteger no sólo la in­
formación sino también los recursos físicos y lógicos de las computadoras y
redes contra usos ilícitos. De la misma forma se debe proteger la información y
los recursos de cómputo contra programas malignos como son los virus, gusa­
nos y otras calamidades lógicas que proliferan en las redes.

Primeros problemas de seguridad informática


Historia del cómputo
En 1946 se construye la ENIAC (Electronic Numerical Integrator and Computer).
Totalmente electrónica, de bulbos y digital. Se empezó en 1943 y se termina en
1946. Es construida por Mauchly y Eckert; pesaba 30 toneladas y contenía 18,000
bulbos. Es la primera computadora universal y podría realizar 100,000 operacio­
nes por segundo.
Muy pronto aparecieron aplicaciones diversas, pero la más importante fue
el diseño de un sistema de defensa antimisiles (cuyo desarrollo fue provocado
por la detonación en 1949 de la primera bomba atómica de la Unión Soviética).
El prototipo fue ampliado y en abril de 1951 se demostró la factibilidad de ras­
trear tres aviones de hélice que volaron por los cielos de Massachussets. Des­
pués de invertir millones de dólares y trabajar 10 años se terminó SAGE
E v o l u c ió n tem pra n a d fx c ó m p u t o 77

(Semi-Automatic Ground Environment) un sistema de cobertura continental con


23 centros de operación, conectados a través de líneas telefónicas dedicadas, (lo
cual requirió que Bell Labs inventara el módem) conformado por dos computa­
doras interactivas redundantes que eran capaces de rastrear 400 aviones simul­
táneamente.
Cada centro de operaciones tenía más de 50 empleados, o sea que estas
computadoras interactivas eran compartidas por más de 1000 usuarios. Median­
te nuevas técnicas de asignar a cada usuario los recursos disponibles cíclicamen­
te (tiempo compartido).
Aprovechando su participación en este proyecto, IBM diseñó el famoso
sistema SABRE (Semi-Automatic Business Related Environment) de reservaciones
para American Airlines que se convirtió en el paradigma de los sistemas transac-
cionales en línea, que empezó a funcionar en 1964. Además aprovechó también
la tecnología de almacenamiento de Whirlwind que estaba basada en núcleos
magnéticos.
SAGE y SABRE dieron origen a la consola de operación estándar con un tubo
de rayos catódicos, un teclado y un apuntador manual para seleccionar opcio­
nes que aparecían en la pantalla. O sea el entorno de cómputo que nos es fa­
miliar hoy.

Evolución temprana del cómputo


Algunos acontecimientos importantes en el desarrollo de las computadoras di­
gitales fueron los siguientes:

1951. UNIVAC (Universal Automatic Computer), desarrollada por Presper Eckert


y John Mauchly en Ramington-Rand Co., es una computadora programable
que se considera la primera que se vende comercialmente. Cuesta más de
un millón de dólares.

1952. La primera computadora fabricada en serie es el modelo 702 de IBM dise­


ñado por Nathaniel Rochester y vendida para usos científicos. Tiene 1 Kb
de RAM, una unidad de cinta magnetizada y una lectora de tarjetas perfo­
radas.
78 P r o b lem á t ic a d e la se g u r id a d y c o n c e p t o s bá sic o s

El Semiconductor Laboratory de William Shockley’s es la primera empresa


que se asienta en Silicon Valley cerca de San Francisco, California.

1957. Olsen y Anderson, quienes habían participado en este trabajo sobre SAGE,
crean una empresa para fabricar y vender computadoras interactivas. Apa­
rece Digital Equipment Corporation, y su primer producto es la PDP-1 que
se empieza a vender en I960. Su arquitectura era abierta o sea que todos
los detalles de su funcionamiento eran conocidos por todos. Luego DEC se
lanza a diseñar y fabricar la primera computadora “de mesa” que fue la
pdp -8, que cabía en un Volskwagen.

1958. Bell Labs desarrolla el primer modulator-demodulator, llamado módem,


que funciona a 300 baud.

I960. Digital anuncia la primera computadora pequeña, la pdp -1 (Programmed


Data Processor-1) diseñada por Ben Gurley.

1964. Aparece la familia Sistema/360 de IBM, primera familia de la tercera gene­


ración. Usa microcircuitos.

1964. La primera red local (LAN).

1966. La primera red amplia (ARPAnet) ( wan ).

1970. Aparece la cuarta generación de computadoras, la cual emplea circuitos


integrados de gran escala LSI (Large Scale Intégration) con 15,000 circuitos.

1970. Digital introduce la LA30 DECwriter, una terminal con teclado.

1973. Bob Metcalfe inventa Ethernet, diseño de una red que permite a las com­
putadoras heterogéneas comunicarse en una red local.

1975. La Altair 8800 es la primera computadora personal (microcomputer). Usa


el microporcesador Intel 8080 y tiene 256 bytes de memoria que empezó
a vender una empresa de Albuquerque, Nuevo México, llamada MITS. Esta
empresa decidió incluir como lenguaje de programación una adaptación
del que se usaba en las PDP-11, llamado BASIC desarrollado por Gates y
Alien quienes fundarían para venderlo a la empresa Microsoft en 1975.

1975. Aparece la primera terminal con tubo de rayos catódicos, la VT521 de Di­
gital Equipment.
EVOLUCIÓN TEMPRANA DEL CÓMPUTO 79

1977. La primera implementación de un sistema TCP.


1978. Xerox Corporation produce una mejoría de TCP: el Internet Protocol ( ip).

1979- Xerox, DEC e Intel anuncian Ethernet.

1982. Se funda Sun Microsystems y libera el sistema operativo SunOS basado en


Unix 4.2 BSD y 4.3 BSD.

Por separado, en 1962, la Agencia de Proyectos de Investigación Avanza­


dos (arpa) del Ejercito Norteamericano contrató a un psicólogo experimental
llamado Licklider para estudiar un nuevo sistema de comando y control. Tomó
como base SAGE pero no como paradigma de seguridad nacional, sino como un
mecanismo de ampliar la capacidad de la mente humana. En lugar de los 23
centros de operación se imaginó una red de cobertura nacional de “centros de
pensamiento” en donde habría computadoras que contuvieran enormes biblio­
tecas. Una simbiosis de la mente y la computadora. En 1960 había publicado un
trabajo fundamental en este tema.
En MIT sed inicio un proyecto llamado MAC que reconociendo que no se
podría entregar a cada usuario una computadora personal se proponía ofrecer
a toldo lo largo del campus y en los hogares de los académicos terminales de
tipo SAGE. De esta manera se dio origen a la primera comunidad en línea, con
pizarrones electrónicos, correo electrónico, amistades virtuales, programas gra­
tuitos y “hackers”. Este proyecto rápidamente llevó al primer paradigma de se­
guridad informática en red: Kerberos.
En 1968 este concepto fue retomado por Engelbart de SRi International,
quien inventó la interfaz de usuario consistente en el ratón, las ventanas en la
pantalla, el procesador de textos y otras innovaciones. El modelo de la compu­
tación interactiva personal estaba completo.
A finales de los sesenta Baran, de la corporación rand , publicó una serie
de trabajos sobre la teoría y estructura de las redes de telecomunicaciones. Se
preocupó de cómo construir estructuras de comunicación que siguieran funcio­
nando a pesar de que muchos de sus componentes hubieran sido destruidas. Se
requieren numerosas conexiones redundantes, que se parecen superficialmente
a las redes de neuronas en el cerebro. Como las redes analógicas telefónicas, no
80 P ro b lem á t ic a d e la seg u r id a d y c o n c e p t o s bá sic o s

permiten más de cinco conexiones en tándem, lo indicado era transmitir señales


digitales. Los elementos de conexión ya no eran interruptores telefónicos sino
computadoras dedicadas.
Se eliminan las redes centralizadas y las descentralizadas. Se adopta el
concepto de red distribuida. Baran dijo en alguna ocasión que este trabajo no lo
llevó a cabo como un trabajo de investigación académica, sino “como una res­
puesta a la situación más peligrosa que el hombre haya visto”.

Computadoras multiusuario
Al aparecer la ENIAC y computadoras subsecuentes, éstas ejecutan un programa
a la vez. Si varios usuarios requieren del uso de los recursos, se inicia y termina
con el primer trabajo presentado, y después se procesa el siguiente, y así suce­
sivamente. La entrada de programas y datos a las computadoras se realiza me­
diante tarjetas perforadas, y la salida es mediante listados impresos.
Esto implica que el procesador está ocioso mientras se leen las tarjetas y se
imprimen los listados. Se empezaron a usar computadoras pequeñas para efec­
tuar estas operaciones de entrada y salida, que colocaban los programas y datos
en dispositivos de almacenamiento más rápidos (cintas). Se colocaban varios
trabajos en esos dispositivos. Además, muchos programas no se escriben con la
eficiencia óptima, y entre los pasos de ejecución el procesador, y otros recursos,
está ocioso.
Esto lleva a la operación en forma de “tiempo compartido”, multiáreas o
multiprocesos, lo cual consiste en asignar recursos en forma alternada a varios
programas, usando diversas técnicas para evitar el ocio de los recursos. Además,
los usuarios adquieren la percepción de que se les está atendiendo más eficien­
temente. Esto ocurrió en los Laboratorios Bell mediante una colaboración de MIT
y General Electric, quienes originaron un sistema operativo llamado MULTICS,
que nunca se llegó a comercializar y que es el antecesor directo de Unix.
Esto da origen a los grandes problemas de seguridad informática. Si se
comparten recursos (procesador, memoria, impresora, etc.), un programa mali­
cioso puede enterarse de los datos y operaciones que está realizando un pro­
grama que se esté ejecutando “simultáneamente”.
P rim era r ev o l u c ió n : La c o m p u t a d o r a perso n a l 81

No es sino hasta que aparece la terminal DECWriter, en 1970, que se puede


interaccionar con las computadoras remotamente, conectando las terminales
mediante líneas dedicadas. En este momento surgen los problemas de seguridad
relacionados con las comunicaciones, y como las terminales tienen que estable­
cer una sesión de trabajo, se añaden a los problemas de seguridad relacionados
con los sistemas multiusuario.
Al aparecer los protocolos de comunicación entre máquinas de un solo
proveedor, a través de líneas dedicadas o conmutadas, los problemas de la se­
guridad de las telecomunicaciones se agravan. Al lograrse establecer redes de
computadoras heterogéneas y protocolos de conmutación de paquetes, se llega
a la crisis de seguridad que estamos viviendo: un universo no acotado de com­
putadoras multiusuario heterogéneas, no seguras, intercomunicándose a través
de dominios de seguridad que no comparten políticas o autoridad.

Primera revolución: la computadora personal


Durante el periodo de 1975 a 1981 se comenzó a gestar el cómputo qtie por fin
llegaría a la gente, constituyendo lo que algunos denominan la era dorada de la
computación. En esta etapa, que inicia con la introducción de la MITS Altair 8800
y termina con la dominación de la PC de IBM, la introducción de la microcom-
putadora hizo posible que cada persona tuviera a su disposición el poder del
cómputo.
El 1981 IBM introduce la com putadora p erson al ( pc ), una microcomputado-
ra con arquitectura no propietaria desarrollada alrededor de la familia de proce­
sadores Intel 8086. Este hecho hace posible que computadora llegue al hogar,
oficina y escuelas.
La década de los ochenta fue testigo de la expansión del uso de la compu­
tadora. El número de computadoras personales en uso se incrementó más del
doble, de dos millones en 1981 a 5.5 millones en 1982. Diez años después, 65
millones de PC estaban siendo utilizadas. Hoy se usan centenas de millones de
computadoras personales.
La mayoría de las computadoras personales se desarrollan conforme a la
arquitectura IBM/Intel y trabajan con sistemas operativos tipo Windows de Mi­
82 P r o b lem á t ic a d e la se g u r id a d y c o n c e p t o s bá sico s

crosoft. En este ambiente residen aplicaciones de todo tipo, entre las que se
puede encontrar desde las computadoras que utilizan las aerolíneas para regis­
trar a los pasajeros, hasta los sistemas de administración de acciones, valores,
líneas de ensamble controladas mediante PC y sistemas de información médica,
entre otras aplicaciones.

Problemas de seguridad de la PC

Conforme las organizaciones introdujeron el uso de microcomputadoras, fueron


perdiendo el control del procesamiento de información que se encontraba pre­
sente en el tradicional centro de cómputo, siendo ahora trasladado a las PC. Este
hecho da lugar al surgimiento de nuevos requerimientos de seguridad bajo la
premisa de que existen más recursos que perder y más formas de hacerlo.
Por ejemplo, el medio de almacenamiento en disco flexible de la PC repre­
senta un gran problema de seguridad, ya que es un medio para que la informa­
ción confidencial pueda ser copiada. Los discos pueden introducir software
pirata, código malicioso y virus, que pueden traer graves consecuencias a la
organización.
En este nuevo escenario hay algunos factores muy importantes a tomar en
cuenta:

1. Ninguno de los sistemas de escritorio, como la PC, fue diseñado con la segu­
ridad en mente.
2. No todos los usuarios de las PC son expertos en cómputo, por lo que el mal
uso de sus equipos frecuentemente compromete la seguridad de la informa­
ción o servicios que residen en éstos.
3. La amplia disponibilidad de los sistemas personales de cómputo pone la
capacidad de amenaza en las manos de más personas, incrementando el
riesgo para las organizaciones.

La seguridad en un ambiente de PC involucra la aplicación de los servicios y


controles de seguridad que se utilizan para ambientes de cómputo central con
la complejidad de que estos deben ser aplicados en cada equipo, por ejemplo,
P rimera r ev o l u c ió n : La c o m p u t a d o r a perso n al 83

el control sobre los cambios a programas, seguridad de datos, documentación


del sistema, respaldos, planes de recuperación, etc. Sin embargo, difícilmente las
computadoras personales cuentan con las protecciones mínimas.
Por otra parte, las microcomputadoras tienen problemas de seguridad pro­
pios, que deben ser entendidos para poder tomar las medidas adecuadas. Estos
problemas incluyen:

1. Accesibilidad física a los equipos.


2. Los programas.
3. Los respaldos.
4. Conciencia de seguridad de los usuarios.

Accesibilidad a los equipos


Un nuevo problema que se presentó al llevar los sistemas de cómputo al escri­
torio es la facilidad para el robo de las PC o sus componentes. Esto se facilita por
el hecho de que muchos de los componentes son pequeños y fáciles de cargar
en una bolsa del saco o en el portafolio. Los involucrados pueden ser tanto
personal interno como externo. Las organizaciones que carecen de inventarios
de sus equipos de PC, componentes y periféricos son las más vulnerables.
Este problema es tan grave que se ha convertido en una situación similar
al robo de partes de autos. Considerando únicamente los Estados Unidos, este
problema tiene un costo de más de 8 billones de dólares anualmente. Un ejem­
plo ocurrió en 1996, cuando alguien robó de las oficinas de Interactive Televi­
sión Technologies Inc. tres computadoras personales que contenían información
sobre planes, esquemas y especificaciones para tecnología propietaria en desa­
rrollo, valuada en 250 millones de dólares.

Los programas
La facilidad con la que se pueden instalar nuevos programas o compartir infor­
mación en la PC, trajo consigo problemas relacionados con códigos maliciosos.
Este aspecto constituye una de las mayores y más frecuentes amenazas a la in­
84 P r o b lem á t ic a d e la se g u r id a d y c o n c e p t o s b á sic o s

tegridad y disponibilidad de la información y sistemas que residen en las PC. Se


puede decir que los códigos maliciosos han causados daños de billones de dó­
lares en los últimos cinco años.
Algunos de los riesgos asociados con los virus son: disminución de la pro­
ductividad, corrupción de archivos, negación del servicio, pérdida de informa­
ción, problemas para leer archivos, compromiso de la confidencialidad, colapso
del sistema, aplicaciones no disponibles, molestias, etcétera.
Los virus tienen muchos medios para difundirse: sin embargo, uno de los pun­
tos más comunes son los discos flexibles y el correo electrónico. Esta problemá­
tica trajo consigo la creación de software antivirus para la detección, erradicación
y prevención. Además, se hizo inminente la necesidad de generar políticas de
seguridad de alcance organizacional, para definir las fuentes permitidas de soft­
ware y los tipos de aplicaciones que pueden ser ejecutadas en los equipos.
El problema de los virus no es trivial; cada vez las organizaciones tienen
mayores problemas relacionados con los incidentes de este tipo. De acuerdo
con una encuesta realizada por los Laboratorios ICSA en un grupo de 300 orga­
nizaciones, se tienen los siguientes hallazgos:

1. Se presentaron 303,356 problemas de infección en un total de 855,899 má­


quinas durante el periodo de 1998-2000. Esto es más de 160 incidentes por
cada 1000 máquinas por año.
2. El 99-67% de las empresas han experimentado infecciones por virus.
3. Más del 51% de las organizaciones encuestadas han experimentado desastres
a causa de virus.
4. En promedio, las organizaciones gastan entre $100,000 y $1,000,000 dólares
anuales en desastres provocados por virus.

Otro aspecto que no se había considerado hasta el surgimiento de la PC son los


residuos de datos, es decir, información que se encuentra almacenada en los dis­
cos flexibles y duros que se desechan. Este tipo de información puede ser leída
por otras personas que utilicen posteriormente ese medio. Representa un riesgo
al compartir archivos en discos flexibles que alguna vez puedan haber conteni­
do información confidencial.
P rim era r e v o l u c ió n : La c o m p u t a d o r a perso n a l 85

Respaldos
Al extenderse la infraestructura de cómputo a los sistemas de escritorio, surgieron
problemas relacionados con la pérdida y recuperación de información en caso de
algún desastre o eventualidad. La complejidad ahora reside en que este equipo se
encuentra ampliamente difundido y mucha gente está involucrada. A pesar de
que los usuarios de los sistemas son exhortados a proteger sus datos mediante
la ejecución de respaldos periódicos, generalmente no se cuenta con respaldos, y
cuando ocurre un problema se llega a perder casi la totalidad de la información.

Conciencia de seguridad de los usuarios


Uno de los aspectos más críticos relacionados con la revolución en el uso de la
computadora personal es la falta de conciencia de seguridad entre los usuarios
y ejecutivos responsables, sobre todo en lo concerniente a la vulnerabilidad de
la información crítica y sensible que reside en estos ambientes.
Con la llegada de los sistemas de cómputo a más personas en la organiza­
ción, se hace indispensable el desarrollo de políticas y programas de conciencia
de seguridad. Esto es crítico si se toma en consideración que se puede tener el
mejor software del mundo para proteger los activos de información de la orga­
nización, pero si los usuarios no ponen en práctica buenos hábitos de seguri­
dad, siempre serán el eslabón más débil.
La importancia de la seguridad en el ambiente de escritorio no ha declina­
do con el paso del tiempo. Por el contrario, cada vez se hace más inminente la
necesidad de aplicar mecanismos y controles que permitan garantizar la seguri­
dad en esta plataforma. A continuación se presentan algunos hechos que pue­
den ayudar a entender lo anterior:

1. Las computadoras de escritorio forman parte integral del paradigma cliente/


servidor, que cada vez se encuentra más orientado a encomendar más tareas
a la ejecución de los clientes (sistemas de escritorio).
2. Los sistemas de escritorio, baratos y de fácil acceso, constituyen en recurso
desde el cual pueden ejecutarse los ataques: ataques por fuerza bruta, rom­
pimiento de claves de acceso y ataques de negación de servicio.
86 P ro b lem á t ica d e la seg u r id a d y c o n c e p t o s b á sic o s

3. El conocimiento de cómo usar y abusar de las computadoras de escritorio se


encuentra ampliamente distribuido en todos los países del mundo.

Conforme el uso de las computadoras se fue incrementando, fueron surgiendo


nuevas amenazas. Esta situación se complicó más cuando las computadoras
pudieron ser interconectadas, puestas en red, para compartir memoria, software,
información y comunicarse entre ellas. Con el uso de cableado directo, o líneas
telefónicas, esas redes fueron creciendo hasta alcanzar increíbles dimensiones.
A pesar de que para muchas organizaciones el uso de las computadoras
centrales sigue siendo muy extenso para tareas como el procesamiento en lotes
a gran escala y transacciones en línea, es un hecho que a finales de los noventa
la plataforma de cómputo dominante es la computadora de escritorio. Lo ante­
rior se debe a que un porcentaje significativo del cómputo crítico es ejecutado
en computadoras personales que forman parte de una red de área local; ade­
más, la mayor parte de los sistemas de cómputo de gran escala se encuentran
conectados en algún punto a sistemas de escritorio.

Segunda revolución: Internet


Internet es una red de redes de alcance mundial que utiliza el protocolo TCP/lP
para las comunicaciones. Fue creada para facilitar la comunicación entre el go­
bierno y los investigadores.
Durante la década de los ochenta, Internet amplió su alcance para incluir
a instituciones educativas, agencias gubernamentales, organizaciones comercia­
les y otras organizaciones internacionales. En la década de los noventa tuvo un
crecimiento fenomenal, con conexiones que se incrementaron más rápidamente
que cualquier otra red jamás creada (incluyendo la red telefónica). Actualmente
muchos millones de usuarios se encuentran conectados a Internet.
Internet proporciona la infraestructura necesaria para la comunicación e
intercambio de información, haciendo posible la existencia de muchos servi­
cios, entre los que se encuentran: el correo electrónico, la transferencia de ar­
chivos, acceso a sistemas remotos, conferencias interactivas, grupos de noticias
y acceso a la World Wide Web. Internet es un recurso vital que está cambiado la
Seg u n d a r e v o l u c ió n : I n t er n et 87

forma en la que muchas organizaciones e individuos se comunican y hacen ne­


gocios.
Sin embargo, mientras que por una parte la conectividad en Internet ofrece
enormes beneficios en términos de un mayor acceso a información, por otra
incrementa las vulnerabilidades, amenazas y ataques de los que puede ser ob­
jeto la información y los servicios ofrecidos.
En un ambiente de red, la seguridad debe considerar el origen, el canal, el
receptor y ios medios de almacenamiento. En el caso de Internet, este esquema
se complica debido a que la información que viaja por Internet debe pasar por
muchas computadoras y redes interconectadas antes de llegar a su destino final,
por lo que los usuarios deben estar conscientes que la privacidad de informa­
ción confidencial a través de Internet no puede ser garantizada sin el uso de otro
mecanismo de seguridad.
Como resultado, muchas agencias y organizaciones han sido atacadas por
intrusos, resultando en pérdida de productividad y reputación. En algunos ca­
sos, las empresas se han tenido que desconectar temporalmente de Internet y
han invertido considerables recursos en corregir los problemas relacionados con
la configuración de las redes y los sistemas.

Problemas de seguridad en Internet


El cómputo en Internet tiene dos características principales: procesamiento dis­
tribuido y comunicaciones abiertas. Estos aspectos, unidos con problemas inhe­
rentes a los servicios de TCP/lP, la complejidad de la configuración de los equipos
conectados a Internet, las vulnerabilidades introducidas en el proceso de desa­
rrollo de software y una variedad de otros factores, han contribuido a la apertu­
ra de puertas para problemas relacionados con seguridad.
El aspecto fundamental es que Internet y tcp / ip no fueron diseñados para
ser seguros. En este contexto, las principales vulnerabilidades de seguridad en
Internet se derivan de los siguientes aspectos:

• Facilidad para curiosear. El canal en el que viaja la información en Internet


se considera promiscuo, ya que los mensajes pueden ser interceptados por
88 P ro b lem á t ic a d e la seg u r id a d y c o n c e p t o s bá sico s

un tercero, que escucha el canal, y ser sujetos de alteraciones maliciosas.


Adicionalmente, la mayoría del tráfico de Internet no se encuentra cifrado.
Correo electrónico, claves de acceso y transferencia de archivos pueden ser
monitoreados y capturados con el uso de software ampliamente disponible.
• Servicios de TCP/iP vulnerables. Existen servicios de TCP/iP que no fueron
diseñados para ser seguros y son utilizados por intrusos para comprometer­
los, tal es el caso de los servicios de pruebas.
• Complejidad en la configuración. Los controles de acceso de los servidores
y los servicios de TCP/lP son complejos en su configuración y administración.
En consecuencia, suelen ser accidentalmente mal configurados para un ac­
ceso a Internet ilimitado, de forma que muchos servidores permiten el acce­
so a más servicios de TCP/lP de los que son requeridos para la operación, sin
limitar el acceso a la información en las computadoras.

Otros factores propios del ambiente de Web que contribuyen a incrementar las
vulnerabilidades de seguridad en Internet son:

• Código ejecutable. Un código puede ser obtenido del servidor y ejecutado


localmente en el cliente. Este código puede tener objetivos maliciosos e in­
tentar acceder a información confidencial que será transmitida al servidor, o
utilizar Jos recursos del sistema local, o ejecutar aplicaciones molestas.
• Navegador inseguro. Un navegador con problemas en su programación pue­
de ser usado por un atacante para robar información sensitiva del equipo en
el que se ejecuta el navegador.

De lo anterior se despenden las típicas amenazas en un ambiente de Internet,


entre las que se encuentran:

• Denegación de servicio. La falla de un componente provocada por errores


en el hardware/software pueden llevar a la denegación de un servicio o un
compromiso de seguridad. Por ejemplo, el tiempo en que se encuentra dado
de baja un cortafuegos es un ejemplo de una falla que puede afectar la se­
guridad.
Se g u n d a r e v o l u c ió n : in t er n e t 89

• Acceso no autorizado a información. Acceder a información sensible no au­


torizada, ya sea por intrusos o usuarios legítimos, debido a una variedad de
mecanismos: correo electrónico mal encaminado o salida de información a
impresora, por ejemplo.
• Mal uso de los activos de información. Utilizar la información y servicios para
propósitos diferentes a los autorizados, lo que puede resultar en una nega­
ción de servicio, incremento de costos o daño a la reputación.
• Eliminación de información, modificación o revelación no autorizada. El daño
intencional a los recursos de información puede resultar en la pérdida de la in­
tegridad o confidencialidad de las funciones de negocio e información.
• Suplantación. Es el intento de hacerse pasar por un usuario legítimo para
robar servicios o información, o bien, iniciar transacciones que resulten en
una pérdida financiera o una mala imagen para la organización. Un impostor
puede hacerse pasar por un usuario autorizado para llevar a cabo tareas in­
adecuadas, tales como la transferencia de fondos. Similarmente, un equipo
puede hacerse pasar otro para que el usuario le proporcione información
confidencial

Además de los problemas relativos a tcp/ip , existen otros factores que contribu­
yen a los problemas de seguridad en Internet, entre los que se encuentran los
siguientes:

a) Facilidad de acceso a recursos. Hoy, más que nunca, los sistemas de cóm­
puto se han hecho más sensibles a accesos no autorizados. Dada la combina­
ción adecuada de motivación, experiencia, recursos, tiempo e ingeniería social,
un intruso puede ser capaz de acceder a cualquier computadora que se encuen­
tre en Internet. Esto, aunado al hecho de que se puede tener acceso desde la
casa, escuela, bibliotecas, etc., conforman una infinidad de puntos desde los
cuales se puede perpetuar un ataque.
En el ambiente abierto de Internet, los estudiantes curiosos, adolescentes
vándalos, criminales, espías, o personas curiosas pueden ser los riesgos. Sobre
todo conforme ha ido avanzando el uso de redes públicas para comercio elec­
trónico y funciones críticas de negocios.
90 P ro b lem á t ic a d e la se g u r id a d y c o n c e p t o s b á sic o s

Estimaciones actuales indican que existen mas de 500 millones de usuarios


conectados a Internet. Si se toma en cuenta que solamente el 10% de esos usua­
rios son potencialmente maliciosos, se puede decir que existen aproximada­
mente 50 millones de amenazas a los recursos de información conectados a una
red Internet. Si solamente el 1% de esos usuarios representaran una amenaza
real, existirían 5 millones de intrusos potenciales. Ahora bien, si se toman en
cuenta las estadísticas demográficas conservadoras que indican que el 0.5% de
la población es criminal, tendríamos 2.5 millones de intrusos potenciales que
pueden intentar robar información o simplemente dar de baja un servicio.

b) Crecimiento acelerado y falta de personal. Aún en las organizaciones con


mayores niveles de seguridad, las vulnerabilidades y amenazas a la seguridad de
la información están incrementando su presencia con el paso del tiempo.
Las vulnerabilidades crecen con la complejidad de las infraestructuras in­
ternas, que al hacerse más grandes incrementan el número de puntos que pue­
den fallar. Es decir, cada vez hay más sistemas y muy poco tiempo y personal
para atenderlos; es suficiente mencionar que 2.3 millones de servidores son
conectados a la red cada mes. Hay que notar que no existen 2.3 millones de
administradores de sistemas. Adicionalmente, las personas encargadas de la ad­
ministración de los equipos no tienen suficiente conocimiento para administrar
la seguridad, y ocupan demasiado tiempo resolviendo problemas. La directiva
primaria es mantener el sistema funcionando, por lo que la aplicación de me­
didas de seguridad o parches se efectúa únicamente cuando sobra algo de
tiempo.
En consecuencia, los ataques son exitosos debido a que los administrado­
res están demasiado ocupados apagando fuegos.
Adicionalmente, aún cuando se puede detectar a los atacantes, no se ejerce
acción legal sobre ellos, ya que esta situación sería penosa para la organización
y, por otro lado, no existen leyes completas y claras a este respecto.

c) Deficiente control de calidad en los productos de software. Las empresas


aumentan el uso de nuevos productos que han sido poco probados y que contie­
nen problemas de seguridad. El control de calidad no ha podido superar las pre­
T ercera r ev o l u c ió n : u b ic u id a d 91

siones del mercado y los problemas de las deficiencias en las habilidades de los
programadores. La mayoría de los programas y/o sistemas de software se basan
en código que nunca se pensó que tuviera la calidad de “producción”. Eran sola­
mente implementaciones para prueba que se convirtieron en programas base.
La seguridad en Internet ha cobrado particular importancia a partir del
hecho de que muchas organizaciones gastan una considerable cantidad de di­
nero para poner su imagen corporativa y sus servicios en Internet. Esto pone en
juego la imagen y reputación de la misma, ya que los hace objeto de vandalismo
y ataques. Los atacantes aprovechan las debilidades en los sistemas operativos
base de los senadores Web y entran en el servidor con facilidad, modificando
información o añadiendo material pornográfico, por ejemplo.
En el caso anterior, el efecto más negativo es con relación a la imagen de
la organización. Sin embargo, los ataques en Internet también tienen fuertes
consecuencias desde el punto de vista económico.

Tercera revolución: ubicuidad


Durante los últimos diez años ha aumentado el uso de dispositivos de computo
portátiles: las computadoras llamadas “lap top”, las computadoras de bolsillo
(Pocket PC), los asistentes digitales personales (PDA) y las computadoras para la
palma de la mano (Palm). Todas estas herramientas son computadoras con fun­
cionalidad completa, aunque restringida, y con capacidad de almacenar grandes
cantidades de datos y programas. Por consiguiente, presentan problemas de
seguridad análogos a las de las computadoras personales.
Los riesgos adicionales provienen de que estas computadoras no tienen
una ubicación física determinada. Los usuarios las llevan consigo donde les
plazca. Y se pueden extraviar (perdiéndose los datos que contienen), o pueden
ser robadas proporcionándole al ladrón toda la información que contienen.
Por otra parte se ha desarrollado la tecnología que hace practicas las redes
inalámbricas de computadoras. De esta manera se pueden conectar edificios
que distan decenas de kilómetros. También se pueden instalar redes locales de
computadoras que distan decenas de metros. El problema radica, en primer lu­
gar, en que las ondas electromagnéticas se propagan en patrones esféricos, o si
92 P ro b lem á t ic a d e la seg u r id a d y c o n c e p t o s b á sic o s

se usan antenas direccionales, en patrones aproximadamente lineales pero per­


ceptibles mediante antenas apropiadamente colocadas. En segundo lugar hay
que enfrentarse a implementaciones descuidadas de los estándares y de las con­
figuraciones.
Los problemas de seguridad que aparecen además de aquellos que se han
mencionado en el caso de redes que usan la tecnología empleada por Internet
en redes cableadas se relacionan con la promiscuidad del medio físico de co­
nexión, Es más difícil atacar una red local establecida mediante cables o fibra
óptica con trayectoria conocida, que una basada en ondas electromagnéticas
cuya señal se esparce por todo el espacio
Por otra parte, Internet cableado o inalámbrico trae consigo nuevas preo­
cupaciones para los gobiernos y militares. Por ejemplo, cuando un sistema de
cómputo de un gobierno o empresa importante es atacado, es necesario saber
si el atacante es un “hacker”, un “eracker”, o simplemente alguien que lo hace
por diversión. ¿Será el atacante un empleado o un competidor?, ¿será un terro­
rista o agencia de gobierno en espionaje por causas económicas?, ¿será el ataque
un preludio de guerra?
Para complicar las cosas, ¿qué tal si el atacante es un tercero que hizo pare­
cer culpable a otro país? Estas cuestiones requieren de una seria consideración
cuando los sistemas son atacados, porque dictan la forma en la que se deberá
responder. Al igual que con las armas nucleares, los sistemas de información son
un punto fundamental en la protección de un país y constituyen un arma de
guerra.
Este no es un asunto trivial, sobre todo si se toma en cuenta que muchos
sitios de importantes gobiernos como el de Estados Unidos han sido objeto de
frecuentes ataques exitosos. Tal es el caso de la NASA, la CIA, la fuerza aérea, la
policía de Los Ángeles, el Departamento de Justicia, el Pentágono, etcétera.
En 1999, el Computer Security Institute y el FBI realizaron una encuesta, en
la cual se encontró que el 57% de las organizaciones consultadas consideran
que su sitio en Internet es un blanco frecuente de ataques. El 30% reportó estar
detectando intrusiones en sus redes, y el 26% reportó robo de información. El
FedciRT reportó que 130,000 sitios del gobierno de Estados Unidos, totalizando
1,100,000 anfitriones, fueron atacados en 1998.
V u ln er a b ilid a d e s , am en azas y a t a q u e s 93

En el caso de México, resulta ser uno de los países favoritos para los ata­
cantes, tanto por motivos políticos, como por la facilidad con la que los ataques
pueden ser perpetrados.

Vulnerabilidades, amenazas y ataques


Dada la complejidad del problema que representa actualmente el estudio y aná­
lisis de la seguridad informática, para estudiarla de manera adecuada es necesa­
rio establecer claramente algunos conceptos y hacer precisiones acerca de los
elementos involucrados en ella.
En primer lugar, se entenderá como sistema d e cómputo al conjunto forma­
do por la colección de equipos, programas, medios de almacenamiento, datos o
información y personas involucradas en el conjunto.
Se entenderá como com prom iso de seguridad a cualquier forma posible de
pérdida o daño en un sistema de cómputo. De esta forma, com prom eter la se­
guridad de un sistema equivale a la posibilidad de provocar pérdida o daño al
sistema.
Una vulnerabilidad consistirá en cualquier debilidad que puede explotarse
para causar pérdida o daño al sistema. De esta manera, el punto más débil de
seguridad de un sistema consiste en el punto de mayor vulnerabilidad de ese
sistema.
Una a m en a z a será cualquier circunstancia con el potencial suficiente para
causar pérdida o daño al sistema. Ejemplos de amenazas son los ataques huma­
nos, los desastres naturales, los errores humanos inadvertidos, fallas internas del
hardware o del software, etcétera.
Los principales activos o recursos que hay que proteger en un sistema de
cómputo son: el equipo, los program as y los datos. Existen cuatro tipos de ame­
nazas principales a los sistemas que explotan las vulnerabilidades de los activos
en el sistema. Estas amenazas son: interrupción, intercepción, m odificación y
fabricación.
Esquemáticamente, estas amenazas se representan en la figura, donde la
parte A representa al originador, fuente u origen de los datos y B representa al
receptor o destino de ellos. Tanto A como B pueden ser personas, procesos,
94 P ro b lem á t ica d e la seg u r id a d y c o n c e p t o s bá sico s

dispositivos o computadoras y en la literatura sobre el tema se les conoce tam­


bién como entidades o principales.

Flujo normal

Interrupción

Intercepción

0
Modificación

En el caso de una interrupción, un activo del sistema se pierde, se hace no dis­


ponible o inutilizable. Un ejemplo de interrupción es la destrucción maliciosa de
un dispositivo de hardware, el borrado de un programa o el borrado un archivo
de datos, o el mal funcionamiento del manejador de archivos de un sistema
operativo que trajera como consecuencia que no se pueda hallar un archivo
particular en el disco duro.
Una intercepción significa que alguna parte no autorizada logre acceso a
un activo del sistema. Esta parte no autorizada puede ser una persona, un pro­
ceso u otro sistema de cómputo. Ejemplos de esto puede ser el copiado ilícito
de programas o archivos de datos, o la intervención del canal para obtener datos
sobre la red.
V u l n er a b ilid a d e s , am en azas y a t a q u es 95

Cuando una parte no autorizada logra acceso al activo del sistema y puede
manipular ese activo, se trata de una amenaza por m odificación. Por ejemplo,
el intruso puede cambiar datos en una base de datos, alterar un programa para
que realice alguna computación adicional o distinta a la que realiza, modificar
datos en una comunicación, entre otras acciones.
Por último, una parte no autorizada puede fa b r ic a r objetos falsos en un
sistema. Ejemplo de ello es la inserción de transacciones espurias en un sistema
de comunicación en red, o agregar registros a una base de datos ya existente.
En la figura siguiente se muestra cómo pueden afectar estas amenazas a los
activos o recursos de un sistema de cómputo.

Intercepción
(robo)
Interrupción
negación de Hardware
servicio

Interrupción Interrupción
(borrado) (pérdida)

Intercepción
Intercepción

Fabricación
Bombas lógicas
Caballo de Troya
Modificación Virus
Trampa
Filtro de información
96 P ro b lem á t ic a d e la se g u r id a d y c o n c e p t o s b á sic o s

Un ataqu e se define como cualquier acción que explota una vulnerabili­


dad. Existen diversos tipos de ataques. Una clasificación muy general es dividir­
los en ataques pasivos y activos. Un ataque pasivo, como su nombre lo indica,
consiste en sólo observar comportamientos o leer información, sin alterar ni el
estado del sistema ni la información. En este sentido, un ataque pasivo sólo
afecta la confidencialidad o privacidad del sistema o de la información.
Un ataque activo, por el contrario, tiene la capacidad de modificar o afectar
la información o el estado de sistema o a ambos. En consecuencia, un ataque
activo afecta no sólo la confidencialidad o privacidad sino también la integridad
y la autenticidad de la información o del sistema.
Como ejemplos de ataques pasivos se consideran el monitoreo, la lectura
o espionaje d e m ensajes y el análisis d e tráfico.
Como ejemplos de ataques activos se consideran el engaño, suplan tación ,
la réplica y m odificación de mensajes, la de negación d e servicio.
Normalmente un ataque pasivo es siempre la antesala o preparación para
un ataque activo. El ataque pasivo sirve para estudiar al enemigo, conocer sus
hábitos, horarios, costumbres, entorno, etc. Esto muy bien se puede hacer con
un buen análisis de tráfico. Una vez hecho esto, se puede montar un ataque
activo.
A la entidad que realiza un ataque, comúnmente se le conoce como ata­
cante, intruso, enemigo, “cracker”, “hacker”, etc. Esta entidad no necesariamente
tiene que ser una persona, puede ser cualquier proceso, computadora, disposi­
tivo, etcétera.
Cuando el atacante o enemigo es una persona o grupo de personas, en
algunos medios y ámbitos también se les conoce como delincuentes o crimina­
les informáticos o computacionales.
Se supone que en todo tipo de comunicación abierta a través de canales
públicos siempre están presente uno o varios atacantes y que estos tienen la
capacidad para realizar todo lo que es posible realizar con la información en el
medio de transmisión público: interceptar, leer; alterar, modificar, cam biar, f a ­
bricar, retener o reenviar inform ación. También se supone que el atacante es
capaz de interrumpir, desviar o retardar el flujo de información. Así también,
puede en g añ ar y suplantar a las partes legítimas en una comunicación.
Ser v ic io s d e seg u rid a d 97

En todos los casos, el objetivo de un atacante siempre es aprovechar en su


favor la información, el medio, o los recursos de cómputo. Para ello también se
supone que el atacante conoce, o puede conocer, la naturaleza y estructura de
la información, los algoritmos de cifrado, si se usan, y, sobre todo, la implemen-
tación de ellos.
Esta es una de las razones por las que la seguridad de la información no
puede ni debe basarse en el ocultamiento de las herramientas de seguridad que
se utilizan. Es decir, no debe usarse el clásico “seguridad por oscuridad” como
premisa de seguridad, que tantas empresas de todo tipo han usado en el pasado
con consecuencias siempre desastrosas. Por el contrario, un buen algoritmo de
seguridad debe ser público: tanto el algoritmo en sí como su implementación.
La seguridad siempre debe residir en la fortaleza del algoritmo y no en el hecho
de mantenerlo oculto.
La clasificación de los ataques ha ocupado y ocupa tratados completos y
dependen siempre del sistema de cómputo, del sistema operativo, del tipo de
aplicación y ambiente que se tengan, entre otros aspectos.
Siempre que se dice que una cierta herramienta es segura, hay que esta­
blecer contra qué tipo de ataques es segura. Nunca se conocen, dado un sistema
o aplicación, qué tipo de ataques nuevos sufrirá, o será susceptible de sufrir, en
un futuro.
La razón de ello es que cada día surgen nuevas técnicas de ataques sobre
un mismo tipo de sistema o aplicación. Y, desde luego, esto no se puede prede­
cir. Y no se puede predecir porque no se pueden caracterizar formalmente,
usando una herramienta formal, todos los posibles ataques. Si esto fuera posi­
ble, también sería posible construir una herramienta total que evitara cualquier
tipo de ataque, presente y futuro.

Servicios de seguridad
El objetivo de la seguridad informática es, pues, lograr adquirir, almacenar, pro­
cesar y transmitir información en un entorno de este tipo, preservando lo más
que se pueda los servicios de: con fiden cialidad (que la información sólo la
conozcan quienes tienen derecho a ello), integridad (que la información no sea
98 P ro b lem á t ic a d e la se g u r id a d y c o n c e p t o s bá sic o s

alterada sin autorización), auten ticidad (que la información provenga de fuen­


tes autorizadas), disponibilidad (que los usuarios legítimos puedan usar la infor­
mación cuando lo requieran). Un servicio de seguridad está siempre relacionado
con lo que se desea obtener en términos de seguridad.
En general, la seguridad de un sistema tiene que ver con cualquier técnica,
procedimiento o medida que reduce la vulnerabilidad del sistema. La seguridad
tiene como objetivos principales lograr la confiden cialidad, integridad, auten­
ticidad de la información y garantizar la disponibilidad de la misma y de los
recursos de cómputo. Estos objetivos pueden traslaparse o pueden ser mutua­
mente exclusivos. Por ejemplo, requerimientos fuertes de confidencialidad pue­
den restringir severamente la disponibilidad.
El mejor entendido de estos tres objetivos es la confidencialidad en cuanto
a permitir acceso a los activos del sistema sólo a partes autorizadas. No obstan­
te, existen problemas tales como: ¿quién determina quién está autorizado?
El concepto de integridad es un poco más difícil porque puede significar
cosas distintas dependiendo del contexto. Algunos de estos significados distin­
tos pueden ser: precisión, exactitud, inalterabilidad, m odificación sólo en modos
aceptables, m odificación sólo por partes o procesos autorizados, consistencia,
resultados significativos y correctos, etc. Es común reconocer tres aspectos de la
integridad: acciones autorizadas, separación y protección de recursos, y detec­
ción y corrección de errores.
La disponibilidad es similarmente compleja. Se aplica a datos y recursos.
Algunos conceptos asociados a disponibilidad son: presencia de datos y re­
cursos en forma usable, capacidad de responder a necesidades, respuesta en
tiempo.
Los objetivos de la disponibilidad de datos y de recursos son: respuesta
puntual, asignación justa, tolerancia a fallas, utilidad o dificultad de uso, concu­
rrencia controlada (soporte para acceso simultáneo, manejo de abrazos morta­
les, y acceso exclusivo cuando se requiera).
En general, un control de acceso centralizado es fundamental para preser­
var la confidencialidad y la integridad, pero no es nada claro que un único
punto de control de acceso sea capaz de garantizar la disponibilidad. La mayor
parte de los éxitos en seguridad se han logrado en las áreas de confidencialidad
Ser v ic io s d e s eg u rid a d 99

e integridad; protección para la disponibilidad no ha sido posible lograrla por


ahora.
Algunos especialistas mencionan las siguientes tres características como el
Triángulo de Oro d e la Seguridad: confiden cialidad, integridad, y disponibi­
lidad.
Sin embargo, una definición más amplia también debe incluir: seguridad
física, seguridad de emisiones y seguridad del personal, entendida esta última
como la seguridad relativa a las personas que tienen relación directa o indirec­
ta con los elementos involucrados en el sistema de cómputo.
Las principales preocupaciones relacionadas a la seguridad en cómputo
deben distinguir al menos dos ámbitos perfectamente definidos: el primer ám­
bito es el de los especialistas en seguridad, en cuyo caso entre las preocupacio­
nes cruciales estarían el resguardo de material clasificado y el resguardo de
material sensible pero no clasificado y de todos los elementos del sistema tales
como recursos, dispositivos, etcétera.
El segundo ámbito es la perspectiva del ciudadano común preocupado por
la seguridad informática de su entorno. En este caso, entre las preocupaciones
principales estarían las siguientes: ¿quién tiene información acerca de mí?, ¿quién
está usándola o puede usarla (comercializarla, por ejemplo)? Entre la informa­
ción relacionada a este ámbito estarían: datos personales (edad, teléfono, direc­
ción, etc.), información crediticia, información médica, historial comercial,
etcétera.
Entre los grandes temas de preocupación que cubre la seguridad están los
siguientes: ¿por qué alguien intentaría accesos no autorizados a la información
o a los recursos? Las respuestas, desde luego, tienen una amplia gama de posi­
bilidades, todas ellas viables y posibles: curiosidad, vandalismo, ganancia finan­
ciera, inteligencia, terrorismo, guerra cibernética, entre otras.
También la seguridad en cómputo tiene que considerar, independiente­
mente de las razones que el intruso o atacante pueda tener, qué características
de seguridad pueden ser violadas y cómo.
Por ejemplo, las violaciones a la confidencialidad pueden hacerse a través
de la intervención y monitoreo de canales y líneas, la obtención de información
clasificada, la obtención de información en general.
100 P r o b lem á t ic a d e la se g u r id a d y c o n c e p t o s b á sic o s

Las violaciones a la integridad son posibles por medio de: alteración de


registros de información, alteración de direcciones fuentes de correo, etcétera.
Las violaciones a la disponibilidad pueden consistir en: robo de tiempo de
procesador (ciclos de reloj), negación de servicio (impedimento de usar los re­
cursos y la información).

Arquitectura de seguridad OSI


La arquitectura de seguridad OSI (Estándares ISO 7498-2 y ITU-T X.800) hace dis­
tinción entre los conceptos de servicio y mecanismo de seguridad. Un servicio
d e seguridad es una característica que debe tener un sistema para satisfacer una
política de seguridad. Un m ecanism o d e seguridad es un procedimiento concre­
to utilizado para implementar el servicio de seguridad. En otras palabras, un
servicio de seguridad identifica lo qu e es requerido; mientras que el mecanismo
describe cóm o lograrlo.
La arquitectura de seguridad OSI identifica cinco clases de servicios de se­
guridad: confidencialidad, autenticación, integridad, control d e acceso, y no
repudio.
En cuanto a los mecanismos de seguridad, éstos se agrupan en dos cate­
gorías: los específicos y los filtros.

Específicos:

• Cifrado.
• Firma digital.
• Control de acceso.
• Integridad.
• Autenticación.
• Trafico espurio (protección contra análisis de tráfico).
• Control de encaminamiento.
• Notarización.
A r q u it e c t u r a d e se g u r id a d OSI 101

Descripción de servicios de seguridad


A continuación se describirán brevemente los mecanismos de seguridad estable­
cidos en el estándar ISO 7498-2.

Confidencialidad
Este servicio de seguridad consiste en garantizar que la información sólo pueda
ser accedida por las partes autorizadas para ello, por nadie más. En algunos
contextos este servicio se conoce también como privacía.
Este servicio y su implementación constituyen uno de los principales obje­
tivos de la seguridad informática, resultado de las técnicas más ancestrales de
ocultamiento de información.
Actualmente, una de las técnicas más importantes para implementar este
servicio es la criptografía; los algoritmos correspondientes se revisarán con de­
talle en los capítulos correspondientes a Criptografía y Aplicaciones cripto­
gráficas.
El estándar ISO 7498-2 identifica los siguientes tipos de servicios de confi­
dencialidad:

» Confidencialidad con conexión.


• Confidencialidad sin conexión.
• Confidencialidad selectiva de campo.
• Confidencialidad de flujo de tráfico (protección contra análisis de tráfico).

Autenticación
Este servicio consiste en garantizar que las partes o entidades participantes en
una comunicación sean las que dicen ser. Es decir, consiste básicamente en el
proceso de identificación de una parte ante las demás, de una manera no con­
troversial y demostrable.
102 P r o b lem á t ic a d e la seg u r id a d y c o n c e p t o s bá sic o s

Estrictamente hablando existen dos tipos de autenticación: autenticación


de iden tidad o iden tificación, y autenticación de origen de datos. Este último
tipo de autenticación se refiere a la certeza de que los datos hayan salido de
donde se supone que deben haber salido y no exista la posibilidad de haber
suplantado el origen y que en realidad los datos tengan un origen distinto al
supuesto.
La autenticación, entendida como proceso de identificación, se clasifica en
tres tipos, de acuerdo a la naturaleza de los elementos en que se basa su imple-
mentación:

i) En algo que se sabe.


ii) En algo que se tiene.
iii) En algo que se es.

En el primer caso la autenticación puede basarse en algo que se aprende o me-


moriza, tal como una contraseña, palabra clave o, comúnmente llamado contra­
seña. Al ser revelado a la parte ante la que se desea identificarse, se demuestra
ser quien se dice ser.
En el segundo caso, la autenticación se basa en algo que se posee, tal
como una moneda, una clave física (metal), o cualquier otro objeto tangible.
En el tercer caso, la identidad se demuestra comparando patrones relacio­
nados a alguna característica inherente a la naturaleza de la entidad que se au­
tentica. Si se trata de una persona, una característica inherente a su naturaleza
podría ser sus huellas digitales, su voz, etc. Este tipo de autenticación también
se conoce como biomètrica.
También la autenticación puede ser directa o indirecta. Es directa si en el
proceso de autenticación sólo intervienen las partes interesadas o que se van a
autenticar. Es decir, no interviene ninguna tercera parte actuando como juez. Es
indirecta si en el proceso interviene una tercera parte confiable que actúa como
autoridad o juez que avala la identidad de las partes.
También la autenticación puede ser unidireccion al o mutua. Es unidirec­
cional si basta que una de las partes se autentique ante la otra y no es necesario
A r q u it ec t u r a d e seg u r id a d OSI 103

que la otra se autentique, a su vez, ante la primera. Es mutua cuando se requie­


re que ambas partes se autentiquen entre sí.
El servicio de autenticación está íntimamente relacionado al de control de
acceso y algunas de las principales técnicas de autenticación e identificación se
revisarán el capítulo correspondiente a Control de acceso.

Verificación de integridad
Este servicio protege a los activos del sistema contra modificaciones, alteracio­
nes, borrado, inserción y, en general, contra todo tipo de acción que atente
contra la integridad de los activos. Se debe aclarar que, estrictamente hablando,
la integridad como tal no se puede garantizar. Lo que sí se puede garantizar es
que si la información sufre alteración, ésta pueda ser detectada.
La arquitectura ISO 7498-2 identifica los siguientes servicios de integridad:

• Integridad con conexión con recuperación.


• Integridad con conexión sin recuperación .
• Integridad con conexión selectiva a campos.
• Integridad sin conexión.
• Integridad sin conexión selectiva a campos.

La manera en que este servicio de seguridad se implementa normalmente es a


través de funciones de dispersión (hash), un tipo de criptografía que no utiliza
claves. Se revisarán las aplicaciones correspondientes en los capítulos corres­
pondientes a Criptografía y Aplicaciones criptográficas.

Control de acceso
Este servicio protege a los activos del sistema contra accesos y uso no autoriza­
dos. Este es de los servicios que normalmente no utilizan técnicas criptográficas
para su implementación; en cambio, existe un gran número de técnicas propias
y tipos de control de acceso, así como también modelos específicos para su
implementación, tales como los de Bell y LaPadula, Clark y Wilson, entre otros.
104 P r o b lem á t ic a d e la seg u r id a d y c o n c e p t o s b á sic o s

Todo este conjunto de técnicas, tipos y modelos de control de acceso serán es­
tudiados con detalle en el capítulo correspondiente a Control de acceso.
Este servicio está cercanamente relacionado al de autenticación, ya que un
usuario debe ser autenticado antes de tener acceso a los activos del sistema. Por
esta razón, su estudio detallado se integra con el de autenticación, en algunas
de sus partes.

No repudio
El no repudio proporciona protección contra la posibilidad de que alguna de las
partes involucradas en una comunicación niegue haber enviado o recibido un
mensaje u originado o haber sido el destinatario de una acción. Los servicios de
no repudio identificados por ISO son:

• No repudio con prueba de origen.


• No repudio con prueba de entrega.

Normalmente, para implementar este servicio se utilizan esquemas de clave pú­


blica tales com o las firmas digitales, pero no se restringe a ellas; también se
pueden utilizar técnicas de cifrado de clave pública y de clave secreta pero, en
esta última, siempre que se utilice una tercera parte confiable.
El estudio detallado de este servicio se hará en el capítulo correspondiente
a Aplicaciones criptográficas.

Implementación de los servicios


A continuación se presentan dos tablas en la que se muestran los servicios de
seguridad que se implementan en cada capa, conforme a la arquitectura defini­
da en el modelo OSI, así com o los mecanismos de seguridad empleados para
implementar cada servicio.
A r q u it ec t u r a d e seg u r id a d OSI 105

Capa

o- Presentación
^ Transporte

~»t Aplicación
Servicio de seguridad c

Enlace
*-* Física
TJ u"So
0)
pí i/ j

3 5
Autenticación de
Sí Sí Sí
identidad
Autenticación de
Sí Sí Sí
origen
Control de acceso Sí Sí Sí
Confidencialidad con
Sí Sí Sí Sí Sí
conexión
Confidencialidad sin
Sí Sí Sí Sí
conexión
Confidencialidad

selectiva de campo
Confidencialidad de
Sí Sí Sí
flujo de tráfico
Integridad con
conexión y con Sí Sí
recuperación
Integridad con
conexión y sin Sí Sí Sí
recuperación
Integridad con
conexión selectiva de Sí
campo
Integridad sin
Sí Sí Sí
conexión
Integridad sin
conexión selectiva de Sí
campo
No repudio con

prueba de origen
No repudio con

prueba de entrega
106 P ro b lem á t ic a d e la seg u r id a d y c o n c e p t o s bá sic o s

Mecanismos

Control de acceso

Control de ruteo
Traffic padding
Servicio de seguridad

Autenticación
Firma digital

Notarización
Integridad
Cifrado

Autenticación de
Sí Sí Sí
identidad

Autenticación de origen
Sí Sí
de datos

Control de acceso Sí

Confidencialidad con
Sí Sí
conexión y sin conexión

Confidencialidad

selectiva de campo

Confidencialidad de flujo
Sí Sí Sí
de tráfico

Integridad con conexión


Sí Sí
con o sin recuperación

Integridad con conexión


Sí Sí
selectiva de campo

Integridad sin conexión Sí Sí Sí

Integridad sin conexión


Sí Sí Sí
y selección de campo

No repudio: origen y
Sí Sí Sí
entrega
Capítulo 8

Código malicioso
Guillermo Mallén Fullerton

Introducción
Como cualquier otra herramienta, la computación no es en sí ni buena ni mala,
es el uso que los hombres le damos lo que le confiere bondad o maldad.
Desde el punto de vista histórico, el uso de la computadora como una
herramienta del mal de manera más o menos común, es relativamente reciente.
Durante los años cincuenta a setenta, el gremio de los especialistas en
computación era bastante pequeño y esto propiciaba un control interno estricto:
cualquiera que tuviera una conducta inapropiada era rápidamente denunciado
ante sus colegas y veía cerradas las puertas de la mayoría de los empleos en una
sanción social automática.
Por otro lado, el perfil de las personas que entraban a ejercer la computa­
ción electrónica era poco propicio para la entrada de delincuentes. Había que
hacer un enorme esfuerzo para aprender ante la ausencia de carreras profesio­
nales en esta área y, aunque los salarios eran buenos, no había dinero fácil, los
horarios de trabajo eran infames, el trabajo pesado y había que estar en alerta
permanente.
Asimismo, el ambiente de desarrollo de programas y sistemas era suma­
mente rígido. El tiempo de máquina era muy escaso y había horarios específicos
para compilación y prueba de programas, y mecanismos estrictos para controlar
el uso de ese valioso recurso que era el tiempo CPU. Difícilmente un programa­

455
456 CÓDIGO MALICIOSO

dor podía hacer un programa que no fuera aquel que se le había ordenado y
mucho menos podía probar en secreto programas como un virus o un caballo
de Troya que borraba archivos.
Con la rápida expansión de la computación, la entrada de nuevos especia­
listas creció en forma explosiva. Por un lado, cada vez se necesitaba más perso­
nal capacitado y por la otra, se pusieron de moda las carreras profesionales
asociadas a las tecnologías de información. Al iniciarse el siglo xxi existían en
México más de 500 carreras profesionales en esta área en tanto que sólo cinco
años antes eran alrededor de la mitad.
Debido a la aparición de la computadora personal en los años setenta y su
popularización con la ubicua PC en la siguiente década, muchas personas em­
pezaron a tener conocimientos de computación sin tener que pasar por una
universidad. De hecho, muchos adolescentes aprenden en forma autodidacta
más que lo que se enseña en las carreras profesionales.
La conclusión de este fenómeno es un aparente anonimato, que permite
que los delincuentes entren al medio de las tecnologías de información y las
usen para sus fines sin que sea fácil detectarlos.
La proliferación de la PC no sólo trajo mucha gente con conocimientos,
sino que también evitó los ambientes rígidamente controlados de los m ainfra-
mes de las décadas anteriores. Cualquier persona en s li propia casa puede hacer
cualquier clase de programas sin que haya nadie que lo supervise o controle.
Aun en las oficinas es relativamente fácil usar la PC del escritorio para programar
cosas que nada tienen que ver con el trabajo.
Uno de los primeros delitos informáticos lúe la venganza por supuestas o
reales ofensas. Entre los primeros casos estaban una serie de “bombas de tiem­
po" dejadas en sistemas clave para la operación de las empresas por empleados
que se enteraban que iban a ser removidos de sus puestos o en desquite contra
alguna llamada de atención del jefe o una promoción que no llegaba.
También se dieron algunos fraudes en los años iniciales, aunque estos en
realidad tenían que ver más con la forma en la que operaban las organizaciones
que con problemas de seguridad informática propiamente dicha. Los atacantes
normalmente obtenían una contraseña real mediante ingeniería social o por
simple descuido de los usuarios y luego la usaban para generar transacciones
I n t r o d u c c ió n 457

fraudulentas. Pocos casos hubo en los que había programas especialmente dise­
ñados para hacer el fraude.
La existencia del anonimato dio paso a otro tipo completamente diferente
de delincuente. Así, encontramos que actualmente muchos de los atacantes eli­
gen aleatoriamente a su víctima y no buscan venganzas particulares ni enrique­
cimiento rápido. Se trata más bien de una especie de deporte ilícito cuya
recompensa es el reconocimiento dentro del inframundo, el temor de las vícti­
mas potenciales y lugares preferentes en las noticias. Esto, desde luego, no eli­
mina a aquellos que lo hacen por dinero o aun por razones políticas.
Otro elemento que añade complejidad a este asunto es la existencia de
Internet.
Como herramienta de comunicación existieron antes de la red de redes los
llamados BBSs (Bulletin Board Systems o Sistemas de Tableros de Avisos).
En estos servicios los usuarios de conectaban mediante módem a una má­
quina, generalmente una PC, en la que había tableros de avisos sobre diferentes
temas en los que podían dejar preguntas o contestar las que otros habían colo­
cado. También había áreas de archivos en las que se intercambiaban desde re­
cetas de cocina hasta programas.
Muchos de los BBSS eran gratuitos y anónimos y se conocía a quienes en­
traban por un apodo (han dle le llamaban en inglés), lo que daba la oportunidad
tanto de expresarse libremente, como de cometer toda clase de atropellos.
Entre los archivos más comunes en los BBSs anónimos estaban programas
piratas, programas para deshabilitar los sistemas de protección contra copia de
los programas comerciales y mucha información del funcionamiento interno del
sistema operativo de la PC, el DOS de esa época.
Los elementos para el desarrollo del hacker adolescente estaban dados y
no es extraño que hayan surgido en forma relativamente simultánea en diversas
ciudades, Justo de esa época (mediados de los ochenta) vienen los primeros
virus informáticos.
Hacia fines de los ochenta los bbss se comunicaban de una ciudad a otra
formando una red por la que fluían los mensajes y archivos. Si bien su eficiencia
era bastante mediocre, ya que un mensaje podía tardar varios días en llegar a su
destino, permitió compartir información entre personas de diferentes países.
458 CÓDIGO MALICIOSO

Un fenómeno que salta a la vista es la facilidad con la que los backers lo­
graron una buena comunicación formando toda una red subterránea.
La popularización del Internet, desde fines de los ochenta con programas
como gopher, y luego su crecimiento vertiginoso en los noventa con la aparición
de la World Wide Web, facilitaron enormemente la comunicación entre hackers
e hicieron que lo que había sido un problema relativamente manejable se con­
virtiera en el tremendo dolor de cabeza que hoy tenemos.
Como consecuencia de la WWW vino el comercio electrónico y junto con
él, la oportunidad del fraude masivo y las ganancias jugosas para los delincuen­
tes. Sin embargo, el problema no sólo es el comercio electrónico, sino que te­
nemos muchos sitios que por su visibilidad son blancos frecuentes de los
delincuentes. Para colmo, esta infraestructura hace posible realizar un ataque
literalmente desde el otro lado del mundo, de manera que los ataques se multi­
plican. Los problemas de jurisdicción policial y diferencias legales de un país a
otro son una pesadilla.
También tenemos ahora un enorme número de aprendices de delincuente
informático, conocidos en Internet como ivannabees o script kiddies, que si bien
no tienen buenas habilidades técnicas, atacan usando programas hechos por
otros y generan un alud de problemas.
Del lado de la ley, lo que se ha hecho —y lo que prácticamente se puede
hacer— es verdaderamente patético. En muchos países se han hecho leyes tre­
mendamente drásticas contra esta clase de delincuentes, que van sin duda más
allá de lo razonable y justo, y que son tan excesivas como inútiles. Por ejemplo,
en el código penal de México se castiga con cinco años de prisión la destrucción
de información, sin ninguna atenuante, de manera que si por un real y verdade­
ro accidente alguien destruye información, aun irrelevante, puede enfrentar car­
gos que potencialmente lo enviarían a la cárcel por media década, y si la
información pertenece al sector público, la pena son seis años sin derecho a
fianza. Sin embargo, estas leyes son inútiles debido a la impunidad que existe.
Aun en países con agencias investigadoras altamente eficientes, como Es­
tados Unidos con su FBI, el nivel de impunidad es enorme. De hecho, el porcen­
taje de delincuentes informáticos atrapados es normalmente inferior a 0.1%.
V irus 459

Ante esta situación, lo único razonable que podemos hacer es defendernos de


los ataques como si el sistema de justicia no existiera.
Muchos de los ataques se hacen mediante programas o scripts. A esto es a
lo que llamamos código malicioso.
La clasificación del código malicioso para fines de estudio —y defensa—
no es fácil ya que con mucha frecuencia se encuentran combinaciones y cada
día surgen nuevas formas de atacar. A pesar de esto debemos establecer un
marco conceptual sobre el cual podamos trabajar y que nos ayude en el enten­
dimiento del problema.
La clasificación podría hacerse de diferentes maneras. Por un lado, podría
utilizarse un criterio basado en las técnicas de programación empleadas o en los
puntos que atacan o en la clase de resultados que se obtienen.
En este trabajo adoptamos un criterio un tanto híbrido y dividimos el códi­
go malicioso en las siguientes categorías:

• Virus.
• Ataques de penetración de servidores y estaciones de trabajo.
• Ataques de negación de servicios.
• Programas de espionaje.
• Caballos de Troya.
• Bombas de tiempo.

De todos estos tipos el más abundante y que genera mayores costos para la
sociedad es sin duda alguna el de los virus y por ello, le pondremos un mayor
énfasis.

Virus
El tamaño del problema
La primera pregunta que surge es ¿qué tan grande es el problema de los virus
informáticos?
460 CÓDIGO MALICIOSO

Nadie tiene información precisa de su tamaño, sin embargo, podemos de­


cir que prácticamente no hay organización que no haya sufrido al menos un
ataque de virus importante en los últimos dos o tres años y que la inmensa ma­
yoría de los usuarios han recibido al menos uno de esos visitantes no deseados.
Por desgracia hay pocos estudios epidemiológicos de los virus informáti­
cos y muchos de ellos no han tenido seguimiento.
Entre los pocos estudios que han tenido seguimiento, la organización ICSA
Labs ha realizado varias encuestas sobre virus informáticos y nos da información
interesante1. A pesar de que la encuesta de ICSA tiene fallas metodológicas de
cierta importancia, nos da información de utilidad. Antes de Lisar los resultados
de la encuesta conviene entender sus limitaciones para no llegar a conclusiones
mal fundadas.
La palabra prevalencia viene del ámbito de la medicina, en particular de la
epidemiología, y significa el número de individuos en una población que en un
instante dado tiene una infección con cierto agente patógeno. Es como si
tomásemos una fotografía instantánea de la población y contáramos el número
de personas infectadas en ella. En contraste, la palabra incidencia usada en el
contexto epidemiológico significa el número de individuos en una población
que en cierto periodo ha tenido una infección con cierto agente patógeno, es
decir, no es una medida instantánea, sino que describe lo que ocurrió durante
cierto periodo.
Inicialmente, a pesar de su título, se trata de un estudio de incidencia de
virus informáticos para diferentes periodos y está basada en las respuestas que
una serie de organizaciones provee en un cuestionario. Esto es importante,
porque no hay verificación objetiva de las infecciones de virus y no se tiene
información detallada de las circunstancias en las que las infecciones se dieron.
Podría decirse que se trata más de las impresiones que tienen los responsables
de la informática en cada organización y es probable que los datos tengan un
error apreciable.
La encuesta se aplica únicamente a organizaciones del sector público y
privado con más de 500 PC en Estados Unidos y se excluyen específicamente a

1 www.icsalabs.com/
V irus 461

las universidades. Como más adelante veremos, el tamaño de la organización


tiene una influencia directa y muy importante en la velocidad a la que se pro­
pagan las infecciones informáticas y estos resultados pueden no ser muy signi­
ficativos en organizaciones más chicas. Por otro lado, las organizaciones grandes
tienden a tener contratos corporativos con las empresas productoras de antivirus
y en general tienen sus productos más actualizados que los individuos y orga­
nizaciones pequeñas. También hay que reconocer que en otros países las cos­
tumbres cambian y esto puede tener un impacto importante en la incidencia y
prevalencia de los virus informáticos. El tamaño de la muestra es de 300 organi­
zaciones, que desde el punto de vista de muestreo es razonable, dando límites
de confianza de 95% con un error máximo de 6%.
El primer resultado que salta a la vista en el estudio en cuestión es que el
problema de virus se ha venido agravando. La siguiente gráfica, tomada de uno
de los reportes, ilustra el problema.
El eje vertical de la gráfica da el número de infecciones por mes por cada
1000 PCs, de manera que se trata de una medida normalizada e independiente
del tamaño de la organización.

ICSA Labs Virus Prevalence Survey 2004


Virus Infections Per Month 2004

Número de infecciones por mes por cada 1000 PCs


de acuerdo con las encuestas de ICSA Labs
462 C ó d ig o m alicio so

Como puede observarse, al menos en las organizaciones de la muestra de


ICSA, el problema se hace cada vez más grave si bien en los últimos años su
crecimiento ha sido más moderado.
El tipo de virus también ha cambiado. Los virus que se distribuyen por
correo electrónico representan ahora 92% del total, contra sólo 6% en 1996, y
los virus transmitidos en diskette han desaparecido sin duda por la virtual elimi­
nación de este medio de almacenamiento magnético.
La otra dimensión preocupante es la del costo que esto implica. La encues­
ta de ICSA no es particularmente buena en cuanto a la calidad de la información
sobre costos, de hecho se observa en los resultados de la encuesta la tendencia
a reportar números cerrados, lo que indica que son una estimación gruesa. Lo
importante es, sin embargo, que la mayoría de los brotes de virus cuestan entre
decenas y cientos de miles de dólares a pesar de que algunos costos, como el
de los negocios perdidos, no se toman en cuenta.
Los párrafos anteriores nos llevan a una conclusión inescapable: el proble­
ma es grave, muy costoso y crece continuamente. De aquí, la siguiente pregun­
ta: ¿no habrá alguna manera efectiva de reducir el problema?

La teoría de los virus


Si verdaderamente logramos entender el problema de los virus, tendremos me­
jores elementos para combatirlo y para ello, lo primero que debemos entender
son los virus mismos.
Es interesante entender cuáles son los factores que propician la prolifera­
ción de los virus y su importancia relativa.
De una manera muy simple se pueden establecer ciertos modelos matemá­
ticos que nos ilustran al respecto.
Un modelo más o menos simple consiste en decir que hay una probabili­
dad de infección en el contacto entre una máquina infectada y una que no lo
está. Esto implica que la velocidad a la que se infectan las máquinas es directa­
mente proporcional al número de máquinas ya infectadas y al número de má­
quinas sin infectar. En términos matemáticos, tendríamos la siguiente ecuación
diferencial:
V irus 463

en que x es la cantidad de máquinas infectadas, t el tiempo, N el número total


de máquinas y k la constante de proporcionalidad.
Integrando la ecuación anterior tenemos:

*0 g N K t -tQ )

Esta última ecuación muestra algunas propiedades interesantes: cuando el nú­


mero de máquinas infectadas es muy pequeño en relación al total de máquinas,
el crecimiento de las máquinas infectadas es prácticamente exponencial, en
tanto que al aumentar el número de máquinas infectadas, la velocidad a la que
se propaga el virus disminuye debido a un fenómeno de saturación. De manera
gráfica tenemos:

100 %

0%
tiempo

Propagación de un virus de acuerdo al m odelo sim ple


464 CÓDIGO MALICIOSO

La velocidad máxima de expansión del virus se presenta cuando la mitad de las


máquinas está infectada.

Definición de virus informático


Daremos inicialmente una serie de definiciones más o menos sueltas en torno a
los virus y otros programas relacionados, para luego ahondar poco a poco has­
ta llegar a una definición suficientemente formal de virus. Esto nos permitirá una
fundamentación sólida, ahorrándonos el trauma de una expresión matemática
ininteligible. Luego, comentaremos la definición formal para llegar a una defini­
ción de trabajo, más adecuada para atacar los problemas cotidianos que nos
producen los virus.
El primer aspecto clave consiste en aclarar que un virus computacional es
un programa o al menos una rutina que es ejecutada por la computadora, de la
misma manera que se ejecutan los programas de aplicación comunes y corrien­
tes. En esto no hay nada mágico ni extraordinario y, al menos en principio,
cualquier persona que pueda hacer un programa ordinario puede hacer un vi­
rus. Nótese que varias aplicaciones comunes tienen la posibilidad de correr
programas encima de ellas, como es el caso de los productos de Microsoft Offi­
ce con las mal llamadas macros, en los que puede haber virus.
La diferencia fundamental entre los virus y la mayoría de los programas de
aplicación consiste en que los virus se reproducen y son capaces de migrar de
una máquina a otra en CDs o a través de las redes de com unicación que unen
una serie de computadoras ya sea en forma directa o a través del correo electró­
nico.
Hay virus escritos en muchos lenguajes, como Pascal, Visual B asic, C, VB
Script, comandos de sistema operativo, ensamblador y lenguaje de máquina.
Antiguamente la mayoría de los virus se escribían en ensamblador. En la actua­
lidad se usan más comúnmente VB Script y macros de Microsoft Word.
En cuanto a las máquinas y sistemas operativos en los que trabajan los
virus, son virtualmente todos, desde el Microsoft Windows en todas sus encar­
naciones, el antiguo dos de las PCs y el Sistema operativo de las Macs hasta el
Linux/Unix. La cantidad de virus, sin embargo, es más o menos proporcional a
VlRÜS 465

la cantidad de máquinas y sistemas operativos instalados, de manera que encon­


tramos una enorme cantidad de virus para Windows y sus aplicaciones, menos
para Mac y unos cuantos para Linux/Unix.
La peligrosidad de los virus es en principio inversamente proporcional a la
capacidad de las máquinas en que operan y las facilidades que proporcionan
los sistemas operativos. De esta manera, aunque haya menos virus para Unix,
los efectos de éstos son tan devastadores que el problema requiere tanta aten­
ción como el de las PCs.
Los virus pueden tener asociada cualquier rutina, de manera que es per­
fectamente posible que hagan cualquier tarea, desde jugar una broma al usuario
hasta calcular la trayectoria de una nave espacial a Júpiter. Obviamente, lo que
encontramos de ordinario es o una sencilla broma o la destrucción o alteración
de la información en la computadora. Los cálculos avanzados sólo se dan en
algunos laboratorios de investigación en que se han usado virus como una he­
rramienta de proceso distribuido, para calcular cosas como si un número de
muchos dígitos es primo o no, aunque sin mucho éxito.
De una manera más formal, pensemos por ahora que un virus es un pe­
queño programa o una sección de programa de computadora que puede o no
formar parte de un programa ejecutable u otro archivo, capaz de ejecutar ins­
trucciones. Se dice que el programa o archivo está infectado y que tiene la pro­
piedad de infectar a otros programas o archivos al ser ejecutado, sea con el
mismo virus o con otro, que bien puede ser una versión evolucionada del mis­
mo virus o uno completamente diferente.
Veamos con calma la definición anterior para establecer las diferencias con
otros programas que con frecuencia se confunden con virus y cuyas técnicas de
eliminación son fundamentalmente distintas.
El primer punto es que el virus puede ser una sección de programa y no
necesariamente un programa o archivo completo. A los programas completos
que se copian a sí mismos de una máquina a otra o muchas veces dentro de la
misma máquina, les llamamos replicadores simples o gusanos y son sólo un
caso particular de los virus.
Ya hace bastante tiempo uno de estos replicadores simples ocupó los ti­
tulares de algunas prestigiosas publicaciones periódicas de Estados Unidos y
466 CÓDIGO MALICIOSO

apareció como noticia en la televisión y demás medios informativos del resto


del mundo en noviembre de 1988, cuando Robert Morris Jr., estudiante de pos-
graclo en computación en la Universidad de Cornell e hijo de uno de los más
importantes expertos en computación de Estados Unidos, invadió la red Inter­
net con un gusano diseñado para copiarse a todas las máquinas Sun y Vax de la
red que trabajaban con el sistema operativo Unix. Más recientemente hemos
tenido casos, como el Anna Kournikova, que han infectado entre cientos de
miles y millones de máquinas mediante correo electrónico, de manera que es
probable que en el futuro sigamos teniendo este tipo de problemas con fre­
cuencia.
Desde luego que al gusano de Morris siguieron muchos otros, algunos de
ellos sumamente dañinos. Algunos ejemplos importantes son el CodeRed, que
invadió prácticamente la totalidad de las máquinas susceptibles en Internet en
14 horas, el Slammer, de enero de 2003 que atracó todas las posibles direcciones
IP de Internet en diez minutos, generando una saturación de la red de tal mag­
nitud que quedó inutilizada por alrededor de una hora, y el Witty, que demostró
la viabilidad de un gusano de alta velocidad a pesar de explotar una vulnerabi­
lidad de un programa de poca difusión al explorar la totalidad de la red en 45
minutos habiendo sólo 12,000 máquinas vulnerables.
Otro aspecto importante es que cuando un virus se reproduce, el virus
resultante puede o no ser igual al original, lo que obviamente genera muchos
dolores de cabeza a los especialistas. Los dos tipos de virus que cambian y se
encuentran con mayor frecuencia son los multipartitas y los polimórficos. Más
adelante hablaremos de ellos con detalle, por ahora baste saber que el virus
original y el resultante pueden no ser iguales.
Un mito que hay que eliminar es la creencia que todo programa dañino es
un virus. De hecho, desde hace muchos años ha habido programas hechos para
causar daño o alterar la información almacenada en las computadoras y que sin
embargo no infectan a otros programas. Los casos clásicos son los sufridos en
diversas instituciones financieras con el propósito de realizar fraudes, o los de­
jados por ex-empleados descontentos como venganza contra las empresas o
instituciones en que trabajaban.
V irus 467

Esta clase de programas recibe el nombre de Caballo d e Troya, en una


analogía con el mítico caballo de madera que condujo a la caída de la antigua
ciudad de Troya.1
Cualquier programa es susceptible de ser infectado por algún virus. Puede
tratarse de un programa (sector) de carga de un diskette, las rutinas internas de
un sistema operativo, de un manejador de base de datos, programas fuente,
archivos de ejecución de comandos por lotes, macros de un procesador de tex­
to o scripts dirigidos a migrar a través del programa Microsoft Outlook. Todos
ellos son programas.
Otra idea tan generalizada como errónea es que todos los virus son dañi­
nos. Si bien es cierto que la inmensa mayoría de los virus computacionales co­
nocidos actualmente están diseñados para causar alguna clase de daño en las
máquinas que infectan, existe, al menos en teoría, la posibilidad de hacer virus
benéficos. De hecho, se han hecho ya en los laboratorios de investigación y la
idea de estos vims benéficos es tan antigua como los experimentos hechos por
el doctor Fred Cohén en USC. En cuanto a los virus en circulación, mucho se ha
discutido en las circulares internacionales de virus sin establecer un consenso
completo. Por una parte muchos expertos dicen que todos los virus son malos,
debido a que para penetrar en un sistema tienen que modificar algo, y eso en sí
es un daño. Otros más se enfocan sobre el aspecto del conocimiento y autoriza­
ción de los usuarios, diciendo que para no ser malignos el usuario debe autori­
zar la entrada del virus en su sistema y, por extraño que parezca, hay virus en
circulación que piden autorización para infectar un sistema (y luego causan
daños irreparables).
Una tercera posición, tal vez la más madura, está ilustrada por las ideas de
Vesselin Bontchev, quien dice que un vims puede ser dañino o no dependiendo
del medio ambiente en el que se encuentre y esto incluye no sólo la máquina y
sistema operativo, sino también las aplicaciones y otros programas instalados y
al usuario mismo.

1 Algunos colegas, en un alarde de ignorancia, llaman “troyanos” a esta clase de pro­


gramas, sin tomar en cuenta que en todo caso el troyano es el usuario que sufre el
daño, así como los habitantes de Troya fueron sometidos merced a los soldados grie­
gos escondidos en el famoso caballo.
468 CÓDIGO MALICIOSO

En cuanto a la posibilidad de hacer virus que deliberadamente hicieran un


trabajo positivo al menos para la mayoría de los usuarios, bástenos imaginar
un virus encargado de distribuir correcciones a sistemas operativos o nuevas
listas de virus para los programas antivirus o para comprimir archivos. Las posi­
bilidades teóricas son amplias, aunque desde el punto de vista práctico haya
serias objeciones para usar virus de esa manera. En particular, el hecho de que
no es posible distinguir automáticamente un virus bueno de uno malo hace
que al permitir la presencia de los buenos también estaremos dejando actuar a
los dañinos.
¿Qué tan fáciles de detectar son los virus? Los virus de investigación
normalmente solicitan la autorización del usuario antes de infectar un programa
—aunque también tienen mecanismos para evitar que se salgan del laborato­
rio— y muchos virus reales no hacen el más mínimo esfuerzo por ocultar su
presencia. Es más, muchos hacen esfuerzos por llamar la atención del usuario y
aparecen como anexos en los correos electrónicos.

Hay desde luego, un número grande de virus que hacen esfuerzos inauditos por
ocultarse y para ello han inventado técnicas sumamente ingeniosas, algunas de
las cuales tienen potencial para ser usadas en cosas productivas.
Las características distintivas de un virus son entonces que residen en un
programa y que son capaces de infectar a otros programas. Los mecanismos de
daño, cambio de forma y ocultamiento son opcionales en los virus, aunque por
desgracia son muy comunes. En teoría pueden existir virus buenos bajo alguna
circunstancia, aunque en la práctica esto no se da.
V irus 469

De la definición que hemos venido usando hasta ahora se desprenden


ciertas condiciones básicas para que los virus puedan existir.
La primera es que los programas deben poder ser manipulados como datos,
de otra manera un programa no podría modificar a otro para infectarlo. Esto
sólo es posible en las máquinas de programa almacenado. Las primeras máquinas,
como la ENIAC, en las que el programa estaba alambrado y era totalmente inde­
pendiente de los datos, no podían tener virus. Las consolas de juego en que los
cartuchos tienen una memoria de sólo lectura ( rom) tampoco pueden tener vims.
Otra consecuencia de las máquinas de programa almacenado es el hecho
de que los programas son en realidad datos interpretados por la computadora.
En muchos casos, cuando el programa está en lenguaje de máquina, salvo cier­
tas excepciones, sólo puede trabajar directamente en una arquitectura computa-
cional particular; sin embargo, existen programas intérpretes que permiten que
una misma secuencia de símbolos, a la que llamamos programa, trabaje en va­
rias máquinas, como sería el caso de Java o de PERL.
El hecho de que los programas sean en realidad símbolos interpretados
plantea por un lado, amenazas serias y por el otro, la posibilidad de una defini­
ción generalizada de virus, aplicable no sólo a las computadoras sino también a
la biología y a otros campos.
Del lado de las amenazas se amplía el número de computadoras que pue­
den ser infectadas. También es mucho más fácil hacer los virus usando macros
y lenguajes como VB Script, lo que los pone al alcance del usuario común y eso
explica al menos en parte la invasión de virus de macro sufrida a partir de 1996.
La segunda condición es que, con la excepción de los replicadores sim­
ples, los programas a infectar tienen que estar accesibles para los programas
que contienen el virus. Esto es de consecuencias importantes cuando tratamos
con los mecanismos de defensa ante el problema que representan los virus. De
hecho, una precaución básica es la de tener siempre en CD los programas origi­
nales de sistema operativo, paquetes y aplicaciones, que quedan fuera del al­
cance de todo virus..
¿Cómo migran los virus de una máquina a otra? Aunque hay varios meca­
nismos para ello, originalmente lo más común era a través de diskettes o de las
conexiones de las redes de computadoras. Actualmente lo más frecuente es que
470 CÓDIGO MALICIOSO

viajen como anexos de un correo electrónico o que migren directamente a través


de la red aprovechando algún error en alguna aplicación. Con frecuencia un hu­
mano debe ser cómplice activando un programa anexo a un correo electrónico.
Durante los años cincuenta y el principio de los sesenta, la mayoría de las
computadoras carecían de sistema operativo y los programas debían leerse de
tarjetas perforadas y ejecutarse uno a la vez. No podía haber virus en esas má­
quinas ya que los programas estaban permanentemente fuera del alcance del
programa que se estaba ejecutando. La memoria era borrada entre proceso y
proceso destruyendo la posibilidad de que un virus quedara en memoria al final
de la ejecución de un programa.
Las condiciones básicas para la existencia de virus se dieron más bien a
mediados de los años sesenta, cuando se introdujeron de forma generalizada los
discos magnéticos en los que se podían almacenar tanto datos como programas.
En esa época casi no se copiaban programas de aplicación de una máquina a
otra, y los sistemas operativos, lenguajes y los poquísimos paquetes de la época
se obtenían directamente del fabricante, quien por lo regular ejercía un buen
control de calidad. Las redes y el correo electrónico ni siquiera existían. De esta
manera, las posibilidades de proliferación de un virus eran muy limitadas.
El surgimiento y proliferación de los virus viene con la explosión de las
computadoras personales, primero con la generalizada “promiscuidad informá­
tica” en que todo mundo intercambiaba diskettes con programas y datos, y
luego ejecutando anexos a correos electrónicos sin siquiera fijarse quién los
manda.
A lo largo de este documento hablaremos principalmente de la arquitectu­
ra PC por ser la más abundante en el mundo y en la que los problemas de virus
son sin comparación los más frecuentes. Esto de ninguna manera quiere decir
que los principios básicos expuestos no sean aplicables al resto de las arquitec­
turas, tanto de computadoras personales como estaciones de trabajo y equipos
mayores.
El otro mecanismo frecuente de difusión de virus, las redes de computado­
ras, se empezó a desarrollar en los años sesenta sin que hubiera demasiada
penetración hasta mediados de los ochenta. Actualmente hay muchísimas redes
de computadoras, con cobertura diversa, desde una red local con tres o cuatro
V irus 471

computadoras personales hasta la red Internet que engloba no sólo a cientos de


miles de servidores sino a muchos millones de computadoras personales tanto
en oficinas y escuelas como en los hogares.
Las redes de computadoras son uno de los medios de difusión de virus
más difíciles de controlar, pues los virus migran en ellas de una máquina a otra
en fracciones de segundo y hay que suspender el servicio por un tiempo a veces
largo, para eliminar el enorme número de copias de un virus que la haya infec­
tado. Ya mencionamos tres ejemplos (el CodeRed, el Slammer y el Witty) en los
que la difusión del virus o gusano es tan rápida que no hay manera de que se
detenga la epidemia antes de infectar todas las máquinas susceptibles de la po­
blación vulnerable.

Ejemplos de virus
En esta sección exploraremos algunas clases de virus que nos servirán para cla­
rificar los conceptos hasta ahora introducidos.
Los ejemplos se presentan en seudocódigo de acuerdo a las siguientes
convenciones:2
El símbolo “:=0=” se utiliza en las definiciones de programas y subrutinas,
usamos s'f al final de un nombre para usarlo como etiqueta de una instrucción.
El separa instrucciones y el “=” se usa tanto para asignar valores a las varia­
bles como en las comparaciones. El implica negación y se usan “{“ y ”}” para
agrupar instrucciones.
Un virus elemental hace lo mínimo necesario para caer dentro de nuestra
definición de virus: busca un programa, lo infecta y pasa el control al programa
infectado. El virus más pequeño que se conoce en las computadoras PC y com­
patibles hace exactamente esto y ocupa solo 45 bytes.
El funcionamiento de este virus no puede ser más simple: busca un archi­
vo ejecutable y se coloca antes de la primera instrucción del programa recién
infectado. Luego brinca al final del virus, que es donde está la primera instruc­

2 Seguimos las mismas convenciones que el doctor Fred Cohén en su tesis doctoral ti­
tulada “Computer Víruscs”
472 CÓDIGO MALICIOSO

ción del programa original, de manera que se ejecuta como si nada hubiera
ocurrido. En muchos procesadores y sistemas operativos esto no puede hacerse
directamente debido a problemas de corrimiento en las direcciones de las ins­
trucciones y sus operandos, sin embargo, hay otros casos en que este mecanis­
mo trabaja sin problemas.

Programa virus_elemental :=
{
Procedimiento infecta: —
{
archivo = archivo_ejecutable_toniado_al_azar;
inserta_virus_al_inicio_del_archivo;
regresa;
}
Programa_principal: =
{
infecta;
brinca final;
}
final:
}

Un virus ordinario hace algunas otras cosas:

Programa virus_ordinario :==


{
12345678:
Procedimiento infecta :=
{
archivo =primer_archivo_ejecutable;
ciclo:
si ~(primera_linea_de_archivo = 12345678) entonces
V irus 473

inserta_virus_al_principio_de_archivo;
regresa;
}
si (hay_otro_archivo_ejecutable) entonces
{
archivo = siguiente_archivo_ejecutable:
brinca ciclo:
}
regresa;
}
Procedimiento hacer_daño :=
{
cualquier_daño_programado;
regresa;
}
Procedimiento dañar_ahora :=
{
si {condicion_para_daño} entonces
{
devolver verdadero;
}
devolver falso:
}
Programa_principal :=
{
infecta;
si dañar_ahora entonces
{
hacer_daño;
}
brinca final;
}
final:
474 CÓDIGO MALICIOSO

La inmensa mayoría de los virus hechos hasta 1990 tenían una estructura similar
a la del virus ordinario. Esto ha ido cambiando gradualmente al introducirse de
una manera generalizada una serie de procedimientos orientados a evitar que el
virus sea detectado (virus invisibles o stealth viruses) y a generar un número
enorme de variantes en lo que popularmente se conoce como virus “mutantes”,
aunque su nombre correcto es el de virus polimórficos.
Sólo como ejemplo de la posibilidad de virus benéficos incluimos aquí un
virus compresor de archivos, haciendo la aclaración de que hay mejores mane­
ras de lograr resultados similares, como lo hacen algunos productos comerciales
incluyendo la opción D oubleSpace de Windows:

Programa virus_compresor :=
{
12345678;
Procedimiento infecta :=
{
archivo=primer_archivo_ejecutable;
ciclo:
si ~(primera_!ínea_de_archivo = 12345678) entonces
í
comprime_archivo;
inserta_virus_al_principio_de_archivo;
regresa;
}
si hay_otro_archivo_ejecutable entonces
{
archivo =? siguiente_archivo_ejecutable;
brinca ciclo;
}
regresa;
}
Programa_principal: =
si usuario_da_permiso entonces
V irus 475

{
infecta;
descomprime_resto_deLprograma;
brinca final;
}
final:
}

Cohén menciona en su tesis doctoral la implementación experimental bajo Unix


de un virus compresor parecido al anterior, aunque reporta que el tiempo de
ejecución de los programas crece apreciablemente debido al tiempo necesario
para hacer la descompresión cada vez que se va a ejecutar un programa.3

Segunda definición
Vayamos ahora a una definición más avanzada definiendo el conjunto de los
virus como el conjunto de secuencias de símbolos que cuando son interpretadas
en un medio ambiente determinado, tienen la propiedad de hacer aparecer otra
secuencia de símbolos que pertenece al conjunto de virus en otra parte del sis­
tema.
Tenemos aquí algunos elementos nuevos que son de interés. El primero se
refiere a que se trata de secuencias de símbolos que son interpretadas en un
medio ambiente dado. Esto se refiere simplemente a que hay diferentes compu­
tadoras y sistemas operativos y a que para que un virus computacional funcione
tiene que estar en la computadora y sistema operativo apropiado. Con cierta
frecuencia hemos visto que se usan como servidores de archivos para redes de
I
PCs con Windows computadoras que no son PC o usan otro sistema operativo,
típicamente Linux. En estos casos, ocurre con frecuencia que aunque un virus

3 La diferencia esencial entre la propuesta de Cohén para este virus y la que aquí pre­
sentamos estriba en que Cohén hace la descompresión en un archivo temporal y
luego lo manda ejecutar, en tanto que nosotros proponemos la descompresión en
memoria ahorrando así operaciones especialmente lentas, como los accesos a disco.
476 CÓDIGO MALICIOSO

de Windows quede guardado en el servidor, el servidor mismo no corre peligro


puesto que los virus no son ejecutados en él.
Esta definición también nos permite una generalización interesante: cuan­
do el medio ambiente es una computadora y los símbolos son instrucciones,
tenemos un virus computacional, en tanto que si, por ejemplo, el medio am­
biente es una célula y los símbolos son las bases que forman el DNA en la se­
cuencia apropiada, lo que tenemos son los virus biológicos
De esta manera, el nombre de vinas dado a esta clase de programas por
Len Adelmaiv resulta sumamente acertado.
La aplicación de la definición a otros campos es desde luego posible. Un
ejemplo serían las llamadas cartas en cadena o “pirámides”, en las que se dan
instrucciones a un humano para que envíe dinero a la persona que encabeza
una lista que aparece en la misma carta y envíe n copias a otras personas inclu­
yendo su nombre en la lista y eliminando al más antiguo. Podríamos en verdad
llamarlas cartas-virus.
En el correo electrónico tenemos con mucha frecuencia otro tipo de virus
que normalmente no se reconocen como tales y que son mensajes del tipo
“Nuevo virus, si recibe un correo con el título XYZ no lo abra... y mande una
copia de este correo a todas las personas que pueda” y que consumen más re­
cursos que muchos de los virus de correo electrónico normales.
Otro punto importante es la introducción del concepto de conjunto de
virus, lo que abre la posibilidad de virus que hagan contaminaciones cruzadas,
es decir, que sean capaces de invadir diferentes computadoras al poder generar
virus diferentes a sí mismos y que trabajen en diferentes equipos. Hasta ahora
el caso más notable es el gusano de Robert Morris Jr., que funcionaba en máqui­
nas Sun y Digital en la red Internet y el caso del virus Winux, que infecta má­
quinas Windows y Linux. La popularización de estos virus es sóló cosa de
tiempo. Los virus polimórficos, que ya existen, son sólo otro caso particular en
la definición.

4 En su tesis doctoral, Cohén agradece al doctor Adelman haber aplicado el nombre de


virus.
V irus 477

Una consecuencia de la definición que hemos establecido es que la unión


de dos o más conjuntos de virus es otro conjunto de virus,5 lo que nos lleva a
la existencia de un enorme conjunto que cubre todos los virus existentes de
todas las clases y todos aquellos que surgen cada vez que se fabrica una com­
putadora con un lenguaje de máquina nuevo, o se hace un nuevo sistema ope­
rativo, o se modifica o actualiza uno existente. De esta manera, el conjunto de
virus nunca se hace más pequeño, siempre crece y lo hace en una forma prác­
ticamente continua.

Virus reales
Las definiciones de virus que hemos venido manejando hasta ahora sirven muy
bien desde el punto de vista teórico, en que es importante encontrar las propie­
dades generales de los virus y demostrar algunos teoremas, sin embargo, en el
mundo real estas definiciones son poco prácticas.
Veamos un ejemplo que ilustra por qué necesitamos una definición de
trabajo más restringida: si en un diskette tenemos el antiguo programa de DOS
diskcopy, que sirve para copiar diskettes, y lo usamos para copiar el contenido
de ese mismo diskette a otro, de acuerdo con las definiciones expuestas, el pro­
grama diskcopy será un virus, o más concretamente, un gusano. Lo mismo pue­
de decirse de muchos otros programas, de manera que se necesita, en términos
de la práctica diaria, otra definición.
Desde hace ya bastantes años, Alan Solomon acuñó el término de “virus
reales” para designar a un subconjunto de los virus que realmente nos pueden
dar problemas. La dificultad para definir los virus reales consiste en que no hay
una manera clara, siij ambigüedades, de separar el subconjunto de interés.
El primer criterio de diferenciación consiste en que los virus reales fueron
hechos por sus autores con la intención específica de ser virus. En otras pala­

5 Aunque hay algunas diferencias sutiles entre las definiciones dadas por Cohén y las
aquí presentadas, mucho del trabajo de ese autor es también aplicable a nuestras
definiciones. En particular el primer teorema de Cohén que establece que la unión de
dos conjuntos de virus es también un conjunto de virus, se aplica tal cual a nuestro
caso.
478 CÓDIGO MALICIOSO

bras, los virus reales no son virus por accidente, a diferencia de los programas
como diskcopy. En muchos casos, al analizar un virus y entender cabalmente su
funcionamiento queda claro que fue desarrollado precisamente con esa inten­
ción. Nadie pensaría que el Slam m er o el Witty son programas hechos para otro
fin y que de casualidad caen en la clasificación de virus, sin embargo, la posibi­
lidad de que haya casos en la enorme zona gris que potencialmente hay entre
el diskcopy y el Slamm er hace que muy probablemente nos encontremos en un
futuro no muy lejano con programas o pedazos de programa difíciles de clasifi­
car. Después de todo, no es posible, al menos en todos los casos, saber cuál fue
la intención del autor de un pedazo de programa.

El primer criterio de la intención de programar un virus se cumple en el caso de


los virus que se usan en investigación de proceso paralelo y otros temas simila­
res, que no son de interés práctico pues están confinados a los.laboratorios de
investigación. Un segundo criterio para distinguir a los virus reales es que están
diseñados para operar en el ambiente normal de computación. Para entender
esto tenemos que puntualizar que los virus de investigación de ordinario traba­
jan en ambientes especiales, donde los sistemas operativos han sido modifica­
dos a fin de que el virus en estudio pueda cumplir con su trabajo de manera
eficiente, dejando almacenada toda la información relevante para la investiga­
ción y usando características presentes en el ambiente de laboratorio pero
inexistentes fuera de él. Un virus de esta naturaleza no podría operar en el mun­
V irus 479

do real, fuera del laboratorio y de hecho, ese es un requisito que se incluye en


los protocolos de investigación serios.
Como es lógico, cualquier propiedad que se demuestre para la totalidad de
los virus es válida para los virus reales, así, no es posible hacer un detector uni­
versal de virus y cualquier virus real puede realizar cualquier tarea de cómputo.

Consecuencias de las infecciones por virus informáticos


Hasta ahora hemos dado una definición de virus con algunos ejemplos y hemos
hablado de sus principales propiedades, sin embargo, poco o nada hemos dicho
de las consecuencias que acarrean los virus informáticos.
Como ya se dijo, algunos autores consideran que todos los virus computa-
cionales son dañinos. La base de su argumentación es que aun cuando no con­
tengan ninguna rutina diseñada para hacer algún daño específico, como el virus
Búlgaro de 45 bytes, consumen recursos y por lo tanto hay que erradicarlos.
Efectivamente, todos los virus consumen recursos, no hay duda acerca de
ello, sólo que esa no es razón suficiente para eliminarlos. Si el desperdicio de
recursos fuera una buena razón para mantenerlos fuera de nuestro equipo, tam­
bién tendríamos que dejar fuera la inmensa mayoría de los paquetes que venden
los fabricantes de software más conocidos: ¿Qué son los 500 o 1000 bytes des­
perdiciados por un correo electrónico con virus en comparación con los cientos
de megabytes que usan algunos procesadores de texto para hacer un simple
memorándo?
Por otro lado, los antivirus comerciales desperdician más espacio en disco
que los virus mismos y consumen sin comparación más tiempo de máquina, de
manera que aunque sea estrictamente cierto que los virus consumen recursos,
la razón para eliminarlos no es ésa, pues los recursos necesarios para eliminar­
los son mayores que los que consumen los propios virus. Hay otras razones
mucho más importantes para buscar evitar todas las infecciones sin ponernos a
considerar si se trata de virus benéficos, o al menos inofensivos o no.
La realidad de las cosas es que no es fácil determinar si un virus es real­
mente inofensivo o no. Las razones son múltiples: puede haber errores de pro­
gramación en el virus que puedan causar daños, cosa muy frecuente, o bien se
480 CÓDIGO MALICIOSO

puede tratar de una modificación a un virus inofensivo para convertirlo en una


amenaza para la integridad del sistema y, más importante, algunos de los meca­
nismos más efectivos para combatir los virus detienen cualquier infección, de
manera que si dejamos pasar a los virus inofensivos estamos dejando pasar tam­
bién a los dañinos.
Muchos de los virus en circulación incluyen alguna rutina diseñada explí­
citamente para hacer alguna clase de daño a los usuarios. Entre las rutinas de
daño comunes encontramos varios grupos principales:

• Bromas.
• Destrucción de información.
• Alteración de información.
• Saturación de recursos.
• Bloqueo de los equipos.
• Otros daños.

^^^^rigid;

La destrucción de información es tal vez el daño más frecuente. Muchos virus


simplemente destruyen la parte del disco en la que se encuentran los directorios,
haciendo prácticamente imposible la recuperación de datos y programas. Un
claro ejemplo es el Witty, que después de cada 20,000 ataques graba 64 Kbytes
arbitrarios en una posición al azar del disco.
V irus 481

Aun peor, hay versiones maquiavélicas de destrucción de información. A


fines de los ochenta apareció un caballo de Troya repartido con un diskette de
propaganda en la lucha contra el sida, que cifraba (más bien disfrazaba) los
nombres de los archivos en los directorios de los discos. Esto inspiró a un hac-
ker a hacer creer a los usuarios que su disco duro estaba cifrado, cuando en
realidad lo único que tenía eran números al azar. Los usuarios, en su desespera­
ción para recuperar sus datos, invertían un número grande de horas-hombre
tratando de recuperar lo irrecuperable.
Lln caso mucho más peligroso y sutil de daño es la alteración de la infor­
mación. Imagine lo que sucedería en una empresa cuando las hojas de cálculo
en las que guarda información contable, de presupuestos, o de otros aspectos
administrativos importantes empezaran a tener cambios en las cifras. Si la canti­
dad de cifras alteradas no es muy grande, sería difícil detectar el problema por
simple inspección de los resultados, sin embargo, las consecuencias para la em­
presa podrían ser graves.
Otra forma de alteración peligrosa ocurre cuando un virus cada vez que se
ejecuta cambia uno o varios bytes al azar en el disco duro. Las manifestaciones
de esto pueden no notarse de inmediato, y para cuando sea obvio que hay algo
mal en los datos es muy probable que los respaldos de los archivos estén tam­
bién corruptos.
La saturación de los recursos es un daño que goza de popularidad en­
tre quienes escriben virus. Han sido ya muchas las redes que han debido
suspender su operación para recuperarse de ataques de virus de correo elec­
trónico. La propia Internet estuvo detenida alrededor de una hora cuando el
Slammer.
Otros virus simplemente consumen mucho tiempo de procesador hacien­
do a la máquina desesperantemente lenta. Algunos otros virus simplemente
bloquean la máquina.
La variedad de los daños es tan amplia como los hackers que hacen virus.
Se pueden hacer cosas como producir un desgaste excesivo en el equipo, o
aprovechar la capacidad de los virus de penetrar hasta los altos niveles de segu­
ridad, de manera de tener un canal de comunicación a información privilegiada.
El espionaje es otro daño frecuente cuando los virus instalan programas moni­
482 CÓDIGO MALICIOSO

tores del teclado que envían el resultado a una dirección de correo de Internet
cuando el usuario se conecta.
Es importante hacer notar que muchos de los daños que puede generar un
virus serían acciones que legítimamente podría realizar un usuario común, de
manera que algunas defensas que se basan en la detección de acciones anorma­
les fallan completamente como medidas preventivas de daño.
Mientras más indirecta es la acción del virus y más explicaciones alternati­
vas haya, más difícil será darse cuenta de que se trata de un virus.
También ocurre lo contrario, achacamos muchos problemas a los virus que
en realidad no fueron producidos por ellos. Frecuentemente se usa como pre­
texto para no entregar un trabajo a tiempo que un virus borró la información.
Lo mismo ocurre cuando por error se borraron archivos importantes.
Por encima de todos los daños mencionados hay otro que no está progra­
mado en ningún virus, pero que resulta de todos ellos: se trata del daño psico­
lógico que generan y su impacto en las organizaciones.
Imaginemos a una secretaria en los niveles altos de una empresa o institu­
ción. Su trabajo exige alta calidad en los resultados y una enorme eficiencia. Con
frecuencia tendrá que entregar documentos importantes mecanografiados en
tiempos muy cortos. Para ello cuenta con una computadora personal último
modelo. Si un virus destruye o corrompe sus archivos en el momento inapropia­
do se llevará al menos un gran regaño. Un par de veces que le ocurra y pode­
mos asegurar que regresará, con el beneplácito de su jefe, a su rudimentaria
pero fiel máquina de escribir, echando por la borda el adelanto tecnológico que
en materia de automatización de oficinas se pudiera haber logrado.
El pánico y la psicosis colectiva que se produce cuando por los medios se
anuncia que en una cierta fecha algún virus dañará la información almacenada
en los discos duros produce más estragos que los virus mismos. ¿Cuántas PCs
dejaron de usarse al inicio del año 2000 por temor a una infección? No lo sabe­
mos, pero nos consta el esfuerzo que hicieron algunos vendedores de antivirus
por asustar a los usuarios diciendo que había muchos virus que borrarían infor­
mación en esa fecha.
Virus 483

Las generaciones de virus


En el caso de las computadoras, hablamos de generaciones para describir cam­
bios tecnológicos mayores de una manera sencilla. Así, decimos que la primera
generación de computadoras usaba bulbos, que la segunda había reemplazado
los bulbos por transistores, etcétera.
La frontera entre las diferentes generaciones es en la realidad un tanto di­
fusa, puesto que se trata de un desarrollo continuo en el que los cambios fun­
damentales se introducen poco a poco, mezclándose con las tecnologías
anteriores. Así, en la IBM 1620 de los años sesenta, había todavía un par de bul­
bos a pesar de ser una máquina de segunda generación.
Las definiciones que daremos de las generaciones de virus tienen ese mis­
mo problema: nos describen a grandes rasgos la evolución seguida por el desa­
rrollo de los virus, aunque en la práctica encontramos muchos virus que tienen
elementos de más de una generación.
El criterio que seguimos para diferenciar las generaciones de virus es la
clase de tecnología necesaria para su detección.
Podemos caracterizar la primera generación de virus por el hecho de que
pueden ser detectados “a simple vista”, es decir, no necesitamos de ningún pro­
grama especial para reconocer una infección aun en sus fases tempranas. Algu­
nos virus que pertenecen a esta primera generación son los llamados “virus de
sustitución”, en los que el virus reemplaza parte de un programa sin preocupar­
se de mantener la funcionalidad del programa infectado. De esta manera, la
simple ejecución del programa nos dice que algo anda mal al no funcionar de
la manera acostumbrada.
La segunda generación de virus se caracteriza por mantener la funcionali­
dad de los programas que infecta y no hace ninguna acción que los delate en
forma obvia al menos por un tiempo. Así, preservan la funcionalidad del progra­
ma infectado y mantienen cuando menos la fecha del archivo que invaden, si
bien muchos no engañan al usuario en cuanto a la longitud del archivo basán­
dose en que nadie verifica y recuerda las longitudes de sus programas, en tanto
que un cambio de fecha sería bastante obvio pues el encontrar un programa que
484 CÓDIGO MALICIOSO

hemos usado por meses o años con la fecha de hoy o cualquiera digamos del
mes pasado, haría obvio que ha sido alterado.
Aquí necesitamos ya de algunas herramientas para detectar el problema. A
nivel muy elemental, un programa que registre las longitudes y fechas de los
archivos ejecutables de nuestra máquina y guarde una copia de las rutinas de
carga para hacer una comparación contra ellas, sería suficiente.
La realidad, sin embargo, no es tan benigna. Pronto surgieron una serie de
virus en los que no se generaban efectos tan fáciles de detectar. Se trata, obvia­
mente, de la tercera generación. Su detección y caracterización requiere de
programas de alta especialización. Algunos de ellos ni siquiera alteran las áreas
de memoria en las quie se almacenan las direcciones de las rutinas de servicio,
o el registry, que les dan el control del equipo. Muchos de ellos están “encripta-
dos”, de manera que tampoco es fácil detectarlos por las instrucciones de que
están constituidos.
La forma ordinaria de combatir estos virus es la búsqueda de una secuen­
cia de instrucciones que forma parte del virus en memoria, programas, docu­
mentos con código ejecutable, bibliotecas compartidas, buzones de correo
electrónico y áreas del sistema.
Algunos virus de transición entre la tercera y la cuarta generación son ca­
paces de adoptar diferentes formas e invadir diferentes clases de programas, o
trabajar coordinando las acciones de diferentes partes del virus almacenadas por
separado. Éstos son los virus multipartitas.
Relacionados con los virus multipartitas están aquellos virus capaces de
trabajar en más de una plataforma, como el Winnux que trabaja en Windows y
Linux y que entró en circulación en marzo de 2001.
La tecnología sigue su marcha y ya han aparecido los virus de la cuarta
generación. Esta generación es la de los llamados virus polimórficos a los que
popularmente se les conoce con el sobrenombre de virus “mutantes”. Contienen
una serie de pequeñas rutinas que ensamblan como si fueran piezas de m ecca-
no para hacer cada vez que se reproducen un virus diferente. Uno de los virus
detectados es capaz de hacer 4.3 x 109 variantes. Es obvio que empleando el
enfoque de buscar secuencias de bytes únicas para detectar un virus polimórfico
no es prácticamente posible ya que, para el caso anterior, tendríamos que bus­
v ir u s 485

car 4.3 X 109 secuencias diferentes, cosa imposible en términos prácticos. Hay
que usar un mecanismo un tanto más refinado.
Se ha hecho toda una leyenda en torno a la detección de los virus polimór-
ficos, haciendo creer al público que se trata de algo poco menos que imposible
y que requiere tecnología de punta. Esto desde luego que no es cierto, hacer
algún detector algorítmico para alguno de estos virus es algo que está al alcance
de cualquier fabricante de detectores. La manera de detectarlos es buscando las
diferentes rutinas que se pueden ensamblar y viendo si las piezas encontradas
forman un conjunto de rutinas de las que el virus puede generar. Esto implica
haber desensamblado del virus y analizado a fondo su funcionamiento. De aquí
se pueden deducir cuáles son las diferentes piezas que hay que buscar y cuáles
pueden ir asociadas y cuáles no, con lo que es relativamente fácil deducir si un
conjunto de piezas encontrado forma una variante del virus o no. El único pro­
blema real es el tiempo que se requiere para elló, junto con el costo y la canti­
dad de personal necesaria para desarrollar los algoritmos de detección.

Virus polifórmico
1 a copia Porción encriptada

Rutina de Rutina de Piezas para ensamblar


desencripción armado y
copia

l iI l i Rutina
de
armado
Piezas para ensamblar

Nueva rutina de y copia


desencripción

Porción encriptada
486 CÓDIGO MALICIOSO

En algunos virus polimórficos las piezas de que están hechos son de uso común
en programas normales, de manera que si no está bien hecho el algoritmo que
los detecta, se pueden producir numerosas falsas alarmas.

Generación Características

Ia Detectables “a simple vista”.

2a Detectables con mecanismos propios de sistema operativo y


utilerías.

3a Detectables con herramientas especializadas relativamente


simples.

4a Detectables mediante algoritmos especializados en cada virus.

Generadores de virus y cajas de herramientas


A lo largo del tiempo han aparecido en el mundo subterráneo tanto cajas de
herramientas para la elaboración de virus como programas generadores de vi­
rus. Tal vez el generador de virus más conocido sea el VBSWG escrito por un
hacker argentino apodado el K alam ar.
Durante muchos años usar una caja de herramientas requería que el usua­
rio tuviera conocimientos de programación y sistemas operativos más o menos
profundos, sin embargo, la introducción de lenguajes de programación fáciles
de manejar en los productos Microsoft Office y el VB Script de la misma empre­
sa, han hecho que el nivel de conocimientos necesario sea mucho más bajo y
en consecuencia la cantidad de hacedores de vims ha crecido notablemente
agravando un problema ya de por sí delicado.
Además de las cajas de herramientas tenemos hoy generadores de virus.
Aun cuando los primeros generadores tienen ya un buen número de años de
existir, fue a partir de la segunda mitad de los noventa que se convirtieron en
una amenaza fuerte. El virus Anna Kournikova que invadió un enorme número
de máquinas a principios del 2001 fue hecho con el VBSWG por alguien que ni
siquiera sabe programar.
V irus 487

Los generadores de virus toman algunas ideas de los virus polimórficos


ya que contienen una serie de rutinas prefabricadas que ensamblan para for­
mar un virus a partir de una serie de opciones dadas por el usuario del gene­
rador.
De un tiempo para acá algunos virus hacen uso de otros programas malig­
nos para cubrir sus huellas. Un ejemplo es el ¡ion worm que invadió un enorme
número de servidores de nombres de Internet a principios del año 2001 y que
instalaba el llamado torn rootkit, que oculta el problema al administrador del
sistema y a los usuarios.

Los virus en Internet


El número de usuarios de Internet es ya muy grande, del orden de las centenas
de millones de personas, la mayoría ignorante de los aspectos técnicos y además
muy descuidada. La comunicación es casi instantánea, las medidas de seguridad
en los protocolos básicos casi inexistente, los errores en los programas servido­
res muy frecuentes, la variedad de programas de correo electrónico terriblemen­
te restringida, la actualización de programas antivirus francamente pobre
—fuera de las grandes organizaciones que usan mecanismos automáticos— y
las comunidades de hackers cada día más abundantes.
Esto plantea un escenario no muy prometedor desde el punto de vista del
crecimiento del problema de virus informáticos.
Veamos primero la problemática desde el lado de los usuarios. Por mucho,
la fuente más abundante de problemas de virus es el correo electrónico. Gene­
ralmente los usuarios reciben un número apreciable de correos cada día, de
los cuales un porcentaje importante son chistes, anuncios (spam) y trivias envia­
dos tanto por conocidos como por personas con las que no se tiene ninguna
relación.
De ordinario el usuario los lee y abre cuanto anexo haya en forma auto­
mática: se trata prácticamente de un reflejo condicionado. El anexo con mucha
frecuencia trae un programa ejecutable o un documento con cosas interesantes,
así que la curiosidad es el mejor aliado de los virus. La respuesta ordinaria es
colocar un detector de virus en el servidor de correo. Esto es efectivo contra
488 CÓDIGO MALICIOSO

muchos virus, pero no sirve cuando un virus es nuevo ya que no está cataloga­
do en la lista de virus que el detector maneja.
En la naturaleza encontramos que una de las estrategias más importantes
para la sobrevivencia de las especies es la diversidad genética. Así, epidemias de
males tan terribles como la peste o el cólera o aun el sida son incapaces de erra­
dicar a todos los individuos, ya que algunos serán inmunes a esa enfermedad.
En general esto no ocurre así en los usuarios de Internet, ya que casi no
hay variedad de programas y sistemas operativos: la inmensa mayoría usa para
correo electrónico el programa Outlook y el sistema operativo Windows de Mi­
crosoft, combinación que para colmo ofrece numerosas facilidades para la exis­
tencia y propagación de los virus. No es nada extraño que la inmensa mayoría
de los virus que se propagan por correo electrónico estén escritos para esta
combinación y exploten ampliamente sus facilidades.
Una medida sorprendentemente fácil para evitar desastres mayores en or­
ganizaciones con muchas pcs conectadas en red es usar un programa de correo
que no sea Outlook. Esta medida está al alcance de las organizaciones simple­
mente cambiando la norma en cuanto a programa de correo y borrando el
Outlook de las máquinas de los usuarios.
Otra medida trivial y que no tiene ningún costo es que los usuarios no den
click sobre los anexos de correo a menos que se trate de un remitente conocido
y para asuntos de negocios, sin embargo, este es un caso perdido en general,
pues la inmensa mayoría de los usuarios no hacen caso a esta recomendación.
Ocurre aquí algo similar a lo que pasa con el sida: si todos tomáramos las me­
didas higiénicas básicas contra ese virus, desaparecería de la faz de la tierra en
una década aproximadamente, sin embargo, si cuando lo que va de por medio
es la propia vida, muchas personas no toman las más elementales medidas de
seguridad, ¿qué podemos esperar cuando lo que va de por medio es la informa­
ción de la PC o los datos de la organización?
La otra vertiente de los virus en Internet está relacionada con los servido­
res. Aunque aquí la variedad de programas y sistemas operativos es más grande,
hay suficientes servidores de cada tipo como para poder sostener una epidemia,
ya el virus Witty demostró que bastan 12,000 máquinas vulnerables en la inmen­
sidad de Internet para sostener una epidemia.
V irus 489

También hay algunos programas para los que casi no hay variedad. Tal vez
los ejemplos más notables sean el servidor de nombres BIN, el agente de correo
sendm ail y el servidor de Web OS y el de correo Exchange, ambos de Mi­
crosoft,
La sofisticación de los virus de servidor tiende a ser mayor que la de los
virus de usuario. En general, un virus de servidor aprovecha alguna debilidad
existente en algún programa común, la explota para ganar el control del servi­
dor victima y, una vez adentro, transfiere una serie de archivos, oculta su exis­
tencia, con frecuencia deja una puerta trasera para el autor del virus, y aprovecha
el servidor para lanzar ataques sobre otros servidores, todo automáticamente y
sin que tenga que mediar acción alguna por parte del administrador del servidor
o de sus usuarios.
Un ejemplo de este comportamiento es el virus Witty aparecido en marzo
de 2004 al día siguiente de la publicación de vulnerabilidades en varios corta­
fuegos (firewalls).
Aquí el peor enemigo a vencer es la falta de cuidado de los administrado­
res de los nodos que normalmente no reciben las circulares que indican cuáles
versiones de los programas son vulnerables y, por lo tanto, no actualizan sus
servidores con versiones seguras.
Desde luego que si un virus aparece al día siguiente de anunciada la vul­
nerabilidad, es muy difícil pedir que todos los administradores de servidor ha­
gan los parches necesarios a sus sistemas.

Medidas contra los virus


La medida más frecuente contra los virus son los detectores de virus, sea que
corran en tiempo real o que lo hagan periódicamente. Hablando de los usuarios
finales es casi la única medida practicable en el mundo real y aun así, normal­
mente no se puede llevar a cabo correctamente.
El talón de Aquiles de los detectores es el problema de la actualización de
la información sobre virus. Cualquier virus de correo electrónico requiere de un
par de días para alcanzar volúmenes grandes en Internet, los fabricantes de de­
tectores probablemente reciban una copia del virus durante las primera 24 horas
490 CÓDIGO MALICIOSO

y al día siguiente tendrán actualizada la información sobre virus en su sitio web,


al mismo tiempo que el volumen del virus ha alcanzado un enorme número de
máquinas, sin embargo, aun en buenas condiciones, la actualización de esta
información en las máquinas de los usuarios domésticos se hace cuando mucho
una vez al mes. En las grandes organizaciones se tienen sistemas automatizados
que pueden hacer la actualización una vez al día e incluso más, aunque una
mayor frecuencia tiene problemas de saturación de la red interna. A pesar de
esto, es común encontrar que la información sobre virus tiene varios meses y de
nada sirve en esos casos.
La opción de verificar cifras de control de programas y áreas de sistema
solía ser muy efectiva para encontrar virus, sin embargo, desde que Microsoft
mezcló datos con programas en sus aplicaciones de oficina, esto ya no es tan
sencillo porque los cambios en los documentos legítimos en estos archivos son
demasiado frecuentes.
Pocos programas hay para este propósito, siendo tal vez el más conocido
el tripivire. Definitivamente un programa que detecte cambios en archivos no es
bueno para el fabricante, ya que se vende una vez en lugar de vender actualiza­
ciones continuas.
Algunas otras medidas pueden atenuar el problema. La eliminación del
programa Outlook (borrando el archivo) y su sustitución por otro de los muchos
programas de correo que hay, detendrá el reenvío de muchos virus de correo
electrónico dentro de la red de la organización, reduciendo el problema a las
copias de virus que vienen de fuentes externas.
Del lado de los procesadores de texto hay dos cosas que se pueden hacer:
eliminar el M icrosoft Word y sustituirlo por otro programa equivalente o al me­
nos hacer que los usuarios manden sus documentos en formato RTF. Este forma­
to tiene algunas limitaciones, sin embargo en la inmensa mayoría de los casos
los documentos no se degradan por usarlo. El problema que surge es el de vi­
gilancia de la política corporativa, que se puede implementar con filtros de co­
rreo que impidan el envío de documentos en formato nativo de Word. Es
importante plantear algún tipo de sanción para quienes traten de brincar por
encima de la política, aunque sea una sanción social, como publicar cada sema­
na quiénes han sido los infractores.
v ir u s 491

El uso de detectores de virus en los servidores de correo que revisen los


correos recibidos y enviados es otra medida que puede funcionar a pesar de
los usuarios, ya que queda completamente fuera de su alcance.
Los virus en los servidores ofrecen menos problemas, ya que un servidor
no debe usarse para proceso de textos y el envío de correos electrónicos debe
de hacerse siempre desde la terminal del administrador y nunca desde la con­
sola del servidor. La medida de eliminar el Outlook es también aplicable para los
servidores Windows y en servidores Unix no hay virus ni de documento ni de
correo electrónico. Esto no quita que se tenga la posibilidad de ser víctima de un
gusano de alta velocidad, como los ya citados.
En suma, es realista actualizar los detectores de virus diariamente y mejor
aún, es posible calcular una cifra de control de todos los demás programas, ar­
chivos ejecutables y de configuración que usa el servidor y verificarla diariamen­
te o incluso varias veces al día. Nótese que esta medida es efectiva también en
la detección de intrusiones.
Cada vez que se detecte una alteración será necesario reconstruir el archi­
vo a partir de un respaldo que debe mantenerse ya sea fuera de la máquina o
en medio no escribible, como CD-ROM.
Otro aspecto importante es que el administrador reciba diariamente las
listas de vulnerabilidades de SANS Institute, Securityfocus y de CERT y que apli­
que inmediatamente las correcciones necesarias.

El futuro
Dada la falta de cuidado de los usuarios, el anonimato derivado del número
creciente de usuarios de la red, la naturaleza destructiva de algunas personas, la
inutilidad de las leyes y policías cibernéticos, y la incorporación de facilidades
mal diseñadas en las aplicaciones y servicios de red, lo único seguro es que el
problema de virus se agravará.
En un plan realista, lo mejor que podemos pronosticar es que mejoraremos
los mecanismos de protección de manera que podamos paliar el problema,
aunque no resolverlo de raíz. La necesidad de mantener bajo control la situación
de virus generará toda una especialidad de la informática muy apreciada por las
492 CÓDIGO MALICIOSO

organizaciones y, por lo tanto, bien pagada. Los presupuestos de protección


contra virus tendrán que crecer, generando oportunidades de crecimiento para
las empresas de antivirus existentes y nuevos nichos para nuevas empresas que
ofrezcan alguna innovación que facilite el combate de los virus.

Historia de los virus


La prehistoria de los virus computacionales
Al igual que muchos otros fenómenos tecnológicos, los virus informáticos se
gestaron a lo largo de muchos años.
La posibilidad de programas que se reproduzcan a sí mismos fue apuntada
en los años cuarenta por John von Neumann en un artículo titulado “Theory and
Organization of Complicated Autómata” y más adelante, ya en los años cincuen­
ta, en su libro The Computer a n d the B rain, plantea la posibilidad de un autó­
mata capaz de hacer otros autómatas iniciando lo que ha sido una discusión sin
fin: ¿puede haber vida en las computadoras?
Enmarcada en la discusión de la vida artificial en los años sesenta, se cuen­
ta que en un laboratorio de investigación un grupo de científicos crearon un
programa llamado Creeper, que era capaz de reproducirse a sí mismo en forma
automática. De acuerdo a nuestras definiciones, Creeper era un replicador sim­
ple o gusano que representa un paso importante para el desarrollo del resto de
los virus. Creeper fue tan exitoso que pronto saturó la computadora en la que
había entrado. Eliminar a Creeper no era tan fácil, pues continuamente apare­
cían copias y más copias, así que a alguien se le ocurrió la idea de combatir
fuego con fuego a fin de eliminar a Creeper. Los mismos científicos diseñaron
otro programa, llamado Reaper, cuya función era la de destruir cuanta copia de
Creeper encontrara hasta eliminarlas todas, para en ese momento “suicidarse”.
Tenemos entonces el antecedente de un virus destruyendo otro virus. Reaper
hizo su trabajo y finalmente las cosas volvieron a la normalidad.
En la circular de virus de la red Internet se discutió ampliamente en 1990
y 1991 la posibilidad de hacer virus antivirus. Como es obvio, hubo posiciones
encontradas que lucharon hasta el final por imponer su punto de vista. Final­
V irus 493

mente se llegó a un consenso razonable basado en consideraciones éticas y


prácticas que por diversas razones indicaba que hacer un virus que elimine
otros virus es una mala idea. El primer problema surge en el hecho de que no
es posible distinguir un virus bueno de uno malo de forma automática y al dejar
entrar al virus bueno también dejaríamos entrar virus malos. Por otra parte, no
se consideró aceptable irrumpir en los sistemas de los usuarios sin su conoci­
miento y en un nivel mucho más realista se alegó que prácticamente no es po­
sible demostrar que el antivirus no tiene errores de programación y que trabaja
bajo cualquier versión del sistema operativo y en cualquier configuración, y que
esto podía causar más daño que beneficio. También se ha demostrado con todo
rigor que no es posible hacer un antivirus universal. Adicionalmente tenemos el
hecho de que los usuarios bien pueden adquirir programas antivirus, en vez de
recibirlos como una infección a su sistema.
Definitivamente no es buena idea la de un virus antivirus. Ofrece enormes
problemas técnicos, los hackers rápidamente les darían la vuelta y tendríamos
más virus circulando por todos lados.
La lucha entre Creeper y Reaper inspiró un extraordinario juego en el que
lucha el talento de los programadores: Core Wars. Se trata de un programa que
simula el funcionamiento de la memoria de una computadora en la que luchan
dos programas tratando de destruirse uno al otro. Hay actualmente en circula­
ción versiones de Core Wars para muchas máquinas, incluyendo, desde luego
las PCs y compatibles.
La primera referencia de Core Wars a nivel del público general apareció en
la columna Computer Recreations del número de mayo de 1984 de la revista
Scientjfic American, escrita por A. K. Dewdney, autor del juego, junto con uno
de sus alumnos, David Jones. El lenguaje en el que se escriben los programas
contendientes es una especie de ensamblador simplificado llamado Redcode.
El escenario es una memoria de 8 Kbytes en la que los programas escritos
en R edcode son interpretados por un programa llamado mars (Memory Array
Redcode Simulator) que ejecuta alternativamente una instrucción de cada pro­
grama, hasta que uno de los programas es derrotado al no poder ejecutar ya
ninguna instrucción. El objetivo básico es, pues, bloquear al programa enemigo
antes de ser bloqueados por él.
494 CÓDIGO MALICIOSO

Las críticas llovieron sobre Dewdney diciendo que lo que había escrito era
sumamente destructivo, al dar malas ideas a los programadores. La presión fue
tal que en 1985 Dewdney publicó una apología en su columna diciendo que
Core Wars no era el origen de los programas destructivos, aun cuando en las
cartas de los lectores se planteaba la posibilidad de usar técnicas similares a
las de los programas que luchaban en Core Wars para fines destructivos.
Culpar a Dewdney de la existencia de virus y caballos de Troya sería tanto
como echar la culpa de la guerra al inventor del ajedrez. El problema reside en
la destructividad humana y no en inocentes juegos intelectuales. Core Wars es
una excelente herramienta educativa para la enseñanza del lenguaje ensam­
blador.
La historia de Creeper y Reaper estaba inspirada, de acuerdo a Dewdney,
en el programa Darwin desarrollado por Douglas Mcllroy en los Laboratorios
Bell, cuya descripción aparece en la revista Software: Practice a n d Experience
Vol. 2, 1972, y el programa Worm escrito por John F. Shoch del Xerox Palo Alto
Research Center.
En Darwin, que es un juego más o menos parecido a Core Wars, los pro­
gramas, llamados organismos, tratan de reproducirse lo más posible, a veces a
expensas de sus contrincantes, ya que al transcurrir un cierto tiempo, el organis­
mo más abundante es el que gana, por lo tanto, para triunfar hay que programar
los organismos más resistentes y prolíficos.
Worm es un experimento diseñado para explorar la posibilidad de proceso
paralelo en redes de computadoras. Bajo la supervisión de un programa coordi­
nador, Worm penetra en las máquinas de la red para realizar un pedazo de la
tarea en cada una de ellas. Esto es en realidad un antecedente del proceso en
paralelo que hoy se lleva a cabo en redes de computadoras, como el proceso
de la información recabada en el proyecto SF.TI que aprovecha PCs de usuarios
en Internet y trabaja mediante un protector de pantalla.
Así pues, estos programas, que de alguna manera pueden considerarse los
antecedentes de los virus computacionales, tenían objetivos bien definidos ya
sea de investigación o de enseñanza y diversión.
El primer experimento con virus informáticos propiamente dichos del que
tenemos noticia fue concebido por Fred Cohén, el 3 de noviembre de 1983, y
V ir u s 495

presentado dentro de un seminario semanal de seguridad informática en la Uni­


versidad del sur de California.
Este virus fue desarrollado en tan sólo ocho horas en una computadora
VAX 11/750 bajo Unix. Con él se hicieron cinco experimentos cuyos elocuentes
resultados ilustran la gravedad del problema que aún estamos por vivir.
En este experimento se introdujo el virus en un nuevo programa, llamado
“vd”, para desplegar gráficamente la estructura de los directorios de los archivos
de la máquina. La existencia de este programa se comunicó a los usuarios me­
diante el sistema de tablero de avisos, que despliega mensajes diversos al entrar
un usuario en sesión.
El virus dejaba un rastro de auditoría orientado a estudiar su velocidad de
propagación y a asegurar que la máquina quedara completamente libre del vi­
rus al terminar el experimento. He aquí sus resultados:

Tiempo Evento Efecto

Se anuncia el programa en el Se publica la existencia de un


0
tablero de avisos nuevo programa

El administrador del sistema Se infecta un programa de


3 min
ejecuta el programa utilería

El súper usuario ejecuta el El virus obtiene todos los


5 min
programa privilegios

Los resultados del primer experimento ilustran un caso en el que la infortunada


ejecución del programa inicial del virus por el administrador del sistema y por
el súper usuario, dan todos los privilegios al virus en muy corto tiempo.
En ocasiones, el camino de un virus para adquirir todos los privilegios y
extenderse hasta cubrir la totalidad de los programas es algo más tortuoso,
como lo muestra el segundo experimento de Cohén.
496 CÓDIGO MALICIOSO

Tiempo Evento Efecto


Se anuncia el programa en el Se publica la existencia
0
tablero de avisos de un nuevo programa
Se infecta el programa
1 min Un usuario ejecuta el programa
loadvg
El dueño del programa editor del Se infecta el editor del
4 min
sistema ejecuta loadvg sistema
Muchos usuarios utilizan el editor Múltiples programas
8-12 min
del sistema infectados
El súper usuario ejecuta el editor El virus adquiere todos
14 min
del sistema los privilegios

Aun cuando el tiempo que tarda el virus en adquirir la totalidad de los privile­
gios en el segundo experimento es tres veces mayor que en el primero, resulta
pavoroso pensar que basta un cuarto de hora en un equipo muy lento compa­
rado con los actuales, para que un virus adquiera el control del sistema. En
términos prácticos resultaría muy difícil verificar la integridad de la totalidad de
los programas de un sistema multiusuario cada 10 o 15 minutos. Si acaso resul­
ta práctico hacerlo dos o tres veces al día y el resultado de esta práctica sería
simplemente saber que hay que reponer casi la totalidad de los programas del
sistema, cosa que podemos calificar como un desastre mayor.
Así pues, en un sistema multiusuario necesitamos mejores medidas que
simplemente revisar la inexistencia de virus de vez en cuando.
Los experimentos de Cohén permanecieron dentro de los medios científi­
cos un buen tiempo. En realidad, los virus informáticos fueron descubiertos por
diversos programadores en forma independiente, antes y después de los expe­
rimentos de Cohén.

La pérdida de control de los virus


Las siguientes noticias sobre virus dirigidas al público aparecieron en el ya cita­
do artículo de Dewdney de marzo de 1985. En esta ocasión, Dewdney hace un
V irus 497

resumen de las cartas que los lectores le enviaron a raíz del artículo mencionado
más arriba.
Aquí aparecen ya una serie de referencias del “mundo real” en el que se
mencionan y describen dos virus. Los autores del primer virus son Roberto Ce-
rruti y Marco Morocutti, de Brescia, Italia. Se trata de un virus para computado­
ras Apple II. La ingenuidad de estos programadores resulta evidente cuando
mencionan que no pudieron hacer funcionar su virus hasta que se dieron cuen­
ta que debería transmitirse mediante un diskette infectado con el DOS. Este virus
nunca fue liberado y por lo tanto no generó ninguna epidemia. Su importancia
radica en que fue desarrollado fuera de los laboratorios de investigación y en
una máquina sumamente populares en ese tiempo.
Otro virus descrito en el artículo de 1985 de Dewdney fue hecho por Ro-
bert Skrenta Jr., estudiante de high school, que causó toda una epidemia entre
sus amigos y maestros, marcando el primer problema con virus sufrido por va­
rios usuarios.
En el año 1985 se desarrollaron otros viais. Tal vez el más importante sea
el Pakistán Brain hecho por dos hermanos de Labore (Pakistán) y que fue in­
troducido en Estados Unidos y en el resto del mundo en copias ilegales de
programas famosos que los hermanos vendían a los turistas en tan sólo 1.50
dólares.
La lista de los virus ha crecido rápidamente desde entonces hasta la fecha.
A fines de 1992 se reportaban ya alrededor de 1,600 virus diferentes para el
ambiente pc/ dos y a principios de 1994 la cifra era de alrededor de 4,000, aun­
que hay severas discusiones en la manera de efectuar la cuenta de virus diferen­
tes. A fines de siglo se estimaban más de 40,000 y para fines del 2004, 100,000.
De hecho, la cifra real no es crítica, lo importante es el rápido crecimiento del
problema.

Los virus en la red


Mientras que los virus se propagaban sólo en diskettes, el número de máqui­
nas que lograban infectar no era demasiado grande, sin embargo, hay dos even­
tos que cambiaron totalmente esta situación: la popularización de Internet y en
498 CÓDIGO MALICIOSO

particular del correo electrónico, y la incorporación de lenguajes de programa­


ción en los documentos de las aplicaciones de Microsoft Office.
En efecto, esta combinación resultó fatal porque la circulación de docu­
mentos anexos a los correos electrónicos es enorme, lo que posibilita una epi­
demia de dimensiones mundiales en sólo unas horas.
Ejemplos de estos virus son el Melissa, el I Love You y el Anna Kourniko-
va que datan de fines de los noventa y principios de la primera década del si­
glo XXI.
En esos mismos años aparecieron los primeros virus que atacan servidores
haciendo uso de vulnerabilidades de algunos programas comunes en los servi­
dores de red, como el servidor de nombres bind y el de correo sendmail.
Los primeros virus multiplataforma aparecieron también en este periodo,
siendo el más conocido el Winnux, que ataca plataformas Windows y Linux.

Ataques de penetración
Mucho es el código desarrollado por atacantes para obtener el control de una
máquina ajena. Aquí tenemos diferentes enfoques por parte de los atacantes:
pueden buscar las contraseñas de los usuarios, particularmente del súper usua­
rio £Adm inistrador en Windows o root en Linux/Unix), pueden aprovechar
errores en el diseño de los protocolos usados en las redes y en algunos progra­
mas clave de uso generalizado, o aprovechar el acceso físico a la máquina víc­
tima.
La obtención de contraseñas será tratada en la sección de programas
espías, en tanto que aquí nos concentraremos en las otras formas de pene­
tración.
Los ataques de penetración requieren de dos fases, la penetración inicial y
luego el mantenimiento del control del servidor, es decir, mantener una puerta
abierta para el atacante.
Cuando el ataque se hace a través de una red generalmente se aprovecha
de algún error de diseño en algún protocolo de comunicación o en algún pro­
grama de uso común, aunque es posible también utilizar un virus que introduce
los programas necesarios para la segunda fase del ataque.
At a q u e s d e pe n e tr a c ió n 499

Cuando el atacante está en la misma red local que la víctima, es frecuente


el robo de contraseñas mediante los programas “Analizadores de protocolos”,
desarrollados para fines de diagnóstico y mantenimiento de las redes, y que
pueden ver todo lo que pasa por la red local.
La mayoría de los protocolos de comunicación han sido ya corregidos para
evitar los ataques o están señalados como peligrosos por el SANS Institute o por
CERT y han sido sustituidos por otros protocolos. Así, tenemos el protocolo TFTP
( Trivial File Transfer Protocol) que permitía cargar y descargar archivos en una
máquina sin que mediara una adecuada identificación y que fue sustituido pri­
mero por el protocolo normal de FTP y luego por el protocolo seguro SFTP, que
transmite la totalidad de la información apropiadamente cifrada.
Un problema importante se presenta con los nuevos protocolos y en par­
ticular con los inventados por las empresas comerciales y que no pasan por una
revisión concienzuda por terceras partes, muchas veces por razones del mono­
polio comercial o porque el propio fabricante está consciente de que está intro­
duciendo problemas de seguridad, pero quiere seguir adelante por razones
meramente comerciales.
Del lado de los programas con errores de programación, todos los días
—literalmente— se publica el descubrimiento de nuevos errores por parte de
los organismos mencionados. En el mismo anuncio del error en la mayoría de
los casos se dan las instrucciones correspondientes para corregir el problema o
al menos mitigarlo. Dada la presión de la competencia comercial y la falta de un
conocimiento profundo de seguridad informática por parte de los desarrollado-
res, la cantidad de errores tiende a aumentar, así que no podemos esperar que
esto se corrija.
Una vez que la primera fase ha sido exitosa, el atacante lanza una segunda
fase que le asegure la entrada permanente a ese sistema. Esto implica la modi­
ficación o sustitución de programas o archivos de configuración y/o la instala­
ción de nuevos programas. Algunos de estos cambios van dirigidos a ocultar al
usuario que alguien a penetrado en su sistema. A muchos de estos programas
se les llama “rootkits” y uno muy conocido es el tora.
En el caso de los servidores conectados a una red usualmente hay un tra­
bajo previo de identificación de las vulnerabilidades que pudiera tener. Normal­
500 CÓDIGO MALICIOSO

mente esto se hace mediante un rastreo de los puertos del servidor. En cada
puerto abierto que pueda estar sujeto a una vulnerabilidad hay un segundo
cuestionamiento para determinar si el programa que atiende el puerto corres­
ponde a alguna versión vulnerable. Si podemos detectar estas actividades, podre­
mos prevenir muchos ataques. En este tipo de fenómenos se basan los llamados
IDS (Intrusión Detection System) y los ips (Intrusión Prevention System).
Gran parte de los programas atacados tienen un tipo común de vulnerabi­
lidad llamada “buffer overflow" y que consiste en que carecen de los controles
adecuados para evitar que demasiada información enviada a ellos llene las áreas
destinadas a recibir datos y se encime con otras partes del mismo programa.
Los programas de ataque simplemente mandan cantidades grandes de in­
formación en la que incluyen código en lenguaje de máquina para terminar el
programa o cargar en su lugar un shell que automáticamente tendrá los dere­
chos del usuario que lanzó el programa original —root o Administrador en
muchos casos— , dando acceso al atacante.
A pesar de que es un error muy fácil de prevenir existe en muchos progra­
mas, tanto de dominio público como comerciales. Son ya legendarias las nume­
rosas fallas de este tipo en el lis de Microsoft.
Otros programas de ataque aprovechan errores en trayectorias y nombres
de archivo y permisos, de manera que sustituyen algún programa de uso gene­
ral por el del atacante y simplemente esperan a que un usuario, preferentemen­
te con privilegios, los ejecute. Este tipo de ataques solía ser común usando
servicios públicos de FTP y hoy se ve con frecuencia en scripts de servicio de
Web mal diseñados.
Lo más adecuado es prevenir, hasta donde es posible, el primer ataque. Un
detector de exploración de puertos, como los tcpwrappers de Unix, adecuada­
mente configurados, pueden ayudar muchísimo, aunque la mejor manera de
defenderse es teniendo abiertos el menor número de puertos posibles y mante­
niendo las versiones de los programas actualizadas o con las correcciones que
eliminan o mitigan el peligro.
Aunque no es lo mejor, detectar la segunda fase nos puede ayudar cerrar
las puertas abiertas. Esto se puede hacer con programas que revisan la integri­
dad de archivos de configuración y programas. Aquí es importante mantener
ATAQUES DE PENETRACIÓN 501

tanto la información necesaria (cifras de control) como los programas de verifi­


cación fuera del alcance del atacante.
Un caso difícil de defender es cuando hay acceso físico a la máquina por
parte de personas diferentes a los responsables o usuarios, caso normal en el
caso de las PCs de los usuarios en la inmensa mayoría de las organizaciones. En
el fondo, este es un caso perdido y lo más que podemos hacer es reducir el
riesgo un poco. En muchos servidores hay una puerta que evita que el posible
atacante introduzca un CD para arrancar desde él. Es importante mantener esta
puerta con llave y poner contraseña de administración al BIOS de esa máquina.
Cuando el atacante puede físicamente estar en contacto con una máquina
que está en servicio, por ejemplo, durante una ausencia momentánea del usua­
rio o que está apagada sin contraseña de arranque, simplemente instala los
programas de la segunda fase directamente.
Cuando el acceso es a una máquina que está apagada y ésta tiene una
contraseña de arranque, el problema para el atacante es un poco más difícil. Las
contraseñas de arranque se pueden eliminar teniendo acceso al interior de la
máquina con el simple cambio de un puente (jumper) o retirando la batería que
mantiene en funcionamiento la configuración inicial. Desde luego que el usua­
rio cuando reinicie la máquina puede notar que ya no está la contraseña de
arranque y notificar a informática, que generalmente restaurará la contraseña sin
fijarse si hay o no cambios en los archivos de configuración o programas insta­
lados, ya que esa es una tarea normalmente difícil.
Cuando se tiene una máquina con contraseña en el protector de pantalla
es posible colocar un programa que simule la petición de contraseña de arran­
que en un diskette o CD y rearrancar la máquina para hacer que el usuario dé la
contraseña al programa equivocado. El programa después de guardar la contra­
seña en algún lugar, cargará el sector de arranque del disco duro en la posición
adecuada de la memoria y le dará el control para obtener el verdadero arranque
de la máquina. La inmensa mayoría de los usuarios no notan nada extraño o al
menos no le dan importancia y ni siquiera lo reportan.
Poco se puede hacer además de instalar contraseñas de arranque, protec­
tores de pantalla con contraseña y emitir buenas políticas de seguridad para los
usuarios.
502 CÓDIGO MALICIOSO

Ataques de denegación de servicios


Ganar el control de una máquina no es la única meta posible para un atacante,
hacer que una máquina no proporcione los servicios para los que está destinada
es otra manera de hacer daño.
Además de los obvios ataques de vandalismo es posible bloquear a una
máquina remotamente.
Para ello hay al menos dos caminos: saturar la máquina o red de comunica­
ciones y explotar vulnerabilidades de programas o protocolos de comuni­
cación.
Los ataques de saturación usualmente se lanzan en forma simultánea des­
de muchas máquina en la red, a las que los hackers apodan zombies, haciendo
peticiones que consumen ya sea un enorme ancho de banda o mucho tiempo
de la máquina atacada. Es el caso del Tribal NetWork Flood.
Los problemas de protocolo son más sutiles. Un ejemplo es el ataque SYN
en que un programa aprovecha el protocolo de inicio de comunicación so­
bre ip.
Cuando una máquina inicia la comunicación con otra usando el protocolo
IP, envía un paquete de información llamado SYN para sincronizar el envío y
recepción de datos. Este paquete contiene el primer número de paquete de da­
tos a enviar. La máquina que recibe el paquete debe contestar primero un pa­
quete ACK indicando que recibió el primer paquete y enviar a su vez un
paquete SYÑ, del que debe esperar un paquete ACK de regreso antes de iniciar
el envío/recepción de datos.
En el ataque simplemente un programa forma un paquete SYN con una
dirección de regreso válida, pero inexistente o fuera de servicio y lo envía a la
máquina víctima. La víctima envía un paquete ACK a la que cree que es la direc­
ción del remitente, que simplemente se descarta en algún ruteador al no existir
realmente esa dirección. La víctima envía su paquete SYN, que también se pier­
de, y se queda esperando un paquete ACK que nunca llega. Mientras espera,
otras comunicaciones hacen cola hasta que termina el tiempo máximo de espe­
ra (timeout) que usualmente es del orden de un minuto. Enviando muchos pa­
quetes SYN con la falsa dirección de retorno se puede bloquear fácilmente una
P ro g ram a s d e e s pio n a je 503

máquina. Nótese que el tiempo máximo de espera no se puede reducir dema­


siado, ya que entonces muchas comunicaciones legítimas que tardan simple­
mente por distancia o saturación de la red se perderían.
Corregir este tipo de ataques implica cam biar los protocolos de com unica­
ción y la manera como se atienden las peticiones en cola.
Otra forma de bloquear los servicios de una máquina es explotando erro­
res de los programas servidores, ya sea para que aborten o para que entren en
estados inoperables.
En este caso la defensa es mantener las versiones actualizadas del software
usado para proporcionar servicios de acuerdo a las circulares de SANS, Securi-
tyfocus y CERT.

Programas de espionaje
Tradicionalmente los ingenieros en comunicaciones han usado programas que
revisan todos los paquetes de datos que circulan en una cierta porción de una
red a fin de determinar si trabaja correctamente, diagnosticar fallas y medir su
rendimiento, son los analizadores de protocolos.
En una red ethernet ordinaria es muy fácil espiar el tráfico debido al propio
diseño de esta tecnología, cuando una máquina “habla”, las demás “escuchan” y
si el paquete de información no va dirigido a ellas simplemente lo ignoran. Un
programa de escucha simplemente registra la totalidad de los paquetes de datos
y los procesa de acuerdo con las necesidades del ingeniero en comunicaciones.
Recientemente se han usado programas de este tipo para detectar virus en co­
rreo electrónico y otros servicios de red.
Estos mismos programas pueden ser usados por un atacante para espiar lo
que pasa por la red, especialmente nombres de usuario y contraseñas.
La defensa contra este tipo de ataques es la criptografía, que cae fuera del
ámbito de este documento.
Se dice que cuando en una LAN se usan switches en vez hubs no es posible
que haya programas escuchando el tráfico de la red. Esto es falso, ya que hay al
menos tres técnicas que lo permiten. La más común es el llamado “envenena­
miento ARP” en que una máquina suplante a otra enviando datos erróneos a la
504 CÓDIGO MALICIOSO

red, en particular, los paquetes que contienen la identificación física de la má­


quina, la dirección MAC, y la dirección ip . Un programa común que hace esto es
el ettercap que se distribuye gratuitamente desde Internet.
Sobre servidores y estaciones de trabajo es posible colocar programas que
espíen diferentes funciones, típicamente el teclado y las comunicaciones. Los
programas que espían al teclado son llamados normalmente keyloggers y hay
incluso versiones comerciales de los mismos. También hay paquetes comercia­
les que envían lo obtenido por un keylogger a alguna dirección de correo elec­
trónico sin que el usuario se dé cuenta de lo que pasa.
Una versión más sofisticada de estos programas instala un programa servi­
dor en la máquina víctima que permite al atacante conocer en todo momento
qué está haciendo la máquina y aun hacer cosas como copiar, borrar y renom­
brar archivos. Uno de estos programas más o menos popular en el inframundo
cibernético es el “b ack orífice".
Un problema que está surgiendo es que versiones comerciales de este tipo
de programas se venden y empiezan a usarse con frecuencia para que el perso­
nal responsable de mantenimiento de software en pcs haga su trabajo. De esta
manera es difícil saber por qué hay instalado uno de estos programas en una PC
y qué uso se le da. Algunos de estos programas son detectados por los detecto­
res de virus.
En los servidores hay programas de administración que permiten vigilar de
cerca de los usuarios. En los equipos Unix es popular el ttysnoop, que se supo­
ne es una herramienta para el administrador. Aquí de nuevo no es posible saber
con qué fin se usan los programas.
En los últimos años han aparecido en Internet numerosos programas espía
que son usados muchas veces con fines comerciales (spyware). Normalmente
el programa se instala en forma automática como una barra de herramientas del
Internet Explorer de Microsoft, aunque hay muchos casos en los que vienen
como parte de un programa de regalo —un caballo de Troya— . La función or­
dinaria de uno de estos programas es proveer información mercadológica del
usuario, como los hábitos de navegación en Internet, la música que prefiere,
los paquetes o programas que tiene instalados, etc. También hay muchos de
B om bas d e t ie m p o 505

estos programas que envían información sensitiva, como contraseñas, números


de tarjeta de crédito, etc., que son usados para fraude o robo de identidad.
Por razones comerciales, se venden detectores de spyware aun cuando la
detección podría hacerse fácilmente en el detector de virus.

Caballos de Troya
Un caballo de Troya no es más que un programa dado a alguien como regalo,
que al menos en teoría provee algo interesante para el usuario, pero que tiene
ocultas otras funciones, desde el espionaje hasta la destrucción y cualquier otra
cosa que se le ocurra al programador. La variedad de cosas que puede hacer un
caballo de Troya está limitada sólo por la febril imaginación de los atacantes, y
no hay una técnica común para detectar cuando un programa es un caballo de
Troya.
Aquí cabría la prudencia del usuario de no ejecutar un programa que no
provenga de una fuente confiable, pero esto en la práctica no funciona. Algunos
programas antivirus detectan algunos de estos caballos de Troya, pero es muy
factible que el atacante haya hecho uno específicamente para la víctima y este
caso no será detectado por los programas antivirus.

Bombas de tiempo
Tal vez estos fueron de los primeros programas malignos existentes. Se trata de
un programa normal que hace su función correctamente y que en cierta fecha/
hora genera algún problema. Estos solían ponerlos en sistemas desarrollados
dentro de las organizaciones programadores disgustados por alguna razón.
Con frecuencia los virus computacionales contienen una bomba de
tiempo.
Las defensas corresponden a las aplicadas contra virus y en el caso de los
programas desarrollados internamente, la única solución es un excelente control
de calidad y auditoría. Un programa detector de cambios en los programas pue­
de también ser de utilidad.
506 CÓDIGO MALICIOSO

El problema de las combinaciones


El código maligno normalmente viene en grupo, habiendo componentes de
diferentes tipos, de aquí que no basta concentrarse en uno u otro tipo de pro­
grama, sino que hay que atacarlos a todos juntos.
Del lado de las defensas, algunas sirven para varios de los tipos de código
malicioso, como los detectores de alteraciones en archivos y los antivirus si se
alimentan con las cadenas de identificación de código malicioso adecuadas.

Referencias
1. “The Bulgarian and Soviet Virus factories”, Bontechvm Vesselin, 11-3-1992,
Proceedings of the Fifth Inernational Computer Virus and Security Conferen­
ce, http://www.essayworld.com/essays/computer/723.shtml
2. “Annual ICSA Labs Computer Virus Prevalence Survey”, Bridwell L. M,, 2004,
ICSA Labs, a division of Cybertrust, http://www.icsa.net;https://www.icsalabs.
com/icsa/docs/html/library/whitepapers/vps2003.pdf
3- “Computer Viruses”, Cohen F., 1985, Tesis, Universidad del Sur de California
(use).
4. “Computer Recreations” Dewdney, A. K., Scientific American, May 1984, 1-5-
1984.
5. “Can Computers and Epidemiology Get Along? Health Problems in Compu­
ters”, Mallen G. M., Daltabuit E., Vargas-Vorakova F., 10-10-1995, 10th Natio­
nal Computer Security Conference, National Bureau of Standards/National
Computer Security Center.

URL

http://www.eaida.org/outreach/papers/2002/eodered/
http://www.caida.org/outreach/papers/2003/sapphire/
http ://www. caida.org/outreach/papers/2004/wi tty/
http://www.caida.org/outreach/papers/2002/codered/
http ://www. cai da.org/outreach/papers/2003/sapphire/
http ://www. caida.org/outreach/papers/2004/witty/

También podría gustarte