Met alle respect, maar de Redactie mist hier enkele relevante details (dit is niet als kritiek bedoeld, over het algemeen vind ik de vertalingen en interpretaties van de security.nl redactie uitstekend. Maar ja, op zondagochtend om 08:12
wil ik me niet eens met security bezighouden ;)
Door Redactie: De aanval is mogelijk doordat veel bedrijven en softwareontwikkelaars geen downloads via SSL/TLS aanbieden ...
Dit is mijn minst belangrijke kritiek, maar de essentie is omgekeerd: je loopt extra risico als je software via http i.p.v. via https downloadt (Josh Pitts raadt aan om, ongeacht of binaries digitaal ondertekend zijn of niet, ze via https aan te bieden).
Steeds meer downloads
kun je via https downloaden, maar default links zijn vaak http. Enkele voorbeelden, beide werken:
http://download.macromedia.com/pub/flashplayer/current/support/install_flash_player.exehttps://download.macromedia.com/pub/flashplayer/current/support/install_flash_player.exehttp://didierstevens.com/files/software/AnalyzePESig_V0_0_0_3.ziphttps://didierstevens.com/files/software/AnalyzePESig_V0_0_0_3.zipDidier Stevens geeft je overigens duidelijk een keuze, zie
http://blog.didierstevens.com/programs/authenticode-tools/.
Door Redactie: ... of hun bestand niet van een digitale handtekening voorzien, zegt onderzoeker Josh Pitts.
En dat schrijft Joshua Pitts nou net
niet!
In zijn presentatie (
https://www.youtube.com/watch?v=LjUN9MACaTs, Redactie geeft de http link) laat hij zien dat zijn tool, BDFProxy (
https://github.com/secretsquirrel/BDFProxy) probleemloos Authenticode signatures van executables verwijdert.
Precies
om die reden wijst hij op het risico van het downloaden van
http://live.sysinternals.com/; in zijn presentatie laat hij zien dat hij, on the fly, de digitale handtekeningen van o.a. tcpview en Process Explorer verwijdert (dat geeft minder "lawaai" dan de handtekening laten zitten, die ongeldig zou worden door zijn on-the-fly-binary-patching).
De praktijk is sowieso dat de meeste gebruikers niet checken of zo'n digitale handtekening aanwezig is, en
dat is de reden waarom Joshua Pitts pleit voor downloads uitsluitend via https, zoals bijv. GitHub.
Echter, de weinigen die
wel Authenticode signatures checken, zullen, na zo'n BDFProxy aanval, zien dat het tabblad "Digitale Handtekeningen" in bestandseigenschappen ontbreekt. Aangezien dat (helaas) bij veel downloads het geval is, zullen er maar weinigen zijn die op zo'n moment eerst verder onderzoek doen voordat ze het programma starten.
Door Redactie: Advies
Tor-gebruikers en andere internetgebruikers, met name in landen waar geen internetvrijheid is, krijgen het advies van Pitts om voorzichtig met gedownloade bestanden te zijn. Daarnaast zouden gebruikers de handtekening en hash van een download moeten controleren voordat ze die openen en uitvoeren. Als laatste spoort de onderzoeker bedrijven en softwareontwikkelaars aan om ervoor te zorgen dat gebruikers, door het gebruik van SSL/TLS en digitale handtekeningen, veilig software kunnen downloaden.
Dat is toch echt iets anders dan waar Pitts mee concludeert (onderstrepen door mij):
Door Josh Pitts, 2014-10-23: Going Forward
Companies and developers need to make the conscious decision to host binaries via SSL/TLS, whether or not the binaries are signed. All people, but especially those in countries hostile to “Internet freedom,” as well as those using Tor anywhere, should be wary of downloading binaries hosted in the clear—and all users should have a way of checking hashes and signatures out of band prior to executing the binary.
Mijn advies als je Windows executable bestanden downloadt,
vooral als je systeembeheerder bent (ik ga ervan uit dat je
geen Tor gebruikt, maar als je dat doet dan geldt dit advies ook):
1) Controleer altijd of een digitale handtekening aanwezig is. Zo ja: controleer of hier niks vreemds mee is.
2) Altijd verstandig, maar zeker als een digitale handtekening ontbreekt: scan op de download VT (
https://www.virustotal.com/).
3) Als het bestand nog niet eerder op VT is aangeboden, is dat al reden voor ongerustheid. Die ongerustheid is mogelijk onterecht als het om een relatief onbekend bestand gaat, of om een heel nieuw bestand. Houd er terdege rekening mee dat eventuele geïnjecteerde malware door geen enkele virusscanner op VT herkend hoeft te worden, vooral niet als het om een relatief nieuw bestand (nieuwe versie) gaat! In zo'n geval kan het heel verstandig zijn om de download niet te starten, enkele dagen te wachten en het dan nogmaals te laten scannen. Nb. VT scant behoorlijk agressief en kan false positives geven.
4) Zorg dat je een tool hebt om cryptografische hashes mee te berekenen. In
https://www.security.nl/posting/401468/sha256+onder+Windows+zonder+tools geef ik tips voor als je in een kip-ei situatie zit, d.w.z. nog geen hash-tool hebt, er zojuist een gedownload hebt maar
daarvan niet een hash kunt uitrekenen.
Een voorbeeld van zo'n tool is "#HashTool", download vanaf
http://www.digitalvolcano.co.uk/hash.html (met dank aan cluc-cluc voor de tip in voornoemde security.nl pagina!). Helaas kun je de installer niet via https downloaden, maar de installer is wel voorzien van een Authenticode signature (als die ontbreekt na download, is er iets goed mis).
Gegevens over de digitale handtekening en hashes van de installer (
http://www.digitalvolcano.co.uk/download/MD5Hash_setup.exe) vind je in
https://www.virustotal.com/en/file/afedbc9ff0a559ccde694c1de263d74f055f668a01b311f0a4630aad5402e3ce/analysis/ onder respectievelijk de tabs "File Detail" en "Additional Information".
5) Regelmatig worden MD5 (of SHA1) hashes
bij downloads van bestanden getoond (op dezelfde server of zelfs pagina). Houd er rekening mee dat een MitM aanvaller
beide kan vervalsen als je die via http ontvangt. Op vergelijkbare wijze kan een PGP signature worden vervalst, namelijk als je de binary, de binary.asc
en public key file van de signer van dezelfde site downloadt. Vandaar dat Joshua Pitts aanraadt om signatures
out of band te checken; hier is vaak wel enige creativiteit voor nodig.
Nb. Houd er ook rekening mee dat de downloadsite zelf gecompromitteerd kan zijn (het hoeft niet om een MitM aanval tussen de webserver en jouw PC te gaan). Om
die reden zijn digitale handtekeningen veel betrouwbaarder dan gepubliceerde hashes op dezelfde site (mits de ondertekenaar die binaries niet op diezelfde site ondertekent, en zijn private key ook ergens op die server staat; dit is echter niet gebruikelijk).
Na zelf de MD5 hash van een binary te hebben berekend, kun je daarop Googlen. Als dat (bijna) niets oplevert, of juist gebruikers die problemen melden, heb je wellicht iets anders gedownload dan jouw bedoeling was.
P.S. #1: Niet alleen Joshua Pitt houdt zich bezig met dit soort on-the-fly backdoor-injection in binaries. Uit
http://s3.documentcloud.org/documents/810501/769-gamma-group-product-list-finfisher.pdf:
FinFisher over FinFly NET: It is able to patch Files that are downloaded by the Target on-the-fly, send fake Software Updates for popular Software or inject the Payload into visited Websites.
Een andere tool is "EvilGrade", zie
https://github.com/infobyte/evilgrade en
http://www.infobyte.com.ar/down/isr-evilgrade-Readme.txt.
P.S. #2: Als
jij programma's voor download beschikbaar stelt, en overweegt om dat via https te gaan doen, dan heb je misschien iets aan mijn artikel van afgelopen vrijdag:
https://www.security.nl/posting/406474/Website+naar+https%3F+%28voorbeeld%3A+Tweakers_net%29. Want Joshua Pitt hier aankaart heeft alles te maken met wat ik onder "V2) Integriteit van geboden informatie" beschijft in mijn artikel.
P.S. #3: ik ken nu meerdere manieren om Authenticode signatures te manipuleren. Als er voldoende belangstelling voor bestaat wil ik daar wel een keer een artikel over schrijven (maar alleen als dat wat meer aandacht/reacties krijgt dan mijn artikel van vrijdag ;)