Shuo Chen – Research Statement Research Statement Computer Science and Engineering is a fascinating discipline where the research questions are driven by unleashed imaginations. It is for this reason that the breadth and the depth of the knowledge base, as well as a strong theoretical foundation, represent the core merits of an outstanding Ph.D. These are the objectives of my graduate study. I am a research assistant in the DEPEND group led by Prof. Ravi Iyer. The thrust of the group is the systems research for trusted computing, with the primary focuses on dependability and security. My thesis research spans a broad range of security topics, including security vulnerabilities, security threat modeling/measurement, formal security properties verification, novel attacks, and ultimately defense techniques at compiler, operating system and processor architecture levels. The research is unique because of its analysis-centric approach: I dedicated a significant amount of effort to analyze real-world security vulnerabilities and uncover deficiencies in current defensive techniques. The obtained in-depth knowledge naturally drives the proposals of better defensive techniques. The contributions of my research are two-folded: (1) demonstration of systematic approaches for analyzing and reasoning about system security, (2) design of security defensive techniques of high effectiveness and practical relevance. Thesis Research My thesis consists of the following major phases. Analysis and Modeling of Security Vulnerabilities. Both hardware transient faults and software programming errors can result in secuity vulnerabilities. To study the impact of hardware transient faults on security, I (in collaboration with another student in the group) conducted fault injection experiments on network server programs and the Linux kernel firewall facility, and observed a non-negligible probability that attacker break-ins and malicious packet penetrations result from random memory errors. A stochastic activity network (SAN) model was built to estimate the frequency of the secuity compromises in an operational system. To study the common characteristics of programming errors leading to security vulnerabilities, I investigated Bugtraq and CERT vulnerability databases and corresponding application source code. A finite state machine model was developed to decompose each vulnerability into a series of primitive operations, each indicating a simple predicate that should be guaranteed by the application code. The model offers a representation approach with a higher degree of formalism in reasoning about security vulnerability. The practical usefulness is shown by the fact that during the process of modeling an HTTP server, I discovered a remotely exploitable vulnerability, now published in Bugtraq (Bugtraq #6255). Analysis of Current Security Defensive Techniques. The fact that a security vulnerability can be decomposed to primitive operations and that random memory errors can lead to security compromises suggest that many types of critical data can be the targets of the prevalent memory corruption attacks, including buffer overflow, format string, double free, and integer overflow attacks. This leads to the following observation: it may not be valid for many current defensive techniques to assume that protecting only control data is sufficient in defeating memory corruption attacks. We construct several real attacks against HTTP, FTP, SSH and Telnet servers to show the validity of our observation. These attacks corrupt configuration data, user identity data, user input strings and decision-making flags, rather than control data. They evade the detections of many current techniques, such as system call based intrusion detection systems and control data protection techniques. The vulnerabilities in the above server programs constitute a significant portion of CERT-reported vulnerabilities. Therefore, non-control data attacks represent a realistic security threat to operational systems even with the current defensive techniques in place. Shuo Chen – Research Statement Novel Static and Dynamic Defensive Techniques. Defeating security attacks requires the definition of abnormal program behaviors when attacks are undertaken. I introduce the notion of pointer taintedness as the basis to detect memory corruption attacks. A pointer is said to be tainted if the pointer value comes directly or indirectly from user input. Pointer taintedness allows the user to arbitrarily specify the target memory address to read, write or transfer control to, which is usually a pathological program behavior. On the other hand, the attacker’s ability to taint a pointer value is a crucial requirement for all types of memory corruption attacks. Based on the notion of pointer taintedness, I developed a theorem proving technique to identify potential security vulnerabilities via static source code analysis. In addition, a processor architecture solution for dynamic pointer taintedness detection is proposed and implemented on SimpleScalar processor simulator. The proposed algorithm can effectively detect both control data and noncontrol data attacks. Our evaluation shows that it offers better security coverage than existing methods. Industrial Research Experiences Besides the thesis research in Illinois, I cherish the precious opportunities of working in industrial laboratories and collaborating with different researchers in order to broaden the knowledge in security areas and possess a stronger capability in systems research. My internship projects (in Avaya Labs, Lucent Bell Labs and Microsoft Research) address several security topics including buffer overflow defense, network denial of service attacks, access control scheme and Kerberos authentication, which are briefly described in the curriculum vitae. Accomplishments of the projects require in-depth knowledge about the internals of operating systems and strong development skills. The projects are of significant research and practical values. For example, my recent internship in Microsoft Research addressed the issue that many Windows applications unreasonably refuse to execute without administrator’s privileges, which causes the realistic pressure for many users to always logon to Windows as administrators. I designed and implemented a tool to effectively solve this problem. The research results in a paper in a well-recognized security conference, and the strong interests from Microsoft product teams. I believe the industrial experiences will benefit my future career in academia. Future Research Plans A short term research goal is to further develop the pointer taintedness detection algorithm. I am working on providing a higher degree of automation for the theorem proving technique. A compiler technique can be developed to automatically insert assertions generated by the theorem prover into the object code to transparently enhance the security guarantee. Although my thesis research has shown the effectiveness of pointer taintedness detection on the architecture level, I plan to achieve the same effectiveness at software level for easy deployment. I will continue the difficult but fruitful task of data analysis. It is valuable to understand how a security vulnerability is initially discovered, how the vendor patches the vulnerability and how effective the patch is. An exciting topic is to investigate the historical trend in our battle against attackers. The results can benefit the whole security community if they are backed up with a convincing data analysis. For long-term research, I envision a number of potential topics: (1) to develop a consolidated validation technique for both security and dependability, based on theorem proving, model checking, stochastic modeling and automatic fault/attack generation techniques, (2) to build a realistic operational test-bed for security measurements and attack experiments. I believe that a network with real vulnerabilities, representative protection measures and typical workloads is an ideal environment to conduct security measurements, (3) to explore a broader spectrum of problems, including network denial of service, protocol weakness, trust relations in mobile computing, accountability in authentication and the incompatibilities between security and system Shuo Chen – Research Statement functionality. Most topics are studied in my internship projects, and I would like to explore them deeper. I fully understand the importance of collaborative teamwork in systems research and look forward to collaborating with researchers in compiler, distributed systems, networking, operating systems, architecture and formal verifications. Your research lab offers an excellent environment for the growth of a fresh Ph.D graduate. I am sure that joining your group is a crucial step in my career.