2019 · 31 citations · 20 references
Injection VulnerabilitySoftware SecurityEngineeringInformation SecurityProgram AnalysisNode.js ModulesStatic AnalysisComputer EngineeringSoftware EngineeringSource Code AnalysisFeedback-driven Static AnalysisNode.js ApplicationsComputer ScienceStatic CheckingFuzzingStatic Program AnalysisSoftware Analysis
Node.js provides the ability to write JavaScript programs for the server-side and has become a popular language for developing web applications. Node.js allows direct access to the underlying filesystem, operating system resources, and databases, but does not provide any security mechanism such as sandboxing of untrusted code, and injection vulnerabilities are now commonly reported in Node.js modules. Existing static dataflow analysis techniques do not scale to Node.js applications to find injection vulnerabilities because small Node.js web applications typically depend on many third-party modules. We present a new feedback-driven static analysis that scales well to detect injection vulnerabilities in Node.js applications. The key idea behind our new technique is that not all third-party modules need to be analyzed to detect an injection vulnerability. Results of running our analysis, Nodest, on real-world Node.js applications show that the technique scales to large applications and finds previously known as well as new vulnerabilities. In particular, Nodest finds 63 true positive taint flows in a set of our benchmarks, whereas a state-of-the-art static analysis reports 3 only. Moreover, our analysis scales to Express, the most popular Node.js web framework, and reports non-trivial injection vulnerabilities.
20
Patrick Cousot, Radhia Cousot · 1977 · 6.1K citations
Programming Language Theory, Actual Computations, Declarative Programming +10
IEEE Software · 2011 · 2K citations
Monotone data flow analysis frameworks
John B. Kam, Jeffrey D. Ullman · Acta Informatica · 1977 · 376 citations
JSAI: a static analysis platform for JavaScript
Vineeth Kashyap, Kyle Dewey, Ethan A. Kuefner et al. · 2014 · 156 citations