In this work, we enhance the current microarchitecture such that the return address of every function call can be validated. Thus, if a return address is smashed, this change will be detected and reported. To facilitate this, we extended the microarchitectural return address stack found on most existing microprocessor, and introduce a new table that holds call and return instruction addresses. In addition, we propose a software thread that is responsible for backing up the hardware stack.
In order to validate the correctness of the solution, we are developing a detailed microarchitectural simulation model. Using this model, we will examine the performance impact of any hardware-based stack smash solution
This work was presented (download slides) at the BARC04 workshop.
We also had a paper in WASSA on this work.
We also had a paper in WASSA on this work.
In related work, we are looking for new ways to
enforce different security policies
to police viruses and worms. We are studying the Java security
model as an example and inspecting current
firewalls heuristics. We aim to incorporate different
solutions into one general framework.
We have developed a set of security benchmark in the project. You
can find these at:
SECSPEC .
Here is a talk by Micha Moffie
on architectural features that are starting to appear in commercial hardware
and software systems.
Prof. David Kaeli
Northeastern University
Dept. of Electrical and Computer Engineering
442 Dana Research Center
Boston, MA 02053
(617)-373-5413
kaeli@ece.neu.edu