Hace unas pocas semanas se publicó aquí, en
Un informático en el lado del mal, un artículo donde se explicaba
cómo montar tu propio servidor VPN sobre una Raspberry Pi utilizando OpenVPN y añadiendo Latch para proteger tanto los accesos
SSH a
Rapberry Pi como las conexiones
VPN. Pero aún se podían añadir nuevas medidas de seguridad para dotar al sistema de alguna capa de protección extra.
|
Figura 1: Tu propio servicio VPN en casa sobre Raspberry Pi con OpenVPN, Latch y Virus Total. |
Tras su publicación,
Chema Alonso me propuso que le diera una nueva vuelta de tuerca a la idea añadiendo una capa extra de seguridad similar a la que ofrece el servicio de
Clean Pipes que Telefónica proporciona para dotar de seguridad a sus clientes desde la red, ahora tenemos disponible una herramienta para monitorizar el tráfico
HTTP que pasa por nuestra conexión
VPN para detectar malware o ataques que puedan llegar por la red.
Al final la
PoC se llama
SniffVPN, y es una herramienta escrita en
Python que captura las peticiones
GET HTTP que son enviadas a
VirusTotal para su análisis de seguridad.
SniffVPN también deja un registro de log con la fecha de la petición, la dirección
IP real desde la que se accede a la conexión
VPN, la dirección
IP que asigna el servidor
OpenVPN, y la información del servidor al que se conecta, es decir, la dirección
IP destino, el puerto origen y destino, y la dirección
URL completa de la petición.
|
Figura 3: Visualización de los logs de las peticiones HTTP realizadas vía OpenVPN |
El funcionamiento de esta herramienta es muy sencillo. Basta con descargar los archivos desde el
GitHub oficial de SniffVPN y ejecutarlo dentro del servidor
Raspberry Pi con
Linux en el que hemos configurado el servicio
OpenVPN protegido con
Latch.
# cd SniffVPN-master
# python SniffVPN.py
Para que la ejecución funcione es necesario tener instalado Scapy y TCPdump, además, de por supuesto, OpenVPN instalado y funcionando, para que se pueda comenzar a capturar el tráfico que pasa por la conexión.
# apt-get install python-scapy tcpdump
Cuando la herramienta está en ejecución se puede acceder a un panel web para visualizar de forma sencilla la información de los logs, así como los informes que se reciben de
VirusTotal y saber si alguna
URL está infectada. Si se ha visitado una
URL infectada se podría dar el caso de que
la caché esté infectada y se podría identificar el equipo en el que ha pasado, así como el acceso directo al análisis que se ha realizado en
VirusTotal para comprobar los resultados.
|
Figura 6: Reporte de los análisis. Nota: El archivo de El lado del mal no está infectado. |
|
Figura 7: Visualización de los logs en el panel web. |
En la vista principal del panel web se pueden ver a modo resumen las últimas
URLs visitadas, así como las últimas
URLs maliciosas detectadas.
|
Figura 8: Vista principal del dashboard |
El proyecto actualmente se encuentra en fase alpha, es decir una versión poco estable y en fase de pruebas pero en continuo desarrollo, por lo que puede que aparezcan bugs. Se trata de un proyecto Open Source por lo que es posible ayudar en su desarrollo y sus mejoras. Entre las cosas que se pretender mejorar e implementar están:
- Bug fixes, bug fixes, bug fixes…
- Reporte de las URLs al propio antivirus del sistema
- Poder usar filtros en las tablas del panel web
- Compatibilizarlo con otros sistemas como Raspbian o Kali para ARM
- Capturar las peticiones HTTPs con proceso de Bridging HTTPs
Autor: Álvaro Nuñez
No comments:
Post a Comment