seguridad web
DESCRIPTION
Taller de Seguridad para Aplicaciones Web (concienciación)TRANSCRIPT
![Page 1: Seguridad web](https://reader033.vdocuments.co/reader033/viewer/2022052910/559c827d1a28ab7e778b4709/html5/thumbnails/1.jpg)
Seguridad Web
Octubre, 2014@camposer - Madrid
![Page 2: Seguridad web](https://reader033.vdocuments.co/reader033/viewer/2022052910/559c827d1a28ab7e778b4709/html5/thumbnails/2.jpg)
Seguridad...
● “Dicho de un mecanismo: Que asegura algún buen funcionamiento, precaviendo que este falle, se frustre o se violente.” Real Academia Española
● “Si usted piensa que la tecnología puede resolver sus problemas de seguridad, entonces usted no entiende ni los problemas ni la tecnología” Bruce Schneier
● “La seguridad es una cadena y es tan segura como su eslabón más débil” Bruce Schneier
● “La seguridad es un proceso, no un producto” Bruce Schneier
![Page 3: Seguridad web](https://reader033.vdocuments.co/reader033/viewer/2022052910/559c827d1a28ab7e778b4709/html5/thumbnails/3.jpg)
Conceptos básicos
A continuación se presentan los conceptos básicos relacionados con la seguridad de sistemas:● Agente de amenaza (atacante). ● Vulnerabilidad.● Ataque.● Contramedida.
![Page 4: Seguridad web](https://reader033.vdocuments.co/reader033/viewer/2022052910/559c827d1a28ab7e778b4709/html5/thumbnails/4.jpg)
Aplicaciones Web
Es una aplicación que se accede a través de un Navegador Web sobre una red (Ej. Internet).
Los Navegadores Web interpretan etiquetas HTML y lenguajes de script (Ej. Javascript) permitiendo a sus usuarios visualizar documentos de texto, posiblemente con recursos multimedia incrustados.
![Page 5: Seguridad web](https://reader033.vdocuments.co/reader033/viewer/2022052910/559c827d1a28ab7e778b4709/html5/thumbnails/5.jpg)
Características de las Aplicaciones Web
Las Aplicaciones Web son alojadas en Servidores Web que son accedidos por Navegadores Web a través de peticiones HTTP.
HTTP es un protocolo de ráfaga que no conserva el estado conversacional.
Servidor Web
AplicaciónWeb
Cliente
Petición
Respuesta
Red
![Page 6: Seguridad web](https://reader033.vdocuments.co/reader033/viewer/2022052910/559c827d1a28ab7e778b4709/html5/thumbnails/6.jpg)
Riesgos de Seguridad en Aplicaciones - Top 10 OWASP*
1.Inyección
2.Pérdida de autenticación y gestión de sesiones
3.Secuencia de comandos en sitios cruzados (XSS)
4.Referencia directa insegura a objetos
5.Configuración de seguridad incorrecta
6.Exposición de datos sensibles
7.Ausencia de control de acceso a funciones
8.Falsificación de peticiones en sitios cruzados (CSRF)
9.Utilización de componentes con vulnerabilidades conocidas
10.Redirecciones y reenvíos no validados
* OWASP Top 10 2013
![Page 7: Seguridad web](https://reader033.vdocuments.co/reader033/viewer/2022052910/559c827d1a28ab7e778b4709/html5/thumbnails/7.jpg)
1. Inyección
La inyección de faltas permite a un atacante ejecutar sentencias SQL, LDAP, entre otras, del lado del servidor engañando a sus intérpretes (motores). Por ejemplo: a través de la inyección de sentencias SQL, utilizando campos de un formulario sin validaciones, se podría modificar información contenida en una Base de Datos.
![Page 8: Seguridad web](https://reader033.vdocuments.co/reader033/viewer/2022052910/559c827d1a28ab7e778b4709/html5/thumbnails/8.jpg)
2. Pérdida de autenticación y gestión de sesiones
Las funciones de la aplicación relacionadas a autenticación y gestión de sesiones son frecuentemente implementadas de forma incorrecta, permitiendo a los atacantes comprometer contraseñas, claves, token de sesiones, o explotar otras fallas de implementación para asumir la identidad de otros usuarios.
![Page 9: Seguridad web](https://reader033.vdocuments.co/reader033/viewer/2022052910/559c827d1a28ab7e778b4709/html5/thumbnails/9.jpg)
3. Cross Site Scripting (XSS)
Las fallas XSS ocurren cada vez que una aplicación toma datos no confiables y los envía al navegador web sin una validación y codificación apropiada. XSS permite a los atacantes ejecutar secuencia de comandos en el navegador de la victima los cuales pueden secuestrar las sesiones de usuario, destruir sitios web, o dirigir al usuario hacia un sitio malicioso.
![Page 10: Seguridad web](https://reader033.vdocuments.co/reader033/viewer/2022052910/559c827d1a28ab7e778b4709/html5/thumbnails/10.jpg)
4. Referencia directa insegura a objetos
Una referencia directa a objetos ocurre cuando un desarrollador expone una referencia a un objeto de implementación interno, tal como un fichero, directorio, o base de datos. Sin un chequeo de control de acceso u otra protección, los atacantes pueden manipular estas referencias para acceder datos no autorizados.
![Page 11: Seguridad web](https://reader033.vdocuments.co/reader033/viewer/2022052910/559c827d1a28ab7e778b4709/html5/thumbnails/11.jpg)
5. Configuración de seguridad incorrecta
Una buena seguridad requiere tener definida e implementada una configuración segura para la aplicación, marcos de trabajo, servidor de aplicación, servidor web, base de datos, y plataforma. Todas estas configuraciones deben ser definidas, implementadas, y mantenidas ya que por lo general no son seguras por defecto. Esto incluye mantener todo el software actualizado, incluidas las librerías de código utilizadas por la aplicación.
![Page 12: Seguridad web](https://reader033.vdocuments.co/reader033/viewer/2022052910/559c827d1a28ab7e778b4709/html5/thumbnails/12.jpg)
6. Exposición de datos sensibles
Muchas aplicaciones web no protegen adecuadamente datos sensibles tales como números de tarjetas de crédito o credenciales de autenticación. Los atacantes pueden robar o modificar tales datos para llevar a cabo fraudes, robos de identidad u otros delitos. Los datos sensibles requieren de métodos de protección adicionales tales como el cifrado de datos, así como también de precauciones especiales en un intercambio de datos con el navegador.
![Page 13: Seguridad web](https://reader033.vdocuments.co/reader033/viewer/2022052910/559c827d1a28ab7e778b4709/html5/thumbnails/13.jpg)
7. Ausencia de control de acceso a funciones
La mayoría de aplicaciones web verifican los derechos de acceso a nivel de función antes de hacer visible en la misma interfaz de usuario. A pesar de esto, las aplicaciones necesitan verificar el control de acceso en el servidor cuando se accede a cada función. Si las solicitudes de acceso no se verifican, los atacantes podrán realizar peticiones sin la autorización apropiada.
![Page 14: Seguridad web](https://reader033.vdocuments.co/reader033/viewer/2022052910/559c827d1a28ab7e778b4709/html5/thumbnails/14.jpg)
8. Cross Site Request Forgery (CSRF)
Un ataque CSRF podría obligar a una víctima a realizar peticiones a aplicaciones Web donde previamente ha iniciado sesión. Por ejemplo: al mantener varias sesiones abiertas con diferentes sitios, se podría acceder a un sitio malicioso, que incluya elementos dentro de sus páginas, que realicen peticiones a otros sitios donde el usuario mantiene una sesión abierta.
![Page 15: Seguridad web](https://reader033.vdocuments.co/reader033/viewer/2022052910/559c827d1a28ab7e778b4709/html5/thumbnails/15.jpg)
9. Utilización de componentes con vulnerabilidades conocidas
Algunos componentes tales como las librerías, los frameworks y otros módulos de software casi siempre funcionan con todos los privilegios. Si se ataca un componente vulnerable esto podría facilitar la intrusión en el servidor o una perdida seria de datos. Las aplicaciones que utilicen componentes con vulnerabilidades conocidas debilitan las defensas de la aplicación y permiten ampliar el rango de posibles ataques e impactos.
![Page 16: Seguridad web](https://reader033.vdocuments.co/reader033/viewer/2022052910/559c827d1a28ab7e778b4709/html5/thumbnails/16.jpg)
10. Redirecciones y reenvíos no validados
Las aplicaciones web frecuentemente redirigen y reenvían a los usuarios hacia otras páginas o sitios web, y utilizan datos no confiables para determinar la página de destino. Sin una validación apropiada, los atacantes pueden redirigir a las víctimas hacia sitios de phishing o malware, o utilizar reenvíos para acceder páginas no autorizadas.
![Page 17: Seguridad web](https://reader033.vdocuments.co/reader033/viewer/2022052910/559c827d1a28ab7e778b4709/html5/thumbnails/17.jpg)
Detección de vulnerabilidades
Las vulnerabilidades de una Aplicación Web pueden ser detectadas utilizando los siguientes métodos:
1.Escaneo de vulnerabilidades.
2.Revisión de código.
3.Pruebas de penetración.
4.Análisis estático.
![Page 18: Seguridad web](https://reader033.vdocuments.co/reader033/viewer/2022052910/559c827d1a28ab7e778b4709/html5/thumbnails/18.jpg)
1. Escaneo de vulnerabilidades
A continuación se presentan algunos enlaces donde podrá conseguir herramientas para el escaneo de vulnerabilidades:● Los 10 mejores Escaners de Vulnerabilidades Web .● Centro de descarga de OWASP (Open Web
Application Security Project).
Se sugiere la descarga de Nikto2.
![Page 19: Seguridad web](https://reader033.vdocuments.co/reader033/viewer/2022052910/559c827d1a28ab7e778b4709/html5/thumbnails/19.jpg)
2. Revisión de código
A continuación se presentan algunos enlaces donde podrá conseguir herramientas para la revisión de código:● Guía para la revisión de código de OWASP.● CodeCrawler. Herramienta de revisión de
código automática.
![Page 20: Seguridad web](https://reader033.vdocuments.co/reader033/viewer/2022052910/559c827d1a28ab7e778b4709/html5/thumbnails/20.jpg)
3. Pruebas de penetración
Un Penetration Testing o Test de Penetración, es un procedimiento metodológico y sistemático en el que se simula un ataque real a una red o sistema, con el fin de descubrir y reparar sus problemas de seguridad, a continuación veremos la documentación mas recomendada para aprender a realizar correctamente un test de penetración.
* ¿Cómo se realiza un Pentest?
![Page 21: Seguridad web](https://reader033.vdocuments.co/reader033/viewer/2022052910/559c827d1a28ab7e778b4709/html5/thumbnails/21.jpg)
4. Análisis estático
Ver todas las técnicas de verificación:● Pair programming● Code review● Peer review● Expert review● Checklists
![Page 22: Seguridad web](https://reader033.vdocuments.co/reader033/viewer/2022052910/559c827d1a28ab7e778b4709/html5/thumbnails/22.jpg)
Contramedidas
Las contramedidas son acciones a ejecutar tras la detección de alguna vulnerabilidad. Luego, existen algunos principios importantes a considerar en todo momento:● Aplicar defensa profunda (en varias capas).● Utilizar un modelo de seguridad positiva. ● Manejar de forma adecuada los errores.● Correr aplicaciones con permisería restringida.● Evitar la seguridad a través de la oscuridad.● Mantener la seguridad simple.● Detectar intrusiones.● No confiar en la infraestructura.● No confiar en los servicios.● Establecer seguridad por omisión.
![Page 23: Seguridad web](https://reader033.vdocuments.co/reader033/viewer/2022052910/559c827d1a28ab7e778b4709/html5/thumbnails/23.jpg)
Contramedidas inmediatas
Hay algunas contramedidas que puede implementar de forma inmediata para asegurar sus aplicaciones:● Documentar y probar todos sus Sistemas.
¿Integración Continua?● Utilizar entornos de desarrollo y de trabajo
estándares (Ej. Symfony, Spring, Rails). ● Utilizar firewalls para aplicaciones Web (Ej.
ModSecurity2).
![Page 24: Seguridad web](https://reader033.vdocuments.co/reader033/viewer/2022052910/559c827d1a28ab7e778b4709/html5/thumbnails/24.jpg)
¡Muchas gracias por su atención!