Attacker mot SSL VPNs

Attacker mot SSL VPNs

En av de mer intressanta släppen under sommarens Blackhat-konferens i Las Vegas var den som handlade om att attackera SSL VPN:s.

Och varför är detta intressant? Jo det finns ett antal olika faktorer till att just detta är intressant och jag ska försöka beskriva dem nedan:

Underrättelsetjänster

NSA och andra underrättelsetjänster ser VPN:s som mål för att de används för att utbyta information. Med hjälp av passiv (och aktiv) avtappning så kan informationen ge fördelar, försprång och gynna den egna industrin:

Equation Group’s BENIGNCERTAIN tool – a remote exploit to extract Cisco VPN private keys. 

Attackytan

Attackytan för specifikt SSL VPN:s är intressant då det mest troligt är en webbservern inblandad och denna kan innehålla sårbarheter. Webbservern måste hantera TLS, HTTP och underliggande protokoll. Vilket kan jämföras med exempelvis IKE och IPSEC.

En angripare som kan ta sig in i en VPN-enhet kan troligtvis också ta sig vidare in i nätverket eller modifiera kommunikationen (förutom att läsa av den).

Hårdvaran

När du köper ett SSL VPN så köper du troligtvis en låda av en leverantör som du inte vet så mycket om. Hur är det underliggande operativsystemet uppsäkrat? Vet du om den använder den ASLR + DEP? Och om den nu blir hackad, hur genomför du en forensisk undersökning av enheten?

Sårbarheterna

Följande sårbarheter har identifierats av Meh Chang (@mehqq_) och Orange Tsai (@orange_8361) i Fortigate SSL VPN:

  • CVE-2018-13379: Pre-auth arbitrary file reading
  • CVE-2018-13380: Pre-auth XSS
  • CVE-2018-13381: Pre-auth heap overflow
  • CVE-2018-13382: The magic backdoor
  • CVE-2018-13383: Post-auth heap overflow

Även har sårbarheter identifierats i Pulse Secure VPN, se mer här.

Även så har Palo Alto i all tysthet även patchat sin GlobalProtect, se mer här. Vad som också är skrämmande just nu är att två av ovan sårbarheter utnyttjas aktivt på internet av angripare vilket CERT-SE gick ut med en varning om.

Åtgärder

Sist men inte minst så tänkte jag ge några rekommendationer vad ni som organisation bör göra om ni har ett SSL VPN som är exponerat mot Internet.

  • Spara ner trafik framför och bakom SSL VPN:et. Så ni kan i efterhand undersöka vad som har hänt.
  • Uppdatera och se till att senaste säkerhetspatchar är installerade och att produkten inte är End-of-Life
  • Se till att loggar skickas från SSL VPN:et. Om möjligt alla typer av loggar såsom access-loggar på webbservern.
  • Begränsa tillgången till system som kan nås via VPN:et. Dvs ge inte full åtkomst till allt bara för att en användare ansluter via VPN.
  • Genomför en oberoende säkerhetsgranskning av uppsättningen
  • Er anslutningspunkt kanske inte bör vara vpn.företagsnamn.se
  • Följ upp anslutningar till och från Erat VPN. Har någon överfört 100 GB via VPN:et utan en koppling till en inloggad användare? Långa TCP-sessioner, beacons osv.
  • Policy över hantering av nya och användare som slutar samt regelbunden uppföljning
  • Försvåra password-spraying attacker genom att använda hårda/mjuka certifikat etc. Dator + användarcertifikat
  • Har ni eller har haft en sårbar version. Se till att byta samtliga lösenord
  • Sök av kontinuerligt med en sårbarhetsskanner

Har jag missat något ovan? Fyll gärna på i kommentarsfältet nedan.

Uppdatering: Här finns en NSE-fil för Nmap för att identifiera sårbara Pulse Secure VPNs: https://github.com/r00tpgp/http-pulse_ssl_vpn.nse/blob/master/http-pulse_ssl_vpn.nse

Bakdörrar identifierade i flertalet RubyGems

Att cyberattacker mot Supply Chains såsom rubygems blir vanligare och vanligare är vi många som har förutspått i flera år. Och igår så identifierades en bakdörr i ruby rest-client.

Bakdörren las in via ett hackat konto (mwmanning) och hämtade hem kod från pastebin som sedan exekverades. Liknande attacker har tidigare inträffat mot bl.a. JavaScript-biblioteket (npm) event-stream.

Just denna bakdörr som fanns i Ruby-gems gjorde ett antal olika saker såsom att skicka iväg miljövariabler till hostnamnet mironanoru.zzz.com.ua.

Även identifierades bakdörrar i många andra RubyGems såsom:

  • rest-client: 1.6.10 (downloaded 176 times since August 13, 2019), 1.6.11 (downloaded 2 times since August 14, 2019), 1.6.12 (downloaded 3 times since August 14, 2019), and 1.6.13 (downloaded 1,061 times since August 14, 2019)
  • bitcoin_vanity: 4.3.3 (downloaded 8 times since May 12, 2019 )
  • lita_coin: 0.0.3 (downloaded 210 times since July 17, 2019)
  • coming-soon: 0.2.8 (downloaded 211 times since July 17, 2019)
  • omniauth_amazon: 1.0.1 (downloaded 193 times since July 26, 2019)
  • cron_parser: 0.1.4 (downloaded 2 times since July 8, 2019), 1.0.12 (downloaded 3 times since July 8, 2019), and 1.0.13 (downloaded 248 times since July 8, 2019)
  • coin_base: 4.2.1 (downloaded 206 times since July 9, 2019) and 4.2.2 (downloaded 218 times since July 16, 2019)
  • blockchain_wallet: 0.0.6 (downloaded 201 times since July 10, 2019) and 0.0.7 (downloaded 222 times since July 16, 2019)
  • awesome-bot: 1.18.0 (downloaded 232 times since July 15, 2019)
  • doge-coin: 1.0.2 (downloaded 213 times since July 17, 2019)
  • capistrano-colors: 0.5.5 (downloaded 175 times since August 1, 2019)

Vad man man göra för att förhindra och försvåra för denna typ av attacker? Jo det finns ett antal saker:

Säkra upp utvecklarkonton

Kontot som hackades hade inte tvåfaktorsautentisering påslaget. Gör detta obligatoriskt för denna typ av behörighet. Vilket är något som nu RubyGems funderar på.

Granskning av kod

Precis som processen för att publicera appar i Apple App Store eller Google Google Play så bör kod exekveras i en sandlåda och observeras. Gör den konstiga saker såsom DNS-uppslagningar som inte fanns tidigare?

Givetvis är även manuell kontroll av kod som publiceras bra, men vid många ändringar och mycket kod är det inte alltid möjligt att manuellt granska all kod.

Signering

Se till att det finns ett flöde gällande signering, från exempelvis en hårdvarunyckel såsom YubiKey där en obruten kedja kan verifiera från utvecklaren till den person som installerar paketet.

Isolering

Precis som med all obetrodd källkod som du laddar ner och kör så bör denna isoleras i största möjliga mån. Alla servrar och klienter kanske inte bör ha direkt koppling mot Internet, alla anslutningar och uppslag bör loggas.

Håll nere antalet beroenden

Om du har möjlighet att själv utveckla och underhålla delar av källkoden så är detta att fördra. Men inte alltid möjligt då vi många gånger är beroenden av tredjepartskod såsom bibliotek. Reproducerbara byggen är också ett bra sätt att försvåra för bakdörrar.

RPKI för säkrare routing

RPKI står för Resource Public Key Infrastructure och är en metod för att kryptografiskt signera BGP-annonseringar.

RPKI

BGP är det protokoll som används för routrar att berätta vilka IP-adresser (prefixes) som finns hos en viss operatör. Det är därför viktigt att ingen kan falskt annonsera ut någon annans nät. Standard så fungerar BGP så att vem som helst kan annonsera ut vilket nät som helst. BGP är en viktig del i internets infrastruktur.

Exempelvis kan mail kapas och TLS-certifikat utfärdas om routes felaktigt tar en annan väg på internet. Krypterad trafik kan spelas in och försöka knäckas direkt eller på längre sikt.

Några uppmärksammade BGP-kapningar:

RPKI finns beskrivet i RFC6480 med titeln An Infrastructure to Support Secure Internet Routing. RPKI är också en del av det globala initiativet MANRS, Mutually Agreed Norms for Routing Security som bl.a. Internet Society (ISOC) ligger bakom.

Netnod som sköter flertalet knutpunkter i Norden kommer att stödja RKPI i sin route-server under H1 2019 meddelar Netnod i följande blogginlägg.

OpenBSD rpki-client

För att gå in på mer tekniska detaljer så används ROA-records för den som vill annonsera kryptografiskt verifierbara prefixes. Sedan kan dessa ROA-records verifieras med mjukvara såsom RIPE NCC’s RPKI Validator, NLNetLab’s Routinator 3000 eller OpenBSD:s rpki-client.

Nyligen så släpptes även verktyget BGPalerter av NTT ”Software to monitor streams of BGP data. Pre-configured for announcements, withdrawals, and hijacks real-time monitoring.”

Läs mer här om BGPalerter: https://mailman.nanog.org/pipermail/nanog/2019-August/102672.html

Anti-virus i din TV?

Det kanske låter som ett skämt om att köra antivirus-mjukvara på sin TV men när man tänker efter så är det inte helt osannolikt att skadlig kod kan infektera din TV-apparat. Att infektera TV-apparater är nämligen något som bl.a. CIA pysslar med enligt Vault7-läckan (Weeping Angel).

Det som är nytt nu är att Samsung skrev på Twitter att om din Smart TV från dem är ansluten till WiFi så kommer din TV nu att automatiskt genomsöka efter skadlig kod varje vecka:

https://twitter.com/SamsungSupport/status/1140409768743452672

Nedan följer en skärmdump på hur det ser ut när man manuellt genomsöker efter virus (från videon ovan)

Frågan som kvarstår dock är om detta är enligt ett tidigare annonserat partnerskap mellan Samsung och McAfee om att köra MacAfees antivirus på Tizen OS.

20 års erfarenhet inom itsäk-granskningar

20 års erfarenhet inom säk-granskningar

Jag tänkte försöka sammanställa några kloksaker om sådant som jag lärt mig efter nästan 20 års erfarenhet av tekniska cybersäkerhetsgranskningar från min tid inom bl.a. FRA, Försvarsmakten och nu som egenföretagare.

Desto äldre jag blir desto mer tid lägger jag på att reflektera och dra slutsatser på ett övergripande och bredare plan.

Det låter eventuellt inte som viktigt men att försöka uppskatta och prioritera den tid du fått avsatt för uppdraget är viktigt. Att inte lägga för mycket tid på sådant som kan leda in i en återvändsgränd.

Beräkna tid

Låt verktygen arbeta för dig och automatisera så mycket du bara kan och på så sätt kan du lägga fokus på sådant som kräver manuellt arbete, såsom att förstå en bakomliggande logik i ett system eller mjukvara.

Lita dock inte enbart på automatiserade verktyg utan verifiera och dubbelkolla alltid resultatet.

Kommunikation

Att upprätta en bra leverabel såsom dokumentation (rapport) och ha förmåga att kommunicera denna leverabel till din uppdragsvidare är av stor vikt för framgång. Du kanske är jätteduktig teknisk men när uppdragsgivaren väl får din leverabel två veckor för sent så minskar värdet av din leverabel.

Vet du att du är mindre bra på att kommunicera och dokumentera men duktig på teknik se då till att ditt team innehåller en eller flera personer som kan kommunicera eller dokumentera.

Stödfunktioner och processer

Att ha bra processer och rutiner samt stödfunktioner som hjälper dig och höjer dig i ditt arbete så du kan leverera enligt din optimala förmåga är viktigt. Det kan röra sig om att du slipper gå på tråkiga möten där du kanske inte har något att göra eller minimera tidsrapportering. Eller att själv slippa installera om operativsystem, drivrutiner eller liknande.

Du kan i ditt arbete luta dig tillbaka till en bra grund när det gäller hur uppdrag kommer in, fördelas, prioriteras och sedan levereras. Samt efter avslutat uppdrag hur avdukning går till.

Tillgång till Internet kanske inte finns eller bör användas, därför måste du eller dina kollegor redan innan tänka till vad som kan behövas för offline-bruk. Jag brukar se till att ha många opensource-repon, indexerade digitala böcker (många förlag kan du köpa bulk billigt) samt deb-paket tillgängliga snabbt.

Här hittar du bristerna

Min erfarenhet säger mig att säkerhetsbristerna hittar du oftast på de ställen som:

  • Odokumenterade funktioner/gränssnitt/API:er
  • Ny eller gammal kod. Sök efter kod som hanterar gamla filformat eller protokoll exempelvis
  • Kod som parsar text eller andra komplexa funktioner
  • Funktioner som kan användas på andra sätt än vad utvecklaren hade tänkt på
  • Felaktig eller bristfällig separation mellan behörigheter eller användare
  • Ändringar mot grundsystemet. De flesta operativsystem nuförtiden är relativt säkra i sitt grundutförande, sök efter ändringar som genomförts.
  • Ställen där du kan nå långt in i systemet eller koden med extern indata

Finns givetvis en uppsjö till med saker där jag tittar, kanske kommer eventuellt i en bok framöver.

Spårbarhet

Att dokumentera dina findings under ditt uppdrag är av stor vikt. Speciellt eftersom att du troligtvis kan hitta ett eller annat guldkorn när du granskar exempelvis alla http-svar från webbservern eller all nätverkstrafik som du sparat undan i pcap-format.

Den efterföljande dokumentationen blir också otroligt mycket lättare om du sparat undan så mycket som möjligt. Även kan skärmdumpar eller liknande också vara bra som ett komplement till din löpande textdokumentation (krigsdagbok) eller rådata.

Glöm inte heller att du måste ha en process för att på ett säkert sätt radera all information efter avslutat uppdrag om så behövs, en del av Er OPSEC.

Tänk alltid ett steg längre

Du kanske är snabb på att skjuta iväg en ny exploit från Metasploit mot en sårbar server eller klient. Men tänk efter innan vad detta kan få för konsekvenser i ett andra eller tredje steg och ni behöver göra ett omfall.

Det kan vara så att säkerhetsövervakningen (SOC) upptäcker att ni håller på att genomföra en Red Teaming operation och då kanske ni behöver byta ip-adress, mac-adress eller liknande. Och då är det viktigt att redan innan veta hur detta går till.

Övrigt

Jag försöker även alltid ha möjlighet att göra saker på minst två olika sätt, det gör att jag kan verifiera och dubbelkolla vissa saker samt om ett verktyg eller metod skulle misslyckas kan jag alltid göra på något annat sätt. Öva är även viktigt så du och ditt team eller dina verktyg och metoder fungerar när det väl är skarp verksamhet eller ett uppdrag.

Se även till att du snabbt och enkelt kan sätta upp en miljö som efterliknar målsystemet eller den mjukvara som du granskar. Det gör att du kan hitta mer brister och inte behöver skicka alla dina tester över nätverket eller liknande.

Avslutande ord

Hoppas att detta kan leda till att du, din verksamhet eller ditt team kan bli bättre på just det ni gör inom cybersäkerhet. För jag tycker det är viktigt att vi delar med oss av våra lärdomar och kloksaker till varandra och på så sätt bygger vi säkrare infrastruktur, system och mjukvaror.

Se även till att utbilda din uppdragsgivare så denne blir en bra beställare, och hjälp till med krav och förväntningar samt förutsättningar.

Ny version av Windows Sysinternals Sysmon

Uppdatering: Nya versionen har nu släppts och event ID 22 representerar DNS-frågor:

Event ID 22: DNSEvent (DNS query)

This event generates when a process executes a DNS query, whether the result is successful or fails, cached or not.

is event generates when a process executes a DNS query, whether the result is successful or fails, cached or not.

Även så framgår följande uppdateringar i v10:

This release of Sysmon adds DNS query logging, reports OriginalFileName in process create and load image events, adds ImageName to named pipe events, logs pico process creates and terminates, and fixes several bugs.

Mark Russinovich som tillvardags är CTO på Microsoft Azure meddelade på Twitter att det kommer en ny version av System Monitor (Sysmon) idag Tisdag.

Denna nya version stödjer bl.a. DNS-loggning direkt till eventloggen i Windows. Både förfrågningar och svar loggas till eventloggen som DnsQuery.

När jag skriver detta under tisdagen har dock ännu inte den nya versionen av Sysmon släppts.

Skärmdump:

Ovan skärmdump visar att QueryResults returnerar 5 vilket är CNAME. Att logga svaren på detta sätt är bra vid SOC/SIEM och Threat Hunting eftersom svaren kan ändras med tiden och på detta sätt så får vi en ögonblicksbild hur frågan och svaret såg ut vid just detta tillfälle.

Här kan du ladda hem Sysmon: docs.microsoft.com/en-us/sysinternals/downloads/sysmon

IBM:s mobila cybercentral C-TOC

Föregående vecka fick jag en inbjudan att se IBM:s nya koncept vid namn C-TOC. Förkortningen står för Command Cyber Tactical Operations Center och kan liknas med en mobil cybercentral.

Med denna mobila central så kan grupper öva inför olika cyber-relaterade krisscenarion eller snabbt sätta ihop en grupp som arbetar med en verklig incident.

Under ledning av IBM:s representant Alexandra Kroon så genomförde vi ett övningsscenario som gick ut på att testa påfrestningen för en grupp som utsätts för en cyberattack på flera plan samtidigt.

BOOM på tidslinjen ovan är när incidenten utspelar sig. Bild: Kryptera.se

Fordonet har även bra med datorkapacitet samt möjlighet till flertalet uppkopplingar samt elgenerator för reservkraft.

Bild: IBM

Och att IBM har inspirerat av militära fordon råder det ingen tvekan om. Här nedan är en bild på FMV:s mobila ledningssystem som följer samma princip med mobila expanderbara utrymmen:

Bild: FMV

Jag är en stor förespråkare av att civila sektorn bör öva mer och har mycket att lära från det militära på det området. Vilket jag framhöll bl.a. på mitt inledningstal på Skyddsmässan.

Ytterligare ett exempel är den internationella NATO-övningen Locked Shields 2019 där Sverige hamnade på tredje plats.

En färsk global studie visar att 77 % av de svarande inte har en krisplan för cybersäkerhetsintrång och av de som har det är det mer än hälften som inte testar eller tränar inför en attack.

Att vara förberedd på en incident behöver inte kosta massor av tid eller pengar utan till att börja med gäller det att ha processer på plats vid olika typer av händelser. Sen är det givetvis bra att testa dessa processer under mer stressade och obekväma former eller när förmågan att kommunicera är begränsad.

Några grundläggande frågeställningar:

  • Vem ringer jag när X inträffar?
  • Vad svarar jag när media ringer?
  • Hur kontaktar jag X om mobiltelefonin eller E-posten inte fungerar?
  • Kan vi, och hur kan vi återställa funktion på system X?

När många saker inträffar samtidigt kan det även vara bra att föra en krigsdagbok över vem som ringde när och vad som uppgavs. Även måste organisationen vara förberedd på en utdragen incident som kan vara flera dygn eller veckor.

Ny version av John the Ripper

John the Ripper

Det var över 4 år sedan en ny version av programvaran John the Ripper (JtR) släpptes. JtR är en av mina favoritverktyg när det gäller att knäcka lösenord (tätt följt av hashcat).

Den nya versionen heter John the Ripper 1.9.0-jumbo-1 och över 6000 commits ligger bakom denna release.

Nyheterna är bl.a. följande:

  • Snabbare och effektivare inläsning av mycket stora lösenordsfiler
  • Stöd för 7 st hash-typer i FPGA:n ZTEX 1.15y
  • Inget mer stöd för CUDA. Istället satsas på OpenCL
  • Och på tal om OpenCL så supportas 88 algoritmer, se listan med –list=formats –format=opencl
  • För CPU-knäckning (till skillnad mot GPU) så stödjs hela 407 olika format
  • AES-NI instruktioner används i större omfattning

Du kan ladda hem JtR här:

Kryptera.se blir CC BY 4.0

Alla artiklar och innehåll på Kryptera.se blir licensierat nu enligt Creative Commons Erkännande 4.0 Internationell (CC BY 4.0).

Du har tillstånd att:

  • Dela — kopiera och vidaredistribuera materialet oavsett medium eller format
  • Bearbeta — remixa, transformera, och bygg vidare på materialet
  • för alla ändamål, även kommersiellt.

Och villkor för detta är:

  • Inga ytterligare begränsningar — Du får inte tillämpa lagliga begränsningar eller teknologiska metoder som juridiskt begränsar andra från att gör något som licensen tillåter.
CC BY 4.0

För att läsa om CC BY 4.0 i sin helhet kan du kolla här:

Licensen gäller inte för sådant som jag själv köpt in eller licensierat. Detta rör sig oftast om bilder som används här på bloggen.

Och du får givetvis gärna också stödja mitt bloggande via Patreon:

Verizon 2019 Data Breach Investigations Report

Företaget Verizon har precis släppt sin rapport med titeln 2019 Data Breach Investigations Report (DBIR). Rapporten är på hela 78 sidor och baseras på analyser av 41686 st säkerhetsincidenter samt 2013 bekräftade läckor från 2018.

De slutsatser jag kan dra från rapporten är följande:

  • Hotet från systemadministratörer ökade under föregående år. Det rör sig om slarv samt insiders
  • Aktivister som hackar är högsta sedan 2012
  • Organiserad brottslighet minskade(!)
  • Generellt är Office-dokument bärare av skadlig kod
  • Majoriteten av attackerna är finansiellt motiverade följt av olika former av spionage. Angripare som vill erhålla ett försprång genom att exempelvis exfiltrera klassificerad information

När det gäller taktik hos angriparen så var någon form av hackning det vanligaste sättet vid intrång följt av social engineering:

Rapporten kan du ladda hem här.