I første del af "Har du styr på din infrastruktur?", kiggede jeg lidt på bl.a. logning, backup, overvågning og management. Hvis du ikke har læst denne, så anbefaler jeg dig at tage et kig her. I denne del vil jeg beskæftige mig med en række andre områder, der kan gøre jeres infrastruktur endnu mere robust og ikke mindst mere sikker.
Patch Management
En af de helt store risikoområder for en virksomhed er ikke-opdateret software. Det gælder for både klienter og servere. Nogle undersøgelser påstår, at op imod 75% af sikkerhedshændelser kan tilskrives ikke opdateret software. Dette vidner om, at det er uhyre vigtigt for ens samlede forsvar at have en procedure for opdatering af software.
Med henblik på klienter, så er det især Java og Adobe Flash der angribes oftest. Man kan med fordel vurdere, om det overhovedet er nødvendigt at have disse installeret på klienterne. Tidligere var Java eksempelvis nødvendig i forbindelse med Netbank, men dette er i de fleste tilfælde ikke længere nødvendigt - Java kan således afinstalleres. Hvad angår Adobe Flash, så kan en alternativ PDF viewer være relevant.
Risiko for at få virus, malware eller trojaner på klientens PC er stor, hvis ikke man afsætter resourcer til jævnligt at opgradere. Et eksempel på angreb mod klientens PC er Spear-phishing Attacks. Her forsøger man bl.a. via emails at få klienter til at klikke på links til ondsindede hjemmesider. En anden type angreb er Drive-by Download, der inficerer klienterne, hvis de surfer ind på ondsindede sider eller via reklamer på store, etablerede sider. Eksempelvis blev en dansk avis ramt af sidstnævnte, da deres hjemmeside blev inficeret med ondsindede reklamebannere. Et andet eksempel er Spotify, som for nyligt distribuerede malware i deres gratis, reklamebaserede udgave via netop ondsindede reklamer. Fælles for de fleste af angrebene er, at de udnytter forældet software.
Du bør også sørge for at automatisere opdateringer mest muligt. Erfaringen viser, at man ikke kan forvente, at brugerne selv gør dette. Dette gør sig også gældende for servere, dog er det vigtigt at opveje det mod evt. risiko for driftsproblemer. Enkelte services og applikationer tillader muligvis ikke automatisk opdatering. Under alle omstændigheder bør man udarbejde en oversigt over, hvilke services man anvender, og en opdateringspolitik hertil. Det er også muligt at anskaffe deciderede programmer, der kan hjælpe med at udrulle software og opdateringer.
The principle of least privileged
I fortsættelse af 'patch management', så kan man med fordel kigge på rettigheder, herunder administrative adgange. Som udgangspunkt burde enhver bruger på ens infrastruktur kun have "least privileged" adgang. Med andre ord, så skal man kun have så mange rettigheder som ens funktion kræver. Der er eksempelvis ingen grund til at alle virksomhedens brugere kan se regnskabs-, personale- og udviklingsdokumenter på netværksdrevet eller logge på de forskellige servere. Det samme gælder for brugerens egen maskine. Ofte har ens egen bruger lokale administrationsrettigheder, så brugeren kan installere programmer m.m. Det betyder også, at hvis en bruger får malware ind, eksekveres denne som lokal administrator og får dermed fuld adgang. Hvis brugeren derimod kun havde haft brugeradgang, så er det tvivlsomt, at angrebet ville være succesfuldt, da en almindelig bruger ikke kan installere programmer eller lave ændringer på systemniveau. Så anbefalingen er, at hver enkel bruger kun har almindelige brugerrettigheder til det daglige arbejde, og at man så har en ekstra lokal administrator-bruger, der udelukkende anvendes ifm. installation af programmer og systemændringer.
Unødvendige services og applikationer
Som nævnt tidligere, så er Java - hvis muligt - en åbenlys kandidat for afinstallation. Helt overordnet burde man kigge på, hvilke services og applikationer, der kører på hhv. klienter og servere. Alle unødvendige services og applikationer bør afinstalleres, så angrebsfladen minimeres mest muligt. En anden fordel heraf er, at færre ting skal opdateres/patches.
Nu har jeg snakket en del om patchning af bl.a. servere samt afinstallation af unødvendige services. I forbindelse hermed kan man også overveje at foretage scanninger og/eller penetration tests af de services, man eksponerer mod eksempelvis internettet. Scanningerne er med til at afklare, hvilke services der står åbne. Pentesten går lidt dybere og undersøger patchniveau, fejlkonfigurationer, bugs i de kørende services etc.
Segmentering af netværk
Det anbefales at segmentere sit netværk i mindre dele for at højne sikkerheden på det. Netværket deles som minimum op i et LAN (Local Area Network - internt miljø) og en DMZ (Demilitarized Zone), hvis man tilbyder services til mindre sikre zoner så som internettet. Altså, hvis man f.eks. har en web-/ftp-/mail-server, så skal denne stå i en DMZ, der er adskilt fra LAN. Årsagen hertil er, at hvis en af de ekstern vendte servere bliver kompromitterede, så er der ikke direkte adgang til LAN.
Man kan med fordel segmentere yderligere. Det kan gøres i forskellige DMZ zoner, men også af LAN. Der er eksempelvis ingen grund til, at både klienter og servere står på samme LAN segment. Igen, så er det primært af sikkerhedshensyn, men også pga. stabilitet og performance. Hvis en klient rammes af en virus, så bør det undgås at denne spreder sig til serverne. Det giver også god mening, at klienter ikke nødvendigvis kan tilgå alle serverne på alle porte direkte. Det kan være idé kun at give dem adgang til en frontend server og ikke den bagvedliggende database server. Selve segmenteringen foretages normalt ved hjælp af en firewall, hvor der kun åbnes for det absolut nødvendige.
Udover en eller flere DMZ og LAN zoner, så kan man med fordel også lave f.eks. et management segment. Dermed kan man lukke adgang til bl.a. servere, routere, firewalls m.m. ned til kun dette management netværk. Igen, så er formålet at minimere risiko for at uautoriserede får adgang til kritiske ressourcer. Når administratorerne skal tilgå de forskellige ressourcer gøres dette via jumphosts, som står på management netværket. Derudover kan man også placere evt. SNMP, management, configurations-backup, overvågning m.m. på management netværket.
Det samme gør sig gældende for eksempelvis wifi og gæstenetværk. Som udgangspunkt skal disse ikke forbindes direkte til LAN. Man bør overveje kun at give disse netværk internetadgang. Dermed kan gæster tilgå deres eget firma (modtage mails m.m.), men ingen interne ressourcer. Hvis egen ansat skal kunne tilgå interne ressourcer gøres dette via klient VPN. At man skal starte en VPN-session op, når man befinder sig på wifi, kan måske være en gene i dagligdagen - i så fald kan man overveje en certifikatbaseret 802.1x løsning. Dette vil i givet fald betyde, at interne klienter med gyldigt certifikat automatisk kommer på et internt netværk, mens gæster uden gyldigt certifikat bliver placeret på et gæstenetværk. Dette kan implementeres både på kablet samt på wifi netværk. Det skal dog siges, at det kan være en større opgave at implementere en 802.1x løsning alt efter eksisterende infrastruktur.
Når vi nu taler om segmentering af netværk, så er det også vigtigt at nævne begrebet IoT (Internet of Things). IoT er "det nye sort", men det medfører desværre en stor sikkerhedsrisiko. Efterhånden bliver alt fra køleskabe, radiatorer, lyspærer til medicinflasker koblet på internettet. Det er selvfølgelig smart, at man kan styre enhederne via internettet/telefonen, men det har desværre vist sig at producenterne ofte ikke tænker på sikkerhed, når produkterne udvikles. Her tænker jeg eksempelvis på dårlig implementation af kode, hardcoded admin passwords (seneste eksempel er Sony overvågningskameraer), dårlig eller endda ingen mulighed for firmware opgradering, ingen mulighed for at begrænse adgang til enhederne mv. Brugerne selv har måske heller ikke den nødvendige ekspertise til at holde alle IoT devices up-to-date. Dette har medført, at utallige IoT devices ryger i de forkerte hænder, hvor de anvendes som zombies i et botnet eller som springbræt til at tilgå resten af virksomhedens/hjemmets netværk. Søg selv på nettet efter "iot botnet", "iot ddos" eller "mirai" for at læse mere om dette - nogle af de største DoS/DDoS angreb nogensinde skyldes IoT botnets. Denne udvikling vil desværre nok kun forværres over de næste år. Derfor er det vigtigt, at IoT devices placeres på et lukket segment, så der ikke er mulighed for at bruge evt. kompromitterede enheder til at angribe resten af netværket. Desuden bør man overveje, i hvilket omfang dette segment har behov for internetadgang og begrænse dette til det absolut nødvendige.
Two-factor Authentication
Når brugerne logger på hjemmefra eller ude hos kunder, så anbefales det at anvende en klient VPN-løsning. Dette anbefales, så man har bedre styr over, hvem der logger på ens ressourcer, samt at trafikken er krypteret. Dette er især vigtigt, hvis man logger på usikre netværk som f.eks. på hoteller, lufthavne, caféer mv., som ofte udnyttes af folk med onde hensigter for at lave "Man in the Middle" attacks.
I "gamle" dage anvendte man ofte IPSec for at kryptere klient VPN trafikken, nu er man gået over til SSL som kryptering. Sidstnævnte har den fordel, at hvis man er ude hos f.eks. kunder, så er det ikke sikkert, at der er åbent for IPSec trafik i kundens firewall, hvorimod SSL kryptering, som også anvendes til HTTPS trafik, normalt altid står åbent.
For at øge sikkerheden i klient VPN-løsningen anbefales det at anvende two-factor authentication. Så udover at have et gyldigt brugernavn og password skal man indtaste en ekstra kode. Denne generes eksempelvis via en applikation på brugerens telefon eller via en hardware token. Det betyder, at selvom ens brugernavn og password er opsnappet, så kan de ikke misbruges til at logge på virksomhedens netværk, da man også skal bruge koden fra telefonen. Det skal nævnes, at selv for en mindre virksomhed med et begrænset IT-budget, så er der ingen grund til ikke at implementere two-factor authentication. Der findes gratis versioner af softwaren, som håndterer selve two-factor delen. Så det er kun selve serveren, hvorpå softwaren kører, man skal anskaffe - og det behøver ikke at være en stor server. Jeg har set det køre på en Raspberry Pi eller en Intel NUC. En anden fordel er, at samme telefonapplikation også kan anvendes på sider som f.eks. Facebook, LastPass, Gmail m.fl.
Next-Generation Firewalls (NGFW)
Historisk set er en firewall en enhed som styrer adgangen til virksomhedens ressourcer på baggrund af IP-adresser og porte. For de tekniske, så fungerer disse firewalls til og med lag 4 i OSI modellen. Tiden er dog ved at løbe ud for de traditionelle port-baserede firewalls, og de bliver afløst af de mere avancerede Next-Generation Firewalls, der fungerer op til lag 7 i OSI modellen. Nogle af funktionerne for en Next-Generation Firewall er:
|
|
Jeg vil ikke gå i dybden med alle disse funktioner i dette indlæg, men blot kort omtale nogle af dem. Den første er application awareness. I en traditionel firewall kan man måske tillade, at virksomhedens medarbejdere går på internettet via HTTP (80/tcp) og HTTPS (443/tcp). Mulighederne for yderligere styring og inspektion er begrænsede. En NGFW giver mulighed for at kigge ned i selve webtrafikken og på baggrund af virksomhedens policy styre, hvad er tilladt og hvad ikke er. Et eksempel er, at man gerne vil tillade medarbejderne adgang til Facebook, men ikke ønsker at de skal kunne anvende Facebook-chat og -spil.
En anden funktion er IP reputation og web filtering. Her vil firewallen begrænse medarbejdernes adgang til sider, som er kendt for at sprede malware og virus - altså adgangen begrænses automatisk baseret på sidernes "omdømme". Dette kan også anvendes, hvis man ønsker at begrænse medarbejdernes adgang til sider baseret på kategori eksempelvis pornografi, fildeling eller gambling. Andre NGFW features er automatisk antivirus inspection af filer som medarbejderne downloader, begrænsing af hvilke typer filer medarbejdere kan sende ud af virksomheden (beskyttelse af virksomhedens data), intrusion detection og protection m.fl.
Det er dog ikke kun "lutter lagkage" med NGFWs. Det kan vise sig, at ens eksisterende firewall ikke kan opgraderes til en NGFW, og dermed skal der indkøbes en ny. Nogle af ovenstående features er licensbaseret, hvilket medfører en løbende licensudgift. Nogle af funktionerne er også ret CPU intensive, som f.eks. SSL inspection. Så det vil ofte ikke være muligt at slå alle funktioner til og samtidig forvente at få en masse data igennem. Der skal altså lidt planlægning til for at få mest ud af investeringen, men når det er sagt, så giver en NGFW mulighed for at beskytte virksomheden bedre, end det tidligere var muligt. Mulighederne for rapportering og indsigt i virksomhedens data er også væsentligt forbedret.
Fysisk sikkerhed og Social Engineering
Nu har jeg indtil videre fokuseret på soft- og hardware, men når man taler om at have styr på virksomhedens infrastruktur, så kan man ikke nøjes med dette. Helt basale ting som fysisk sikkerhed og uddannelse af medarbejderne er helt essentielle, når man taler om sikkerhed. En stor del af sikkerhedsincidents i en virksomhed kan nemlig tilskrives medarbejdernes manglende uddannelse eller årvågenhed. De fleste virksomheder har nogenlunde styr på alarmer, adgangskortlæser m.m., men hvad hvis kode til alarmen aflures og adgangskort kopieres? Koden kan aflæses, hvis man ikke dækker for keypads, og et adgangskort kan kopieres blot ved at passere det med en scanner. Prøv eksempelvis at lægge mærke til, hvor mange folk der har deres virksomheds adgangskort hængende frit fremme, når de er ude at handle. Med det rette udstyr kan det kopieres blot ved at "bumpe" ind i det løst hængende kort.
Hvad med tailgating? Spørger dine medarbejdere om hvem vedkommende med de mange pakker er, og hvad vedkommendes ærinde er, eller er de flinke og blot holder døren? Sørger de for at gæster altid er under opsyn? Det at mennesker per natur forsøger at være venlige og hjælpsomme, udnyttes ofte af hackere (den korrekte betegnelse er cracker, men hacker er nok den betegnelse de flest mennesker bruger) til at skaffe sig adgang til områder og systemer. Blot 1-2 minutter er nok til at installere malware/trojaner på ubeskyttede maskiner. Disse behøver ikke nødvendigvis at stå åbne (du husker vel altid at låse din maskine når du forlader den, ikke?) for at kunne installere uønsket software. Det er muligt at tilkoble f.eks. en Raspberry Pi eller USB drive med speciel software til computerens USB port og denne vil, selv om computeren er låst, stadigvæk installere malwaren. Medarbejdere skal også informeres om, at man f.eks. ikke må sætte fremmede USB-nøgler i ens udstyr. Hackere udnytter også med stor succes, at mennesker per definition er nysgerrige. For nyligt blev der lavet et forsøg, hvor 297 USB-nøgler blev smidt rundt omkring på et universitetsområde. USB-nøglen indeholdt noget "malware" som blot "ringede hjem" hvis den blev sat i en maskine. Af de 297 USB-nøgler som blev "tabt", blev 45% sat i maskiner.
Som nævnt, så udnyttes netop menneskers svagheder for at trænge ind i netværk og virksomheder, enten fysisk eller virtuelt. Dette kaldes også for Social Engineering. Medarbejderne skal altså opdrages til at være mere mistænksomme. De skal ikke åbne vedhæftede filer fra ukendte afsendere, passe på med at åbne vedhæftede filer fra kendte afsendere, aldrig udlevere brugernavn og password via mails eller telefonopkald og hvis de går på sikre sider skal de være sikre på at adressen er korrekt osv. Det er nogle af de gængse regler. Generelt skal man gøre brug af den sunde fornuft og sørge for at have gode procedurer i virksomheden. Sørg også for at uddanne medarbejderne i virksomhedens procedurer og best-practices og sørg for at holde det opdateret. Husk på, at mange af en virksomheds sikkerhedsbrud kan tilskrives medarbejderne, om det så er i god eller ond tro.
Denne video er faktisk ret interessant og viser et eksempel på, hvor let social engineering kan være: https://www.youtube.com/watch?v=lc7scxvKQOo
Dette var lidt om sikring af virksomhedens infrastruktur. Listen er langt fra udtømmende, og den er kun behandlet på et overordnet niveau. Jeg vil ikke afvise, at jeg på et senere tidspunkt inspireres til at skrive mere. Forhåbentligt kan disse indlæg dog være med til at give lidt inspiration til, hvor netop I kan forbedre sikkerheden på jeres infrastruktur. Jeg er klar over, at alle disse handlinger ikke kan implementeres fra én dag til en anden, men så må man tage dem lidt ad gangen. Husk dog på, at sikkerhed ikke er statisk og løbende skal evalueres og tilpasses.
Hvis I sidder tilbage med nogle tvivlsspørgsmål, så er I meget velkommen til at kontakte os.