J'ai récemment découvert que quelqu'un utilisait mon ordinateur sans consentement, parcourant des dossiers, etc.
Je pouvais changer tous mes mots de passe immédiatement, mais je suis curieux de savoir ce que recherchait la partie intrusive. Je voudrais donc mettre en place un piège (sourire maléfique).
Quel logiciel surveillera toute activité sur mon ordinateur? Bien que je sache que la capture de mon écran fonctionnera ici. Je préfère utiliser un fichier journal.
Par exemple:
/var/log/activity.log
[1er août 2010 20:23] / usr / bin / thunar accédé / multimédia / cctv-records /
[1er août 2010 20:25] / usr / bin / mplayer consulté /multimedia/cctv-records/00232.avi
[3 août 2010 02:34] / usr / bin / thunderbird a été exécuté
[3 août 2010 03:33] session ssh entrante du 12.32.132.123
Les activités que j'aimerais enregistrer sont:
- Accès aux fichiers et dossiers sur le système de fichiers
- Les commandes s'exécutent (à partir de la console ou autre)
- Sessions utilisateur (connexion, sessions ssh et tentatives infructueuses)
la source
Réponses:
Vous pouvez utiliser le mécanisme intégré au noyau
inotify
pour surveiller les fichiers auxquels vous accédez.Vous devez d'abord vérifier si
inotify
est activé dans le noyau:La prochaine chose à faire est d'installer
inotify-tools
. Instructions pour diverses distributions que vous pouvez trouver sur la page du projet - elles devraient être dans les référentiels de toutes les distributions principales.Après cela, inotify est prêt à fonctionner:
(
m
= ne quitte pas après un événement,r
= récursif,q
= silencieux)Par exemple - sortie après
ls /home/pbm
L'important est de définir correctement les répertoires de surveillance:
/
récursivement - il y a beaucoup de lecture / écriture/dev
et/proc
Il
/proc/sys/fs/inotify/max_user_watches
y a une option de configuration qui montre combien de fichiers peuvent être regardés simultanément. La valeur par défaut (pour Gentoo) n'est pas si élevée, donc si vous définissez watcher,/home/
vous pourriez dépasser la limite. Vous pouvez augmenter la limite en utilisantecho
(accès root nécessaire).Mais avant cela, vous devriez lire les conséquences de ce changement .
Options qui pourraient vous intéresser:
-d
= mode démon-o file
= sortie dans un fichier--format
= format spécifié par l'utilisateur, plus d'informations dansman inotifywait
-e EVENT
= Quel événement doit être contrôlé (par exempleaccess
,modify
, etc., plus d' infos dansman
)la source
echo 524288 >> /etc/sysctl.conf && service procps restart
. Quel est l'équivalent dans Gentoo?echo "fs.inotify.max_user_watches = 524288" >> /etc/sysctl.conf
. Dans Gentoo, vous pouvez utiliser la même méthode, mais ellesysctl.conf
provient du/etc/init.d/bootmisc
script init.Est-ce que l'autre gars est sur toi? S'il a un accès physique ou un accès root, il peut effacer toutes ses traces et même planter un bug à espionner vous . En revanche, certaines traces sont pénibles à effacer, et il est difficile de penser à tout.
Diverses choses sont déjà enregistrées dans les journaux système, généralement dans
/var/log
(certains systèmes utilisent un emplacement différent tel que/var/logs
ou/var/adm
). Dans une configuration normale, toutes les connexions et montages sont enregistrés, entre autres. Si vous craignez que les journaux soient effacés, vous pouvez configurer la journalisation à distance (la procédure à suivre dépend de l'implémentation de Syslog, mais il faut généralement une ou deux lignes à modifier dans un fichier de configuration sur l'expéditeur et sur le récepteur).Si vous ou votre distribution n'avez pas désactivé cette fonctionnalité, chaque fichier a un temps d'accès («atime») qui est mis à jour chaque fois que le fichier est lu. (Si le système de fichiers est monté avec l' option
noatime
ourelatime
, atime n'est pas mis à jour.) L'atime peut être simulétouch -a
, mais cela met à jour le ctime, donc il laisse une trace. (Même root ne peut pas supprimer directement cette trace, vous devez contourner le code du système de fichiers.)Divers programmes ont un historique de session . Il est facile d'enlever ou de simuler, si l'intrus s'est souvenu de le faire. Bash conserve
~/.bash_history
, les navigateurs ont tendance à écrire beaucoup de choses dans leur répertoire de profils, etc. Vous pouvez également trouver des erreurs ou des avertissements dans~/.xsession-errors
ou dans/var/log/Xorg.0.log
un autre emplacement dépendant du système.De nombreux appareils ont une fonction de comptabilité des processus ¹. Voir par exemple le manuel des utilitaires de comptabilité GNU , l'entrée dans le manuel FreeBSD ou le guide Linux ou le guide Solaris . Une fois activé, il enregistre quel utilisateur a lancé quel processus quand (il enregistre les
execve
appels), et peut-être un peu plus. Il y a beaucoup d'informations intéressantes qu'il ne consigne pas, comme les fichiers auxquels le processus accède.Si vous souhaitez surveiller tous les accès à un système de fichiers, vous pouvez le fournir via logsfs . Il est très facile de remarquer si le gars pense à regarder.
Il existe des programmes de journalisation plus complets, mais ils peuvent nécessiter une prise en charge supplémentaire du noyau. Sur Solaris, FreeBSD, NetBSD et Mac OS X, il y a dtrace (il y a un port Linux en cours mais je ne sais pas s'il a atteint un stade utilisable). Vous pouvez également tracer des processus spécifiques via une interface vers l'
ptrace
appel système, par exemplestrace
sous Linux; cela peut induire un ralentissement notable.¹ Quelque chose qui n'est pas sur Wikipedia? Non, c'est un discours fou.
la source
Jetez un œil à Fail2ban et DenyHØsts .
la source
Ce n'est pas exactement ce que vous recherchez, mais certaines applications conservent une liste des fichiers récemment consultés. De plus, GNOME conserve cette liste, accessible depuis son panneau.
Un autre correctif consiste à utiliser GNOME Activity Journal , mais la dernière fois que j'ai vérifié, il ne conservait pas d'enregistrement de l'activité CLI et n'était intéressé que par les activités liées aux fichiers (lecture, édition), ignorant les autres activités.
Vous pouvez également regarder à l'intérieur du
/var/log
répertoire où un tas de programmes stockent leurs journaux.la source
En supposant assez de naïveté du côté de votre attaquant, vous pouvez simplement jeter
script -qft $USER-$$ 2> $USER-$$-time
dans son / votre script de connexion approprié pour surveiller ses interactions terminales et rejouer avec les commandes de script appropriées.Pour surveiller l'accès au niveau des fichiers, je recommande d'attacher un fichier
strace -fe open
avec la journalisation appropriée au sshd et de filtrer les sessions de connexion (ou peut-être qu'il est préférable de le faire à partir de. Avertissement: énormes sorties, car faire quoi que ce soit sur un système moderne touche beaucoup de fichiers Si vous souhaitez simplement surveiller des fichiers spécifiques, jetez un œil à auditd et à son infrastructure de support.Les sessions et les tentatives de connexion peuvent être collectées à partir de syslog selon d'autres réponses.
la source