Glöm inte lager två

De flesta som är intresserade av nätverkssäkerhet har säkert sett olika bilder av en layered security model. Att det är självklart att jobba med säkerhet på fler nivåer är alla överens om. Därför skulle jag vilja passa på att ta fram en gammal käpphäst som jag har svårt att släppa, nämligen säkerheten på lager två.

När jag talar om lager två syftar jag på andra laget i OSI-modellen, dit hör bland annat Ethernet (MAC-adresser, frames) ARP (address resolution protocol) STP (Spanning tree protocol) VLAN (Virutal LAN), som hanteras av nätverksswitchar rent fysiskt.  Innan vi går vidare vill jag tydliggöra att de tekniker som beskrivs görs utifrån ett CISCO-perspektiv då jag har mest utbildning på deras produkter men att de flesta tekniker och protokoll är öppna standarder och fungerar på samma sätt i switchar (det vill säga, kopplar samman enheter i ett lokalt Ethernet-nätverk) av andra tillverkare. De kan dock ha andra benämningar.

 

 Bildkälla: George Morates  Layered Security Model https://www.linkedin.com/pulse/20141004210628-3669365-layered-security-architecture-best-practices/

Osäkra bilvägar eller osäker nätverksmiljö, vad är farligast?

Det sker många förbättringar vad gäller kryptering, nya protokoll och IPv6, med mera. Men faktum är att de flesta fortfarande använder IPv4, samt att protokoll på lager två och Ethernet-standarden i sig inte ändrats eller uppdaterats nämnvärt på länge. Lägg därmed till att de flesta ”attacker” sker inifrån det egna lokala nätverket (Bradley 2015, TripWire 2017). Antigen via oaktsamma användare vars datorer blivit infekterade av skadlig programvara eller av användare som vill testa nätverket, till exempel i skolmiljö. Därför anser jag det vara intressant att många glömmer säkerheten på lager två. För oavsett hur mycket skydd man tillämpar i övrigt så påverkas allt ovanför om en sårbarhet utnyttjas på lager två.

Man kan likna sin nätverksmiljö vid trafiken i ett vägnät. Vi kan ha hur säkra bilar som helst men det hjälper inte ifall våra vägar inte är säkra. Vem som helst kan slänga ut småspik på vägen eller ändra på vägskyltar och därmed skapa kaos och oanvändbara vägar. Den goda nyheten är att man relativt enkelt kan skydda sitt lokala nätverk mot de vanligaste problemen som broadcast storm och IP- eller MAC-spoofing (detta beskrivs närmare längre fram) och därmed helt eliminera en mängd sårbarheter längre upp i vår lagermodell redan på lager två. Detta förutsätter att vi har hanterbara (managed) switchar. Det finns massvis med inställningar på lager två som vi kan pilla på för ökad säkerhet.

 

Överbelastningsattacker, vad är det? 

Ett av de enklaste sätten att sänka ett lokalt nätverk är genom att skapa en så kallad Broadcast storm. Detta är en typ av överbelastningsattack som fyller det lokala nätverket med broadcast-trafik (och/eller multicast-trafik) och som på bara några sekunder kan göra det lokala nätverket obrukbart (samt alla switchar som hanterar det VLAN som är påverkat). Detta kan orsakas av att en klient skickar för mycket broadcast-trafik, trasig hårdvara eller att man skapat en loop på lager två. Det kan alltså vara så enkelt som att koppla en fysisk loop med en nätverkssladd för att sänka ett lokalt nätverk vilket kan få stora konsekvenser som i fallet med Malmö sjukhus ”IT-haveri” 2009 (Computer Sweden, 2010) då hela sjukhusets nätverk påverkades.

Alla problem med broadcasttrafik kan elimineras med storm-control som enkelt kan aktiveras på port-nivå i switcharna och låter oss sätta en gräns för hur mycket broadcast- eller multicast-trafik vi ska tillåta, antigen i procent, paket per sekund eller bitar per sekund, samt vad som ska hända när gränsen nås. Förslagsvis inaktivera porten och meddela administratören. För att förhindra loopar på lager två så finns protokollet STP (Spanning Tree Protocol) som borde vara aktiverat från början på en hanterbar switch. Protokollet STP kan tyvärr också utsättas för attacker men det kan vi eliminera genom att aktivera BPDU-guard.


Nästa steg är att aktivera Port Security vilket skyddar mot en rad attacker på lager två som CAM table overflow, DHCP starvation och även MAC-spoofing till viss del. CAM table overflow är en enkel överbelastningsattack mot en switch CAM-table som den använder för att hålla reda på vilka MAC-adresser som är anslutna till vilka portar. Genom att förfalska Ethernet-frames kan man fylla minnet på en switch snabbt. På liknande sätt kan man sabotera DHCP-tjänsten (Dynamic Host Configuration Protocol) genom att låna alla tillgängliga IP-nummer i en DHCP pool (eller scope) vilket kallas för DHCP Starvation. En grundförutsättning för många attacker är MAC-spoofing vilket innebär att man förfalskar sin MAC-adress i ett nätverk. Med Port Security kan vi statiskt eller dynamiskt begränsa antalet MAC-adresser som tillåts per port i vår switch vilket eliminerar det mesta av dessa problem.
 

 

Förebyggande åtgärder

För att förstärka skyddet ytterligare så kan vi aktivera DHCP Snooping som skyddar ytterligare mot DHCP starvation samt DHCP-spoofing och obehöriga DHCP-servrar i vårt nätverk. Genom att aktivera detta så håller switcharna koll på all DHCP-trafik och vi kan konfigurera vilka portar som ansluts till DHCP-servrar och förhindra all annan oönskad DHCP-trafik.

Vi bör också aktivera DAI (Dynamic ARP Inspection) vilket förhindrar ARP spoofing och ARP poisoning. ARP (Address Resolution Protocol) är ett gammalt protokoll som används för att översätta IP-nummer till MAC-adresser för att kommunicera lokalt på vårt Ethernet-nätverk. Alla enheter i nätverket har en unik fysisk adress (MAC-adress) som används för att kommunicera på lager två via Ethernet-frames. Det innebär också att alla enheter har en ARP-tabell som är en lokalt sparad adresslista med IP-nummer och motsvarande MAC-adress till alla enheter som man haft kontakt med den senaste tiden. Varje gång en enhet ska kommunicera med ett IP-nummer (IPv4) på det lokala nätverket så görs en ARP-request vilket är en broadcast på lager två för att ta reda på vilken MAC-adress som hör till aktuellt IP-nummer. När enheten får svar så noteras svaret i den lokala ARP-tabellen för att slippa göra om samma process varje gång kommunikation sker med aktuellt IP-nummer.

Problemet är att enheter kan ljuga i sin ARP-kommunikation och utge sig för att vara någon annan (ARP-spoofing) och på så sätt få trafik som inte är deras. Ett annat problem är så kallade gratious ARP meddelanden som innebär att en enhet kan, utan att blivit tillfrågad, annonsera ut vilket IP-nummer som är kopplat till en viss MAC-adress och alla enheter i nätverket (eftersom det sker via broadcast) kommer att notera denna information. Detta kan utnyttjas av en attackerare för att skicka ut förfalskade ARP-meddelanden och på så sätt få all trafik som skulle gå till ett annat IP-nummer, skickat till sig själv. Detta kallas för ARP poisoning och kan användas för att avlyssna trafik eller göra en man-in-the-middle attack. Man kan på så sätt dirigera om trafiken som skulle gått till den lokala routern och därmed även se trafik som är ämnad för Internet. Med DAI förhindras gratious ARP och felaktiga ARP meddelanden från att skickas vidare.

 

 
 
 

Sammanfattningsvis 

Sist men inte minst så kan vi aktivera IPSG (IP Source Guard) som skyddar mot IP och MAC-spoofing. IPSG bygger på DHCP-snooping vilket krävs för att IPSG ska fungera. IPSG kommer att titta på IP-trafiken och jämföra den med informationen från DHCP-snooping vilket innebär att all form av adress-spoofing elimineras.  

 
 
 

Nästan alla problem som beskrivits här går inte att lösa med brandväggar utan måste lösas på lager två. Glöm därför inte bort säkerheten på lager två, så slipper ni förhoppningsvis problem i framtiden. 


Jesper Nilsson