Virenschutz

Welche Möglichkeiten es gibt, sich vor schädlichen Programmen zu schützen – und warum technische Lösungen (Antivirus-Software, Firewall) nicht ausreichen.

MATERIALIEN

 

Auf der technischen Ebene gibt es zwei Arten von Programmen, die zum Schutz vor Viren und anderen Arten von Schadprogrammen eingesetzt werden: Antivirus-Software und Firewalls. Im Folgenden werden die Grundfunktionen dieser Programme vereinfacht dargestellt – im Bewusstsein, dass moderne Softwarepakete teilweise deutlich über diese Grundfunktionen hinausgehen.

Antivirus-Software

Antivirenprogramme arbeiten eigentlich nach einem einfachen Prinzip: sie durchsuchen Dateien nach Bitsequenzen, die als maliziöser Schadcode identifiziert wurden.

Details

Wie bereits mehrfach erwähnt, sind Computerprogramme auch nur Daten, also Sequenzen von Bits, die vom Prozessor interpretiert werden. Nehmen wir als Beispiel das Roadkill-Szenario, in dem Sie in einer Datei namens Car1.java Code eingefügt haben, der dafür sorgt, dass sich das entsprechende Objekt über den Bildschirm bewegt. Diese Datei wurde zu einer ausführbaren Version namens Car1.class compiliert, deren Inhalt eine Bitsequenz ist, die (im Falle von Java auf dem Umweg über die JVM) vom Prozessor ausgeführt werden kann. Wenn nun beispielsweise der Name dieser Datei geändert wurde, kann man sie trotzdem auf der Festplatte aufspüren, indem man alle vorhandenen Dateien nach genau dieser Bitsequenz durchsucht.

Genau genommen wäre das Durchsuchen nach Bitsequenzen zu aufwändig, aber es gibt einen Trick: Man berechnet einen sogenannten Hash-Wert für die gesuchte Sequenz und sucht nach Dateien, die denselben Wert haben. Im Zusammenhang mit Viren wird der Hash-Wert auch “Signatur” genannt.
Auf https://emn178.github.io/online-tools/sha256.html sehen Sie diesen Prozess in Aktion: Sie können einen Text eingeben und bekommen den zugehörigen Hash-Wert (hier SHA-256) angezeigt. Auch für ganze Dateien kann man den zugehörigen Hash-Wert erzeugt: https://emn178.github.io/online-tools/sha256_checksum.html.

Woher aber weiss das Virenprogramm, nach welchen Sequenzen bzw. Hash-Werten es Ausschau halten soll? Ganz einfach: Es hat eine Liste mit verdächtigen Hash-Werten bzw. Signaturen. Die Hersteller von Sicherheitssoftware betreiben ein Netzwerk von sogenannten «Honeypots», das sind Computer, die absichtlich versuchen, mit Schadsoftware infiziert zu werden. Die damit eingefangenen Schadprogramme werden von Experten analysiert und in Signaturen umgewandelt, die anschliessend mit dem nächsten Update auf die Signaturenliste des lokalen Antivirenprogramms kommen. Aus diesem Grund ist es essentiell, Antivirus-Software aktuell zu halten. Gleichzeitig ist unvermeidbar, dass ganz neue Schadprogramme während einer kurzen Zeit (bevor sie eingefangen und ihre Signaturen verteilt wurden) nicht entdeckt werden können.
Unter anderem deswegen haben Antivirenprogramme (mindestens) zwei verschieden Scan-Funktionen.

  1. Die eine, oft «Echtzeitschutz» o.ä. genannt, durchsucht jede Datei, die neu auf den Computer gelangt – z.B. per Download, E-Mail-Anhang oder USB-Stick.
  2. Der anderen («Festplattenscan») kann man als Benutzer sagen, welche schon auf einem Datenträger (der internen Festplatte, einem USB-Stick, usw.) gespeicherten Dateien sie durchsuchen soll. Da es dabei meist um sehr viele Dateien geht, kann das eine Weile dauern – trotzdem sollte man einen solchen Festplattenscan periodisch durchführen, vor allem dann, wenn ein Verdacht besteht.

Details

Dummerweise wissen auch die Urheber von Schadprogrammen, wie ein Virenscan funktioniert, und sie versuchen natürlich, ihre Malware auf verschiedene Arten vor der Erkennung zu schützen. Eine der einfachsten Methoden ist, dafür zu sorgen, dass der Schadcode einige funktionslose, zufällig gewählte Zeichen enthält (um beim obigen Beispiel zu bleiben könnte man im Java-Code einen Kommentar wie //Xjkaef3j$adhg einfügen), die sich bei jeder Replikation verändern. Auf diese Weise bleibt der eigentliche Code derselbe, aber jede Variation hat eine andere Signatur. Die Virenschützer reagieren, indem sie Algorithmen entwickeln, die funktionslose Codeteile erkennen und entfernen, oder mit mehreren Hash-Werten für Teile des Schadcodes arbeiten.

Für die fortschrittlichsten Schadprogramme ist jedoch auch das nicht genug, weswegen zumindest gute Antivirenprogramme inzwischen auch eine verhaltensbasierte Ebene haben: Sie führen verdächtige Codeteile in einer abgeschotteten Umgebung (einer sogenannten «Sandbox») aus und beurteilen anhand dessen, was der Code versucht zu tun, ob es sich um Schadcode handelt.

Firewall

Eine Firewall ist so etwas wie eine zweite Verteidigungslinie gegen maliziöse Programme. Wie der Name schon andeutet, geht es darum, den Schaden zu begrenzen, nicht darum, das Feuer (bzw. die Infektion mit dem Schadcode) zu verhindern.
Eine Firewall konzentriert sich auf den heutzutage üblichsten Weg des Datenaustauschs, nämlich per Netzwerk (LAN oder WLAN). Weil Computer untereinander meistens verschiedene Gespräche gleichzeitig führen, gibt es sogenannte «Ports» (= Adresse auf der innersten Schicht eines Datenpakets), mithilfe derer die Gespräche auseinandergehalten werden. Theoretisch gibt es knapp 216 mögliche Ports, die ersten 1023 sind für übliche Anwendungen standardisiert. Ports kann man sich in diesem Zusammenhang tatsächlich vorstellen wie Türen, durch die der lokale Computer (Daten-)Pakete mit anderen Geräten austauscht.
Die primäre Funktion einer Firewall ist es, fast alle dieser Türen erst mal zu schliessen. In den Einstellungen der Firewall regelt man dann die Ausnahmen, also welche lokalen Programme welche Türen/Ports doch benutzen dürfen; so darf beispielsweise der Browser über Port 80 (Standard für HTTP, z.B. den Aufruf einer Website) mit entfernten Computern kommunizieren. Bei einem Kommunikationsversuch, der nicht den definierten Ausnahmen entspricht, erhält der Benutzer per Pop-up eine Meldung und kann dann entscheiden, ob er diese Kommunikation (einmalig) zulassen will. Für manche Anwendungen (typisches Beispiel: netzwerkbasierten Computerspielen) muss der Benutzer die Ausnahme dauerhaft in den Firewall-Einstellungen eintragen, damit sie funktionieren.
Auf diese Weise hat der Benutzer die Kontrolle über die Kommunikationskanäle seines Computers und bekommt es mit, wenn eine Spyware o.ä. versucht, die ausspionierten Daten zurück ins Netz zu übertragen.
In fortgeschrittenen Firewall-Anwendungen gibt es teilweise auch Funktionen für die aktive Überwachung des Netzverkehrs, was u.a. inhaltsbasiertes Filtern ermöglicht. Wie schon für die einfacheren Varianten braucht es allerdings ein fortgeschrittenes technisches Verständnis, um eine Firewall so zu konfigurieren, dass wirklich nur die für diesen Benutzer zulässigen Pakete durchkommen, aber auch nicht zu viel blockiert wird.

Benutzerverhalten

Die beiden oben beschriebenen Arten von Software bieten einen ziemlich guten Schutz vor verschiedenen Arten maliziöser Software – wie gut genau der Schutz ist, hängt von vielen verschiedenen Details ab, z.B. von der Aktualität, von verschiedensten Einstellungen, und natürlich von der Qualität der Schutz-Software, deren Entwickler sich in einem beständigen Aufrüstungskampf mit den Entwicklern von Schadprogrammen befinden. Sicher ist jedoch, das kein noch so gutes Virenschutz-Programm je eine 100%-ige Sicherheit wird bieten können. So unverzichtbar die technische Ebene des Virenschutzes ist, noch wichtiger ist die menschliche, also das sicherheitsbewusste Verhalten des Benutzers.  Zum einen wird dadurch die Wahrscheinlichkeit minimiert, dass die technische Ebene überhaupt relevant wird. Zum anderen aber entsteht der grösste Teil des durch Cyber-Kriminalität verursachten Schadens gar nicht (oder nur indirekt) durch Schadsoftware, sondern schlicht dadurch, dass unbedarfte Benutzer zu (für sie oder andere) schädlichem Verhalten verleitet werden. Die Betrüger setzen dafür oft auf Methoden, die auch in anderen Arten des Trickbetrugs oder der Hochstapelei zum Einsatz kommen («Social Engineering»), sie hacken eigentlich nicht den Computer, sondern vielmehr den Benutzer.

Auf den Folien ManipulationMenschMaschine.pptx.pdf geht es darum, wie man den Computer vor technischen und den Benutzer vor psychologischen Manipulationen schützt.

Die Sendung «Cybercrime: Wie sicher ist das Know-how der Schweiz?» (SRF, 3.9.2015, ca. 36 Minuten) gibt Einblicke in mögliche Bedrohungsszenarien und zeigt konkret, wie ein allfälliger Angriff mittels «Social Engeneering» ablaufen könnte.