Computerbeveiliging - Hoe je bad guys buiten de deur houdt

Nieuwe Windows PC: veilig starten

27-01-2013, 22:48 door Erik van Straten, 3 reacties

[b]Kip-ei problemen met PGP en SHA1Sum.exe[/b]

Tijdens het schrijven van de tekst voor deel 2 van [url]https://www.security.nl/artikel/44698/1/Security_Tip_van_de_Week%3A_veiliger_downloaden_onder_Windows.html[/url], dat waarschijnlijk morgen gepubliceerd wordt, liep ik er tegenaan dat de executables in de trial versie van Symantec PGP niet voorzien zijn van authenticode handtekeningen, maar er wel een .sig file is bijgesloten. Daarmee zit je met een kip-ei probleem! Je zult eerst de software moeten installeren om de handtekening ervan te kunnen controleren. Wat mij betreft is dit een blunder van Symantec...

Wellicht kun je de sha1 hashes op een andere dan de downloadsite van de software vinden (ik zal ze voor de actuele Windows versie in Deel 2 publiceren), maar hoe bereken je een SHA1 hash als je die tool ook nog niet op je (verse) PC hebt? En hoe kom je veilig aan zo'n tool?

Je kunt natuurlijk Googlen naar sha1sum.exe en lukraak wat downloaden (niet verstandig!) Op plaats 2 vond ik: [url]http://code.google.com/p/toolkits/downloads/detail?name=sha1sum.exe[/url]. Op die pagina zie ik een downloadlink ([url]https://toolkits.googlecode.com/files/sha1sum.exe[/url]) en een SHA1sum: 5dcaa20ce906245870f87b111760d9e5b5e159f3.

Maar ja, even los van het feit dat die hash en de binary op dezelfde site staan (en een aanvaller die onbedoeld toegang verkijgt dus beide kan vervangen) - hoe bepaal je de SHA1 hash van het bestand dat je zojuist hebt gedownload om SHA1 hashes te kunnen bepalen? Opnieuw kip-ei...

Nb. dat een hash (zoals SHA1) klopt zegt natuurlijk helemaal niets over wie de auteur is en of het bestand [i]betrouwbaar[/i] is (overigens heb ik die sha1sum.exe gedownload en de SHA1 bepaald (met een ander programma): van de huidige versie is dat inderdaad 5DCAA20CE906245870F87B111760D9E5B5E159F3. Echter, met deze info kun je alleen vaststellen dat het bestand wel of niet gewijzigd is sinds ik het gedownload heb - verder niets natuurlijk).

In [url]https://secure.security.nl/artikel/41553/1/Programma%27s_%28exe%29_vooraf_keuren._Welke_tools%3F.html#comment-283617[/url]
en
[url]https://www.security.nl/artikel/44698/1/Security_Tip_van_de_Week%3A_veiliger_downloaden_onder_Windows.html[/url]
lees je meer over het vaststellen van de betrouwbaarheid van bestanden. Zo kun je die hash invoeren in [url]https://www.virustotal.com/#search[/url]. Zonder het meteen te uploaden kun je zien of iemand eerder het betreffende bestand al getest heeft.


Om te voorkomen dat Deel 2 al te lang wordt leg ik in deze bijdrage uit hoe je veilig kunt starten met een kale Windows PC.

[b]1. Zorg ervoor dat de PC up-to-date is met patches voordat je deze op minder vertrouwde netwerken aansluit:[/b]

- Wijzig "Windows Update" in "Microsoft Update";
- Sluit de PC aan op een vertrouwd netwerk of sluit deze als enige aan via een (low budget) NAT routertje;
- Draai [b]alle[/b] updates en voer de bijbehorende reboots uit;
- Download ook relevante optionele updates (denk aan updates voor PKI certificaten);
- Voer de gewenste hardening maatregelen uit (zoals het wegnemen van schrijfrechten in de root van harddisks voor non-admins).

[b]2. Zoek en download FCIV.EXE, een betrouwbaar Microsoft tooltje om SHA1 hashes mee te kunnen bepalen:[/b]

- Start MSIE en gebruik een zoekmachine als BING of Google om te zoeken naar: [b]fciv download[/b]
- Kopieer de eerste link naar een Microsoft.com pagina en wijzig [i]http[/i] in [i]https[/i];
- Open die URL, waarschijnlijk is dit [url]https://www.microsoft.com/en-us/download/details.aspx?id=11533[/url] of [url]https://support.microsoft.com/kb/841290[/url] (nb. URL's wijzigen nogal eens bij Microsoft);
- [b]Download[/b] (kies niet voor uitvoeren!) de executable (op dit moment is dat Windows-KB841290-x86-ENU.exe), terwijl je zoveel mogelijk zekerstelt dat de verbindingen https blijven.

[b]3. Controleer de digtale "Authenticode" handtekening onder de download:[/b]

- Ga naar de map waar de download is opgeslagen, meestal iets als Favorieten\Downloads\;
- Rechts-klik op die file en kies Eigenschappen en open het tabblad "Digitale Handtekeningen";
- Selecteer de regel die begint met "Microsoft..." en klik op de Details knop;
- Na een korte vertraging (t.g.v. netwerkverkeer) opent een nieuwe dialoogbox met gegevens van verschillende certificaten en timestamps;
- Open tabblad "Geavanceerd" en verzeker je ervan dat "sha1" of later als digest algorithme is gebruikt, in elk geval niet MD5!

Als er ook maar [i]iets[/i] niet klopt in het proces hierboven, is de download niet betrouwbaar en moet je het bestand wissen en er op een andere manier veilig aankomen (download op een andere PC en verplaatsen via USB stick).

Als alles wel klopt:

[b]4. Installatie:[/b]
- Maak een map C:\Temp\;
- Start het gedownloade bestand en accepteer de licentie;
- Vul als pad in: [b]C:\Temp[/b] en tik Enter;
- Ga met verkenner naar C:\Temp\ waarin je [b]fciv.exe[/b] en [b]ReadMe.txt[/b] zult vinden;
- Hernoem [b]ReadMe.txt[/b] in [b]FCIV.txt[/b];
- [b]KOPIEER[/b] beide bestanden naar C:\Windows\ (waardoor ze via het Windows zoekpad "PATH" te vinden zijn);
- Daarna verwijder je beide bestanden uit C:\Temp\ (desgewenst verwijder je de hele map).

Nb. de reden om te kopiëren + wissen in plaats van te [i]verplaatsen[/i] is dat je niet wilt dat de bestandspermissies geërfd van C:\Temp\ worden meegenomen (onder Windows erven doelbestanden de permissies van de map waar je ze naartoe kopieert).

Nu kun je, met een command prompt, in elke gewenste map uitvoeren: [b]fciv -sha1 <bestandsnaam<[/b]. Bijv. in de Windows map: [b]fciv -sha1 fciv.exe[/b] zal de volgende output geven:[quote]//
// File Checksum Integrity Verifier version 2.05.
//
f5259423eb42664dec7a32ba6a7cf0d85d13e752 fciv.exe[/quote]

Succes!

Reacties (3)
27-01-2013, 23:28 door Anoniem
Goed werk Erik van Straten, Zal het zeker doen! Ook het proberen waard :))!
Mijn Complimenten.
28-01-2013, 11:28 door Anoniem
Het aloude kip-ei probleem niet opgelost! Hoe zou jij het doen, leg uit?

Buiten dat, om windows veilig te krijgen voor online gebuik moet je eerst het internet op om updates binnen te halen, en hoe controleer je nou dat die updates niet, oh, vals-gesigneerde malware is? Volgens mij doet redmond zijn uiterste best dit soort dingen voor je verborgen te houden dus heb je vooral redenen waarom je het niet can nakijken, en nul zekerheid.

Ik zou dan ook concluderen dat veilig opstarten van windows gewoon niet kan, en het eerst maar met een livecd met iets heel anders proberen. Eventueel om alle benodigde updates binnen te halen, maar eigenlijk dat nog niet eens. Mijn favoriete alternatief installeren en gaan. Windows hooguit in een VM, niet meer op de kale hardware.

Je kan die verkoperts daar trouwens ook al niet met je hardware vertrouwen, voor het weet zetten ze de opstartprocedure vast "uit veiligheidsoverwegingen" maar zodanig dat je alleen nog maar hun software kan starten. Hallo, da's mijn computer!

De beste veiligheidstip voor windows is daarom om meerdere redenen automatisch een stappenplan "hoe installeer ik een alternatief?" bijna onafhankelijk van wat dat alternatief dan mag zijn. Nee, dat hoeft geen linux te zijn, is niet mijn favoriet, maar mag wel natuurlijk. Een beetje meer variatie in de populatie doet automatisch ook de windows-onderpopulatie goed. Vraag maar aan een epidemiologist.
28-01-2013, 18:55 door Erik van Straten
Door Anoniem: Het aloude kip-ei probleem niet opgelost!
Het ging mij in eerste instantie om het veilig binnenhalen van een digitaal gesigneerd programma voor het berekenen van SHA1 hashes. Door de download ook nog eens via https te laten plaatsvinden heb je flink je best gedaan en zijn de kansen op compromittering minimaal.

Buiten dat, om windows veilig te krijgen voor online gebuik moet je eerst het internet op om updates binnen te halen, en hoe controleer je nou dat die updates niet, oh, vals-gesigneerde malware is?
Voor zover ik heb kunnen vaststellen zijn alle updates digitaal gesigneerd.

Echter eind vorig jaar heeft Microsoft updates uitgebracht die kwetsbaarheden in haar update distributiemethode verhelpen, en dan met name het controleren van de digitale handtekeningen. Welke updates dat specifiek zijn weet ik niet uit m'n hoofd. Maar niets let je om die specifieke updates op een vertrouwde (en up-to-date) Windows PC te downloaden en de handtekeningen te controleren, en daarna via een stick op de kale PC te installeren alvorens je die op enig netwerk aansluit.

Je kan die verkoperts daar trouwens ook al niet met je hardware vertrouwen, voor het weet zetten ze de opstartprocedure vast "uit veiligheidsoverwegingen" maar zodanig dat je alleen nog maar hun software kan starten. Hallo, da's mijn computer!
Absoluut. Maar voor elk besturingssysteem geldt dat je om te beginnen de hardware, aanwezige firmware en BIOS zult moeten vertrouwen. De schijf kun je voor de zekerheid wissen (met nullen overschrijven) voordat je een besturingssysteem installeert, daarmee voorkom je dat eventuele rescue (of forensische) software ooit nog sporen uit een verleden aantreft en op basis daarvan verkeerde conclusies worden getrokken.

Voor een veilige PC zou ik me zoveel mogelijk baseren op een installatie vanaf media gemaakt door de OS leverancier. Bij Microsoft is dat simpel, bij Linux ligt dat verre van voor de hand en zul je vele onbekende ontwikkelaars en distro-prutsers impliciet moeten vertrouwen. Lastig is dat je vaak allerlei aanvullende drivers nodig hebt om de boel goed en/of performant te laten werken, ook dan is het maar de vraag wat de betrouwbaarheid daarvan is.

Kortom, uiteindelijk moet je derden vertrouwen (je kunt onmogelijk alle code disassembleren en doorgdonden). Het aantal personen/partijen die je vertrouwt kun je echter wel beperken, en daarmee je risico's zo klein mogelijk houden.
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.