Prog Segura Intro Desarrollo Seguro-1 PDF

Title Prog Segura Intro Desarrollo Seguro-1
Course Programación Segura
Institution Universidad Pública de Navarra
Pages 29
File Size 1.3 MB
File Type PDF
Total Downloads 103
Total Views 127

Summary

profesor MAZ...


Description

Introducción Programación Segura

Seguridad informática (definición) La seguridad informática es la disciplina que se ocupa de diseñar las normas, procedimientos, métodos y técnicas destinados a conseguir un sistema de información seguro y confiable. Information security is the practice of defending information from unauthorized access, use, disclosure, disruption, modification, perusal, inspection, recording or destruction. (wikipedia_en)

Programación segura (definición) Es la arquitectura, diseño y desarrollo de programas que siguen unos principios básicos con el objetivo de reducir la existencia de problemas de seguridad en su código y garantizar los principios básicos de seguridad. Defensive programming is a form of defensive design intended to ensure the continuing function of a piece of software in spite of unforeseeable usage of said software.(Wikipedia_en)

Seguridad Software “Vieja Escuela” n

n

n n

n

Reactiva ¨ Proteger al software vs. construir software seguro (Software Security vs. Secure Software). Defender el perimetro ¨ Usar un cortafuegos, mantener el peligro fuera Sobrevalorar criptográfia Revisar producto cuando ya esta hecho ¨ pruebas penetración y parches La seguridad era responsabilidad del dept. de sistemas, no de desarrollo

Seguridad Software “Moderna” n

Centrada en el software ¨ La

mayor parte de problemas de seguridad se deben a fallos y errores en el software ¨ Hay que construir software seguro n

Proactiva: construir pensando en seguridad ¨ Analisis

de seguridad ¨ Diseño seguro ¨ Codificación seguro ¨ Pruebas seguridad n

No hay nada 100% seguro ¨ Compromisos ¨ Decisiones

de negocio

Modelo Desarrollo Seguro Análisis Seguridad

Diseño Seguro

2. Principios de diseño seguros

Desarrollo Seguro

Pruebas Seguridad

1. Vulnerabilidades CWE y mitigaciones

Modelo Desarrollo Seguro Análisis Seguridad

3. Análisis de Riesgos (Modelado Amenazas)

Diseño Seguro

Desarrollo Seguro

Pruebas Seguridad

4. Análisis de Código / Pruebas de Riesgos

Planificación n

Programación Segura (que necesita

saber un informático-programador) ¨ Vulnerabilidades

CWE y mitigaciones ¨ Principios de diseño seguros ¨ Análisis de Código / Pruebas de Riesgos (Tema 2: Desarrollo de software seguro) n

Programación Segura (que tiene que

saber un informático-experto) ¨ Análisis

de Riesgos (Modelado Amenazas) (Tema 3: Integración de la seguridad en el desarrollo de software) (Tema 4: Normas y certificaciones)

Amenazas y Ataques

Comparación: Seguridad mundo real – seguridad informática Una joya en una casa es un posesión y un ladrón es un atacante. Una ventana es una caracteristica de la casa, y una ventana abierta representa una vulnerabilidad. El ladrón puede aprovechar la ventana abierta para acceder en la casa y robar las joyas. En otras palabras, el atacante utilizar la vulnerabilidad para conseguir acceder a la posesión. La contra-medida apropiada en este caso es cerrar la ventana y echar la llave.

Ejercicio seguridad (I) Considera una joyería, lista los posibles:

n

Bienes

n

Atacantes

n

Vulnerabilidades

Amenazas informáticas STRIDE (clasificación definida por Microsoft): Spoofing. (suplantación identidad) “conseguir identidad falsa y usarla” n Tampering. (falsificación) “modificación no autorizada de partes del sistema” n Repudiation. (repudiación) “un usuario oculta que ha realizado una acción” n Information disclosure (revelación información) “la exposición no deseada de información privada” n Denial of service. (Denegación de servicio) “hacer que un sistema deje de estar disponible” n Elevation of privilege. (Aumento de privilegios) “usuario con privilegios limitados asume la identidad de un usuario con privilegios” n

STRIDE: Spoofing. (suplantación identidad) Sucede cuando se intenta acceder a un sistema usando una identidad falsa. n P.ej. esto se puede lograr usando credenciales de usuarios robadas o con un identifidor falso. n Después de que el atacante acceda al sistema como un usuario legitimo, normalmente intentará elevar sus privilegios.

STRIDE: Tampering. (modificación no autorizada) Es la modificación no autorizada de datos, código,…. n P.ej. cuando se transmiten entre dos ordenadores a través de una red.

STRIDE: Repudiation (Repudiación) Es la habilidad de un usuario (legitimo o no) para negar que ha realizado una acción o transacción especifico. n P.ej. Borrar los logs de un sistema después de entrar en él. n Sin sistemas de auditorias adecuadas, los ataques de repudiación son dificiles de demostrar.

STRIDE: Information disclosure. (revelación información) Es la exposición no deseada de datos privados. n P.ej., un usuario que ve los contenidos de una tabla o fichero que no esta autorizado a abrir, o que monitoriza los datos que pasan por una red en texto plano.

STRIDE: Denial of service (Denegación de servicio) Es el proceso de hacer que un sistema o aplicación deje de estar disponible. n P.ej. un ataque de denegación de servicio puede suceder “bombardeando” un servidor con peticiones que consuman todos los recursos disponibles.

STRIDE: Elevation of privilege. (Aumento de privilegios) Ocurre cuando un usuario con privilegios limitados asume la identidad de un usuario con privilegios y puede acceder a aplicaciones privilegiadas. n P.ej. un atacante con privilegios limitados aumentaría sus privilegios cambiando alguna configuración (a la que tampoco tendria que tener acceso)

Ejercicio seguridad (II) Considera una joyería: Para cada amenaza STRIDE, pon un ejemplo: n n n n n n

S T R I D E

Amenazas informáticas STRIDE (clasificación definida por Microsoft): Spoofing. (suplantación identidad) “conseguir identidad falsa y usarla” n Tampering. (falsificación) “modificación no autorizada de partes del sistema” n Repudiation. (repudiación) “un usuario oculta que ha realizado una acción” n Information disclosure (revelación información) “la exposición no deseada de información privada” n Denial of service. (Denegación de servicio) “hacer que un sistema deje de estar disponible” n Elevation of privilege. (Aumento de privilegios) “usuario con privilegios limitados asume la identidad de un usuario con privilegios” n

Amenazas STRIDE caso joyeria Spoofing Repudiation Elevation of Privilege Atacante

Tampering Information Disclosure Denial of Service Bienes

Amenaza y Ataque (def) Amenaza (Threat) La intención de realizar un daño, un ataque. n (def) Ataque (Exploit) El aprovechamiento de una vulnerabilidad para violar una política de seguridad (en inglés puede referirse al hecho o a la herramienta) n

BBDD de Ataques

https://www.exploit-db.com/

BBDD de Ataques Contiene “proof of concept code”, código que al ejecutar produce el ataque. n n n n

Remote Exploits:ataque remotos, y ataques en código cliente. Web Application Exploits: ataques a aplicaciones Web. Local & Privilege Escalation Exploits: ataques locales o de escalado de privilegios. PoC & Denial of Service Exploits: ataques que resultan en denegación de servicio o fallo de aplicación.

Ejemplos de Ataques en Exploit-DB Remote Exploits: Arbitrary Remote Command Execution https://www.exploitdb.com/exploits/46697 Remote Buffer Overflow https://www.exploit-db.com/exploits/38003 n Web Application Exploits: Remote Code Execution https://www.exploit-db.com/exploits/48887 Unrestricted Arbitrary File Upload https://www.exploit-db.com/exploits/35730 n Local & Privilege Escalation Exploits: Local Privilege Escalation https://www.exploit-db.com/exploits/48836 n

https://www.matteomalvica.com/blog/2020/09/24/weaponizing-cve-2020-17382/

PoC & Denial of Service Exploits: 'PASV' Denial of Service https://www.exploit-db.com/exploits/47987 n

Google Hacking Database Contiene terminos de busqueda en Google, que encuentran información sensible.

Patrones de Ataque n

Son descripciones de metodos habituales para atacar a sistemas software. Se derivan de los patrones de diseño aplicados en un contexto destructiva más que constructivo y se crean de un analisis en profundidad de ejemplos de ataques en el mundo real.

Attack Patterns http://capec.mitre.org (no esta muy actualizada) ¨ Más

de 400 patrones de ataques (algunos muy similares).

Ejemplo de Patrón de Ataque n n n

Attack goals: Command or code execution Required conditions: Weak input validation, Code from the attacker has sufficient privileges on the server. Attack technique: ¨ ¨ ¨

n

1. Identify program on target system with an input validation vulnerability. 2. Create code to inject and run using the security context of the target application. 3. Construct input value to insert code into the address space of the target application and force a stack corruption that causes application execution to jump to the injected code.

Attack results: Code from the attacker runs and performs malicious action....


Similar Free PDFs