Clase 4
Clase 4
3
Repositorios de Código Mal Configurados
https://www.immuniweb.com/
4
Índice de Contenidos
5
Repaso Sesión Anterior
6
Repaso Sesión Anterior
7
¿Es costosa la Seguridad?
8
¿Es costosa la Seguridad?
9
¿Es costosa la Seguridad?
11
¿Es costosa la Seguridad?
La seguridad no es algo que pueda dejarse “para después”. Es por ello que desde
temprano en el ciclo de desarrollo del proyecto deben considerarse temas de
seguridad. Muchas veces nos apoyamos solamente en la validación de nuestro
equipo de pruebas (QA) o en el proceso de code review de los desarrolladores,
pero sin un entrenamiento adecuado en ninguno de los casos las personas
sabrán que revisar.
Maquiavelo decía que todos los seres humanos somos malos. Aunque es un
punto que puede considerarse debatible, existe un modelo que de cierta
manera le da la razón: es conocido como 10:80:10, y nos dice que del 100% de
los usuarios o involucrados con el sistema:
• 10% no intentarán ningún ataque, sin importar las razones.
• 80% son oportunistas.
• 10% te atacarán sin importar nada.
Podemos asumir entonces que adicional a los “diabólicos” hackers que andan
sueltos por el mundo:
• Tus usuarios buscarán tomar ventaja de la aplicación si les resulta
provechoso.
• Un empleado molesto tomará represalias.
• Un consultor que tenga acceso buscará información que le pueda servir.
14
Estándar de Verificación de Seguridad
15
Estándar de Verificación de Seguridad
¿Qué es OWASP?
Open Web Application Security Project (OWASP) es una organización sin
ánimo de lucro a nivel mundial dedicada a mejorar la seguridad de las
aplicaciones y del software en general. Su misión es hacer que la seguridad
dentro de las aplicaciones sea más visible para que, así, las organizaciones y los
particulares puedan tomar decisiones sobre conceptos de seguridad basándose
en información verídica y contrastada.
16
Estándar de Verificación de Seguridad
Nivel 1: Oportunista
Una aplicación alcanza ASVS nivel 1 si se defiende adecuadamente contra
vulnerabilidades de seguridad de aplicaciones que son fáciles de descubrir (y se
incluyen en el OWASP Top 10).
Nivel 2: Standard
Una aplicación alcanza ASVS nivel 2 si se defiende adecuadamente contra la
mayoría de los riesgos asociados con el software de hoy en día.
Nivel 3: Avanzado
Es el más nivel de verificación más alto dentro de ASVS. Esta reservado
normalmente para aplicaciones que requieren niveles significativos de
verificación de seguridad, como las que se encuentran dentro de áreas
militares, salud, seguridad, infraestructuras, etc. Las organizaciones pueden
requerir del nivel 3 para aplicaciones que realizan funciones críticas, donde una
falla de seguridad podría afectar significativamente sus operaciones y hasta su
supervivencia.
20
Estándar de Verificación de Seguridad
El ASVS tiene un amplio abanico de posibles usos, pero uno de los más
importantes es servir de apoyo para la capacitación en desarrollo seguro de
software. Muchos cursos de "codificación segura" son simplemente cursos de
hacking ético con un ligero toque de consejos sobre codificación. Esto no ayuda
mucho a los desarrolladores de sistemas. En cambio, cursos de desarrollo
seguro pueden usar la guía ASVS con un fuerte enfoque en los controles
proactivos en esta.
22
Estándar de Verificación de Seguridad
23
Estándar de Verificación de Seguridad
24
Estándar de Verificación de Seguridad
30
Estándar de Verificación de Seguridad
32
Estándar de Verificación de Seguridad
33
Estándar de Verificación de Seguridad
35
Estándar de Verificación de Seguridad
36
Estándar de Verificación de Seguridad
37
Estándar de Verificación de Seguridad
40
Estándar de Verificación de Seguridad
41
Desarrollo Seguro de Aplicaciones
Locales
42
Desarrollo Seguro de Aplicaciones Locales
43
Desarrollo Seguro de Aplicaciones Locales
44
Desarrollo Seguro de Aplicaciones Locales
46
Desarrollo Seguro de Aplicaciones Locales
47
Desarrollo Seguro de Aplicaciones Locales
La naturaleza de la vulnerabilidad a
explotar está relacionada con el
funcionamiento a bajo nivel de las
estructuras del sistema operativo,
como la pila (stack) o el montón (heap),
y por tanto, afectan únicamente a
lenguajes que permitan este control
sobre la memoria y dichas estructuras,
tales como C o C++.
48
Desarrollo Seguro de Aplicaciones Locales
Se produce un desbordamiento de
memoria cuando, en una estructura de
datos de un tamaño determinado, se
intentan alojar datos que requieren un
contenedor mayor. En función de dónde se
produzca este desbordamiento, las
estructuras del sistema operativo serán
unas u otras, y por tanto, la forma de
explotarlos cambia de manera
49 considerable.
Desarrollo Seguro de Aplicaciones Locales
50
Desarrollo Seguro de Aplicaciones Locales
53
Desarrollo Seguro de Aplicaciones Locales
54
Desarrollo Seguro de Aplicaciones Locales
56
Desarrollo Seguro de Aplicaciones Locales
58
Desarrollo Seguro de Aplicaciones Locales
60
Desarrollo Seguro de Aplicaciones Locales
61
Recuerde utilizar los foros de cada módulo
62
CLASE 4