Hallo Forumfreude :-),
aktuell habe ich festgestellt, dass man mittlerweile jede VM erkennen
kann, wenn man das will.
Unter Linux zum Beispiel:
1
systemd-detect-virt
Wirft mir bei einer Linux VM unter VirtualBox, "Oracle" raus.
Dazu gibt es auch Bibliotheken usw.
https://github.com/MikePohatu/TsGui/blob/master/TsGui/Control/HardwareEvaluator.cs
Meine Frage ist nun, ist damit eigentlich das Testen in einer VM
hinfällig?
Ich lege meinen Code so aus, dass alles super funktioniert unter der VM
und im Echtbetrieb kommt dann die Schummelsoftware ;-).
Ich möchte gerne wissen, ob es eine Möglichkeit gibt, dass die VM immer
für den User als PC dargestellt wird und höchstens durch sowas wie die
Temperaturmessung ect. auffällt.
Selbst QEMU wird mittlerweile erkannt.
Ich danke euch für alle Anregungen und Ideen.
Viele Grüße :-)
Msp 4. schrieb:> Meine Frage ist nun, ist damit eigentlich das Testen in einer VM> hinfällig?
Kommt darauf an, was du testen willst. Wenn du testest ob es eine VM
oder ein PC ist dann ja :-)
> Ich möchte gerne wissen, ob es eine Möglichkeit gibt, dass die VM immer> für den User als PC dargestellt wird und höchstens durch sowas wie die> Temperaturmessung ect. auffällt.https://github.com/systemd/systemd/blob/04d7ca022843913fba5170c40be07acf2ab5902b/src/basic/virt.c
Hier siehst du, was geprüft wird. Wenn es dir darum geht, dass dies
nicht erkannt wird, dann änderst du in QEMU oder in Virtualbox diese
Werte, und kompilierst dir das ganze neu.
Sind ja beide Open Source.
Macht für mich zwar keinen Sinn, aber müsste eigentlich die Frage auf
deine Antwort sein.
Malware erkennt VM und übliche Testsuiten schon seit Jahren, und die
üblichen AV-Hersteller entwickeln immer wieder neue Tricks um die
Erkennung zu umgehen.
Was dazu führt, das die Malwarehersteller bessere Tricks wissen um VMs
zu erkennen.
Jens M. schrieb:> Malware erkennt VM und übliche Testsuiten schon seit Jahren
Das wäre doch eine neue Möglichkeit sich zu schützen: man lädt ein
kleines Progrämmchen, das den PC als VM ausgibt, und schon verhält sich
die Malware ruhig.
Georg
Diese Möglichkeit funktioniert nur, solange sie neu ist.
Sobald mehrere PCs behaupten, sie seien ein Honeypot eines
Antiviren-Herstellers, entwickeln die Malwarehersteller Tricks, mit
denen sie gefakte Testsuiten erkennen.
georg schrieb:> Das wäre doch eine neue Möglichkeit sich zu schützen: man lädt ein> kleines Progrämmchen, das den PC als VM ausgibt, und schon verhält sich> die Malware ruhig.
Ja ach.
Was meinst du was normale Leute machen wenn sie zweifelhafte Software
"testen". ;)
Es ist aber nicht so, das da nur irgendwelche DLLs getestet werden oder
so, da geht's um Timings und eigenartige Vorkommnisse.
Z.B. vielkernige Prozessoren die auf einmal andere Namen oder Kernzahlen
haben, komische Taktfrequenzen, nicht funktionierende Features, sowas.
also dieses:
Gödel Escher Bach schrieb:> Sobald mehrere PCs behaupten, sie seien ein Honeypot eines> Antiviren-Herstellers, entwickeln die Malwarehersteller Tricks, mit> denen sie gefakte Testsuiten erkennen.
Mich würde es schon interessieren, an welchen Kriterien Programme
aktuell die VMs erkennen. Nur um eine Vorstellng davon zu bekommen. Weiß
jemand Genaueres dazu?
Gödel Escher Bach schrieb:> Diese Möglichkeit funktioniert nur, solange sie neu ist.>> Sobald mehrere PCs behaupten, sie seien ein Honeypot eines> Antiviren-Herstellers, entwickeln die Malwarehersteller Tricks, mit> denen sie gefakte Testsuiten erkennen.
Aber der Angriff von 2 Seiten hätte was.
Auf der einen Seite die AV-VMs, die nicht als solche erkannt werden
wollen und auf der anderen Seite die User, die gern als solche erkannt
werden wollen.
Womit die Virenhersteller in der Bredouille wären. Ist es jetzt ein
User, der eine VM simuliert, um den Virus lahmzulegen oder ist es eine
AV-Test-VM.
georg schrieb:> Das wäre doch eine neue Möglichkeit sich zu schützen: man lädt ein> kleines Progrämmchen, das den PC als VM ausgibt, und schon verhält sich> die Malware ruhig.
Das geht viel einfacher: in einer echten VM. Ich mach das schon lange so
beim Internet-Banking u.Ä.
Das beste sind dann die Viren, die das Spiel andersherum machen.
Rootkits, die dein System in einer virtuellen Maschine booten, sodass
sie komplette Kontrolle haben, aber das System+Antivirus nichts
dagegegen machen können. Durch die massiven
Virtualisierungsmöglichkeiten heutiger CPUs braucht so eine kleine VM
kaum Codeaufwand.
Noch besser sind dann Viren, und ihren Programmcode in der Firmware der
Festplatte verstecken.
http://spritesmods.com/?art=hddhack
(Interessant wird es auf der Seite "Software flashing")
Gödel Escher Bach schrieb:> Noch besser sind dann Viren, und ihren Programmcode in der Firmware der> Festplatte verstecken.
Das wird wohl in der Praxis an der Artenvielfalt im Plattenbiotop
scheitern…