web-dev-qa-db-fra.com

Comment suivre le nettoyage de l'historique Bash?

J'aimerais attraper des événements lorsque l'historique Bash est nettoyé ou que certaines lignes sont supprimées. Y a-t-il des meilleures pratiques ou des outils de vérification avec cette capacité?

7
inx

Surveillance de l'historique Bash est facilement effectué avec un script shell, mais il suffit de le vérifier pour des modifications inattendues pourraient ne pas être une mesure de sécurité efficace, mais plutôt encombrer vos journaux avec des faux positifs.

Un moyen évident de surveiller les événements du système de fichiers associés à votre .bash_history Le fichier serait à l'aide de INOTIFY API . Par exemple, cela déclenche des événements de modification de fichier:

$ inotifywait -m -e modify ~/.bash_history

Vous pouvez ensuite comparer le contenu à chaque fois pour déterminer les modifications ou simplement comparer le nombre de lignes à détecter si les entrées ont été supprimées avec une plus petite générale. (Juste vérifier que la taille du fichier ne fonctionnera pas si l'historique a atteint sa longueur maximale et que les anciennes entrées sont supprimées.)

Mais notez qu'il est trivial pour un attaquant de travailler autour de cela. Vous devez vous attendre à ce que tout intrus raisonnablement habile désactive l'historique , plutôt que d'éliminer les entrées suspectes après. En outre, il existe de nombreuses façons bon marché de contourner complètement Bash sans provoquer des entrées de journal (changer de shell de Bourne, exécuter à partir de VI, etc.).

En règle générale, j'envisagerais de surveiller l'historique de Bash pour une éventuelle altération trop peu fiable et que l'erreur est susceptible d'être une mesure de sécurité utile. Au lieu de cela, je vous assurerais d'abord de couvrir les journaux où il est plus facile d'identifier les incidents pertinents pour la sécurité (/var/log/auth.log, etc.).

9
Arminius

Je suppose que vous voulez détecter lorsque les gens ont entré une sorte d'informations privées dans leur coquille et essaient maintenant de la supprimer de l'historique de Bash.

D'un point de vue de l'attaquant, il serait facile de créer simplement des copies du fichier .bash_history et de vérifier les entrées en cours de retirage.

Si vous faites cela pour empêcher les fuites de données accidentelles, je vous suggère de résoudre celui-ci par la politique et que les utilisateurs signalent de telles erreurs et invalident les informations. Donc, si un mot de passe a été entré accidentellement, le mot de passe doit être modifié.

Si vous voulez vraiment aller de l'avant avec cela, il existe des outils non liés à la sécurité pour surveiller les modifications apportées aux fichiers.

Edit: Je pense que pour détecter les attaquants essuyant leurs pistes, il s'agit d'une méthode assez faible, car il est assez facile de désactiver ou d'éviter l'historique de Bash.

3
Elias