2021/02/16

Consejos para compartir información

Esta entrada es el resultado de emprolijar y extender lo conversado en Servidor MQTT en casa (en red privada)

 

Contexto


MQTT es un protocolo para el intercambio de mensaje en modo publisher/subscriber, esto es, que cada nodo se subscribe a un nombre de "topic" y publica o lee ahí, muy utilizado en IoT.

En una situación normal basta con que un nodo que tiene una dirección IP pública escuche en el puerto apropiado (1883 u 8883) pero a veces los proveedores de internet no dejan pasar el tráfico y además hay que lidiar con NATeos (cuando tras una IP se esconden muchas máquinas).

En la conversación se habla de cómo configurar el router de Fibertel y algunas ideas para diagnosticar y configurar la conexión.
 

En algún momento, uno se siente tentado de decir qué router tiene e incluso la IP, lo cual puede no ser buena idea y también mostrar capturas de pantallas con información de la red.
 

Esta información puede ser aprovechada por algún atacante, veamos los detalles:

 

IP

 

La IP es el punto de entrada para el atacante, el resto es información complementaria.
 
Aún sin tener la IP, el atacante puede mandar un mail a la persona o a todo el grupo con algo interesante que contenga un link a un sistema que tome nota de la IP de origen, que probablemente sea la de interés para el atacante. Bien puede ser en el caso de MQTT, "tengo este servidor si querés probar" o "fijate esta documentación".

 

Puertos abiertos  

 

En esta imagen se pueden ver los puertos abiertos y unas etiquetas que me sugieren la función de los equipos:

 
Port Forwarding
Port Forwarding

 

Direcciones MAC

 

MAC Addresses
MAC Addresses


 
En la otra, las direcciones MAC. ¿qué importa si son internas? Pues ocurre que la mitad izquierda es el identificador de la marca de la placa y hay bases de datos que incluso llegan a determinar qué equipo, por ejemplo si es una RPI, un router, un celular, la marca, si es placa wifi o ethernet, depende... y cuando no está en la base de datos podés suponer que es un VM.
 
Veamos... mmh, aburrido, pero algo es:
 
68:b5:99    Hewlett Packard
40:30:04    Apple
58:55:ca    Apple
00:23:6c    Apple
4c:0f:6e    Apple

 
Estoy seguro que había manera de obtener más información, pero no recuerdo dónde, lo anterior lo saqué de los dos primeros buscadores online, luego, escarbando un poco más y haciendo el proceso inverso a modo de ejemplo sin relación con las direcciones obtenidas:
 

 
00-10-5A-73-7F-81 corresponde a "Fast Etherlink XL in a Gateway 2000".
 
002000f0f85e es "Lexmark (Print Server)".
 
Las direcciones 02:42:xx:xx:xx:xx son de Docker.

 
Esto se combina con la información anterior para los puertos expuestos a internet.

 

Modelo Router

 

Podés decirlo explícitamente en un mensaje o como en la primera imagen estar en la misma captura. 

 
Fijate que alguien que se dedica quizás pueda determinar marcas e incluso modelos de dispositivos por otra información de la imagen, aunque hayas borrado de ésta lo evidente, por ejemplo por el diseño o por mensajes tipo "soporta 32 entradas".

 

Combinación

 

Combinando toda esta información, el atacante esta en mejores condiciones sin haberte tocado. Esto es que te gastaste un montón de plata en tu IDS (Intrusion Detection System: sistema que podría detectar una exploración de red equivalente y alertarte) y no te detectó nada. Si el atacante quiere explorarte desde afuera o ya logró meter apenas el piecito, su exploración va a ser mucho más específica y discreta, reduciendo las probabilidades de que le detectes.


Pero la pregunta es, ¿por qué y cómo podría alguien atacarme?

 

Cómo

 

Conociendo la IP y los dispositivos disponibles, puede haber que alguno tenga vulnerabilidades conocidas y quien ataca sólo tiene que buscar en internet un script que sirva.

 

Por qué

 

Yo lo haría para divertirme o practicar, al menos la parte de exploración, si no fuera por que a la gente no le gusta que le hagan estas cosas, igual podría hacerlo desde un nodo gratuito de aws/azure/googleXXX. Además se parece demasiado a trabajar y eso le quita la diversión

Otras personas podrían estar buscando armar una botnet o tener una curiosidad menos restringida que la mía.

O quizás trabajás en un lugar importante y sos sólo un medio para llegar hasta ahí. Considerá que últimamente (desde el covid) ha aumentado de modo infernal el trabajo desde el hogar, haciendo que hayamos pasado de un grupo con un cierto conocimiento técnico a una inmensa masa heterogénea de usuarios, todos conectados por VPNs a sus trabajos. Como atacante no me interesás, me interesa tu VPN y tengo que pasar por tu casa. Es como si vivieras en una casa con sótano al lado de un banco.

En la lista donde se originó esta conversación hay 5000 personas, con un 0.1% de malicia ya tenés 5 personas interesadas. Además, esta lista es pública, puede estar siendo monitorizada por una cantidad indefinida de personas.

En realidad, el mayor riesgo que corrés en el día a día con tu router conectado a internet (no hay más remedio, no? para qué querrías el router si no?) no viene por acá sino de los ataques automátizados, para los cuales tenés que hacer hardening, a continuación.
 
Tambien está la cuestión de disciplina e imagen, puede ocurrir que un potencial cliente o empleador exigente considere en sus decisiones tus acciones online.

 

Cómo lidiar con el error

 

  • Vía web eliminar el mensaje, luego reenviarlo correctamente. Igual hay a quienes les ha llegado por mail o ya lo han visto en la lista desde la página.
  • Cambiar los puertos.
  • Refrescar la IP si era dinámica.
  • Hardening de los equipos (esto hay que hacerlo de todos modos...)
    • Cambiar credenciales por defecto
    • Poner credenciales fuertes y/o usar certificados
    • Actualizar firmware
    • Poner un WAF o firewall configurado para lo que estés protegiendo
    • etc..
Cuando ves que fue otra persona la que publicó su información, consultale antes de avisar públicamente para darle oportunidad de protegerse. Aunque yo pido permiso, "la ley de la selva de la ciberseguridad" contempla que cuando otro mete la pata se le avisa pero si no responde, pasado un tiempo se hace público el asunto para el beneficio común. Y hay quienes por torpeza o porque no están de acuerdo con la Responsible Disclosure, te pueden prender fuego.

 

¿Cómo hago para compartir información en la lista de modo útil y menos inseguro?


Ok, ya tengo para este tipo de información un cierto criterio para elegir si exponerla o no, pero, no me dedico a la seguridad de la información, ¿cómo hago para no volver a meter la pata? Es una interminable cadena de "si" y relaciones tenues entre el riesgo que estés dispuesto a aceptar, el costo de ofuscar la información y los beneficios de exponerse.

La manera es ponerse en el lugar del otro y pensar si la información que se expone nos hace únicos, no es sencilla de obtener por otros medios, podría formar parte de una cadena de dependencias y para acceder a un recurso protegido.

Todo esto basado en que hay que saber lo más posible de tecnología y prestar atención a corregir cuando metas la pata.






No hay comentarios:

Publicar un comentario