NASJONAL SIKKERHETSMYNDIGHET Råd om verktøy som gir forbedret skadereduksjon EMET Enhanced Mitigation Experience Toolkit
02 INNHOLD Sammendrag 3 1 Skadereduksjon 5 1.1 SEHOP 5 1.2 DEP 5 1.3 Heapspray-allokering 5 1.4 ASLR 5 1.5 EAF 5 1.6 ROP Skadereduksjon 7 1.7 ASR 7 1.8 Avanserte skadereduksjoner 7 2 Certificate Trust 7 3 Rapportering 8 4 Operativsystemer og andre krav 8 5 Distribuere EMET 9 6 Konfigurere EMET 9 6.1 Medfølgende profiler 9 6.2 Eksempler på regler 9 7 Installasjon 10 8 Merknader 10 8.1 Systemspesifikke innstillinger 10 8.2 Applikasjonsspesifikke innstillinger 10 9 Oppsummering 11 10 Kilder 11
03 SAMMENDRAG EMET er et verktøy for Windows som hindrer utnyttelse av sårbarheter i operativsystem og applikasjoner. EMET fungerer annerledes enn et antivirusprodukt. Verktøyet hindrer skadevare å utnytte sikkerhetshull. Dette ved å blokkere, hindre og ugyldiggjøre selve teknikkene som blir brukt. Teknikkene som brukes av skadevare for å installere seg selv er ofte de samme. EMET fanger opp og hindrer systemkall som skadevaren utnytter. Verktøyet vil kunne bidra til å forhindre utnyttelse av også ukjente sårbarheter som ikke fanges opp av antivirus. Trusselnivået øker og stadig nye sårbarheter dukker opp. Sikring av den digitale infrastrukturen blir stadig viktigere og mer omfattende. Det er essensielt å ha de rette sikkerhetstiltakene i orden. Da er det bra med flere ben å stå på. EMET er et supplerende sikkerhetstiltak i tillegg til antivirus, brannmur og andre viktige sikkerhetsmekanismer. Når nye sårbarheter oppdages er det viktig å gjøre sikkerhetsoppdateringer så raskt som mulig for å hindre angrep. EMET kan bidra til at sårbarheten ikke blir utnyttet selv om det ikke finnes en oppdatering. Denne artikkelen vil ta for seg versjon 4.1 og 5.0 Technichal Preview (TP). Sistnevnte bør kun brukes i testmiljøer inntil versjon 5.0 av EMET er endelig, da det har blitt rapportert om stabilitetsproblemer på denne versjonen.
05 ET PAR VIKTIGE TING Å HUSKE EMET er et supplement til eksisterende sikkerhetsløsninger. EMET er ikke et antivirusprodukt, og bør KUN brukes sammen med antivirus. EMET kan ikke erstatte oppdateringer til et system. Man bør holde programvare og maskinvare oppdatert, samt installere oppdateringer. 1 SKADEREDUKSJON Denne delen vil ta for seg de ulike skadereduksjonene (mitigation) EMET støtter og hvilken beskyttelse de tilbyr. I dette dokumentet vil vi kun gi en overordnet oversikt over hva disse skadereduksjonene er. 1.1 SEHOP Structured Exception Handler Overwrite Protection (SEHOP) er en skadereduksjon som beskytter mot den mest vanlige teknikken for utnyttelse av minnet (stack overflows) i Windows. Denne skadereduksjonen har vært tilgjengelig i Windows siden Vista Service Pack 1. I Windows 7 og senere versjoner har det blitt mulig å slå skadereduksjonen av og på per prosess. 1.2 DEP Data Execution Prevention (DEP) har vært tilgjengelig siden Windows XP og forhindrer kjøring av kode fra dataområdet i minnet. Uten EMET installert kan en angriper hoppe direkte til en minnelokasjon der det finnes kjørbar kode, for eksempel i heapen eller stacken. Med EMET og DEP skrudd på vil kjøring av kode i heapen og stacken være umulig. Det vil fortsatt være mulig å kjøre kode fra minneområder som er egnet til dette. 1.3 HEAPSPRAY-ALLOKERING Når en sårbarhet utnyttes vet ikke angriper hvor i minnet kjørbar kode er plassert og må gjette for å få kontroll over instruksjonspekeren. For å øke sannsynligheten for å treffe på gjetningen, bruker angriper ulike heapspray-teknikker for å kopiere kjørbar kode til så mange minnelokasjoner som mulig. Med EMET påslått vil dette forebygges til et visst nivå. 1.4 ASLR Mandatory Address Space Layer Randomization tilfeldiggjør hvor moduler er lastet i minnet, slik at data ikke kan utnyttes av angriper ved at dette ligger på åpenbare lokasjoner. Angriper bruker for eksempel Return oriented programming (ROP) til å finne moduler på åpenbare lokasjoner, men får ikke gjort dette hvis EMET er aktivert, da hver modul blir tildelt en tilfeldig adresse for hver prosess. 1.5 EAF Shellkode trenger som oftest å kalle på forskjellige Windows API (applikasjonsprogrammeringsgrensesnitt) for å gjøre noe nyttig. Først og fremst må shellkoden finne adressene til APIene for så å gjøre
06 Figur 1: utsnitt av EMET sitt grafiske grensesnitt Figur 2: EMETs grafiske konfigurasjonsgrensesnitt
07 kall mot dem. For å finne frem til de nyttige APIene går shellkoden gjennom eksporttabellen for alle lastede moduler. Export Address Table Access Filtering (EAF) filtrerer tilgang til Export Address Table (EAT), altså tabellen for lastede moduler, basert på hvilke kall som blir gjort. EMET vil i dag blokkere stort sett all shellkode som prøver å finne frem til APIer. 1.6 ROP SKADEREDUKSJON Return oriented programming (ROP) er en utnyttelsesteknikk som gjør det mulig å kjøre kode selv om DEP er aktivert gjennom EMET. Derfor trengs det såkalt ROP-skadereduksjoner, som listet under: Load library checks: EMET vil overvåke alle kall til LoadLibraryAPI og vil forhindre lasting av biblioteker fra UNC-stien (f.eks. \\ondside\ond. dll). Det er mulig å slå av denne hindringen hvis en vet at programmet legitimt laster bibliotekfiler fra UNC-stien eller servere. Memory protection checks: Det at stack-området i minnet er kjørbart, gjør at angriper kan benytte shellkode og ROP-verktøy til å kjøre skadevare. EMET forhindrer kjøring av kode i stack-området. Caller cheks: Når en kritisk funksjon skal kalles, skal denne kalles gjennom en legitim systeminstruksjon med EMET påslått. Denne skadereduksjonen er nyttig og stopper mange ROP-verktøy. Simulate execution flow: Denne skadereduksjonen prøver å detektere ROP-verktøy som prøver å kalle på en kritisk funksjon. Caller cheks og Simulate execution flow er inkompatible med noen programmer. Stack pivot: skadereduksjonen vil detektere hvis det blir pekt/har blitt pekt mot angripers data i stacken. Denne kan være inkompatibel med noen programmer, men vil i de fleste tilfeller fungere som den skal. 1.7 ASR Attack Surface Reduction (ASR) er en skadereduksjon som kan bli brukt til å blokkere bruken av spesifikke moduler eller plugins i ulike applikasjoner. Et eksempel er at EMET kan forhindre at Flashplugin blir lastet i Microsoft Word. Merk at ASR kun blokkerer moduler og plugins hvis man bruker Micorsoft Word/Excel eller Internet Explorer. Denne skadereduksjonen ble introdusert i EMET 5.0 TP. 1.8 AVANSERTE SKADEREDUKSJONER Det finnes mer avanserte skadereduksjoner for ROP og EAF. Disse kan leses om i EMETs brukerveiledning for versjon 5.0 [2]. I denne veiledningen finnes det også mer avanserte beskrivelser av de skadereduksjonen som er nevnt tidligere. 2 CERTIFICATE TRUST Et av de mer spennende tilleggene i EMET fra og med versjon 4.0 er det som kalles «certificate trust». Dette er en mekanisme som skal forhindre «man-inthe-middle»-angrep, altså angrep hvor en tredjepart lytter på forbindelsen. Konseptet bak «certificate trust» er å godkjenne kjeden av SSL-sertifikater, slik at sertifikatet til en nettside fører tilbake til det forventede rot-sertifikatet. Dette er avhengig av hvordan man har konfigurert sertifikatene. Dersom et avvik oppstår og man ikke kan spore sertifikatet tilbake dit man forventer, er det viktig å merke seg at EMET ikke vil bryte forbindelsen eller forhindre den, men kun gi beskjed om at et avvik har blitt registrert. «Certificate trust» er kun tilgjengelig for Internet Explorer. Andre nettlesere som Google Chrome og Mozilla Firefox har implementert lignende mekanismer eller tilbyr dette i form av plugins.
08 3 RAPPORTERING EMET har en innebygd komponent for å kunne rapportere og loggføre hendelser, kalt EMET Agent. Denne komponenten starter automatisk ved oppstart og gjør følgende: Skriver hendelser til Windows Event Logg: EMET-hendelser blir loggført som tre typer hendelser: Information: Loggfører normale hendelser, slik som at EMET Agent starter opp. Warning: Brukes når EMET-innstillinger forandres, eller for å rapportere når «certificate trust» validerer et SSL-sertifikat basert på en regel. Error: Brukes for å loggføre hendelser der enten en utnyttelse har blitt hindret eller man har oppdaget et ikke-verifisert SSL-sertifikat. Viser viktige hendelser i verktøylinjen: Denne egenskapen gjør at EMET vil vise små pop-upvarsler på verktøylinjen når EMET stopper eller forhindrer en utnyttelse. Denne varslingen kan også enkelt skrus av. Utføre validering av sertifikater: SSL-sertifikater, rot-sertifikateter og knytnings-regler er håndhevet og validert når EMET Agentprosessen kjører, knyttet til «certificate trust». Sende rapporter for «Early Warning Program»: Ved oppdagelse av forsøk på utnyttelse vil EMET kunne sende en rapport til Microsoft om dette forsøket. Denne egenskapen kan enkelt skrus av dersom man ikke ønsker å sende varsel til Microsoft. 4 OPERATIVSYSTEMER OG ANDRE KRAV EMET 4.1 støtter følgende operativsystemer og servicepack-nivåer: Klient Windows XP SP3 og nyere Windows Vista SP1 og nyere Windows 7, alle SP Windows 8 Server Windows Server 2003 SP 1 og nyere Windows Server 2008, alle SP Windows Server 2008 R2, alle SP Windows Server 2012 EMET 5.0TP støtter følgende operativsystemer og servicepack-nivåer: Klient Windows Vista SP1 og nyere Windows 7, alle SP Windows 8 Windows 8.1 Server Windows Server 2003 SP1 og nyere Windows Server 2008, alle SP Windows Server 2008 R2, alle SP Windows Server 2012, alle SP Windows Server 2012 R2, alle SP Det er viktig å nevne at ikke alle skadereduksjoner støtter alle operativsystemer. SEHOP og ASLR er ikke kompatible med Windows Server 2003. På 64-bit systemer er noen applikasjonsspesifikke skadereduksjoner kun fungerende hvis det kjøres 32-bit prosesser. SEHOP og noen ROP- skadereduksjoner er ikke tilgjengelig når en kjører 64-bit prosesser (se brukerveiledning for oversikt[2]). Når det kommer til virtuelle maskiner har EMET støtte for dette også, men noen applikasjoner, som
09 Microsoft App-V og VMWare ThinApp, er ikke støttet. 5 DISTRIBUERE EMET EMET kan relativt enkelt distribueres i større skala (for større selskaper o.l.). I brukerveiledningen til EMET står det en utdypende punktliste om hvordan dette gjøres [2], for eksempel ved hjelp av System Center Configuration manager og Group Policy. 6 KONFIGURERE EMET Det er nødvendig å gjøre noe konfigurering etter at man har installert EMET. Man vil få spørsmål om man vil bruke de anbefalte innstillingene, eller om man vil konfigurere alt selv. Dersom man velger å konfigurere selv kan det da være lurt å spesifisere: Hvilke system skadereduksjoner som skal være påslått. Hvilke applikasjoner som skal være beskyttet med hvilke skadereduksjoner. Hvilke SLL/TLS-sertifikatregler som skal brukes. Velger man å bruke de anbefalte innstillingene under installasjonsveiledningen, vil de vanligste programmene man finner i Windows ha de anbefalte skadereduksjonene påslått. Disse applikasjonene er Office, WordPad, Internet Explorer, Java, Adobe Reader og Acrobat. I tillegg vil «certificate trust» for Microsoft og andre populære tredjeparts netttjenester være påslått, samt all rapportering. Ytterligere konfigurering av EMET og skadereduksjoner for applikasjoner man ønsker å bruke kan enkelt gjøres i grensesnittet eller på kommandolinje. Merk at «certificate trust» kun kan konfigureres i det grafiske grensesnittet. Dersom man vil ha en grundigere gjennomgang av hvordan man konfigurerer EMET så henvises det til EMET User Guide. 6.1 MEDFØLGENDE PROFILER EMET kommer med to profiler for beskyttelse av applikasjoner, og én for sertifikater («certificate trust»). Disse filene er XML-filer som inneholder forhåndskonfigurerte innstillinger for de mest brukte Microsoft- og tredjepartsapplikasjoner. Disse kan med fordel brukes som de er, eller brukes som et utgangspunkt for å lage nye profiler. Profilene kan enkelt importeres og eksporteres i det grafiske grensesnittet. Profilene som følger med EMET er: «Recommended Software.xml» Inneholder skadereduksjoner for støttede versjoner av Internet Explorer, WordPad, applikasjoner som er del av Microsoft sin Office-pakke, Adobe Acrobat 8-11, Adobe Reader 8-11, og Oracle Java 6 og 7. «Popular Software.xml» Inneholder skadereduksjoner for vanlige og populære applikasjoner, herunder Microsft Internet Explorer og Microsoft Office, i tillegg til flere andre applikasjoner som Google Chrome, WinAmp, Opera, Apple itunes, med flere. «CertTrust.xml» Regler for knytning av sertifikater til kjente sky-tjenester fra Microsoft, som Office 365 og Skype, i tillegg til andre populære webtjenester som Twitter, Facebook og Yahoo. Det er viktig å merke seg at enkelte applikasjoner ikke nødvendigvis er inkludert i XML-filene nevnt over. Derfor kan det da være hensiktsmessig å sjekke om en applikasjon som skal brukes er inkludert der, og hvilke skadereduksjoner som er anbefalt dersom man ikke ønsker å inkludere hele listen. For applikasjoner som ikke er nevnt i noen av XML-filene, må man selv vurdere hvilke skadereduksjoner man ønsker å benytte. 6.2 EKSEMPLER PÅ REGLER La oss ta en liten kikk på noen regler fra «Popular Software.xml», hvor vi først ser på en enkel regel som skrur på alle standard skadereduksjoner for
010 Internet Explorer: <Product Name= Internet Explorer > <Version Path= *\Internet Explorer\iexplore.exe /> </Product> Et mer avansert eksempel, hvor man skrur på alle skadereduksjoner med unntak av Mandatory ASLR, EAF og SEHOP for Windows Media Player. <Product Name= Windows Media player > <Version Path= *\Windows Media Player\wmplayer. exe > <Mitigation Enabled= false Name= MandatoryASLR /> <Mitigation Enabled= false Name= EAF /> <Mitigation Enabled= false Name= SEHOP /> </Version> </Product> Merk at dette kun er eksempler på hvordan man manuelt kan konfigurere skadereduksjoner for applikasjoner, alt kan konfigureres i det grafiske grensesnittet. Selve konfigurasjonen lagrer EMET i registeret under HKLM\Software\Microsoft\EMET\ 7 INSTALLASJON Som tidligere nevnt er EMET et offisielt gratisverktøy fra Microsoft. Det kan lastes ned fra nettsidene til Microsoft Technet[3]. I skrivende stund er 5.0 siste versjon. Installasjon gjøres ved å følge det grafiske grensesnittet. 8 MERKNADER Vi vil i denne seksjonen ta for oss noen ting som kan være verdt å merke seg, og som man bør tenke på når man skal begynne å bruke EMET aktivt. Dette er kun en oppsummering av enkelte ting man bør notere seg før man tar EMET i bruk, for mer informasjon henvises det til EMET manualen kapittel 5. 8.1 SYSTEMSPESIFIKKE INNSTILLINGER DEP: Når man konfigurerer EMET for å bruke DEP opsjonen, så vil dette endre en oppstartsopsjon for Windows. For systemer som benytter BitLocker, så vil dette gjøre at BitLocker oppdager at systemet oppstartsinformasjon har endret seg. Man blir da nødt til å skrive inn gjenopprettelsesnøkkel ved neste oppstart. Det er også verdt å notere seg at ikke alle systemer støtter DEP, dette inkluderer virtuelle systemer. Derimot så vil DEP være mulig å konfigurere på systemet selv om det ikke er støttet der. SEHOP: På Windows 7, og senere versjoner, er SEHOP implementert av operativsystemet. Av denne grunn så vil ikke EMET være i stand til å detektere skadereduksjonen. Operativsystemet vil derfor avslutte prosessen og deretter loggføre dette i eventloggen. ASLR: Det finnes en opsjon for å tvinge applikasjoner til å bruke ASLR, kalt unsafe ASLR. Denne opsjonen er ikke skrudd på som standard, dersom man vil teste dette så henvises det til Seksjon 4 i Microsoft sin manual til EMET. Vi gjør oppmerksom på at denne opsjonen kan gjøre systemer ustabile, og bør testes før den tas i bruk. Derimot så kjenner vi kun til at det har vært problemer med VirtualBox. 8.2 APPLIKASJONSSPESIFIKKE INNSTILLINGER DEP: Ikke alle systemer støtter DEP, dette inkluderer også virtuelle systemer. Derimot så vil denne opsjonen være tilgjengelig selv om EMET kjører på et system som ikke støtter DEP. SEHOP: Enkelte applikasjoner på Windows Vista, og nyere, er ikke kompatible med EMETs SEHOP. I dette tilfelle kan det være mer hensiktsmessig å skru av SEHOP for den enkelte applikasjon i EMET og heller bruke system skadereduksjonen SEHOP. EAF: Systemer som har blitt konfigurert med feilsøkingsopsjonen trenger å ha en feilsøking kjørende når man kjører applikasjoner med EAF skrudd på. Dersom man har en applikasjon som har blitt konfigurert med feilsøkingopsjonen skrudd på og man kjører uten en feilsøking hender det at systemet ikke reagerer
011 når man starter en applikasjon som bruker EAF. Mandatory ASLR: For Windows XP og Server 2003 vil denne skadereduksjonen ha liten effekt, dette på grunn av måten minnet blir satt opp for prosesser på disse plattformene. 9 OPPSUMMERING Vi har i denne artikkelen sett nærmere på EMET, og hvordan EMET kan bidra til å forhindre utnyttelse av kjente og ukjente sårbarheter på et Windowssystem. Det er viktig å bemerke seg at EMET kun er et supplement til eksisterende sikkerhetsprodukter, slikt som antivirus og et godt sikret nettverk, og at EMET ikke skal brukes som et frittstående sikkerhetsprodukt. EMET kan heller aldri erstatte oppdateringer til et system, oppdateringer bør alltid installeres så fort som mulig. Man bør derfor forsøke å holde både program- og maskinvare så oppdatert som mulig. Dette er spesielt viktig når man vet at det finnes sårbarheter som utnyttes aktivt av aktører med onde hensikter. Administrerer man et system med flere brukere bør man ha et klart skille mellom brukere og systemadministratorer. Dette er spesielt viktig siden flere av sårbarhetene som utnyttes, vil ved vellykket utnyttelse kunne gi angriper samme rettigheter som den kompromitterte brukeren. I tillegg bør man blokkere kjøring av ikke autoriserte programmer, slik at brukere kun kan kjøre autoriserte programmer.[5][6] Vi vil også minne om andre veiledninger for sikring av systemer og nettverk utgitt av NSM, U-01 Grunnleggende tiltak for sikring av ugradert Windows 7[4], S-01 Fire effektive tiltak mot dataangrep og S-02 Ti viktige tiltak mot dataangrep. Alle systemtekniske veiledninger fra NSM: https://www.nsm.stat.no/publikasjoner/regelverk/veiledninger/veiledning-for-systemteknisk-sikkerhet/ 10 KILDER À À À À À À À À À À [1] http://blogs.technet.com/b/srd/archive/2013/06/17/emet-4-0-now-available-fordownload.aspx [2] http://www.microsoft.com/en-us/download/ details.aspx?id=41963 [3] http://technet.microsoft.com/en-us/security/ jj653751 [4] https://www.nsm.stat.no/publikasjoner/regelverk/veiledninger/veiledning-for-systemteknisk-sikkerhet/ [5] S-01: Veiledning fra NSM, «Fire effektive tiltak mot dataangrep» À À [6] S-02: Veiledning fra NSM, «Ti viktige tiltak mot dataangrep»
012 Se også NSMs FIRE EFFEKTIVE TILTAK MOT DATAANGREP 1. Oppgrader program- og maskinvare. 2. Vær rask med å installere sikkerhetsoppdateringer. 3. Ikke tildel sluttbrukere administrator-rettigheter. 4. Blokker kjøring av ikke-autoriserte programmer Last ned hele veiledningen her: https://www.nsm.stat.no/globalassets/dokumenter/veiledninger/systemteknisk-sikkerhet/s-01-fire-effektive-tiltak-mot-dataangrep.pdf
013
NASJONAL SIKKERHETSMYNDIGHET NorCERT - Operativ avdeling Postboks 814 1306 Sandvika post@cert.no www.cert.no