Sistemas Operativos [Virus]

Anuncio
Sistemas Operativos [Virus]
M. en C. Sergio Luis Pérez Pérez
UAM C UAJIMALPA , M ÉXICO, D. F.
Trimestre 13-O
Sergio Luis Pérez (UAM C UAJIMALPA)
Sistemas Operativos
1 / 30
Posibles ataques a un sistema
Posibles ataques a un sistema I
Un ataque a un sistema consiste en encontrar las
vulnerabilidades del sistema para causar algún daño al sistema u
obtener algún tipo de información.
Un ataque puede ser realizado por una entidad que se encuentra
dentro del mismo sistema o bien por alguien externo.
Un ataque desde adentro generalmente es realizado por un
cracker que ha iniciado sesión en el sistema.
Este puede consistir en atacar otras cuentas y generar código
malicioso.
Sergio Luis Pérez (UAM C UAJIMALPA)
Sistemas Operativos
2 / 30
Posibles ataques a un sistema
Posibles ataques a un sistema II
Un ataque desde afuera ocurre más comúnmente si el equipo se
encuentra conectado a la red.
El objetivo es transmitir cierto código y hacer que se ejecute en el
equipo atacado.
Sergio Luis Pérez (UAM C UAJIMALPA)
Sistemas Operativos
3 / 30
Posibles ataques a un sistema
Posibles ataques a un sistema III
Ejemplos de ataques desde adentro del sistema
Caballos de Troya.
Falsificación de inicio de sesión.
Bombas de lógica.
Trampas.
Desbordamiento del búfer.
Ataques contra la seguridad.
Sergio Luis Pérez (UAM C UAJIMALPA)
Sistemas Operativos
4 / 30
Posibles ataques a un sistema
Posibles ataques a un sistema IV
Ejemplos de ataques desde adentro del sistema
Virus acompañantes.
Virus de programa ejecutable.
Virus residentes en la memoria.
Virus de sector de arranque.
Virus de macros.
Virus de código fuente.
Sergio Luis Pérez (UAM C UAJIMALPA)
Sistemas Operativos
5 / 30
Ataques desde adentro del sistema
Caballos de troya
Caballos de troya I
Un caballo de Troya o troyano es un código fuente aparentemente
inofensivo pero que al ejecutarlo puede realizar una función
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ón segura
antes de recuperarlos vı́a correo electrónico 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á realizar todas las acciones que el usuario puede.
Sergio Luis Pérez (UAM C UAJIMALPA)
Sistemas Operativos
6 / 30
Ataques desde adentro del sistema
Caballos de troya
Caballos de troya II
¿Como funciona este tipo de ataque? I
1
Una forma de engañar a la vı́ctima para que ejecute el programa
es ubicarlo en algún 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ún programa, el sistema primero
averigua si se encuentra en /usr/lib64/qt-3.3/bin, si no, luego
busca en /usr/kerberos/bin, etcétera.
3
Este ataque sólo será exitoso si la ruta del troyano es la primera
ocurrencia de tal programa.
Sergio Luis Pérez (UAM C UAJIMALPA)
Sistemas Operativos
7 / 30
Ataques desde adentro del sistema
Caballos de troya
Caballos de troya III
¿Como funciona este tipo de ataque? II
1
Otra opción es instalar un programa cuyo nombre sea parecido,
por ejemplo LS (ası́ con mayúsculas).
2
El programa mostrará 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ón es poner el programa con el mismo nombre en algún
directorio del usuario al que se atacó.
5
Luego podrı́a realizar alguna actividad para llamar la atención del
superusuario.
6
¿Que podrı́a hacer el superusuario?
Sergio Luis Pérez (UAM C UAJIMALPA)
Sistemas Operativos
8 / 30
Ataques desde adentro del sistema
Falsificación de inicio de sesión
Falsificación de inicio de sesión
En este ataque, un usuario crea un programa que clona la vista
del inicio de sesión de una estación de trabajo.
El atacante deja el programa activo y cuando algún usuario llega
a dicha estación trata de iniciar sesión de manera normal.
El programa inhabilita el eco para la parte donde el usuario
introduce su contraseña.
Una vez que el usuario solicita acceso el programa guarda el
usuario y la contraseña en algún archivo y cierra su shell.
Esta es una manera de obtener múltiples parejas de
usuario-contraseña.
Sergio Luis Pérez (UAM C UAJIMALPA)
Sistemas Operativos
9 / 30
Ataques desde adentro del sistema
Bombas de lógica
Bombas de lógica
Una bomba de lógica es un programa creado también por un
empleado de una empresa.
Es un programa que periódicamente solicita una contraseña y se
activa en el momento que ésta no es proporcionada.
La crean los empleados que por alguna razón creen que pronto
podrı́an ser despedidos.
También pueden ser quienes entraron a la empresa con la
finalidad de realizar algún tipo de espionaje.
En el primer caso el objetivo es ser recontratado y en el segundo
hacer mal uso de la información de la empresa.
Sergio Luis Pérez (UAM C UAJIMALPA)
Sistemas Operativos
10 / 30
Ataques desde adentro del sistema
Trampas
Trampas
Se produce cuando un programador inserta código 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á obtener información
de cualquiera que use dicho producto.
¿Cómo se efectúa este ataque?
¿Cómo realizarlo si los usuarios se almacenarán en una base de
datos?
¿Cómo se puede evitar?
Sergio Luis Pérez (UAM C UAJIMALPA)
Sistemas Operativos
11 / 30
Ataques desde adentro del sistema
Desbordamiento del búfer
Desbordamiento del búfer
Este tipo de ataques son más sencillos de realizar desde C/C++
int indice = 200;
debido a que no verifican cosas como: 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ón de retorno de un
programa en ejecución.
Sergio Luis Pérez (UAM C UAJIMALPA)
Sistemas Operativos
12 / 30
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áginas de memoria, espacio de disco o cintas y leerlas.
Probar llamadas al sistema.
Intentar inicios de sesión 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.
Sergio Luis Pérez (UAM C UAJIMALPA)
Sistemas Operativos
13 / 30
Ataques desde afuera del sistema
Ataques desde afuera del sistema I
Este ataque consiste en transmitir cierto código por la red hacia
una computadora objetivo, con la finalidad de que el código se
ejecute y cause daños.
Lo más común es realizar estos ataques mediante virus, gusanos,
código móvil y applets.
Un virus es un programa que puede reproducirse anexando su
código 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ón que pueda resultar interesante para los
usuarios.
Sergio Luis Pérez (UAM C UAJIMALPA)
Sistemas Operativos
14 / 30
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ón.
7
El virus comienza la infección de los archivos de usuario
paulatinamente.
8
Después de un cierto tiempo y varios archivos infectados, el virus
cumple su objetivo.
Sergio Luis Pérez (UAM C UAJIMALPA)
Sistemas Operativos
15 / 30
Ataques desde afuera del sistema
Virus acompañantes
Virus acompañantes I
Este tipo de virus sólo se ejecuta y no se propaga.
Este virus se implanta como parte de un programa utilizado
comúnmente por los usuarios.
No se modifica el archivo original sino que es replicado.
Cada que se ejecuta el programa, además de hacer lo que debe,
el virus es ejecutado. Ejemplo:
1
2
3
Se crea un virus llamado Notepad.exe.
Cuando se implanta, el nombre del original Notepad.exe es
cambiado a Notepad2.exe.
Cuando se ejecuta se solicita el programa Notepad se ejecuta
primero el virus y luego Notepad2.exe.
Sergio Luis Pérez (UAM C UAJIMALPA)
Sistemas Operativos
16 / 30
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ón se encuentran los siguientes:
1
Virus de sobrescritura.
2
Virus parásitos.
3
Virus de cavidades.
Sergio Luis Pérez (UAM C UAJIMALPA)
Sistemas Operativos
17 / 30
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ódigo con el de
algún ejecutable.
Cada que se ejecuta sobrescribe parte de los archivos del
usuario.
Son los más fáciles de detectar.
Consisten de programas cortos que recorren todos los directorios
e infectan algunos archivos.
Para ocultar la infección se pueden especificar que no se cambie
la fecha de última modificación ni el tamaño del archivo.
Sergio Luis Pérez (UAM C UAJIMALPA)
Sistemas Operativos
18 / 30
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últiplos de 512 bytes.
Si el virus es muy pequeño podrá añadirse sin problema al
programa sin modificar su espacio en disco.
“Un virus oculto es un virus feliz”
Sergio Luis Pérez (UAM C UAJIMALPA)
Sistemas Operativos
19 / 30
Ataques desde afuera del sistema
Virus de programa ejecutable
Virus de programa ejecutable IV
Virus parásitos
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ón 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.
Sergio Luis Pérez (UAM C UAJIMALPA)
Sistemas Operativos
20 / 30
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és de realizar la infección, este virus continua a la espera
de la ejecución 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.
Sergio Luis Pérez (UAM C UAJIMALPA)
Sistemas Operativos
21 / 30
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úa 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
interrupción.
Sergio Luis Pérez (UAM C UAJIMALPA)
Sistemas Operativos
22 / 30
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én 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ón de programas.
Sergio Luis Pérez (UAM C UAJIMALPA)
Sistemas Operativos
23 / 30
Ataques desde afuera del sistema
Virus de código fuente
Virus de código fuente I
Este tipo de virus busca códigos fuente y los modifica.
Son el tipo de virus más portable.
Requieren de cierta habilidad para analizar la sintaxis del código.
Su forma de operar es como sigue:
Se implantan las librerı́as que contienen al virus.
Se buscan los archivos del lenguaje de programación 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.
Sergio Luis Pérez (UAM C UAJIMALPA)
Sistemas Operativos
24 / 30
Ataques desde afuera del sistema
Virus de código fuente
Virus de código fuente II
Se buscan ciertos lugares especı́ficos del código para colocar las
llamadas a las funciones del virus.
Si el programa es recompilado, cuando se ejecute, éste
ejecutará el virus.
Los lugares apropiados para ubicarse son:
Justo antes de que el programa inicie su ejecución normal.
En las funciones que se encuentran dentro del programa, ya sea al
principio o al final de ellas.
Justo antes de que el programa termine su ejecución normal.
Sergio Luis Pérez (UAM C UAJIMALPA)
Sistemas Operativos
25 / 30
Técnicas de antivirus
Técnicas de antivirus I
Las técnicas de antivirus permiten a los usuarios convencionales
detectar si su sistema ha sido infectado por algún virus.
Existen varias compañı́as que se encargan de proveer software
que ayude a los usuarios de computadoras en esta tarea.
La función de un antivirus es prevenir, detectar y remover cierto
malware de un sistema.
Existen tres técnicas generales para detectar virus.
Exploradores de virus.
Verificadores de integridad.
Verificadores de comportamiento.
Sergio Luis Pérez (UAM C UAJIMALPA)
Sistemas Operativos
26 / 30
Técnicas de antivirus
Técnicas de antivirus II
Exploradores de virus I
Generalmente generan un programa que no hace nada, llamado
programa señuelo.
Si el virus infecta el programa, entonces el antivirus podrá obtener
una copia del virus en su forma original.
Cuando el virus es nuevo, éste 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.
Sergio Luis Pérez (UAM C UAJIMALPA)
Sistemas Operativos
27 / 30
Técnicas de antivirus
Técnicas de antivirus III
Exploradores de virus II
Tal análisis se suele realizar mediante búsquedas difusas.
El problema de las búsquedas 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ás criterios para encontrar virus.
La desventaja es que también se incrementa el número de falsas
alarmas.
Algunos exploradores sólo verifican la fecha de última
modificación de los archivos desde su última exploración.
La forma de algunos virus de evitar ser detectados es cifrándose.
Sergio Luis Pérez (UAM C UAJIMALPA)
Sistemas Operativos
28 / 30
Técnicas de antivirus
Técnicas de antivirus IV
Verificadores de integridad
Este tipo de programas primero busca si hay archivos infectados
en el sistema.
Después calcula la suma de verificación 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á 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.
Sergio Luis Pérez (UAM C UAJIMALPA)
Sistemas Operativos
29 / 30
Técnicas de antivirus
Técnicas 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én 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.
Sergio Luis Pérez (UAM C UAJIMALPA)
Sistemas Operativos
30 / 30
Descargar