programas y programaciónldm/mypage/data/si/apuntes/2019... · 2019-06-23 · virus: un programa...
TRANSCRIPT
1
SEGURIDAD INFORMÁTICA
UNTDF – IDEI | Profesor Lic. Leonardo de - Matteis | 2019/1c
Programas y programación
IDEI | 2019-1c | 2 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Temario
Organización de la memoria, desbordamientos de buffer y
contramedidas.
Errores comunes de programación.
Repaso de malwares y sus características.
Detección de virus.
Consejos para que los programadores escriban código pensando
en la seguridad de los sistemas.
IDEI | 2019-1c | 3 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Asignación de memoria
Stack
Heap
Static data
Code
High addresses
Low addresses
IDEI | 2019-1c | 4 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Datos e instrucciones
El mismo valor
hexadecimal en el mismo
lugar en la memoria puede
ser un dato o una
instrucción dependiendo de
si la computadora lo trata
como código o como datos.
Esta será la base de
muchos ataques.
IDEI | 2019-1c | 5 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Desbordamiento de buffer
Buffer overflow:
Ocurre cuando los datos se escriben más allá del espacio asignado
para ellos.
Ejemplo: un décimo byte en una arreglo de 9 bytes.
En un desbordamiento los valores insertados por un atacante
ingresan a regiones de memoria asignadas para datos, pero luego
esas entradas de datos pueden sobrescribir memoria que contiene
instrucciones ejecutables.
La idea es encontrar oportunidades de desbordamiento de buffer
que permitan sobrescribir memoria del programa que luego serán
ejecutadas.
IDEI | 2019-1c | 6 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Desbordamiento de buffer
Buffer overflow:
El problema proviene de la no comprobación de la longitud de la
información recibida y que será almacenada.
Sino se reservó el espacio adecuado se sobrescribirán otras partes
de memoria (con código ejecutable o no).
Consecuencias:
Mejor caso: segmentation fault y se elimina el proceso.
Peor caso: el atacante ejecuta código arbitrario con los privilegios
que posea el programa
2
IDEI | 2019-1c | 7 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Organización de la memoria
Ubicación del código
ejecutable de un proceso y
datos locales cuando se
encuentra en memoria
para ejecutarse.
Notar la ubicación del
código del sistema y sus
estructuras de datos.
System Data
Program Code
Local Data
System Code
High addresses
Low addresses
Stack
Heap
IDEI | 2019-1c | 8 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Desbordamiento de buffer
Programa:
char sample[10];
int i;
for (i=0; i<=9; i++)
sample[i] = ‘A’;
sample[10] = ‘B’;
IDEI | 2019-1c | 9 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Desbordamiento de buffer
Casos:
IDEI | 2019-1c | 10 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
La pila luego de llamadas a procedimientos
Stack
P3Procedure A
P2
P1
Prog Ctr
Stack Ptr
P2
P1
Prog Ctr
Stack Ptr
call B
call C
Procedure C
Procedure B
IDEI | 2019-1c | 11 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Pila comprometida
Stack
P3Procedure A
P2
P1
Prog Ctr
Stack Ptr
code
code
Prog Ctr
Stack Ptr
call B
call C
Procedure C
Procedure B
IDEI | 2019-1c | 12 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Desbordamiento de buffer: ejemplo
Programa:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
char buffer[5];
strcpy(buffer, argv[1]);
printf("buffer content= %s\n", buffer);
printf("strcpy() executed...\n");
return 0;
}
3
IDEI | 2019-1c | 13 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Desbordamiento de buffer: ejemplo
Prueba 1:
12345678
$> Ejecución correcta.
Prueba 2:
123456789 (9 bytes)
$> Segmentation fault y finalización del proceso.
IDEI | 2019-1c | 14 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Desbordamiento de buffer
Funciones vulnerables en lenguaje C:
− gets()
− scanf()
− sprintf()
− strcpy()
− strcat()
IDEI | 2019-1c | 15 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Desbordamiento de buffer
Técnicas para lograr ejecución de código:
Sobrescribir el contador del programa almacenado en la pila.
Sobrescribir parte del código en memoria baja, sustituyéndolo
por instrucciones nuevas.
Sobrescribir el contador del programa y datos en la pila de
ejecución para que el contador del programa apunte a la pila.
IDEI | 2019-1c | 16 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Desbordamiento de buffer
Daños:
Sobrescritura de:
Alguna porción de datos del programa.
Instrucciones del programa.
Datos o código pertenecientes a otro programa.
Datos o código pertenecientes al sistema operativo.
IDEI | 2019-1c | 17 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Desbordamiento de buffer
Consecuencias:
Sobrescribir instrucciones de un programa brinda al atacante los
privilegios de ejecución con que cuente el programa.
Sobrescribir las instrucciones del sistema operativo otorga a los
atacantes los máximos privilegios de ejecución.
IDEI | 2019-1c | 18 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Desbordamiento de buffer
Contramedidas:
Comprobar longitudes antes de escribir datos.
Verificar que los subíndices de arreglos/matrices están dentro de los límites.
Chequear condiciones de límite para evitar errores off-by-one.
Limitar el ingreso de caracteres al número máximo aceptable.
Limitar privilegios de los programas para reducir daño potencial.
4
IDEI | 2019-1c | 19 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Desbordamiento de buffer
Contramedidas:
Muchos lenguajes poseen protecciones de desbordamiento.
Los analizadores/compiladores de código pueden identificar
muchas vulnerabilidades de desbordamiento de buffer.
Generar en tiempo de compilaciones instrucciones que permitan
agregar canary values en la pila para señalar posibles
modificaciones durante la ejecución.
IDEI | 2019-1c | 20 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Desbordamiento de buffer
Contramedidas:
Generar en tiempo de
compilación instrucciones
que permitan agregar
canary values en la pila
para señalar posibles
modificaciones durante la
ejecución.
IDEI | 2019-1c | 21 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Mediación incompleta
Mediación:
significa verificar que el sujeto está autorizado para realizar la operación sobre un objeto.
Formas de prevención:
Siempre validar todas las entradas, verificar que sean adecuadas/razonables.
Limitar el acceso de los usuarios a datos y funciones confidenciales.
Utilizar un monitor de referencia para especificar una mediación completa.
IDEI | 2019-1c | 22 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Del tiempo de verificación al tiempo de uso
Mediación realizada con un "cebo y interruptor" en el medio.
File:
my_file
Action:
Change byte 4 to A
File:
your_file
Action:
Delete file
IDEI | 2019-1c | 23 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Del tiempo de verificación a tiempo de uso
Formas de prevención:
El proceso de verificación de acceso debe mantener/bloquear los
datos referentes a la solicitud hasta que se complete la acción
solicitada.
No permitir ninguna interrupción (pérdida de control) durante la
validación.
La rutina de validación puede copiar los datos del espacio del
usuario al área de la rutina, fuera del alcance del usuario, y
realizar verificaciones de validación en la copia.
IDEI | 2019-1c | 24 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Del tiempo de verificación a tiempo de uso
Todos los métodos citados son expansiones del criterio de
inviolabilidad para un monitor de referencia:
Los datos en los que se basa la decisión de control de acceso y
el resultado de la decisión deben estar fuera del dominio del
programa cuyo acceso se está controlando.
5
IDEI | 2019-1c | 25 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Malware
Programas insertados por un agente con intención maliciosa para
causar efectos no anticipados o no deseados.
Tipos:
Virus: Un programa que puede replicarse y pasar código
malicioso a otros programas no maliciosos modificándolos.
Worm: Un programa que difunde copias de sí mismo a través
de una red.
Caballo de troya: Código que, además de su efecto declarado,
tiene un segundo efecto, no obvio y malicioso.
IDEI | 2019-1c | 26 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Malware: tipos
IDEI | 2019-1c | 27 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Malware: tipos
IDEI | 2019-1c | 28 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Malware: historia
IDEI | 2019-1c | 29 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Malware: historia
IDEI | 2019-1c | 30 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Ataque de día cero
Malware activo que explota una vulnerabilidad del producto no
conocida previamente y para la cual el fabricante del software no
tiene contramedidas disponibles.
Difícil de detectar con las prácticas tradicionales de seguridad
informática.
Los atacantes pasan años desarrollando la habilidad de encontrar
tales vulnerabilidades.
Prácticas avanzadas de detección y parches se vuelven críticas
para este tipo de vulnerabilidades.
6
IDEI | 2019-1c | 31 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Ataque de día cero: explotación
IDEI | 2019-1c | 32 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Ataque de día cero: explotación
Etapas del ataque:
Desarrolladores crean una aplicación, pero no saben que el código contiene una vulnerabilidad.
Atacantes reconocen la vulnerabilidad antes de que los desarrolladores puedan encontrarla o tener tiempo para corregirla.
El atacante escribe código malicioso y ejecuta un ataque mientras la vulnerabilidad aún está disponible.
Después de la explotación las organizaciones reconocen la fuga de datos, robo de identidad.
El desarrollador investiga consecuencias y corrige la vulnerabilidad.
IDEI | 2019-1c | 33 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Ataque de día cero: línea de tiempo de la vulnerabilidad
IDEI | 2019-1c | 34 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Ataque de día cero: detección
Técnicas:
Detección basada en firmas: la detección de explotaciones de vulnerabilidades se realiza en relación con las firmas que ya se han creado en base conocimiento anterior.
Detección basada en estadísticas: este es un enfoque que depende de los datos históricos de los perfiles de ataques previos.
Detección basada en comportamiento: basada en el examen de cómo se utilizan las técnicas para explotar las vulnerabilidades y cómo interactúan con el objetivo.
Detección híbrida: combinación de varios métodos de detección.
IDEI | 2019-1c | 35 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Ataques a organizaciones
El malware no solo ataca a usuarios individuales y computadoras
individuales. Aplicaciones de relevancia en industrias también
están en riesgo.
Caso de ejemplo: Stuxnet (2010) explota una vulnerabilidad en
el software de sistemas de control industrial de Siemens. Sobre
sistemas de control de supervisión y adquisición de datos (SCADA)
utilizados para controlar procesos en: fabricación de productos
químicos, refinación y distribución de petróleo, y plantas de
energía nuclear.
IDEI | 2019-1c | 36 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Ataques a organizaciones
7
IDEI | 2019-1c | 37 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Daño generado por código malicioso
Daño a los usuarios y sistemas:
Envío de correo electrónico a contactos de usuarios.
Borrado / cifrado de archivos.
Modificación de información del sistema. Ejemplo: registro de
Windows.
Robo de información sensible. Ejemplo: contraseñas.
Adherirse a archivos críticos del sistema.
Ocultamiento de copias de malware en diferentes ubicaciones.
IDEI | 2019-1c | 38 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Daño generado por código malicioso
Daño al mundo:
Algunos tipos de malware infectan millones de sistemas.
Velocidad cada vez mayores de propagación.
Sistemas infectados a menudo se convierten en áreas de prueba
y ensayo para nuevas infecciones.
IDEI | 2019-1c | 39 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Transmisión y propagación
Métodos:
Programa de instalación y instalación.
Archivo adjunto.
Virus en documentos. Ejemplos: archivos de texto, base de
datos, presentación de diapositivas, imágenes hojas de cálculo.
Autorun.
IDEI | 2019-1c | 40 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Transmisión y propagación
Métodos:
Usando programas no maliciosos:
Virus en archivos (dentro del programa).
Virus que rodean un programa.
Virus integrados.
Virus que reemplazan completamente el programa original.
IDEI | 2019-1c | 41 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Transmisión y propagación
Rodeando el programa.
Integrado con el programa.
IDEI | 2019-1c | 42 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Activación del malware
Métodos:
Ejecución única.
Virus en sector de inicio/arranque.
Virus residentes en memoria.
Archivos de aplicación (macro virus).
Bibliotecas de código.
Compiladores, loaders, linkers, monitores para ejecución,
debuggers.
8
IDEI | 2019-1c | 43 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Activación del malware
Virus en sector de inicio:
IDEI | 2019-1c | 44 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Efectos del malware
Virus Effect How It Is Caused
Attach to executable
program • Modify file directory
• Write to executable program file
Attach to data or
control file • Modify directory
• Rewrite data
• Append to data
• Append data to self
Remain in memory • Intercept interrupt by modifying interrupt handler address table
• Load self in non-transient memory area
Infect disks • Intercept interrupt
• Intercept operating system call (to format disk, for example)
• Modify system file
• Modify ordinary executable program
Conceal self • Intercept system calls that would reveal self and falsify result
• Classify self as “hidden” file
Spread infection • Infect boot sector
• Infect systems program
• Infect ordinary program
• Infect data ordinary program reads to
control its execution
Prevent deactivation • Activate before deactivating program and block deactivation
• Store copy to reinfect after deactivation
IDEI | 2019-1c | 45 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Toolkits/Rootkits
Kits de herramientas de malware que posibilitan que atacantes
novatos busquen y hagan uso de diferentes vulnerabilidades con
solo presionar un botón.
IDEI | 2019-1c | 46 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Contramedidas para el usuario
Utilizar software adquirido de fuentes confiables.
Prueba de desarrollos y aplicaciones en entornos aislados.
Abrir archivos adjuntos cuando se sabe que son seguros.
Tratar cada sitio web como potencialmente dañino.
Crear y mantener copias de seguridad.
IDEI | 2019-1c | 47 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Detección del malware
Los programas para búsqueda de virus buscan signos de
infección con código malicioso utilizando firmas en archivos de
programas y memoria.
Los anti-virus tradicionales poseen problemas para mantenerse
al día con respecto al surgimiento de nuevo malware.
Estudios demuestran que los antivirus sólo detectan
aproximadamente el 45% de las infecciones.
IDEI | 2019-1c | 48 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Detección del malware
Mecanismos:
Patrones (secuencia de bytes) conocidos en archivos.
Patrones (secuencia de bytes) conocidos en memoria
(procesos).
Patrones de ejecución.
Patrones de almacenamiento.
9
IDEI | 2019-1c | 49 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Patrones de detección del malware
IDEI | 2019-1c | 50 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Contramedidas para los desarrolladores
Utilizar código modular, cada módulo debe ser:
o Para un solo propósito
o Pequeño
o Sencillo
o Independiente
Encapsulación: ocultar detalles de la implementación de un
componente.
Ocultación de información: describir que hace un módulo no
como lo hace.
IDEI | 2019-1c | 51 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Contramedidas para los desarrolladores
Sospecha mutua: cada rutina protege sus datos de interfaz para que otras solo tengan acceso limitado.
Ejemplo: no se puede confiar en que un procedimiento para ordenar las celdas en una lista no modifique esos elementos, mientras que ese procedimiento no puede confiar en que su interlocutor proporcione una lista como entrada o proporcione el número correcto de elementos de la misma.
Confinamiento: programa limitado estrictamente en cuanto a qué recursos del sistema puede acceder y utilizar.
Diversidad: reduce el número de objetivos susceptibles a un tipo de ataque.
Simplicidad!
IDEI | 2019-1c | 52 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Verificación y prueba del código
Prueba de unidades: enviar un conjunto predeterminado de
datos al componente que se está probando y observar qué
acciones de salida y datos se producen. Se verifican estructuras
de datos internos, lógica y condiciones de entorno para los datos
de entrada y salida.
Pruebas de integración.
Prueba de funcionamiento.
Pruebas de rendimiento.
IDEI | 2019-1c | 53 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Verificación y prueba del código
Test de aceptación: ¿responde a lo solicitado por el cliente?
Pruebas de instalación.
Pruebas de regresión: después de realizar un cambio para
mejorar el sistema, hay que asegurar que todas las funciones
restantes siguen funcionando.
Pruebas de penetración.
IDEI | 2019-1c | 54 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Principios de diseño
Privilegios mínimos: para que cada usuario y procesos realicen
sus tareas.
Economía de mecanismo: el diseño del sistema de protección
debe ser pequeño, simple y sencillo. Analizado detenidamente, y
bien verificado.
Diseño abierto: no depender de la ignorancia de los atacantes
potenciales. El mecanismo de protección debe ser público.
10
IDEI | 2019-1c | 55 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Principios de diseño
Basado en permisos: la condición por defecto debe ser denegar
el acceso. Se deben especificar que objetos son accesibles.
Separación de privilegios: el acceso a los objetos debería
depender de más de una condición. Ejemplo: autenticación de
usuario + clave criptográfica.
Facilidad de uso: si el mecanismo de protección es fácil de usar
será poco probable que se evite.
IDEI | 2019-1c | 56 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Principios de diseño
Mecanismo menos común: objetos compartidos proporcionan
canales potenciales para el flujo de información. Utilizar
sistemas que empleen separación física o lógica para reducir el
riesgo asociado a compartir objetos.
Mediación completa: cada intento de acceso debe ser verificado.
Acceso directos e indirectos deben ser considerados en el
mecanismo de protección.
IDEI | 2019-1c | 57 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Otras contramedidas
Pruebas de corrección del programa (donde sea posible).
Programación defensiva: los diseñadores no solo deben escribir
código correcto también deben anticipar lo que podría salir mal.
Diseño por contrato: implica desarrollo de programas formal.
Documentar para cada módulo de programa sus condiciones
previas, postcondiciones e invariantes. Permitirá identificar
posibles fuentes de error.
IDEI | 2019-1c | 58 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Otras contramedidas
Estrategias no recomendadas:
Pruebas de penetración y posterior corrección
Seguridad por oscuridad
http://ithare.com/advocating-obscurity-part-iii-code-obfuscation-basics/
IDEI | 2019-1c | 59 Universidad Nacional de Tierra del Fuego, Antártida e Islas del Atlántico Sur
Seguridad InformáticaProgramas y programación
Resumen
Los ataques de desbordamiento de buffer aprovechan el hecho
de que las instrucciones están almacenadas en memoria.
Los programas pueden tener diferentes tipos de
vulnerabilidades: errores off-by-one, mediación incompleta y
condiciones de carrera.
El malware puede tener una variedad de efectos dañinos
dependiendo de sus características.
Los desarrolladores pueden usar una variedad de técnicas para
escribir y probar código teniendo en cuenta la seguridad.