Está en la página 1de 33

Seguridad en Sistemas, Apps y BigData

Juan Ramón Bermejo Higuera

Seguridad en Sistemas, Apps y BigData


Tema 2: Protocolo HTTP
Seguridad en Sistemas, Apps y BigData

Tema 2:
Protocolo HTTP RFC 2616

Seguridad de aplicaciones online - Juan Ramón Bermejo Higuera


Seguridad en Sistemas, Apps y BigData
Tema 2: Protocolo HTTP

HTTP

Seguridad de aplicaciones online - Juan Ramón Bermejo Higuera


Seguridad en Sistemas, Apps y BigData
Tema 2: Protocolo HTTP – Mensajes de error

Seguridad de aplicaciones online - Juan Ramón Bermejo Higuera


Seguridad en Sistemas, Apps y BigData
Tema 2: Protocolo HTTP - Métodos

▪ HEAD
▪ GET
▪ POST
▪ PUT
▪ DELETE
▪ TRACE
▪ CONNECT

Fuente: https://plataforma.josedomingo.org/pledin/cursos/flask/curso/u01/

Seguridad de aplicaciones online - Juan Ramón Bermejo Higuera


Seguridad en Sistemas, Apps y BigData
Tema 2: Protocolo HTTP - Métodos

▪ GET: Pide una representación del recurso especificado.


No debería ser usado ya que transmite información a
través de la URI agregando parámetros a la URL:

Ejemplo con parámetros: GET /index.php?page=main&lang=es

▪ HEAD: Pide una respuesta idéntica a la que


correspondería a una petición GET, pero sin el cuerpo de
la respuesta ver cabeceras.

Seguridad de aplicaciones online - Juan Ramón Bermejo Higuera


Seguridad en Sistemas, Apps y BigData
Tema 2: Protocolo HTTP - Métodos

▪ POST: Envía los parámetros para que sean procesados


por el recurso identificado (URL). Los datos se incluirán
en el cuerpo de la petición. Puede resultar en la creación
de un nuevo recurso o de las actualizaciones de los
recursos existentes o ambas cosas

▪ PUT: Sube, carga o realiza un upload de un recurso


especificado (archivo), El método PUT permite escribir un
archivo en una conexión socket establecida con servidor.

Ejemplo: PUT /path/filename.html HTTP/1.1

Seguridad de aplicaciones online - Juan Ramón Bermejo Higuera


Seguridad en Sistemas, Apps y BigData
Tema 2: Protocolo HTTP - Métodos

▪ TRACE: Este método solicita al servidor que envíe de


vuelta en un mensaje de respuesta. Se utiliza con fines de
comprobación y diagnóstico.

▪ OPTIONS: Devuelve los métodos HTTP que el servidor


soporta para un URL específico. Esto puede ser utilizado
para comprobar la funcionalidad de un servidor web
mediante petición en lugar de un recurso específico.

Seguridad de aplicaciones online - Juan Ramón Bermejo Higuera


Seguridad en Sistemas, Apps y BigData
Tema 2: Protocolo HTTP - Métodos

▪ CONNECT: Se utiliza para saber si se tiene acceso a un


host, no necesariamente la petición llega al servidor, este
método se utiliza para saber que servicios o host se
ecuentran detrás de un proxy.

Seguridad de aplicaciones online - Juan Ramón Bermejo Higuera


Seguridad en Sistemas, Apps y BigData
Tema 2: Protocolo HTTP – XST (TRACE)

Fuentes: https://hackxcrack.net/foro/defacing/cross-site-tracing-(xst)/
https://www.cgisecurity.com/whitehat-mirror/WH-WhitePaper_XST_ebook.pdf

Seguridad de aplicaciones online - Juan Ramón Bermejo Higuera


Seguridad en Sistemas, Apps y BigData
Tema 2: Protocolo HTTP – XST (TRACE)

Fuentes: https://hackxcrack.net/foro/defacing/cross-site-tracing-(xst)/
https://www.cgisecurity.com/whitehat-mirror/WH-WhitePaper_XST_ebook.pdf

Seguridad de aplicaciones online - Juan Ramón Bermejo Higuera


Seguridad en Sistemas, Apps y BigData
Tema 2: Protocolo HTTP – XST (TRACE)

Aprovechado por peticiones: XmlHttpRequest en AJAX: evitando la protección HTTPONLY

Seguridad de aplicaciones online - Juan Ramón Bermejo Higuera


Seguridad en Sistemas, Apps y BigData
Tema 2: Protocolo HTTP

Seguridad de aplicaciones online - Juan Ramón Bermejo Higuera


Seguridad en Sistemas, Apps y BigData
Tema 2: Protocolo HTTP

Seguridad de aplicaciones online - Juan Ramón Bermejo Higuera


Seguridad en Sistemas, Apps y BigData
Tema 2: Protocolo HTTP - GET

Seguridad de aplicaciones online - Juan Ramón Bermejo Higuera


Seguridad en Sistemas, Apps y BigData
Tema 2: Protocolo HTTP - POST

Seguridad de aplicaciones online - Juan Ramón Bermejo Higuera


Seguridad en Sistemas, Apps y BigData
Tema 2: Protocolo HTTP – POST vs GET

Seguridad de aplicaciones online - Juan Ramón Bermejo Higuera


Seguridad en Sistemas, Apps y BigData
Tema 2: Protocolo HTTP – POST vs GET

Seguridad de aplicaciones online - Juan Ramón Bermejo Higuera


Seguridad en Sistemas, Apps y BigData
Tema 2: Protocolo HTTP – GET vs POST

▪ Revelación de información sensible: Los parámetros GET se


registran en LOGs, caché e historial del navegador.

▪ Oportunidades para XSS: Para un atacante es más fácil GET


enviando emails con una URL con parámetros maliciosos:

www.example.com?... ?...

Seguridad de aplicaciones online - Juan Ramón Bermejo Higuera


Seguridad en Sistemas, Apps y BigData
Tema 2: Protocolo HTTP – Errores y excepciones

Los mensajes de respuesta no deben incluir información de la aplicación.


No se deben usar los códigos error HTTP
Seguridad de aplicaciones online - Juan Ramón Bermejo Higuera
Seguridad en Sistemas, Apps y BigData
Tema 2: Protocolo HTTP – Procedencia de peticiones

▪ Si la aplicación usa un formulario para crear usuarios:

▪ Un atacante podría diseñar un sitio web con:

Si el ADM visita el sitio controlado por el atacante… (CSRF)

Seguridad de aplicaciones online - Juan Ramón Bermejo Higuera


Seguridad en Sistemas, Apps y BigData
Tema 2: Protocolo HTTP – Procedencia de peticiones

▪ Validar la procedencia: TOKEN ANTI-CSRF

Seguridad de aplicaciones online - Juan Ramón Bermejo Higuera


Seguridad en Sistemas, Apps y BigData
Tema 2: Protocolo HTTP – Procedencia de peticiones
Aplicaciones AJAX

Seguridad de aplicaciones online - Juan Ramón Bermejo Higuera


Seguridad en Sistemas, Apps y BigData
Tema 2: Protocolo HTTP – HTTP response splitting

▪ Si la entrada contiene: Wiley Hacker\r\n\r\nHTTP/1.1 200 OK\r\n...,


La respuesta HTTP se divide en 2 respuestas:

▪ Hay que validar la entrada

Seguridad de aplicaciones online - Juan Ramón Bermejo Higuera


Seguridad en Sistemas, Apps y BigData
Tema 2: Protocolo HTTP – Clickjacking
▪ opacity:0. Vuelve transparente al elemento. Su
valor va de 1 (totalmente opaco) a 0,
transparente e invisible.
▪ position: El elemento se coloca en relación a
su primera posición (no estática) elemento
antecesor.

▪ top:0px;left:0px;width:99%;height:95%;margin:0
px;paddin g:0px. Estos parámetros permiten
tomar todo el ancho de una página y que se
acople a sus márgenes para que la cubra
totalmente

▪ z-index:1. Permite que se posicione por


delante/encima de cualquier otro elemento.

Cabecera X-Frame-Options:
deny, sameorigin allow-from uri,

Seguridad de aplicaciones online - Juan Ramón Bermejo Higuera


Seguridad en Sistemas, Apps y BigData
Tema 2: Protocolo HTTP – Same Origin Policy
▪ Un script que se carga desde un sitio mediante la etiqueta <script> tiene acceso sin
límites a toda nuestra aplicación. El script no se ejecuta en el contexto del sitio de
donde proviene el script , sino en el del sitio que lo cargó.

Seguridad de aplicaciones online - Juan Ramón Bermejo Higuera


Seguridad en Sistemas, Apps y BigData
Tema 2: Protocolo HTTP – Same Origin Policy

Seguridad de aplicaciones online - Juan Ramón Bermejo Higuera


Seguridad en Sistemas, Apps y BigData
Tema 2: Protocolo HTTP – Same Origin Policy

SOP no prohíbe:
▪ Código javascript con <script src="..."></script>

▪ CSS con <link rel="stylesheet" href="...">

▪ Imágenes con <img>

▪ Ficheros multimedia con <video> o <audio>

▪ Plug-ins con <object>, <embed> o <applet>

▪ Fonts con @font-face

▪ Cualquier contenido con <iframe>

Seguridad de aplicaciones online - Juan Ramón Bermejo Higuera


Seguridad en Sistemas, Apps y BigData
Tema 2: Protocolo HTTP – Cabeceras de seguridad

▪ HTTP Strict Transport Security:


Strict-Transport-Security: max-age=31536000 ; includeSubDomains

▪ X-Frame-Options
X-Frame-Options: deny

▪ X-Content-Type-Options
X-Content-Type-Options: nosniff

▪ Content-Security-Policy
Content-Security-Policy: script-src 'self'

Seguridad de aplicaciones online - Juan Ramón Bermejo Higuera


Seguridad en Sistemas, Apps y BigData
Tema 2: Protocolo HTTP – Cabeceras de seguridad CORS

Respuesta:
Access-Control-Allow-Origin
Access-Control-Allow-Credentials
Access-Control-Expose-Headers
Access-Control-Max-Age
Access-Control-Allow-Methods
Access-Control-Allow-Headers

Petición:
Origin
Access-Control-Request-Method
Access-Control-Request-Headers

Seguridad de aplicaciones online - Juan Ramón Bermejo Higuera


Seguridad en Sistemas, Apps y BigData
Tema 2: Protocolo HTTP – Cabeceras de seguridad CORS

Petición:
OPTIONS /user
Origin: http://www.example.com
Access-Control-Request-Method: GET
Access-Control-Request-Headers: Authorization

Respuesta:
Access-Control-Allow-Origin: http://www.example.com
Access-Control-Allow-Headers: AUTHORIZATION
Access-Control-Allow-Methods: GET

Seguridad de aplicaciones online - Juan Ramón Bermejo Higuera


Seguridad en Sistemas, Apps y BigData
Tema 2 HTTP - Puntos a destacar (Highlights)

▪ Métodos HTTP

▪ XST (TRACE)

▪ CSRF

▪ HTTP Response Splitting

▪ Same Origin Policy

▪ Cabeceras de seguridad

Seguridad de aplicaciones online - Juan Ramón Bermejo Higuera


www.unir.net

También podría gustarte