Está en la página 1de 8

No hay notas son tan desarticulada como los que merodean por mi cerebro mientras me

estaba preparando diapositivas para BlackHat de la semana pasada presentacin . He ahora


ellos bregado en una mayora coherente relato.
Este no ser el ltimo mensaje sobre este tema. Voy a estar haciendo dos cosas en las
prximas semanas: tirar un doc en github Control de cambios / recomendaciones / etc,
respondiendo a ms preguntas, que trabajan en una presentacin diferente, y tratando de
mantener el plan original (es decir dos cosas. ). Ah, y mejorando en MarkDown.
Por lo tanto, subir algunas Jimi Hendrix, jugar BSG en el fondo, y sigue leyendo.
== El problema ==
Solicitud de Cross-Site Falsificacin (CSRF) abusa de la capacidad normal de los navegadores
para hacer peticiones de origen cruz por la elaboracin de un recurso en un origen que cause
navegador de la vctima para hacer una peticin a otro origen utilizando el contexto de
seguridad de la vctima asociada con ese origen de destino.
El atacante crea y pone un recurso malicioso en un origen relacionado con el origen de
destino al que el navegador de la vctima har una peticin. El recurso contiene contenido
malicioso que causa un navegador para realizar una solicitud al origen de destino no
relacionado. Esta solicitud contiene los parmetros seleccionados por el atacante para afectar
el contexto de seguridad de la vctima en relacin con el origen de destino.
El atacante no necesita violar poltica del mismo origen del navegador para generar la solicitud
de origen cruz. Tampoco el ataque requiere la lectura de la respuesta desde el origen de
destino. El navegador de la vctima incluye automticamente las cookies asociadas con el
origen de destino para el que se hizo la solicitud forjado. De este modo, el atacante crea una
accin, el navegador solicita la accin y la aplicacin web de destino realiza la accin en el
contexto de las cookies que recibe - el contexto de seguridad de la vctima.
Un ataque CSRF efectiva significa la solicitud modifica contexto de la vctima con respecto a
las aplicaciones web de una manera que es favorable para el atacante. Por ejemplo, un
ataque CSRF puede cambiar la contrasea de la vctima de la aplicacin web.
CSRF se aprovecha de aplicaciones web que no apliquen fuerte autorizacin de acciones
durante la sesin de un usuario. El ataque se basa en el comportamiento normal y esperado
de los navegadores web para realizar solicitudes de origen cruz de recursos que se cargan
sobre los orgenes no relacionados.

Poltica del mismo origen del navegador impide un recurso en un origen de leer la respuesta
de un origen no relacionado. Sin embargo, el ataque slo depende de la solicitud de forjado se
presenta a la aplicacin web de destino en el contexto de seguridad de la vctima - que no
depende de recibir o ver la respuesta de la aplicacin de destino.
== La solucin propuesta ==
SOS se propone un tipo de poltica adicional de la poltica de seguridad de contenido. Su
comportamiento tambin incluye el comportamiento pre-vuelo y usadas por la especificacin
Cruz Origen de intercambio de recursos.
SOS no es slo pretende ser una pegadiza un acrnimo. El nombre se destina para evocar el
cdigo de Morse SOS, que es a la vez fcil de transmitir y fcil de entender. Si es necesario
explicar lo que SOS significa, entonces "Sesin Origen Seguridad" sera preferible. (Sin
embargo, "Simple Origen de Seguridad", "Some Other Seguridad", e incluso "Ahorre nuestro
Sitio" son aceptables. "Same Old Stuff" se desalienta. Ms opciones se dejan para el lector.)
Una poltica de SOS se puede aplicar a una o ms cookies para una aplicacin web en un
cookie por o de forma colectiva. Controla la directiva si el explorador incluye esas galletas
durante las solicitudes de origen cruz. (Un recurso de origen cruz no puede acceder a una
cookie de otro origen, pero puede generar una solicitud que hace que la cookie sea incluido.)
Formato == ==
Una aplicacin web establece una poltica mediante la inclusin de una cabecera de respuesta
Content-Security-Poltica. Esta cabecera puede acompaar a la respuesta que incluya la
cabecera Set-Cookie para la cookie a cubrir, o puede establecerse en un recurso
independiente.
Una directiva de una sola galleta se establecer de la siguiente manera, con el cookieNamede
la cookie y una directiva de "cualquier" , "yo" , o 'aislamiento' . (Esas directivas se definirn
en breve.)
Content-Security-Poltica: sos-apply = cookieName ' poltica '

Una respuesta puede incluir mltiples cabeceras CSP, tales como:


Content-Security-Poltica: sos-aplican = cookieOne ' poltica '
Content-Security-Poltica: sos-aplican = cookieTwo ' poltica '

Una poltica puede ser aplicada a todas las cookies utilizando un comodn:

Content-Security-Poltica:-aplicar sos = * ' poltica '

== Polticas ==
Una de las tres directivas pueden ser asignados a una poltica. Las directivas afectan a la
manipulacin por defecto del navegador de cookies para las solicitudes de origen cruz a origen
destino de una cookie. El concepto de pre-vuelo se describir en la siguiente
seccin;proporciona un mecanismo para hacer excepciones a una poltica sobre una base perrecurso.
Las polticas slo se invocan para solicitudes de origen cruz. Peticiones de origen mismas no
se ven afectadas.
"Cualquier" - incluyen la cookie. Esto representa cmo navegadores funcionan

actualmente.Hacer una solicitud previa al vuelo para el recurso en el origen de destino para
comprobar si hay una respuesta de excepcin.
"Yo" - no incluyen la cookie. Hacer una solicitud previa al vuelo para el recurso en el origen de

destino para comprobar si hay una respuesta de excepcin.


'Aislado' - nunca incluya la cookie. No haga una solicitud previa al vuelo para el recurso

porque no se permiten excepciones.


==-Flight Pre ==
Un navegador que se va a hacer una solicitud de origen transversal que incluye una galleta
cubierta por una poltica de "cualquiera" o "yo" debe hacer un chequeo pre-vuelo al recurso
de destino antes de realizar la solicitud. (Una poltica de "aislar" indica al navegador que no
incluya la cookie durante una peticin origen cruz.)
El propsito de una solicitud previa al vuelo es permitir que el origen de destino para modificar
una poltica en funcin de cada recurso. Por lo tanto, algunos recursos de una aplicacin web
pueden permitir o denegar las cookies de peticiones de origen cruz a pesar de la poltica por
defecto.
La solicitud previa al vuelo funciona de forma idntica a la de la Cruz Origen de intercambio de
recursos, con la adicin de un Access-Control-SOS cabecera. Esta cabecera incluye una lista
delimitada por espacios de cookies que el navegador puede incluir de otro modo para una
solicitud de origen cruz, como sigue:
Access-Control-SOS: cookieOne CookieTwo

Un pre-vuelo solicitud podra ser como la siguiente, tenga en cuenta que se espera que la
cabecera Origen de estar presente, as:

OPCIONES https: //web.site/resource HTTP / 1.1


Host: web.site
Origen: http: //other.origin
Access-Control-SOS: sid
conexion: keep-alive
Content-Length: 0

El origen de destino puede responder con un Access-Control-SOS-Responder encabezado


que indica al explorador si se debe incluir la cookie (s). La respuesta ser o
bien 'permitir' o'negar' .
El encabezado de respuesta tambin puede incluir una expiracin en segundos. La expiracin
permite al navegador que recuerde esta respuesta y renunciar a posteriores comprobaciones
previas al vuelo por la duracin del valor.
El siguiente ejemplo se permitira que el navegador incluye una cookie con una solicitud de
origen cruz al origen destino incluso si la poltica de la cookie haba sido 's '. (En ausencia de
una cabecera de respuesta, el navegador no incluira la cookie.)
Access-Control-SOS-respuesta: 'permitir' expira = 600

El siguiente ejemplo se negara el navegador para incluir una cookie con una peticin origen
cruz al origen destino incluso si la poltica de la cookie haba sido 'ninguna' . (En ausencia de
una cabecera de respuesta, el navegador incluira la cookie.)
Access-Control-SOS-respuesta: 'negar' expira = 0

Se espera que el navegador para rastrear las polticas y excepciones de poltica basadas en
orgenes de destino. No se espera que el seguimiento de pares de orgenes (por ejemplo,
diferentes cruzadas orgenes hasta el destino), ya que tal asignacin podra convertirse
fcilmente engorroso, ineficiente, y ms propensos al abuso o errores.
Como se describe en esta seccin, el pre-vuelo es un asunto de todo o nada. Si varias cookies
se enumeran en el Access-Control-SOS encabezado, entonces la respuesta se aplica a todos
ellos. Esto podra no proporcionar la suficiente flexibilidad. Por otra parte, la sencillez tiende a
fomentar la seguridad.
Beneficios == ==
Tenga en cuenta que una poltica puede ser aplicada sobre una base per-cookie. Si no est
permitida una galleta cubierta de la poltica, las cookies no cubiertos por el origen de destino
an se pueden incluir. Piense en una cookie no cubierta como una galleta "desnudo" sin
adornos o - su comportamiento y el del navegador coincide con la web de hoy en da.

La intencin de la poltica es el control de las cookies asociadas con el contexto de seguridad


de un usuario para el origen de destino. Por ejemplo, sera una buena idea para aplicar 's'a
una cookie utilizada para la autorizacin (y la identificacin, en funcin de cmo
estrechamente acoplado esos conceptos son por dependencia de la aplicacin en la cookie).
Imagine una instalacin de WordPress alojado en https: //web.site/. El propietario del sitio
desea permitir que cualquier persona a visitar, sobre todo cuando est vinculado a partir de
motores de bsqueda, redes sociales y otros sitios de diferentes orgenes. En este caso, es
posible definir una poltica de "cualquier" fijados por la pgina de destino:
Content-Security-Poltica: sos-aplican = sid 'cualquier'

Sin embargo, el directorio / / wp-admin representa funciones sensibles que slo se debe
acceder por la intencin del usuario. WordPress proporciona una robusta contador anti-CSRF
basado en nonce. Por desgracia, muchos plugins se olvide de incluir estas nonces y por lo
tanto llegar a ser vulnerables a los ataques. Dado que el propietario del sitio ha establecido
una poltica para la cookie sid (que representa el identificador de sesin), que podran
responder a cualquier solicitud de pre-vuelo en el directorio / wp-admin / de la siguiente
manera:
Access-Control-SOS-respuesta: 'negar' expira = 86400

Por lo tanto, el directorio / / wp-admin sera protegido de CSRF explota porque un navegador
no incluira la cookie sid con una solicitud falsificada.
El caso de uso para el 'aislamiento' la poltica es directa: el sitio no espera ninguna solicitud
de origen cruz para incluir las cookies relacionadas con la autenticacin o autorizacin. Un
banco o correo electrnico basado en la web pueden desear este comportamiento. La
intencin de aislamiento es para evitar la necesidad de una solicitud previa al vuelo y prohibir
excepciones a la poltica.
== Notas ==
Se trata de un proyecto. Los siguientes pensamientos representan algunas reas que
requieren ms atencin o que transmiten algunas de las motivaciones detrs de esta
propuesta.
Con ello se pretende afectar a las solicitudes de origen cruz hechos por un navegador.
No se pretende para contrarrestar los ataques del mismo origen, como la inyeccin HTML
(XSS) o ataques de intermediacin tales como olfateando. El intento de resolver mltiples
problemas con esta poltica conduce a la locura.

CSRF evoca dos sentidos de la palabra "falsificacin": la creacin y la falsificacin. Este


enfoque no inhibe la creacin de peticiones de origen cruz (aunque algo as como "no simples"
peticiones XHR y CORS hara). Ni inhibe la falsificacin de peticiones, como lo que hace difcil
para un atacante adivinar valores. Derrota CSRF mediante el bloqueo de una cookie que
representa el contexto de seguridad del usuario de ser incluido en una solicitud de origen
cruzado el usuario probablemente no tena intencin de hacer.
Puede haber una razn para eliminar una poltica de una cookie, en cuyo caso un encabezado
CSP podra usar algo como una instruccin sos-remove:
Content-Security-Poltica: sos-remove = cookieName
Construcciones criptogrficas se evitan a propsito. Incluso si se disean bien, son propensos
a errores de implementacin. Tambin deben ser rastreados y verificados por la aplicacin, lo
que expone a ms oportunidades para el error e induce ms sobrecarga.Basndose en
nonces aumenta la dificultad de forja (como en la falsificacin) solicitudes, mientras que esta
poltica propuesta define un binario clara de inclusin / exclusin para una cookie. Una cookie
ser o no se incluirn vs. un nonce puede o no puede predecir.
Valores PRNG se evitan a propsito, por las mismas razones que nonces criptogrficas. Vale
la pena sealar que la incomprensin de la diferencia entre un valor aleatorio y un PRNG
criptogrficamente seguro (que un token CSRF debe favorecer) es otro punto en contra de un
control basado en PRNG.
Un encabezado CSP fue elegido en favor de la decoracin de la cookie con nuevos atributos,
porque las galletas ya son feos, torpe, y (un poco) rota suficiente. Adems, el objetivo
fundamental es proteger a un contexto de sesin o la seguridad asociada a un usuario.Como
tal, puede haber razones para extendido este concepto a la ejecucin de objetos de
almacenamiento Web, por ejemplo, prohibir en los recursos de origen mixto. Sin embargo,
esta realidad no ha sido pensado y probablemente aade ms complejidad sin resolver un
problema real.
El pre-vuelo de solicitud / respuesta no debera ser una fuente de fuga de informacin acerca
de las cookies utilizadas por la aplicacin. Por lo menos, no debera proporcionar ms
informacin que podra obtenerse trivialmente mediante otras tcnicas.

No est claro lo que es un patrn de diseo ideal sera que el despliegue de las cabeceras
SOS. Una poltica podra acompaar a cada cabecera Set-Cookie. O el sitio podra utilizar un
redireccionamiento o cuello de botella similar a establecer polticas de un solo recurso.
Sera mucho ms fcil para equipar a estos encabezados en una aplicacin de legado
mediante el uso de una aplicacin web de Firewall de lo que estara tratando de modificar el
cdigo para incluir nonces todas partes.
Sera (posiblemente) ms fcil de auditar la proteccin de un sitio basado en la aplicacin de
las cabeceras a travs de trucos mod_rewrite o reglas WAF que se aplican a grupos enteros
de recursos que lo hara para una auditora de cdigo de cada formulario y accin.
El lenguaje aqu se inclina (demasiado) hacia la formalidad, pero los trminos y el uso no ha
sido examinado todava a que se adhieran a las de HTML, CSP y CORS. El objetivo ahora es
la claridad de la explicacin; pedantera puede esperar.
Precauciones == ==
Adems de las notas anteriores, stas se destacan como preocupaciones particulares.
Polticas en conflicto causara confusin. Por ejemplo, dos recursos diferentes definen por
separado un "cualquiera" y "yo" de la misma cookie. Sera necesario determinar que recibe
prioridad.
Las cookies tienen la propiedad desafortunado de que pueden pertenecer a varios orgenes
(es decir, sub-dominios). Por lo tanto, algunas aplicaciones podran incurrir en una sobrecarga
adicional de las solicitudes o complejidad pre-vuelo al tratar de distinguir cruzada origen de los
dominios no relacionados y cross-origen de subdominios.
Aplicaciones que se basan en "Volver a" parmetros de URL no pueden ser fijos si la URL de
retorno tiene el exploit CSRF y el navegador est ahora reorientando desde el mismo
origen.Quizs. Esto necesita un poco de investigacin.
No hay migracin para navegadores antiguos: Ests seguro (utilizando un navegador que
soporte y un sitio aprobado) o no lo eres. Por otro lado, una versin antigua del navegador es
un navegador inseguro de todos modos - puntos vulnerables del navegador son ms
amenazante que CSRF durante muchos, muchos casos.
Hay otra cosa que me olvid de mencionar que estoy seguro de que voy a recordar maana.

=====
Usted todava est aqu? Los dejo con esta cita del ltimo episodio de BSG . (Es un poco tarde
para pedir disculpas por los spoilers ...) Gracias por leer!

También podría gustarte