Osäkra laddningar av dynamiska bibliotek

De senaste dagarna har Internet surrat om att ett stort antal program är sårbara för en så kallad 0-day sårbarhet (zero-day eller oh-day [:deɪ]), dvs. en sårbarhet som hittills varit okänd och saknar uppdatering (patch).  Bland annat har HD Moore (mest känd som skapare av Metasploit attack-ramverk) noterat ett 40-tal applikationer är sårbara. Acros Security meddelade att dom kände till åtminstone 200 sårbara applikationer.

Den senaste informationen från Microsoft är att dom inte tänker lösa problemet (!), i alla fall inte just nu. Istället det är upp till varje leverantör att uppdatera och skydda sina program. Microsoft kommer kanske att fixa denna bugg i ett framtida servicepack, men har inte gett några garantier för detta.

Jag har undersökt grunderna till problemet och har kommit fram till att det är inte något nytt problem i sig, utan problemet har varit känt i sak ganska länge (Georgi Guninski rapporterade om det 18 September 2000) och säkerhetsimplikationerna har rapporterats in till Microsoft för 6 månader sedan av Taeho Kwon. Kwon och hans handledare Zhendong Su har skrivit ett papper [Automatic Detection of Vulnerable Dynamic Component Loadings] som presenterades på en internationell konferens i februari i år.



Hur det går till
Både Windows och Linux letar efter dynamiska bibliotek (.DLL respektive .SO) i en speciell ordning, beroende på hur man har konfigurerat systemet. Om en attackerare kan få programmet att ladda sitt skadliga bibliotek (DLL) istället för det riktiga biblioteket så körs attackerarens kod istället för den ligitima applikationens kod (och om attackeraren är "snäll" så kan han skicka funktions-anropen vidare till det riktiga biblioteket för att bibehålla funktionaliteten i programmet som attackeras).

Vissa program letar efter sina bibliotek i samma katalog som den filen man försöker öppna finns i, så ett attack-scenario kan se ut på det här sättet:

  1. Alice (användaren) får en .zip-fil av Mallory (angriparen) innehållandes ett MS Word dokument och en .dll-fil
  2. Alice packar upp zip-filen till en katalog
  3. Alice dubbel-klickar på Word-filen för att öppna den
  4. MS Word startar, letar efter sina .DLL filer
  5. MS Word hittar en av sina .DLL-filer i samma katalog som dokumentet dvs. den .DLL-fil som Mallory skickade med i .ZIP-filen. Detta bibliotek innehåller den skadlig koden.
  6. MS Word kör nu kod från Mallory

Vad du kan göra
Som jag har nämnt ovan så kommer Microsoft inte att lösa grundproblemet i närtid. Vad du som användare och/eller system-administratör kan göra är att hålla ett öga på framtida patchar.

Sitter du i en organisation som har egenutvecklad mjukvara kan du undersöka ifall något av de egenutvecklade programen är sårbara för denna attack och i så fall se till att dom blir fixade. HD Moore har släppt ett verktyg (här kan man läsa ett blogg-inlägg om detta samt bakgrunden till problemet) för att detektera program som laddar dynamiska bibliotek på ett osäkert sätt. Man kan även använda Microsoft Sysinternals Procmon och Filemon för att detektera osäkra laddningar av DLL-filer.

/Michael Boman

0 kommentarer :: Osäkra laddningar av dynamiska bibliotek

Skicka en kommentar