Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 30

PRO - 203

PROGRAMACIÓN SEGURA
Rancagua – TIC – Ingeniería Informática

CLASE 4

Profesor: Michell Jáuregui Valdés


Conceptos asociados a OWASP TOP 10

​OWASP Top 10 es un documento de los diez riesgos de seguridad más


importantes en aplicaciones web según la organización OWASP
(en inglés Open Web Application Security Project,
en español Proyecto Abierto de Seguridad de Aplicaciones Web).​
Esta lista se publica y actualiza cada tres años por dicha organización.

https://es.wikipedia.org/wiki/OWASP_Top_10
Owasp Top 10 (de 2003 a 2017)
OWASP Top 10-2003 OWASP Top 10-2004 OWASP Top 10-2007 OWASP Top 10-2010 OWASP Top 10-2013 OWASP Top 10-2017
A1-Secuencia de comandos en
A1-Entrada no validada A1-Entrada no validada A1-Inyección A1-Inyección A1 - Inyección
sitios cruzados XSS
A2-Control de acceso A2-Control de acceso A2-Secuencia de comandos A2-Pérdida de autenticación A2 - Pérdida de
A2-Fallas de inyección
interrumpido interrumpido en sitios cruzados XSS y gestión de sesiones Autenticación
A3-Administración de
A3-Administración de cuentas A3-Ejecución de ficheros A3-Pérdida de autenticación A3-Secuencia de comandos A3 - Exposición de datos
autenticación y sesión
y sesión interrumpida malintencionados y gestión de sesiones en sitios cruzados XSS sensibles
interrumpida
A4-Fallas de cross site A4-Fallas de cross site A4-Referencia insegura y A4-Referencia directa A4-Referencia directa A4 - Entidades Externas
scripting XSS scripting XSS directa a objetos insegura a objetos insegura a objetos XML (XXE)
A5-Falsificación de
A5-Falsificación de peticiones A5-Configuración de A5 - Pérdida de Control de
A5-Desbordamiento de bufer A5-Desbordamiento de bufer peticiones en sitios cruzados
en sitios cruzados CSRF seguridad incorrecta Acceso
CSRF
A6-Fallas de inyección de A6-Revelación de información A6-Defectuosa configuración A6-Exposición de datos A6 - Configuración de
A6-Fallas de inyección
comandos y gestión incorrecta de errores de seguridad sensibles Seguridad Incorrecta
A7-Problemas de manejo de A7-Manejo inadecuado de A7-Pérdida de autenticación y A7-Almacenamiento A7-Ausencia de control de A7 - Secuencia de Comandos
errores errores gestión de sesiones criptográfico inseguro acceso a las funciones en Sitios Cruzados (XSS)
A8-Falsificación de
A8-Uso inseguro de A8-Almacenamiento A8-Falla de restricción de
A8-Almacenamiento inseguro peticiones en sitios cruzados A8 - Deserialización Insegura
criptografía criptográfico inseguro acceso a URL
CSRF
A9-Fallas de administración A9-Protección insuficiente en A9-Uso de componentes con A9 - Componentes con
A9-Negación de servicio A9-Comunicaciones inseguras
remota(no aplicable) la capa de transporte vulnerabilidades conocidas vulnerabilidades conocidas
A10-Configuración indebida A10-Administración de A10-Falla de restricción de A10-Redirecciones y A10-Redirecciones y A10 - Registro y Monitoreo
de servidor web y de aplicación configuración insegura acceso a URL reenvíos no validados reenvíos no validados Insuficientes
OWASP TOP 10
Aplicabilidad en programación segura: Establece un marco de referencia

OWASP Top10 es un proyecto permanente de Owasp, y su objetivo es crear y difundir un


documento breve de 25 páginas, orientado a la concientización acerca del desarrollo de código
seguro para todo tipo de software (originalmente nació para app web, pero ahora es aplicable
en todo tipo de software).

OWASP Top10:2017 se basó en el envío de datos de más de 40 empresas líderes mundiales,


que se especializan en seguridad de aplicaciones y una encuesta de la industria IT que logró
500 respuestas de profesionales internacionales. La información abarca vulnerabilidades
recopiladas de cientos de organizaciones y más de 100.000 aplicaciones y APIs del mundo
real. Las 10 principales categorías fueron seleccionadas y priorizadas de acuerdo con estos
datos de prevalencia, en combinación con estimaciones consensuadas de explotabilidad,
detectabilidad e impacto.
OWASP TOP 10
Aplicabilidad en programación segura: Establece un marco de referencia

Uno de los principales objetivos del OWASP Top10 es educar a los desarrolladores,
diseñadores, arquitectos, gerentes y organizaciones sobre las consecuencias de las
debilidades más comunes y más importantes de la seguridad de las aplicaciones web. El
Top10 proporciona técnicas básicas para protegerse contra estas áreas con problemas de
riesgo alto, y proporciona orientación sobre cómo continuar desde allí, mejorando y
perfeccionando las prácticas de seguridad: “OWASP Top10 es un punto de inicio”.

OWASP Top10, es la base mínima de seguridad para cualquier software, y así lo estiman y lo
exigen grandes referentes de la industria, tales como Mastercard, Visa, bancos, compañías de
seguros, las FFAA y el gobierno de USA, la comunidad Europea y también en Chile se exige
como parte de los requisitos estándares para crear software en licitaciones de gobierno (ver
documento adjunto: “Guía Técnica. Lineamientos para Desarrollo de Software. DIC2018)
OWASP ASVS
Aplicabilidad en programación segura: Define un Checklist de Certificación

OWASP ASVS: Application Security Verification Standard (PDF bajable)

Es un estándar que documenta y organiza un


checklist de 179 verificaciones de seguridad, los
cuales son “Requisitos a cumplir”, para medir y
certificar el nivel de seguridad de una aplicación.

ASVS define 3 niveles de seguridad que una app


puede lograr, si cumple los requisitos del nivel.

Existe un nivel cero, para que cada organización


“sienta” que esta en un nivel definido, y desde allí
pueda llegar al nivel 1.
OWASP ASVS
Aplicabilidad en programación segura: Define un Checklist de Certificación
OWASP ASVS
Ejercicio: Usando ASVS, para el campo de contraseña. Enumere los requisitos
de seguridad que deben ser considerados, al momento de programarlo.

Dato/tip: Use sólo V2 y V3


Solución a vulnerabilidades frecuentes
Los dos proyectos de Owasp Top10 y ASVS, en forma separada, identifican y
crean una lista ordenada de vulnerabilidades conocidas que son frecuentes y
riesgosas.
En ambos casos se entrega un detalle técnico de cómo se incorporan al
software, cómo se descubren y cómo se resuelven las vulnerabilidades.

Adicionalmente se hace referencia detallada a los siguientes recursos:


• OWASP Guía para desarrollo seguro
https://owasp.org/www-pdf-archive/OWASP_Development_Guide_2.0.1_Spanish.pdf
• OWASP Guía para Manejo de Vulnerabilidades
https://owasp.org/www-project-vulnerability-management-guide
• OWASP Cheatsheets Book
https://owasp.org/www-project-cheat-sheets/
Solución a vulnerabilidades frecuentes
Ejercicio: Con el archivo PDF de OWASP Guía para desarrollo seguro,
complete el índice de temas que un “programador seguro” debería conocer y
dominar :
Página: 15 ~ INTRODUCCIÓN
Página: 17 ~ ¿QUE SON LAS APLICACIONES WEB?
Página: 25 ~ ARQUITECTURA Y DISEÑO DE SEGURIDAD
Página: 26 ~ MARCOS DE POLÍTICA
Página: 33
Página: 40
Página: 56
Página: 65
Página: 79
Página: 109
Página: 146
Página: 155
Solución a vulnerabilidades frecuentes
Ejercicio: Con el archivo PDF de OWASP Guía para desarrollo seguro (cont…)
Página: 172
Página: 185
Página: 198
Página: 206
Página: 219
Página: 227
Página: 235
Página: 238
Página: 251
Página: 257
Página: 262
Página: 265 ~ LICENCIA DE DOCUMENTACIÓN LIBRE DE GNU
Página: 273 ~ DIRECTIVAS SOBRE PHP
Página: 294 ~ CHEAT SHEETS
Industria de pagos electrónicos
“PCI Security Standards Council”
“Consejo de normas de seguridad PCI”

Foro mundial, implementado en 2006, por


las marcas:
• Visa
• MasterCard
• American Express
• Discover Financial Services
• JCB International.
Industria de pagos electrónicos

PCI-DSS Norma de Seguridad …para que sirve?

• PCI busca aumentar la seguridad de los


datos de los clientes de tarjetas.

• … y de las aplicaciones de comercio


electrónico que se usan para pagar
usando tarjetas.

• Es aplicable a todos los actores que


participan en alguna parte del ciclo de la
transacción electrónica
Norma PCI-DSS: Es un Checklist que considera
Norma PCI-DSS: Checklist Selfassesment
Las 238 preguntas de verificación, son una encuesta bastante directa y simple
que busca identificar “lo que hay” y “lo que falta” en cuanto a ciberseguridad de
Hardware y Software.
Como este curso es sobre “Programación Segura”, sólo haremos enfasis en el
cumplimiento número 6.5 Desarrolle y Mantenga Sistemas y Aplicaciones
seguras.

Ejercicio:
Reunase con 3 ó 4 compañeros y respondan la encuesta que se denomina
“SelfAssesment Checklist ” o Auto-encuesta de cumplimiento..
Sólo requiere responder “SI/NO” en el Excel que le será entregado y debe
justificar brevemente el porque de su respuesta.
Microsoft STRIDE: Amenazas de Seguridad
Microsoft recibe mucha
información acerca de los
tipos de ataques más
habituales y los agrupo en 6
tipos específicos.

El nombre del modelo se creo


usando las iniciales de los
diferentes ataques según su
escritura en ingles.

STRIDE
Microsoft STRIDE: Amenazas de Seguridad
STRIDE es un acrónimo que representa el espectro de amenazas de seguridad que pueden afectar a la aplicación. Las
seis categorías de amenazas detalladas a continuación permiten identificar los vectores de vulnerabilidades y posibles
ataques en una aplicación.

• Suplantación de identidad (Spoofing)


Suplantar quiere decir adoptar la personalidad de otra persona en un equipo. Un ejemplo de suplantación de identidad es
el acceso ilegal a la información de autenticación de otro usuario y el posterior uso de la misma, como el nombre de
usuario y la contraseña.
• Manipular datos (Tampering)
La manipulación de datos implica la modificación malintencionada de éstos. Algunos ejemplos son la modificación no
autorizada de datos persistentes, como los que se mantienen en una base de datos, o la modificación de datos durante
su transferencia electrónica entre equipos en Internet.
• Repudio (Repudiation)
Las amenazas de repudio son aquellas en las que los usuarios niegan la autoría de una acción sin que otras partes
puedan probar lo contrario. Por ejemplo, un usuario realiza una operación ilegal en un sistema sin que exista la
posibilidad de realizar un seguimiento de la misma.
Microsoft STRIDE: Amenazas de Seguridad
• Divulgación de información (Information Disclosure)
Las amenazas de divulgación de información suponen la revelación de información a individuos que no deben tener
acceso a la misma. Por ejemplo, la posibilidad de que los usuarios lean un archivo al que no se le ha proporcionado
acceso.

• Denegación de servicio (Denial of service )


Los ataques por denegación de servicio (DoS) ocasionan la pérdida de servicio a los usuarios válidos, por ejemplo,
deshabilitando temporalmente un servidor Web.

• Elevación de privilegios (Elevation of privilege)


En este tipo de amenaza, un usuario sin privilegios obtiene acceso con privilegios y, por tanto, la capacidad de poner en
peligro o destruir todo el sistema. Un tipo de amenaza de elevación de privilegios es la situación en la que un agresor
burla todas las defensas del sistema con éxito y se integra en la parte del sistema de confianza.
Modelo de seguridad SDL
¿Qué es el modelado de amenazas?
• El modelado de amenazas es un tipo de análisis de seguridad realizado sobre una
aplicación, identificando sus posibles escenarios de riesgo y/o vulnerables. Es
una parte crítica de la fase de diseño, que reduce los costos finales del software,
si se realiza de manera correcta y oportuna en el SDLC (antes del desarrollo).

Los objetivos del modelado de amenazas y el diseño seguro


• Identificar dónde es más vulnerable una aplicación
• Determinar qué amenazas requieren mitigación
• Reducir el riesgo a un nivel aceptable, mediante la mitigación
Modelo de seguridad SDL
Definir escenarios
• Identifique situaciones comunes y
realistas como escenarios de uso.
• Acote los alcances del modelado,
no sea excesivo.

Crear un DFD
• Notación y artefactos para modelar
un DFD
Modelamiento de amenazas
Ejercicio

Para el diagrama de contexto de la imagen.

Crear DFD de nivel 0


Crear DFD de Nivel 1 (si es necesario)
Crear DFD de Nivel 2 (si es necesario)
Continúar hasta que no haya más multiprocesos
Generalmente el nivel 2 es "suficiente”
Modelamiento de amenazas
Ejercicio

Para el diagrama de contexto de la imagen.

Crear DFD de nivel 0


Crear DFD de Nivel 1 (si es necesario)
Crear DFD de Nivel 2 (si es necesario)
Continúar hasta que no haya más multiprocesos
Generalmente el nivel 2 es "suficiente”
Modelamiento de amenazas
Ejercicio
Para el diagrama de contexto de la imagen. Describa en
un párrafo de texto, lo que hace el sistema.

Luego de validar un criterio único de lo que “hace el


sistema”:
1. Crear DFD de nivel 0
2. Crear DFD de Nivel 1 (si es necesario)
3. Crear DFD de Nivel 2 (si es necesario)
4. Continúar hasta que no haya más multiprocesos
5. Generalmente el nivel 2 es "suficiente”
Vulnerabilidades y exposiciones comunes CVE
...
Sistema de puntaje de vulnerabilidades comunes CVSS

...
OWASP A9:2017:
Uso de componentes con vulnerabilidades conocidas
...
Plan de parchado de framework de desarrollo y de entornos seguros

...
Comunicaciones seguras y encriptación:
WS, SOAP, XML
...
CAPTCHAS y autenticación robusta centralizada
...
MUCHAS GRACIAS

También podría gustarte