211service.com
Din dators akilleshäl
Datorer måste ofta vara anslutna till skrivare, kameror och USB-minnen och annan hårdvara, men de små mjukvarubitarna som möjliggör kommunikation med dessa kringutrustningar, så kallade enhetsdrivrutiner, har ett dåligt rykte. Experter tror att drivrutinsfel är ansvariga för cirka 85 procent av kraschen på Windows-maskiner, och dåligt skrivna drivrutiner kan också införa säkerhetshål på en annars skyddad dator. En del av problemet är att en enhetsdrivrutin inte lätt kan granskas av någon utanför företaget som skapade den.
Drivrutiner är fruktansvärda, säger Vitaly Chipounov , en forskare i Dependable Systems Lab vid Ecole Polytechnique Federale de Lausanne (EPFL) i Schweiz. Vid Usenix årliga tekniska konferens i Boston förra veckan demonstrerade Chipounov ett mjukvaruverktyg som kan hjälpa till att skydda datorer från tvivelaktiga förare genom att identifiera problem innan de når en användares system.
Chipounovs verktyg kan testa drivrutiner utan att behöva tillgång till den underliggande koden. Det fungerar genom att ladda en drivrutin i en virtuell dator och simulera dess beteende, leta efter problem som plötsliga frysningar eller krascher. Verktyget fungerar utan att kommunicera med en motsvarande riktig hårdvara. Trots det, genom att simulera hur hårdvaran interagerar med föraren, kan den visa hur en förare kommer att reagera när den är ansluten till en buggig utrustning. När verktyget hittar ett problem kan det ge information om orsaken, vilket kan hjälpa till att identifiera en lösning.
Forskarna arbetade med sex populära drivrutiner skrivna för Windows, och de hittade 14 allvarliga buggar. Några av drivrutinerna som de testade hade certifierats som kompatibla med Windows av Microsoft. Forskarna säger att detta visar att deras verktyg kan göra certifieringen av drivrutiner bättre. Deras experiment avslöjade ett mönster i hur vissa relaterade drivrutiner misslyckades, vilket tyder på att de ansvariga hårdvaruleverantörerna kan ha kopierat kod från en drivrutin för en buggyenhet till en annan. De borde åtminstone kopiera och klistra in kod som fungerar, skämtar Chipounov.
Stabiliteten och säkerheten för drivrutiner är ett viktigt problem, säger Vinod Ganapathy , en biträdande professor i datavetenskap vid Rutgers University. På Linux-, Mac- och Windows-datorer ges enhetsdrivrutiner vanligtvis samma privilegier som själva operativsystemet, säger han. Många av dessa drivrutiner är skrivna av tredjepartsleverantörer och genomgår inte samma testnivå som operativsystemet. Vissa enhetsdrivrutiner som publiceras på webben är modifierade för att innehålla skadlig kod.
Skadliga enhetsdrivrutiner kan utföra en mängd olika otrevliga aktiviteter, som att dölja förekomsten av skadliga program och snoka på nätverkstrafik, säger Ganapathy. Godartade men sårbara drivrutiner utgör också liknande risker, eftersom en angripare kan kapa sårbarheter för att utföra samma typer av skadliga aktiviteter.
Andra forskare arbetar med olika sätt att göra drivrutiner säkrare. Ganapati och Michael Swift vid University of Wisconsin-Madison har till exempel utvecklat sätt att implementera drivrutiner så att de är isolerade från kärnan i operativsystemet.
EPFL-forskarna vill ge användarna möjlighet att själva testa förare. Den nuvarande versionen av deras verktyg kräver mycket teknisk expertis, så det är endast lämpligt för användning av hårdvaru- eller mjukvaruleverantörer som kan använda det för att felsöka eller certifiera drivrutiner. Men forskarnas vision är att slutanvändare ska kunna avgöra om de ska installera en drivrutin eller inte. De säger att verktyget kan läggas till ett operativsystem. Den kan automatiskt presentera en Testa nu-knapp för nya drivrutiner för användaren, så att de kan söka efter problem innan de uppstår.