Kinsing / Kdevtmpfsi, malware de crypto-mining dans Docker (…)
(…) parce que je n’ai rien sécurisé.

Je viens de réinstaller un serveur UNRAID et d’ajouter vite fait quelques Dockers pour relancer des services « utiles » à la maison dont Immich (gestionnaire de photos) et Dawarich (traqueur de déplacements aka Google Maps auto-hébergé).
J’ai surtout fait du copier/coller rapidement d’anciennes configurations et ce qui devait arriver arriva : j’ai lancé Dawarich (dont Postgre et Redis) avec une config de base, non modifiée, et donc aux accès « plutôt basiques » :
DATABASE_HOST: dawarich_db
DATABASE_USERNAME: postgres
DATABASE_PASSWORD: password
Ajoutez une ouverture sur Internet et bingo! On tient un winner!
Bon, du coup, Redis ou Postgre (plutôt le 2nd je crois) s’est mangé un script kiddy des familles…
https://github.com/docker-library/postgres/issues/770#issuecomment-704460980
Et donc mon CPU était à 100%. J’ai pas screené mais on en voit la trace dans les stats élargies

Ça devait chauffer au garage ^^’

J’ai fait une petite recherche de ce truc et je l’ai trouvé dans des layers Docker (Postgre, de mémoire)
root@HomeBox:~# find / -name kinsing
find: ‘/sys/kernel/slab’: Input/output error
find: File system loop detected; ‘/sys/kernel/debug/pinctrl’ is part of the same file system loop as ‘/sys/kernel/debug’.
find: ‘/proc/1091670’: No such file or directory
find: ‘/proc/1091711’: No such file or directory
/mnt/user/docker/overlay2/6376d9a93248b419b835fc2eb2d2ccf232b767eb2d7e4ed0c62c6d932fc7f579/diff/tmp/kinsing
/mnt/user/docker/overlay2/6376d9a93248b419b835fc2eb2d2ccf232b767eb2d7e4ed0c62c6d932fc7f579/merged/tmp/kinsing
Pour s’en débarrasser, tuer le ou les processus, couper les Dockers suspectés et supprimer les images. Modifier les configurations de ports/user/pwd et pull les images puis relancer les Dockers.
En parallèle, je me suis mis un script en cron (user-script sur UNRAID) qui kill les processus et fichiers temporaires liés, toutes les 5 minutes. Script pompé chez yoyosan.
#/bin/bash
rm -f /var/tmp/kinsing
rm -f /var/tmp/.ICEd-unix
killall -9 kinsing
rm -f /tmp/kdevtmpfsi
rm -f /tmp/.ICEd-unix
killall -9 kdevtmpfsi

C’est pas du tout une solution, mais un bon palliatif si ça se reproduit et que je ne m’en rends pas compte rapidement.