Door Anoniem: Eigenlijk 2 vragen dus, welke tools kan ik gebruiken om programma's vooraf te controleren op virussen,
(1) Als je een uitvoerbaar bestand hebt gedownload (meestal .exe of .msi) wijzig dan meteen de extensie in iets dat niet uitvoerbaar is, bijv. .xex
(2) Probeer te bepalen wie de auteur is en of je deze kunt vertrouwen. Veel programmeurs hebben een eigen website en/of blog die vaak afwijkt van de site waar je bestanden van downloadt. Voorbeeld:
http://sourceforge.net/projects/gbdns/ en
http://www.george-barwood.pwp.blueyonder.co.uk/DnsServer/.
(3) Probeer zo goed mogelijk vast te stellen dat het bestand niet is gewijzigd sinds de auteur het heeft gepubliceerd. Dit gebeurt vaak via Authenticode, GnuPG/PGP signatures en/of gepubliceerde hashes.
(3a) Authenticode vaststellen is eenvoudig: rechts-klik op het bestand en kies eigenschappen. Als er geen tabblad "Digitale handtekeningen" bestaat is het bestand niet digitaal ondertekend met Authenticode. Anders open je dat tabblad, selecteer de regel van de ondertekenaar en kies details.
Een voorbeeld van hoe het NIET MOET is
http://sourceforge.net/projects/gbdns/files/gbdns/July%2015%202010%20R3/GbDns.msi/download. Die MSI file is digitaal ondertekend door Microsoft maar daarna gewijzigd door de auteur, ik heb (nog) geen idee waarom.
Downloads van Adobe en Microsoft (ook de verderop genoemde Process Explorer, niet de zip file maar de .exe daarin wel) zijn bijna altijd met Authenticode ondertekend.
BELANGRIJK: bij wel geldige handtekeningen moet je ook op de details knop klikken. Je zult de eerste keer merken dat het even tijd kost voordat de nieuwe dialoogbox geopend wordt: dat komt omdat op dat moment, in de achtergrond, er netwerkverkeer plaatsvindt: Windows controleert of het certificaat niet is ingetrokken.
(3b) GnuPG/GPG: hier wil ik later nog wel eens een stukje over schrijven (deze bijdrage is lang genoeg zo).
(3c) Een cryptografische hash (meestal MD5, SHA1 of SHA256) is een soort unieke vingerafdruk van een bestand. Hoe sterker (en meestal hoe langer, d.w.z. het aantal hexadecimale cijfers) de hash, hoe moelijkerer het is om twee verschillende bestanden te vinden die dezelfde hash opleveren. Dus als de programmeur bijv. de SHA1 hash van een programma berekent en jij doet dat na downloaden ook, dan kun je vaststellen of de hash nog klopt en dus het programma niet is gewijzigd. Het probleem hierbij is dat als de hash naast het programma op de website staat, een eventuele aanvaller zowel het programma als de hash zou kunnen wijzigen. Zoek dus bij voorkeur naar alternatieve sites (of beter, een maillist) waarin de programmeur de hash heeft gepubliceerd!
Een aardig programma voor het berekenen van hashes is HashMyFiles va Nir Sofer, zie
http://www.nirsoft.net/utils/hash_my_files.html (de SHA1 hash van hashmyfiles.zip versie 1.88 is a5c5b00e018faabcc533dd32154e9abd43b54f6c, helaas geen authenticode hier). Er zijn virusscanners die aanslaan op de programma's van Nir Sofer, waarschijnlijk omdat hij ze inpakt met UPX.
Pak de gedownloade zip file uit bijv. in C:\Program Files\HashMyFiles\. Onhandig aan het programma is dat deze de configuratiefile alleen in de installatiemap bijwerkt, en daar hebben gebruikers (op een veilig opgezet systeem) geen schrijfrechten. je kunt voor
alle gebruikers op het systeem in het Eigenschappen popup menu (rechts-klik op bestand) automatisch een entry "HashMyFiles" laten verschijnen door de volgende code te kopiëren in een bestandje dat ik
Enable_Explorer_Context_Menu_In_HKLM.reg heb genoemd:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\HashMyFiles]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\HashMyFiles\command]
@="\"C:\\Program Files\\HashMyFiles\\HashMyFiles.exe\" /file \"%1\""
(4) Virustotal is hierboven al meermaals genoemd. Echter als teveel mensen binaries uploaden naar Virustotal zou die service wel eens kunnen verdwijnen. Om die reden bepaal ik altijd eerst de hash van een bestand en geef dat aan virustotal in
https://www.virustotal.com/index2.html#search. Zowel MD5, SHA1 als SHA256 hashes worden ondersteund (vul bovengenoemde a5c5b00e018faabcc533dd32154e9abd43b54f6c maar eens in). Mocht er geen (of een te oud) resultaat zijn, kun je altijd nog de binary uploaden. De extensie maakt daarbij overigens niks uit.
(5) Als je handig bent met programma's als 7-Zip, InnoUnpack, UPX en "strings", kun je vaak heel redelijk vaststellen uit welke componenten je download bestaat en welke karakterreeksen daarin voorkomen. Vaak zegt dat ook wel iets over de betrouwbaarheid (veel realistische foutmeldingsteksten betekent dat het om een serieuze programmeur gaat). Zonder de programma's geheel de disassembleren en doorgronden (lastig en tijdrovend) blijft dit wel een gevoelskwestie.
(6) Je kunt ook (op een testsysteem!) aan de slag met "diff" tools zoals Microsoft's Attack Surface Analyzer (zie
http://technet.microsoft.com/en-us/security/gg749821).
en hoe detecteer ik virussen als ik het bestand al heb uitgevoerd?
aantekening: Er wel van uitgaand dat de desbetreffende virusscanner het virus in de file niet detecteert.
Die laatste is een belangrijke opmerking. Hier is geen eenduidig antwoord op te geven omdat malwaremakers over het algemeen hun uiterste best doen om te voorkomen dat hun malware detecteerbaar is. Het draaien van WireShark tijdens de eerste keer dat je de software opstart kan informatie geven als het programma naar huis belt. Tools zoals Proces Explorer en Process Monitor zijn ook erg handig in zo'n geval (zie
http://technet.microsoft.com/en-us/sysinternals/bb545027).