2. 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●
3. Conceptos básicos
Acontinuación se presentan los conceptos
básicos relacionados con la seguridad
sistemas:
de
Agente de amenaza (atacante).
Vulnerabilidad.
Ataque.
Contramedida.
●
●
●
●
4. Aplicaciones Web
Es una aplicación que se accedea través de
Navegador Web sobre una red (Ej. Internet).
un
Los Navegadores Web interpretan etiquetas
HTML y lenguajes de script (Ej. Javascript)
permitiendo a sus usuariosvisualizar documentos de
texto, posiblemente con recursos multimedia
incrustados.
5. 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
estado conversacional.
que no conserva el
Petición Aplicación
Web
Respuesta
Servidor WebCliente
Red
6. Riesgos de Seguridad en
Aplicaciones
1.Inyección
- Top 10 OWASP*
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ónde 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
10R. edirecciones y reenvíos no validados
* OWASP Top 10 2013
7. 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.
8. 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
comprometercontraseñas, claves, token
de
de
sesiones, o explotar otras fallas
implementación
otros usuarios.
para asumir la identidad de
9. 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.
10. 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
de
base de datos.
Sin un chequeo de control acceso u otra
protección, los atacantes pueden manipular
estas referencias para acceder datos no
autorizados.
11. 5. Configuración de seguridad
incorrecta
Una buena seguridad requiere tener definida e
laimplementada una configuración segura para
aplicación, marcos
aplicación, servidor
de trabajo, servidor de
web,
estas
base de datos, y
plataforma. Todas configuraciones deben
ser definidas, implementadas, y mantenidas ya
que por lo general no son seguras por defecto.
Esto incluye
actualizado,
mantener
incluidas
todo el software
las librerías de código
utilizadas por la aplicación.
12. 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.
13. 7. Ausencia de control de acceso
a funciones
La mayoría
derechos de
de aplicaciones web verifican los
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
Siservidor cuando se accede a cada función.
las solicitudes de acceso no se verifican, los
atacantes podrán realizar peticiones sin la
autorización apropiada.
14. 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.
15. 9. Utilización de componentes
con
Algunos
vulnerabilidades conocidas
componentes tales como las librerías,
los frameworks y otros módulos de software casi
Sisiempre funcionan con todos los privilegios.
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
permiten
impactos.
las defensas de la aplicación y
ataquesampliar el rango de posibles e
16. 10. Redirecciones y reenvíos no
validados
Las aplicaciones web frecuentemente redirigen
páginasy reenvían a los usuarios hacia otras
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.
17. Detección de vulnerabilidades
Las vulnerabilidades de una Aplicación Web
pueden ser
métodos:
1.Escaneo
2.Revisión
detectadas utilizando los siguientes
de vulnerabilidades.
de código.
3.Pruebas de penetración.
4.Análisis estático.
18. 1. Escaneo de vulnerabilidades
Acontinuación se presentan algunosenlaces donde
podrá conseguir herramientas para el escaneo de
vulnerabilidades:
Los 10 mejores Escaners de Vulnerabilidades
Centro de descarga de OWASP (Open Web
Application Security Project).
Web .●
●
Se sugiere la descarga de Nikto2.
19. 2. Revisión de código
Acontinuación se presentanalgunos
donde podrá conseguir herramientas
revisión de código:
enlaces
para la
Guía para la revisión de código de OWASP.●
CodeCrawler. Herramienta de revisión de
código automática.
●
20. 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 simulaun 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ómose realiza un Pentest?
21. 4. Análisis estático
Ver todas las técnicas de verificación:
Pair programming
Code review
Peer review
Expert review
Checklists
●
●
●
●
●
22. Contramedidas
Las contramedidas son accionesa 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ésde la oscuridad.
Mantener la seguridad simple.
Detectar intrusiones.
No confiar en la infraestructura.
No confiar en los servicios.
Establecer seguridad por omisión.
●
●
●
●
●
●
●
●
●
●
23. Contramedidas inmediatas
Hay algunas contramedidas que puede implementar
de forma inmediata para asegurar sus aplicaciones:
Sistemas.Documentar y probar todos sus
¿Integración Continua?
Utilizar entornos de desarrollo y
●
de trabajo●
estándares (Ej. Symfony, Spring, Rails).
Utilizar firewalls para aplicaciones Web (Ej.
ModSecurity2).
●