![]() |
Dieser Artikel zielt darauf ab zu erklären wie die Norman Sandbox Technologie funktioniert und sich von anderen Lösungen unterscheidet.
Man sollte beachten, dass es sich bei der Norman Sandbox um einen virtuellen Computer handelt.
Wenn eine Datei das erste mal überprüft wird, nachdem die NVC Scan-Engine initialisiert wurde, wird ein virtueller Prozessor im Speicher des Computers geladen. Das Laden dieses Prozesses startet mit einem simulierten ROM-BIOS, welches die Sektoren von den simulierten Festplatten liest und sie ausführt; welche die Dateien des Betriebssystems und die Befehlszeile lädt. Von diesem sauber gestarteten Systemabbild wird eine Aufnahme gemacht um es für nachfolgende Überprüfungen wieder einzusetzen.
Auf diesem simulierten Laufwerk finden wir eine FAT-Partition, mit Verzeichnissen und Dateien. Einmal gestartet, wird die gescannte Datei in eine simulierte Festplatte kopiert und ausgeführt. Diese ausgeführte Datei kann nun die Prozesse ohne Einschränkungen durchführen. Hier können Dateien infiziert und/oder gelöscht werden, sich über Netzwerke kopieren und verteilen, eine Verbindung mit einem IRC-Server erstellen und sogar Mails können versendet werden. Gleichzeitig wird sogar ein aktiver Port geladen.
Jede Aktion wird durch das Norman Programm aufgezeichnet, weil die Sandbox, diese auf den Code basierenden Vorgänge effektiv ausführt.
Kein Programmcode wird auf dem echten CPU gestartet, ausser die von Norman benötigte NVC Simulations-Engine; sogar die Hardwareumgebung wird im simulierten PC virtuell abgebildet.
In anderen, bekannten Lösungen wird nur ein Teil der benötigten Umgebung simuliert - der Grossteil des Codes wird auf dem echten CPU gestartet und wenn dieser Programmcode z. B. mit Windows in Verbindung tritt, dann wird es mit Antworten gefüttert, die so aussehen als würden sie vom Betriebssystem kommen. In Wirklichkeit kommen Codestücke aus anderen Bereichen, welche teilweise auf der echten CPU ablaufen oder nicht ablaufen.
Unserer Meinung nach, ist dies eine sehr unsichere Art und Weise, die Prozesse auszuführen und es gewährt uns nicht die benötigte Flexibilität.
Nehmen Sie zum Beispiel ein speziell präpariertes und ausführbares Programm, welches eine Art „Overflow“ oder eine verdächtige Codekombination beinhaltet, um aus den limitierten Umgebungen auszubrechen. Wenn es auf einem echten CPU ausgeführt würde, hätte der Code den Zugang zum echten Speicher- und CPU-Register. Es wäre deshalb theoretisch denkbar, dass dieser schädliche Code ausserhalb der Sandbox ausbrechen oder diese sogar zum Absturz bringen könnte. Würde eine solche schädliche Datei auf dem vollständig emulierten CPU ausgeführt, könnte der schädliche Code sicherlich die simulierte Umgebung zum Absturz bringen und den CPU in eine Endlosschlaufe führen.Dabei würden Dateien gelöscht, aber all dies würde nur auf dem simulierten Computer passieren. Der simulierte PC aber, würde nur melden „Keine Antwort vom simulierten PC. Das System wird heruntergefahren.“ Oder wenn der Code wirklich unbekannt ist - „Dieser Code wird nicht unterstützt. Das System wird heruntergefahren.“
Es geht nicht darum vermeintlich, schädliche Aktionen in Echtzeit zu überwachen und zu stoppen, wie z.B. bei Anbietern ähnlicher Technologien, sondern um in einer geschützten, virtuellen Umgebung festzustellen was passieren würde, wenn der schädliche Code (Malware) in ungeschützter Netzwerkumgebung ausbrechen würde. Sogar wenn NVC auf einem Novell Netware Server, unter Linux, OS/2 oder DOS installiert wird.
