Un de mes amis vient de commencer un travail dans une entreprise sensible à la sécurité. Ils lui ont fourni un ordinateur portable avec Windows XP Professional installé. Il a entendu une rumeur d'autres employés que les ordinateurs portables peuvent avoir des enregistreurs de frappe installés. Y a-t-il un moyen pour lui de confirmer ou d'infirmer cela Est-ce que ce sera aussi simple que de regarder l’arborescence des processus ou le registre, ou ces types d’enregistreurs de données se cachent-ils mieux que cela?
Il ne a des droits d'administrateur.
Cela dépendrait grandement de la mise en œuvre de l'enregistreur de frappe. Certains produits de niveau entreprise incluent des rootkits qui rendent le keylogger presque impossible à détecter, à moins que vous ne connaissiez le produit utilisé et sa configuration. Pour un exemple, consultez Spector Pro *. En outre, comme le note Syneticon-dj , il est possible qu'ils utilisent à la place un enregistreur de frappe matériel qui pourrait être implémenté d'une manière qui ne peut pas être facilement détectée par le logiciel.
S'ils ont donné à votre ami les droits d'administrateur complets sur la boîte, ils sont soit vraiment confiants dans leurs capacités de surveillance et de contrôle de la configuration, soit ils sont assez ignorant les implications de l'octroi de tels privilèges à un utilisateur final. Souvent, c'est ce dernier. Mais, si vous présumez que le premier est le cas, vous devez également présumer qu'il existe une justification solide de leur confiance.
Quoi qu'il en soit, il est très probable que votre ami a déjà signé (et donc accepté) une politique d'utilisation acceptable qui comprend une clause qui renonce à tous les droits à la confidentialité des équipements appartenant à l'entreprise. De plus, toute entreprise inquiète de la conformité dans ces domaines aura également une bannière d'avertissement sur le système qui rappelle aux utilisateurs à chaque connexion qu'ils peuvent être soumis à une surveillance sur ces systèmes.
Bottom line: Ne faites rien sur l'équipement de l'entreprise que vous ne voulez pas qu'ils voient. Supposez toujours qu'ils enregistrent les frappes au clavier, capturent des captures d'écran (une autre fonctionnalité de logiciel espion courante) et surveillent le trafic réseau avec l'inclusion éventuelle d'un proxy SSL. Gardez les affaires sur le matériel professionnel et les trucs personnels sur le matériel personnel, et ça devrait aller.
* Remarque: Ce n'est pas une approbation de Spector Pro. Je n'ai aucune affiliation avec la société et je n'ai pas utilisé leur produit. Ceci est simplement donné à titre d'exemple du type d'outils de spyware disponibles pour les entreprises.
Iszi vous donne de très bons conseils en général - les chances sont que s'ils utilisent un logiciel de surveillance, ils y sont confiants.
Est-ce que ce sera aussi simple que de regarder l'arbre de processus ou le registre, ou ces types d'enregistreurs de clés se cachent-ils mieux que cela?
Détecter les enregistreurs de frappe est aussi simple que de regarder au bon endroit (ce qui peut ou non être simple selon votre point de vue). Le problème est de savoir quoi chercher et où. Ce qui suit est un petit nombre non exhaustif de choses que vous pourriez faire pour vérifier les modules de keylogging.
Tout d'abord, le moyen facile et évident de construire un enregistreur de frappe est d'utiliser DLL Injection qui peut être réalisé de plusieurs façons. La plupart d'entre eux se traduira par un DLL apparaissant comme mappé à l'espace d'adressage du processus. Jetez un œil à cette image:
Quelle est l'entrée la plus élevée de cette liste? C'est un pyd
, ou python, fichier. J'ai joué avec des serveurs COM implémentés en python et par conséquent, le DLL = est chargé dans l'espace d'adressage de l'Explorateur Windows.
L'injection de DLL de la variété keylogging chargera son DLL dans tous les espaces d'adressage cibles - ne peut pas tout capturer si vous ne le faites pas. Donc, une chose à rechercher serait d'étranges DLL que vous ne peut pas être attribué à des produits dont vous connaissez le but. Ils apparaîtront dans cette liste pour tous les processus.
Parmi les techniques décrites sur wikipedia, la seule que je n'ai pas vue est la variété CreateRemoteThread
- je ne sais pas si le résultat serait d'attacher un fil à l'image ou d'exécuter un fil avec un nom DllMain
. Grâce à l'Explorateur de processus, nous pouvons toujours voir quels threads exécutent quoi:
Génial, non? Eh bien, ils pourraient bien être nommés pour coïncider avec l'évidence user32.dll
ou quelque chose comme ça. Il y a un certain nombre d'expériences que nous pourrions réaliser pour déterminer si c'est le cas, si nous le voulions. Celles-ci sont laissées comme un exercice au lecteur (ne détestez-vous pas simplement quand les gens disent ça!).
Cela couvre donc le mode utilisateur-évident-keylogger-mode. Il existe des endroits moins évidents où un enregistreur de frappe pourrait être intégré (mais il est peu probable qu'ils soient mondiaux). Cependant, les choses deviennent vraiment passionnantes lorsque vous commencez à parler des hooks au niveau du noyau. Il y a un excellent article par Mark R et Bryce Cogswell sur ce sujet, bien qu'il doive être mis à jour avec la mise en garde suivante:
Donc, si vous exécutez des fenêtres 32 bits, vous pouvez toujours avoir une certaine forme de raccordement au niveau du noyau installé et fonctionnel; si vous utilisez 64 bits, il est beaucoup moins probable - étant donné que KPP a été contourné avant et change constamment, je parierais que vous êtes libre de crochets du noyau sur x64 car les mises à jour de Windows feraient planter le système de produit de surveillance périodiquement. Le logiciel ne se vend tout simplement pas sur cette base.
Que pouvez-vous faire par rapport à un crochet 32 bits? Beaucoup de choses:
bcdedit /copy {current} /d "Windows in debug mode"
, bcdedit /debug {id} ON
après approprié bcdedit /dbgsettings
), branchez un câble firewire (vraiment. N'utilisez pas de série. J'ai découvert cela en utilisant des câbles série - le firewire est beaucoup plus rapide). Ensuite, sur votre machine source, démarrez kd
et définissez un point d'arrêt sur le chargement des modules, puis parcourez tous les modules qui se chargent, en prenant note d'eux. Un pilote ne peut pas faire grand-chose pour se cacher avant son démarrage . Vous pouvez même procéder à son examen à partir d'ici (g
pour continuer, ctrl+c
se casse à tout moment).Bien sûr, les mises en garde ici sont qu'aucun exécutable Windows n'a été directement corrigé, ou certains malversations qui sont au-delà de notre capacité à détecter trivialement.
Cela regarde directement le système, mais ce n'est pas une solution complète. Si vous pensez que le logiciel de journalisation appelle à la maison, un proxy transparent pourrait vous aider à identifier où - c'est-à-dire que vous pourriez être appelé pour vpn.mycompany.com
mais vous pouvez également voir des connexions à monitorserver.mycompany.com
.
Comme vous pouvez sans doute le dire, beaucoup de techniques à votre disposition dépendent de deux choses:
Réponse courte: il n'y a aucun moyen infaillible de détecter quoi que ce soit de la sorte; il y a cependant des endroits où vous pouvez commencer à chercher des preuves.
Avertissements divers:
some reports from %companyname%
, attachez quelques .docs et .pdfs factices, tapez "[email protected]" dans le champ "À:". Cliquez sur "Envoyer".bien certains enregistreurs de frappe se cachent très bien en fait, certains pourraient être comme un rootkit et vous devriez obtenir un bon programme antivirus qui peut détecter et extirper les rootkits et les chevaux de Troie de l'ordinateur et il devrait être analysé soigneusement à partir d'un système CLEAN sinon vous pouvez démarrer un rootkit ou d'autres choses désagréables qui feraient en sorte que l'analyse semble propre, alors qu'en fait ce n'est pas le cas. un bon programme de ce type est le programme AVG Pro antivirus et antirootkit et il y en a quelques autres qui prétendent bien contre les rootkits et toutes les autres sortes de vers de logiciels espions trojans etc ... un bon investissement, si vous n'aimez pas avoir quelqu'un surveillant votre épaule tout le temps, ou pire, attrapez un "bug" plutôt méchant alors faites un scan avec quelque chose comme AVG, à partir d'un système CLEAN ... qui devrait prendre en charge toutes les choses que j'ai mentionnées et garder à jour votre logiciel antivirus/antirootkit
Fondamentalement, il n'y a aucun moyen de détecter cela autre que de démonter le système et de le comparer à une implémentation fiable.
Il a été prouvé qu'il était théoriquement impossible de créer un programme qui serait capable d'analyser un morceau de code arbitraire et de déterminer s'il allait s'arrêter éventuellement ou s'exécuter indéfiniment avec une entrée particulière ( problème d'arrêt ), ce qui à son tour signifie beaucoup pour les scanners qui sont destinés à déterminer si un binaire arbitraire va mettre votre machine dans un état indésirable particulier.
Comme complication supplémentaire, les enregistreurs de frappe n'ont pas besoin d'être installés sur le logiciel de votre système d'exploitation - ils peuvent également être un composant matériel .