Arrancamos trimestre primaveral y con él, su primera cagada y su primer tocho:
Ayer estuve lidiando con unos temas de los que hablo más abajo y en una de esas, se corrompió la base de datos del foro. Tuve que echar mano de una copia de seguridad y (aquí está la cagada), la última era del 18 de marzo (hace 3 semanas). Las copias se hacen semanalmente, pero entre las actualizaciones y las vacaciones, se me pasó hacer la de Redis. Como apoyo a mis reducidas capacidades cognitivas, el foro se encuentra en dos bases de datos diferentes de dos SGBD diferentes. Eso me ha permitido recuperar los posts perdidos, pero las fechas son de hoy. Además, durante las últimas tres semanas se han registrado usuarios para validar resultados en el banco de pruebas y eso no es recuperable.
¿Y porqué estuve tocando cosas ayer?. Pues porque un puñado de acaparadores ha tenido la necesidad de arramblar con todo el contenido de la instancia de Peertube desde cientos de bloques IP provenientes principalmente de Asia. Finalmente ha sido posible mitigar el ataque en gran medida, pero debido a la extensión del número de IPs, todavía se cuelan algunas peticiones. Eso hace que vaya todo más lento de lo normal, principalmente en el museo y el banco de pruebas. Aquí habrá que aguantar un poco hasta que todas las IPs maliciosas estén baneadas (es un proceso lento pero automático).
En estos momentos, Hardlimit se encuentra ante el ataque más fuerte que ha sufrido y habrá caídas periódicas.
En resumen, el servidor ha estado bajo intento de ataque, no solo de Scraping/Crawling/Flood Attack/DDoS, sino también con intentos de explotar vulnerabilidades de día cero, escalado de privilegios y demás (plataformas como Wordpress tienden a ser un coladero). Pero estas garrapatas son tan agresivas, que la mayorías de ataques (no todos), se detectan inmediatamente. De momento no han conseguido nada (más allá de tirar servicios petando el servidor) gracias a que la parte web está debidamente aislada de la parte datos, pero estar al tanto y aplicar soluciones han estado consumiendo demasiado tiempo. Espero que después de las última medidas, pueda centrarme en cosas más interesantes.
En esencia, se están baneando IPs a mansalva y he estado jugando con la parametrización del kernel para evitar en la medida de lo posible tocar el SWAP. En estos momentos, ZRAM nos está salvando de una mucho peor y Crowdsec no está salvando el culo de dejar el servidor completamente inutilizado.
Por esta parte, no hay capacidad de hacer mucho más. Somos un pez pequeño, el océano es demasiado grande y la IA ha dado dientes afilados hasta al pez más tonto. En estos tiempos, es un reto mantener seguras las máquinas expuestas a Internet. Pero de momento aguantamos.
Dejando de lado la parábola, el drama y los lloriqueos, como dije, voy a centrarme en el banco de pruebas y más en concreto, en el programa. Hay una hoja de ruta más o menos definida (más menos que más) que, de completarse, nos llevaría a la segunda versión mayor.
Hace muchísimo que no lo toco. Lo primero será desempolvar el entorno de desarrollo que está en una máquina virtual, revisar el código, etc.
El primer cambio de calado que quiero hacer es migrar de un modelo multiproceso a un modelo multihilo. La razón de querer hacer este aburrido cambio es simplificar el arranque el banco de pruebas: en estos momentos, la sincronización de procesos es relativamente frágil (en determinados entornos, el bm tiende a fallar) y retrasa el comienzo de las pruebas. Además, con este cambio será posible mejorar la prevención de manipulación de resultados.
En general, quedará un programa más robusto, más simple internamente (espero) y con un comportamiento, de cara a la reproducibilidad de resultados con versiones anteriores, idéntico.
Seguramente empiece con esto la semana que viene y probablemente dedique toda la semana sólo a cuestiones administrativas: revisar MV, familiarizarme con la estructura, código, etc.
Dicho eso, con cada nueva característica (como por ejemplo, usar el modelo de hilos), aparecerá una versión beta. Como pasó con la primera versión, quien participe y deje sus comentarios, aparecerá en la ventana de agradecimientos del programa (si no lo hace ya) o podrá cambiar su nombre si quiere. Quien no participe y ya aparezca, seguirá apareciendo.
La idea es ir sacando una versión cada dos semanas aproximadamente, aunque dependerá mucho de muchos factores.
En paralelo, se harán pequeños cambios en el museo, en el sistema de traducción tanto del foro como de subtítulos, otras cuestiones menores y sí, la maldita ciberseguridad seguirá acaparando su tiempo.