En el mundo del software libre, pasan cosas tan lindas y extrañas que corresponde venir a contarlo. Un mundo donde recibís un email de un hacker, y van a ser buenas noticias.
Así fue:
Nos escribió Parth Narula desde India a principios de septiembre, pidiéndonos permiso para hacer un análisis de nuestra plataforma, el cual dimos. Y encontró dos vulnerabilidades que podríamos mejorar. En ambos casos, no se trata de problemas de seguridad o de performance que perjudiquen a nuestres usuaries debido a acciones nuestras, sino que son puntos de nuestro sistema que un agente malicioso podría mal-utilizar para realizar ataques como inundar sus casillas con correos, o invitar a une usuarie para que descargue malware.
Porque en la búsqueda de ofrecer software resiliente y seguro, también tenemos que cuidarnos y anticipar todos los distintos caminos que los agentes maliciosos podrían crear para causar un daño y buscar compensación. En nuestro ámbito, un poco de pensamiento paranoico es más que útil ;)
De modo que el análisis de Parth y sus recomendaciones nos llevaron a revisar y resolver rápidamente tres puntos de nuestro panel del CMS para impedir que sean vulnerables a un ataque malicioso.
1. Mejoramos la protección contra "fuerza bruta", que evita un tipo de ataque donde nos prueben millones de contraseñas, pero a la vez permitiendo que les usuaries hagan un uso normal del inicio de sesión, puedan equivocarse al escribirla y re-intentar.
2. Mejoramos la protección contra el envío de confirmaciones de correo y de desbloqueo de contraseña, impidiendo un tipo de ataque que se hace al pedir este proceso muchísimas veces e inundando la casilla de un correo no solicitado.
3. Limitamos la incorporación de vínculos en un espacio no necesario de nuestros sitios, que permitirían un ataque de envío por correo de hipervínculos maliciosos a personas desprevenidas, potencialmente convirtiéndonos en una plataforma para hacer _phishing_.
Específicamente el panel del CMS o gestora de contenidos Sutty es nuestra pieza más delicada en relación a la seguridad, porque es la única parte dinámica. Esto significa, en criollo, que genera contenido sobre la marcha, dependiendo de bases de datos y de procedimientos en el servidor: procesos complejos que pueden ser explotados si no están bien protegidos.
Su seguridad requiere medidas adicionales como controles de acceso, validación de entradas y monitoreo continuo. Por ésto, todos los sitios web que hacemos son, en cambio, "estáticos" o "sólidos", igual de interactivos y bellos que cualquier otro pero con una solución técnica que simplifica cómo se generan en el servidor y reducen drásticamente vulnerabilidades a los ataques más comunes de la Internet, como la infección automatizada con malware, publicidad, webshellz e incluso, como utilizan menos recursos, aumentando el costo de hacer ataque de denegación de servicio (DOS).
Otras medidas que conforman nuestro enfoque de cibercuidados es tener varios servidores en funcionamiento, ser muy obsesives con no solicitar ni almacenar información personal y hacer copias de seguridad cifradas y remotas de todo. Lo que hacemos en nuestra infraestructura está público acá: https://0xacab.org/sutty/ansible y acá https://gitea.nulo.in/Sutty/-/packages
Además, todos los cambios que les usuaries de Sutty realizan en sus sitios, quedan registrados de forma que se pueden deshacer. Esto quiere decir que si alguien gana acceso a la gestora y realiza cambios indebidos, podemos ayudarte a deshacerlo. Un acceso indebido puede darse ya sea por cuestiones tan simples como dejar abierta la sesión en una computadora compartida o más complejas, como un ataque que aproveche una vulnerabilidad de la plataforma o use técnicas de ingeniería social (o sea, no es un tema técnico sino un engaño para que una persona entregue las llaves de acceso creyendo que se las deja a otra de confianza).