¿Qué tan seguros están los dominios CORS de la lista blanca de github?

1

La API de Github le permite realizar solicitudes utilizando CORS [ 1 ]. Las solicitudes CORS solo están permitidas por ciertos dominios en la lista blanca:

  

Se acepta cualquier dominio que esté registrado como una aplicación de OAuth.

Observo lo siguiente:

  1. La lista blanca de dominios es completamente arbitraria. Cualquiera podría configurar una aplicación github oauth para cualquier dominio. [ 2 ], sin ningún tipo de verificación de dominio en su lugar. Esto significa que cosas como localhost , dropbox.com ya están en la lista blanca.
  2. La lista blanca pierde todo el sentido para una persona con intenciones maliciosas, ya que solo pueden falsificar los encabezados de Origin para cualquier aplicación / dominio.

La Guía de seguridad de HTML5 tiene los siguientes puntos sobre la seguridad de CORS: [ 3 ]

  1. Un atacante podría usar Javascript con las solicitudes CORS para hacer que los ataques parezcan originados por la víctima. (Punto 3 en Permiso Universal).
  2. Se coloca una cierta cantidad de confianza en el encabezado de origen.
      

    Hay una cierta cantidad de confianza depositada en el encabezado de Origin. Si la base de esta confianza no se entiende completamente, entonces es posible cometer errores. El encabezado de Origen solo indica que la solicitud proviene de un dominio en particular, no garantiza este hecho. La solicitud en realidad podría ser de un script de Perl que falsifica el encabezado de origen.

  3.   
  En el caso de github:
  1. Una persona solo debe registrar un dominio (o usar dominios ya incluidos en la lista blanca, como dropbox.com) para que sus solicitudes CORS funcionen. Esto aún podría llevar a un "html puro" en el escenario de ataque anterior.
  2. Toda la API de github ya está disponible a través de JSONP también [ 4 ]. Incluso no autenticado, lo que significa que el ataque "html puro" podría ocurrir en cualquier caso.

Mi pregunta es: ¿Github obtiene algo (desde un punto de seguridad) mediante la inclusión de dominios en la lista blanca (para el acceso a API) o es solo una sensación de seguridad fuera de lugar?

    
pregunta Nemo 15.07.2012 - 03:06
fuente

1 respuesta

1

Permitir que cualquier dominio de CORS acceda a la API de GitHub no es un gran problema de seguridad.

GitHub quiere un control total sobre quién tiene acceso a su API. El primer paso es que debe ponerse en contacto con GitHub para agregarse a su lista blanca de API de CORS:

  

Póngase en contacto con nosotros para solicitar el acceso de la lista blanca para su aplicación.   Preferimos los sitios que configuran aplicaciones OAuth para sus usuarios.

Esto permite que GitHub aplique esta parte de sus Términos de servicio :

  

El abuso o las solicitudes excesivamente frecuentes a GitHub a través de la API pueden   dar lugar a la suspensión temporal o permanente de la cuenta de su cuenta.   Acceso a la API. GitHub, a su entera discreción, determinará   abuso o uso excesivo de la API. GitHub hará un razonable   intente por correo electrónico avisar al propietario de la cuenta antes de la suspensión.

     

GitHub se reserva el derecho de modificar o interrumpir en cualquier momento,   temporal o permanentemente, su acceso a la API (o cualquier parte   del mismo) con o sin aviso.

    
respondido por el rook 15.07.2012 - 07:11
fuente

Lea otras preguntas en las etiquetas