Daily Archives

One Article

Powershell/Sikkerhet

Noen tanker rundt sikkerhet, Powershell og skuespill

Posted by ragnar harper on

Det er med forundring jeg iaktar sikkerhetsteateret som fortsatt spilles i programvareindustrien. For eksempel selges kryptering fortsatt som en magisk formel som sikrer sikkerhet, og jo større nøkkellengde, jo bedre. De matematiske egenskapene som krypteringen hviler på er sjelden de reelle utfordringene som sikkerheten faktisk møter. Det er i selve implementeringen av sikkerhet at vi feiler. I implementeringen av kryptering – ikke i det matematiske grunnlaget for kryptering. Det spiller derfor sjelden en stor rolle om krypteringen er 128, 256 eller 512 bits – så lenge man kan gå rundt.

Om du låser døra med verdens beste låser – hva betyr vel det så lenge du lar vinduet stå åpent?

Sagt på en annen måte, det hjelper ikke hvor tykk døra er når vinduet står åpent.

Det er lett å glemme , men uansett like viktig, at sikkerheten aldri blir bedre enn det dårligste leddet i en kjede av elementer. I den virkelige verden er det enda lettere å faktisk oppdage at vinduet står oppe, enn det er i den virtuelle verden.

I den virkelige verden hvor man har behov for høy sikkerhet er det mange problemstillinger som ødelegger muligheten for maksimal sikkerhet. Elementer som brukervennlighet, bakoverkompabilitet og ytelse kommer ofte, eller alltid, foran sikkerhet.

Istedet konsentrerer vi sikkerhet rundt et teaterstykke, hvor vi “føler” oss trygge. Vi skaper en illusjon om at noe er sikkert. I programvare versjonen av dette teaterstykket er begrep som nøkkellengde viktig. Andre ting vi føler er utrygt er hashingalgoritmer, på grunn av “birthday” syndromet som disse har. Vi gidder ikke ta innover oss den faktiske reelle betydningen av problemstillingene, da disse ikke passer inn i teaterstykket.

For å kunne vurdere elementer mot hverandre er av vi avhengige av måleparametre. Dette gjelder også sikkerhet. Vi ønsker å måle den eksakte graden av sikkerhet, slik at dette kan være med i vår vurdering. I denne hunger etter falsk informasjon, blir det gjort snarveier. En av disse er at nøkkellengden og algoritmen benyttet til kryptering er en sannferdig beskrivelse av sikkerheten i ett system. Dette er kun for markedsføring, og har ingen reell betydningen for den faktiske sikkerheten en løsning innehar. Ok, la oss fortsette til det jeg egentlig ville skrive om:

En av de andre stykkene som spilles på dette teateret er av leverandører av sikkerhetsprogramvare. Disse gjør desperate stunt for å si noe om sikkerheten til ett system, og prøver alt de kan for at du skal kjøpe disse forsvarsmekanismene. I sommer har dette tatt en forunderlig vending. På BlackHat konferansen i Las Vegas har to personer demonsterert hvordan Powershell er et kraftfullt shell for Windows. De har demonstrert at dette shellet også kan utnyttes for ondsinnede handlinger. De ser styrken i Powershell, og demonsterer at man kan gjøre farlige kommandoer med automatisering. Foredragsholderne har en ganske edruelig holdning til Powershell og sikkerhet – men det gjøres ett par stunt for å få deltakere til sesjonen.

En sikkerhetsleverandør (hvis navn ikke skal nevnes her) demonstrerer nå sin kraftige inkompetanse på sikkerhet generellt og Powershell spesiellt. De hevder at det er utgikk en “0-day exploit” for Powershell, og at de sikrer mot denne. I tillegg beskriver de “ExecutionPolicy” i Powershell som en sikkerhetsteknologi – noe det aldri har vært, og aldri tillagt egenskapen som fra Microsoft. ExecutionPolicy i Powershell er en flott løsning for å unngå kjøring av ad-hoc script ved en misforståelse. ExecutionPolicy hindrer deg ikke i å kjøre kommandoer – kun rettigheter i systemet nekter deg det. Selv om du har ExecutionPolicy satt til “Restricted”kan du kjøre en hvilken som helst kommando – dog får du ikke startet og kjørt .ps1 filer direkte fra kommandolinjen. Det betyr at alle kommandoene i scriptet kan kjøres, og du kan ganske enkelt laste inn alle kommandoene i en fil, og utføre denne, linje for linje med for eksempel Invoke-Expression cmdlet.

Alle som har satt seg nogenlunde inn i Powershell har fått med seg dette. Man skulle anta att en sikkerhetsleverandøre som leverer sikkerhet som også “omfatter” Powershell, også hadde tatt seg bryet med å forstå grunnleggende elementer av Powershell.

Problemet er at mange leser kun overskrifter av det som skrives på Internett – og – ikke bli overrasket nå – tror på det de leser.Selv om en hel artikkel er feil, kan denne lett referes til som en sannhet. Det provoserer når noen søker å selge produkter du ikke trenger, for å beskytte deg mot en trussel som ikke finnes. Mange selskaper som selger sikkerhet selger sikkerhetsprodukter du ikke trenger, fordi du tenker “det skader ikke å være på den sikre siden”. Men hva er den sikre siden i slike tilfeller? Hva med risikoen slike programmer kan innføre i? Når ett selskap tar lett på sannheten, og ikke setter seg godt nok inn i det de søker å beskytte deg mot – hvor mye har de da å tilføre av sikkerhet med sine produkter?

Vi vil alltid erkjenne forsvarerens dilemma – som forsvarer må vi sikre og forsvare alle elementene i vår løsning. Som angriper derimot trenger vi å kun finne ett svakt punkt.

Desverre finnes det digitale kvakksalvere anno 2010 som selger deg noe du ikke trenger, ja, som faktisk kan gjøre ting værre.

Det er dessverre vanskelig for de som ikke jobber med sikkerhet og avdekke disse (faktisk også for de som jobber med sikkerhet).