In this chapter we discuss two separate but somewhat related topics—secure memory management and Intel's trusted execution technology (formerly called LaGrande).
Secure memory management became an item of increased attention when buffer overflows were used to gain access to secure information or otherwise compromise the security of a system or application. Moreover, it became apparent that poor memory-management techniques by developers were leaving encryption keys and passwords in volatile memory after use, creating additional paths for attacks.
Two technology factors have also contributed to the increased need for secure memory management. First, the increase of multitasking has increased the importance of proper isolation of memory between applications. Second, the use of the Internet to propagate viruses and Trojan-horse programs provided an easy attack path that could be exploited at arbitrary distances and at any time of day or night.
In this chapter, we examine the nature of memory-management attack paths and methods to close them.
Applications reside in memory during operation. Poorly written software can inadvertently include code that attempts to store data beyond the boundaries assigned to the buffer. The result is that the program will overwrite data in adjacent memory locations, causing incorrect results or a crash. Such undesirable behavior can ...