[gelöst]] Am I gehacked?

Alles rund um sicherheitsrelevante Fragen und Probleme.
Antworten
clue
Beiträge: 943
Registriert: 08.07.2007 17:36:57

[gelöst]] Am I gehacked?

Beitrag von clue » 11.03.2016 10:14:20

Meine Kiste hängt von Zeit zu Zeit beim Hoch- oder Runterfahren. Damit habe ich mich inzwischen abgefunden. Was mich aber stutzig werden ließ, ist die folgende Meldung beim reboot-Versuch (vorletzte Zeile):

Bild

Ich habe kein KVM installiert. Ich hatte einmal spaßeshalber virtualbox ausprobiert und danach wieder gepurged. Davon sollte also nichts mehr übrig sein. Jetzt die Preisfrage: [/Paranoiamodus AN]Ist das normal, dass ich in einer KVM laufe, oder wurde ich von einem Buchstaben-Verbrecher-Verein gehackt und merke gar nicht, dass ich die ganze Zeit in einer VM ausgespäht werde? [/Paranoiamodus AUS]

Also wie kommt da bitte eine VM hin?
Zuletzt geändert von clue am 14.03.2016 11:22:23, insgesamt 1-mal geändert.
Offenbarung 13 erfüllt sich gerade vor unseren Augen, genießen wir also die letzten Jahre unserer Scheinfreiheit

Benutzeravatar
smutbert
Beiträge: 8363
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Am I gehacked?

Beitrag von smutbert » 11.03.2016 10:44:46

Virtualbox hat doch mit kvm gar nichts am Hut? aber ich würde einfach einmal installierten Paketen suchen, bzw. nach Paketen mit übriggebliebenen Konfigurationsdateien

Code: Alles auswählen

$ dpkg -l '*virtualbox*'
$ dpkg -l '*kvm*'
$ dpkg -l '*libvirtd*'
wäre das was mir einfällt.

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Bin ich Hackfleisch?

Beitrag von Cae » 11.03.2016 10:45:02

Die Meldung stammt aus virt/kvm/kvm_main.c:2786:kvm_reboot(), der sichtbare Kontrollfluss waere dann

Code: Alles auswählen

2777 static int kvm_reboot()
2786         printk(KERN_INFO "kvm: exiting hardware virtualization\n");
...
2792 static struct notifier_block kvm_reboot_notifier = {
2793         .notifier_call = kvm_reboot,
...
3269 void kvm_exit(void)
3276         unregister_reboot_notifier(&kvm_reboot_notifier);
3284 EXPORT_SYMBOL_GPL(kvm_exit);
Die Datei ist kommentiert mit

Code: Alles auswählen

   4  * This module enables machines with Intel VT-x extensions to run virtual
   5  * machines without emulation or binary translation.
-- ich gehe stark davon aus, dass es sich um die Moeglichkeit handelt, VMs zu unterstuetzen. Nicht andersrum, indem der Kernel in einer KVM-beschleunigten Umgebung laeuft. Zumal dieser Kernel nicht direkt wissen kann, dass da KVM fuer Hardwarebeschleunigung sorgt; normalerweise sind da die Qemu-Eintrage (der eigentliche Emulator) im lspci oder den CPU-Flags (weniger aussagekraeftig) verraeterischer.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

NAB
Beiträge: 5501
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: Am I gehacked?

Beitrag von NAB » 11.03.2016 13:03:32

kvm ist ein Kernelmodul, das als "Dienstleistung" Hardwarevirtualisierung anbietet. Und wenn das Modul entladen wird, dann wird diese Hardwarevirtualisierung halt beendet. Das bedeutet nicht, dass sie auch genutzt wird.

Solange es um kvm geht, kann der Kernel aber durchaus erkennen, ob er in einer VM läuft. kvm hat ja keinen Grund, sich zu verstecken, und der Kernel hat Unterstützung für virtualisierte Umgebungen eingebaut. Früh beim Booten müsste bei dir die Meldung "Booting paravirtualized kernel on bare hardware" auftauchen, dann ist dein Kernel der Meinung, dass er direkt auf der Hardware läuft.
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

r4pt0r
Beiträge: 1237
Registriert: 30.04.2007 13:32:44
Lizenz eigener Beiträge: MIT Lizenz

Re: Am I gehacked?

Beitrag von r4pt0r » 11.03.2016 16:25:50

Einfache Methode:

Code: Alles auswählen

# lscpu | grep 'Model name'
Model name:            Common KVM processor
Auch lshw gibt überall entsprechende Hinweise auf eine VM-Umgebung, egal ob KVM/Qemu, Virtualbox, Xen, VMware oder was auch immer zum Einsatz kommt.

Benutzeravatar
towo
Beiträge: 4569
Registriert: 27.02.2007 19:49:44
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Am I gehacked?

Beitrag von towo » 11.03.2016 17:22:12

r4pt0r hat geschrieben:Einfache Methode:

Code: Alles auswählen

# lscpu | grep 'Model name'
Model name:            Common KVM processor
Auch lshw gibt überall entsprechende Hinweise auf eine VM-Umgebung, egal ob KVM/Qemu, Virtualbox, Xen, VMware oder was auch immer zum Einsatz kommt.
Oha, das funktioniert ja so nun nicht wirklich.
Bild

r4pt0r
Beiträge: 1237
Registriert: 30.04.2007 13:32:44
Lizenz eigener Beiträge: MIT Lizenz

Re: Am I gehacked?

Beitrag von r4pt0r » 11.03.2016 18:59:56

Lässt sich in Qemu mittlerweile die Host-CPU an den Gast abbilden? Wäre mir wirklich neu - in sämtlichen KVM-Gästen hab ich bisher immer nur KVM- oder ggf QEMU-"Prozessoren" gesehen...

Allerdings sollten trotzdem in der lshw-Ausgabe diverse Controller hinweise auf die verwendete Virtualisierung geben.

Benutzeravatar
towo
Beiträge: 4569
Registriert: 27.02.2007 19:49:44
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Am I gehacked?

Beitrag von towo » 11.03.2016 19:05:21

Das geht bei kvm doch schon ewig, -cpu host

Benutzeravatar
catdog2
Beiträge: 5352
Registriert: 24.06.2006 16:50:03
Lizenz eigener Beiträge: MIT Lizenz

Re: Am I gehacked?

Beitrag von catdog2 » 12.03.2016 06:56:11

Lässt sich in Qemu mittlerweile die Host-CPU an den Gast abbilden? Wäre mir wirklich neu - in sämtlichen KVM-Gästen hab ich bisher immer nur KVM- oder ggf QEMU-"Prozessoren" gesehen...
Klar praktisch schon immer mit -cpu host

Code: Alles auswählen

qemu-system-x86_64 -cpu help
...
x86             host  KVM processor with all supported host features (only available in KVM mode)
...
Unix is user-friendly; it's just picky about who its friends are.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Am I gehacked?

Beitrag von rendegast » 12.03.2016 09:41:48

Wenn die Virtualisierung bösartig und gut gemacht ist,
sollte das System sie nicht oder schwer feststellen können.
Sowas wie Durchreichen aller Geräte mit Abgreifoption.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

clue
Beiträge: 943
Registriert: 08.07.2007 17:36:57

Re: Am I gehacked?

Beitrag von clue » 12.03.2016 16:26:34

smutbert hat geschrieben:Virtualbox hat doch mit kvm gar nichts am Hut? aber ich würde einfach einmal installierten Paketen suchen, bzw. nach Paketen mit übriggebliebenen Konfigurationsdateien

Code: Alles auswählen

$ dpkg -l '*virtualbox*'
$ dpkg -l '*kvm*'
$ dpkg -l '*libvirtd*'
wäre das was mir einfällt.
Also ich hab jetzt bei mir nachgeschaut mit folgenden Ergebnissen:

Code: Alles auswählen

dpkg -l '*virtualbox*'
dpkg-query: Kein Paket gefunden, das auf *virtualbox* passt

dpkg -l '*kvm*'
dpkg-query: Kein Paket gefunden, das auf *kvm* passt

dpkg -l '*libvirtd*'
dpkg-query: Kein Paket gefunden, das auf *libvirtd* pass
Cae hat geschrieben:Die Meldung stammt aus virt/kvm/kvm_main.c:2786:kvm_reboot(), der sichtbare Kontrollfluss waere dann

Code: Alles auswählen

2777 static int kvm_reboot()
2786         printk(KERN_INFO "kvm: exiting hardware virtualization\n");
...
2792 static struct notifier_block kvm_reboot_notifier = {
2793         .notifier_call = kvm_reboot,
...
3269 void kvm_exit(void)
3276         unregister_reboot_notifier(&kvm_reboot_notifier);
3284 EXPORT_SYMBOL_GPL(kvm_exit);
Die Datei ist kommentiert mit

Code: Alles auswählen

   4  * This module enables machines with Intel VT-x extensions to run virtual
   5  * machines without emulation or binary translation.
-- ich gehe stark davon aus, dass es sich um die Moeglichkeit handelt, VMs zu unterstuetzen. Nicht andersrum, indem der Kernel in einer KVM-beschleunigten Umgebung laeuft. Zumal dieser Kernel nicht direkt wissen kann, dass da KVM fuer Hardwarebeschleunigung sorgt; normalerweise sind da die Qemu-Eintrage (der eigentliche Emulator) im lspci oder den CPU-Flags (weniger aussagekraeftig) verraeterischer.

Gruss Cae
Daraus werde ich jetzt nicht schlau. Heißt das, auf jeder Maschine läuft KVM oder ist lediglich KVM support vorhanden?
r4pt0r hat geschrieben:Einfache Methode:

Code: Alles auswählen

# lscpu | grep 'Model name'
Model name:            Common KVM processor
Auch lshw gibt überall entsprechende Hinweise auf eine VM-Umgebung, egal ob KVM/Qemu, Virtualbox, Xen, VMware oder was auch immer zum Einsatz kommt.
Also meine CPU ist:

Code: Alles auswählen

lscpu | grep 'Model name'
Model name:            AMD A10-5750M APU with Radeon(tm) HD Graphics
Ich habe also einen AMD, der wahrscheinlich aber Virtualisierung beherrscht, nur eben nicht nach Intel-Art.
NAB hat geschrieben:kvm ist ein Kernelmodul, das als "Dienstleistung" Hardwarevirtualisierung anbietet. Und wenn das Modul entladen wird, dann wird diese Hardwarevirtualisierung halt beendet. Das bedeutet nicht, dass sie auch genutzt wird.
Also läuft KVM dann auch bei Euch? Wo oder wie könnte man das denn nachprüfen?
NAB hat geschrieben:Solange es um kvm geht, kann der Kernel aber durchaus erkennen, ob er in einer VM läuft. kvm hat ja keinen Grund, sich zu verstecken, und der Kernel hat Unterstützung für virtualisierte Umgebungen eingebaut. Früh beim Booten müsste bei dir die Meldung "Booting paravirtualized kernel on bare hardware" auftauchen, dann ist dein Kernel der Meinung, dass er direkt auf der Hardware läuft.
Diese Meldung erhalte ich nicht. Also kann ich jetzt daraus schließen, dass KVM bei ALLEN Rechnern vorhanden ist, aber nicht zwangsläufig auch läuft? Tut mir Leid, wenn ich jetzt nochmals Frage: Können wir irgendwie überprüfen ob unsere Systeme nicht alle längst in einer VM laufen und munter Daten abgesaugt werden?
Offenbarung 13 erfüllt sich gerade vor unseren Augen, genießen wir also die letzten Jahre unserer Scheinfreiheit

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Am I gehacked?

Beitrag von rendegast » 13.03.2016 02:36:52

$ /sbin/modinfo kvm_amd kvm_intel
filename: /lib/modules/4.3.0-0.bpo.1-amd64/kernel/arch/x86/kvm/kvm-amd.ko
license: GPL
author: Qumranet
alias: cpu:type:x86,ven*fam*mod*:feature:*00C2*
depends: kvm
intree: Y
vermagic: 4.3.0-0.bpo.1-amd64 SMP mod_unload modversions
parm: npt:int
parm: nested:int

filename: /lib/modules/4.3.0-0.bpo.1-amd64/kernel/arch/x86/kvm/kvm-intel.ko
license: GPL
author: Qumranet
alias: cpu:type:x86,ven*fam*mod*:feature:*0085*
depends: kvm
intree: Y
vermagic: 4.3.0-0.bpo.1-amd64 SMP mod_unload modversions
...
findet udev(?) obige cpu-Feature, so werden die entsprechenden Module geladen.
Damit stehen sie dem System zur Verfügung.
Die Module geben beim Laden/Entladen entsprechende Meldungen.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

clue
Beiträge: 943
Registriert: 08.07.2007 17:36:57

Re: Am I gehacked?

Beitrag von clue » 14.03.2016 11:21:44

rendegast hat geschrieben:
$ /sbin/modinfo kvm_amd kvm_intel
filename: /lib/modules/4.3.0-0.bpo.1-amd64/kernel/arch/x86/kvm/kvm-amd.ko
license: GPL
author: Qumranet
alias: cpu:type:x86,ven*fam*mod*:feature:*00C2*
depends: kvm
intree: Y
vermagic: 4.3.0-0.bpo.1-amd64 SMP mod_unload modversions
parm: npt:int
parm: nested:int

filename: /lib/modules/4.3.0-0.bpo.1-amd64/kernel/arch/x86/kvm/kvm-intel.ko
license: GPL
author: Qumranet
alias: cpu:type:x86,ven*fam*mod*:feature:*0085*
depends: kvm
intree: Y
vermagic: 4.3.0-0.bpo.1-amd64 SMP mod_unload modversions
...
findet udev(?) obige cpu-Feature, so werden die entsprechenden Module geladen.
Damit stehen sie dem System zur Verfügung.
Die Module geben beim Laden/Entladen entsprechende Meldungen.

Also da mein output genau so wie Deiner aussieht, gehe ich davon aus, dass auch bei Dir KVM bereitgestellt wird und eventuell auch geladen wird. Daher schließe ich daraus, dass es sich um einen normalen Vorgang handelt und hoffe, damit werden Angreifern (wie den Geheimverbrechern) Tür und Tor nicht geöffnet.
Offenbarung 13 erfüllt sich gerade vor unseren Augen, genießen wir also die letzten Jahre unserer Scheinfreiheit

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: [gelöst]] Am I gehacked?

Beitrag von rendegast » 14.03.2016 15:05:18

Zum Modul gehört die Schnittstelle

Code: Alles auswählen

$ ll /dev/kvm
crw-rw----+ 1 root kvm 10, 232 Mär  7 20:44 /dev/kvm
root und Gruppe kvm dürfen darauf zugreifen.

Das "+" steht für erweiterte Rechte / ACL, in einem xterm:

Code: Alles auswählen

$ whoami
meinuser
$ getfacl /dev/kvm
getfacl: Entferne führende '/' von absoluten Pfadnamen
# file: dev/kvm
# owner: root
# group: kvm
user::rw-
user:meinuser:rw-
group::rw-
mask::rw-
other::---

Es wird meinuser (in Gruppe kvm) angezeigt.
In einer anderen X-Session eines anderen kvm-Benutzers steht dann dieser.
In einer reinen Konsolensitzung wird gar kein Benutzername ausgegeben,
weder unter root noch einem kvm-Benutzer.

Sicherheitsmaßnahme wäre also, daß ein kvm-berechtigter Benutzer zBsp. nicht surft.
Und ein surfender Benutzer nicht in Gruppe kvm aufgenommen wird.



Hier haben solche ACL auch Sound-, Video- und cdrom-Devices:

Code: Alles auswählen

find /dev ! -type d -exec ls -l "{}" \; | awk '$1~/\+$/'
('find -ls' zeigt das "+" nicht an)




Also da mein output genau so wie Deiner aussieht,
Das liegt wohl daran, daß Du den identischen kernel mit identischen Modulen benutzt.
Ich frage da ja nur das Modul ab.

Wenn Du nicht willst, daß die Schnittstelle zur Verfügung steht,
so entlade kvm_amd/kvm_intel und kvm und setze die Module auf die blacklist, zBsp.:
/etc/modprobe.d/00_kein-kvm.conf

Code: Alles auswählen

blacklist kvm
blacklist kvm_amd
blacklist kvm_intel
und noch abschließend die initrd: 'update-initramfs -u -kall'.

Ausblick:
Sollen Modulen Optionen mitgegeben werden 'options modul ... ... ...',
die explizide debian-Vorgaben überschreiben sollen,
so empfehle ich ein Schema
/etc/modprobe.d/00_modul-option.conf
/etc/modprobe.d/zz_modul-option.conf -> 00_modul-option.conf
Dadurch werden debians Optionen beim Laden vorn und hinten eingeschlossen,
denn debians Datein kommen normalerweise mit klein-alphabetschem Namen
und die Dateiliste wird ls-artig abgearbeitet.
Die für das Modul vorgesehenen Optionen gelten dann im first- wie im last-Strike-Prinzip.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

clue
Beiträge: 943
Registriert: 08.07.2007 17:36:57

Re: [gelöst]] Am I gehacked?

Beitrag von clue » 18.03.2016 14:47:44

Puh, das war erstmal Viel auf einmal. Ein dickes Dankeschön an Dich dafür :THX:
Offenbarung 13 erfüllt sich gerade vor unseren Augen, genießen wir also die letzten Jahre unserer Scheinfreiheit

Antworten