Nytro Posted December 23, 2012 Report Posted December 23, 2012 Data RandomizationCristian CadarMicrosoft ResearchCambridge, UKcristic@stanford.eduPeriklis AkritidisMicrosoft ResearchCambridge, UKpa280@cl.cam.ac.ukManuel CostaMicrosoft ResearchCambridge, UKmanuelc@microsoft.comJean-Phillipe MartinMicrosoft ResearchCambridge, UKjpmartin@microsoft.comMiguel CastroMicrosoft ResearchCambridge, UKmcastro@microsoft.comAbstractAttacks that exploit memory errors are still a seriousproblem. We present data randomization, a new techniquethat provides probabilistic protection against theseattacks by xoring data with random masks. Data randomizationuses static analysis to partition instructionoperands into equivalence classes: it places two operandsin the same class if they may refer to the same object inan execution that does not violate memory safety. Thenit assigns a random mask to each class and it generatescode instrumented to xor data read from or written tomemory with the mask of the memory operand’s class.Therefore, attacks that violate the results of the staticanalysis have unpredictable results. We implementeda data randomization prototype that compiles programswithout modifications and can preventmany attacks withlow overhead. Our prototype prevents all the attacks inour benchmarks while introducing an average runtimeoverhead of 11%(0%to 27%) and an average space overheadbelow 1%.Download:research.microsoft.com/pubs/70626/tr-2008-120.pdf Quote