Hacker sein leicht gemacht – Logitech Webcam

Dieser Beitrag dreht sich um Webcams von Logitech und wie man damit filmmäßig einen auf bösen Überhacker machen kann. Hacken müssen wir dabei allerdings nichts 😉

Hacker sein leicht gemacht – Logitech Webcam

Man kennt den Spruch: „Wir haben Dich beim Porno gucken gefilmt und mailen das an alle Deine Freunde, wenn Du nicht zahlst!“  Wenn der Spruch mit der üblichen Bitcoin Forderung per Mail kommt, ist er meisten nur das Übliche: eine Scammail.

Wenn eine Webcam benutzt wird, geht i.d.R. eine kleine LED an, die anzeigt, daß die Kamera benutzt wird. Hört die Nutzung der Kamera auf, geht auch das Licht aus.

Was wäre, wenn man die LED einfach .. sagen wir mal.. „abschalten“ könnte?

Was wie die Handlung eines billigen Hackerfilms klingt, ist der Horror jedes WebCam-Besitzers: Der PC wird über den Besuch einer Webseite gehackt und die Angreifer können per WebCam alles sehen und hören ohne das der Belauschte es merkt. Mal davon abgesehen, daß man auch die aktivierte LED nicht unbedingt bemerkt, wenn man nicht direkt vor der Kamera sitzt, wäre das der SuperGAU für PC Besitzer.

Wie sieht das jetzt in der Realität aus, kann man da einfach einen PC hacken, die WebCam aktivieren, den Datenstrom abgreifen und das alles ohne das die LED angeht?

Nun, wenn man Besitzer einer Logitech WebCam C310 ist, dann geht das .. fast. Das man unsichere PCs über Browser oder untergejubelte Worddokumente, Bilder, etc. hacken kann, ist ja kein Geheimnis. Erst jüngst hat AppleMail für IPhone ja so ein geile Lücke offenbart, über die man per einfacher Email ein IPhone übernehmen konnte.

Aber auch Firefox und Chrome sind alles andere als sicher und nur weil es Open-Source ist, heißt es nicht, daß es sicherer ist. Beispiel Chromium: (CVE Nummern sind gemeldete Schwachstellen in einer internationalen Datenbank)

Name        : chromium
Version     : 81.0.4044.122

Chromium is an open-source web browser, powered by WebKit (Blink).

--------------------------------------------------------------------------------
Update Information:

Another day, another chromium update. This one fixes:  CVE-2020-6458
CVE-2020-6459 CVE-2020-6460  ----  Fix dependency issue introduced when
switching from a "shared" build to a "static" build.  ----  A new major version
of Chromium without any security bugs! Just kidding. Here's the CVE list:
CVE-2020-6454 CVE-2020-6423 CVE-2020-6455 CVE-2020-6430 CVE-2020-6456
CVE-2020-6431 CVE-2020-6433 CVE-2020-6434 CVE-2020-6435 CVE-2020-6436
CVE-2020-6437 CVE-2020-6438 CVE-2020-6439 CVE-2020-6440 CVE-2020-6441
CVE-2020-6442 CVE-2020-6443 CVE-2020-6444 CVE-2020-6445 CVE-2020-6446
CVE-2020-6447 CVE-2020-6448 CVE-2020-6432 CVE-2020-6457  Oh, and this build
switches over to a static build, so the chromium-libs and chromium-libs-media
subpackages are now obsolete, but it should be slightly better for performance.

Allen Browsern sollte man mit Addons wie NoScript oder UMatrix beibringen nur das nötigste, und das auch nur auf Anweisung des Besitzers, auszuführen.

„… fast“ meinte also, daß man auch aus der Ferne angreifbar sein muß, damit einem dies passieren kann.

Hinweis: Falls Sie dies als Nicht-Linuxer lesen sollten, das geht auch unter Windows, es wird nur ein anderes Programm benutzt.

Für unseren simulierten Hack nehmen wir mal an, daß genau so eine Lücke ausgenutzt wurde. Was kommt dann als nächstes?

Gegeben ist eine Logitech WebCam C310. Wir brauchen noch folgendes Programm auf dem PC: uvcdynctrl

sudo dnf install uvcdynctrl

Als welcher User wir das Programm ausführen, scheint nicht wichtig zu sein, so lange wir mit dem Gerät reden dürfen. Bekommen wir erst einmal heraus, ob diese Kamera überhaupt da ist:

$ lsusb

Bus 010 Device 003: ID 046d:081b Logitech, Inc. Webcam C310

Jede unterstützte Kamera erzeugt ein oder mehrere Video Devices unter /dev/ :

$ ls -la /dev/video*
crw-rw—-+ 1 root video 81, 1 3. Mai 14:09 /dev/video1
crw-rw—-+ 1 root video 81, 2 3. Mai 13:47 /dev/video2
crw-rw—-+ 1 root video 81, 3 3. Mai 14:09 /dev/video3

Welches davon zu einer Logitech Kamera gehört und folglich nutzbar ist, können wir auf zwei Wegen feststellen:

$ sudo udevadm info –query=all –name=/dev/video1
P: /devices/pci0000:00/0000:00:07.0/0000:04:00.0/usb10/10-2/10-2:1.0/video4linux/video1
N: video1
L: 0
S: v4l/by-id/usb-046d_081b_5940E5D0-video-index0
S: v4l/by-path/pci-0000:04:00.0-usb-0:2:1.0-video-index0
E: DEVPATH=/devices/pci0000:00/0000:00:07.0/0000:04:00.0/usb10/10-2/10-2:1.0/video4linux/video1
E: DEVNAME=/dev/video1
E: MAJOR=81
E: MINOR=1
E: SUBSYSTEM=video4linux
E: USEC_INITIALIZED=8845895177
E: ID_V4L_VERSION=2
E: ID_V4L_PRODUCT=UVC Camera (046d:081b)
E: ID_V4L_CAPABILITIES=:capture:
E: ID_VENDOR=046d
E: ID_VENDOR_ENC=046d
E: ID_VENDOR_ID=046d
E: ID_MODEL=081b
E: ID_MODEL_ENC=081b
E: ID_MODEL_ID=081b
E: ID_REVISION=0010
E: ID_SERIAL=046d_081b_5940E5D0
E: ID_SERIAL_SHORT=5940E5D0
E: ID_TYPE=video
E: ID_BUS=usb
E: ID_USB_INTERFACES=:0e0100:0e0200:010100:010200:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=uvcvideo
E: ID_PATH=pci-0000:04:00.0-usb-0:2:1.0
E: ID_PATH_TAG=pci-0000_04_00_0-usb-0_2_1_0
E: ID_FOR_SEAT=video4linux-pci-0000_04_00_0-usb-0_2_1_0
E: COLORD_DEVICE=1
E: COLORD_KIND=camera
E: DEVLINKS=/dev/v4l/by-id/usb-046d_081b_5940E5D0-video-index0 /dev/v4l/by-path/pci-0000:04:00.0-usb-0:2:1.0-video-index0
E: TAGS=:seat:uaccess:

Eine UVCVideo Kamera, so wie die Logitech C310 eine ist, ist ein starkes Indiz. Das es auch genau unsere gesuchte Kamera ist, das zeigt ein Vergleich der USB ID …

Bus 010 Device 003: ID 046d:081b Logitech, Inc. Webcam C310

… welche sich oben wiederfindet: Gotcha!

Methode 2 wäre dann unser kleines Tool einzusetzen, um sich alle WebCams auflisten zu lassen und dann vergleichen wir wieder die USB ID:

$ uvcdynctrl -l
[libwebcam] Invalid V4L2 control type encountered: ctrl_id = 0x00980001, name = ‚User Controls‘, type = 6

video1 UVC Camera (046d:081b)
Media controller device /dev/media1 doesn’t exist
ERROR: Unable to list device entities: Invalid device or device cannot be opened. (Code: 5)

Kamera gefunden, was kann die?

Wir haben jetzt also die richtige Kamera identifiziert, fragen wir mal was die Kamera so „anbietet“:

$ uvcdynctrl -d /dev/video1 -vc

Listing available controls for device /dev/video1:
Brightness
ID : 0x00000001,
Type : Dword,
Flags : { CAN_READ, CAN_WRITE },
Values : [ 0 .. 255, step size: 1 ],
Default : 128
Contrast
ID : 0x00000002,
Type : Dword,
Flags : { CAN_READ, CAN_WRITE },
Values : [ 0 .. 255, step size: 1 ],
Default : 32
Saturation
ID : 0x00000004,
Type : Dword,
Flags : { CAN_READ, CAN_WRITE },
Values : [ 0 .. 255, step size: 1 ],
Default : 32
White Balance Temperature, Auto
ID : 0x00000009,
Type : Boolean,
Flags : { CAN_READ, CAN_WRITE },
Values : [ 0 .. 1, step size: 1 ],
Default : 1
Gain
ID : 0x00000003,
Type : Dword,
Flags : { CAN_READ, CAN_WRITE },
Values : [ 0 .. 255, step size: 1 ],
Default : 0
Power Line Frequency
ID : 0x0000000d,
Type : Choice,
Flags : { CAN_READ, CAN_WRITE },
Values : { ‚Disabled'[0], ’50 Hz'[1], ’60 Hz'[2] },
Default : 2
White Balance Temperature
ID : 0x00000008,
Type : Dword,
Flags : { CAN_READ, CAN_WRITE },
Values : [ 0 .. 10000, step size: 10 ],
Default : 4000
Sharpness
ID : 0x00000007,
Type : Dword,
Flags : { CAN_READ, CAN_WRITE },
Values : [ 0 .. 255, step size: 1 ],
Default : 24
Backlight Compensation
ID : 0x0000000c,
Type : Dword,
Flags : { CAN_READ, CAN_WRITE },
Values : [ 0 .. 1, step size: 1 ],
Default : 1
Exposure, Auto
ID : 0x0000000f,
Type : Choice,
Flags : { CAN_READ, CAN_WRITE },
Values : { ‚Manual Mode'[1], ‚Aperture Priority Mode'[3] },
Default : 3
Exposure (Absolute)
ID : 0x00000011,
Type : Dword,
Flags : { CAN_READ, CAN_WRITE },
Values : [ 1 .. 10000, step size: 1 ],
Default : 166
Exposure, Auto Priority
ID : 0x00000010,
Type : Boolean,
Flags : { CAN_READ, CAN_WRITE },
Values : [ 0 .. 1, step size: 1 ],
Default : 0
LED1 Mode
ID : 0x046d0003,
Type : Choice,
Flags : { CAN_READ, CAN_WRITE, IS_CUSTOM },
Values : { ‚Off'[0], ‚On'[1], ‚Blink'[2], ‚Auto'[3] },
Default : 3
LED1 Frequency
ID : 0x046d0004,
Type : Dword,
Flags : { CAN_READ, CAN_WRITE, IS_CUSTOM },
Values : [ 0 .. 131, step size: 1 ],
Default : 0

Kurz zur Erklärung der Auflistung, folgendes sind Optionen die wir in der Kamera ändern können, solange diese Option den FLAG „CAN_WRITE“ hat aka. Schreibrecht :

„Brightness“, „Contrast“, „Saturation“, „White Balance Temperature“, „Auto,Gain“ ,“Power Line Frequency“, „White Balance Temperature“, „Sharpness“, „Backlight Compensation“, „Exposure, Auto“, „Exposure (Absolute)“ , „Exposure, Auto Priority“,  „LED1 Mode“, „LED1 Frequency“

Schau wir uns den „LED1 Mode“ an:

LED1 Mode
ID : 0x046d0003,
Type : Choice,
Flags : { CAN_READ, CAN_WRITE, IS_CUSTOM },
Values : { ‚Off‚[0], ‚On‚[1], ‚Blink‚[2], ‚Auto‚[3] },
Default : 3

Im Normalfall steht also die LED Anzeige auf Automatik, meint, das Licht geht automatisch an und aus.

Jetzt nutzen wir diese Kontrollen

Fragen wir die Cam doch mal, welchen Zustand sie derzeit hat:

$ uvcdynctrl -d /dev/video1 -g „LED1 Mode“ 2>/dev/null
3

„3“ ist der Automatikmodus.

Einschalten der LED geht so:

$ uvcdynctrl -d /dev/video1 -s „LED1 Mode“ 1 2>/dev/null

Ausschalten geht so:

$ uvcdynctrl -d /dev/video1 -s „LED1 Mode“ 0 2>/dev/null

Wer das ausprobiert, wird feststellen, daß beim permanenten Einschalten die LED erstmal nur für einen Moment angeht. Es handelt sich bei der „Kontrolle“ um den Zustand der LED im Betriebsfall, da die WebCam aus ist, geht das Licht gleich wieder aus. Probiert das mal aus, wenn Ihr Camorama oder eine Videokonferenz laufen habt.

Das bedeutet, daß wenn Ihr die LED vor dem Aktivieren der Webcam abschaltet, bleibt die aus, auch wenn die Kamera aktiviert wird und das ist genau der Zustand den ungebetene Gäste auf Eurem PC ausnutzen möchten. Jetzt kann ein Angreifer seine Software zur Ansteuerung der Kamera natürlich gleich so schreiben, daß die LED aus bleibt, wenn er die Kamera aktiviert. Es muß dafür nicht das „uvcdynctrl“ installieren oder vorfinden. I.d.R. kann der Angreifer die Bordprogramme nicht direkt benutzen um den Inhalt der WebCam nach außen zutransportieren, da diese Programme ein Fenster öffnen um das Bild dem PC-Nutzer anzuzeigen.

Es ist aber natürlich auch möglich, sowas wie FFMPEG zu benutzen um das Bild abzugreifen und gleich zu komprimieren und an einen Server zu senden. Je weniger Software der Angreifer selbst installieren muß, desto besser für ihn, da er weniger Spuren hinterläßt.

Beweise

Jetzt kann der Typ von dem Blog ja viel behaupten, es ist an der Zeit das zu beweisen:

LED an

und abschalten:

LED aus

Das es sich hier um einen Browser handelt dürfte leicht erkennbar sein. Das Bild ist meine 1-Mann Videokonferenz auf unserer Jitsi Meet Instanz, in der man mein Handy bei der Aufnahme der LED sehen kann.

Mit „ucview“ kann man sich diese Kontrollfunktion auch live ansehen und ändern, ohne die Konsole bemühen zu müssen:

ucview Kontrollen der C310

 

Merkwürdigkeiten bei der Logitech WebCam C310

Merkwürdig ist der Fakt, daß die Kontrollen für die LED nicht beim ersten Starten der WebCam angeboten werden. Dazu muß die WebCam scheinbar ein zweites mal initialisiert werden, den Treiber neu starten hilft dabei:

sudo rmmod uvcvideo
sudo modprobe -v uvcvideo

Auf dem von mir heimtücksich infiltrierten Test-PC meiner Eltern war dies z.B. nötig 😉

Ob es sich dabei um einen Bug in der Kamera handelt oder im UCVideo Treiber von Linux, mag ich nicht beurteilen wollen. Möglich wäre jede Version oder auch gleich beides zusammen.

Meinung

Die Funktion der Kamera zum Abschalten der LED mag vielleicht in den Augen der Entwickler witzig oder sogar nützlich gewesen sein, aber aus Sicht der Privatsphäre ist das natürlich ein NO-GO. Anwendungen die die Kamera nach belieben einschalten können, ohne das der User überhaupt die Chance hat, dies zu bemerken, sind ein ernstzunehmendes Risiko. Daher sollte diese WebCam immer abgeklebt, oder besser komplett abgestöpselt sein, wenn Sie nicht benutzt werden.

Wenn der ganze Coronawahnsinn durch ist, lege ich mir definitiv eine neue Webcam ohne diese Funktion zu. Vermutlich was im 8-12 MP Bereich 😀

Eine komplett wirre Spam

Es ist mal wieder Zeit eine Spam zu sezieren 😀 Gleich zur Klarstellung: Kein Aprilscherz. Eine so wirre Spam, bei der gar nichts paßt, ist schon selten geworden.

„(Email@dresse) – BITTE ANTWORTEN!“

Dem Aufruf werden wir natürlich nicht Folge leisten und schauen uns gleich mal alles ganz genau an. So sieht das aus, wenn diese komische Spam vorbeikommt:

Mans ieht den vermeindlichen Inhalt einer SpamEmailLinks unten in der Ecke sieht man den Link von dem „Click Here“:

https:/###/navigator.gmx.net@goto.pt/rQXtut#
(leicht verfälscht, damit keiner draufklickt)

Das „@“ in einer Internetadresse hat eine Sonderstellung, es gibt einen Benutzernamen für die BASIC-Auth per HT-Accessabfrage im Webserver an, hat aber sonst keine Wirkung. Das bedeutet, gibt man das an, ohne das eine Abfrage vom Server gemacht wird, hat es absolut keine Wirkung. In unserem Spamkontext aber, dient der Zusatz dazu, den Eindruck zuerwecken, daß man bei GMX.NET rauskäme, würde man dort klicken. Tatsächlich geht es aber zu „goto.pt“, was wohl ein URL-Verkürzer- oder Redirectservice ist. Ein typische Scammermasche eben.

Die aufwendige Täuschung, daß es sich um eine Facebookemail handelt, erkennt man an den Email-Headern:

X-Mailer: ZuckMail [version 1.00]
From: „Web.de“ <notification@facebookmail.com>
Reply-to: noreply <noreply@facebookmail.com>
Errors-To: notification@facebookmail.com
X-Facebook-Notify: page_invite:page_invite_reminder; mailid=5a1ecca8ff1632G5aXXXXXXXXXXXXXXXX
List-Unsubscribe: <https://www.facebook.com/o.php?XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX;>

Bei „ZuckMail“ kommt ich mir ein Grinsen nicht verkneifen 🙂

Die Receivedheader der Email, also die Strecke an welchem Mailserver die Email wann vorbei gekommen ist, teilt uns dann auch mit, daß obige Facebookheader von einer echten Mail stammen werden, die gestern an GMX ging:

Received: from tool.jobnowx.com ([45.58.188.112]) by mx-ha.web.de (mxweb012
[212.227.15.17]) with ESMTP (Nemesis) id 1MmkT4-1itqCw1E62-00jrjK for
<XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX@web.de>; Sun, 29 Mar 2020 11:50:52 +0200
Received: from 66-220-155-145.mail-mail.facebook.com () by
mx-ha.gmx.net (mxgmx117 ) with ESMTPS (Nemesis) id
1N4gjH-1jP4ch2OyF-011ils for <XXXXXXX@gmx.de>; Sat, 28 Mar 2020 21:55:12 +0100

Wie man in rot sehen kann, „tool.jobnowx.com“  ist der echte Absender, der diese Email losgeschickt hat, und der Scammer hat einfach den Header vom GMX Mailserver drin gelassen, damit die Quelle verschleiert wird. Wenn man so etwas macht, sollte man GMX nicht mit Web.de verwechseln 😀

In der Email ist dann noch die eigentliche Payload, das Ziel der „Verführung“ untergebracht und das geht zu : clicks-bb.com und der Domainname ist ja wohl Programm genug. McAfee gibt auch schon seit Tagen eine Warnung für diese Domain aus und kommt mit Sicherheit nichts gutes bei raus, wenn man die aufruf, aber aller Vernunft zu Trotz …

$ curl http://clicks-bb.com
<html><body><h1>403 Forbidden</h1>
Request forbidden by administrative rules.

muharhar schon gesperrt worden vom Hoster 😀

Schauen wir uns mal den „Inhalt“ an …

Hallo Florian,

Erinnerung: Christian Zacher hat dich eingeladen, „Finanzcoach XXXXXXXX Zacher“ mit „Gefällt mir“ zu markieren.

Wenn dir Finanzcoach XXXXXXX Zacher gefällt, klicke auf den folgenden Link: https://www.facebook.com/n/?pages………

Wir wissen nicht, wer Florian ist, oder ob es den Zacher wirklich gibt, aber Emails, die in der Hallo Zeile nicht den eigenen Namen drin haben, sind i.d.R. SPAM und jetzt haut die weg 🙂

Die gleiche Masche gabs Anfang der Woche für Amazon, da stand dann im Betreff auch „BITTE ANTWORTEN“ drin, also wenn Großbuchstaben bei uns was bewirken würden, außer genauer hinzusehen 😉

Let’s Encrypt gibt milliardstes Zertifikat aus \o/

Am 27.2. wurde die eine Milliarde SSL Zertifikate von Let’sEncrypt überschritten. Bei 46 Millionen Webseiten für die Zertifikate ausgestellt wurden, war das ja auch nur eine Frage der Zeit, wenn man 4 Zerts pro Jahr pro Domain durchbringen muß 🙂

Herzlichen Glückwunsch – Let’s Encrypt 😀

„We issued our billionth certificate on February 27, 2020. We’re going to use this big round number as an opportunity to reflect on what has changed for us, and for the Internet, leading up to this event. In particular, we want to talk about what has happened since the last time we talked about a big round number of certificates – one hundred million. One thing that’s different now is that the Web is much more encrypted than it was. In June of 2017 approximately 58% of page loads used HTTPS globally, 64% in the United States. Today 81% of page loads use HTTPS globally, and we’re at 91% in the United States! This is an incredible achievement. That’s a lot more privacy and security for everybody. Another thing that’s different is that our organization has grown a bit, but not by much! In June of 2017 we were serving approximately 46M websites, and we did so with 11 full time staff and an annual budget of $2.61M. Today we serve nearly 192M websites with 13 full time staff and an annual budget of approximately $3.35M. This means we’re serving more than 4x the websites with only two additional staff and a 28% increase in budget. The additional staff and budget did more than just improve our ability to scale though – we’ve made improvements across the board to provide even more secure and reliable service.“

Das selbstgesteckte Ziel haben Sie jedenfalls erreicht, das ist mal sicher. Ob das Netz wirklich sicherer geworden ist, ist eine andere Frage 😀

WordPress Security-GAU in iOS App

In der WordPress iOS App klaffte 2 Jahre eine dicke Sicherheitslücke, die die Authentifizierungstokens der eigenen WordPressinstallation an Dritte übermittelt hat.  „Dritte“ meint hier z.b. Bildhoster wie Flickr, Imgur usw. .

Wer also sein WP Blog mit der iOS App bedient hat, sollte jetzt mal sein Adminpasswort ändern, denn jetzt werden die mit dem Token beglückten Webseiten mal die Logs durchforschen, ob sie das was tolles finden können 😉

Quelle: thehackernews.com/2019/04/wordpress-ios-security.html

GNOME – Endlich mal Was Cooles

Ihr erinnert Euch an den Abspann von 22 Jump Street ? Ganz in dem Sinne habe ich hier was von Gnome für Euch:

Ihr seht richtig: Ein USB Deviceverweigerer, der einen davor schützt, daß jemand in Abwesenheit einfach mal einen USB Stick in das Laptop/Sportgerät steckt und was auslöst.

Das finde ich super wichtig. Beste Entwicklung in der letzten Zeit und schon laaaaaaaaange überfällig.

Quelle & More : https://ryuzakikk.github.io/gnome/internship-update-6/

Linux – DNS-DeTracking mit nscd

Das Problem

Wenn man alle seine DNS Anfragen über einen einzigen Anbieter abwickelt, kann der leicht herausbekommen, wofür man sich interessiert, da er ja jede Domain kennt, mit der man „reden“ will.

Wenn man von einem DNS Anbieter, sei es die Deutsche Telekom oder Google, nicht vollumfänglich getrackt werden will, kann man nur seinen eigenen DNS-Cache betreiben, oder laufend den DNS Anbieter wechseln ? Oder gibt es da vielleicht noch eine dritte Möglichkeit ?

Methode 1:

Jeder kann sich einen DNS Cache auf dem eigenen PC installieren. Der Nachteil ist, es ist nicht besonders effizient und bei einigen DSL-Anbietern kann man auch nicht selbst die DNS Auflösung machen. In letzterem Fall solltet Ihr Euch auf jeden Fall einen Tunnel in die freie Welt aufbauen, z.b. per VPN. Einen eigenen Server der dafür ausreicht kann man sich schon für 6,50 € im Monat mieten. Ihr braucht  dann noch sowas : UDP Traffic per SSH tunneln, Die Vorratsdatenspeicherung umgehen oder VDS: Schnell ein VPN aufsetzen . Es geht zwar nicht um die Vermeidung der VDS, aber das Prinzip ist das gleiche. Aber wenn Ihr sowieso schon einen eigenen Server habt, laßt den das DNS Cache übernehmen.

Wieso ist das nicht effektiv ?

Ein DNS Cache macht nur dann Sinn, wenn viele Klienten in einem Netzwerk das Cache benutzen, denn der eigentliche Sinn ist, daß nicht jeder Rechner die Root-DNS kontaktiert, sondern das man möglichst viele Anfragen lokal selbst beantworten kann, weil man bereits einmal danach gefragt hat. Das geht zum einen schneller, zum anderen spart es Traffic ein. Das man seinen Fußabdruck dabei kleiner hält, fällt praktischerweise nebenbei ab. Je mehr einen DNS Cache benutzen, desto mehr gehen auch die eigenen Anfragen in der Masse unter.

Methode 2:

Ein Script, daß laufend die /etc/resolv.conf  neu und die DNS Servernamen in der Reihenfolge zufällig hinein schreibt, ist mit ein bisschen Bash-Foo machbar. Dauer ca. 15 Minuten.

Methode 3:

Schauen wir uns mal die /etc/resolv.conf an, finden wir dort:

; generated by /usr/sbin/dhclient-script
nameserver 9.9.9.9
nameserver 8.8.8.8
nameserver 8.8.4.4

Wenn man nichts weiter auf seinem Rechner installiert hat, wird in genau dieser Reihenfolge ein DNS nach dem Anderen abgefragt, wenn der vorherige DNS nicht rechtzeitig antwortet.

Das Verhalten kann man aber ändern:

options rotate
nameserver 9.9.9.9
nameserver 8.8.8.8
nameserver 8.8.4.4

Jetzt würde ein entsprechend gut programmierter Resolver, das ist der Programmteil, der die DNS Auflösung macht, zufällig aussuchen, welchen der DNS er benutzt. Trägt man hier also viele öffentliche DNS Server in dieser Liste ein, verteilt man alle DNS Anfragen auf diese Server, was jedem einzelnen logischerweise die Möglichkeit nimmt, ein umfangreiches Profil zu erstellen.

Dummerweise juckt diese Anweisung kaum einen Resolver. Das geht sogar soweit, daß der erste in der Liste mal einfach überlesen wird 🙂 Also muß eine Lösung her, die diese Anweisung respektiert: NSCD

dnf install nscd
systemctl start nscd
systemctl enable nscd

Ab jetzt werden DNS Abfragen über den NameserverCacheDämonen abgewickelt, und der fragt zufällig die DNS in der Liste an. Da es sich auch um einen Cache handelt, fragt er im Laufe der Zeit ( TTL eines Eintrags ) nur einmal die Rootserver an ( Kleiner Fußabdruck ) .

Damit wäre das Trackingproblem erledigt, wenn Ihr viele DNS Server zur Verfügung habt.

Einen eigenen DNS Cache auf dem PC zu betreiben, ist nicht weiter wild, man müßte nur den named installieren und starten. Da aber bei DNS Abfragen einiges unterwegs schief gehen kann, ist eine starke DNS Infrastruktur wie bei Google durchaus ein starker Partner.

Welche Methode für Euch die richtige ist, müßt Ihr wissen.

BND bekommt eigene VDS für 6 Monate ohne Beschränkungen

Wie einem Artikel von Heise zu entnehmen ist, hat der Bundesrat einem Gesetz zugestimmt, daß dem BND eine sechs monatige Vorratsdatenspeicherung aller Verbindung- und Standortdaten erlaubt. Der BND darf diese Daten nach eigenem Gutdünken durchsuchen, ohne daß es eine kontrollierende Instanz wie einen Richterbeschluß gibt. Die Daten dürfen sogar automatisch mit anderen Ländern getauscht werden.

Damit ist faktisch ein Überwachungsstaat geschaffen worden, der ohne rechtsstaatliche Kontrollen alle Daten erfassen kann und wird. Offiziell dürfen natürlich nur Ausländer überwacht werden, aber an Datenströmen steht so selten dran, daß sie nicht aus oder nach Deutschland kommen.

Damit sollte eine rote Linie für alle Bürger überschritten sein, die bisher nichts zu verstecken hatten, denn jetzt sind auch sie betroffen und können jederzeit zum Ziel von Ermittlungen werden, nur weil jemand einen Zahlendreher bei der Eingabe einer IP Adresse gemacht hat. Das war zwar vorher schon möglich, aber wurde zumindest noch von einem Richter abgesegnet.

Für uns Linuxnerds heißt es jetzt natürlich zu handeln. Großflächige Überwachung können wir mit großflächigem Einsatz von VPNs und allgemeiner Verschlüsselung bekämpfen, denn wenn der Preis zum Entschlüsseln aller Verbindungen zu hoch wird, kann sich das der BND oder auch die NSA schlicht nicht leisten. Wenn das ganze Internet verschlüsselt ist, kann man nur noch die Datenströme verfolgen und dekodieren, die einem wirklich wichtig sind. Daran ändern auch die viel beschworenen Quantencomputer nichts. Die Überwachung der Standortdaten kann man ganz leicht umgehen, schaltet das Handy einfach mal aus!

Deswegen gibt es hier im Blog demnächst die Neuauflage der Anleitungen zum Aufbau von VPNs, Anweisungen zu Kryptomessangern, Anleitungen zum Aufsetzen von sicheren PCs und Webserverdiensten. Zukünftig an der eigenen Kategorie „Secure The Web“ zu erkennen.