Your SlideShare is downloading. ×
Curso de Seguridad Informática SEGURIDAD EN INTERNET
Temario <ul><li>Protocolos </li><ul><li>HTTP, Cookies y Sesiones
SSL y Certificados </li></ul><li>Técnicas de ataque y defensa </li><ul><li>Inyección HTML, XSS y CSRF
Inyección SQL y Xpath
Man In The Middle
ARP Spoofing </li></ul><li>Herramientas </li></ul>
Protocolos <ul><li>HTTP – HyperText Transfer Protocol </li><ul><li>Protocolo utilizado en transacciones web
Desarrollado inicialmente por Tim Berners-Lee (1990)
Estándar desarrollado por IETF y W3C
Es un protocolo sin estado, no guarda información sobre conexiones anteriores
Los recursos son accedidos en HTTP mediante URI (Uniform Resource Identifiers) o más concretamente URL (Uniform Resource L...
Protocolos <ul><li>Métodos de petición </li><ul><li>HEAD: igual que GET, pero sin obtener el cuerpo
GET: recupera una representación de un recurso
POST: envía datos para ser procesados
PUT: envía una representación de un recurso
DELETE: borra un recurso
TRACE: devuelve la misma petición
OPTIONS: devuelve métodos aceptados para una dirección
CONNECT: convierte la conexión actual en un túnel TCP/IP transparente </li></ul></ul>
Protocolos <ul><li>Los métodos HEAD, GET, OPTIONS y TRACE son considerados seguros, ya que no deberían enviar datos al ser...
Protocolos <ul><li>El que un método sea seguro o no, no viene determinado por el protocolo o el servidor, sino por la apli...
Protocolos <ul><li>Las peticiones HTTP no guardan información de estado entre ellas: </li><ul><li>Su implementación result...
La gestión en proxies se simplifica también
Por contra, el desarrollo de aplicaciones web complejas resulta imposible </li></ul><li>La solución a esto pasa por añadir...
Variables ocultas de formulario
URL encoded parameters </li></ul></ul>
Protocolos <ul><li>Una sesión será un conjunto de peticiones que realiza un mismo usuario identificadas con un ID de sesió...
Upcoming SlideShare
Loading in...5
×

Tema 3 - Seguridad en Internet

679

Published on

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
679
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Tema 3 - Seguridad en Internet"

  1. 1. Curso de Seguridad Informática SEGURIDAD EN INTERNET
  2. 2. Temario <ul><li>Protocolos </li><ul><li>HTTP, Cookies y Sesiones
  3. 3. SSL y Certificados </li></ul><li>Técnicas de ataque y defensa </li><ul><li>Inyección HTML, XSS y CSRF
  4. 4. Inyección SQL y Xpath
  5. 5. Man In The Middle
  6. 6. ARP Spoofing </li></ul><li>Herramientas </li></ul>
  7. 7. Protocolos <ul><li>HTTP – HyperText Transfer Protocol </li><ul><li>Protocolo utilizado en transacciones web
  8. 8. Desarrollado inicialmente por Tim Berners-Lee (1990)
  9. 9. Estándar desarrollado por IETF y W3C
  10. 10. Es un protocolo sin estado, no guarda información sobre conexiones anteriores
  11. 11. Los recursos son accedidos en HTTP mediante URI (Uniform Resource Identifiers) o más concretamente URL (Uniform Resource Locators) </li></ul></ul>
  12. 12. Protocolos <ul><li>Métodos de petición </li><ul><li>HEAD: igual que GET, pero sin obtener el cuerpo
  13. 13. GET: recupera una representación de un recurso
  14. 14. POST: envía datos para ser procesados
  15. 15. PUT: envía una representación de un recurso
  16. 16. DELETE: borra un recurso
  17. 17. TRACE: devuelve la misma petición
  18. 18. OPTIONS: devuelve métodos aceptados para una dirección
  19. 19. CONNECT: convierte la conexión actual en un túnel TCP/IP transparente </li></ul></ul>
  20. 20. Protocolos <ul><li>Los métodos HEAD, GET, OPTIONS y TRACE son considerados seguros, ya que no deberían enviar datos al servidor </li><ul><li>Varias peticiones seguidas tienen el mismo efecto que una sola petición -> peticiones idempotentes </li></ul><li>El resto de métodos son susceptibles de provocar cambios en el servidor, por lo que no son consideradas seguros. </li></ul>
  21. 21. Protocolos <ul><li>El que un método sea seguro o no, no viene determinado por el protocolo o el servidor, sino por la aplicación web. </li></ul>
  22. 22. Protocolos <ul><li>Las peticiones HTTP no guardan información de estado entre ellas: </li><ul><li>Su implementación resulta más simple
  23. 23. La gestión en proxies se simplifica también
  24. 24. Por contra, el desarrollo de aplicaciones web complejas resulta imposible </li></ul><li>La solución a esto pasa por añadir un identificador de sesión en cada petición: </li><ul><li>Cookies
  25. 25. Variables ocultas de formulario
  26. 26. URL encoded parameters </li></ul></ul>
  27. 27. Protocolos <ul><li>Una sesión será un conjunto de peticiones que realiza un mismo usuario identificadas con un ID de sesión único, generado y gestionado por el servidor web.
  28. 28. La ventaja de utilizar cookies frente al resto de alternativas es que se almacenan en el cliente, permitiendo identificar al usuario en accesos realizados en diferentes momentos. </li></ul>
  29. 29. Protocolos <ul><li>Petición HTTP </li><ul><li>GET /daily/2001/01/05/1.html HTTP/1.1
  30. 30. Host: www.suck.com
  31. 31. User-Agent: Super Duper Browser 14.6
  32. 32. [línea en blanco] </li></ul><li>Respuesta HTTP </li><ul><li>GET /daily/2001/01/05/1.html HTTP/
  33. 33. HTTP/1.1 200 OK
  34. 34. Content-type: text/html
  35. 35. Content-length: 24204
  36. 36. [línea en blanco]
  37. 37. [y ahora 24,204 bytes de código HTML] </li></ul></ul>
  38. 38. Protocolos <ul><li>Seguridad en HTTP </li><ul><li>Basic Access Authentication </li><ul><li>El navegador muestra un diálogo de usuario/password
  39. 39. Se codifica la información con formato usuario:passoword en base64
  40. 40. El resultado se envía utilizando la cabecera Authorization
  41. 41. Problema: no es posible hacer logout sin cerrar el navegador </li></ul><li>Digest Access Authentication </li><ul><li>La información de acceso no es enviada en claro, sino que se envía una hash de dicha información
  42. 42. Aporta una ligera mejora en la seguridad frente al acceso básico </li></ul></ul></ul>
  43. 43. Protocolos <ul><li>SSL – Secure Socket Layer </li><ul><li>Actualmente ha sido reemplazado por TLS (Transport Layer Security)
  44. 44. TLS es un estándar del IETF, SSL fue desarrollado por Netscape </li></ul></ul>
  45. 45. Protocolos <ul><li>TLS </li><ul><li>Protocolo criptográfico que permite la autenticación cliente/servidor y comunicación segura. Encapsula otros protocolos (HTTP, FTP, XMPP, SMTP)
  46. 46. Utiliza RSA de 1024/2048 bits
  47. 47. La autenticación por defecto es unilateral (sólo el servidor se autentica), aunque soporta autenticación bilateral.
  48. 48. La información del cliente se gestiona mediante cerficados X.509
  49. 49. SSL y TLS son modulares: se pueden reemplazar las distintas partes que participan en el protocolo, manteniendo además retrocompatibilidad </li></ul></ul>
  50. 50. Protocolos <ul><li>El cliente puede comprobar la autenticidad del servidor mediante: </li><ul><li>La firma digital de la CA en el certificado del servidor
  51. 51. La CA debe estar presente en la lista de CAs de confianza
  52. 52. El certificado debe estar vigente </li></ul></ul>
  53. 53. Protocolos <ul><li>En Agosto de 2009 se encontró una vulnerabilidad que afecta a todas las implementaciones de TLS: </li><ul><li>El fallo se encuentra en el proceso de renegociación SSL
  54. 54. El atacante es incapaz de descifrar el diálogo cliente/servidor
  55. 55. Es capaz de inyectar peticiones propias en el diálogo o texto plano
  56. 56. Si no se está pendiente del aviso de seguridad del navegador, el atacante puede redirigirnos a otra dirección y realizar un ataque del tipo MITM </li></ul></ul>
  57. 57. Protocolos <ul><li>Descripción básica del handshake del protocolo </li><ul><li>Hello: acuerdo sobre algoritmos criptográficos a utilizar
  58. 58. Envío de claves: el servidor envía su clave pública así como información criptográfica generada, necesaria para generar la clave de sesión.
  59. 59. Comprobación de clave del servidor: el cliente comprueba la validez del certificado del servidor contra su lista de CAs y envía información criptográfica para la generación de la clave de sesión.
  60. 60. Generación de la clave de sesión de forma independiente en cliente y servidor.
  61. 61. Cambio a diálogo cifrado. </li></ul></ul>
  62. 62. Protocolos
  63. 63. Técnicas de ataque y defensa <ul><li>Ataques por inyección de código </li><ul><li>HTML
  64. 64. XSS
  65. 65. SQL
  66. 66. Xpath </li></ul></ul>
  67. 67. Técnicas de ataque y defensa <ul><li>CSRF/XSRF (Cross Site Request Forgeries) </li><ul><li>La páagina permite inyectar codigo.
  68. 68. Se utilizan <img src=>, <script src=> o <iframe src=>
  69. 69. para realizar peticiones cruzadas.
  70. 70. Un atacante puede hacer que el atacado invoque URLs sin percatarse (enviando cookies de sesion).
  71. 71. Explotación común en Webmails
  72. 72. Ejemplo: </li><ul><li><script src=&quot;https://www.google.com/accounts/UpdateEmail?service=adsense&Email=mymail@newmail.net&Passwd=cool&save=&quot;></script> </li></ul></ul></ul>
  73. 73. Técnicas de ataque y defensa <ul><li>Robo de sesión </li><ul><li>Basicamente robo de cookies o id de sesión.
  74. 74. El atacante lo utiliza para acceder a la sesión del atacado.
  75. 75. Explotable en entornos abiertos (WIFI, LANs, etc.) ya que normalmente se accede mediante proxy. </li></ul></ul>
  76. 76. Técnicas de ataque y defensa <ul><li>El atacante prepara la URL, el atacado accede fijando el ID de la sesión.
  77. 77. El usuario se autentica, pasando la sesión con ese ID a autenticada.
  78. 78. El atacante utiliza ese ID de sesión para acceder a la zona autenticada.
  79. 79. Ejemplo: </li><ul><li>http://server.com/sessx.php?PHPSESSID=111111111111 </li></ul></ul>
  80. 80. Técnicas de ataque y defensa <ul><li>Clickjacking </li><ul><li>El atacante tiene control sobre el sitio web.
  81. 81. Prepara un sitio web con frame incrustado oculto.
  82. 82. El usuario hace click sobre un botón o imagen visible.
  83. 83. El click real se hace sobre el frame incrustado oculto. </li></ul></ul>
  84. 84. Técnicas de ataque y defensa
  85. 85. Técnicas de ataque y defensa <ul><li>Inyección de comandos </li><ul><li>Se ejecuta un comando en el lado del servidor.
  86. 86. Parte de la línea del comando proviene de entradas de usuario.
  87. 87. passthru (&quot;/home/user/x/bin/colorize &quot; . $_GET['input']);
  88. 88. Si el usuario introduce &quot;x && cat /etc/passwd&quot;
  89. 89. Se ejecutan dos comandos /home/user/x/bin/colorize x
  90. 90. && cat /etc/passwd
  91. 91. Prevención: </li><ul><li>Evitar el uso de comandos siempre que sea posible.
  92. 92. Escapar caracteres especiales. Por ejemplo escapeshellcmd() en PHP. </li></ul></ul></ul>
  93. 93. Técnicas de ataque y defensa <ul><li>Consejos generales: </li><ul><li>Limpiar y restringir entradas.
  94. 94. Limpiar salidas.
  95. 95. Aislar el acceso a la BBDD y escapar caracteres especiales.
  96. 96. No mostrar informacion innecesaria.
  97. 97. Principio del mínimo privilegio.
  98. 98. Consideraciones en cuanto a la autenticación. </li></ul></ul>
  99. 99. Técnicas de ataque y defensa <ul><li>Ataques de tipo MITM: </li><ul><li>Técnicas usadas: </li><ul><li>ARP Spoofing
  100. 100. Port Stealing – variante de ARP Spoofing para routers </li></ul><li>Tipos de ataques </li><ul><li>Sniffing
  101. 101. Mangling
  102. 102. Packet injection </li></ul></ul></ul>
  103. 103. Técnicas de ataque y defensa <ul><li>Herramientas </li><ul><li>Nmap
  104. 104. Nessus
  105. 105. Netcat
  106. 106. Túneles (SSH, HTTP, ICMP, …)
  107. 107. Ettercap
  108. 108. John the Ripper
  109. 109. Kismet + aircrack
  110. 110. bsqlbf </li></ul></ul>
  111. 111. Técnicas de ataque y defensa <ul>ARP Spoofing <ul><li>Consiste en crear mensajes ARP falsos que asocien la MAC del atacante con la IP del atacado (normalmente el gateway de la red)
  112. 112. Permite al atacante tratar el tráfico de la red.
  113. 113. Divertido en LANs: </li><ul><li>Ettercap: realiza ataques ARP y ejecuta filtros basados en propiedades de los paquetes de red </li></ul></ul></ul>

×