Tema 5

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 22

05 Código maligno

...............................................................................................

En este tema aprenderemos cómo un código con malas intenciones pue-


de afectar nuestro ordenador.

Los objetivos de este tema son:

- Comprender algunas vulnerabilidades de un ordenador.


- Familiarizarnos con la administración automática de archivos.
- Saber qué tipo de código automático puede afectar a nuestro sistema.
- Conocer los diferentes tipos de virus.

77
78
5.1.
Programas
.....................................................................................................

En este apartado veremos qué controla un ordenador, diferentes ataques


contra un sistema y los riesgos del adware y spyware.

Virus, Spyware, Spam, Hackers… todos ellos tienen como objetivo común
hacerse con el control de una parte de un sistema, o de un sistema entero.

Es por eso que todos ellos atacan las partes del sistema que controlan lo
controlan, ya sea de forma inofensiva o dañándolo por completo.

Las partes más afectadas de estos ataques son las siguientes:


- Sistema Operativo: Es el componente software responsable de la
administración y coordinación de las actividades.

Éste actúa como anfitrión para las aplicaciones que tienen que ejecutarse
en una máquina y administra entre ellas los recursos hardware disponibles.

- Aplicaciones: Son un tipo de programas informáticos diseñados para


facilitar al usuario la realización de un determinado tipo de trabajo.

Esto lo diferencia principalmente de otros tipos de programas como los


sistemas operativos, las utilidades y los lenguajes de programación, que
realizan tareas más avanzadas y no pertinentes al usuario común.

- Shell: Es una pieza de software que provee de una interfaz a los usuarios.

Normalmente, el término se refiere al shell del sistema operativo que


garantiza el acceso a los servicios del kernel.

79
Las interfaces del shell se pueden clasificar en dos categorías: línea de
comandos y gráfica.
El propósito principal del shell es lanzar una aplicación, aunque
frecuentemente también tienen otras capacidades como ver el contenido de
los directorios.

- Macro: Es una serie de instrucciones que se almacenan para que se


puedan ejecutar de forma secuencial mediante una sola llamada u orden de
ejecución.

Las macros suelen almacenarse en el ámbito del propio programa que las
utiliza y se ejecutan pulsando una combinación especial de teclas o un
botón especialmente creado y asignado para tal efecto.

La validación de datos es un proceso que asegura que un programa opera


con datos correctos.

Utiliza rutinas llamadas “normas de validación” o “rutinas de chequeo” que


comprueban que los datos sean correctos y se encargan de la seguridad de
los datos entrantes.

Estas normas pueden ser implementadas a través de procesos


automatizados de diccionario, o por la inclusión de un programa concreto
de validación lógica.

La validación más simple de datos verifica que los caracteres provengan de


un set válido, como por ejemplo los números de teléfono, que solamente
tendrían que incluir números.

Una rutina más sofisticada de validación de datos podría comprobar si el


usuario ha introducido un código de país válido, o que el número de dígitos
introducidos concuerdan con el país especificado.

Una validación de datos incorrecta puede llevar a una corrupción de datos o


una vulnerabilidad de la seguridad.

En seguridad informática, un desbordamiento es un error de software que

80
se produce cuando se copia una cantidad de datos sobre un área que no
es lo suficientemente grande para contenerlos, sobrescribiendo de esta
manera otras zonas de memoria.

Esto se debe en general a un fallo de programación.


Si se produce la escritura fuera de la zona de memoria protegida por el
sistema operativo, se producirá una excepción del sistema de acceso a
memoria seguido de la terminación del programa.

Bajo ciertas condiciones, un usuario obrando con malas intenciones puede


aprovecharse de este mal funcionamiento o una vulnerabilidad para tener
control sobre el sistema.

Si el programa que tiene el error en cuestión tiene privilegios especiales, se


convierte además en un fallo de seguridad.
Si el código copiado está especialmente preparado para obtener los
privilegios del programa atacado se llama shellcode.

Hay varios tipos de desbordamiento, como el “stack smashing”, el “heap


overflow”, el “format string overflow” o el “integer overflow”.

El pisado de pila o stack smashing es un tipo de desbordamiento de buffer


que es aprovechado por algunos virus y otros programas maliciosos para
tomar control sobre una aplicación, o provocar su terminación.

Fallo de programa-
ción.

Esto sucede cuando, por algún error imprevisto, se ingresa a la pila de la


aplicación más datos que los que ésta puede contener, lo que provoca que
se desborde y se sobrescriban algunos datos.

81
Un heap overflow (desbordamiento de montículo) es un tipo de buffer
overflow que se produce en un área de memoria denominada heap.

La memoria heap se reserva dinámicamente y puede ser sobrescrita de


forma similar a la que se produce en situaciones en las que el programador
no verifica correctamente el tamaño de los datos que copia.

Un format string overflow ocurre cuando una cadena de texto de un


programa necesita unos formatos determinados y recibe unos de
diferentes.

En el caso de que la cadena de texto acepte varios tipos de formato, puede


malinterpretar el argumento que recibe, y por lo tanto quedarse corta con la
salida de programa o desbordarla.

Un integer overflow (desbordamiento de enteros) ocurre cuando una


operación aritmética intenta crear un valor numérico más largo de lo que
puede ser representado en el espacio de almacenamiento.

Esto puede provocar que tan solo se guarden los últimos bits del resultado,
o que sature el valor del resultado y devuelva el máximo valor
representable.

XSS (del inglés Cross-site scripting) es un tipo de vulnerabilidad que se


encuentra en algunas aplicaciones web que permiten que usuarios
maliciosos inyecten código en las páginas web que ven otros usuarios.

82
Esta vulnerabilidad puede ser usada por atacantes que quieran saltarse,
por ejemplo, los controles de acceso.

Encontrando diferentes formas de inyectar código malicioso en las páginas


web, un atacante puede obtener acceso elevado a privilegios, cookies de
sesión y toda una variedad de objetos.

Los datos se recuperan


en un disco de reemplazo.

Existen tres tipos diferentes de vulnerabilidades XSS:

- DOM (tipo 0): Esta vulnerabilidad está basada en el modelo de objeto


estándar para representar HTML o XML, llamado “Document Object Model”
o DOM.

Con estas vulnerabilidades, el problema reside en el script de la página


misma del cliente.

Por ejemplo, si un JavaScript accede a un parámetro de una llamada URL


y utiliza esta información para escribir un poco de código HTML en la propia
página.

Si esta información no está cifrada, puede darse una vulnerabilidad XSS,


ya que los datos escritos serán reinterpretados por los navegadores como
HTML, y podría incluir códigos adicionales.

Aunque este tipo de vulnerabilidad es similar a la del tipo “no-persistente”,


la diferencia principal radica en que la tipo DOM ocurre de forma local, o
sea, del lado del cliente.

83
- No-persistente (tipo 1): Este tipo de vulnerabilidad aparece cuando los
datos proporcionados por un cliente web son usados de forma inmediata
por códigos ajenos desde el servidor que generan otra página para ese
usuario.

Si la nueva página incluye datos sin validar y no están codificados, se


podrá inyectar código malicioso.

- Persistente (tipo 2): Este tipo permite los ataques más poderosos.

Aparece cuando los datos proporcionados por una aplicación web de parte
de un usuario son primero almacenados en el servidor y luego mostrados a
los demás usuarios a través de una página web sin codificar.

Un típico ejemplo es con los foros online, dónde los usuarios pueden
escribir mensajes con formato HTML para que otros usuarios los lean.

Un ataque de denegación de servicio (DoS, Denial of Service) es un ataque


a un sistema de ordenadores o red que causa que un servicio o recurso
sea inaccesible a los usuarios legítimos.

Normalmente provoca la pérdida de la conectividad de la red por el


consumo de ancho de banda de la red de la víctima o sobrecarga de los
recursos del sistema de la víctima.

Se genera mediante la saturación de los puertos con flujo de información,


haciendo que el servidor se sobrecargue y no pueda seguir prestando
servicios, por eso se le dice “denegación”, pues hace que el servidor no de
abasto a la cantidad de usuarios.

El llamado denegación de servicios distribuida (DDoS, Distributed Denial of


Service) es una ampliación del ataque DoS, y se efectúa con la instalación
de varios agentes remotos en muchos ordenadores que pueden estar
localizados en diferentes puntos.

El invasor consigue coordinar esos agentes para así, de forma masiva,


amplificar el volumen de saturación de información, pudiendo darse casos
de un ataque de cientos o miles de ordenadores dirigidos a una máquina o
red objetivo.

84
Esta técnica se ha revelado como una de las más eficaces y sencillas a la
hora de colapsar servidores.

Así, la diferencia entre un ataque DoS de uno DDoS es que el primero


ataca al objetivo desde una sola máquina, mientras que el segundo ataca
al objetivo con toda una red distribuida.

Un ordenador tiene muchas vías de acceso por las cuales puede resultar
infectado por un virus, o atacado por un hacker.

Es por eso que todas estas vías, o como mínimo las más comunes, tienen
que estar controladas y estar alerta para cualquier anomalía.

Los creadores de virus utilizan muchos métodos para mover virus entre
ordenadores, pero pueden categorizarse en dos tipos.

- Medios de difusión externos: Cualquier dispositivo de almacenamiento


que pueda contener un archivo de ordenador, y pueda conectarse o
insertarse en un ordenador.
Algunos ejemplos de medios de difusión externos pueden ser disquetes,
DVDs o CDs, o discos duros extraíbles USB.

- Conexión a la red: Una red es un grupo de ordenadores conectados entre


sí para poder intercambiar datos.

Internet, que es la fuente de virus más común hoy en día, es una gran red.

Los virus pueden usar la conexión para moverse por un chat, por e-mail,
por la Web y especialmente en conexiones de ordenador a ordenador.

85
Muchas veces podemos evitar que nos infecten el ordenador simplemente
con vigilar un poco nuestras acciones a la hora de conectarnos a Internet.

Algunos consejos para evitar ser infectados son:

- Configurar la seguridad de nuestro navegador como mínimo a “Media”, de


esta forma evitaremos las trampas más comunes.

- Instalar un buen firewall.

- Actualizar el sistema operativo, fundamental para aumentar al máximo la


seguridad ante eventuales ataques víricos.

- Tener cuidado con los archivos que llegan por email y analizarlos con el
antivirus antes de abrirlos.

- Tener cuidado con las salas de chat, ya que es muy común enviar
archivos de todo tipo a través del sistema DCC, y no todos son fiables.

- Evitar descargar programas desde sitios de Internet desconocidos o que


despierten sospechas.

Evitar descargar pro-


gramas desde sitios
de Internet descono-
cidos o que despier-
ten sospechas.

Un programa adware es cualquier programa que automáticamente se


ejecuta, muestra o descarga publicidad al ordenador después de ser
instalado el programa, o mientras se está ejecutando.

La publicidad está integrada en el software, que normalmente está


diseñado para apuntar los sitios que el usuario visita en Internet, y mostrar
publicidad acorde con estos sitios.

86
Normalmente el adware es considerado por los desarrolladores como una
forma de recuperar costes, y algunas veces esto permite que el software
sea gratis o a un precio reducido.

Mientras que este sistema de publicidad puede permitir o motivar al


desarrollador para continuar con otro software, para el usuario final puede
no ser tan buena idea.

La publicidad puede ser vista por el usuario como interrupciones, molestias


o distracciones de la tarea principal, sin contar que muchas veces se envía
la información personal recopilada a terceras entidades.

Un programa spyware es una aplicación que recopila información sobre


una persona u organización sin su conocimiento.

La función más común que tienen estos programas es la de recopilar


información sobre el usuario y distribuirlo a empresas publicitarias u otras
organizaciones interesadas.

También se han empleado en círculos legales para recopilar información


contra sospechosos de delitos.

Dado que el spyware usa normalmente la conexión de un ordenador para


transmitir información, puede verse afectada la velocidad de transferencia
de datos entre dicho ordenador y otros conectados a Internet.

Pueden tener acceso a por ejemplo al correo electrónico y el password,


dirección IP, teléfono, país…

Los programas espía pueden ser instalados en un ordenador mediante un


virus, un troyano que se distribuye por correo electrónico, o bien puede
estar oculto en la instalación de un programa aparentemente inocuo.

Por otra parte, será importante controlar la temperatura del espacio en el


que se encuentre el sistema. Aseguraremos un buen ventilado, ya que una
acumulación excesiva de calor podría dañarlo.
En caso de no poder tener el sistema en un sitio ventilado, será necesario
refrigerarlo añadiéndole ventiladores internos o mejorar el sistema interno
de refrigeración.

87
5.2.
Administración automática
de tipo de archivo
...................................................................................................

En este apartado veremos cómo un sistema y un cliente de correo saben lo


que tienen que hacer al ejecutar un archivo.

Cuando ejecutamos cualquier archivo, la mayoría de veces el ordenador ya


sabe con qué programa tiene que abrirlo.

Esto es debido a la asociación que tiene cada sistema entre su extensión y


el programa que debe abrirlo.

Las extensiones se añaden automáticamente en el nombre de un archivo


cuando se guarda un documento.

De todas formas, esto no siempre se cumple, ya que muchas veces el he-


cho de tener una extensión no quiere decir que únicamente se pueda abrir
con un programa.

Hay tantas extensiones de tan solo tres letras que muchas veces una ex-
tensión puede estar relacionada con más de un programa.

En el caso de que el archivo a abrir llegue a través de Internet (páginas


web, e-mails, etc.), es el conjunto de especificaciones MIME quien se en-
carga de relacionar el tipo de archivo con el programa a usar para abrirlo.

Esta serie de convenciones están dirigidas a que se puedan intercambiar a


través de Internet todo tipo de archivos (texto, audio, vídeo, etc.) de forma

88
transparente para el usuario.

Una parte importante del MIME está dedicada a mejorar las posibilidades
de transferencia de texto en distintos idiomas y alfabetos.

Por ejemplo, prácticamente todos los mensajes de correo electrónico es-


critos por personas en Internet son transmitidos en formato MIME a tra-
vés de SMTP.

Los tipos de contenido definidos por el estándar MIME tienen gran impor-
tancia también fuera del contexto de los mensajes electrónicos.

Algunos protocolos de red tales como HTTP también requieren que los
datos sean transmitidos en un contexto de mensajes tipo e-mail aunque
los datos pueden no ser un e-mail propiamente dicho.

En la actualidad ningún programa de correo electrónico o navegador de


Internet puede considerarse completo si no acepta MIME en sus diferen-
tes facetas (texto y formatos de archivo).

Cuando escribimos un mensaje desde un programa de correo compatible


con MIME, el programa hace lo siguiente:

- Si el mensaje es un texto ASCII plano, lo deja en el mismo formato y le


dice al correo destino que solamente tiene que esperar texto plano.

- Si el mensaje contiene uno o más adjuntos y un cuerpo de mensaje con


formato HTML, cada una de las partes es tratada por separado.

Primero se determina el formato de los datos.


Este paso es necesario para decir al programa de correo destino qué ha-
cer con los datos, y para asegurar un cifrado correcto para que no se
pierda nada durante la transferencia.

Luego se cifran los datos en caso de que estén en un formato diferente


del texto plano ASCII.

Finalmente los datos cifrados se insertan en el mensaje, y se informa al


cliente final de qué tipo de datos tiene que esperar, si existen adjuntos,

89
qué tipo de cifrado utilizan, qué formato tenían los archivos originales, etc.

Primero, el cliente de email lee la información que fue añadida por el cliente
de correo del emisor: si el mensaje lleva adjuntos, cómo descifrarlos co-
rrectamente, qué hacer con los archivos resultantes, etc.

Después, cada una de las partes del mensaje es extraído y descifrado si es


necesario.

Finalmente, el cliente de correo nos muestra el resultado de todo este pro-


ceso.
Dependiendo de si el correo es texto plano o tiene algún adjunto, nuestro
cliente de correo realizará unas acciones u otras, según estén configurados
los adjuntos y los programas asociados a los archivos.

90
5.3.
Código descargable

...................................................................................................

En este apartado veremos cómo muchas herramientas automáticas son


usadas de forma maliciosa y cómo funcionan.

Muchas veces, los procesos que nos ayudan a automatizar nuestras tareas
en un sistema se pueden volver en nuestra contra si alguien los utiliza de
forma maliciosa, como por ejemplo las especificaciones MIME.

El primer virus de script que se activaba con tan solo abrir un correo elec-
trónico fue un virus MIME que funcionaba a través de versiones antiguas
de Netscape Mail, Microsoft Outlook y Eudora Mail.

La técnica que seguían estas personas era una variación de un antiguo


método hacker.

El MIME adjuntado tenía un nombre muy largo que activaba un bug que
permitía que el final del nombre se ejecutara como una serie de instruccio-
nes, las cuales podían ejecutar un virus.

De todos modos, se desarrolló rápidamente un parche para cada uno de


los programas vulnerables a este ataque, de forma que a día de hoy los vi-
rus MIME son mucho más inofensivos.

91
Una macro, como ya sabemos, es una instrucción que ejecuta comandos
de programa automáticamente.

Muchas aplicaciones comunes utilizan macros, por lo que también son bas-
tante utilizadas para ejecutar virus.

Los virus de macro son macros que se auto-replican.

Si un usuario accede a un documento que contiene una macro infectada y


la ejecuta, ésta puede duplicarse en las aplicaciones de inicio del sistema y
así infectar directamente la máquina.

Cualquier documento en ese sistema que use la misma aplicación puede


infectarse.

Si el sistema infectado está en una red, es posible que la infección se ex-


panda rápidamente a otros sistemas a través de la red.

Un applet es un programa dinámico e interactivo que puede ser incrustado


y ejecutado dentro de otro programa.

Con todas estas características, los creadores de virus pensaron también


en Java como medio para expandirlos.

El método a seguir es crear una estructura viral e incrustarla dentro de un


applet de Java, de forma que al acceder a ella el virus se ejecuta automáti-
camente.

De todas formas, debido a ciertas restricciones definidas en las propieda-


des de seguridad, tanto de los sistemas operativos como de los navegado-
res, no existen demasiados virus de Java notables.

92
5.4.
Software viral

...................................................................................................

En este apartado veremos diferentes tipos de software viral, los principios


de un antivirus y cómo instalar y configurar un antivirus.

Un virus es un programa que se introduce en un sistema por distintas vías.


Este tipo de programas son especiales ya que pueden producir efectos no
deseados y nocivos.

Una vez el virus se ha introducido en el ordenador, se coloca en lugares


donde el usuario pueda ejecutarlo de manera no intencionada.

Hasta que no se ejecuta el programa infectado o se cumple una determina-


da condición, el virus no actúa.

Existen muchos tipos de virus, pero los más comunes son:

- Troyanos: Se denomina troyano a un programa malicioso capaz de alojar-


se en ordenadores y permitir el acceso a usuarios externos, a través de
una red local o de Internet, con el fin de recoger información o controlar re-
motamente a la máquina anfitriona.

- Residentes: Un virus residente entra en la RAM donde se cargan los ar-


chivos y programas cuando un ordenador los hace funcionar.

Desde ahí accede a todas las operaciones realizadas por el ordenador y


puede corromper archivos y programas con gran facilidad.

93
Aunque al estar en la RAM, cada vez que se apague el ordenador se borra,
el virus ya se asegura de activarse en la memoria cuando se vuelva a en-
cender.

- De boot: Un virus de boot afecta al sector de arranque de un disco, se


cambia por él cuando arranca el ordenador, y se propaga a otros discos
cuando está activo.

- Gusano: Un gusano tiene la propiedad de duplicarse a sí mismo.


Los gusanos utilizan las partes automáticas de un sistema operativo que
generalmente son invisibles al usuario.

A diferencia de los demás virus, un gusano no altera los archivos de pro-


gramas, sino que reside en la memoria y se duplica a sí mismo.

Es usual detectar la presencia de gusanos cuando los recursos del sistema


se consumen hasta el punto de que las tareas ordinarias del mismo son ex-
cesivamente lentas o simplemente no pueden ejecutarse.

Para combatir a los virus existen los programas antivirus.

Un programa antivirus vigila lo que entra en su ordenador y comprueba que


no sean virus conocidos.

Cada tipo de malware es controlado por un plugin que detecta y desinfecta


un tipo de amenaza determinada.

Los plugins, que tienen la capacidad de poder comunicarse entre ellos, fun-
cionan de forma secuencial para detectar malware y spyware.

94
Normalmente el motor de un antivirus se divide en dos componentes prin-
cipales:

- Motores de detección: Están compuestos de módulos que están conti-


nuamente mejorándose para ofrecer protección contra virus ejecutables,
virus de script, de macro, puertas traseras, troyanos, etc.

Estos motores se componen de diferentes tecnologías:

1. Análisis clásico: Al añadir firmas genéricas de virus pueden detectarse


muchos virus o amenazas spyware similares en su comportamiento.
2. Análisis heurístico: Esta tecnología detecta malware de forma proacti-
va, de forma que reduce los falsos positivos e incrementa el porcentaje
de detección de malware nuevo.
3. Código de detección exploit: Añade rutinas especiales de detección pa-
ra erradicar código exploit (agujero del sistema).

Gracias a estas rutinas, es posible detectar gusanos antes de que se


aprovechen de un nuevo exploit.

- Lógica de ficheros empaquetados: Esta lógica está basada en el con-


cepto de “Análisis en profundidad”, que significa que puede configurarse
para analizar ficheros que contienen un archivo comprimido.

Un antivirus es efectivo siempre y cuando esté actualizado.


La mayoría de los antivirus actuales se actualizan automáticamente por
Internet, de forma que cada día se añaden a las firmas de virus unas
cuantas decenas de virus nuevos.

De esta forma es menos probable que un virus nuevo pueda llegar a


afectar a nuestro sistema.

Sin embargo, hay que tener en cuenta que no todos los antivirus se ac-
tualizan diariamente, lo que puede provocar una situación de falsa seguri-
dad.

Esto es debido a que aunque estaremos protegidos ante la mayoría de vi-


rus, dependiendo del tiempo desde la última actualización estaremos ex-
puesto ante el ataque de miles de virus nuevos.

95
Es difícil que nos lleguen la mayoría de ellos, aunque tan solo hace falta
uno que sea lo suficientemente potente para infectar nuestro sistema, aún
cuando tenemos un antivirus instalado.

Es por ello que siempre es recomendable tener un antivirus que se actua-


lice de forma diaria a través de Internet.

Un ejemplo de antivirus es el programa ESET NOD32 Antivirus.


Vamos a ver como instalar el programa y configurarlo adecuadamente.

Una vez hayamos adquirido la licencia, descargamos el instalador desde


la página web de ESET.
Una vez ejecutado, el instalador nos preguntará qué instalación preferi-
mos, si la típica o la personalizada.

Escogemos la típica, ya que ésta ya garantiza el máximo nivel de protec-


ción.
El primer paso a seguir es introducir el nombre de usuario y la contraseña
de la licencia. Esto nos asegura las actualizaciones automáticas del pro-
grama y que el sistema esté protegido de forma constante.

El próximo paso de la instalación consiste en configurar el sistema de


alerta temprana ThreatSense.net, que asegura que ESET sea informado
de forma continua sobre las nuevas infiltraciones detectadas.

Con marcar la casilla correspondiente habilitamos esta función.

El paso siguiente consiste en configurar la protección contra aplicaciones


potencialmente indeseables.

96
Éstas no tienen que haber sido creadas necesariamente con intenciones
maliciosas, pero pueden afectar el funcionamiento del sistema de diferen-
tes formas.

Al marcar la opción de “Permitir la detección” podremos detectar este tipo


de amenaza.

Ahora ya tan solo nos queda confirmar la instalación haciendo clic en el bo-
tón “Instalar”.

Mantener la base de firmas de virus y de los componentes del programa


actualizados es muy importante para garantizar una protección completa
contra los códigos maliciosos.

Para configurar las actualizaciones, debemos seleccionar la opción


“Actualización” dentro del menú principal para que la ventana de actualiza-
ciones se muestre en la ventana de la derecha.

Pulsamos “Actualización manual de la base de firmas” para buscar si hay


una nueva actualización de la base disponible.

En el botón “Configuración” nos permite configurar las opciones avanzadas


de actualización, incluyendo la forma en que descargarán las actualizacio-
nes, el acceso al servidor Proxy, el acceso a las actualizaciones dentro de
un servidor local, etc.

97
98

También podría gustarte