Tema 7 (2017)

Resumen Español
Universidad Universidad Autónoma de Barcelona (UAB)
Grado Ingeniería Informática - 3º curso
Asignatura Garantia de la Informació i Seguretat
Año del apunte 2017
Páginas 5
Fecha de subida 10/06/2017
Descargas 1
Subido por

Vista previa del texto

Garantía de la Información y Seguridad Tema 7 – Seguridad del Software Defectos en programas (inintencionado):    Buffer overflow Race conditions … Software malicioso (intencionado):    Virus Worms Otros malware Proteger el software es el trabajo de los ingenieros, asegurarse que el programa hace lo que debería hacer y nada más.
Vulnerabilidades comunes del Software Buffer Overflow ¿Que podría pasar al ejecutarlo?    int main(){ int buffer[10]; buffer[20] = 37; } Puede sobrescribir datos de usuario o código (programa peta).
Puede sobrescribir datos del sistema o código (SO peta).
Programa funciona correctamente.
Organización de memoria     Text: código Data: variables estáticas.
Heap: datos variables.
Stack: o Variables locales dinámicas.
o Parámetros de funciones.
o Direcciones de retorno.
Si el buffer overflow es explotable, un atacante puede inyectar código malicioso.
Prevención de Buffer overflow Defensas contra stack smashing:    Memoria no ejecutable (protección del kernel).
Direcciones de memoria aleatorias (protección del kernel).
Stack canaries (protección del compilador).
 Practicas seguras de programación.
Memoria no ejecutable:    HW/SO permite especificar permisos de lectura, escritura y ejecución a la memoria.
Se puede marcar el stack como no ejecutable.
Desventajas: más difícil de generar código dinámico.
Direcciones de memoria aleatorias:   Trata de hacer difícil poder encontrar punteros de código.
Esto hace que los ataques de buffer overflow sean probabilísticos.
Stack canaries:    Valores especiales (canaries) son insertados en puntos arbitrarios de memoria para detectar corrupciones.
Las presencias de estos valores son comprobadas antes del return para detectar overflows.
No pueden proteger contra todo tipo de ataques.
Practicas seguras de programación:    Algunos lenguajes evitan errores de buffer overflow introducidos por programadores.
La mayoría de estos lenguajes son ejecutados en máquinas virtuales.
C provee funciones seguras (strncpy en cuenta de strcpy).
Race Condition Race conditions pueden surgir cuando se produce un proceso crítico de seguridad en etapas.
Son muy comunes y más frecuentes que los buffer overflows.
   Los atacantes pueden hacer cambios entre etapas.
Son difíciles de explotar Para prevenirlo, los procesos críticos de seguridad se hacen atómicos (ocurre todo en una vez, no en etapas).
Ejemplo: Si esto se instala como setuid root, el atacante puede acceder al fichero sin necesitar permisos.
char filename[] = ”foo/bar/name”; if (access(filename, W_OK) == 0){ <!> symlink(”/etc/passwod”, filename) f = fopen(filename, ”w+”); ...
} else { fprintf(stderr, ”You do not have write access to %s.\n”, filename); } Malware Variedad de software malicioso.
Tipos de malware:  Virus: código autoreplicativo, propagación pasiva, normalmente unido a un documento.
  Worm: código autoreplicativo, propagación activa (a través de red), puede producir daños a sistemas locales y redes.
Otros: o Trojan: funcionalidad inesperada.
o Backdoor: accesos no autorizados.
o Rabbit: recursos de sistema exhaustos.
Detección de malware Existen 3 métodos:    Detección por firma.
Detección por cambio.
Detección por anomalía.
Detección por firma Una firma puede ser un Sting de bits en un ejecutable. Esta firma se puede buscar en cualquier fichero.
Ventajas:   Efectivo contra malware ordinario.
Carga mínima para usuario/administrador.
Desventajas:     La firma puede ser muy larga, haciendo el escaneo lento.
Las firmas deben estar al día.
No puede detectar virus desconocidos.
No puede detectar tipos de malware avanzados.
Detección por cambio Los virus “viven” en algún sitio, si se detecta que un fichero ha cambiado, puede ser que haya sido infectado. Para detectar estos cambios se guardan los hashes de los ficheros y periódicamente se recomputan para compararlos y detectar infecciones.
Ventajas:   No genera falsos negativos Pueden detectar malware desconocido.
Desventajas:    Muchos ficheros cambian constantemente.
Muchas falsas alarmas (falsos positivos).
Mucha carga para el usuario/administrador.
Detección por anomalía Se monitoriza el sistema para detectar “algo” inusual o parecido a un virus. Cambios inesperados, actividad extraña en la red, etc… Ventajas:  Posibilidad de detectar malware desconocido.
Desventajas:   Debe ser combinado con otro método.
Lo normal puede parecer anormal.
Ejemplo de detección por firma Firmas Hash Hash:Size:MalwareName  B691e28e120f6989e37c7db21cb51931:114032:ls Firmas hash basados en PE-section PESectionSize:PESectionHash:MalwareName  28672:cf508530c2dbceb6466e26fa64646685:Trojan.Sinowal-378595645 Firmas basadas en cuerpo MalwareName:TargetType:Offset:HexSignature  Exploit.HTML.MHTRedir.1n:3:*:6d732d6974733a6d68746d6c3a66696c653a2f2f633a5c Target Type: Offset: Firmas lógicas MalwareName;TargetDescriptionBlock; LogicalExpression;Subsig0;Subsig1;Subsig2;…  Exploit.MS08-067;Target:1;(0&1)&(2|3|4|5);5c5c25735c495043;6e6361636e5f 6e70;2e2e5c2e2e;2e2e5c5c2e2e;2e002e005c002e002e;2e002e005c 005c002e002e Tendencias recientes Malware Virus encriptados: los programadores de virus conocen la detección por firma, por lo que encriptan el virus para no tener una firma en común.
Detección: escaneo del código desencriptador, genera falsas alarmas.
Malware polimórfico: el cuerpo del malware es encriptado. El código desencriptador es “mutado” para ocultar su firma.
Detección: emulación para que el código se desencripte por sí solo.
Malware metamórfico: el virus muta su código al infectar otro sistema, con esto se evita la detección por firma.
Gusano metamórfico: el código es desensamblado hasta llegar a una forma base y se insertan variaciones de código. El resultado es un gusano con la misma funcionalidad, pero con firma distinta. Es difícil producir un buen generador metamórfico.
Botnet: red de sistemas infectados. Se usan para generar Spam, ataques DDoS, etc.
...

Tags:
Comprar Previsualizar