Demo Data from EDBT 2026 / reviewers in the wild / expert
Saswat Anand
dblp:95/5667
· DBLP profile ↗
18ranked-venue papers
9as first author
0since 2021 · last 2019
0009-0000-4812-7199ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 16 · 8 first-authorArtificial intelligence and machine learning · 1 · 1 first-authorSecurity and privacy · 1
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
7 papers |
Program analysis · 66% Software testing · 34% | |
| Network and information security
4 papers |
Web and mobile security · 40% Malware analysis · 38% Systems and software security · 17% | |
| Theoretical computer science
1 paper |
Automata and formal languages · 100% |
Topics — the 24 heaviest of 24, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis
static analysis |
0.7 | 4 | 2015 | Specification Inference Using Context-Free Language Reachability · POPL 2015 Modelgen: mining explicit information flow specifications from concrete executions · ISSTA 2015 Apposcopy: semantics-based detection of Android malware through static analysis · SIGSOFT FSE 2014 |
Program analysis › static analysis
taint analysis |
0.6 | 3 | 2015 | Specification Inference Using Context-Free Language Reachability · POPL 2015 Modelgen: mining explicit information flow specifications from concrete executions · ISSTA 2015 Apposcopy: semantics-based detection of Android malware through static analysis · SIGSOFT FSE 2014 |
Software testing
test input generation |
0.3 | 2 | 2016 | Minimizing GUI event traces · SIGSOFT FSE 2016 Precise interface identification to improve testing and analysis of web applications · ISSTA 2009 |
Malware analysis
malware detection |
0.3 | 1 | 2017 | Automated Synthesis of Semantic Malware Signatures using Maximum Satisfiability · NDSS 2017 |
Software testing › mobile application testing
android app testing |
0.2 | 1 | 2016 | Minimizing GUI event traces · SIGSOFT FSE 2016 |
Software testing
mobile application testing |
0.2 | 1 | 2016 | Minimizing GUI event traces · SIGSOFT FSE 2016 |
Systems and software security › information flow control
information flow analysis |
0.2 | 1 | 2015 | Interactively verifying absence of explicit information flows in Android apps · OOPSLA 2015 |
Program analysis › static analysis › taint analysis
android taint analysis |
0.2 | 1 | 2015 | Specification Inference Using Context-Free Language Reachability · POPL 2015 |
Program analysis
specification mining |
0.2 | 1 | 2015 | Specification Inference Using Context-Free Language Reachability · POPL 2015 |
Automata and formal languages › context-free languages
context-free language reachability |
0.2 | 1 | 2015 | Specification Inference Using Context-Free Language Reachability · POPL 2015 |
Malware analysis › mobile malware detection
android malware detection |
0.2 | 1 | 2014 | Apposcopy: semantics-based detection of Android malware through static analysis · SIGSOFT FSE 2014 |
Web and mobile security › mobile security
android security |
0.2 | 1 | 2014 | Apposcopy: semantics-based detection of Android malware through static analysis · SIGSOFT FSE 2014 |
Web and mobile security
mobile security |
0.2 | 1 | 2014 | Apposcopy: semantics-based detection of Android malware through static analysis · SIGSOFT FSE 2014 |
Software testing › test input generation
concolic testing |
0.1 | 1 | 2012 | Automated concolic testing of smartphone apps · SIGSOFT FSE 2012 |
Software testing
test generation |
0.1 | 1 | 2012 | Automated concolic testing of smartphone apps · SIGSOFT FSE 2012 |
Program analysis › symbolic execution
dynamic symbolic execution |
0.1 | 1 | 2011 | Heap cloning: Enabling dynamic symbolic execution of java programs · ASE 2011 |
Program analysis › heap analysis
heap cloning |
0.1 | 1 | 2011 | Heap cloning: Enabling dynamic symbolic execution of java programs · ASE 2011 |
Program analysis
symbolic execution |
0.1 | 1 | 2009 | Precise interface identification to improve testing and analysis of web applications · ISSTA 2009 |
Web and mobile security › mobile security
android application security |
0.1 | 1 | 2015 | Interactively verifying absence of explicit information flows in Android apps · OOPSLA 2015 |
Web and mobile security
mobile application security |
0.1 | 1 | 2015 | Interactively verifying absence of explicit information flows in Android apps · OOPSLA 2015 |
Blockchain and cryptocurrency security › smart contract security
vulnerability detection |
0.1 | 1 | 2015 | Modelgen: mining explicit information flow specifications from concrete executions · ISSTA 2015 |
Program analysis
dynamic analysis |
0.0 | 1 | 2012 | Automated concolic testing of smartphone apps · SIGSOFT FSE 2012 |
Program analysis › symbolic execution
path explosion |
0.0 | 1 | 2012 | Automated concolic testing of smartphone apps · SIGSOFT FSE 2012 |
Program analysis
path constraint |
0.0 | 1 | 2011 | Heap cloning: Enabling dynamic symbolic execution of java programs · ASE 2011 |
Methods — techniques the papers use, named apart from their topics
dynamic analysis · 0.7specification mining · 0.4static taint analysis · 0.4signature matching · 0.4call graph analysis · 0.4maximum satisfiability · 0.3non-deterministic behavior handling · 0.2event trace minimization · 0.2symbolic execution · 0.2instrumentation · 0.2context-free-language reachability · 0.2context-free language reachability · 0.2abductive inference · 0.2concolic testing · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2019 | Eventually Sound Points-To Analysis with SpecificationsabstractStatic analyses make the increasingly tenuous assumption that all source code is available for analysis; for example, large libraries often call into native code that cannot be analyzed. We propose a points-to analysis that initially makes optimistic assumptions about missing code, and then inserts runtime checks that report counterexamples to these assumptions that occur during execution. Our approach guarantees eventual soundness, which combines two guarantees: (i) the runtime checks are guaranteed to catch the first counterexample that occurs during any execution, in which case execution can be terminated to prevent harm, and (ii) only finitely many counterexamples ever occur, implying that the static analysis eventually becomes statically sound with respect to all remaining executions. We implement Optix, an eventually sound points-to analysis for Android apps, where the Android framework is missing. We show that the runtime checks added by Optix incur low overhead on real programs, and demonstrate how Optix improves a client information flow analysis for detecting Android malware. Osbert Bastani, Rahul Sharma 0001, Lazaro Clapp, Saswat Anand, Alex Aiken |
ECOOP | 4 |
| 2017 | Automated Synthesis of Semantic Malware Signatures using Maximum Satisfiability
Yu Feng 0001, Osbert Bastani, Ruben Martins, Isil Dillig, Saswat Anand |
NDSS | 5 |
| 2016 | Minimizing GUI event tracesabstractGUI input generation tools for Android apps, such as Android's Monkey, are useful for automatically producing test inputs, but these tests are generally orders of magnitude larger than necessary, making them difficult for humans to understand. We present a technique for minimizing the output of such tools. Our technique accounts for the non-deterministic behavior of mobile apps, producing small event traces that reach a desired activity with high probability. Lazaro Clapp, Osbert Bastani, Saswat Anand, Alex Aiken |
SIGSOFT FSE | 3 |
| 2015 | Modelgen: mining explicit information flow specifications from concrete executionsabstractWe present a technique to mine explicit information flow specifications from concrete executions. These specifications can be consumed by a static taint analysis, enabling static analysis to work even when method definitions are missing or portions of the program are too difficult to analyze statically (e.g., due to dynamic features such as reflection). We present an implementation of our technique for the Android platform. When compared to a set of manually written specifications for 309 methods across 51 classes, our technique is able to recover 96.36% of these manual specifications and produces many more correct annotations that our manual models missed. We incorporate the generated specifications into an existing static taint analysis system, and show that they enable it to find additional true flows. Although our implementation is Android-specific, our approach is applicable to other application frameworks. Lazaro Clapp, Saswat Anand, Alex Aiken |
ISSTA | 2 |
| 2015 | Interactively verifying absence of explicit information flows in Android appsabstractApp stores are increasingly the preferred mechanism for distributing software, including mobile apps (Google Play), desktop apps (Mac App Store and Ubuntu Software Center), computer games (the Steam Store), and browser extensions (Chrome Web Store). The centralized nature of these stores has important implications for security. While app stores have unprecedented ability to audit apps, users now trust hosted apps, making them more vulnerable to malware that evades detection and finds its way onto the app store. Sound static explicit information flow analysis has the potential to significantly aid human auditors, but it is handicapped by high false positive rates. Instead, auditors currently rely on a combination of dynamic analysis (which is unsound) and lightweight static analysis (which cannot identify information flows) to help detect malicious behaviors. We propose a process for producing apps certified to be free of malicious explicit information flows. In practice, imprecision in the reachability analysis is a major source of false positive information flows that are difficult to understand and discharge. In our approach, the developer provides tests that specify what code is reachable, allowing the static analysis to restrict its search to tested code. The app hosted on the store is instrumented to enforce the provided specification (i.e., executing untested code terminates the app). We use abductive inference to minimize the necessary instrumentation, and then interact with the developer to ensure that the instrumentation only cuts unreachable code. We demonstrate the effectiveness of our approach in verifying a corpus of 77 Android apps—our interactive verification process successfully discharges 11 out of the 12 false positives. Osbert Bastani, Saswat Anand, Alex Aiken |
OOPSLA | 2 |
| 2015 | Specification Inference Using Context-Free Language ReachabilityabstractWe present a framework for computing context-free language reachability properties when parts of the program are missing. Our framework infers candidate specifications for missing program pieces that are needed for verifying a property of interest, and presents these specifications to a human auditor for validation. We have implemented this framework for a taint analysis of Android apps that relies on specifications for Android library methods. In an extensive experimental study on 179 apps, our tool performs verification with only a small number of queries to a human auditor. Osbert Bastani, Saswat Anand, Alex Aiken |
POPL | 2 |
| 2014 | Apposcopy: semantics-based detection of Android malware through static analysisabstractWe present Apposcopy, a new semantics-based approach for identifying a prevalent class of Android malware that steals private user information. Apposcopy incorporates (i) a high-level language for specifying signatures that describe semantic characteristics of malware families and (ii) a static analysis for deciding if a given application matches a malware signature. The signature matching algorithm of Apposcopy uses a combination of static taint analysis and a new form of program representation called Inter-Component Call Graph to efficiently detect Android applications that have certain control- and data-flow properties. We have evaluated Apposcopy on a corpus of real-world Android applications and show that it can effectively and reliably pinpoint malicious applications that belong to certain malware families. Yu Feng 0001, Saswat Anand, Isil Dillig, Alex Aiken |
SIGSOFT FSE | 2 |
| 2013 | An orchestrated survey of methodologies for automated software test case generation
Saswat Anand, Edmund K. Burke, Tsong Yueh Chen, John A. Clark, Myra B. Cohen, Wolfgang Grieskamp, Mark Harman, Mary Jean Harrold, Phil McMinn |
J. Syst. Softw. | 1 |
| 2012 | Symbolic Execution with Interval Solving and Meta-heuristic SearchabstractA challenging problem in symbolic execution is to solve complex mathematical constraints such as constraints that include floating-point variables and transcendental functions. The inability to solve such constraints limit the application scope of symbolic execution. In this paper, we present a new method to solve such complex math constraints. Our method combines two existing: meta-heuristic search and interval solving. Conceptually, the combination explores the synergy of the individual methods to improve constraint solving. We implemented the new method in the CORAL constraint-solving infrastructure, and evaluated its effectiveness on a set of publicly-available software from the aerospace domain. Results indicate that the new method can solve significantly more complex mathematical constraints than previous techniques. Mateus Borges, Marcelo d'Amorim, Saswat Anand, David H. Bushnell, Corina Pasareanu |
ICST | 3 |
| 2012 | Automated concolic testing of smartphone appsabstractWe present an algorithm and a system for generating input events to exercise smartphone apps. Our approach is based on concolic testing and generates sequences of events automatically and systematically. It alleviates the path-explosion problem by checking a condition on program executions that identifies subsumption between different event sequences. We also describe our implementation of the approach for Android, the most popular smartphone app platform, and the results of an evaluation that demonstrates its effectiveness on five Android apps. Saswat Anand, Mayur Naik, Mary Jean Harrold, Hongseok Yang |
SIGSOFT FSE | 1 |
| 2011 | Heap cloning: Enabling dynamic symbolic execution of java programsabstractThe dynamic symbolic-execution technique can automatically perform symbolic execution of programs that use problematic features of Java, such as native methods. However, to compute precise symbolic execution, the technique requires manual effort to specify models for problematic code. Furthermore, existing approaches to perform symbolic execution either cannot be extended to perform dynamic symbolic execution or incur significant imprecision. In this paper, we present a novel program-transformation technique called heap cloning. Heap cloning transforms a program in such a way that dynamic symbolic execution of the transformed program results in the same path constraints as dynamic symbolic execution of the original program. However, symbolic execution of the transformed program produces feedback on where imprecision is introduced, and that feedback can reduce the manual effort required to build models. Furthermore, such transformation can enable existing approaches to perform symbolic execution systems to overcome their limitations. In this paper, we also present a system, called Cinger, that leverages heap cloning, and that we used to perform an empirical evaluation. The empirical evaluation shows that Cinger can compute precise path constraints, and requires little (if any) manual effort for a set of large real-world programs. Saswat Anand, Mary Jean Harrold |
ASE | 1 |
| 2009 | Precise interface identification to improve testing and analysis of web applicationsabstractAs web applications become more widespread, sophisticated, and complex, automated quality assurance techniques for such applications have grown in importance. Accurate interface identification is fundamental for many of these techniques, as the components of a web application communicate extensively via implicitly-defined interfaces to generate customized and dynamic content. However, current techniques for identifying web application interfaces can be incomplete or imprecise, which hinders the effectiveness of quality assurance techniques. To address these limitations, we present a new approach for identifying web application interfaces that is based on a specialized form of symbolic execution. In our empirical evaluation, we show that the set of interfaces identified by our approach is more accurate than those identified by other approaches. We also show that this increased accuracy leads to improvements in several important quality assurance techniques for web applications: test-input generation, penetration testing, and invocation verification. William G. J. Halfond, Saswat Anand, Alessandro Orso |
ISSTA | 2 |
| 2009 | Symbolic execution with abstraction
Saswat Anand, Corina Pasareanu, Willem Visser |
Int. J. Softw. Tools Technol. Transf. | 1 |
| 2008 | Demand-Driven Compositional Symbolic Execution
Saswat Anand, Patrice Godefroid, Nikolai Tillmann |
TACAS | 1 |
| 2007 | Type-Dependence Analysis and Program Transformation for Symbolic Execution
Saswat Anand, Alessandro Orso, Mary Jean Harrold |
TACAS | 1 |
| 2007 | JPF-SE: A Symbolic Execution Extension to Java PathFinder
Saswat Anand, Corina Pasareanu, Willem Visser |
TACAS | 1 |
| 2002 | A Lazy Divide and Conquer Approach to Constraint SolvingabstractA divide and conquer strategy enables a problem to be divided into subproblems, which are solved independently and later combined to form solutions of the original problem. For solving constraint satisfaction problems, however, the divide and conquer technique has not been shown to be effective. This is because it is not possible to cleanly divide a problem into independent subproblems in the presence of constraints that involve variables belonging to different subproblems. Consequently, solutions of one subproblem may prune solutions of another subproblem, making those solutions of the latter subproblem redundant. In this paper we propose a divide and conquer approach to constraint solving in a lazy evaluation framework. In this framework, a subproblem is solved on demand, which eliminates redundant consistency checks. Moreover, once solved, the solutions of a subproblem can be reused in the satisfaction of various global constraints connecting this subproblem with others, thus reducing the search space. We also demonstrate the effectiveness of our algorithm in solving a practical problem: finding all instances of a user-defined pattern in stock market price charts. Saswat Anand, Wei-Ngan Chin, Siau-Cheng Khoo |
ICTAI | 1 |
| 2001 | Charting Patterns on Price Historyabstract10.1145/507635.507653 Saswat Anand, Wei-Ngan Chin, Siau-Cheng Khoo |
ICFP | 1 |