Cómo cualquiera puede ver la fuga de información de tus sitios HTTP usando las Matemáticas
1. Cómo cualquiera puede ver la fuga de
información de tus sitios HTTP usando las
Matemáticas
Manu Alén
SoftCrim
Córdoba [España]
Abstract: Los sitios HTTP son las webs preferidas por los atacantes para realizar un sencillo Man In The
Middle y poder acceder a toda la información posile acerca del sitio web y poder ver a las credenciales
de la víctima. Si a esto le sumamos que la gente frecuenta a conectarse a redes Wi-Fi públicas,
obtenemos un problema mayor, puesto que cualquiera podría conectarse a la misma red Wi-Fi y por
ende, conseguir ver credenciales y demás información que a priori se considera privada. Es por esto que
esta investigación se centrará en resolver toda la problemática de lo sencillo que es obtener información
de sitios HTTP de una forma Matemática, con ecuaciones.
1. Introducción
Como bien es sabido por muchos expertos en Seguridad Informática, cuando te conectas a una web
que va en HTTP, por el puerto 80 y haces login, obtener esas credenciales para un atacante, es tan sencillo
como abrir un analizador de tráfico de red, por ejemplo WireShark ya que se usa bastante, y escribir un
filtro- http.request.method==POST- para que nos aparezca únicamente el “paquete de información” que
contenga el POST del login.
Pero este problema, debe explicarse mediante una ecuación, hasta hoy desconocida, para que
cualquier investigador o atacante con malas intenciones tenga claro el esquema, los pasos a seguir y todo
lo que debe tener en cuenta para que este ataque de Man In The Middle sea efectivo y podamos obtener
las credenciales de la víctima o las cabeceras de las web en HTTP.
2. Este trabajo de investigación científica-de “matematizar” este problema de seguridad- ha sido
realizado durante 2 semanas, después de estar más de 2 años observando este problema el cual hasta este
trabajo, no se conocía una ecuación, una fórmula que lo explicase.
Datos del registro
A la hora de registrárse en una web que navega bajo HTTP. Es frecuente encontrarse con un
formulario en el que nos solicitan que proporcionemos datos tales como el nickname que queramos
disponer en dicha web, la contraseña-que la suelen pedir en dos ocasiones para asegurarse que se ha
escrito correctamente, aunque no es extraño ver sitios webs que solamente piden escribir la contraseña
una vez- el correo electrónico, posiblemente el teléfono,etc.
Los datos que pidan, dependerá, obviamente del sitio web, por ejemplo, si se trata de una tienda
online, no sería raro que pida datos tales como dónde vives o incluso su número de tarjeta de crédito. Esto
lo podemos ver en el formulario de registro de una web de una empresa conocida como es Domino’s
Pizza .
Si se trata de una web que navega bajo HTTP, sin uso del protocolo TLS/SSL, cualquier persona que esté
conectada a la misma red que nosotros, podrá, mediante un analizador de tráfico red, saber las
credenciales que he usado en el registro. A continuación se ilustrará cómo es posible acceder a todas las
credenciales usadas en el registro en la web, que va en HTTP, Domino’s Pizza.
3. Con esto, un científico que sienta la necesidad de “matematizar” este comportamiento y disponer, en
una fórmula sencilla, los datos que podemos obtener cuando la víctima se registra en una web en HTTP,
tendríamos que definir la variable 𝐷 𝑅. Así pues, tendríamos que definir esta variable de la siguiente
manera:
𝐷 𝑅 = 𝑈 + 𝑃𝑠𝑠 + 𝐶𝑜
Siendo 𝐷 𝑅 los “Datos del registro”, U el usuario, 𝑃𝑠𝑠 la contraseña y 𝐶𝑜 el correo electrónico.
Si pidiesen más datos, solamente tendríamos que añadirlo en la suma. Además, hay que destacar que en
algún sitio web, pueden pedir que escribas en 2 ocasiones la contraseña y el correo, o que escribas 2
veces solamente la contraseña y no el correo y viceversa, con esto, la expresión nos podría quedar de las
siguientes formas:
𝐷 𝑅 = 𝑈 + 2𝑃𝑠𝑠 + 2𝐶𝑜
𝐷 𝑅 = 𝑈 + 2𝑃𝑠𝑠 + 𝐶𝑜
𝐷 𝑅 = 𝑈 + 𝑃𝑠𝑠 + 2𝐶𝑜
Dicho esto, ya hemos definido los datos que podemos obtener del registro que realice la víctima en una
web en HTTP. Decir también, que en el presente artículo, se despreciará la opción de que un usuario
reutilice la misma contraseña para más de un sitio web, con lo que obtenidas estas credenciales de esta
manera, ya tendríamos la información suficiente para acceder a todas sus identidades digitales.
Login
Si fuésemos unos atacantes, si hubiésemos realizado el ataque en el proceso anterior, ya tendríamos
información suficiente para acceder a la cuenta de nuestra víctima, pero como somos investigadores y
queremos definir todos los puntos de ataque, todos los puntos de donde podemos obtener información
de una víctima o de la misma web, debemos definir los datos a los que son posibles acceder de un sitio
web en HTTP.
La mayoría de las webs piden exclusivamente un usuario y una contraseña, con lo que definir de manera
matemática los datos que podemos obtener al hacer login, es también muy sencilla y quedaría definida
de la siguiente manera:
L= U+𝑃𝑠𝑠
Es importante decir, que estamos obviando la posibilidad de que la víctima en cuestión, esté usando un
2FA, es decir, un Segundo Factor de Autenticación. Pero reitero, el presente artículo se centra
únicamente en “matematizar” los datos que podemos observar de una web en HTTP. Aunque existe la
opción de realizar un Spear Phishing y obtener de X manera los códigos de aplicación, pero esto es
objeto de estudio para un trabajo posterior.
4. Información de la web
La última información que podemos obtener en un ataque de Man In The Middle pertecen a la
información de la web que va en HTTP. Una web en HTTP se divide en 3 partes distintas:
- Línea Inicial
- Cabeceras
- Cuerpo [Este es optativo]
Si quisiérmos focalizar nuestro ataque a la web en cuestión, obtener la máxima información posible de
estas 3 estructuras, es algo importantísimo. Debido a esto, deberemos montar la siguiente matriz.
IIU=
0 𝐿𝑖1 𝐶1 𝐶 𝑢1
−𝐿𝑖1 0 −𝐶 𝑢1 −𝐶1
𝐿𝑖2 𝐶2 0 𝐶 𝑢2
−𝐶2 −𝐿𝑖2 −𝐶 𝑢2 0
Siendo Lin la “Línea Inicial”, Cn las “Cabeceras” y Cun, el “cuerpo”
Y así se finaliza con el proceso de definir todos los datos que podemos obtener de una persona que esté
navegando en una en HTTP. Aunque nos queda enunciar algo muy importante, y es que para realizar el
ataque y ver toda esta información, necesitamos coincidir con la víctima, es decir, que justo cuando
realicemos el ataque, la víctima haga login o se registre a una web en HTTP.
La frecuencia y el tiempo
Con este apartado, terminaríamos de definir el ataque. Y es que es necsario conocer la frecuencia con la
que se conecta la víctima en cuestión y durante cuánto tiempo se conecta, así pues, tendríamos una
relación directamente proporcional entre frecuencia y tiempo.
𝜗 ∙ 𝜏
Con esta exresión ya tendríamos terminado nuestro trabajo y nuestra teoría, pero si quisiéramos
desarrollar la expresión anterior, tendríamos que tener en cuenta dos cosas:
- Si la víctia se suele conectar siempre a la misma hora
- Si la víctima se conecta de manera irregular
5. El primer caso, se trataría de un m.r.u [movimiento rectilíneo uniforme] y el segundo caso de un
m.r.u.a [movimiento rectilíneo uniformemente acelerado] ya que depende si se conecta de manera
constante y regular o no, así pues, la expresión anterior si se desarrollase, quedaría.
𝜗 ∙ 𝜏 =
𝑣
𝜆
=
𝑒
𝑡
𝜆
=
𝑒
𝑡𝜆
No obstante, para desarrollar la expresión anterior según el segundo caso, el de m.r.u.a os quedaría
una expresión más larga.
Pero primero deberemos de enunciar 2 ecuaciones principales de un m.r.u.a
X-X0=v0t +
𝑎𝑡2
2
V=v0+at
Así pues…
𝜗 ∙ 𝜏 =
𝑣
𝜆
=
[𝑣0+𝑎𝑡]𝑡
𝜆
=
𝑣0 𝑡+𝑎𝑡2
𝜆
Despejamos v0t en la ecuación del movimiento…
x-x0-
𝑎𝑡2
2
= v0t
Sustituimos…
x−𝑥0−
𝑎𝑡2
2
+𝑎𝑡2
𝜆
Debemos tener en cuenta que x0 es la posición inicial, en nuestro caso, la página inicial, que
entenderemos que es Google, y al ser HTTPS, x0=0.
x−𝑥0−
𝑎𝑡2
2
+𝑎𝑡2
𝜆
=
2𝑥+𝑎𝑡2
2
𝜆
=
2x+𝑎𝑡2
2𝜆
=
2x+𝑎𝑡𝑡
2𝜆
=
2x+𝑣𝑡
2𝜆
Siendo X la posición, es decir, la página HTTP en la que se encuentre la víctima; V la velocidad de los
datos; T el tiempo que está conectado.
Para definir 𝜆, tenemos que usar la definición de 𝜆 física, y es que la longuitud de onda [𝜆], es el
intervalo de longitud entre dos puntos sucesivos que se encuentran en idéntico estado de perturbación.
Así pues 𝜆, ahora es el intervalo de cuando se ha conectado y la última vez que se conectó
Dicho todo esto, nuestra fórmula final sería:
6. SHTTP= 𝜗 ∙ 𝜏[DR+L+IIU]
Obteniendo así una relación directamente proporcional que nos explica el comportamiento de las
páginas HTTP, que permiten de manera muy sencilla, que cualquier atacante tenga a su disposición los
datos que ya han sido citados en el presente artículo.