Introspektion av virtuell maskin

Inom datorer är virtuell maskinintrospektion (VMI) en teknik "för att övervaka körtidstillståndet för en virtuell maskin på systemnivå (VM)", vilket är användbart för felsökning eller kriminalteknisk analys.

Termen introspektion i tillämpning på de virtuella maskinerna introducerades av Garfinkel och Rosenblum. De uppfann ett tillvägagångssätt för att "skydda en säkerhetsapplikation från attack av skadlig programvara" och kallade det VMI. Nu är VMI en gemensam term för olika kriminaltekniska och analysmetoder för virtuella maskiner. VMI-baserade metoder används i stor utsträckning för säkerhetsapplikationer, mjukvarufelsökning och systemhantering.

VMI-verktyg kan vara placerade inuti eller utanför den virtuella maskinen och agera genom att spåra händelserna ( avbrott , minnesskrivningar och så vidare) eller skicka förfrågningarna till den virtuella maskinen. Virtuell maskinövervakare tillhandahåller vanligtvis lågnivåinformation som råbyte i minnet. Att konvertera denna lågnivåvy till något meningsfullt för användaren kallas det semantiska gapproblemet . Att lösa detta problem kräver analys och förståelse för de system som övervakas.

VMI i den virtuella maskinen

Program som körs inuti VM kan ge information om andra processer. Denna information kan skickas via nätverksgränssnittet eller vissa virtuella enheter som seriell port. Exemplen på in vivo-introspektionsprogram är WinDbg- eller GDB- servrar som interagerar med fjärrfelsökaren.

Nackdelen med detta tillvägagångssätt är att det kräver fungerande OS inom den virtuella datorn. Om OS hänger sig eller inte är laddat ännu, kunde inte introspektionsagenten fungera.

VMI utanför den virtuella maskinen

VMI-verktyg kan implementeras inom den virtuella maskinövervakaren eller som ett separat program som fångar information (t.ex. innehållet i minnet) från den virtuella maskinövervakaren. Sedan måste dessa data tolkas för att förstå processerna i systemet. Ett av de populära verktygen för sådan tolkning är Volatility framework. Detta ramverk innehåller profiler för många populära operativsystem och kan extrahera olika information som processträd eller lista över kärnobjekt.