CIA-Programme zum Stehlen von Anmeldedaten auch für Linux

Alles rund um sicherheitsrelevante Fragen und Probleme.
Antworten
Benutzeravatar
Par@noid
Beiträge: 244
Registriert: 09.11.2005 13:33:35
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Schwarzwald

CIA-Programme zum Stehlen von Anmeldedaten auch für Linux

Beitrag von Par@noid » 11.07.2017 14:05:28

WikiLeaks hat zwei Werkzeuge dokumentiert, mit denen die CIA Anmeldedaten von OpenSSH-Benutzern stiehlt, eines für MS-Windows, eines für Linux.

Offenbar benutzt der US-amerikanische Geheimdienst CIA routinemäßig zwei Werkzeuge, um Anmeldedaten von OpenSSH-Benutzern zu stehlen. Dies hat WikiLeaks jetzt aufgedeckt. Ein Skript namens BothanSpy wird unter MS Windows eingesetzt. Für Linux hat die Organisation ein Programm namens Gyrfalcon. Auch wenn die Dokumentation zu diesem Programm (PDF) schon von 2013 ist, ist zu vermuten, dass die CIA es weiter einsetzt und wahrscheinlich auch aktualisiert hat.

Bei den Werkzeugen handelt es sich aber nicht um Angriffe, die Sicherheitslücken in OpenSSH oder anderen Komponenten nutzen. Vielmehr müssen diese Programme manuell installiert werden. Das kann auf unterschiedlichen Wegen geschehen, unter anderem durch das Ausnutzen von anderen Sicherheitslücken, den heimlichen physischen Zugang zum System, Grenzkontrollen oder gar Beschlagnahmungen.

Die dokumentierte Vorgehensweise der CIA beginnt mit Maßnahmen, die darauf abzielen, keine Spuren zu hinterlassen. Das Spionagepaket selbst, das aus einem Programm und Bibliotheken besteht, wird in spezifischen Versionen für Red Hat Enterprise Linux, CentOS, Debian, Ubuntu und SUSE Linux Enterprise eingesetzt. Bei der Installation wird auch das Rootkit JQC/KitV installiert, das ebenfalls von der CIA entwickelt wurde. Auch über das Rootkit sind Informationen durchgesickert.

In der Konsequenz sollte jeder Nutzer darauf achten, dass sein System aktuell und sicher ist. Eine Erkennung einer Infektion ist laut einem Artikel auf linux.org schwierig. Denn die Skripte und Programme, die die CIA nutzt, seien bisher noch nicht gefunden worden, so dass keine Analyse möglich war. Es ist auch nicht bekannt, unter welchem Namen sie gespeichert werden, es scheint aber, als würde der Name bei jeder Installation geändert. Was bekannt ist, ist wenig. Die Software läuft im Hintergrund und sollte sich mit ps finden lassen. Ein verdächtiger Prozess kann mit kill beendet werden. Eine fehlende History-Datei der Shell kann ein Indiz sein. Das Rootkit zu entdecken könnte noch schwieriger sein, da solche Schadsoftware meist auch das Ergebnis von Systemaufrufen manipuliert, um einer Entdeckung zu entgehen.

WikiLeaks https://wikileaks.org/vault7/#BothanSpy
Gyrfalcon https://wikileaks.org/vault7/document/G ... _Guide.pdf
Rootkit https://fdik.org/wikileaks/year0/vault7 ... 21796.html
Artikel auf linux.org https://www.linux.org/threads/cia-progr ... con.12645/

Quelle :pro-linux.de https://www.pro-linux.de/news/1/24924/c ... linux.html

MfG Par@noid
Man hilft den Menschen nicht, wenn man für sie tut, was sie selbst tun können .....

Debian GNU/Linux Bookworm/sid 64-bit| GNOME Version 43 :THX:

bullgard
Beiträge: 1642
Registriert: 14.09.2012 23:03:01

Re: CIA-Programme zum Stehlen von Anmeldedaten auch für Linux

Beitrag von bullgard » 11.07.2017 14:28:28

Mir kommt das Kotzen!
Wenn Du noch zusätzliche Einzelheiten herausbekommst, teile sie bitte hier mit.
Gruß
bullgard

uname
Beiträge: 12045
Registriert: 03.06.2008 09:33:02

Re: CIA-Programme zum Stehlen von Anmeldedaten auch für Linux

Beitrag von uname » 11.07.2017 14:32:42

Ist doch eigentlich nur eine ganz normale Software, die irgendjemand geschrieben hat. Ich könnte mir vorstellen, dass sie teilweise in kommerzieller Software sogar vorgeschrieben ist.

breakthewall
Beiträge: 507
Registriert: 30.12.2016 23:48:51

Re: CIA-Programme zum Stehlen von Anmeldedaten auch für Linux

Beitrag von breakthewall » 11.07.2017 19:52:10

Par@noid hat geschrieben: ↑ zum Beitrag ↑
11.07.2017 14:05:28
Bei den Werkzeugen handelt es sich aber nicht um Angriffe, die Sicherheitslücken in OpenSSH oder anderen Komponenten nutzen. Vielmehr müssen diese Programme manuell installiert werden. Das kann auf unterschiedlichen Wegen geschehen, unter anderem durch das Ausnutzen von anderen Sicherheitslücken, den heimlichen physischen Zugang zum System, Grenzkontrollen oder gar Beschlagnahmungen.
Und wo ist nun das eigentliche Problem? Schon die Tatsache das da etwas manuell aufgespielt werden muss, zeigt schon fundamentale Probleme in Sachen Infektion auf. Physische Zugänge zu Systemen kann man unterbinden, und ebenso auch die Manipulation vorhandener Daten durch Festplattenverschlüsselung. Der Device-Mapper kann bestehende Daten auch verifizieren, womit Daten auf der Festplatte die nicht mit dem korrekten Schlüssel geschrieben wurden, unmittelbar geloggt und verworfen werden, oder man greift zu Dateisystemen wie Btrfs und dergleichen. Was jemals beschlagnahmt wurde ist prinzipiell Abfall. Auch bei Grenzkontrollen käme es für mich nicht in Frage etwas aus der Hand zu geben, wobei gewisse radikale Länder idealerweise gemieden werden sollten, die meinen sie hätten das Recht alles zutun. Das Beste wäre ohnehin, erst gar keinen OpenSSH-Server zu betreiben wenn man keinen benötigt. Und wenn doch dann stets mit Public-Key-Verfahren ohne Option auf ein Root-Login, mit zusätzlich isoliertem sshd Systemdienst ohne essentielle erweiterte Privilegien. Damit wäre auch die Sache mit den Sicherheitslücken minimiert bis ausgemerzt. Man sollte daher stets vorsorgen und nicht versuchen etwas Unbekanntes erkennen zu wollen, sondern sollte immer auf Maßnahmen setzen die grundlegend gegen jede Art von Fremdcode agieren, und nicht nur auf etwas Spezifisches.

schwedenmann
Beiträge: 5525
Registriert: 30.12.2004 15:31:07
Wohnort: Wegberg

Re: CIA-Programme zum Stehlen von Anmeldedaten auch für Linux

Beitrag von schwedenmann » 12.07.2017 09:28:31

Hallo

Und wo ist jetzt im Grunde das problem ?

Das jedes OS angreifbar ist sollte doch jedem Linmuxfanboy mittlerweile klarsein, das es Sicherheitslücken auch in Linux gibt, sollte sich auch rumgescsprochen haben. Das Geheimdiesnte sowas einsetzen um sich "geheime Informationen" zu beschaffen (liegt in ihrem Auftrag) ist doch normal, sonst könnte man ja in die nächste Bibliothek laufen um sich entsprechende Infos zu besorgen. Also so what. Das die Geheimdiesnte diese gegen jeden Einsetzen würden (außer i China, Rußland,Nordkorea) ist doch eher in den Bereich Verschwörungstheorie zu rücken, der Aufwand wäre zu hoich, das Ergebnis tendiert gegen Null. Auch ist ein Geheimdiesnt an echter belastbarer Info gelegen, die man auswerten kann, von Infos vom Hörensagen, halten sie nicht viel.

mfg
schwedenmann

Benutzeravatar
Lord_Carlos
Beiträge: 5578
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: CIA-Programme zum Stehlen von Anmeldedaten auch für Linux

Beitrag von Lord_Carlos » 12.07.2017 10:09:14

schwedenmann hat geschrieben: ↑ zum Beitrag ↑
12.07.2017 09:28:31
Das jedes OS angreifbar ist sollte doch jedem Linmuxfanboy mittlerweile klarsein, das es Sicherheitslücken auch in Linux gibt,
Gerade hier handelt es sich aber nicht um eine Sicherheitslücke.

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

schwedenmann
Beiträge: 5525
Registriert: 30.12.2004 15:31:07
Wohnort: Wegberg

Re: CIA-Programme zum Stehlen von Anmeldedaten auch für Linux

Beitrag von schwedenmann » 12.07.2017 11:14:03

Hallo


@Lord-Carlos
Gerade hier handelt es sich aber nicht um eine Sicherheitslücke.
Warum ist dann Linux in der Threadüberschrift überhaupt erwähnt. Schadsw und,oder Spionagesw geht mit jedem OS, was soll also die ganze Aufregung. Wenn phys. Zugriff gegebene ist, hilft im Grunde nichts mehr.

Im übrigen erwarte ich von einem fähigen Geheimdienst, das er das kann und auch tut (man muß nur nicht so blöd sein, sich erwischen zu lassen).


mfg
schwedenmann

irgendwas
Beiträge: 278
Registriert: 04.04.2016 18:53:19
Lizenz eigener Beiträge: MIT Lizenz

Re: CIA-Programme zum Stehlen von Anmeldedaten auch für Linux

Beitrag von irgendwas » 12.07.2017 16:26:37

breakthewall hat geschrieben: ↑ zum Beitrag ↑
11.07.2017 19:52:10
[..] mit zusätzlich isoliertem sshd Systemdienst ohne essentielle erweiterte Privilegien.
Hättest du dazu vielleicht einen Link/Stichwort, womit man sowas umsetzen kann? Klingt interessant und vor allem sinnvoll.

breakthewall
Beiträge: 507
Registriert: 30.12.2016 23:48:51

Re: CIA-Programme zum Stehlen von Anmeldedaten auch für Linux

Beitrag von breakthewall » 14.07.2017 03:52:25

Hatte damit die letzten Tage selbst Schwierigkeiten, aufgrund des Updates von OpenSSH von v7.4 auf v7.5.

Die schlechte Nachricht dabei ist, dass die OpenSSH-Entwickler eine Funktion entfernt haben, die man zuvor noch nutzen konnte um sshd anzuweisen, selbst keine Privilegien zu separieren. Damit war es letztlich möglich gänzlich auf Root (CAP_SYS_ADMIN) und weitere Capabilities wie CAP_SETGID und CAP_SETUID zu verzichten, womit sshd problemlos als Nutzer laufen konnte. Und nun wo diese Option verschwunden ist, kann man zumindest CAP_SETGID und CAP_SETUID nicht länger entfernen, was leider die zuletzt verbliebenen und gefährlichsten Capabilities der restlichen sind.

Habe mich gestern nochmal ran gesetzt um das Problem auf andere Weise anzugehen, und nahm dafür Systemd als Grundlage. Zumal hier ebenso auf leicht zugängliche Weise Systemdienste eingeschränkt werden können. Nur im Falle von sshd ist das recht hakelig und nicht ganz so einfach, weshalb man sich dem annähern muss testweise.

Das ist das bisher erarbeitete Unit:

Code: Alles auswählen

[Unit]
Description=OpenBSD Secure Shell server
After=network.target auditd.service
ConditionPathExists=!/etc/ssh/sshd_not_to_be_run

[Service]
EnvironmentFile=-/etc/default/ssh
ExecStart=/usr/sbin/sshd -D $SSHD_OPTS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
NoNewPrivileges=yes
ProtectHome=read-only
ProtectSystem=full
ProtectKernelModules=yes
ProtectControlGroups=yes
ProtectKernelTunables=yes
RestartPreventExitStatus=255
SystemCallFilter=~@swap mount umount @clock @debug @raw-io @reboot @module
CapabilityBoundingSet=CAP_CHOWN CAP_SETGID CAP_SETUID CAP_NET_RAW CAP_IPC_LOCK CAP_AUDIT_WRITE CAP_SYS_CHROOT CAP_BLOCK_SUSPEND
Type=notify

[Install]
WantedBy=multi-user.target
Alias=sshd.service
Weitere Informationen stehen in den Manpages zu: capabilities, systemd.exec

Mit diesem Unit war es schon mal möglich, sshd bereits sehr eingeschränkt zu betreiben, auch wenn sich das bspw. auch noch via fail2ban und weiteren Optionen erweitern lässt. Es sind sowohl lokale als auch entfernte Logins möglich. Doch möglicherweise ist es noch etwas zu straff gehalten, da es noch keine Zeit gab alles im Detail zu testen.

Zwar wird sshd unter dem Nutzer Root gestartet, jedoch nicht mit allen Capabilities die Root für gewöhnlich besitzt. Sprich alles was unter CapabilityBoundingSet angegeben ist ist erlaubt, alle anderen Capabilities oder auch Privilegien werden entzogen. Darunter auch CAP_SYS_ADMIN was in dem Sinne Root repräsentiert, mit allen verfügbaren Privilegien. Zusätzlich kommt noch eine Blacklist via SystemCallFilter (seccomp-bpf) zum Einsatz, um das nochmals zu erweitern was sshd an SystemCalls nutzen darf, und bei Zuwiderhandlung getötet wird. Die anderen Protect-Optionen dienen dazu, gewisse Systembereiche für sshd wahlweise read-only zu setzen, oder gänzlich unzugänglich zu machen. Das wird dann über Namespaces realisiert.

Grundsätzlich muss man beim Isolieren schon nachdenken, und das fängt bspw. schon bei der Wahl des Ports an. Die Ports 1-1000 sind gänzlich für Root reserviert, womit man mit einem Standardport von 22, niemals Rootrechte los bekommt, wenn man keinen Port über 1000 wählt. Schon damit legt man die erste Grundlage um sich gewisser Capabilities zu entledigen, und kann insbesondere CAP_SYS_ADMIN entfernen, wie auch CAP_NET_BIND_SERVICE, was nötig ist um Ports unter 1000 adressieren zu dürfen. Will man das nicht, kann man die letzte Capability auch entfernen.

Es gibt auch eine einfache Methode herauszufinden, welches Programm welche Capabilities benötigt, bzw. es unterstützt deutlich dabei das einzugrenzen. Dafür muss das Paket libcap-ng-utils installiert werden. Hinterher hat man Zugriff auf ein kleines Programm namens pscap, was kurz gesagt nicht mehr als ein gewohntes ps ist, nur das es stattdessen die aktiv vergebenen Capabilities aller Prozesse anzeigt.

Von daher einfach mal testen wie es funktioniert.

Antworten