Descifrando SSL a través de una red móvil

1

Trabajo para una empresa grande y estamos tratando de juzgar la seguridad de cierta información patentada que se envía y recibe en una nueva aplicación que estamos desarrollando.

Después de nuestras pruebas iniciales, nos dimos cuenta de que podríamos realizar fácilmente un ataque MitM con Fiddler a través de WiFi en muy poco tiempo, dejando un montón de información a la vista. Desde entonces, la cambiamos para que la información de propiedad de nuestra empresa no se pueda enviar a través de WiFi, sino solo a través de la red.

Entonces, la pregunta es: ¿es posible que alguien descifre nuestros paquetes HTTPS a través de la red móvil (posiblemente QXDM)?

Es comprensible que si obtienen nuestras claves privadas podrían hacerlo con wirehark, pero vamos a suponer que no será así.

Si conoce alguna metodología, nos gustaría probarla con nuestra aplicación.

Editar: agregar más información

Es una aplicación de Android que envía información importante de la empresa hacia y desde nuestros servidores. No nos preocupa que la gente pierda información personal (por ejemplo, alguien más la escucha), simplemente no queremos que nuestra información de la compañía sea desencriptada (una situación en la que un usuario final desencripta los paquetes https de nuestra aplicación). Pudimos descifrarlo fácilmente usando wifi y fiddler (desde que se modificó), necesitamos saber qué puede hacer un usuario para descifrar paquetes que se envían simplemente a través de la red entre nuestra aplicación y nuestro servidor.

    
pregunta Nefariis 27.01.2015 - 19:48
fuente

3 respuestas

1

Si pudo realizar una sesión SSL de MiTM, significa que su aplicación no está comprobando que el certificado sea emitido por una autoridad confiable. Herramientas como Fiddler utilizan certificados autofirmados, que deben ser rechazados por una capa SSL configurada correctamente. Desafortunadamente, los escritores de aplicaciones a menudo ignoran la necesidad de verificar los certificados y confían ciegamente en que SSL los protege sin entender cómo funciona SSL.

Pero hay otro problema más profundo. Si está tratando de proteger sus datos del usuario, y el usuario tiene acceso físico al dispositivo en el que se muestran los datos, se acabó el juego. No puedes proteger eso. La opción nuclear sería simplemente arrancar un depurador, volcar la memoria del dispositivo y examinarla en función de la información de su propiedad. Estoy seguro de que hay ataques más sofisticados que eso, eso sería más fácil, pero ese es el más obvio que me viene a la mente que sé que el 100% funcionaría.

Pero el punto es que, al mismo tiempo, no puede dar a un usuario acceso a los datos y evitar que accedan a ellos. Si los datos son de algún valor para lanzar un ataque incluso semi-sofisticado, alguien lo hará.

    
respondido por el Steve Sether 28.01.2015 - 03:22
fuente
1

Lo primero es lo primero:

Si la aplicación es propensa a un mitm a través de wifi, cambiar los medios de comunicación no resolverá el problema. Si el canal de comunicación fue el único cambio realizado , puedo declarar rápidamente que sí, su aplicación aún es vulnerable a los ataques mitm, lo único que necesita el atacante es tener acceso a la red del operador (y a juzgar por la forma en que eligen sus contraseñas, no diría que sería tan difícil de lograr para una persona suficientemente motivada ...).

Una de las formas en que puede proteger la aplicación para teléfonos inteligentes es implementar Identificación de certificados . OWASP tiene una página muy extensa sobre el tema y una hoja de trucos más orientada a dispositivos móviles sobre el tema.

Por lo tanto, no debes centrar tus esfuerzos en donde fluyen tus datos, porque la vulnerabilidad no depende de eso.

También tenga en cuenta que la fijación de certificados no es una panacea, ya que no lo protegerá de los ataques mitm dirigidos al teléfono móvil, pero es eficaz contra los ataques mitm basados en la red.

EDIT:

Si nos olvidamos de la intercepción de proxy por un minuto, hablaremos de descifrado SSL puro y dependerá de los posibles ataques SSL que se apliquen al túnel establecido. Debe verificar la versión TLS (SSL debe estar prohibido) y los cifrados admitidos. Hay MUCHOS ataques que apuntan a paquetes SSL para el descifrado del túnel. Uno de ellos se descubrió dentro de unos meses, el mercado de seguridad tomó conciencia de POODLE no solo en SSL, sino también en TLS. Los investigadores incluso encontraron que era capaz de explotar TLS v1.2 , dependiendo de los cifrados utilizados para establecer el túnel encriptado.

Si le preocupan las amenazas internas, una preocupación crítica es el almacenamiento de texto claro de información confidencial. Desde los archivos de preferencias compartidos hasta las bases de datos abiertas de sqlite, esta es una de las principales vulnerabilidades móviles en la actualidad. También tenga en cuenta que el código fuente se puede invertir de manera trivial, según la plataforma (Android, por ejemplo).

    
respondido por el DarkLighting 27.01.2015 - 21:33
fuente
0

Debes seleccionar cuidadosamente:

  • Las suites de cifrado permitidas por su software, algunas son muy sólidas y deberían tener privilegios, otras son menos sólidas y deberían habilitarse solo si existe algún problema de compatibilidad con su servicio, otras son débiles y deberían deshabilitarse a toda costa.
  • La versión de SSL / TLS que usted permite, en realidad debería decir la versión de TLS ya que, luego del ataque de Poodle, SSL v2 y v3 se desactivan progresivamente en general.

El tipo de ataque principal que alguien puede tomar contra una conexión con seguridad SSL cuando está en la posición MiTM sería tratar de degradar la negociación del protocolo de enlace para obligar a los hosts a usar una versión de protocolo débil o suites de cifrado, por eso es importante deshabilitarlos explícitamente.

Además, no sé si su caso específico podría estar abierto a dicha amenaza, pero no ignoro la amenaza causada por los usuarios finales que hacen clic ciegamente en el botón "Aceptar" cuando se le solicita una alerta de certificado de servidor desconocido, en En tal caso, el "alguien" solo tiene que generar su propio certificado y descifrar la comunicación localmente ...

    
respondido por el WhiteWinterWolf 27.01.2015 - 22:33
fuente

Lea otras preguntas en las etiquetas