Comment vérifier si un serveur Linux est propre des rootkits / backdoors / botnets etc.?

9

Dans le cas où un serveur Linux a été exposé à Internet avec une politique de sécurité extrêmement faible (r / w dossiers Samba anonymes, serveur de base de données Firebird avec mot de passe administrateur par défaut, pas de pare-feu, etc.) pendant une semaine, alors comment puis-je m'assurer que le système est pas compromis sans formatage complet et réinstallation, y accéder uniquement à distance via SSH?

Ivan
la source

Réponses:

7

Normalement, je suggère une vérification locale avec un outil tel que chkrootkit, mais si la seule façon d'exécuter la vérification est de le faire à distance, je vous recommande d'essayer Rootkit Hunter à la place.

Rookit Hunter vérifie les rootkits et autres activités similaires en exécutant des tests tels que les suivants (voir Informations sur le projet pour plus de détails):

  • Comparaison du hachage MD5
  • Recherchez les fichiers par défaut utilisés par les rootkits
  • Autorisations de fichier incorrectes pour les binaires
  • Recherchez les chaînes suspectes dans les modules LKM et KLD
  • Recherchez les fichiers cachés

Je veux ajouter que, comme d'autres l'ont dit, le seul moyen sûr de s'assurer qu'il n'y a pas eu de falsification de votre service est de le reconstruire. Ces outils fonctionnent bien, mais ils ne sont pas une garantie à 100% de succès.

runlevelsix
la source
2

OSSEC recherche les rootkits et détecte les activités suspectes.

chmeee
la source
2

Je sais que cette réponse n'est pas ce que vous voulez entendre, mais nous y voilà quand même. Il existe certains outils qui peuvent vérifier le système. La meilleure façon de s’assurer qu’il est propre consiste à effacer le serveur et à le reconstruire. Je ferais ce qui suit:

  • Supprimer l'ordinateur d'Internet
  • Données de sauvegarde et informations de configuration pour supprimer des périphériques
  • Formatage du stockage
  • Réinstaller la base / configuration standard / mises à jour
  • Reconfigurer le serveur en utilisant les anciennes données comme référence
  • Restaurer les données de l'utilisateur

Voici quelques ressources que je commencerais à lire si vous ne l'avez pas déjà fait.

[texte du lien] [1] texte du lien texte du lien texte du lien

[1]: http://www.sans.org/reading_room/whitepapers/linux/linux-rootkits-beginners-prevention-removal_901 "Linux Rootkits Beginners"

JJ01
la source
2

Ce n'est pas non plus la réponse que vous voulez, mais s'il est possible qu'un système soit enraciné, il peut être très difficile d'être sûr à 100% que le système est propre. Les rootkits sont conçus pour être difficiles à détecter. Si vous exécutez les différents vérificateurs de racine et que le résultat est clair, votre système est "très probablement" propre.

Si la sécurité est un problème, j'envisagerais de le reconstruire comme l'affiche ci-dessus ou de le restaurer à partir de bonnes sauvegardes.

USACASD
la source
1

Vous devez vraiment être proactif ici. Il n'y a aucun moyen fiable de détecter les rootkits sur les machines, vous devez donc les empêcher d'y arriver en premier lieu et trouver des moyens de les détecter à l'entrée (par exemple via tripwire et interfaces verrouillées).

Si vous pensez qu'une machine a été exploitée de quelque manière que ce soit, vous devez vraiment la réinstaller - il n'y a aucun moyen garanti de la nettoyer avant une réinstallation. De loin l'option la plus sûre.

Adam Gibbins
la source
1

RKhunter, Tripwire, etc. sont excellents, mais ne présentent vraiment d'intérêt que s'ils ont été installés avant l'incident - car ils sont parfaits pour détecter si les fichiers clés ont été modifiés. Si vous installez RKHunter maintenant et l'exécutez, il détectera l'inclusion de nombreux rootkits, mais il ne détectera aucune porte dérobée ouverte par un attaquant dans le système d'exploitation ou les applications que vous utilisez.

Par exemple, vous pouvez vous faufiler sur un ordinateur, créer un nouvel utilisateur, leur accorder des autorisations SSH et sudo, puis nettoyer après en laissant une configuration d'apparence légitime en place, et pas de rootkits - puis revenir plus tard et faire votre mal.

La meilleure chose à faire est de regarder quels ports ont des services qui les écoutent, puis de regarder la configuration de tous ces services et de vous assurer qu'ils sont tous légitimes. Examinez ensuite la configuration de votre pare-feu et verrouillez les ports dont vous n'avez pas besoin, à la fois en entrée et en sortie. Ensuite, installez RKHunter, etc. pour voir si certains script-kiddie y ont laissé un kit racine en désordre.

Pour être franc, il est probablement moins difficile de faire ce que JJ a suggéré et de reconstruire que de s'assurer absolument que l'ordinateur n'a pas été compromis. Ce sont les données qui sont précieuses, pas le système d'exploitation et la configuration (en dehors des heures de travail pour la configuration).

Vous ne serez jamais sûr qu'il n'a pas été craqué par quelqu'un de plus intelligent que vous.

dunxd
la source
0

La première étape devrait vraiment être rkhunter / chkrootkit, mais j'ai également eu de la chance dans le passé avec les fonctionnalités intégrées à certains gestionnaires de packages, par exemple 'rpmverify' qui parcourra tous les packages de votre système et vérifiera que les sommes MD5 des fichiers inclus ne diffèrent pas des fichiers sur le disque.

Les binaires de base devraient vraiment avoir des MD5 identiques à ceux spécifiés dans les bases de données RPM ou DPKG, donc s'ils sont différents, vous savez qu'il se passe quelque chose de bizarre.

JamesHannah
la source
-1

Le moyen le plus efficace pour déterminer si votre système en cours d'exécution est compromis est d'utiliser Second Look . Il vérifiera le noyau et tous les logiciels en cours d'exécution en mémoire pour s'assurer qu'ils sont cohérents avec ce que le fournisseur de distribution a expédié. C'est une bien meilleure approche que rkhunter, chkrootkit, etc., qui recherchent des artefacts d' infections connues spécifiques . Second Look ne fait aucune hypothèse sur l'intégrité du système d'exploitation, vous n'avez donc pas besoin de l'avoir utilisé ou installé avant un incident.

(Avertissement: je suis le développeur principal de Second Look.)

Andrew Tappert
la source