Abstract-We beskriver Instruction-Set Randomization (ISR), en allmän metod för att skydda system mot alla typer av kodinjicering angrepp. Vi tillämpar Kerckhoffs' princip för att skapa OS 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 att (randomized) miljö, orsakar en körning undantag. Vårt tillvägagångssätt är tillämpligt på maskinspråksprogram och skript och tolkade språk. Vi diskuterar tre tillvägagångssätt (skydd för Intel x86 körbara program, Perl-skript och SQL-frågor), en från var och en av ovanstående kategorier. Vårt mål är att visa på ISR:s allmängiltighet och tillämplighet som skyddsmekanism. Vår emulatorbaserade prototyp visar genomförbarheten ISR för x86 körbara enheter och bör vara direkt användbar på en lämpligt modifierad processor. Vi visar hur man kan minska emulationsbaserad ISR:s betydande effekt genom att använda flera heuristiker för att begränsa omfattningen av det randomiserade (och tolkade) genomförandet till delar av koden som kan vara mer mottagliga för exploatering. SQL-prototypen består av en SQL-fråga-randomizing proxy som skyddar mot SQL-injicering attacker utan ändringar i databasservrar, mindre ändringar av CGI-skript, och med försumbar prestanda overhead. På samma sätt är prestandastraffet för en randomiserad Perl-tolk minimal. Om prestandaeffekten av vårt föreslagna tillvägagångssätt är godtagbar (dvs. i en redan ställd miljö, i närvaro av programmerbar eller specialiserad hårdvara, eller i tolkade språk), kan det fungera som en bred skyddsmekanism och komplettera andra säkerhetsmekanismer.
De visar också tillämpligheten av metoden för tolkade språk som Perl, och senare SQL REF.
On the General Applicability of Instruction-Set Randomization
{'venue': 'IEEE Transactions on Dependable and Secure Computing', 'journal': 'IEEE Transactions on Dependable and Secure Computing', 'mag_field_of_study': ['Computer Science']}