Objetivo de aprendizaje 5.1.A: Explicar cómo los adversarios pueden explotar vulnerabilidades en aplicaciones y archivos para causar pérdida, daño, interrupción o destrucción.
- 5.1.A.1 Un adversario puede leer cualquier archivo no cifrado si tiene acceso al dispositivo o a la unidad donde se almacenan los archivos.
- 5.1.A.2 Las computadoras tienen usuarios estándar y usuarios administrativos. Los usuarios administrativos tienen acceso para controlar la configuración del sistema y generalmente pueden acceder a cualquier archivo o aplicación en un sistema. Si a los usuarios regulares se les otorgan privilegios administrativos en una computadora y un adversario compromete la cuenta de un usuario, entonces el adversario tendrá privilegios elevados en el sistema.
- 5.1.A.3 Cuando la configuración del control de acceso es débil, muchos usuarios suelen tener permiso para ver e incluso editar archivos en un sistema. Los adversarios pueden aprovechar las configuraciones débiles de control de acceso para robar o destruir archivos o interrumpir una aplicación.
Objetivo de aprendizaje 5.1.B: Explicar cómo los ataques a aplicaciones explotan vulnerabilidades.
- 5.1.B.1 Las aplicaciones son programas que ejecutan instrucciones en computadoras; son datos ejecutables. Algunas aplicaciones se ejecutan localmente en la computadora de un usuario, mientras que otras aplicaciones, como las aplicaciones web, se ejecutan en un servidor y son accedidas por los usuarios a través de una red.
- 5.1.B.2 Muchas aplicaciones reciben entrada del usuario a través de campos de entrada abiertos donde los usuarios pueden escribir caracteres (por ejemplo, letras, números, puntuación). Los desarrolladores deben incluir comprobaciones de entrada del usuario en sus aplicaciones, como validar entrada numérica cuando se solicita una cantidad de elementos, para asegurar que la entrada del usuario coincida con lo esperado; la aplicación debe rechazar entradas fuera de los parámetros esperados. Este proceso de verificar que la entrada del usuario cumple con los criterios esperados antes de procesarla se denomina validación de datos. Las aplicaciones que no validan la entrada del usuario son vulnerables a ataques de tipo inyección, donde los adversarios insertan cadenas de caracteres inesperadas en los campos de entrada para alterar el comportamiento de un programa.
- 5.1.B.3 El lenguaje de consulta estructurado (SQL) es un lenguaje informático utilizado para solicitar información de bases de datos y realizar cambios en bases de datos o entradas en bases de datos. Las aplicaciones que consultan una base de datos utilizando entrada no validada o no sanitizada de los usuarios son vulnerables.
- 5.1.B.4 Un ataque de inyección SQL coloca comandos SQL y caracteres de control en un campo de entrada del usuario en una aplicación, lo que puede provocar una violación de la confidencialidad haciendo que la aplicación devuelva más información de la debida, o una violación de la integridad modificando o eliminando datos en la base de datos.
- 5.1.B.5 Los sitios web se escriben utilizando lenguaje de marcado de hipertexto (HTML), y muchos sitios web utilizan Javascript para crear contenido dinámico en sitios web o aplicaciones web. Debido a que los comandos de Javascript se ejecutan en el navegador del usuario que visita el sitio web, esos comandos pueden acceder a datos sensibles almacenados en el navegador, como nombres de usuario, contraseñas y claves criptográficas.
- 5.1.B.6 Un ataque de script entre sitios (XSS) inyecta código malicioso en un sitio web que luego ejecuta el navegador del usuario. El código malicioso puede estar incrustado en un enlace que hace clic el usuario (un ataque XSS reflejado de Tipo I o Reflected XSS) o puede ser insertado en un sitio web a través de un campo de comentarios, publicación de foro o registro de visitantes, lo que afectaría a cualquier usuario que visite ese sitio web (un ataque XSS almacenado de Tipo II o Stored XSS).
- 5.1.B.7 Cuando las aplicaciones toman entrada del usuario, esa entrada se escribe en un búfer. Un búfer es una sección designada de la memoria de la computadora con un tamaño fijo. Si la cantidad de datos que ingresa el usuario excede el tamaño del búfer, puede desbordarse en ubicaciones de memoria adyacentes y sobrescribir otras partes de la memoria de la computadora.
- 5.1.B.8 Un ataque de desbordamiento de búfer introduce más datos en la memoria de lo asignado, lo que puede causar que un sistema se bloquee o ejecute código fuera del alcance de la política de seguridad de un programa, permitiendo efectivamente que el adversario realice acciones no autorizadas en una computadora, como acceder, modificar o eliminar archivos.
- 5.1.B.9 Los archivos que ejecutan aplicaciones web se almacenan en directorios en servidores. Cuando los usuarios acceden a aplicaciones web, sus navegadores envían solicitudes GET utilizando el protocolo de transferencia de hipertexto (HTTP). Una solicitud GET accede a un archivo en algún lugar del sistema de archivos del servidor.
- 5.1.B.10 En un ataque de navegación de directorios, los adversarios modifican las URL y las solicitudes GET para intentar acceder a datos sensibles (por ejemplo, nombres de usuario y contraseñas) en el sistema de archivos de un servidor.
- Ejemplos ilustrativos para 5.1.B.10:
- Un servidor web almacena imágenes para un sitio web que aloja en el directorio /var/www/images/. Un adversario modifica una URL que solicita una imagen a ../../../etc/passwd. Los .. mueven un directorio hacia arriba en el sistema de archivos; por lo tanto, los tres puntos suspensivos consecutivos .. devuelven la ruta a la raíz, y desde allí el adversario intenta acceder al archivo passwd que devolvería una lista de todos los nombres de usuario autorizados en el dispositivo.
- Ejemplos ilustrativos para 5.1.B.10:
Objetivo de aprendizaje 5.1.C: Evaluar y documentar riesgos derivados de vulnerabilidades de aplicaciones y datos.
- 5.1.C.1 Los riesgos de seguridad de datos pueden implicar una compromiso de confidencialidad cuando personas no autorizadas pueden acceder a datos sensibles, integridad cuando los datos pueden ser manipulados o alterados desde su estado previsto, y disponibilidad cuando los datos pueden ser destruidos o cifrados para impedir que otros accedan a ellos.
- 5.1.C.2 Los riesgos altos por vulnerabilidades de datos a menudo involucran datos altamente sensibles (por ejemplo, datos regidos por leyes o regulaciones) que podrían ser comprometidos mediante una explotación muy probable.
- Ejemplos ilustrativos para 5.1.C.2:
- La empresa que desarrolla el próximo motor de reacción que será utilizado por la Fuerza Aérea en sus aviones está almacenando las especificaciones técnicas del motor en una unidad no cifrada.
- Ejemplos ilustrativos para 5.1.C.2:
- 5.1.C.3 Los riesgos moderados por vulnerabilidades de datos a menudo involucran datos sensibles que no tienen un cifrado suficientemente fuerte o controles de acceso lo suficientemente estrictos.
- Ejemplos ilustrativos para 5.1.C.3:
- Una empresa almacena la información personal identificable (PII) de sus clientes en una hoja de cálculo, y la hoja de cálculo está cifrada utilizando una clave pequeña.
- Ejemplos ilustrativos para 5.1.C.3:
- 5.1.C.4 Los riesgos bajos por vulnerabilidades de datos a menudo involucran información menos sensible que está cifrada con claves más cortas o que tiene controles de acceso que no son lo suficientemente estrictos.
- Ejemplos ilustrativos para 5.1.C.4:
- El CEO de una organización almacena sus memorandos privados dirigidos a su personal ejecutivo en una unidad compartida de la empresa que no está cifrada y no tiene controles de acceso.
- Ejemplos ilustrativos para 5.1.C.4:


