Your SlideShare is downloading. ×
0
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Curso basicoseguridadweb slideshare3

680

Published on

Curso básico seguridad web 3: …

Curso básico seguridad web 3:
Vulnerabilidades web

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
680
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
45
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. SEGURIDAD Y APLICACIONES WEB Licencia Creative Commons Esta obra esta distribuida bajo una licencia de: <ul><li>Reconocimiento (Attribution): En cualquier explotación de la obra autorizada por la licencia hará falta reconocer la autoría.
  • 2. No Comercial (Non commercial): La explotación de la obra queda limitada a usos no comerciales.
  • 3. Compartir Igual (Share alike): La explotación autorizada incluye la creación de obras derivadas siempre que mantengan la misma licencia al ser divulgadas. </li></ul>
  • 4. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Vulnerabilidades WEB
  • 5. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web
  • 6. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web SQL Injection
  • 7. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Vamos a explicar un poco más en profundidad algunas de las vulnerabilidades web más comunes y como prevenirlas <ul><li>Sql Injection
  • 8. XSS </li></ul><ul><ul><li>XSRF </li></ul></ul><ul><li>Abuso de funcionalidad
  • 9. Fuerza bruta </li></ul>
  • 10. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web SQL INJECTION Es un método de infiltración de código que se vale de una vulnerabilidad informática presente en una aplicación en el nivel de validación de las entradas para ejecutar querys contra la base de datos de la aplicación.
  • 11. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web <ul><li>Ejemplo código vulnerable (Username y password se recogen de un formulario en pantalla) </li></ul>conn = pool.getConnection( ); String sql = &amp;quot;select * from user where username=&apos;&amp;quot; + username +&amp;quot;&apos; and password=&apos;&amp;quot; + password + &amp;quot;&apos;&amp;quot;; stmt = conn.createStatement(); rs = stmt.executeQuery(sql); if (rs.next()) { loggedIn = true; out.println(&amp;quot;Successfully logged in&amp;quot;); } else { out.println(&amp;quot;Username and/or password not recognized&amp;quot;); }
  • 12. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web <ul><li>Ataque: </li></ul>Username == &apos; OR &apos;1&apos;=&apos;1 Password vacio La sentencia SQL que se ejecuta en la BD quedaría: select * from user where username=&apos;&apos; OR &apos;1&apos;=&apos;1&apos; and password=&apos; &apos; Esta sentencia devolverá todos los datos de la tabla y la aplicación nos permitirá ingresar en el sistema.
  • 13. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Nos podemos encontrar varios escenarios en los cuales explotar esta vulnerabilidad: <ul><li>La aplicación presenta mensajes de error de la BD
  • 14. La aplicación presenta información en pantalla devuelta por la query
  • 15. La aplicación presenta una pantalla de error genérica cuando la query falla </li></ul>
  • 16. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web <ul><li>La aplicación presenta mensajes de error de la BD </li></ul>
  • 17. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web <ul><li>La aplicación presenta información en pantalla devuelta por la query </li></ul>
  • 18. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web <ul><li>La aplicación presenta una pantalla de error genérica cuando la query falla </li></ul>
  • 19. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web ¿Porque son importantes estos tres escenarios? Nivel de información que nos dan y facilidad a la hora de extraerla <ul><li>Errores en pantalla: Versiones de Bd y en que estamos fallando al componer la query
  • 20. Resultados de la query: Nos permiten obtener de vuelta los resultados de la query
  • 21. Pantalla de error genérica: Nos fuerza a realizar Blind SQL Injection (Inyección SQL ciega) </li></ul>
  • 22. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web ¿Que podemos conseguir al explotar una vulnerabilidad de SQLi en una aplicación? <ul><li>Mínimo: </li></ul><ul><ul><li>Consultar, modificar o insertar los datos en las tabla sobre la que se realiza la query </li></ul></ul><ul><li>Si añadimos permisos mal configurados </li></ul><ul><ul><li>Consulta, modificación e inserción en todas las tablas a las que pueda acceder el usuario de BD (usuarios del sistema incluidas)
  • 23. Ejecución de exploits sobre la BD que nos permita realizar una escalada de privilegios </li></ul></ul>
  • 24. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web ¿Como evitar los ataques de SQLi? <ul><li>Validar TODAS las entradas que provengan del usuario.
  • 25. En java utilizar la clase PreparedStatement.
  • 26. El usuario de BD configurado en el servidor debe tener los mínimos privilegios posibles.
  • 27. Controlar todos los errores que se puedan devolver presentando en todos los casos una pantalla de error genérica que no de ninguna información sobre el sistema y/o error. </li></ul>
  • 28. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web <ul><li>Validar TODAS las entradas. </li></ul><ul><ul><li>La validación se debe realizar en el servidor
  • 29. Javascript NO SIRVE para securizar la entrada
  • 30. Da igual que los datos vayan por POST o por GET
  • 31. Se pueden inyectar TODOS los datos que viajan del navegador al servidor. </li></ul></ul>
  • 32. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web JavaScript NO APORTA NINGUNA PROTECCIÓN
  • 33. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web <ul><li>Los métodos recomendados para la prevención de sql injectión para cualquier lenguaje de programación son: </li></ul><ul><ul><li>Uso de queries parametrizadas o Use de procedimientos almacenados
  • 34. Escapar la entrada del usuario
  • 35. Usuario de BD de la aplicación con mínimos privilegios
  • 36. Lista blanca de validación </li><ul><li>Los datos solo pueden ser del tipo esperado (string, date, ...) </li></ul></ul></ul>
  • 37. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Se deben aplicar todos estos métodos Estas políticas se implementarán SIEMPRE del lado servidor
  • 38. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web <ul><li>En general para todos los lenguajes existen recomendaciones sobre como protegernos frente a Sqli </li></ul><ul><ul><li>En java: </li><ul><li>Usar la clase PreparedStatement
  • 39. Hibernate </li><ul><li>CreateQuery con bind parameters </li></ul></ul><li>En PHP </li><ul><li>db-&gt;prepare
  • 40. sql-&gt;bind_param
  • 41. mysql_real_escape_string para mysql </li></ul></ul></ul>
  • 42. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web <ul><li>Ejemplo query con java: </li></ul>String custname = request.getParameter(&amp;quot;customerName&amp;quot;); // This should REALLY be validated too // perform input validation to detect attacks String query = &amp;quot;SELECT account_balance FROM user_data WHERE user_name = ? &amp;quot;; PreparedStatement pstmt = connection.prepareStatement( query ); pstmt.setString( 1, custname); ResultSet results = pstmt.executeQuery( );
  • 43. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Algunas referencias en la web: http://es.wikipedia.org/wiki/Inyección_SQL https://www.owasp.org/index.php/Preventing_SQL_Injection_in_Java https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet https://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API
  • 44. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web ¡No debemos olvidar que el simple hecho de seguir estas recomendaciones no aporta una seguridad absoluta! Se debe codificar el acceso a base de datos con la seguridad en mente.
  • 45. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web XSS Cross Site Scripting
  • 46. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Cross Site Scripting (XSS) Vulnerabilidad que permite inyectar scripts o contenido en páginas web. <ul><li>Tipos: </li></ul><ul><ul><li>No persistente
  • 47. Persistente </li></ul></ul>
  • 48. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web <ul><li>Se da cuando se utiliza la entrada del usuario para componer la respuesta html que devolverá el servidor. </li></ul><ul><ul><li>Si la entrada del usuario se guarda en BD y se utiliza posteriormente para componer la salida html hacia el cliente a esta vulnerabilidad se le denomina XSS persistente
  • 49. Si no es así la denominará XSS no persistente </li></ul></ul>
  • 50. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web <ul><li>XSS No Persistente </li></ul><ul><ul><li>El ejemplo más popular actualmente el de la página web de la presidencia europea y mr. Bean
  • 51. Http ://www.eu2010.es/en/resultadoBusqueda.html?query= %3Cscript%3Edocument.write%28%27%3Cimg%20src%3D%22http%3A%2F%2Fblog.tmcnet.com%2Fblog%2Ftom-keating%2Fimages%2Fmr-bean.jpg%22%20%2F%3E%27%29%3C%2Fscript%3E&amp; index=buscadorGeneral_en
  • 52. &lt;script&gt;document.write(&apos;&lt;img src=”http /../mr-bean.jpg”/&gt;&apos;)&lt;/script&gt; </li></ul></ul>
  • 53. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web <ul><li>XSS Persistente </li></ul><ul><ul><li>Más peligroso que el anterior, sobre todo porque es más difícilmente detectable (no se verá en la url) y es más probable que el número de afectados sea mayor.
  • 54. Sucede cuando la inyección realizada por el atacante es guardada en el servidor y usada para componer la página atacada cada vez que es solicitada por algún usuario. </li></ul></ul>
  • 55. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web ¿Que podemos conseguir al explotar una vulnerabilidad de XSS? <ul><li>Este tipo de vulnerabilidad afecta principalmente al usuario de la aplicación web
  • 56. Se pueden robar credenciales de los servicios en los que este acreditado el usuario en el momento de ejecución del script (cookies de sesión , …)
  • 57. También se pueden ejecutar exploits que aprovechen vulnerabilidades del navegador pudiendo llegar a tener el control sobre el equipo de la víctima. </li></ul>
  • 58. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web ¿Como evitar los ataques de XSS? <ul><li>Validar TODAS las entradas que provengan del usuario.
  • 59. Validar TODAS las salidas de datos de la aplicación que provengan de datos introducidos anteriormente por un usuario </li></ul>
  • 60. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web <ul><li>Validar TODAS las entradas. </li></ul><ul><ul><li>La validación se debe realizar en el servidor
  • 61. Javascript NO SIRVE para securizar la entrada
  • 62. Da igual que los datos vayan por POST o por GET
  • 63. Se pueden inyectar TODOS los datos que viajan del navegador al servidor. </li></ul></ul>
  • 64. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Algunas recomendaciones <ul><ul><li>Lista blanca </li><ul><li>Cada tipo de dato debe contener datos del tipo que deben: (Alfanumericos, Alfabeticos, Fecha, Numero de documento, nombre de archivo,...) </li></ul><li>Sanear tanto la entrada y como la salida de datos </li><ul><li>Remover etiquetas html </li><ul><li>&lt;script ...&gt;, &lt;img ...&gt;, … </li></ul><li>Escapar la entrada antes de introducirla en BD
  • 65. Escapar la salida antes de devolverla al cliente </li></ul></ul></ul>
  • 66. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web <ul><ul><li>Lista negra. Ejemplo Java </li><ul><li>La idea es sustituir aquellas cadenas que pueden suponer un peligro por caracteres inocuos
  • 67. String description = request.getParameter(&amp;quot;description&amp;quot;);
  • 68. description = description.replaceAll(&amp;quot;&lt;&amp;quot;, &amp;quot;&amp;lt;&amp;quot;).replaceAll(&amp;quot;&gt;&amp;quot;, &amp;quot;&amp;gt;&amp;quot;);
  • 69. description = description.replaceAll(&amp;quot;eval((.*))&amp;quot;, &amp;quot;&amp;quot;);
  • 70. description = description.replaceAll(&amp;quot;[&amp;quot;&apos;][s]*((?i)javascript):(.*)[&amp;quot;&apos;]&amp;quot;, &amp;quot;&amp;quot;&amp;quot;&amp;quot;);
  • 71. description = description.replaceAll(&amp;quot;((?i)script)&amp;quot;, &amp;quot;&amp;quot;); </li></ul></ul></ul>
  • 72. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Enlaces útiles: <ul><li>Recomendaciones: </li></ul><ul><ul><li>https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet
  • 73. http://en.wikipedia.org/wiki/Cross-site_scripting </li></ul></ul><ul><li>Librerías que aportan funcionalidad antiXSS </li></ul><ul><ul><li>https://www.owasp.org/index.php/ESAPI
  • 74. http://wpl.codeplex.com/ </li></ul></ul>
  • 75. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web ¡No debemos olvidar que el simple hecho de seguir estas recomendaciones no aporta una seguridad absoluta! Se debe codificar la entrada y salida de datos de la aplicación teniendo la seguridad en mente
  • 76. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web XSRF Cross Site Request Forgery
  • 77. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Cross Site Request Forgery (XSRF) Consiste en forzar al navegador web validado de una víctima a enviar una petición a una aplicación web vulnerable, la cual entonces realiza la acción elegida a través de la víctima. Se entiende que todo esto sin el consentimiento ni conocimiento de dicha víctima
  • 78. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web <ul><li>Ejemplo: Navegador con dos pestañas abiertas: </li></ul><ul><ul><li>En una de ella estamos autenticados en bank.example.com con nuestras credenciales
  • 79. En la otra estamos navegando por un site que contiene el siguiente código: </li></ul></ul>&lt;img src=&amp;quot;http ://bank.example.com/transfiere?cuentaDesde=paco&amp;cantidad=1000000&amp;cuentaHasta=jc&amp;quot;&gt; <ul><li>De esta forma se realiza la transferencia utilizando la sesión ya iniciada en la otra pestaña. </li></ul>
  • 80. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web ¿Que se puede conseguir al explotar una vulnerabilidad XSRF? Realizar cualquier acción que no requiera validación del usuario en las aplicaciones web en que este autenticado en dicho momento.
  • 81. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web ¿Como evitar los ataques de XSRF? <ul><li>Uso de tokens según el patrón Synchronizer Token Pattern (se genera un token aleatorio para cada formulario/sesión que se devuelve, este token tendrá que venir de vuelta con la solicitud.
  • 82. Configurar tiempos de expiración del token razonablemente cortos.
  • 83. Por parte del usuario: </li></ul><ul><ul><li>Abandonar la sesión realizando logout,
  • 84. No tener varias pestañas abiertas en el navegador. </li></ul></ul>
  • 85. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Abuso de funcionalidad
  • 86. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Es una técnica que usa las funcionalidades de la aplicación web para atacarla aplicación, al usuario de la misma o atacar a otros.
  • 87. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web <ul><li>Ejemplo: </li></ul><ul><ul><li>Funcionalidad: Login </li><ul><li>La aplicación informa si es el usuario o la clave lo que esta mal </li></ul><li>Mediante fuerza bruta sobre el usuario se puede conseguir una lista de usuarios validos del sistema </li></ul></ul>
  • 88. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web ¿Que se puede llegar a conseguir? <ul><li>Al ser un ataque aprovecha la funcionalidad de la aplicación no se puede describir la totalidad de posibilidades ya que dependerán de las funcionalidades de la aplicación.
  • 89. Algo habitual es poder conseguir nombre de usuarios o direcciones de correo validas, una vez conseguidas las mismas se pueden lanzar ataques de fuerza bruta sobre las claves. </li></ul>
  • 90. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web ¿Como evitar los ataques de abuso de funcionalidad? <ul><li>Al diseñar una aplicación se debe de tener en cuenta la seguridad de la misma y el mal uso que se podría realizar de sus funcionalidades para prevenirlas desde el mismo momento del diseño. </li></ul>
  • 91. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Fuerza bruta
  • 92. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Ataque realizado generalmente sobre las claves de un sistema. Consiste en probar todas las combinaciones posibles de clave. Usualmente se usa combinado con ataques de diccionario. Ataque de diccionario: <ul><li>Ataque de fuerza bruta donde se prueban todas las palabras contenidas en un diccionario o variaciones sobre las mismas. </li></ul>
  • 93. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web ¿Que se puede conseguir con este sistema? Acceder a cualquier servicio cuya seguridad depende únicamente del conocimiento de la contraseña: <ul><li>Usuario de un sistema operativo.
  • 94. Clave wifi (wpa y wep)
  • 95. Usuario de una aplicación web
  • 96. Contraseña de un archivo cifrado </li></ul>
  • 97. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web ¿Es efectivo este sistema? Bastante: Las claves suelen ser muy cortas y predecibles
  • 98. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web ¿Como evitar los ataques de fuerza bruta? Seguir una política robusta de generación, renovación y almacenamiento de contraseñas. <ul><ul><li>Más de ocho caracteres
  • 99. Mayúsculas, minúsculas, números, caracteres especiales
  • 100. No basada en diccionario ni en datos fácilmente predecibles
  • 101. Cambiarlas periódicamente
  • 102. Usar algún software que nos permita gestionarlas (keepass) </li></ul></ul>
  • 103. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web ¿Como evitar los ataques de fuerza bruta? <ul><li>En el diseño de aplicaciones </li></ul><ul><ul><li>Obligar a seguir pautas de passwords seguras
  • 104. Inhabilitar cuentas tras n intentos fallidos
  • 105. Introducir un retardo variable tras cada fallo al intentar introducir la contraseña
  • 106. Uso de Captchas para dificultar la tarea del software de fuerza bruta </li><ul><li>Digo dificultar y no impedir ya que ya existe software que se salta de manera bastante eficiente los captchas </li></ul></ul></ul>
  • 107. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web DOS Denial Of Service Denegación de servicio
  • 108. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Es un ataque contra la disponibilidad de la aplicación Consiste en explotar alguna vulnerabilidad de la aplicación o servidor para hacer que dicha aplicación no este disponible para los usuarios
  • 109. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web <ul><li>Existen diversas técnicas DOS conocidas. Algunas de ellas son: </li></ul><ul><ul><li>SYN Flood </li><ul><li>Se realiza en el nivel TCP/IP enviando multitud de paquetes solicitando conexión pudiendo o no falsear la ip de origen.
  • 110. La idea subyacente es conseguir ocupar todas las conexiones disponibles del servidor dejándolos a la espera de una comunicación que no será establecida </li></ul><li>Tear Drops attacks </li><ul><li>Consiste en enviar paquetes IP malformados. Este ataque explotaba una vulnerabilidad en el tratamiento de la pila IP en diversos so&apos;s </li></ul></ul></ul>
  • 111. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web La idea subyacente es conseguir agotar con peticiones especiales alguno de los recursos de los cuales dispone el servidor (memoria, disco, procesador, …) de tal forma que dicho servidor no pueda atender al resto de usuarios. Dada la potencia de los servidores frente a la potencia disponible para un único atacante el ataque debe ser realizado aprovechando alguna vulnerabilidad del lado servidor.
  • 112. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web En aplicaciones web: <ul><li>Cuando diseñamos aplicaciones web donde alguna de sus funcionalidades consume grandes cantidades de recursos de servidor se tienen que tener en cuenta este tipo de ataques ya que pueden ser utilizados como vector para un DOS
  • 113. Ejemplo: </li></ul><ul><ul><li>Querys pesadas
  • 114. Guardar ficheros que envía el usuario
  • 115. …. </li></ul></ul>
  • 116. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web DDOS Distributed Denial Of Service DOS distribuido
  • 117. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web El ataque tiene la misma base técnica que el DOS. La única diferencia es que se ejecuta dicho ataque DOS desde un numero grande de equipos facilitando el éxito del ataque
  • 118. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Cuando el número de atacantes distribuidos es muy grande, por ejemplo, 1 millón de equipos no tiene porque ser necesaria la explotación de una vulnerabilidad para que tenga éxito. El simple acto de solicitar una página de un servidor web de manera rápida y sostenida por un número elevado de atacantes dejará indisponible dicho servidor para el resto de usuarios legítimos y en determinados casos podría producir su caída alargando consecuentemente su indisponibilidad
  • 119. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Algunas formas de mitigar este tipo de ataques pero la complejidad y el coste de los mismos suele ser alto. Por ejemplo: <ul><li>Contar en la red con equipos IPS (Intrude Prevention System) esto es sistemas que analicen el tráfico hacia el servidor y que en base a reglas (más de 10 peticiones/segundo desde una misma IP) bloqueen el tráfico desde dicha IP. </li></ul>
  • 120. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Como hemos visto es importante tener en cuenta la seguridad tanto en la creación aplicaciones web ya que se pueden crear involuntariamente agujeros que afecten a la seguridad de toda la organización. El mejor consejo: Tener la seguridad tan en cuenta como se puedan tener el rendimiento o la funcionalidad de una aplicación.

×