Salut, j'ai fait un keylogger, comment le rendre impuissant ?

Répondre
Partager Rechercher
Bonjour tout le monde !
Suite à une vague de psychose sur le Village, j'ai torturé mon ordinateur pour qu'il me réponde clairement si un keylogger pouvait vraiment (ou non) mettre en danger des identifiants.
La réponse est oui, de toute évidence...

Situation : Un script réalisé sous environnement AutoIt en suivant simplement quelques indications du manuel (en Anglais) lira les frappes clavier avec un déclencheur alternatif sur Ctrl+X/C/V, un bloc-notes ouvert où les informations seront à écrire (équivalent à Client de jeu, un navigateur Internet, et à toute application nécessitant un login quelconque), et un anti-virus Avast free-edition dans sa plus récente mise à jour.
Environnements testés : Le clavier normal, le presse-papier, la reconnaissance vocale, le clavier visuel, la session "En tant que .." et le contrôle à distance (sous console DSM de Computer Associates).

Évidemment, le keylogger étant vraiment fait à l'arrachée, il est bourré de "failles" sur lesquelles il n'observe pas ce qui se passe, mais disons que pour le sujet qui m'intéresse (et vu que sa finalité m'importe peu), il sera considéré comme faisant son travail (la lecture de toute information texte envoyée dans une application) sans faute.

Petite capture d'écran pour donner de la profondeur à la situation :
Code:
char:R;time:0'11"504;LWIN; <Windows+R ("Exécuter")
char:N;time:0'13"419;
char:O;time:0'13"549;
char:T;time:0'13"785;
char:E;time:0'13"862;
char:P;time:0'14"128;
char:A;time:0'14"506;
char:D;time:0'14"547;
char:
;time:0'15"577; <notepad [entrée]
char:T;time:0'18"775;RSHIFT;
char:E;time:0'19"87;
char:S;time:0'19"437;
char:T;time:0'19"557;
char: ;time:0'20"468;
char:D;time:0'21"2;
char:E;time:0'21"120;
char: ;time:0'29"572;
char:K;time:0'29"947;
char:E;time:0'30"95;
char:Y;time:0'30"192;
char:L;time:0'30"430;
char:O;time:0'30"851;
char:G;time:0'30"898;
char:G;time:0'30"952;
char:E;time:0'31"180;
char:R;time:0'31"599;
char:¾;time:0'31"957;RSHIFT; <Test de keylogger.
char:%;time:0'44"486;LSHIFT;LCTRL; <Ctrl+Shift+gauche
char:C;time:0'47"783;LCTRL; <Ctrl+C (copie)
char:C;time:0'47"815;LCTRL;
copie:keylogger. <Affichage du presse-papier copié
char:(;time:0'52"482; <[bas]
char:#;time:0'55"145; <[fin]
char:
;time:0'56"177; <[entrée]
char:V;time:1'2"390;LCTRL; <Ctrl+V (colle)
colle:keylogger. <Affichage du presse-papier collé
char:V;time:1'2"429;LCTRL;
char:X;time:1'6"660;LCTRL; <Sélection à la souris d'une zone de texte, puis Ctrl+X (coupe)
char:X;time:1'6"695;LCTRL;
coupe:log <Affichage du presse-papier coupé
char:$;time:1'8"47; <[origine]
char:V;time:1'9"260;LCTRL; <Ctrl+V
colle:log
char:V;time:1'9"534;
char:,;time:1'42"531; <[Impr. Ecr]
kl.png

Pour les situations étudiées :
- La frappe au clavier normal est lisible en clair
- La mise en buffer de type Presse-Papier est lisible en clair
- La correction d'une faute de frappe volontaire est lisible en clair
- L'utilisation du clavier virtuel (à la souris, donc) génère des frappes clavier lisibles en clair
- La reconnaissance vocale génère des frappes clavier lisibles en clair
- Le démarrage du keylog sous une session alternative (En tant que.. sur une session qui n'est pas celle en cours d'exécution) ne change rien
- Les frappes clavier envoyées à une machine sous contrôle distant sont lisibles en clair (quand le script est sur la machine qui prend le contrôle à distance)
- Les frappes clavier reçues par une machine sous contrôle distant sont lisibles en clair (quand le script est sur la machine prise en contrôle à distance, il ne peut pas lire ce qui est inscrit quand la fenêtre de prise de contrôle n'a pas le focus)
- L'anti-virus n'a pas bronché d'un pouce

Résumé : l'utilisation de la souris (clavier virtuel et mise en presse-papier par copie/colle) ne contourne qu'à-peine le problème, et le clavier est totalement transparent pour un keylogger.

Questions : Quelles sont les sécurités qui pourraient être mises en place pour éviter que le clavier ne puisse être lu (sans changer de système d'exploitation) ?
- Pensez-vous qu'une capture des frappes serait possible dans une fenêtre donnée, pour que tout ce qui transite ne soit pas lisible à l'extérieur de l'application ? (Il me semble que le jeu Cabal possède un système équivalent à celui-ci, une sorte de tunnel de capture du clavier.)
- Serait-il intéressant de développer une sorte de brouillage hardware/logiciel, de sorte que la frappe lue par le script soit différente de celle interprétée par le logiciel ? (Quand j'appuie sur le "a" de mon clavier Azerty en mode Qwerty, j'obtiens un "q". Un mode similaire proposable par une application en interne ?)
- Ou l'impact d'un éventuel keylogger ne doit avoir aucun importance, en utilisant par exemple une clef USB de chiffrement générant un code utilisable pendant une unique minute ? (WoW propose son Authenticator, un usage plus répandu de ce type de sécurité serait-il à encourager ?)
- D'autres principes plus originaux "manuels" sont à explorer, par exemple de taper des bouts de login, des bouts de pass, ajouter des (fake) fautes, des (fake) corrections, des (fake) mises en buffer.. bref, générer des pièges dans tous les sens pour "perdre" le mouchard ? (Mais v'là le temps à passer pour s'authentifier alors.)

En vous remerciant d'avance de votre participation à ces quelques questions,

Bonne journée,
Za.
On m'a proposé d'utiliser un vaccin anti-keylogger, pour me protéger.
Il s'agirait d'utiliser un programme (codé en C++ de préférence pour avoir un accès rapide et assez bas-niveau, avec une priorité maximale sur le système) qui intercepterait systématiquement les frappes du clavier, et les routerait par un moyen détourné jusqu'à la fenêtre cible, sans déclenchement de la frappe ni des buffers du Presse-Papier.

C'est une solution qui dégrade l'environnement, mais qui a l'avantage d'être globalement assez souple, tant qu'un autre keylogger ne se met pas à son tour à faire la même chose. (Le premier chargé l'emporterait sur l'autre...)

Aucune réaction sur les autres solutions ?
J'ai fait un sujet trop gros, brouillon ou mal détaillé ?

Za.
ptet un chouia trop technique et avancé pour un forum de jeux video comme jol
je suis capable de suivre ce que tu dit, mais de la a te proposer des solutions...

techniquement ya pas vraiment de possibilité infaillible, donc l'authenticator se generalise (app google sur android maintenant, eve online aussi, etc).
Je suis pas sûr que ton expérience de base soit super pertinente, AutoIt est un logiciel qui sert à ça, donc c'est normal qu'il capte correctement ce genre de chose et que l'antivirus le laisse faire.

Btw, j'ai encore plus de mal à comprendre ton axe de réflexion pour contourner le soucis, en gros tu cherches comment vivre avec la peste plutôt que la guérir et/ou s'en prévenir.
Je suis plutôt de l'avis de Nikkau, les antivirus ont normalement les outils pour détecter les keylogger. T'ajoutes à ça un firewall qui te demandera la permission pour les sorties et c'est réglé. Si tu cherches à t'en protéger, ça suffit.
En tant qu'utilisateur, mes données vitales, je les tapes dans le désordre en revenant aux endroits avec la souris

par exemple, si je devais taper 123456, je tape 1246 après je clic derriere le 2, je tapes le 3 puis je clic derriere le 4 puis je tape le 5. Je fais ca essentiellement pour mon num de carte bancaire.

Pour les administrateurs :
Après, à mon avis, une des meilleurs sécurité aujourd'hui, c'est le OTP (one time password). Le genre de trucs qui lie un générateur de codes à un compte et qui te génère un code toutes les minutes (sur un téléphone portable ou une clef). A ce que j'ai compris WOW utilise la clef. Rift, pour sur, utilise ca sur tel portable.

Autre truc, le clavier virtuel SUR le site avec les chiffres qui changent de place a chaque utilisation. La poste utilise ca sur son site, je pense que ca peut être une bonne sécurité.
Les keyloggers peuvent prendre des screens quand tu cliques, donc les solutions a la souris sont aussi loin d'être infaillibles.
Le plus relou avec leur machins qui changent a chaque fois de place (outre le fait que ca te limite en terme de combinaisons de mot de passe), c'est que tu passe un peu de temps a le rentrer le truc, et qu'un gars qui jette un oeil par dessus ton epaule peut voir ton mot de passe sans problème (alors qu'au clavier en tappant vite c'ets quand même plus compliqué, sauf si tu tappes a un doigt quoi).
Sachant que les keyloggers existent, je pars effectivement du principe que ma machine est infectée, et que je dois combattre un mal déjà en place (=la peste existe, si je l'attrape comment je fais pour vivre avec) sans que ça me gène dans ma vie de tous les jours.

L'anti-virus ne fait "que" repérer les n signatures de malwares déjà repérés, donc un n+1-ième avec une signature différente attendra la mise à jour contenant sa signature pour être repéré, donc protection après-coup.

Pour les envois d'informations sur le réseau, je doute que ça soit difficile, bien que n'ayant pas planché sur la question : une requête SMTP (mail) supplémentaire lors d'un envoi de mail standard passera certainement inaperçu, même avec un Firewall actif. (Mais je n'ai pas creusé la question, disons simplement qu'une fois le bazar sur le poste, c'est "trop tard".)

Je n'ai pas testé le clavier virtuel de SpyShelter, mais est-il aussi efficace que celui de Windows, c'est-à-dire qu'il génère lui aussi des frappes clavier depuis un clic souris ? Si oui, alors il ne sert à rien. (Remplacer les frappes sur clavier réel par un clic sur des images, pour générer des frappes clavier, super...)


Donc, ce que vous pensez le plus efficace est un code unique, disponible pendant une durée de temps limitée, de sorte que même si un pirate le récupère ce soit déjà trop tard ? Hmm, ça se tient.
L'autre solution semble le OTP, mais la mise en place d'une telle sécurité sur des OS différents me semble bien ardue, surtout pour des applications qui peuvent se lancer plusieurs fois de suite avec des identifiants différents (multi-compte sur Dofus, par exemple, ou plusieurs boîtes aux lettres GMail ouvertes côte-à-côte).

Dans un cas (code unique à durée limitée), le vol de l'identifiant n'est risqué que pendant une durée limitée, dans l'autre (OTP) il n'y a pas de vol possible.


C'est vrai que c'est une question technique, mais je voulais savoir quels sont les éléments qui sont le plus soit à la mode, soit efficaces (ou mieux, les 2), ceux auxquels je n'ai pas pensé, etc.
Et pour ça, j'ai besoin de vous/votre avis !

Za.
Pour attraper un keylogger faut vraiment pas faire attention ou on va et ce que l'ont fait avec son pc. Un navigateur maj + NoScript + Microsoft Essential empêche d'attraper tous ces trucs là.
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés