¿Se publica un sitio web en un directorio desconocido que es relativamente seguro al colocarse detrás de un inicio de sesión? [duplicar]

46

Supongamos que creo un micrositio para un cliente que contiene información comercial confidencial. Necesitamos colocar esto en una ubicación a la que pueda acceder el cliente para que aprueben su lanzamiento.

Si colocamos este micrositio detrás de un inicio de sesión, tenemos una garantía de que nadie puede tropezar con el contenido y comprometerlo. Pero, ¿qué pasa si lo publicamos en un directorio no revelado, no indexado con un nombre de la misma "fortaleza" que la contraseña mencionada anteriormente? Por el bien del argumento, "no revelado y no indexado" significa que no se vinculará de forma manual o automática a ningún sitio, ni será indexado por ninguna búsqueda de sitios web en el mismo dominio. Tampoco se colocará en su propio subdominio, por lo que el rastreo de DNS no es una preocupación.

Mi instinto inicial dice que esto es simplemente seguridad por oscuridad, y es mucho menos seguro debido a la posibilidad de que alguien se tropiece con eso. Pero, después de pensarlo, no estoy tan seguro. Aquí está mi entendimiento:

  • Incluso usando una cadena de dos palabras, débil para el diccionario, tanto para la contraseña como para la URL, todavía hay miles de millones de opciones que se pueden adivinar. Colocarlo en la URL no reduce mágicamente esa lista.
  • Las páginas de inicio de sesión pueden tener protección contra fuerza bruta, por lo que un atacante obtendría 20 intentos optimistas de adivinar. Las adivinanzas de URL tendrían que ser detectadas por el DoS del servidor o la protección contra correo no deseado, y pueden permitir 200 suposiciones que generan 404 si está anticipando un ataque, aún no es estadísticamente significativo para miles de millones de opciones.
  • La página de inicio de sesión está vinculada desde un sitio web: es un muro visible para que un atacante pueda atacar. Es evidencia de que existe algo por lo que vale la pena atacar. Adivinar la URL, sin embargo, es ciego. Requiere estar en el dominio correcto (y el subdominio), y operar con fe en que, incluso después de decenas de miles de conjeturas incorrectas, todavía vas a subir algo.
  • La URL tiene una susceptibilidad adicional de ser indexada / arañada externamente. Sin embargo, la mayoría de las arañas respetables no "adivinan" en los sitios, simplemente siguen los enlaces. Una araña malintencionada que "adivina" sería atrapada por la misma protección DoS / spam que el punto 2.

Por lo que puedo decir, la única diferencia significativa entre los dos es la paz mental imaginada. La posibilidad de que se tropiece con la URL hace que la gente se ponga nerviosa y el inicio de sesión hace que las cosas se sientan seguras, a pesar de que parecen comparables según los puntos anteriores. Sin embargo, la opción de URL sigue siendo feels , por lo que debería ser mucho menos segura. ¿Qué es lo que no estoy considerando?

EDITAR: Aparecen muchos problemas de errores humanos válidos. Esta pregunta fue inspirada por un cliente que implementa un grado de seguridad a prueba de personas: inicio de sesión de vpn a través de un llavero, reguladores de pantalla, tiempos de espera de inactividad de 5 minutos, apagón de redes sociales, etc. como mirar los hombros o "¡Ups! ¡Publiqué el enlace a twitter!". Estoy buscando una respuesta más sistemática, o al menos una más satisfactoria que "el error de los humanos".

EDIT 2: Gracias por señalar el posible duplicado . En mi humilde opinión, creo que cada uno tiene un valor como una pregunta individual. Esa pregunta aborda específicamente la seguridad de la imagen y se adentra en métodos alternativos para proteger y codificar esos datos (por ejemplo, la codificación base64). Esta pregunta aborda más específicamente el concepto de secreto frente a oscuridad, y lo aplica a por qué un inicio de sesión es mejor que un URI independiente del tipo de datos en cuestión. Además, no creo que la respuesta aceptada allí explique mi pregunta en particular tan profunda o exhaustivamente como la excelente respuesta de @ SteveDL a continuación.

    
pregunta CodeMoose 12.05.2015 - 22:14
fuente

6 respuestas

67

Me extenderé en un punto a un nivel un poco más abstracto sobre por qué los espacios públicos autenticados son preferibles a los espacios ocultos no protegidos. Las otras respuestas son todas perfectamente buenas y enumera los ataques múltiples que uno debería saber mejor para evitar.

Todas las personas con capacitación formal deberían haber escuchado en algún momento el Principio de seguridad de diseño abierto . Afirma que los sistemas no deben confiar en que los detalles de su diseño e implementación sean secretos para su funcionamiento. ¿Qué nos dice eso acerca de las contraseñas secretas frente a las URL secretas?

Las contraseñas son secretos de autenticación. Son conocidos por una entidad impugnada que los proporciona a una entidad retadora con el fin de autenticarse. Ambas partes necesitan una forma de almacenamiento y un canal de comunicación. Robar la contraseña requiere comprometer cualquiera de los tres. Típicamente:

  1. El usuario debe ser atrapado o forzado a revelar la contraseña
  2. El servidor debe ser pirateado para que revele una versión con hash de la contraseña
  3. La confidencialidad del canal entre el usuario y el servidor debe estar comprometida

Tenga en cuenta que hay muchas formas de reforzar la autenticación, comenzando por agregar un factor de autenticación adicional con diferentes requisitos de almacenamiento y canales de transmisión, y por lo tanto con diferentes canales de ataque (principio de separación de privilegios).

Ya podemos concluir que las URL oscuras no pueden ser mejores que las contraseñas porque en todos los vectores de ataque en las contraseñas, la URL es conocida (2 y 3) u obtenible (1).

Las URL oscuras , por otro lado, se manipulan mucho más comúnmente. Esto se debe en gran parte al hecho de que múltiples entidades automatizadas y manuales en el ecosistema de Internet procesan las URL de forma rutinaria. El secreto de la URL se basa en que está oculto a simple vista , lo que significa que todos estos terceros deben procesarla como si fuera un producto público, ya conocido, exponiéndolo a los ojos. de todo. Esto conduce a múltiples problemas:

  • Los vectores a través de los cuales se pueden almacenar, transmitir y copiar estas URL oscuras son mucho más numerosos
  • No se requiere que los canales de transmisión estén protegidos por confidencialidad
  • No se requiere que los espacios de almacenamiento estén protegidos por confidencialidad o integridad, ni que se controlen para detectar fugas de datos
  • La vida útil de las URL copiadas está, en gran medida, fuera del control de los principales clientes y servidores originales

En resumen, todas las posibilidades de control se pierden inmediatamente cuando necesita que un secreto sea tratado abiertamente. Solo debe ocultar algo a simple vista si es imposible para terceros entenderlo. En el caso de las URL, la URL solo puede ser funcional en todo el ecosistema de Internet (incluido su el navegador del cliente, una variedad de servidores DNS y su propio servidor web), si es que tiene sentido, debe mantenerse en un formato en el que sus adversarios puedan usarlo para dirigirse a su servidor.

En conclusión, respeta el principio de diseño abierto.

    
respondido por el Steve DL 13.05.2015 - 01:03
fuente
52

Ya que estamos hablando teóricamente, aquí hay varias razones por las que una URL aleatoria por sí sola no es suficiente para proteger los datos confidenciales:

  • Las URL se pueden marcar como favoritos.
  • Las URL se registran en el historial del navegador (quiosco público).
  • Las URL se muestran en la barra de direcciones (surfistas).
  • las URL se registran (piense en un proxy de terceros).
  • Las URL se pueden filtrar a través de los encabezados de referencia

No estoy seguro de algunos de sus puntos.

¿Está diciendo que este servidor web / sitio web / plataforma potencial de hecho tiene una protección de directorio difusa, o es hipotético?

Aun así, no protege contra los elementos que mencioné anteriormente.

    
respondido por el k1DBLITZ 12.05.2015 - 23:42
fuente
11
  

Sin embargo, adivinar la URL es ciego. Requiere estar en el dominio correcto (y subdominio)

     

Sin embargo, la mayoría de las arañas respetables no "adivinan" los sitios, simplemente siguen los enlaces ’

Considerar que los principales motores de búsqueda no son respetables es una posición defendible, pero no cambia el hecho de que hacen más que seguir enlaces. En particular, los motores de búsqueda pueden y, de hecho, enumeran las entradas de DNS, por lo que la simple existencia de un subdominio es un riesgo.

Muchas cosas terminan en Google a pesar de que las personas juran que nunca lo hicieron desde cualquier lugar y que Google no devuelve ninguna página que se vincule al sitio.

Esto se suma al problema de que las personas generalmente no tratan las URL como confidenciales y que las URL aparecen en todo tipo de lugares, como los registros de servidor, navegador y proxy. Las URL también son visibles y utilizadas por muchas más extensiones de navegador que por contraseñas. Si el sitio "oculto" tiene enlaces salientes, es probable que la URL aparezca en los encabezados Referer: .

También existe el riesgo de que a través de una configuración incorrecta, un enlace al sitio oculto aparezca en un lugar no oculto, por ejemplo, si el sitio oculto está alojado en un sitio que ofrece un servicio de búsqueda local.

  

La página de inicio de sesión está vinculada desde un sitio web: es un muro visible para que un atacante pueda atacar. Es evidencia de que existe algo por lo que vale la pena atacar.

Eso no tiene sentido. Use un software decente y una contraseña generada al azar, y no hay una superficie de ataque que valga la pena perseguir. En contraste, un directorio oculto ni siquiera parece algo que valga la pena atacar, sino algo que está abierto al público.

Una URL secreta es particularmente propensa a los riesgos porque si la URL se filtra accidentalmente y un motor de búsqueda la descubre, todo el contenido del sitio quedará expuesto a través de ese motor de búsqueda. Una contraseña no falla tan catastróficamente: si la contraseña se filtra, todavía se toma alguna acción voluntaria para que alguien comience a descargar los datos, no inicia automáticamente una maquinaria que la publicará para que todos la vean.

    
respondido por el Gilles 13.05.2015 - 00:00
fuente
3

Estoy de acuerdo con las otras respuestas en que es una mala idea, simplemente porque las personas (= > developers = > aplicaciones que registran información) no consideran que las URL sean privadas y, por lo tanto, hay muchas maneras diferentes en que < em> key podría ser filtrado. Sin embargo, lo que sí ha reconocido correctamente es que las contraseñas son esencialmente una forma de seguridad en la oscuridad. Y que conceptualmente no hay nada de malo en el esquema que estás proponiendo. El único problema se presenta debido al hecho de que el esquema que está proponiendo está haciendo un mal uso de los sistemas de una forma que no fue para ellos.

  

Incluso usando una cadena de dos palabras, débil para el diccionario, tanto para la contraseña como para la URL, todavía hay miles de millones de opciones que se pueden adivinar. Colocarlo en la URL no reduce mágicamente esa lista.

Es cierto, pero tampoco lo hace más seguro.

  

Las páginas de inicio de sesión pueden tener protección contra fuerza bruta, por lo que un atacante obtendría 20 intentos optimistas de adivinar. Las adivinanzas de URL tendrían que ser detectadas por el DoS del servidor o la protección contra correo no deseado, y pueden permitir 200 suposiciones que generan 404 si está anticipando un ataque, aún no es estadísticamente significativo para miles de millones de opciones.

Si está anticipando un ataque, probablemente lo limitará por igual a las mejores prácticas para la protección de fuerza bruta para su tipo de aplicación. Así que, de hecho, no es peor si se hace correctamente , pero definitivamente no es mejor y probablemente será peor, ya que tendrá que hacer mucho más trabajo personalizado.

  

La página de inicio de sesión está vinculada desde un sitio web: es un muro visible para que un atacante pueda atacar. Es evidencia de que existe algo por lo que vale la pena atacar. Adivinar la URL, sin embargo, es ciego. Requiere estar en el dominio correcto (y el subdominio), y operar con fe en que, incluso después de decenas de miles de conjeturas incorrectas, todavía vas a subir algo.

Absolutamente cierto, y por esta razón he visto a algunas compañías que ocultan sus páginas de inicio de sesión de intranet en URL ligeramente impredecibles. ¿Es algo en que confiar? Definitivamente no. ¿Es algo que podría detener a ciertos atacantes de bajo perfil? Definitivamente.

De cualquier manera, esto, sin embargo, solo proporciona un beneficio limitado por sí mismo en comparación con una gran compensación como se describe en el primer párrafo.

  

La URL tiene una susceptibilidad adicional de ser indexada / arañada externamente. Sin embargo, la mayoría de las arañas respetables no "adivinan" en los sitios, simplemente siguen los enlaces. Una araña malintencionada que "adivina" sería atrapada por la misma protección DoS / spam que el punto 2.

El único problema con las arañas es que pueden encontrar un caché aleatorio en algún lugar donde la URL esté vinculada e indexar esto de una manera que sea más fácil de encontrar para otros. Adivinar al azar no es un problema.

    
respondido por el David Mulder 14.05.2015 - 00:10
fuente
-2

Personalmente he usado HTTPS-with-Unguessable-URL como un protocolo para entregar archivos de forma segura. Con el historial del navegador desactivado en el lado receptor, y si la URL se comunica de forma tan segura como lo sería una contraseña, esto es más seguro que una página de inicio de sesión de HTTPS. Lo cual es mucho menos seguro que, por ejemplo, GnuPG.

    
respondido por el Atsby 13.05.2015 - 03:11
fuente
-3

Como han dicho otros, si planea dejar este directorio y sitio web durante uno o dos días con información y datos confidenciales y está en un momento crítico muy serio, entonces esto estaría bien pero no sería la "mejor práctica". En otras palabras, no es recomendable, pero si crees que debes aprovechar la oportunidad.

El problema principal con este concepto es ¿qué sucede si el cliente tiene un rootkit o un registrador de claves en su máquina? ¿Qué pasa si otra parte obtiene el enlace? Lo que estoy diciendo es que cualquier persona que obtenga este enlace podrá acceder a esta información confidencial. Yo pondría un inicio de sesión rápido en la página para permitir solo el acceso a los clientes para los que están los datos.

    
respondido por el 702cs 13.05.2015 - 00:52
fuente

Lea otras preguntas en las etiquetas