Un logiciel malveillant qui a infecté votre ordinateur local peut-il compromettre une base de données KeePass stockée localement de quelque manière que ce soit?
Si oui, à quoi sert KeePass d'avoir des mécanismes de sécurité aussi solides s'il ne résiste pas à ce scénario? Si vous conservez votre base de données localement, ce scénario n'est-il pas la principale menace qui existe?
Lorsque votre ordinateur est compromis, à peu près toute défense doit être considérée comme défectueuse. Les modèles de menace de sécurité considèrent cela comme un scénario hors de portée - sauf très peu d'exceptions (par exemple, le but même de votre logiciel est d'être la dernière ligne de défense).
Cela dit, les gestionnaires de mots de passe (comme KeePass) qui stockent la base de données de mots de passe localement résistent dans une certaine mesure à un compromis - en chiffrant la base de données à l'aide de mesures strictes. Si vous le configurez comme prévu (par exemple, utilisez un mot de passe maître fort + un fichier de clés que vous ne stockez pas localement), il résistera aux attaques de force brute et de dictionnaire. Il résistera même à la capture de mots de passe à partir du presse-papiers si vous utilisez uniquement la fonction de saisie automatique. L'exposition du presse-papiers peut également être limitée à un usage unique et en quelques secondes.
Cependant, il ne peut pas résister aux enregistreurs de frappe car il s'agit d'un problème environnemental en dehors de KeePass. L'environnement est donné à KeePass - pas quelque chose qu'il peut contrôler. Il est possible pour un enregistreur de frappe de capturer le mot de passe principal lorsque vous le tapez et d'appeler à la maison pour le signaler - avec le fichier KDB/KDBX et tout fichier de clé associé.
Je ne m'attendrais pas à ce que tous les logiciels résistent à toutes les attaques possibles (un peu comme la recherche d'une panacée). Je considérerais les gestionnaires de mots de passe - en particulier KeePass/KeePassX comme très bons pour ce qu'ils font.
Oui - si le malware incluait un enregistreur de frappe, par exemple, il pourrait simplement lire le mot de passe principal lorsque vous l'avez tapé. pas de keyloggers matériels, pas de VM, etc.) ce qui irait à l'encontre du but d'avoir des mots de passe à portée de main.
Cependant, le même malware pourrait également lire le mot de passe principal pour une base de données basée sur le cloud, lorsque vous l'ouvririez. Ce n'est pas spécifique aux fichiers de base de données locaux. En fait, cela pourrait prendre un logiciel malveillant moins invasif pour le faire - si vous avez installé une extension de navigateur douteuse et visualisez vos mots de passe via un site Web, il pourrait voir ce que vous avez tapé dans le navigateur, mais (probablement ) pas ce que vous avez tapé dans un autre programme.
Si vous utilisez un système sur lequel un logiciel malveillant est activé, supposez qu'il peut faire tout ce que vous pouvez faire - si vous pouvez lire un fichier, le logiciel malveillant peut également le faire. Si vous pouvez contacter un serveur spécifique, les logiciels malveillants le peuvent aussi. Si vous pouvez désactiver votre logiciel AV, les logiciels malveillants le peuvent également. Il peut être nécessaire de vous obtenir des détails pour le faire (par exemple, des mots de passe), mais la clé est d'éviter de les obtenir sur le système, plutôt que d'essayer de vous assurer que chaque logiciel détecte sa présence.
Il convient de mentionner qu'il existe des paramètres dans KeePass pour aider à restreindre ce que les logiciels malveillants (et vous) peuvent faire. Cela vous permet, par exemple, d'empêcher les logiciels malveillants d'exporter simplement l'intégralité de votre base de données en injectant quelques touches.
Ce n'est pas une sécurité intégrée, mais cela vous donne plus de tampon entre le moment où vous êtes infecté et le moment où vous réalisez que vous avez été infecté.
(La capture d'écran provient de KeePass 2.36)
Un logiciel malveillant qui a infecté votre ordinateur local peut-il compromettre une base de données KeePass stockée localement de quelque façon que ce soit?
Si vous ne l'ouvrez pas, ils ne peuvent qu'arracher le fichier de base de données et essayer de forcer le mot de passe par brute ( pas facile ) - à moins, bien sûr, qu'ils parviennent à obtenir le mot de passe principal dans un autre façon.
Si vous ouvrez le fichier, ils peuvent essayer d'obtenir le mot de passe principal lorsque vous le saisissez pour déverrouiller la base de données. Il y a eu au moins un logiciel malveillant qui a fait exactement cela .
De plus, il est possible pour un malware de s'injecter dans le processus KeePass et d'extraire les mots de passe stockés dans la base de données. n logiciel malveillant qui a fait cela a été publié en 2015 .
Si oui, quel est l'intérêt pour KeePass d'avoir des mécanismes de sécurité si solides s'il ne peut pas résister à ce scénario?
Eh bien, défendre contre tous les autres scénarios possibles dans lesquels vos mots de passe peuvent être compromis bien sûr! Parce que, quelle est l'alternative à un gestionnaire de mots de passe? Écrire des mots de passe dans un cahier? Réutiliser le même mot de passe pour plusieurs comptes, car vous ne vous souvenez pas de centaines de mots de passe? Vous venez avec un schéma de création de mot de passe "intelligent" qui se traduit par des mots de passe différents, mais entièrement prévisibles pour chaque compte?
Oui, il est théoriquement possible d'accéder à votre base de données de mots de passe de cette manière, mais en raison des protections offertes par KeePass, c'est seulement possible de compromettre vos mots de passe de cette manière. (D'accord, il y a une autre façon .)
Mais il existe de nombreuses façons dont vos mots de passe ne seront pas compromis, tels que:
Si vous conservez votre base de données en local, ce scénario n'est-il pas la principale menace qui existe?
Non. Je suis certain que, parmi les scénarios ci-dessus, il y en a plusieurs qui sont beaucoup plus susceptibles de se produire que les logiciels malveillants ciblant spécifiquement KeePass. Le risque n ° 1 est probablement la réutilisation d'un mot de passe sur tous les sites Web et ce site est compromis. (Par exemple, il existe actuellement 3 805 757 030 comptes piratés répertoriés dans Ai-je été mis en attente? .)
Bien que, comme le développeur de KeePass en convient , il n'y ait finalement aucun moyen de s'arrêter contre les attaques ciblant spécifiquement KeePass, il est certainement possible d'élever la barre pour un attaquant. Par exemple, il y a ne fonctionnalité pour se défendre contre les enregistreurs de frappe obtenant le mot de passe principal lors du déverrouillage de la base de données , une fonctionnalité pour verrouiller votre base de données de mots de passe lorsque vous ne l'utilisez pas et cetera.
Il vaut la peine d'étudier si vous souhaitez activer certaines de ces fonctionnalités, mais je ne recommanderais pas d'activer tout ou partie de ces fonctionnalités sans réfléchir; il y a un impact non négligeable sur la convivialité, et les avantages potentiels peuvent être faibles, selon ce que vous affrontez. Gardez à l'esprit qu'un attaquant ne veut pas nécessairement avoir pour obtenir votre mot de passe de KeePass, mais peut également choisir attaquer le programme dans lequel vous entrez le mot de passe .
Un gestionnaire de mots de passe ne vous défendra pas contre tout… car il ne le peut pas. Pour citer la loi n ° 1 des Dix lois immuables de sécurité ,
Si un méchant peut vous persuader d'exécuter son programme sur votre ordinateur, ce n'est plus votre ordinateur.
Les choses qu'un gestionnaire de mots de passe fait contre, cependant, signifient toujours que son utilisation est une très bonne idée.
Pour compléter la réponse @matthew: l'intérêt d'avoir une base de données de mots de passe cryptée est de la protéger contre les attaques hors ligne. Par exemple, il peut protéger la base de données si vous la mettez sur une clé USB et la perdez, ou si votre ordinateur éteint est volé. Vous pouvez également utiliser en toute sécurité un service de sauvegarde ou un service de synchronisation cloud avec votre base de mots de passe. (Cela ne s'applique que si vous utilisez une phrase de passe forte et ne synchronisez pas votre fichier de clés.)