Als Biologiestudent auf A-Level habe ich viel über die Verbindungen zu Biologie und Informatik nachgedacht, und etwas, das mir oft in den Sinn kommt, sind die Verbindungen zwischen Immunologie und Computersicherheit / Viren. Zum Beispiel habe ich (durch das Lesen der Funktionsweise der Antivirenprogramme) festgestellt, dass die Art und Weise, wie das Immunsystem mit Viren umgeht, Antivirenprogrammen sehr ähnlich ist (beide enthalten eine Datenbank mit Virendefinitionen (sei es Speicherzellen oder) Virensignaturen) und beide enthalten eine Extrapolationsmethode). Der natürliche Fortschritt für mich bestand darin, über die natürliche Entwicklung von Viren im Vergleich zu Computerviren nachzudenken. Also weiter zu meiner Frage:
Wäre es jemals möglich, dass sich Computerviren zu neuen Stämmen entwickeln, die neue "Gene" besitzen, damit sie ihre Arbeit ausführen können?
Es scheint, als könnte diese Art des Denkens nur für Viren gelten. Ich meine, Ihr normaler alter Taschenrechner wird niemals einer "natürlichen Selektion" unterliegen. Soweit ich weiß , mutieren Viren jedoch selbst, um Antivirenprogramme zu vermeiden. Vermutlich werden diese jedoch eher kontrolliert, damit das Virus keine nicht vorteilhaften Mutationen erhält, die es sonst unbrauchbar machen könnten. Wenn die wahre Zufälligkeit der Natur auf Viren angewendet werden könnte, könnten sie jemals neue Funktionen entwickeln, wie zum Beispiel ein Retro-Virus, der ein Antivirenprogramm übernimmt, oder eine Mutation, um neuen Code aufzunehmen, der dies ermöglicht eine Firewall herunterfahren? Würden sie an einer Art rechnergestützter natürlicher Selektion beteiligt sein, bei der die stärksten Viren überleben und ihre nützlichen Gene weitergeben?
quelle
Antworten:
Ich nehme an, dass dies theoretisch möglich wäre, aber Computer-Malware (Viren, Würmer usw.) funktioniert heute normalerweise nicht so, und es gibt gute Gründe, warum sie so geschrieben sind, wie sie sind.
Möglicherweise interessieren Sie sich für polymorphen Code , der sich selbst ändert, um der Erkennung zu entgehen. Es ändert die Befehlsfolge in eine andere Befehlsfolge, die den gleichen Effekt hat, aber eine andere Binärdatei hat. Dies hilft, sich der Erkennung durch Antiviren-Tools zu entziehen, die nach einer bestimmten "Signatur" von Bytes suchen. Dies ist jedoch nicht die Form der Mutation, nach der Sie fragen, da die Malware dadurch niemals ein neues Verhalten "entwickelt", das sie noch nicht hatte.
Es gibt wirklich nicht viele Gründe, warum Malware-Autoren ihre Malware wollen oder brauchen würden, um neue Funktionen zu entwickeln. Sie können entweder das gewünschte Verhalten in die Malware einbauen. Oder sie lassen die Malware einen zentralen "Command & Control" -Server kontaktieren, um regelmäßig neuen Code ("Software-Updates" für die Malware) herunterzuladen, damit sie das Verhalten der Malware kontrollieren können. Normalerweise ermitteln die Bösen offline, welche Angriffe sie ausführen möchten, und implementieren diese dann in die Malware oder befehlen der Malware, diese Angriffe auszuführen.
Indem die Angriffe im Voraus offline ausgeführt werden, können die Angreifer diese Angriffe auf ihren eigenen Systemen testen und sicherstellen, dass sie ordnungsgemäß funktionieren und nicht erkannt werden. Aus der Sicht des Angreifers ist dies viel besser als das Schreiben von Malware, die zufällig versucht, Dinge in der Hoffnung zu entwickeln, dass sie sich zu einem nützlichen Angriff entwickeln. Malware, die zufällige Dinge versucht, löst mit größerer Wahrscheinlichkeit Alarme aus und wird erkannt.
Es gibt also keine Notwendigkeit oder Motivation für die Verwendung von "natürlicher Selektion" in Malware, und dies wird in der Praxis normalerweise nicht gesehen.
quelle
TL; DR: Computer sind keine autonomen Einheiten wie Organismen mit einem Überlebensinstinkt. Sie führen nur Anweisungen aus, und manchmal führen sie Anweisungen aus, die wir nicht mögen, also führen wir andere Anweisungen aus, um die schlechten zu finden.
Ich fing an, dies in den Kommentaren zu sagen, aber ich denke, es gibt noch viel mehr zu sagen.
Die Virenmetapher ist veraltet und wird von Menschen, die nicht verstehen, wie Computer tatsächlich funktionieren, zu häufig verwendet. Sie versuchen, sie mit Lebewesen zu vergleichen, weil sie Lebewesen verstehen. Hier ist eine bessere Metapher.
Sie sind Büroangestellter. Sie arbeiten für ein riesiges Mega-Unternehmen, in dem Sie Ihren Chef nicht sehen. Ihnen wird nie gesagt, warum Sie Ihren Job machen, Sie wissen nicht einmal, was Ihr Unternehmen tut. Alles, was Sie wissen, ist, dass Sie jeden Tag zur Arbeit erscheinen und Ihren Anweisungen folgen.
An Ihrem Schreibtisch befindet sich ein kleines Fenster. Nur so können Sie jemals mit anderen interagieren. Sie sehen niemanden, aber manchmal kommen Papierstücke durch das Fenster.
Ihre Anweisungen sind zu Beginn immer gleich, aber Sie haben einen riesigen Stapel Papiere an Ihrem Schreibtisch. Einige davon enthalten Anweisungen, andere enthalten Dinge, die Sie geschrieben haben. Manchmal werden Sie nach Ihren Anweisungen aufgefordert, ein anderes Blatt Papier zu finden und es als Anweisungen zu verwenden. Manchmal werden Sie aufgefordert, die Papierstücke zu wechseln, sie zu zerreißen oder Teile davon zu löschen. (Dies ist das Ausführen eines Programms. Manchmal bearbeiten Programme Dateien, manchmal führen sie andere Programme aus usw.)
Manchmal fordern Sie Ihre Anweisungen auf, am Fenster zu warten, bis mehr Papier kommt. Auf dem Papier befindet sich möglicherweise ein Bild, Text oder weitere Anweisungen. (Dies ist der Fall, wenn ein Computer auf Mauseingaben oder Tastatureingaben oder auf Daten aus einem Netzwerk (dh Dateien) wartet.)
Sie tun nichts anderes, als diese Anweisungen zu befolgen. Sie wissen nie warum, Sie wissen nie für wen, aber Sie tun es einfach.
Manchmal fordern Sie Ihre Anweisungen zum Multitasking auf. Du hast einen Stapel Papiere. Sie stellen einen Timer ein und arbeiten 5 Minuten lang an den Anweisungen auf dem oberen Papier. Wenn der Timer abgelaufen ist, legen Sie das Papier auf den Boden des Stapels und tun, was auch immer auf dem neuen oberen Papier ist. (Auf diese Weise führen Computer mehr als ein Programm gleichzeitig aus.)
Jetzt wartest du eines Tages auf ein Stück Papier am Fenster und weißt, wenn du es bekommst, wirst du tun, was immer es sagt, denn das ist, was die letzte Anweisung dir gesagt hat. Sie erhalten es, und es heißt, Sie müssen einige Ihrer wichtigsten Zettel mit Ihren Kernanweisungen finden und löschen. Es enthält neue Anweisungen, die Sie dort ablegen müssen. Diese machen einige seltsame Dinge, wie das Senden Ihrer Dateien aus dem Fenster an seltsame Orte oder das Sammeln von Sicherungskopien aller Dinge, die durch das Fenster kommen. Aber was wichtig ist, du denkst an nichts. Sie sind nur mehr Anweisungen. Du machst sie einfach.
Das ist ein Virus. Es ist nur eine Reihe von Anweisungen, mit denen Sie den Computer zum Laufen bringen.
Angenommen, Sie sind ein Multitasking-Mitarbeiter. Sie erhalten eine dieser Löschanweisungen im Fenster. Aber du bist beschäftigt, also legst du es auf den Boden des Stapels. Sie sehen sich oben auf Ihrem Stapel an Aufgaben an, und es gibt eine Reihe von Anweisungen mit der Aufschrift "Antivirus". Es heißt, Sie sollten alle Ihre Papiere durchlesen und prüfen, ob eines davon wie das Musterpapier aussieht. Sie tun dies und Sie sehen, dass die Löschanweisungen auf Ihrer Liste stehen.
Beachten Sie, dass Sie beim Ausführen der Virenanweisungen nichts davon halten. Ohne ein Antivirus gibt es keinen Angriff, es gibt keine Immunantwort. Es greift dich nicht an, es ist nur eine Reihe von Anweisungen. Das Antivirenprogramm ist nur eine TODO-Liste, in der Sie Ihre anderen Anweisungen lesen und diejenigen finden, die einem Muster entsprechen. Es geht nicht darum, das System als Ganzes zu erhalten, es ist nur ein Blatt Papier, das Ihnen jemand aus dem Fenster gegeben hat, weil es andere Leute daran hindert, Sie dazu zu bringen, Dinge zu tun, indem sie Dinge durch das Fenster stecken.
Was ist nun mit Ihren "sich entwickelnden" Viren? Dies ist sicherlich möglich, aber schauen wir uns an, was dies bedeutet. Ein sich entwickelnder Virus ist im Grunde eine Anleitung, die Ihnen sagt, wie Sie weitere Anweisungen erstellen können. Es ist ein Stück Papier, auf dem Sie aufgefordert werden, ein paar Ihrer alten Anweisungen zu löschen und dann neue an ihre Stelle zu setzen. Diese neuen Anweisungen weisen Sie jedoch auch an, alte Anweisungen zu löschen und neue Anweisungen usw. einzufügen. Die ursprünglichen Anweisungen ändern sich also nicht. Das Virus mutiert nicht. Stattdessen macht es einfach alles, was es tut, und hinterlässt gleichzeitig Anweisungen, um die nächste Generation zu erschaffen.
Ist das also möglich? Ja. Aber es ist extrem kompliziert. Ein Programm zu haben, das sich selbst ändert, aber diese Abfolge von Änderungen nicht irgendwann zu einem Programm konvergiert, das nichts Nützliches tut, ist unglaublich komplex.
quelle
Die allgemeine Frage betrifft die Entwicklung von Malware. Die spezifische Frage betrifft Gene. Es gibt in der Tat einen genetischen Algorithmusmechanismus , der digitale "Gene" zur Optimierung verwendet und möglicherweise in Viren / Malware verwendet werden könnte, obwohl es bisher keine Berichte darüber "in the wild" zu geben scheint. Auf der anderen Seite hat sich Malware in der Tat über viele Jahre von einer eher theoretischen Neugierde zu einer mit organisierter Cyberkriminalität usw. entwickelt, wobei die Bedrohungen immer ausgefeilter wurden. Bisher wird dies größtenteils (aber nicht vollständig!) durch die von Menschen entwickelte "Evolution" angetrieben. Man kann sagen, dass Computerviren im Laufe der Zeit im Allgemeinen eine erhöhte "Intelligenz" oder "Angriffskompetenz" entwickeln.
Hier sind einige Referenzen, die die "Entwicklung von / in Malware" untersuchen.
Darwin Inside the Machines: Malware-Evolution und die Folgen für die Computersicherheit Dimitris Iliopoulos, Péter Ször und Christoph Adam
Evolution von Malware Die Evolution von Malware und die Bedrohungslandschaft - ein 10-Jahres-Rückblick / Microsoft
Eine empirische Studie zur Malware-Evolution Archit Gupta, Pavan Kuppili, Aditya Akella und Paul Barford
Der neue Trend in "Malware Evolution" / Raff (Fallstudie von "Carberp")
Der Stuxnet-Wurm ist eine außergewöhnliche Fallstudie zu fortgeschrittenen / sich entwickelnden Virenmerkmalen / Hintergrundinformationen. Die USA und Israel haben den Flammencomputervirus entwickelt, um die iranischen Nuklearbemühungen zu verlangsamen
quelle
Die Hauptsache ist, es zum Laufen zu bringen. Naive Versionen, dh die Verwendung einer vorhandenen, etwas erfolgreichen Malware und die Durchführung von Mutationen bei jedem Reproduktionsversuch, sind in den meisten Fällen für die Malware wahrscheinlich tödlich.
Dies bedeutet jedoch nicht, dass es sich nicht weiterentwickeln könnte, sondern nur, dass sein ursprünglicher Zweck, die Replikation, behindert werden könnte. Mit einer ausreichend niedrigen Mutationsrate und genügend Geduld würden schließlich vorteilhafte und gutartige Mutationen ausgewählt.
Ein Problem ist jedoch, dass sie sich entwickeln würden. Insbesondere würden sie sich nach rein darwinistischen Prinzipien entwickeln. Wenn ich einen Code schreibe, der ausgeführt wird, und dann erst bei erfolgreicher Ausführung seine Binärdatei 1000 Mal an 1000 Speicherorte mit einem zufälligen Fehler oder mehreren Fehlern kopiert und alle ausführt, scheint es, als hätte ich die Replikation abhängig gemacht Das Ausführen einer Aufgabe wird erfolgreich ausgeführt. In Wirklichkeit hängt die Replikation jedoch nur von dem Programm ab, das denkt, dass es diese Aufgabe erfolgreich ausgeführt hat.
Es besteht also eine faire Chance, dass wenn dies eine Malware wäre, die beiden grundlegenden Ziele, insbesondere die Replikation und das Versauen der Computer von Menschen, im Widerspruch zueinander stehen würden. Über einen ausreichend langen Zeitraum würde wahrscheinlich eine Mutation auftreten, die entweder dazu führt, dass die Computer nicht so stark durcheinander gebracht werden, was es für Antiviren weniger wichtig macht, sich mit minimalen Symptomen zu befassen, wie dies die effektivste frühe Strategie in ist pandemic or plague inc, oder machen Sie es sich selbst zur Lüge, dass es sogar gelungen ist, ihre Computer überhaupt zu vermasseln und die primäre Funktion ziemlich schnell in ein Intron zu verwandeln, wenn sie nicht ausgeführt wird, aber die Replikationsfunktion weiterhin funktioniert.
Viele Menschen staunen über die Wirksamkeit des Immunsystems bei der Bekämpfung aller Arten von Bedrohungen, aber in vielerlei Hinsicht sind Computer viel, viel sicherer als Zellen. Ihr Computer kann eigentlich gar keinen Virus herunterladen. Ein perfektes Antivirensystem mit einem perfekten Benutzer muss die Festplatte niemals scannen. Computercode kann nicht einfach physisch in die Festplatte eingefügt werden.
Kontrastzellen, in denen Viren einige ziemlich einzigartige physikalische Mechanismen entwickelt haben, um an den Abwehrmechanismen der Zellen vorbeizukommen. Zum Beispiel sind einige Viren völlig inert, bis sie auf eine Zelle treffen, aber dann greift ihre physische Struktur auf die Zellmembran und punktiert sie heftig, um ihr genetisches Material zu injizieren. Dies ist wie ein Computervirus, der Ihren Computer physisch aufschneidet und neue Hardware hinzufügt, während Ihr Betriebssystem und Ihr Antivirenprogramm "dies ist in Ordnung" denken und den auf dieser Hardware gefundenen Code ausführen.
Es ist also ziemlich wahrscheinlich, dass die Wiedergabe umso besser ist, je harmloser der Code ist. In einigen Fällen ist es für die Evolution möglicherweise einfacher, den Benutzer davon zu überzeugen, ihm zu helfen, als ein neues Antivirenprogramm zu entwickeln. IE hängt sich an Dateien an, die wahrscheinlich für andere Benutzer freigegeben werden.
Letztendlich scheint es mir also wahrscheinlicher, dass die Replikationswahrscheinlichkeit höher ist, wenn sie als Malware als solche nutzlos ist, und wahrscheinlich noch höher, wenn sie den Benutzer oder den Antivirencode davon überzeugen kann, dass es sich tatsächlich um etwas Gutes handelt wichtig oder nützlich.
Eine andere Sache ist, dass die meisten Computer ungültige Vorgänge haben, so dass zufällige Änderungen am Code wahrscheinlich nicht nur die Funktionalität verhindern, sondern auch einfach dazu führen, dass der Code selbst bei ungeschütztem Speicher abstürzt.
quelle
Stellen Sie sich nicht böswillige Computerprogramme als Mikroben in Ihrem Darm vor. Stellen Sie sich einen Computervirus als infektiöses Bakterium vor.
Der Computer kann im Gegensatz zum Immunsystem den Unterschied zwischen den guten und den schlechten Bakterien nicht erkennen.
Es wäre einfach, ein selbstmodifizierendes Programm zu erstellen, aber 99% der Mutationen würden zu einem Fehler führen. Ein Programm ist wie eine Liste von Anweisungen - und Computer legen sehr genau fest, wie diese Anweisungen geschrieben werden. Angenommen, wir haben dieses Programm:
Eine Mutation könnte zu diesem Programm führen:
Obwohl es für den Menschen klar ist, dass es "Erdnuss" ist, ist das für den Computer nicht klar. Ich könnte ein einfaches Skript schreiben, das sich in Python selbst mutiert - aber die meisten Mutationen führen dazu, dass es fehlschlägt.
Es wäre sehr interessiert an einem Virus, das sich selbst mutiert und am Leben bleiben könnte - wir könnten es sogar als Leben klassifizieren.
Ja, ich bin zu spät zur Party - aber das ist ein interessantes Thema, über das es sich zu schreiben lohnt.
quelle