Static Detection of File Access Control Vulnerabilities on Windows System
- 22 September 2020
- journal article
- research article
- Published by Wiley in Concurrency and Computation: Practice and Experience
- Vol. 34 (16)
Abstract
Summary: Traditional applications have been developed for decades. Most of the security research around them have focused on the detection of memory corruption vulnerabilities, such as buffer overflow, double fetch, and integer overflow. On the contrary, logic bugs, a kind of flaws caused by unreasonable application logic, attract much less attention.Files are the most common media for programs to persist their data in the system. As the file owners, programs are responsible for protecting their files from malicious users' tampering by leveraging access control mechanisms. However, if a program configures their access control mechanisms in wrong ways and causes evil users to bypass security checks to access files, there exists a file access control vulnerability. As a branch of logic flaws, file access control vulnerabilities are less popular with researchers. Thus, to mitigate the harm of the file access control vulnerabilities on Windows system, our team conducted first‐step research on them. We first classified file access control bugs into two types and codified some bug patterns. Then we formalized file access control vulnerabilities to propose a scalable detection method and implemented a lightweight analysis system StaticFAC. After evaluating StaticFAC in real‐world Windows software, we discovered 15 0‐day bugs.Keywords
This publication has 39 references indexed in Scilit:
- Dependence Guided Symbolic ExecutionIEEE Transactions on Software Engineering, 2016
- Visualizing the variational callgraph of the Linux kernel2016
- Understanding Integer Overflow in C/C++ACM Transactions on Software Engineering and Methodology, 2015
- Static analysis of event-driven Node.js JavaScript applicationsACM SIGPLAN Notices, 2015
- Fine-Grained Control-Flow Integrity Through Binary Hardening2015
- Exploring and enforcing security guarantees via program dependence graphsACM SIGPLAN Notices, 2015
- Targeted Automatic Integer Overflow Discovery Using Goal-Directed Conditional Branch Enforcement2015
- Static Backward Demand-Driven Slicing2015
- Path-Sensitive Backward Slicing2012
- Undecidability of static analysisACM Letters on Programming Languages and Systems, 1992