Malware in ISO-Dateien von Linux Mint

Angreifer haben am vergangenen Wochenende die Downloadlinks auf der Seite von Linux Mint ersetzt, um auf kompromittierte ISO-Dateien zu verlinken. Außerdem wurden die Daten von rund 71.000 Foren-Accounts kopiert.

Seit dem 20. Februar wurden, über die offizielle Seite von Linux Mint, mit Malware verseuchte Images verteilt. Glücklicherweise wurde die Infizierung schnell entdeckt, sodass die Verantwortlichen bei Linux Mint bereits einen Tag später eine entsprechende Warnung in ihrem Blog veröffentlichen konnten. Deshalb sollten alle, die in der entsprechenden Zeit von Samstag 20. Februar auf Sonntag 21. Februar ein Image heruntergeladen haben, prüfen, ob es infiziert ist. Die ISO-Dateien können mithilfe von MD5-Hashes überprüfen werden, die auch hier am Ende des Beitrages aufgelistet sind. Wer die Images wieder gelöscht hat, aber zuvor zum Aufsetzen eines Systems nutzte, sollte dieses offline booten und schauen, ob eine Datei mit dem Namen man.cy unter /var/lib existiert. Wenn die Datei existiert ist das System infiziert.

Bei dem Backdoor handelt es sich nach aktuellen Informationen um eine Version der Tsunami-Malware. Diese ermöglicht den Angreifern Dateien auf den Rechner ihrer Opfer herunterzuladen und auszuführen. Deshalb sollten betroffene ISO-Dateien gelöscht und infizierte Systeme unbedingt neu aufgesetzt werden. Außerdem wird empfohlen, die Passwörter aller Dienste zu ändern, bei denen sich unter einem infizierten System angemeldet wurde.

Aktuell berichtet ZDNet, dass ein Hacker mit dem Pseudonyme Peace für den Angriff verantwortlich sei und laut eigenen Angaben bereits seit Ende Januar Kontrolle über Teile der Linux Mint Server hatte. Außerdem konnten die Angreifer auch Daten von rund 71.000 Foren-Account kopieren. Darunter Nutzernamen, E-Mail-Adressen und verschlüsselte Passwörter. Da die Passwörter jedoch nur mit der als knackbar geltenden Methode phpass gehasht wurden, wird allen Nutzern empfohlen, ihr Passwort im Forum zu ändern. Wer ein identisches Passwort auch an anderer Stelle verwendet, sollte es natürlich auch dort ändern.

Die Hashwerte:

6e7f7e03500747c6c3bfece2c9c8394f „linuxmint-17.3-cinnamon-32bit.iso“

30fef1aa1134c5f3778c77c4417f7238 „linuxmint-17.3-cinnamon-nocodecs-32bit.iso“

e71a2aad8b58605e906dbea444dc4983 „linuxmint-17.3-cinnamon-64bit.iso“

3406350a87c201cdca0927b1bc7c2ccd „linuxmint-17.3-cinnamon-nocodecs-64bit.iso“

df38af96e99726bb0a1ef3e5cd47563d „linuxmint-17.3-cinnamon-oem-64bit.iso“

Let´s Encrypt – Kostenlose SSL-Zertifikate Frei Haus

Obwohl es signierte TLS-Zertifikate bereits seit einigen Jahren kostenlos gibt und Google im August 2014 ankündigte, dass die Verschlüsselung von Webseiten ein Rankingfaktor ist, werden die meisten Daten noch immer unverschlüsselt ausgeliefert. Denn vielen Webmastern ist das Beantragen und Einrichten eines Zertifikats zu kompliziert. Die Zertifizierungsstelle Let´s Enrypt will das nun durch ein automatisiertes System ändern.

Als Netscape 1994 die erste Version von SSL veröffentlichte, hat wohl niemand damit gerechnet, wie wichtig diese Technologie 22 Jahre später werden würde. Deshalb verwundert es noch mehr, dass trotz der hohen Bedeutung, die nicht zuletzt durch die vielen Abhörskandale nachgewiesen wurde, noch immer ein Großteil des Datenverkehrs unverschlüsselt übertragen wird. Allerdings ist Licht am Horizont zu sehen, denn 2014 haben Branchengrößen wie Mozilla, Cisco, die University of Michigan und Akamai die Internet Security Research Group (ISRG) mit dem Ziel gegründet, das Internet sicherer zu machen. Neben bekannten Größen hat auch die Nichtregierungsorganisation (NGO) Electronic Frontier Foundation einen Posten als Beobachter innerhalb der ISRG. Die erste Initiative der Organisation ist die Zertifizierungsstelle (CA, Certificate Authority) Let´s Encrypt, die durch einen automatisierten Prozess den Zugang zu kostenlosen Zertifikaten erleichtern soll.

Wie funktioniert Let´s Encrypt?

Zum Erhalt eines domainvalidierten Zertifikats muss der Antragsteller gegenüber der Zertifizierungsstelle nachweisen, dass die Domain unter seiner Kontrolle steht. Im Gegensatz zu anderen Anbietern, die dazu eine E-Mail mit einem Link, der zum erfolgreichen Validieren angeklickt werden muss, an den Webmaster, Hostmaster oder Administrator der Domain schicken, nutzt Let´s Encrypt ein selbst entwickeltes Protokoll mit dem Namen Automated Certificate Management Enviroment (ACME). Damit ein Zertifikat über dieses Protokoll angefordert werden kann, muss auf dem Server ein entsprechender Client installiert sein. Das kann sowohl der Offizielle von Let`s Encrypt sein, als auch ein eigener, der das offene ACME-Protokoll implementiert. Wird nun ein Zertifikat für eine Domain angefordert, stellt die Zertifizierungsstelle eine Aufgabe, mit dessen Lösung die Hoheit über die Domain nachgewiesen wird. Dieser Vorgang ist allerdings nur bei der Erstausstellung möglich. Bei nachfolgenden Zertifikaten wird eine alternative Validierung genutzt, bei der die Kontrolle über die Domain durch das alte Zertifikat sichergestellt wird. Jedes von Let´s Encrypt ausgestellte Zertifikat ist maximal drei Monate gültig. Der Vorgang zur Neuausstellung kann jedoch vollständig automatisiert werden, sodass ein manuelles Eingreifen nicht mehr notwendig ist. Dazu kann der offizielle Client auch die verwalteten Domains auslesen und nach erfolgreichem Beantragen der Zertifikate auch den Webserver einrichten. Wobei dieses aktuell nur unter Debian-basierten Distributionen mit dem Webserver Apache2 möglich ist. Alle, die ein anderes Betriebssystem oder einen anderen Webserver nutzen, können sich dennoch das Zertifikat automatisch erstellen lassen. Müssen dabei die Domains jedoch beim Beantragen als Parameter mit angeben und auch den Webserver selbst einrichten.

Browsererkennung

Da die Browser dem Root-Zertifikat der ISRG, dass die Zwischenzertifikate von Let´s Encrypt signiert, noch nicht vertrauen, wurde es zusätzlich mit dem Root-Zertifikat von IdenTrust cross-signed. Dadurch vertrauen alle aktuellen Browser den Zertifikaten von Let´s Encrypt.

Installation unter Debian

Debian Stretch und Debian Sid, die aktuellen test und unstable Branches, enthalten zwar den Let´s Encrypt Client bereits als Paket, sollten aber nicht auf einem Produktivsystem genutzt werden. Wer jedoch nur ein Testsystem aufsetzen möchte, um Let´s Encrypt zu testen, kann den Client bei beiden Versionen bequem über die Paketverwaltung installieren.

Bei allen anderen Versionen von Debian bleibt nur das manuelle Herunterladen oder Klonen mit Git. Sofern noch nicht vorhanden, kann git über den Paketmanager installiert werden und anschließend, mit dem zweiten Befehl, der aktuelle Branch von Let´s Encrypt auf den Server kopiert werden.

Anschließend lässt sich die Software im Unterverzeichnis letsencrypt finden.

Alle weiteren Befehle können direkt per letsencrypt oder dem Wrapper letsencrypt-auto ausgeführt werden. Der Wrapper bietet den Vorteil, dass er fehlende Abhängigkeiten, wie zum Beispiel die benötigte Python-Umgebung, automatisch installiert und auch die Software aktualisiert. Außerdem werden zum Ausführen, des in Phyton geschriebenen Scripts, Root-Rechte benötigt.

Wird das Script ausgeführt, liest es zunächst die Konfigurationsdateien des Webservers ein, sodass es anschließend weiß, welche Domains vom Webserver verwaltet werden. Es werden sowohl die Domains, die als ServerName angegeben sind, also auch die ServerAliases erfasst, die im späteren Zertifikat als SubjectAltName eingetragen werden. Die gefundenen Domains können, nachdem eine E-Mail Adresse angegeben wurde, vor dem Erstellen des Zertifikats selektiert werden. Standardmäßig werden alle Domains in einem Zertifikat zusammengefasst. Wer mehr als ein Zertifikat nutzen möchte, muss das Script mehrfach ausführen.

Standardmäßig werden Zertifikate mit einer Schlüssellänge von 2048 Bit ausgeliefert. Wem diese nicht reicht, kann beim Ausführen über den nachfolgend gezeigten Parameter einen individuellen Wert angeben.

Außerdem können mit dem Parameter certonly auch ausschließlich die Zertifikate erstellt werden, sodass die Software nicht auf die Konfigurationsdateien der Websoftware zugreifen muss.

Auch die Authentifikation kann, wenn der Parameter –a angegeben wird, manuell durchgeführt werden.

Zertifikate unter Debian automatisch erneuern lassen

Wie eingangs erwähnt, sind die Zertifikate von Let´s Encrypt nur drei Monate gültig und müssen deshalb regelmäßig erneuert werden. Damit wollen die Verantwortlichen sicherstellen, dass Sicherheitslücken in den Verschlüsselungsprogrammen auf allen Servern, die ein Zertifikat von Let´s Encrypt einsetzen, zeitnah behoben werden. Manuell geht das mit nachfolgendem Begehl.

Damit werden die Zertifikate mit den bei der Ersterstellung gemachten Angaben erneuert. Natürlich ist das manuelle Auffrischen der Zertifikate nicht nur mühsam, sondern birgt auch das Risiko, dass es vergessen wird. Deshalb sollte dieser Prozess automatisiert werden. Das geht am einfachsten, indem der Befehl durch einen Cronjob regelmäßig ausgeführt wird. Im nachfolgenden Beispiel werden alle 10 Tage die Zertifikate erneuert, die noch weniger als 30 Tage gültig sind.

Fazit

Aktuell befindet sich Let´s Encrypt zwar noch in der Betaphase, sorgt aber bereits für hitzige Diskussionen. Denn zwar werden kostenlose Zertifikate angeboten, die sich sogar automatisch einrichten und erneuern lässt, doch dafür auch einige Zugeständnisse gefordert. Zum einen, weil das Script Root-Rechte benötigt, wodurch nicht nur eine Angriffsfläche geschaffen wird, sondern auch der Administrator Vertrauen in das Script setzen muss. Zusätzlich ist, sofern der offizielle Client genutzt wird, ein Interpreter für Phyton notwendig, der ansonsten auf vielen Webservern wohl nicht installiert werden würde. Deshalb wird Let´s Enrypt am Ende nicht jeden glücklich machen und auch ich setze es aktuell bisher nur bei Projekten ein, bei denen der Webserver durch Plesk verwaltet wird. Allerdings sehe ich auch noch einen weiteren Vorteil. Denn dadurch, dass viele Hoster bereits Let´s Encrypt anbieten, erreicht die Initiative auch den Massenmarkt. Das sorgt nicht nur für mehr verschlüsselten Datenverkehr, sondern auch dafür, dass sehr wahrscheinlich weniger Zertifikate verkauft werden, wodurch die kostenpflichtigen Zertifizierungsstellen hoffentlich ihre Preispolitik überdenken. Auch die fehlende Unterstützung von großen Anbietern wie domainfactory sorgt nicht nur dafür, dass kleinere Anbieter wieder etwas haben, mit dem sie sich von den großen abheben können, sondern zeigt wahrscheinlich auch, dass einige das Geschäft mit Zertifikaten nicht so schnell aufgeben wollen.

Sicheres löschen von Dateien und Partitionen

Trotz der Tatsache, dass bei den aktuellen Linux-Dateisystemen ext3 und ext4 eine Wiederherstellung von gelöschten Dateien im Vergleich zu ext2 nur schwer möglich ist, gibt es dennoch welche, bei denen auch das kleinste Risiko schon zu groß ist. Wie lassen sich also Daten so löschen, dass sie nicht wiederhergestellt werden können?

Wird eine Datei gelöscht, dann wird der eigentliche Inhalt, der in Datenblöcken gespeichert ist, nicht vernichtet, sondern nur als frei markiert und die Einträge in den Verzeichnisdateien, in denen die Zuordnungen der Dateinamen zu den Inodes zu finden sind, entfernt. Bei den Dateisystemen ext3 und ext4 werden zusätzlich auf Verwaltungsebene, den Inodes, auch die Zeiger auf die Datenblöcken überschrieben. Damit ist das Wiederherstellen von Dateien unter aktuellen Linux-Dateisystemen zwar komplizierter, aber bei Weitem nicht unmöglich. Erst wenn die Datenblöcke überschrieben wurden, kann die ursprüngliche Datei nicht wiederhergestellt werden. Dieses geschieht zwar auch automatisch, wenn das Betriebssystem den Speicher z.B. für eine neue Datei braucht, kann aber je nach Größe der Festplatte sehr lange dauern.

Sicheres löschen von Dateien

Zum sicheren Löschen einzelnen Dateien gibt es für Linux zwei sehr bekannte Programme, die auch bei Debian und Ubuntu in den offiziellen Paketquellen vorhanden sind. Diese überschreiben die Dateien vor dem löschen mehrmals mit Zufallsdaten oder Nullen, sodass diese anschließend weder per Programm, noch per forensischer Analyse wiederherstellen werden können.

shred

Installation unter Debian:

Eine Datei mit shred 25 Mal überschreiben und anschließend löschen:

Mit dem Parameter –n lässt sich die Anzahl der Schreibzyklen anpassen. Im nachfolgenden Beispiel wurde der Wert auf 3 gesenkt. Außerdem wird durch Hinzufügen des Parameters –v ein Fortschrittsbalken angezeigt.

Mit dem Parameter –z wird die Datei am Ende noch einmal mit Nullen überschrieben. Damit kann das Überschreiben nicht nur verschleiert werden, sondern in Verbindung mit dem Herabsetzen auf null Zyklen auch ausschließlich mit Nullen überschreiben werden. Alternativ kann dafür auch das Programm dd genutzt werden, welches im Kapitel „Sicheres löschen von Partitionen“ vorgestellt wird.

wipe

Das Programm wipe bietet im Vergleich zu shred nicht nur wesentlich mehr Einstellungsmöglichkeiten, sondern auch die Möglichkeit ganze Ordner zu überschreiben. Dieses lässt sich bei shred zwar auch in Verbindung mit find realisieren, ist dadurch aber komplizierter.

Installation unter Debian:

Eine Datei mit wipe Überschreiben und Löschen:

Durch den Parameter –r lassen sich rekursiv auch Ordner mit all ihren Unterordnern und Dateien überschreiben und löschen. Mit dem Parameter –f lässt sich zudem das Nachfragen, ob die Datei wirklich gelöscht werden soll, unterbinden.

Einschränkungen bei SSDs

Da die einzelnen Speicherzellen des bei SSDs verwendeten Flash-Speichers nur über eine begrenzte Anzahl an Schreibzyklen verfügen, werden die Schreibvorgänge mittels der Wear-Leveling-Algorithmen durch den Controller auf alle Zellen gleichmäßig verteilt. Das sorgt zwar für eine längere Lebensdauer der SSD, verhindert aber auch, dass beim Überschreiben einer Datei tatsächlich die ursprünglichen Speicherzellen genutzt werden. Weshalb ein sicheres Löschen mit den oben genannten Programmen bei SSDs nicht möglich ist.

Sicheres löschen von Partitionen

Zwar lassen sich auch ganze Partitionen mit den bereits vorgestellten Programmen überschreiben, da diese jedoch um einiges größer sind und das Überschreiben sehr lange dauern würde, ist hier das nutzen schnellerer Methoden ratsam. Zudem haben 2008 die Forensikexperten Craig Wright, Dave Kleiman und Shyaam Sundhar R.S. nachgewiesen, dass bereits nach einmaligem Überschreiben gelöschte Daten nicht wiederhergestellt werden können (siehe Overwriting Hard Drive Data: The Great Wiping Controversy).

Am einfachsten und schnellsten geht das Überschreiben von Partitionen mit dem Programm dd. Als Parameter werden die Eingabedatei (if=/dev/zero) und Ausgabedatei (of=PARTITION) angegeben. Bei der Eingabedatei wird im Beispiel /dev/zero verwendet, welches bei jedem Lesezugriff ein Nullzeichen zurückliefert, und als Ausgabedatei die zu überschreibende Partition (z.B. /dev/sda).

Außerdem kann auch die Größe der Blöcke, die standardmäßig bei 512 liegt, mit dem Parameter bs vergrößert werden, wodurch ein schnelleres lesen und schreiben möglich ist. Für den idealen Wert sollte zunächst mit dem Programm hdparm die Größe des internen Zwischenspeichers der Festplatte ermittelt werden. Dieser kann dann als Wert für die Blockgröße (bs) genutzt werden.