web-dev-qa-db-fra.com

Le Mousetrap parfait - peut-il être conçu un système de sable box de sorte qu'il est identique à un ordinateur réel?

Lors du test de fichiers suspects pour les logiciels malveillants, la méthode typique consiste à rechercher un code malveillant connu. C'est pourquoi les attaques de logiciels malveillants zéro peuvent être si dangereuses - leur code malveillant est auparavant inconnu du logiciel antivirus. La solution idéale consiste à tester chaque fichier et programme dans un bac à sable avant d'être utilisé, et cela a été essayé, mais aussi loin que je sache, les processus typiquement inhabituels semblent être détectés par une souris suffisante. Les logiciels malveillants détectent qu'il s'agit de bac à sander et de revenir sur son comportement malveillant pour ne pas être découvert.

La question est, peut-elle être possible, et plus important encore pratique, de construire une boîte à sable identique à un ordinateur réel, puis de mettre en œuvre dans les systèmes d'exploitation d'aujourd'hui (Windows, OS X, Linux, iOS, Android) un logiciel qui l'utilise Pour tout tester avant qu'il ne soit exécuté, voire mieux, l'utilise comme l'environnement de fonctionnement de ce fichier?

17

Oui, il peut être fait comme (théoriquement) chaque "périphérique informatique" est équivalent à tout autre périphérique informatique. Recherchez la Thèse de Turning Si vous êtes intéressé.

Cependant, votre question est fondée dans la pratique et dans ce cas, la réponse est "Oui, mais cela coûterait trop cher". L'effort dans la virtualisation vise aujourd'hui à accélérer l'environnement virtuel autant que possible au point de savoir où il est assez trivial à détecter Si vous exécutez dans une machine virtuelle. Ce qui signifie que tout effort dans la réplication d'un système exécutant 100% "natif" est limité par le nombre de personnes ayant le même intérêt.

En d'autres termes, il y a très peu d'intérêt commercial à faire ce que vous visez et le ROI ne serait limité qu'aux rares amateurs et sociétés qui ont un intérêt vocal dans la matière. Combien paieriez-vous pour un tel système? Combien de temps pouvez-vous consacrer? Combien de personnes savez-vous que sont disposées à passer des années sur ce projet?

Bien qu'il y ait des efforts pour recherche cela, je n'ai pas encore vu un système entièrement de travail qui n'est pas terriblement lent. Par exemple, Skype utilise des techniques anti-débogage qui détecte les ralentissements (voir diapositive 30 de cette présentation ). Je soupçonne que tous les logiciels malveillants pourraient faire des tours similaires pour mesurer l'exécution contre un serveur de temps fixe et détecter lorsqu'il est en cours d'exécution dans un émulateur (nécessairement lent).

Je pense qu'une approche différente serait plus économique: exécuter l'échantillon de logiciels malveillants sur une machine réelle et observer ce qui se passe. Ensuite, "Ghost" son disque et sa mémoire et examinent les différences avec un échantillon identique "propre". Cela peut prendre moins de temps à faire, globalement, que de développer un simulateur comme celui que vous avez à l'esprit.

17
lorenzog

En fait, la réponse de Lorenzo ne le coupe pas tout à fait. La thèse de l'église-Turning nous fournit uniquement un modèle de calcul, il ne peut rien nous dire de la virtualisation car il ne s'agit pas d'autres aspects d'une machine.

Mais il y a une analyse théorique pour la capacité d'une machine à virtualiser par Popek et al: http://cs.nyu.edu/courses/fall14/cscidiga.3033-010/popek-goldberg.pdf

Cela dit, les architectures actuelles et surtout x86-64 ne remplissent pas ces exigences. La conclusion serait donc, malheureusement impossible pour les architectures de la CPU actuellement utilisées. Mais on pourrait toujours penser à de nouvelles architectures de la CPU ...

7
Tobias Würfl

Prenons un autre regard sur cette question: Détecter un malware purement sur le comportement est très difficile - non seulement les logiciels malveillants peuvent essayer de détecter s'il est exécuté dans un environnement virtualisé, mais cela peut (par exemple) attendre quelque temps avant d'activer des comportements malveillants (un Exemple global: il y a quelque temps a chrome extension qui a attendu 7 jours avant d'activer l'activité malveillante a passé le dépistage de Google Processus de chrome Extensions ).

La plupart des antivirus ont déjà une certaine détection de malware comportemental, supposons qu'un programme malveillant attend 5 minutes avant d'essayer d'essuyer / cloison. Antivirus qui l'analyse du comportement peut soit:

  • Exécutez ce programme dans Sandbox pendant quelques secondes, puis décidez que tout va bien.
  • Exécuter ce programme est une boîte à sable extrêmement rapide dans laquelle le temps passe très vite (plus rapide que le temps réel) - mais cette boîte à sable serait facile à détecter en contactant Time Server.
  • Exécutez ceci (et tous les autres!) Programme de sandbox pendant 5 minutes avant de l'exécuter sur le vrai PC - - qui rend l'ordinateur inutilisable.
0
jb.