Seguridad [Virus]
M. en C. Sergio Luis P ´erez P ´erez
UAM CUAJIMALPA, M ´EXICO, D. F.
Posibles ataques a un sistema
Posibles ataques a un sistema I
Unataquea un sistema consiste en encontrar las
vulnerabilidades del sistema para causar alg ´un da ˜no al sistema u obtener alg ´un tipo de informaci ´on.
Un ataque puede ser realizado por una entidad que se encuentra dentro del mismo sistema o bien por alguien externo.
Unataque desde adentrogeneralmente es realizado por un
cracker que ha iniciado sesi ´on en el sistema.
Este puede consistir en atacar otras cuentas y generar c ´odigo malicioso.
Posibles ataques a un sistema
Posibles ataques a un sistema II
Unataque desde afueraocurre m ´as com ´unmente si el equipo se
encuentra conectado a la red.
El objetivo es transmitir cierto c ´odigo y hacer que se ejecute en el equipo atacado.
Posibles ataques a un sistema
Posibles ataques a un sistema III
Ejemplos de ataques desde adentro del sistema Caballos de Troya.
Falsificaci ´on de inicio de sesi ´on. Bombas de l ´ogica.
Trampas.
Desbordamiento del b ´ufer. Ataques contra la seguridad.
Posibles ataques a un sistema
Posibles ataques a un sistema IV
Ejemplos de ataques desde adentro del sistema Virus acompa ˜nantes.
Virus de programa ejecutable. Virus residentes en la memoria. Virus de sector de arranque. Virus de macros.
Ataques desde adentro del sistema Caballos de troya
Caballos de troya I
Uncaballo de Troyaotroyanoes un c ´odigo fuente aparentemente
inofensivo pero que al ejecutarlo puede realizar una funci ´on inesperada o indeseable.
Las funciones indeseables podr´ıan consistir en modificar, borrar o cifrar los archivos del usuario.
El cracker podr´ıa copiar los archivos en alguna ubicaci ´on segura antes de recuperarlos v´ıa correo electr ´onico o FTP.
Para lograr que se ejecute un caballo de Troya generalmente se crean programas que se hacen pasar por software gratuito.
Cuando el usuario que lo descargo lo instala y lo ejecuta, el programa podr ´a realizar todas las acciones que el usuario puede.
Ataques desde adentro del sistema Caballos de troya
Caballos de troya II
¿Como funciona este tipo de ataque? I
1 Una forma de enga ˜nar a la v´ıctima para que ejecute el programa es ubicarlo en alg ´un directorio de los establecidos por la variable de entorno $PATH.
echo $PATH
/usr/lib64/qt-3.3/bin:/usr/kerberos/bin:/usr/local/bin:/bin: /usr/bin:/home/profesores/sergio/bin
2 Cuando el usuario ejecuta alg ´un programa, el sistema primero averigua si se encuentra en /usr/lib64/qt-3.3/bin, si no, luego busca en /usr/kerberos/bin, etc ´etera.
3 Este ataque s ´olo ser ´a exitoso si la ruta del troyano es la primera ocurrencia de tal programa.
Ataques desde adentro del sistema Caballos de troya
Caballos de troya III
¿Como funciona este tipo de ataque? II
1 Otra opci ´on es instalar un programa cuyo nombre sea parecido, por ejemplo LS (as´ı con may ´usculas).
2 El programa mostrar ´a un mensaje de que LS no existe pero no sin antes haber realizado su trabajo.
3 El uso de programas basados en errores comunes de tecleo es la mejor forma de crear caballos de Troya.
4 Otra opci ´on es poner el programa con el mismo nombre en alg ´un directorio del usuario al que se atac ´o.
5 Luego podr´ıa realizar alguna actividad para llamar la atenci ´on del superusuario.
Ataques desde adentro del sistema Falsificaci ´on de inicio de sesi ´on
Falsificaci ´on de inicio de sesi ´on
En este ataque, un usuario crea un programa que clona la vista del inicio de sesi ´on de una estaci ´on de trabajo.
El atacante deja el programa activo y cuando alg ´un usuario llega a dicha estaci ´on trata de iniciar sesi ´on de manera normal.
El programa inhabilita el eco para la parte donde el usuario introduce su contrase ˜na.
Una vez que el usuario solicita acceso el programa guarda el usuario y la contrase ˜na en alg ´un archivo y cierra su shell.
Esta es una manera de obtener m ´ultiples parejas de usuario-contrase ˜na.
Ataques desde adentro del sistema Bombas de l ´ogica
Bombas de l ´ogica
Unabomba de l ´ogicaes un programa creado tambi ´en por un
empleado de una empresa.
Es un programa que peri ´odicamente solicita una contrase ˜na y se activa en el momento que ´esta no es proporcionada.
La crean los empleados que por alguna raz ´on creen que pronto podr´ıan ser despedidos.
Tambi ´en pueden ser quienes entraron a la empresa con la finalidad de realizar alg ´un tipo de espionaje.
En el primer caso el objetivo es ser recontratado y en el segundo hacer mal uso de la informaci ´on de la empresa.
Ataques desde adentro del sistema Trampas
Trampas
Se produce cuando un programador inserta c ´odigo en un programa que representa una vulnerabilidad en su seguridad.
Cuando el programa es un software o sistema de cierto
fabricante, entonces el programador podr ´a obtener informaci ´on de cualquiera que use dicho producto.
¿C ´omo se efect ´ua este ataque?
¿C ´omo realizarlo si los usuarios se almacenar ´an en una base de datos?
Ataques desde adentro del sistema Desbordamiento del b ´ufer
Desbordamiento del b ´ufer
Este tipo de ataques son m ´as sencillos de realizar desde C/C++
debido a que no verifican cosas como:
int indice = 200; char nombre[128] nombre[indice] = 0;
Lo cual accede a una localidad de memoria posicionada 72 bytes fuera del arreglo nombre.
Este ataque se vuelve efectivo si se logra que el apuntador de un programa apunte a una localidad de memoria que hemos
sobre-escrito en alguna parte.
Por ejemplo si sobre-escribimos la direcci ´on de retorno de un programa en ejecuci ´on.
Ataques desde adentro del sistema Ataques contra la seguridad
Ataques contra la seguridad
Para probar la seguridad de un sistema generalmente se contrata gente que trate de introducirse a dicho sistema.
Algunos ataques comunes pueden ser:
Solicitar p ´aginas de memoria, espacio de disco o cintas y leerlas. Probar llamadas al sistema.
Intentar inicios de sesi ´on pero matarlos antes de que terminen las verificaciones.
Buscar manuales que digan que es lo que no se debe de hacer. Convencer a los programadores del sistema de hacer cosas indebidas.
Convencer al personal “vulnerable” que use el sistema de proporcionar sus credenciales.
Ataques desde afuera del sistema
Ataques desde afuera del sistema I
Este ataque consiste en transmitir cierto c ´odigo por la red hacia una computadora objetivo, con la finalidad de que el c ´odigo se ejecute y cause da ˜nos.
Lo m ´as com ´un es realizar estos ataques mediante virus, gusanos, c ´odigo m ´ovil y applets.
Unviruses un programa que puede reproducirse anexando su
c ´odigo a otro programa.
El modo en general de operar de los virus es el siguiente: 1 Se crea el virus.
2 Se crea una aplicaci ´on que pueda resultar interesante para los
Ataques desde afuera del sistema
Ataques desde afuera del sistema II
3 Se esconde el virus en el programa. 4 Se publica el programa en la red.
5 Los usuarios descargan e instalan el programa.
6 El virus se propaga cada que los usuarios ejecutan la aplicaci ´on. 7 El virus comienza la infecci ´on de los archivos de usuario
paulatinamente.
8 Despu ´es de un cierto tiempo y varios archivos infectados, el virus
Ataques desde afuera del sistema Virus acompa ˜nantes
Virus acompa ˜nantes I
Este tipo de virus s ´olo se ejecuta y no se propaga.
Este virus se implanta como parte de un programa utilizado com ´unmente por los usuarios.
No se modifica el archivo original sino que es replicado.
Cada que se ejecuta el programa, adem ´as de hacer lo que debe, el virus es ejecutado. Ejemplo:
1 Se crea un virus llamado Notepad.exe.
2 Cuando se implanta, el nombre del original Notepad.exe es
cambiado a Notepad2.exe.
3 Cuando se ejecuta se solicita el programa Notepad se ejecuta
Ataques desde afuera del sistema Virus de programa ejecutable
Virus de programa ejecutable I
Este tipo de virus puede infectar varios programas ejecutables.
En este clasificaci ´on se encuentran los siguientes: 1 Virus de sobrescritura.
2 Virus par ´asitos. 3 Virus de cavidades.
Ataques desde afuera del sistema Virus de programa ejecutable
Virus de programa ejecutable II
Virus de sobrescritura
Este tipo de virus simplemente substituye su c ´odigo con el de alg ´un ejecutable.
Cada que se ejecuta sobrescribe parte de los archivos del usuario.
Son los m ´as f ´aciles de detectar.
Consisten de programas cortos que recorren todos los directorios e infectan algunos archivos.
Para ocultar la infecci ´on se pueden especificar que no se cambie la fecha de ´ultima modificaci ´on ni el tama ˜no del archivo.
Ataques desde afuera del sistema Virus de programa ejecutable
Virus de programa ejecutable III
Virus de cavidades
Este tipo de virus se almacena en los espacios no utilizados de los sectores de un programa.
En windows todos los sectores son m ´ultiplos de 512 bytes. Si el virus es muy peque ˜no podr ´a a ˜nadirse sin problema al programa sin modificar su espacio en disco.
Ataques desde afuera del sistema Virus de programa ejecutable
Virus de programa ejecutable IV
Virus par ´asitos
Este tipo de virus se anexa a los programas y les permite funcionar de manera normal.
Se pueden anexar al principio, al final o en la parte intermedia de un programa.
Su forma de operar es como sigue:
El virus copia el programa original en la RAM.
Entonces, dependiendo de la posici ´on donde se desee anexar el virus, se escribe la copia del virus seguida del programa original, o bien la del programa original seguida del virus.
Se reasignan las nuevas direcciones virtuales para que se ejecuten los programas.
Ataques desde afuera del sistema Virus residentes en la memoria
Virus residentes en la memoria
Es un virus que permanece en memoria todo el tiempo.
Este tipo de virus se activa cada vez que se ejecuta un programa. Despu ´es de realizar la infecci ´on, este virus continua a la espera de la ejecuci ´on de otro programa.
Cada vez que la memoria pierde su contenido, al apagarse o reiniciarse, suelen realizar cambios en el sistema para volver a cargarse una vez que arranque nuevamente el sistema.
La ventaja de este tipo de virus es que no requiere realizar actividades masivas sobre el disco.
Ataques desde afuera del sistema Virus de sector de arranque
Virus de sector de arranque I
Es un virus que se encarga de sobrescribir el registro de arranque maestro (MBR: Master Boot Record) o sector de arranque.
Su forma de operar es como sigue:
El virus almacena el sector de arranque original en otra parte del disco.
Se almacena en la parte correspondiente al sector de arranque. El virus act ´ua antes de que se inicie el sistema operativo.
El virus se suele cargar en memoria y apoderarse de las llamadas al sistema mediante la sobrescritura de los vectores de
Ataques desde afuera del sistema Virus de sector de arranque
Virus de sector de arranque II
Este tipo de virus son los que dan origen a los residentes en memoria.
Tambi ´en puede almacenarse simulando ser un sector defectuosos impidiendo que lo borren.
Una forma de detectarlos es la siguiente:
Cuando la computadora no puede lanzar el sistema operativo. Cuando la computadora recibe errores de disco.
Cuando se experimentan problemas con la memoria o con la congelaci ´on de programas.
Ataques desde afuera del sistema Virus de c ´odigo fuente
Virus de c ´odigo fuente I
Este tipo de virus busca c ´odigos fuente y los modifica.
Son el tipo de virus m ´as portable.
Requieren de cierta habilidad para analizar la sintaxis del c ´odigo.
Su forma de operar es como sigue:
Se implantan las librer´ıas que contienen al virus.
Se buscan los archivos del lenguaje de programaci ´on en el que se encuentra escrito el virus.
Se modifican las cabeceras para hacer una llamada a los archivos donde se encuentran las funciones del virus.
Ataques desde afuera del sistema Virus de c ´odigo fuente
Virus de c ´odigo fuente II
Se buscan ciertos lugares espec´ıficos del c ´odigo para colocar las llamadas a las funciones del virus.
Si el programa es recompilado, cuando se ejecute, ´este ejecutar ´a el virus.
Los lugares apropiados para ubicarse son:
Justo antes de que el programa inicie su ejecuci ´on normal.
En las funciones que se encuentran dentro del programa, ya sea al principio o al final de ellas.
T ´ecnicas de antivirus
T ´ecnicas de antivirus I
Las t ´ecnicas de antivirus permiten a los usuarios convencionales detectar si su sistema ha sido infectado por alg ´un virus.
Existen varias compa ˜n´ıas que se encargan de proveer software que ayude a los usuarios de computadoras en esta tarea.
La funci ´on de un antivirus es prevenir, detectar y remover cierto malware de un sistema.
Existen tres t ´ecnicas generales para detectar virus.
Exploradores de virus. Verificadores de integridad. Verificadores de comportamiento.
T ´ecnicas de antivirus
T ´ecnicas de antivirus II
Exploradores de virus I
Generalmente generan un programa que no hace nada, llamado programa se ˜nuelo.
Si el virus infecta el programa, entonces el antivirus podr ´a obtener una copia del virus en su forma original.
Cuando el virus es nuevo, ´este es introducido en una base de datos de virus conocidos, cuando no es nuevo simplemente se recupera la forma de atacarlo.
Cuando el programa antivirus es instalado por primera vez suele examinar los archivos de la computadora buscando virus que se encuentren en su base de datos.
T ´ecnicas de antivirus
T ´ecnicas de antivirus III
Exploradores de virus IITal an ´alisis se suele realizar mediante b ´usquedas difusas. El problema de las b ´usquedas difusas es que pueden generar falsas alarmas.
La ventaja de tener una gran cantidad de virus conocidos en la base de datos es que se tienen m ´as criterios para encontrar virus. La desventaja es que tambi ´en se incrementa el n ´umero de falsas alarmas.
Algunos exploradores s ´olo verifican la fecha de ´ultima modificaci ´on de los archivos desde su ´ultima exploraci ´on.
T ´ecnicas de antivirus
T ´ecnicas de antivirus IV
Verificadores de integridad
Este tipo de programas primero busca si hay archivos infectados en el sistema.
Despu ´es calcula la suma de verificaci ´on para cada uno de los archivos ejecutables.
La siguiente vez que se ejecute, si alguna suma no coincide, entonces se considera que el ejecutable est ´a infectado. Sin embargo un virus podr´ıa intentar modificar tal archivo o incluso eliminarlo.
Si es eliminado entonces seguramente hay virus, y para evitar modificarlo lo recomendable es cifrarlo.
T ´ecnicas de antivirus
T ´ecnicas de antivirus V
Verificadores de comportamiento
Cuando se ejecuta un programa, el antivirus registra todas sus llamadas al sistema.
Si el antivrus detecta comportamiento inusual, como que un programa quiera escribir en el sector de arranque, entonces el antivirus lo trata de evitar.
Tambi ´en detecta cosas como la sobrescritura de ejecutables, a menos que lo haga un compilador.
Cuando el virus y el antivirus residen en la memoria, estos buscan eliminarse uno al otro.