[HACK] Opciones VPN "seguras" para iPhone

Roman Medina-Heigl Hernandez roman at rs-labs.com
Tue Mar 27 12:01:18 CEST 2012


Jesus Cea escribió:
> On 26/03/12 11:30, Roman Medina-Heigl Hernandez wrote:
>> .ovpn creo recordar que puedes decirle que haga reset completo del
>> tunel cuando haya pérdida de conectividad; en este caso, entiendo
>> que puede haber una ventana de tiempo -mínima- durante la cual las 
>> rutas "viejas" (aka sin cifrar) se establecen, para posteriormente 
>> reactivarse las rutas "cifradas" (no se si me explico... :)).
> 
> El ataque es muy evidente: Estoy en una red "hostil" y el atacante o
> me filtra el puerto OpenVPN o me hace proxy ARP o similar y,
> básicamente, hace que mi túnel deje de funcionar.

Esta posibilidad existe, como bien dices. Yo lo que haría para mitigar (que
no evitar) lo de "filtrar el puerto de ovpn" es correr el openvpn en el
443/tcp, lo cual tiene también la ventaja adicional de tener cubierto
también el caso de que en tu red solo se pueda salir via proxy
(corporativo, que haya montado la organización del evento, o lo que sea; el
cliente ovpn también soporta proxy). Con eso y con todo, también te pueden
filtrar en el proxy, etc. Pero vas complicando la cosa un poquito más, te
haces algo más invisible... Por tanto, algo mejoras, aunque no evitas 100%
la problemática, esto es cierto.

De todas formas, como comenté, el punto es ver la config de .ovpn. Si lo
tienes de forma que "el tunel nunca se rompe", siempre intentará enviar
tráfico por el tunel, haya o no conectividad por debajo (si no la hay,
lógicamente no cursará tráfico, pero tampoco intentará enviar nada por
fuera del túnel, que es lo que tú buscas).

Sigo viendo que esto se puede afinar por el camino que indico (config
ovpn), afinando parámetros de keepalives, restart, etc.

> En ese caso prefiero quedarme sin acceso a internet que arriesgarme.
> Esa ventana "mínima" es suficiente para filtrar una clave, un chat, lo
> que sea, y liarla parda. Un datagrama vale.

Lo entiendo.

> No es tolerable.

Y comparto.

Aunque esto es como todo: si tienes una urgencia, ¿te la jugarías? Yo a lo
mejor si me surge la *necesidad* de ver el correo en una Defcon, nunca
usaría la wifi de allí sin tunel pero sí que usaría mi túnel (en las
condiciones que he comentado antes). Esto es, asumiría ese pequeño riesgo
del que he hablado, y acotaría la ventana de uso (no estaría todo el día
conectado, obviamente).

Es más, me fiaría más de mi solución que probablemente de utilizar 3g (para
que Taddong te haga un downgrade a gprs y te sniffe!!!).

Quiero decir, menos da una piedra :))

Aparte de que tu túnel también tiene su punto débil: tu ISP/carrier, que
podría sniffar, llegado el caso. Y no me vale que uses TOR (donde la poli
coloca nodos falsos y por tanto, también te pueden acabar pillando).

:)

>> Resumiendo, la posibilidad de que el openvpn "se rompa" y estés
>> cursando tráfico sin cifrar siempre existe. Aunque creo que es
>> relativamente pequeña (ya tienes que tener cierta mala suerte... y
>> encima no enterarte).
> 
> Bueno, en el portátil me lo he currado para que no exista en absoluto.
> Es un riesgo que me parece inasumible e intolerable.

Supongo que modificas el iptables con algún script y fuerzas que no salga
tráfico por fuera del túnel, no? Con ese tipo de aproximación, seguro que
puedes hacer algo similar teniendo el iphone con JB. Para que veas que el
JB también puede mejorar la seguridad, según como se mire! :)

> En el portátil lo tengo solucionado. En el móvil parece que no hay
> opción de hacer nada serio.
> 
>> Respecto a tener el DNS "capado", pienso que ya es rizar el rizo.
>> En mi caso, lo que sí tuve es que tunear el .ovpn para fijar unos
>> servidores DNS -los de google- mientras dure el túnel (así el
>> tráfico dns se tuneliza también).
> 
> Si dejas el DNS abierto, es trivial espiar tu tráfico. Basta con
> resolver cualquier petición DNS hacia un proxy, en la LAN o en
> Internet, y todo tu tráfico estará siendo espiado, por mucha VPN que uses.

Quizás no me he explicado. La config de .ovpn también permite setear, no
solo parámetros de rutado, sino otros parámetros de red, como p.ej el DNS.
En mi caso, el DNS era IP privada, dentro de mi red, pero en distinto
segmento. Al abrir un túnel en el que "por defecto todo pasa por él"
(excepto la IP del servidor Openvpn, por razones obvias), me quedaba sin
DNS (el túnel da acceso a Internet pero no a direccionamiento privado,
también por razones obvias). Por eso seteo con ovpn un DNS público, como el
de Google. Con esto:
- te evitas el problema que he comentado de "quedarte sin dns" (que además,
como lo pilla por DHCP de la wifi a la que estés conectado sería más
dificil fixearlo con routing, etc...)
- te aseguras de que el tráfico DNS va todo a través del tunel. Que es lo
importante :) (como bien dices, el tráfico DNS sin tunelizar sería un punto
débil muy chungo).

>> Si no hay tunel, el dns es "el que le toque" (según si esté
>> conectado por wifi -dhcp- o 3g/gprs). La configuración .ovpn
>> también evita el mitm (i.e. alguien que quisiera suplantar al
>> servidor VPN; hay autenticación mútua vía certs).
> 
> Lo sé. Si permito que un ataque controle mi DNS, estoy jodido, use VPN
> o no. La única opción segura es ignorar la configuración DNS recibida
> por DHCP, y tirar de servidores DNS de confianza en internet, y que
> ese tráfico DNS vaya también por el túnel.
> 
>> PD: Jesús, no te pinta hacer cross-posting! :-P
> 
> Ha sido un experimento interesante :-).
> 
_______________________________________________
Lista - https://mailman.jcea.es:28443/listinfo/hacking
FAQ - http://www.jcea.es/artic/hack-faq.htm
"una-al-dia" para estar siempre informado - http://www.hispasec.com/



More information about the hacking mailing list