Soy ingeniero de formación, pero me comunico más con empresarios y directores de producción. Hace un tiempo, el propietario de una empresa industrial se acercó a mí en busca de consejo. A pesar de ser una empresa grande, establecida en los años 90, la gestión y la contabilidad funcionan de manera anticuada en una red local.
Esto es consecuencia de la preocupación por su negocio y del aumento del control por parte del estado. Las leyes y normativas pueden ser interpretadas de manera muy amplia por los organismos de control. Como ejemplo, se pueden mencionar las enmiendas en el Código Fiscal, en infracciones fiscales, el hecho de destruir .
Como resultado, el propietario de la empresa comenzó a buscar soluciones para el almacenamiento seguro de información y la transferencia segura de documentos. Un "cofre virtual".
La tarea la elaboramos con el administrador de sistemas: se necesita un análisis profundo de las plataformas existentes.
- el servicio no debe ser en la nube, en el sentido clásico de la palabra, es decir, sin almacenamiento en las infraestructuras de una organización externa. Solo un servidor propio;
- se requiere un fuerte cifrado de los datos transmitidos y almacenados;
- es obligatoria la posibilidad de eliminar contenido de cualquier dispositivo con solo pulsar un botón;
- la solución fue desarrollada en el extranjero.
Propuse eliminar el cuarto punto, ya que las aplicaciones rusas tienen certificados oficiales. El director dijo claramente qué hacer con esos certificados.
Elegimos opciones
He seleccionado tres soluciones (cuantas más opciones hay para elegir, más dudas surgen):
- Open Source — proyecto , respaldado por el desarrollador entusiasta Jacob Borg.
- , supervisado por Resilio Inc. de EE. UU. (anteriormente, este servicio se llamaba BitTorrent Sync).
- Proyecto desde aplicaciones para sincronización. Registro en Chipre.
El propietario de la empresa tiene pocos conocimientos técnicos, por lo que elaboré un informe en forma de listas de ventajas y desventajas de cada opción.
Resultados del análisis
Syncthing
Ventajas:
- Código abierto;
- Actividad del desarrollador principal;
- El proyecto existe desde hace mucho tiempo;
- Es gratuito.
Desventajas:
- No hay cliente para la interfaz de iOS;
- Servidores Turn lentos (son gratuitos, por lo que tienen retrasos). Para aquellos que
no están al tanto, Turn se utiliza cuando no es posible conectarse directamente; - Configuración de interfaz compleja (se requiere experiencia de muchos años en programación);
- Falta de soporte comercial rápido.
Resilio
Pros: soporte para todos los dispositivos y servidores Turn rápidos.
Desventajas: Uno y muy significativo: la completa ignorancia por parte del servicio de soporte de cualquier consulta. Cero respuesta, incluso si se escribe desde diferentes direcciones.
Pvtbox
Pros:
- Soporte para todos los dispositivos;
- Servidores Turn rápidos;
- Posibilidad de descargar archivos sin instalar la aplicación;
- Servicio de soporte adecuado, incluido por teléfono.
Desventajas:
- Proyecto joven (pocas opiniones y buenas reseñas);
- Interfaz del sitio muy técnica y no siempre comprensible;
- No hay documentación detallada, muchas preguntas requieren contactar al soporte.
Lo que eligió el cliente
Su primera pregunta: ¿cuál es el sentido de desarrollar algo de forma gratuita? Inmediatamente se rechazó Syncthing. Los argumentos no funcionaron.
Después de un par de días, el cliente desestimó categóricamente Resilio Sync debido a la falta de soporte, ya que no estaba claro a dónde acudir en una situación anómala. Además, desconfianza hacia la dirección estadounidense de la empresa.
Para un análisis posterior, quedó Pvtbox Caja electrónica. Realizamos una auditoría técnica completa de esta plataforma centrada en la posibilidad de interceptación, descifrado de datos y acceso no autorizado al almacenamiento de información.
Proceso de auditoría
Analizamos las conexiones al iniciar el programa, durante su funcionamiento y en estado inactivo. El tráfico, según los estándares modernos, circula inicialmente cifrado. Intentaremos realizar un ataque MITM y sustituir el certificado "sobre la marcha" utilizando Linux (Xubuntu Linux 18.04), Wireshark, Mitmproxy. Para ello, introduciremos un intermediario entre la aplicación Pvtbox y el servidor pvtbox.net (hay un intercambio de datos con el servidor pvtbox.net a través de una conexión https).
Iniciamos la aplicación para asegurarnos de que el programa y la sincronización de archivos funcionan. En Linux, se puede observar el registro inmediatamente si se inicia el programa desde la terminal.

Apagamos la aplicación y sustituimos la dirección del host pvtbox.net en el archivo /etc/hosts con privilegios de superusuario. Sustituimos la dirección por la dirección de nuestro servidor proxy.

Ahora preparemos nuestro servidor proxy para un ataque MITM en la computadora con la dirección 192.168.1.64 en nuestra red local. Para ello, instalaremos el paquete mitmproxy versión 4.0.4.
Iniciamos el servidor proxy en el puerto 443:
$ sudo mitmproxy -p 443
Iniciamos el programa Pvtbox en la primera computadora, observamos la salida de mitmproxy y los registros de la aplicación.

Mitmproxy indica que el cliente no confía en el certificado reemplazado del proxy. También observamos en los registros de la aplicación que el certificado del proxy no pasa la verificación y la aplicación se niega a funcionar.
Instalamos el certificado del proxy mitmproxy en la computadora con la aplicación Pvtbox, para hacer que el certificado sea 'confiable'. En la computadora, instalaremos el paquete ca-certificates. Luego, copiaremos el certificado mitmproxy-ca-cert.pem del directorio .mitmproxy del proxy a la computadora con la aplicación Pvtbox en el directorio /usr/local/share/ca-certificates.
Ejecutamos los comandos:
$ sudo openssl x509 -in mitmproxy-ca-cert.pem -inform PEM -out mitmproxy-ca-cert.crt
$ sudo update-ca-certificates

Iniciamos la aplicación Pvtbox. El certificado nuevamente no pasó la verificación, la aplicación se niega a funcionar. Probablemente, la aplicación utiliza un mecanismo de protección Certificate pinning.
Un ataque similar se llevó a cabo en el host signalserver.pvtbox.net, así como en la propia conexión peer-to-peer entre nodos. El desarrollador señala que la aplicación para establecer conexiones peer-to-peer utiliza el protocolo abierto webrtc, que emplea cifrado de extremo a extremo con el protocolo DTLSv1.2.
Las claves se generan para cada establecimiento de conexiones y se transmiten a través de un canal cifrado a través de signalserver.pvtbox.net.
Teóricamente, sería posible interceptar los mensajes de oferta y respuesta de webrtc, reemplazar allí las claves de cifrado y tener la capacidad de descifrar todos los mensajes enviados a través de webrtc. Pero no se pudo realizar un ataque mitm en signalserver.pvtbox.net, por lo que no hay posibilidad de interceptar y reemplazar los mensajes enviados a través de signalserver.pvtbox.net.
Por lo tanto, no es posible llevar a cabo este ataque en las conexiones peer-to-peer.
También se descubrió un archivo con certificados que se suministra con el programa. El archivo se encuentra en la ruta /opt/pvtbox/certifi/cacert.pem. Este archivo fue reemplazado por un archivo que contiene un certificado confiable de nuestro proxy mitmproxy. El resultado no cambió: la aplicación se negaba a conectarse al sistema, en el registro se observaba el mismo error,
que el certificado no pasa la verificación.
Resultados de la auditoría
No logré interceptar o modificar el tráfico. Los nombres de los archivos, y mucho menos su contenido, se transmiten encriptados; se utiliza un cifrado de extremo a extremo. La aplicación implementa una serie de mecanismos de protección que impiden la escucha y la inyección.
Como resultado, la empresa adquirió dos servidores dedicados (físicamente en diferentes ubicaciones) para un acceso permanente a la información. El primer servidor se utiliza para recibir, procesar y almacenar información, mientras que el segundo es para copias de seguridad.
Se conectó una terminal de trabajo del director y un teléfono móvil iOS al cloud individual obtenido. Otros empleados fueron conectados por el administrador de sistemas y el soporte técnico de Pvtbox.
Durante este tiempo, no he recibido quejas de mi conocido. Espero que mi revisión ayude a los lectores de Habr en situaciones similares.
Fuente: habr.com
