3. Compartir Igual (Share alike): La explotacin autorizada incluye la creacin de obras derivadas siempre que mantengan la misma licencia al ser divulgadas. 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 ms en profundidad algunas de las vulnerabilidades web ms comunes y como prevenirlas
8. XSS
9. Fuerza bruta 10. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web SQL INJECTION Es un mtodo de infiltracin de cdigo que se vale de una vulnerabilidad informtica presente en una aplicacin en el nivel de validacin de las entradas para ejecutar querys contra la base de datos de la aplicacin. 11. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web
conn = pool.getConnection( ); String sql = "select * from user where username='" + username +"' and password='" + password + "'"; stmt = conn.createStatement(); rs = stmt.executeQuery(sql); if (rs.next()) { loggedIn = true; out.println("Successfully logged in"); } else { out.println("Username and/or password not recognized"); } 12. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web
Username == ' OR '1'='1 Password vacio La sentencia SQL que se ejecuta en la BD quedara: select * from user where username='' OR '1'='1' and password=' ' Esta sentencia devolver todos los datos de la tablay la aplicacin nos permitir ingresar en el sistema. 13. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Nos podemos encontrar varios escenarios en los cuales explotar esta vulnerabilidad:
14. La aplicacin presenta informacin en pantalla devuelta por la query 15. La aplicacin presenta una pantalla de error genrica cuando la query falla 16. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web
17. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web
18. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web
19. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Porque son importantes estos tres escenarios? Nivel de informacin que nos dan y facilidad a la hora de extraerla
20. Resultados de la query: Nos permiten obtener de vuelta los resultados de la query 21. Pantalla de error genrica: Nos fuerza a realizar Blind SQL Injection (Inyeccin SQL ciega) 22. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Que podemos conseguir al explotar una vulnerabilidad de SQLi en una aplicacin?
24. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Como evitar los ataques de SQLi?
25. En java utilizar la clase PreparedStatement. 26. El usuario de BD configurado en el servidor debe tener los mnimos privilegios posibles. 27. Controlar todos los errores que se puedan devolver presentando en todos los casos una pantalla de error genrica que no de ninguna informacin sobre el sistemay/o error. 28. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web
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. 32. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web JavaScript NO APORTA NINGUNA PROTECCIN 33. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web
35. Usuario de BD de la aplicacin con mnimos privilegios 36. Lista blanca de validacin
37. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Se deben aplicar todos estos mtodos Estas polticas se implementarn SIEMPRE del lado servidor 38. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web
En PHP
40. sql->bind_param 41. mysql_real_escape_string para mysql 42. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web
String custname = request.getParameter("customerName"); // This should REALLY be validated too // perform input validation to detect attacks String query = "SELECT account_balance FROM user_data WHEREuser_name = ?"; PreparedStatementpstmt = 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/Inyeccin_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 pginas web.
48. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web
50. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web
52. 53. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web
55. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Que podemos conseguir al explotar una vulnerabilidad de XSS?
56. Se pueden robar credenciales de los servicios en los que este acreditado el usuario en el momento de ejecucin del script (cookies de sesin , ) 57. Tambin se pueden ejecutar exploits que aprovechen vulnerabilidades del navegador pudiendo llegar a tener el control sobre el equipo de la vctima. 58. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Como evitar los ataques de XSS?
59. ValidarTODASlassalidasde datos de la aplicacin que provengan de datos introducidos anteriormente por un usuario 60. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web
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. 64. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Algunas recomendaciones
Sanear tanto la entrada y como la salida de datos
Escapar la entrada antes de introducirla en BD 65. Escapar la salida antes de devolverla al cliente 66. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web
68. description = description.replaceAll(""); 69. description = description.replaceAll("eval((.*))", ""); 70. description = description.replaceAll("["'][s]*((?i)javascript):(.*)["']", """"); 71. description = description.replaceAll("((?i)script)", ""); 72. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Enlaces tiles:
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 aplicacin 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 vctima a enviar una peticin a una aplicacin web vulnerable, la cual entonces realiza la accin elegida a travs de la vctima.Se entiende que todo esto sin el consentimiento ni conocimiento de dicha vctima 78. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web
80. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Que se puede conseguir al explotar una vulnerabilidad XSRF? Realizar cualquier accin que no requiera validacin 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?
82. Configurar tiempos de expiracin del token razonablemente cortos. 83. Por parte del usuario:
85. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Abuso de funcionalidad 86. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Es una tcnica que usa las funcionalidades de la aplicacin web para atacarla aplicacin, al usuario de la misma o atacar a otros. 87. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web
Mediante fuerza bruta sobre el usuario se puede conseguir una lista de usuarios validos del sistema 88. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Que se puede llegar a conseguir?
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. 90. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Como evitar los ataques de abuso de funcionalidad?
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:
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 contrasea:
94. Clave wifi (wpa y wep) 95. Usuario de una aplicacin web 96. Contrasea de un archivo cifrado 97. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Es efectivo este sistema? Bastante: Las claves suelenser muy cortas y predecibles 98. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Como evitar los ataques de fuerza bruta? Seguir una poltica robusta de generacin, renovacin y almacenamiento de contraseas.
100. No basada en diccionario ni en datos fcilmente predecibles 101. Cambiarlas peridicamente 102. Usar algn software quenos permita gestionarlas (keepass) 103. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Como evitar los ataques de fuerza bruta?
105. Introducir un retardo variable tras cada fallo al intentar introducir la contrasea 106. Uso de Captchas para dificultar la tarea del software de fuerza bruta
107. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web DOS Denial Of Service Denegacin de servicio 108. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Es un ataque contra la disponibilidad de la aplicacinConsiste en explotar alguna vulnerabilidad de la aplicacin o servidor para hacer que dicha aplicacin no este disponible para los usuarios 109. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web
Tear Drops attacks
111. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web La idea subyacente es conseguir agotar con peticionesespeciales 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:
113. Ejemplo:
115. . 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 tcnica 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 nmero de atacantes distribuidos es muy grande, por ejemplo, 1 milln de equipos no tiene porque ser necesaria la explotacin de una vulnerabilidad para que tenga xito. El simple acto de solicitar una pgina de un servidor web de manera rpida y sostenida por un nmero elevado de atacantes dejar indisponible dicho servidor para el resto de usuarios legtimos y en determinados casos podra producir su cada alargando consecuentemente su indisponibilidad 119. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Algunas formas demitigareste tipo de ataques pero la complejidad y el coste de los mismos suele ser alto. Por ejemplo:
120. SEGURIDAD Y APLICACIONES WEB Vulnerabilidades Web Como hemos visto es importante tener en cuenta la seguridad tanto en la creacin aplicaciones web ya que se pueden crear involuntariamente agujeros que afecten a la seguridad de toda la organizacin. El mejor consejo:Tener la seguridad tan en cuenta como se puedan tener el rendimiento o la funcionalidad de una aplicacin.
Top Related