Antivirus og annen sikkerhetsprogramvare som man kan installere på blant annet Windows-baserte pc-er, strekker sine «fingre» langt dypere ned i operativsystemet enn det som er tilfellet for vanlig programvare. Dette gjøres blant annet for å kunne registrere endringer som skjer i systemet, både i minnet, via nettverket og på disken, noe som er nødvendig for å oppdage blant annet angrepsforsøk og ondsinnede filer.
På grunn av disse privilegiene er det ekstremt viktig at sikkerhetsprogramvaren i seg selv er sikker. Ellers kan de åpne for angrep som ellers ville være umulig eller langt vanskeligere å få til.
Forutsigbart
Denne uken kunngjorde Ensilo, et selskap som selv tilbyr sikkerhetsprogramvare – riktignok kun mot datatyveri, at det tidligere i år fant en type sårbarhet som berører i alle fall berørte tre antivirusprodukter – McAfee Virus scan Enterprise version 8.8, Kaspersky Total Security 2015 og AVG Internet Security 2015 – fra tre helt forskjellige leverandører.
Felles for disse produktene var at de allokerte en minneside med tillatelser til lesing, skriving og kjøring (RWX) på en konstant, forutsigbar adresse. Denne allokeringen forekommer ifølge Ensilo for ulike «user-mode»-prosesser som tilhører tredjepartsprodukter, inkludert nettlesere.
Dette kan gjøre det betydelig enklere å utnytte sårbarheter som finnes i disse tredjepartsproduktene, fordi angriperen ikke behøver å omgå sikkerhetsfunksjonalitet som DEP (Data Execution Prevention) og ASLR (Address Space Layout Randomization), som er innebygd i Windows. Dermed kan sårbarbarhetene potensielt brukes til å kompromittere det underliggende Windows-systemet.
I løpet av perioden mars til september i år har den aktuelle sårbarheten blitt fjernet fra alle de tre produktene. Men fordi dette er en type programmeringsproblem som har blitt gjentatt av flere antivirus-produkter, så mener Ensilo at det er sannsynlig at sårbarheten også kan opptre i annen, «inntrengende» programvare, også i produkter som ikke oppfattes som sikkerhetsrelaterte.
Testverktøy
Ensilo har utgitt et enkelt verktøy for Windows som skal kunne fortelle om en brukers system er berørt av denne sårbarheten. Verktøyet skanner adresserommet til alle åpne nettleserprosesser for å se etter minneområder med RWX-tillatelser. Verktøyet avhenger av at nettleseren er åpen med minst to faner, deretter lukkes, for så å åpnes igjen med minst to faner.
Dersom slike minneområder blir funnet, vil verktøyet oppgi disse, sammen med detaljer om berørte nettleserprosesser. Dermed kan brukeren vite om systemet er sårbart.
Men verktøyet forteller ikke hvilken produkt som minneregionen egentlig tilhører. For å finne ut dette, kan man for eksempel ta i bruk en debugger for å se hva minneregionen inneholder. Ifølge Ensilo vil man i denne regionen normalt kunne finne et DLL-navn eller adressen til den relevante modulen.
Flere detaljer om både verktøyet og sårbarheten finnes her.