Cyber threats have escalated rapidly over the past decade. "Zero-day attacks" have become significant, delivered increasingly through seemingly innocuous means such as web pages, images, and documents. Malware is rampant, being installed surreptitiously on millions of computers around the world using a combination of spam, phishing, malicious shareware and freeware. Today's defenses use techniques such as signature-based scanning and file integrity monitoring to detect the presence of malware, and then remove them. Unfortunately, clever adversaries can quickly develop malware that conceals itself from these detection mechanisms, and hence defeat such reactive defenses. In contrast, this project will develop an approach that dramatically improves defenses against malware, and put a computer owner back in control over the attackers. This approach, based on synthesizing and enforcing low-level information flow properties from generic high level policies, will be used to identify components of a computer system that are critical for its trustworthiness, and preserve their integrity. In doing so, the approach will enable users to continue to use popular operating systems, applications, and add-on software, while still assuring system security. Specifically, this project will develop techniques to protect (a) the OS and critical applications from untrusted code or data, (b) critical applications from modules and extensions (e.g., browser plug-ins and media player codecs) that run within the same address space, and (c) the OS kernel from damage due to untrusted kernel extensions such as device drivers. In terms of broader impact, this project will train several graduate students, the research will be integrated into the teaching activities of the PIs, and finally, the solutions developed will be distributed as