Serait-il possible pour les virus informatiques de développer de nouveaux «gènes» pour leur permettre d'accomplir leur travail?

8

En tant qu'étudiant en biologie de niveau A, j'ai beaucoup réfléchi aux liens avec la biologie et l'informatique, et quelque chose qui me vient souvent à l'esprit sont les liens entre l'immunologie et la sécurité informatique / les virus. Par exemple, j'ai (en lisant sur le fonctionnement des programmes antivirus) décidé que la façon dont le système immunitaire traite les virus est très similaire aux programmes antivirus (les deux contiennent une base de données de définitions de virus (que ce soit, cellules de mémoire ou signatures de virus) et les deux contiennent une méthode d'extrapolation). La progression naturelle pour moi était alors de penser à l'évolution naturelle des virus par rapport aux virus informatiques. Passons donc à ma question:β

Serait-il possible que des virus informatiques évoluent vers de nouvelles souches possédant de nouveaux "gènes" pour leur permettre d'accomplir leur travail?

Il semble que ce genre de réflexion ne puisse vraiment s'appliquer qu'aux virus, je veux dire que votre ancienne calculatrice habituelle ne sera jamais soumise à la "sélection naturelle". Mais pour autant que je sais que les virus ne se muter, afin d'éviter les programmes anti-virus, mais sans doute ceux - ci sont plutôt contrôlés, de sorte que le virus ne gagnerait pas des mutations non bénéfiques qui pourraient autrement le rendre inutilisable. Si la véritable nature aléatoire de la nature pouvait être appliquée aux virus, est-ce qu'ils pourraient jamais faire évoluer de nouvelles fonctionnalités, comme par exemple devenir un rétro-virus qui prend le contrôle d'un programme anti-virus, ou muter pour inclure un nouveau code qui lui permet de faire tomber un pare-feu? Seraient-ils impliqués dans une sorte de sélection naturelle informatique, où les virus les plus forts survivent et transmettent leurs gènes bénéfiques?

J_mie6
la source
Une question vraiment cool! Je pense cependant que la métaphore du "virus" pour les logiciels malveillants est assez insuffisante. Ma compréhension était que le principal (seulement?) Pense que les virus informatiques et les vrais virus ont en commun est leur capacité à se propager.
jmite
1
@jmite bien, pour moi au moins, les similitudes résident dans le fait qu'ils oui, ils se répliquent, ils prennent également le contrôle du système qu'ils attaquent dans certains / la plupart des cas, ils causent principalement du tort à la victime (sauf quelques bienveillants) virus informatiques). Ils ont également tous deux des méthodes similaires à supprimer (c'est-à-dire le système immunitaire et les programmes antivirus) et également la deuxième fois qu'un ordinateur rencontre le même virus, il le supprime plus rapidement (car une définition de virus est maintenant disponible) similaire au système immunitaire. Cette similitude est probablement la raison pour laquelle ils ont été nommés virus en premier lieu: D
J_mie6
2
Le problème est que plusieurs d'entre elles sont fausses. La deuxième fois qu'un ordinateur rencontre un virus, il ne le supprime pas plus rapidement. Les ordinateurs ne peuvent pas proposer de définitions de virus seuls. Ils proviennent de sociétés de sécurité et proviendront probablement d'un mélange d'exploration de données et d'artisanat humain. Un virus n'est pas une force extérieure, comme il l'est dans un corps. L'ordinateur ne voit pas de différence entre le virus et tout autre programme. C'est juste un morceau de code. C'est pourquoi il l'exécute. La seule différence est que l'effet de ce programme est quelque chose que nous, en tant qu'utilisateurs, ne voulons pas.
jmite

Réponses:

7

Je suppose que ce serait possible en théorie, mais les logiciels malveillants (virus, vers, etc.) ne fonctionnent généralement pas de cette façon aujourd'hui, et il y a de bonnes raisons pour lesquelles ils sont écrits tels qu'ils sont.

Vous pourriez être intéressé par le code polymorphe , qui se change lui-même pour échapper à la détection. Il change la séquence d'instructions en une autre séquence d'instructions qui aura le même effet, mais aura un binaire différent. Cela permet d'éviter la détection par des outils antivirus qui recherchent une "signature" spécifique d'octets. Cependant, ce n'est pas la forme de mutation que vous demandez, car elle ne fera jamais "évoluer" le malware contre un nouveau comportement qu'il n'avait pas déjà.

Vraiment, il n'y a pas beaucoup de raisons pour lesquelles les auteurs de logiciels malveillants voudraient ou auraient besoin de leur logiciel malveillant pour faire évoluer de nouvelles fonctionnalités. Ils peuvent soit intégrer le comportement souhaité dans le logiciel malveillant. Ou, ils peuvent demander au logiciel malveillant de contacter un serveur central de "commande et contrôle" pour télécharger périodiquement du nouveau code ("mises à jour logicielles" pour le logiciel malveillant), afin de lui permettre de contrôler le comportement du logiciel malveillant. Habituellement, les méchants déterminent hors ligne les attaques qu'ils veulent monter, puis implémentent cela dans le logiciel malveillant ou commandent au logiciel malveillant d'exécuter ces attaques.

En travaillant à l'avance les attaques hors ligne, les attaquants peuvent tester ces attaques sur leurs propres systèmes et s'assurer qu'elles fonctionneront correctement et ne seront pas détectées. Du point de vue de l'attaquant, c'est bien mieux que d'écrire un malware qui essaie au hasard des trucs dans l'espoir qu'il évoluera en une attaque utile; les logiciels malveillants qui essaient des choses aléatoires seront beaucoup plus susceptibles de déclencher des alarmes et d'être détectés.

Il n'y a donc pas vraiment de besoin ou de motivation pour utiliser la "sélection naturelle" dans les logiciels malveillants, et ce n'est généralement pas vu dans la pratique.

DW
la source
Oui, le code polymorphe était ce que je cherchais comme balise, mais il n'existait pas! Votre réponse soulève de bons points, et j'aurais +1 si je le pouvais (considérez que c'est fait lorsque j'ai le représentant ici), je ne savais pas que les virus peuvent télécharger les mises à jour, comment y parviennent-ils? Est-ce via les connexions des machines infectées?
J_mie6
@ J_mie6, ils établissent une connexion réseau avec un serveur central (contrôlé par l'attaquant) et lui demandent: "avez-vous un nouveau logiciel pour moi?" et si la réponse est oui, ils le téléchargent et exécutent ce qu'ils viennent de télécharger. Alternativement, ils pourraient demander au serveur central: "avez-vous des commandes pour moi?" et si le serveur central dit oui, ils font tout ce que le serveur central leur ordonne de faire. Faites un peu de lecture sur les botnets et les serveurs C&C pour en savoir plus sur ce sujet. [Si ma réponse est la plus utile après un jour ou deux, vous pouvez cocher la case pour l'accepter.]
DW
il existe de nombreuses raisons pour lesquelles les logiciels malveillants bénéficieraient de stratégies d'adaptation (générales). par exemple, certains algorithmes d'attaque peuvent être optimisés en fonction de stratégies adaptatives. les logiciels malveillants ont en effet «évolué» depuis de nombreuses années, mais pas de manière autonome, à la place via des améliorations d'auteur.
vzn
5

TL; DR: les ordinateurs ne sont pas des entités autonomes comme les organismes, avec un instinct de survie. Ils exécutent simplement des instructions, et parfois ils exécutent des instructions que nous n'aimons pas, nous exécutons donc d'autres instructions pour trouver les mauvaises.


J'ai commencé à le dire dans les commentaires, mais je pense qu'il y a encore beaucoup à dire.

La métaphore virale est obsolète et trop largement utilisée par des personnes qui ne comprennent pas comment fonctionnent réellement les ordinateurs. Ils essaient de les comparer aux êtres vivants, car ils comprennent les êtres vivants. Voici une meilleure métaphore.

Vous êtes un employé de bureau. Vous travaillez pour une méga-société géante, où vous ne voyez pas votre patron. On ne vous dit jamais pourquoi vous faites votre travail, vous ne savez même pas ce que fait votre entreprise. Tout ce que vous savez, c'est que vous vous présentez au travail tous les jours et que vous suivez vos instructions.

Il y a une petite fenêtre près de votre bureau, qui est la seule façon d'interagir avec quelqu'un d'autre. Vous ne voyez personne, mais parfois des morceaux de papier passent par la fenêtre.

Vos instructions sont toujours les mêmes au début, mais vous avez une énorme pile de papiers à votre bureau. Certains contiennent des instructions, d'autres contiennent des éléments que vous avez écrits. Parfois, vos instructions vous diront de trouver un autre morceau de papier et de commencer à l'utiliser comme instructions. Parfois, ils vous demandent de changer les morceaux de papier, de les déchirer ou d'en effacer des parties. (C'est ce qu'est un programme. Parfois, les programmes modifient les fichiers, parfois ils exécutent d'autres programmes, etc.)

Parfois, vos instructions vous disent d'attendre près de la fenêtre pour plus de papier à venir. Le papier peut contenir une image, du texte ou d'autres instructions. (C'est ce qui se produit lorsqu'un ordinateur attend l'entrée de la souris ou du clavier, ou quelque chose d'un réseau (c'est-à-dire des fichiers)).

Vous ne faites que suivre ces instructions. Vous ne savez jamais pourquoi, vous ne savez jamais pour qui, mais vous le faites simplement.

Parfois, vos instructions vous demandent d'effectuer plusieurs tâches. Vous avez une pile de papiers. Vous définissez une minuterie et vous travaillez sur les instructions du papier supérieur pendant 5 minutes. Lorsque le chronomètre passe, vous placez ce papier au bas de la pile et faites tout ce qui se trouve sur le nouveau papier supérieur. (C'est ainsi que les ordinateurs exécutent plusieurs programmes à la fois).

Maintenant, un jour, vous attendez un morceau de papier près de la fenêtre, et vous savez que lorsque vous l'obtiendrez, vous ferez tout ce qui est indiqué, car c'est ce que le dernier morceau d'instructions vous a dit de faire. Vous l'obtenez, et il indique de trouver certains de vos principaux morceaux de papier, avec vos instructions de base, et de les effacer. Il vous indique de nouvelles instructions à y mettre. Cela fait des choses étranges, comme envoyer vos fichiers par la fenêtre à des endroits étranges, ou collecter des copies de sauvegarde de tout ce qui passe par la fenêtre. Mais ce qui est important, c'est que vous n'y pensez pas. Ce ne sont que des instructions. Vous les faites juste.

Voilà ce qu'est un virus. Ce n'est qu'un ensemble d'instructions que vous incitez l'ordinateur à exécuter.

Maintenant, disons que vous êtes un travailleur multitâche. Vous obtenez l'une de ces instructions d'effacement dans la fenêtre. Mais, vous êtes occupé, vous le mettez donc au bas de la pile. Vous regardez en haut de votre tas de choses à faire, et il y a un ensemble d'instructions marquées "antivirus". Il dit de lire tous vos papiers et de voir si certains d'entre eux ressemblent à leur échantillon de papier. Vous le faites et vous voyez que les instructions d'effacement sont sur votre liste.

Notez que si vous commencez à exécuter les instructions de virus, vous n'y pensez pas. Sans antivirus, il n'y a pas d'attaque, pas de réponse immunitaire. Ce n'est pas vous attaquer, c'est juste un ensemble d'instructions. L'antivirus n'est qu'une liste TODO qui implique de consulter vos autres instructions et de trouver celles qui correspondent à un modèle. Ce n'est pas essayer de préserver le système dans son ensemble, c'est juste une feuille de papier que quelqu'un vous a donnée depuis la fenêtre, car cela empêche les autres de vous inciter à faire des choses en faisant passer des choses par la fenêtre.

Maintenant, qu'en est-il de vos virus "en évolution"? C'est certainement possible, mais regardons ce que cela implique. Un virus en évolution est essentiellement une feuille d'instructions qui vous indique comment faire plus d'instructions. C'est un morceau de papier qui vous dit d'effacer un tas de vos anciennes instructions, puis d'en mettre de nouvelles à sa place, mais ces nouvelles instructions vous demandent également d'effacer les anciennes instructions, d'en mettre de nouvelles, etc. Les instructions d'origine ne changent donc pas. Le virus ne mute pas. Au lieu de cela, il fait juste ce qu'il fait, tout en laissant des instructions pour créer sa prochaine génération.

Alors, est-ce possible de faire ça? Oui. Mais c'est extrêmement compliqué. Avoir un programme qui se change lui-même, mais dont la séquence de changements ne converge pas finalement vers un programme qui ne fait rien d'utile, est incroyablement complexe.

jmite
la source
Eh bien, vraiment, bien que je sois d'accord avec ce que vous dites, où vous dites que pour un ordinateur, un virus n'est que des instructions régulières, il en va de même pour le corps, pour une cellule régulière, le virus n'est qu'un ensemble d'instructions supplémentaires, et toutes les cellules ne font que des protéines, dans ce cas les protéines du virus, c'est le travail des globules blancs de détecter les virus comme c'est le travail des anti-virus de demander la détection des virus. C'est ainsi que les virus se répliquent, ils dépendent du fait que le corps suivra simplement les instructions!
J_mie6
Et, je suis d'accord avec ce que vous dites à propos des virus qui ont des mutations significatives, mais si vous pensez à de vrais virus, ce ne sont qu'un ensemble d'instructions, comme un programme. Lorsqu'ils mutent, ils sont soit préjudiciables soit bénéfiques, mais au final le virus évolue vers quelque chose de nouveau. C'est ce que je pense, peu importe si la mutation est bonne ou mauvaise, juste que ça arrive de temps en temps. Et aussi, j'aime votre analogie :)
J_mie6
Je suppose, mais le problème est que le corps a ses propres fonctions. L'analogie ne tiendrait vraiment que si le corps était quelque chose qui ne faisait que traiter des morceaux d'ADN du monde extérieur toute la journée, et un virus en était un qui en profitait. L'idée est qu'il n'y a pas la même idée d'un corps "étranger", que pour un ordinateur un programme n'est qu'un programme.
jmite
3

la question générale concerne l'évolution des logiciels malveillants. la question spécifique concerne les gènes. il existe en effet un mécanisme d'algorithme génétique qui utilise des "gènes" numériques pour l'optimisation et pourrait certainement être utilisé dans des virus / programmes malveillants, bien qu'il ne semble pas y avoir de rapport à ce jour "dans la nature". d'autre part, les logiciels malveillants ont en effet évolué au fil des années, passant d'une curiosité théorique à une cybercriminalité organisée, etc., avec une sophistication croissante des menaces. jusqu'à présent, cela est alimenté en grande partie (mais pas entièrement!) par "l'évolution" dirigée par le développeur humain. Dans un certain sens, on peut dire que les virus informatiques évoluent dans le temps avec une "intelligence" ou une "sophistication d'attaque" accrues.

voici quelques références qui étudient "l'évolution des / dans les malwares".

vzn
la source
Stuxnet est devenu voyou et a infecté l'ISS.
noɥʇʎԀʎzɐɹƆ
1

L'essentiel est de le faire fonctionner. Les versions naïves, c'est-à-dire prendre un logiciel malveillant quelque peu réussi et faire en sorte que chaque tentative de reproduction comporte des mutations, seraient probablement mortelles pour le logiciel malveillant dans la plupart des cas.

Cela ne signifie pas, cependant, qu'il ne pourrait pas évoluer, juste que son objectif initial, la réplication, pourrait être entravé. Avec un taux de mutation suffisamment bas et suffisamment de patience, des mutations bénéfiques et bénignes seraient finalement sélectionnées.

Un problème, cependant, est qu’ils ÉVOLUERONT. Plus précisément, ils évolueraient sur de purs principes darwiniens. Si j'écris un morceau de code qui s'exécute, puis, uniquement en cas d'exécution réussie, copie son fichier binaire 1000 fois vers 1000 emplacements avec une erreur aléatoire ou plusieurs dans chacun et les exécute tous, il peut sembler que j'ai subordonné la réplication à la réalisation de n'importe quelle tâche est effectuée avec succès, mais en réalité, la réplication ne dépend que du programme pensant qu'elle a terminé cette tâche avec succès.

Il y a donc de fortes chances que s'il s'agissait d'un logiciel malveillant, ses deux objectifs fondamentaux, en particulier la réplication et le vissage des ordinateurs des gens, seraient en contradiction. Sur une période suffisamment longue, une mutation se produirait probablement pour que cela ne gâche pas aussi mal leurs ordinateurs, ce qui rend moins important la lutte contre les antivirus, se reproduisant ainsi avec des symptômes minimes, comme c'est la stratégie la plus efficace au début pandemic or plague inc, ou faire croire à lui-même qu'il a même réussi à visser leurs ordinateurs, transformant la fonction principale en un intron assez rapidement si elle ne s'exécute pas mais la fonction de réplication continue de fonctionner.

Beaucoup de gens s'émerveillent de l'efficacité du système immunitaire à vaincre toutes sortes de menaces, mais à bien des égards, les ordinateurs sont beaucoup, beaucoup plus sûrs que les cellules. Votre ordinateur ne peut tout simplement pas télécharger un virus en premier lieu. Un système antivirus parfait avec un utilisateur parfait n'a jamais besoin d'analyser le disque dur. Le code informatique ne peut pas être simplement inséré physiquement dans le disque dur.

Cellules de contraste, où les virus ont développé des mécanismes PHYSIQUES assez uniques pour passer les défenses cellulaires. Par exemple, certains virus sont totalement inertes jusqu'à ce qu'ils rencontrent une cellule, mais ensuite leur structure physique s'accroche et perce violemment la membrane cellulaire pour injecter leur matériel génétique. C'est comme un virus informatique qui coupe physiquement l'ouverture de votre machine et ajoute du nouveau matériel tandis que votre système d'exploitation et votre antivirus pensent que "tout va bien" et exécutent le code trouvé sur ce matériel.

Il est donc en fait assez probable que plus le code est bénin, meilleure est sa reproduction. Dans certains cas, il peut être plus facile pour l'évolution de convaincre l'utilisateur de l'aider que de développer un nouvel antivirus. IE s'ajoutant aux fichiers susceptibles d'être partagés avec d'autres utilisateurs.

Donc, en fin de compte, il me semble plus probable que les chances de réplication sont plus élevées lorsqu'elles sont inutiles en tant que logiciels malveillants en tant que telles, et probablement encore plus si elles peuvent convaincre l'utilisateur ou le code antivirus qu'il s'agit en fait de quelque chose de bénin. , important ou bénéfique.

Une autre chose est que la plupart des machines ont des opérations invalides, donc les modifications aléatoires du code sont susceptibles non seulement d'empêcher la fonctionnalité, mais aussi de provoquer le crash du code, même avec de la mémoire non protégée.

Pds314
la source
0

Imaginez des programmes informatiques non malveillants comme les microbes de votre intestin. Imaginez un virus informatique comme une bactérie infectieuse.

L'ordinateur ne peut pas faire la différence entre les bonnes et les mauvaises bactéries, contrairement au système immunitaire.

Il serait simple de créer un programme auto-modifiable, mais 99% des mutations entraîneraient une erreur. Un programme est comme une liste d'instructions - et les ordinateurs sont très stricts sur la façon dont ces instructions sont écrites. Disons que nous avons ce programme:

  1. Ajoutez une cuillère à soupe de beurre d'arachide.
  2. Ajouter une cuillère à soupe de gelée.
  3. Mettez du pain dessus.

Une mutation peut entraîner ce programme:

  1. Ajoutez une cuillère à soupe de beurre de peahut.
  2. Ajouter une cuillère à soupe de gelée.
  3. Mettez du pain dessus.

Bien que cela soit clair pour l'homme, cela signifiait "arachide", ce n'est pas clair pour l'ordinateur. Je pourrais écrire un script simple qui se mute en Python - mais la plupart du temps, les mutations échoueront.

Il serait très intéressé par un virus qui s'est muté et pourrait rester en vie - nous pourrions même le classer comme vie.


Oui, je suis en retard à la fête - mais c'est un sujet intéressant qui mérite d'être écrit.

noɥʇʎԀʎzɐɹƆ
la source
La plupart des mutations biologiques sont également préjudiciables.
adrianN
@adrianN Ouais, et le processus biologique est beaucoup plus précis et il y a des milliards de copies du virus dans chaque corps infecté, tous en compétition dans la race évolutionnaire. Pour les ordinateurs, il n'existe qu'un seul virus par ordinateur.
noɥʇʎԀʎzɐɹƆ