Verifizierung der Prüfsumme...

Hallo Community,

ich habe da ein paar Fragen bezüglich Prüfsummen:
-Bei Downloads; ist es so, dass ich die Datei/Programm zuerst downloaden muss, um sie nachher erst überprüfen zu können? Also, dass ich die mögliche Kompromittierung in Kauf nehmen muss, bevor ich die Datei auf Manipulationen überprüfen kann? (Mal abgesehen von "auf Hersteller-Site downloaden" und "Sandboxie" etc., was ja auch keine wirkliche Sicherheit ist...)
-Falls ja; kennt jemand ein empfehlendswertes Programm für Win8.1?
-Falls nein; was für Möglichkeiten gibt es daneben?
 
-Bei Downloads; ist es so, dass ich die Datei/Programm zuerst downloaden muss, um sie nachher erst überprüfen zu können?
Logischerweise.
Prinzipiell könnte ein spezialisierter "Downloader" die Datei bis zum Schluss irgendwo im internen Buffer halten und erst dann in ein Verzeichniss kopieren.
Ich weiß allerdings nicht, worauf Du Dich hier beziehst - speziell die Signierung der einzelnen Programme/Installer oder tatsächlich Prüfsummen.

Also, dass ich die mögliche Kompromittierung in Kauf nehmen muss
Hm, könntest Du den Punkt mit der Kompromittierung mal näher ausführen?
Niemand zwingt Dich die Datei auszuführen (und streng genommen sollte man sich zusätzlich den Dateihashwert aus einer anderen Quelle besorgen).

Prinzipiell fallen mir folgene Schwachstellen ein:
1. Der Downloadvorgang selbst (Browser/Programm können durch vorhandene Lücken manipuliert werden).
2. Anfällige "Auto-magic" Software (Windows Explorer selbst oder die zahlreichen installierte Erweiterungen (PDF, Bild/Zip usw PVorschau) oder Bibliotheken, Antivirussorfware).
Vereinfacht gesagt: alles, was ohne Dein zutun die Datei in irgendeiner Weise öffnet und auswertet. Beispiele wären die Vorschau bei PDF/Bildern oder ein Icondarstellung bei einem Programm im Explorer.

Praktisch wäre die "Downloadlinksuche" im Browser allerdings die mit Abstand größere Kompromittierungsmöglichkeit (Drive-By/automatisierter Angriff auf den Browser samt Plugins).

-Falls nein; was für Möglichkeiten gibt es daneben?
1.0 Wie immer - möglichst viel "Auto-magie" abschalten.

1a) Beim Download eine zusätzliche Endung (tmp,foo) angeben und in einem in einem Verzeichniss speichern, welches nicht irgendwo im Explorer oder sonstigem Programm geöffnet wurde. Erst dann verifizieren - idealerweise über Kommandozeile, ohne zusätzliche Interaktionen mit dem "Öffnen mit" (aka "Explorer in klein") Dialog.
Die geänderte Endung ist dazu da, um zusätzlich den ganzen "Preview"/"Auto-magic" Kram möglichst unschädlich zu machen.

1b) wie 1a, nur dass im Downloadverzeichniss nichts ausgeführt werden kann (Stichworte: "Berechtigungen für Dateien/Verzeichnisse")

1c) wie 1b, nur dass der Downloader/Hashanwendung von einem Benutzer mit minimalen Zugriffsrechten ausgeführt wird. Also "Run as"/Ausführen als. Die Einschränkung geht im übrigen ziemlich weit (so dass man sich unter diesem Benutzerkonto z.B gar nicht einloggen kann, weil dieses Nutzerkonto keine Lese- gescheige denn Schreib/Auführrechte im Großteil des Systems hat).

1d) wie 1c nur dass man auch den Browser mit eingeschränkten Rechten laufen lässt.
--------------
Oder:
weil der Aufwand ab einem gewissen Punkt wiederum keinen praktischen Sinn macht (da nocht zig andere Schwachpunkte existieren):
ganz stupide in einer VM (VirtualMachine, ganz ungleich Sandboxie) herunterladen, prüfen und dann auf den "richtige" Rechner kopieren.
In der VM kann man entwerder ein Betriebssystem von einer LiveCD laufen lassen oder aufsetzen, Snapshot machen und immer nach Benutzung auf den ursprünglichen Zustand zurücksetzen.
Oder gleich sowohl den Browser wie auch das Programm in einer VM laufen lassen - für die meisten Anwendungen ist die Performance mehr als ausreichend.
 
Danke für die ausführliche Antwort...
Ganz ehrlich, ich weiss selber nicht so genau auf was ich mich beziehe :P grundlegend meine ich diese Zahlen- und Buchstabenkombination (dachte man sagt ihr Prüfsumme), mit der eindeutig nachgewiesen kann, dass jene Datei die man heruntergeladen hat, auch die ist, welche der Hersteller zur Verfügung gestellt hat. Und falls sie von irgendjemand manipuliert wurde, würde sich das in einer nicht identischen "Prüfsumme" wiederspiegeln...

So nebenbei, ich fange erst an mich mit der ganzen Thematik zu befassen, achtung: DAU voraus :D

Ist das so, wenn sich auf dem bereits heruntergeladenen Programm ein Schädling befindet, es erst bei einer Ausführung meinerseits zu einer Kompromittierung kommt? Ich denke da an z.B. Drive-by-Downloads, die "verseuchen" dir ja auch den Rechner ohne eine Ausführung, oder bring ich da jetzt was durcheinander? (Ich befürchte es...)

Zwei virtuelle Maschinen hätte ich schon auf dem Rechner (VMware und VirtualBox), zum einen zum verschiedene BS auszuprobieren, und zum anderen zum "sicheren" surfen (Host: Win8.1, Guest: Ubuntu). Wobei ich sagen muss, dass die Performance schon ein wenig leidet.
Der Gedanke zum Ausführen der Downloads über eine VM hatte ich auch schon, wobei dann das Problem mit der "Verseuchung" wegfallen würde, da Download->Test der Programms->evtl. Snapshot-Rückkehr.
Und da bin ich dann auf diese MD5 und SHA-1, Prüfsummen, Hash-Algorithmus etc. gestossen, und fand keine Antworten auf meine Fragen; wie mache ich das genau, wann kann ich prüfen (vor oder nach dem DL), und gibt es gute/empfehlendswerte Tools/Links dazu...
...auch ein Grund warum ich mich hier angemeldet habe :):thumb_up:

(Okay, ich gebs zu, wirklich angestrengt gesucht würde ich mein unprofessionelles Stöbern jetzt auch nicht nennen :D)
 
grundlegend meine ich diese Zahlen- und Buchstabenkombination (dachte man sagt ihr Prüfsumme), mit der eindeutig nachgewiesen kann, dass jene Datei die man heruntergeladen hat, auch die ist, welche der Hersteller zur Verfügung gestellt hat. Und falls sie von irgendjemand manipuliert wurde, würde sich das in einer nicht identischen "Prüfsumme" wiederspiegeln...
Jep, kryptographische Prüfsummen (das sind üblicherweise "längere" Summen - ab ~32 Zeichen, die als SHA, SHA256, MD5, RIPE, _viele_weitere_, bezeichnet werden).

Der Hintergedanke dabei ist, dass die Software selbst z.B auch noch von einem Server (oder Torrents) heruntergeladen werden und mit der Prüfsumme verifiziert werden kann.
Allerdings MUSS diese Prüfsumme von einer vertrauenswürdigen Seite bezogen werden (denn wenn ich, als böser Malwareverbreiter schon manipulierte Software anbiete, kann ich auch gleich die geänderte Prüfsumme zur Verfügung stellen ;) )


So nebenbei, ich fange erst an mich mit der ganzen Thematik zu befassen, achtung: DAU voraus :D
Joa, im Zweifelsfall einfach mal nachfragen - kommt schon vor, dass man auch unbeabsichtigt ins Fachchinesisch abdriftet ;)

Ist das so, wenn sich auf dem bereits heruntergeladenen Programm ein Schädling befindet, es erst bei einer Ausführung meinerseits zu einer Kompromittierung kommt?
Prinzipiell nein. Wie schon vorher ausgeführt - es gibt diverse "stille Helfer", die eine Datei auch ganz ohne Dein zutun öffnen und auswerten. Sei es die PDF/Bildvorschau oder einfach nur die Darstellung im Dateimanager(Windows Explorerer, Browser).
Es kam auch schon mehrmals in der Praxis vor - klassisch wäre z.B
http://technet.microsoft.com/de-de/security/bulletin/ms10-046 hat gesagt.:
kann Remotecodeausführung ermöglichen, wenn das Symbol einer speziell gestalteten Verknüpfung angezeigt wird
oder
http://de.wikipedia.org/wiki/Windows_Metafile#Sicherheitsl.C3.BCcke_in_WMF
oder
http://www.heise.de/security/meldung/Microsoft-flickt-Zero-Day-Luecke-am-Patchday-2044291.html
Oder die ganzen Adobe Acrobat Reader Lücken.

Ich denke da an z.B. Drive-by-Downloads, die "verseuchen" dir ja auch den Rechner ohne eine Ausführung, oder bring ich da jetzt was durcheinander? (Ich befürchte es...)
Kommt auf die Definition an - je nach dem kann man darunter auch nur "unerwünschte" Downloads verstehen, die ohne Benutzerinteraktion stattfinden.
Ok, beim klassischen "Drive-By" betrachtet man i.d.R nur die Seite im Browser.
Der Übergang ist allerdings fließend - streng genommen lädt der Browser die ganzen Elemente von einer Seite, bevor er diese darstellen kann.

Der Unterschied aus Anwendersicht ist nur, dass man anderenfalls erst die Datei explizit herunterlädt und dann im Explorer/Office/Acrobat betrachtet. Und diese Betrachtung kann dann, durch Fehler im jeweiligen Betrachter oder irgendeiner benutzten Softwarekomponente, den unerwünschten Download anstossen (oder gleich das System infizieren).
Allerdings werden oft die gleichen Komponenten für die Betrachtung im Browser verwendet (Bilder, Office/PDF, Java, Flash) - nur dass die Internetbrowser (mittlerweile) normalerweise "schärfere" Sicherheitsrichtlinien haben.

Zwei virtuelle Maschinen hätte ich schon auf dem Rechner (VMware und VirtualBox), zum einen zum verschiedene BS auszuprobieren, und zum anderen zum "sicheren" surfen (Host: Win8.1, Guest: Ubuntu). Wobei ich sagen muss, dass die Performance schon ein wenig leidet.
Hm, mir fällt hier "VirtualBox guest additions" ein (das bringt Virtualbox mit und die Option zum Einbinden "Devices -> Insert Guest Additions CD Image" auf).
Damit ist die Darstellung und damit die "gefühlte Performance" deutlich flüssiger.
Wobei es natürlich trotzdem für grafiklastige Anwendungen nicht so das Gelbe vom Ei ist.
---------------------------
Und da bin ich dann auf diese MD5 und SHA-1, Prüfsummen, Hash-Algorithmus etc. gestossen, und fand keine Antworten auf meine Fragen; wie mache ich das genau, wann kann ich prüfen (vor oder nach dem DL), und gibt es gute/empfehlendswerte Tools/Links dazu...
Also:
Man lädt die Datei herunter und kann diese dann mittels einem anderen Programm/Tools die Prüfsumme bilden.

Ich habe lange Zeit
http://www.slavasoft.com/hashcalc/
http://www.heise.de/download/hashcalc-1120465.html
verwendet.
Läuft zumindest unter Win7 und implementiert die üblichen Algorithmen.
Alternativ (auch wenn vielleicht suboptimal):
http://www.heise.de/download/hashcheck-1169338.html

Dann gibt es noch GnuWin32.
http://gnuwin32.sourceforge.net/packages.html (Packet: TextUtils).
Da sind Kommandozeilentools, die sich dann entsprechend starten lassen:
Code:
CDW@highlander-jr:/tmp % md5 tmp2URktL
MD5 (tmp2URktL) = 2d0ef8eb26a26b7783bc7813b12e1bf0
CDW@highlander-jr:/tmp % shasum tmp2URktL
398154ec70eaa6037b6e0bc0b294a79db17100b6  tmp2URktL
CDW@highlander-jr:/tmp % shasum -a 256 tmp2URktL
468ec99150d6aaad15771adcb961414ccd895443ccde49913311e0c70e077fda  tmp2URktL
CDW@highlander-jr:/tmp % shasum -a 512 tmp2URktL
250f61074e72dafa5a063f3cff331ee40ab19ecc5e58e39a09ee00a24bd4494c8bef718f641485fd7bc9c1be8c8e88aa02dd90e2d2a34bf084d8915372c84bea  tmp2URktL
wird offenbar, leider, nicht mehr weitergepflegt - läuft aber noch.

Andere Lösungsmöglichkeit wäre OpenSSL.
OpenSSL: The Open Source toolkit for SSL/TLS
OpenSSL: OpenSSL Binary Distributions
Code:
CDW@highlander-jr:/tmp % openssl md5 tmp2URktL
MD5(tmp2URktL)= 2d0ef8eb26a26b7783bc7813b12e1bf0
CDW@highlander-jr:/tmp % openssl sha tmp2URktL
SHA(tmp2URktL)= 582dd031f3f53517720b825d0a5eda823992c414
CDW@highlander-jr:/tmp % openssl sha256 tmp2URktL
SHA256(tmp2URktL)= 468ec99150d6aaad15771adcb961414ccd895443ccde49913311e0c70e077fda
 
Also jetzt hab ich definitiv genug Lesestoff fürs Wochenende... :D Danke CDW.

Allerdings MUSS diese Prüfsumme von einer vertrauenswürdigen Seite bezogen werden...
Von welcher Seite würdest denn du sagen dass sie vertrauenswürdig ist? Hättest du da etwa ein Link? Gibt es in diesem Fall eine Art Sammelliste von etlichen Summen auf einen Blick?

Ich wüsste in meinem jetzigen Wissenstand nicht mal nach welchem "Prüfsummen-Namen", geschweige denn "Prüfsummen-Namen-Verifizierungs-Site" ich suchen sollte... ;):P
 
Der Hintergedanke dabei ist, dass die Software selbst z.B auch noch von einem Server (oder Torrents) heruntergeladen werden und mit der Prüfsumme verifiziert werden kann.
Allerdings MUSS diese Prüfsumme von einer vertrauenswürdigen Seite bezogen werden (denn wenn ich, als böser Malwareverbreiter schon manipulierte Software anbiete, kann ich auch gleich die geänderte Prüfsumme zur Verfügung stellen )

Ergänzend möchte ich noch einwerfen, dass Prüfsummen idealerweise auch über andere Quellen zur Verfügung gestellt werden. Also Server 1 bietet die Software und Server 2 speichert bietet lediglich die Infos zu den Prüfsummen.
 
Zurück
Oben