Vi beskriver ett nytt, allmänt tillvägagångssätt för att skydda systemen mot alla typer av kodinjicering. Vi tillämpar Kerckhoffs princip genom att skapa processspecifika randomiserade instruktionsuppsättningar (t.ex. maskininstruktioner) av systemet som kör potentiellt sårbar programvara. En angripare som inte vet nyckeln till randomiseringsalgoritmen kommer att injicera kod som är ogiltig för den randomiserade processorn, orsakar en körning undantag. För att avgöra svårigheten att integrera stöd för den föreslagna mekanismen i operativsystemet ändrade vi Linuxkärnan, GNU binutils-verktygen och bochs-x86-emulatorn. Även om prestandapåföljden är betydande, visar vår prototyp genomförbarheten av metoden, och bör vara direkt användbar på en lämplig-modifierad processor (t.ex., Transmeta Crusoe). Vår strategi är lika tillämplig mot kodinjicering attacker i skript och tolkade språk, t.ex. web-baserade SQL injektion. Vi visar detta genom att ändra Perl-tolken för att tillåta slumpmässig manusexekvering. Prestandastraffet i detta fall är minimalt. Där vårt föreslagna tillvägagångssätt är genomförbart (dvs. i en emulerad miljö, i närvaro av programmerbar eller specialiserad hårdvara, eller i tolkade språk), kan det fungera som en låg-overhead skyddsmekanism, och kan enkelt komplettera andra mekanismer.
Instruktionsuppsättning randomisering föreslogs ursprungligen som en allmän strategi mot kodinjicering attacker av Gaurav et al. Hoppa över det.
Countering code-injection attacks with instruction-set randomization
{'venue': "CCS '03", 'journal': None, 'mag_field_of_study': ['Computer Science']}