SMOV

Array Bound-Check and access in a single instruction

keywords

Registers, Hardware, Computer architecture, Hazards, Pipeline processing, Standards, Security.

Paper

Antonio Maia, Leandro Melo, Fernando Magno Quintão Pereira, Omar P. Vilela Neto, and Leonardo B. Oliveira

Abstract

A Buffer Overflow (BOF) continues to be amongthe top open doors to worms and malware. Earlier in 2014, thesecurity world was taken by surprise when researches unveileda BOF in OpenSSL. Languages like C and C++, widely usedfor system development and for a large variety of applications,do not provide native Array-Bound Checks (ABC). A myriadof proposals endeavor memory protection for such languages byemploying both software- and hardware-based solutions. Due tonumerous reasons, none of them have yet reached the mainstream.In this work we propose a novel approach to achieve an arraybound-check and a memory access (when allowed) within a singleinstruction. We discuss how it can be implemented on variable-length ISAs and provide a reference implementation. Our resultsindicate that our solution can run programs 1,79x faster than thesoftware-based approach.

BibTeX

@inproceedings{maia2016smov,
    title={SMOV: Array Bound-Check and access in a single instruction},
    author={Maia, Antonio and Melo, Leandro and Pereira, Fernando Magno Quint{\~a}o and Neto, Omar P Vilela and Oliveira, Leonardo B},
    booktitle={2016 13th IEEE Annual Consumer Communications \& Networking Conference (CCNC)},
    pages={745--751},
    year={2016},
    organization={IEEE}
}