Demo Data from VLDB 2026 / reviewers in the wild / expert
Domagoj Babic
dblp:60/3666
· DBLP profile ↗
19ranked-venue papers
13as first author
0since 2021 · last 2019
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 10 · 8 first-authorTheory of computation · 5 · 4 first-authorSecurity and privacy · 4Systems, architecture and hardware · 3 · 3 first-author
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.
| Network and information security
6 papers |
Systems and software security · 77% Malware analysis · 17% Network security · 6% | |
| Software engineering, system software, and programming languages
4 papers |
Software testing · 49% Program analysis · 25% Program verification · 14% | |
| Theoretical computer science
3 papers |
Automated reasoning and model checking · 41% Automata and formal languages · 38% Logic in computer science · 22% | |
| Computer architecture, parallel and distributed computing, and storage systems
2 papers |
Electronic design automation · 100% |
Topics — the 25 heaviest of 30, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Systems and software security
vulnerability discovery |
0.7 | 4 | 2019 | FUDGE: fuzz driver generation at scale · ESEC/SIGSOFT FSE 2019 MACE: Model-inference-Assisted Concolic Exploration for Protocol and Vulnerability Discovery · USENIX Security Symposium 2011 Statically-directed dynamic automated test generation · ISSTA 2011 |
Systems and software security › vulnerability discovery
fuzzing |
0.4 | 1 | 2019 | FUDGE: fuzz driver generation at scale · ESEC/SIGSOFT FSE 2019 |
Software testing › fuzzing
fuzz driver generation |
0.4 | 1 | 2019 | FUDGE: fuzz driver generation at scale · ESEC/SIGSOFT FSE 2019 |
Software testing
fuzzing |
0.4 | 1 | 2019 | FUDGE: fuzz driver generation at scale · ESEC/SIGSOFT FSE 2019 |
Program verification › abstraction refinement
counterexample-guided abstraction refinement |
0.2 | 1 | 2013 | Sigma*: symbolic learning of input-output specifications · POPL 2013 |
Program analysis › symbolic execution
dynamic symbolic execution |
0.2 | 1 | 2013 | Sigma*: symbolic learning of input-output specifications · POPL 2013 |
Systems and software security
program analysis |
0.2 | 2 | 2011 | MACE: Model-inference-Assisted Concolic Exploration for Protocol and Vulnerability Discovery · USENIX Security Symposium 2011 Input generation via decomposition and re-stitching: finding bugs in Malware · CCS 2010 |
Systems and software security › program analysis
dynamic analysis |
0.1 | 1 | 2011 | MACE: Model-inference-Assisted Concolic Exploration for Protocol and Vulnerability Discovery · USENIX Security Symposium 2011 |
Software testing › test generation
automated test generation |
0.1 | 1 | 2011 | Statically-directed dynamic automated test generation · ISSTA 2011 |
Automata and formal languages
tree automata |
0.1 | 1 | 2011 | Malware Analysis with Tree Automata Inference · CAV 2011 |
Program analysis
static analysis |
0.1 | 2 | 2011 | Calysto: scalable and precise extended static checking · ICSE 2008 Statically-directed dynamic automated test generation · ISSTA 2011 |
Electronic design automation
boolean satisfiability |
0.1 | 2 | 2006 | B-Cubing: New Possibilities for Efficient SAT-Solving · IEEE Trans. Computers 2006 Efficient SAT solving: beyond supercubes · DAC 2005 |
Electronic design automation › hardware verification and test
hardware verification |
0.1 | 2 | 2006 | B-Cubing: New Possibilities for Efficient SAT-Solving · IEEE Trans. Computers 2006 Efficient SAT solving: beyond supercubes · DAC 2005 |
Malware analysis
botnet |
0.1 | 1 | 2010 | Inference and analysis of formal models of botnet command and control protocols · CCS 2010 |
Systems and software security › program analysis
dynamic symbolic execution |
0.1 | 1 | 2010 | Input generation via decomposition and re-stitching: finding bugs in Malware · CCS 2010 |
Network security › protocol reverse engineering
protocol state machine inference |
0.1 | 1 | 2010 | Inference and analysis of formal models of botnet command and control protocols · CCS 2010 |
Program analysis › static analysis
bug detection |
0.1 | 1 | 2008 | Calysto: scalable and precise extended static checking · ICSE 2008 |
Program verification › deductive verification
extended static checking |
0.1 | 1 | 2008 | Calysto: scalable and precise extended static checking · ICSE 2008 |
Automated reasoning and model checking › satisfiability
SAT solving |
0.1 | 1 | 2006 | B-Cubing: New Possibilities for Efficient SAT-Solving · IEEE Trans. Computers 2006 |
Electronic design automation
search-space pruning |
0.1 | 1 | 2005 | Efficient SAT solving: beyond supercubes · DAC 2005 |
Compilers and program optimization › code generation
parallel code generation |
0.0 | 1 | 2013 | Sigma*: symbolic learning of input-output specifications · POPL 2013 |
Program analysis
control flow analysis |
0.0 | 1 | 2011 | Statically-directed dynamic automated test generation · ISSTA 2011 |
Systems and software security › program analysis
constraint solving |
0.0 | 1 | 2010 | Input generation via decomposition and re-stitching: finding bugs in Malware · CCS 2010 |
Program analysis › static analysis › interprocedural analysis
context-sensitive analysis |
0.0 | 1 | 2008 | Calysto: scalable and precise extended static checking · ICSE 2008 |
Program analysis › data flow analysis
path-sensitive analysis |
0.0 | 1 | 2008 | Calysto: scalable and precise extended static checking · ICSE 2008 |
Methods — techniques the papers use, named apart from their topics
dynamic symbolic execution · 0.3visibly pushdown automaton · 0.2tree automata inference · 0.2symbolic execution · 0.2static analysis · 0.2grammatical inference · 0.2dynamic analysis · 0.2symbolic transducers · 0.2counterexample-guided abstraction refinement · 0.2model inference · 0.1concolic execution · 0.1constraint decomposition · 0.1interprocedural path-sensitive analysis · 0.1bit-accurate modeling · 0.1structural abstraction · 0.1predicate abstraction · 0.1supercubing · 0.1b-cubing · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2019 | FUDGE: fuzz driver generation at scaleabstractAt Google we have found tens of thousands of security and robustness bugs by fuzzing C and C++ libraries. To fuzz a library, a fuzzer requires a fuzz driver—which exercises some library code—to which it can pass inputs. Unfortunately, writing fuzz drivers remains a primarily manual exercise, a major hindrance to the widespread adoption of fuzzing. In this paper, we address this major hindrance by introducing the Fudge system for automated fuzz driver generation. Fudge automatically generates fuzz driver candidates for libraries based on existing client code. We have used Fudge to generate thousands of new drivers for a wide variety of libraries. Each generated driver includes a synthesized C/C++ program and a corresponding build script, and is automatically analyzed for quality. Developers have integrated over 200 of these generated drivers into continuous fuzzing services and have committed to address reported security bugs. Further, several of these fuzz drivers have been upstreamed to open source projects and integrated into the OSS-Fuzz fuzzing infrastructure. Running these fuzz drivers has resulted in over 150 bug fixes, including the elimination of numerous exploitable security vulnerabilities. Domagoj Babic, Stefan Bucur, Franjo Ivancic, Tim King 0001, Markus Kusano, Caroline Lemieux, Laszlo Szekeres |
ESEC/SIGSOFT FSE | 1 |
| 2017 | SunDew: systematic automated security testing (keynote)abstractSunDew is a new automated test generation framework developed at Google, focused on finding security bugs in C/C++ code. It combines the strengths of multiple test generation techniques under a single cohesive platform. It leverages the vast amount of computational resources available at Google to massively parallelize the automated test generation and triage. By using a portfolio of test generation techniques, SunDew aims to overcome the coverage saturation (or plateau) that occurs with any individual technique. This saturation manifests as the inability of the technique to discover unexplored parts of a program after a certain number of generated tests. A portfolio of techniques, on the other hand, provides a diversity of test generation strategies that complement each other. SunDew embeds the most recent advances in automated test case generation, which provide precision and thoroughness. For example, symbolic execution uses powerful constraint solvers to generate tests that precisely follow desired program branches. This approach allows symbolic execution to reach code executed under very specific input preconditions that would be difficult to discover randomly. At the same time, recent improvements to coverage guided automated fuzzing, such as AFL or LibFuzzer, generates tests faster than symbolic execution. Thus, SunDew alternates these approaches by using coverage-guided fuzzing to quickly bring the coverage to a first saturation level, then using symbolic execution to refine the search for harder-to-reach code. This, in turn, may provide additional inputs for coverage-guided fuzzers, etc. As part of SunDew, we also developed a number of format-aware fuzzers, that rely on, amongst other things, machine learning to generate language-aware fuzzers. The SunDew architecture follows a distributed continuous pipeline pattern. It allows a performance-based dynamic resource allocation for the various test generation techniques. This allows us to maximize the combined output of the test suite generation and avoid long plateaus in the coverage growth of the test suite. We discuss the application of SunDew on a variety of fuzzing targets of interest. Domagoj Babic |
SPIN | 1 |
| 2013 | Extraction of statistically significant malware behaviorsabstractTraditionally, analysis of malicious software is only a semi-automated process, often requiring a skilled human analyst. As new malware appears at an increasingly alarming rate --- now over 100 thousand new variants each day --- there is a need for automated techniques for identifying suspicious behavior in programs. In this paper, we propose a method for extracting statistically significant malicious behaviors from a system call dependency graph (obtained by running a binary executable in a sandbox). Our approach is based on a new method for measuring the statistical significance of subgraphs. Given a training set of graphs from two classes (e.g., goodware and malware system call dependency graphs), our method can assign p-values to subgraphs of new graph instances even if those subgraphs have not appeared before in the training data (thus possibly capturing new behaviors or disguised versions of existing behaviors). Sirinda Palahan, Domagoj Babic, Swarat Chaudhuri, Daniel Kifer |
ACSAC | 2 |
| 2013 | Sigma*: symbolic learning of input-output specificationsabstractWe present Sigma*, a novel technique for learning symbolic models of software behavior. Sigma* addresses the challenge of synthesizing models of software by using symbolic conjectures and abstraction. By combining dynamic symbolic execution to discover symbolic input-output steps of the programs and counterexample guided abstraction refinement to over-approximate program behavior, Sigma* transforms arbitrary source representation of programs into faithful input-output models. We define a class of stream filters---programs that process streams of data items---for which Sigma* converges to a complete model if abstraction refinement eventually builds up a sufficiently strong abstraction. In other words, Sigma* is complete relative to abstraction. To represent inferred symbolic models, we use a variant of symbolic transducers that can be effectively composed and equivalence checked. Thus, Sigma* enables fully automatic analysis of behavioral properties such as commutativity, reversibility and idempotence, which is useful for web sanitizer verification and stream programs compiler optimizations, as we show experimentally. We also show how models inferred by Sigma* can boost performance of stream programs by parallelized code generation. Matko Botincan, Domagoj Babic |
POPL | 2 |
| 2013 | Proving termination of nonlinear command sequencesabstractAbstract We describe a simple and efficient algorithm for proving the termination of a class of loops with nonlinear assignments to variables. The method is based on divergence testing for each variable in the cone-of-influence of the loop’s condition. The analysis allows us to automatically prove the termination of loops that cannot be handled using previous techniques. We also describe a method for integrating our nonlinear termination proving technique into a larger termination proving framework that depends on linear reasoning. Domagoj Babic, Byron Cook, Alan J. Hu, Zvonimir Rakamaric |
Formal Aspects Comput. | 1 |
| 2012 | Recognizing malicious software behaviors with tree automata inference
Domagoj Babic, Daniel Reynaud, Dawn Song |
Formal Methods Syst. Des. | 1 |
| 2011 | Malware Analysis with Tree Automata Inference
Domagoj Babic, Daniel Reynaud, Dawn Song |
CAV | 1 |
| 2011 | Statically-directed dynamic automated test generationabstractWe present a new technique for exploiting static analysis to guide dynamic automated test generation for binary programs, prioritizing the paths to be explored. Our technique is a three-stage process, which alternates dynamic and static analysis. In the first stage, we run dynamic analysis with a small number of seed tests to resolve indirect jumps in the binary code and build a visibly pushdown automaton (VPA) reflecting the global control-flow of the program. Further, we augment the computed VPA with statically computable jumps not executed by the seed tests. In the second stage, we apply static analysis to the inferred automaton to find potential vulnerabilities, i.e., targets for the dynamic analysis. In the third stage, we use the results of the prior phases to assign weights to VPA edges. Our symbolic-execution based automated test generation tool then uses the weighted shortest-path lengths in the VPA to direct its exploration to the target potential vulnerabilities. Preliminary experiments on a suite of benchmarks extracted from real applications show that static analysis allows exploration to reach vulnerabilities it otherwise would not, and the generated test inputs prove that the static warnings indicate true positives. Domagoj Babic, Lorenzo Martignoni, Stephen McCamant, Dawn Song |
ISSTA | 1 |
| 2011 | MACE: Model-inference-Assisted Concolic Exploration for Protocol and Vulnerability Discovery
Chia Yuan Cho, Domagoj Babic, Pongsin Poosankam, Kevin Zhijie Chen, Edward XueJun Wu, Dawn Song |
USENIX Security Symposium | 2 |
| 2010 | Input generation via decomposition and re-stitching: finding bugs in MalwareabstractAttackers often take advantage of vulnerabilities in benign software, and the authors of benign software must search their code for bugs in hopes of finding vulnerabilities before they are exploited. But there has been little research on the converse question of whether defenders can turn the tables by finding vulnerabilities in malware. We provide a first affirmative answer to that question. We introduce a new technique, stitched dynamic symbolic execution, that makes it possible to use exploration techniques based on symbolic execution in the presence of functionalities that are common in malware and otherwise hard to analyze, such as decryption and checksums. The technique is based on decomposing the constraints induced by a program, solving only a subset, and then re-stitching the constraint solution into a complete input. We implement the approach in a system for x86 binaries, and apply it to 4 prevalent families of bots and other malware. We find 6 bugs that could be exploited by a network attacker to terminate or subvert the malware. These bugs have persisted across malware revisions for months, and even years. We discuss the possible applications and ethical considerations of this new capability Juan Caballero, Pongsin Poosankam, Stephen McCamant, Domagoj Babic, Dawn Song |
CCS | 4 |
| 2010 | Inference and analysis of formal models of botnet command and control protocolsabstractWe propose a novel approach to infer protocol state machines in the realistic high-latency network setting, and apply it to the analysis of botnet Command and Control (C &C) protocols. Our proposed techniques enable an order of magnitude reduction in the number of queries and time needed to learn a botnet C &C protocol compared to classic algorithms (from days to hours for inferring the MegaD C &C protocol). We also show that the computed protocol state machines enable formal analysis for botnet defense, including finding the weakest links in a protocol, uncovering protocol design flaws, inferring the existence of unobservable communication back-channels among botnet servers, and finding deviations of protocol implementations which can be used for fingerprinting. We validate our technique by inferring the protocol state-machine from Postfix's SMTP implementation and comparing the inferred state-machine to the SMTP standard. Further, our experimental results offer new insights into MegaD's C &C, showing our technique can be used as a powerful tool for defense against botnets. Chia Yuan Cho, Domagoj Babic, Richard Shin, Dawn Song |
CCS | 2 |
| 2009 | Approximating the safely reusable set of learned facts
Domagoj Babic, Alan J. Hu |
Int. J. Softw. Tools Technol. Transf. | 1 |
| 2008 | Calysto: scalable and precise extended static checkingabstractAutomatically detecting bugs in programs has been a long-held goal in software engineering. Many techniques exist, trading-off varying levels of automation, thoroughness of coverage of program behavior, precision of analysis, and scalability to large code bases. This paper presents the Calysto static checker, which achieves an unprecedented combination of precision and scalability in a completely automatic extended static checker. Calysto is interprocedurally path-sensitive, fully context-sensitive, and bit-accurate in modeling data operations --- comparable coverage and precision to very expensive formal analyses --- yet scales comparably to the leading, less precise, static-analysis-based tool for similar properties. Using Calysto, we have discovered dozens of bugs, completely automatically, in hundreds of thousands of lines of production, open-source applications, with a very low rate of false error reports. This paper presents the design decisions, algorithms, and optimizations behind Calysto's performance. Domagoj Babic, Alan J. Hu |
ICSE | 1 |
| 2007 | Structural Abstraction of Software Verification Conditions
Domagoj Babic, Alan J. Hu |
CAV | 1 |
| 2007 | Boosting Verification by Automatic Tuning of Decision ProceduresabstractParameterized heuristics abound in computer aided design and verification, and manual tuning of the respective parameters is difficult and time-consuming. Very recent results from the artificial intelligence (AI) community suggest that this tuning process can be automated, and that doing so can lead to significant performance improvements; furthermore, automated parameter optimization can provide valuable guidance during the development of heuristic algorithms. In this paper, we study how such an AI approach can improve a state-of-the-art SAT solver for large, real-world bounded model-checking and software verification instances. The resulting, automatically-derived parameter settings yielded runtimes on average 4.5 times faster on bounded model checking instances and 500 times faster on software verification problems than extensive hand-tuning of the decision procedure. Furthermore, the availability of automatic tuning influenced the design of the solver, and the automatically-derived parameter settings provided a deeper insight into the properties of problem instances. Frank Hutter, Domagoj Babic, Holger H. Hoos, Alan J. Hu |
FMCAD | 2 |
| 2007 | Proving Termination by DivergenceabstractWe describe a simple and efficient algorithm for proving the termination of a class of loops with nonlinear assignments to variables. The method is based on divergence testing for each variable in the cone-of-influence of the loop's termination condition. The analysis allows us to automatically prove the termination of loops that cannot be handled using previous techniques. The paper closes with experimental results using short examples drawn from industrial code. Domagoj Babic, Alan J. Hu, Zvonimir Rakamaric, Byron Cook |
SEFM | 1 |
| 2006 | B-Cubing: New Possibilities for Efficient SAT-SolvingabstractSAT (Boolean satisfiability) has become the primary Boolean reasoning engine for many EDA (electronic design automation) applications, so the efficiency of SAT-solving is of great practical importance. B-cubing is our extension and generalization of Goldberg et al.'s supercubing, an approach to pruning in SAT-solving completely different from the standard approach used in leading solvers. We have built a B-cubing-based solver that is competitive with, and often outperforms, leading conventional solvers (e.g., ZChaff II) on a wide range of EDA benchmarks. However, B-cubing is hard to understand and even the correctness of the algorithm is not obvious. This paper presents the theoretical basis for B-cubing, proves our approach correct, details our implementation and experimental results, and maps out other correct possibilities for further improving SAT-solving. Domagoj Babic, Jesse D. Bingham, Alan J. Hu |
IEEE Trans. Computers | 1 |
| 2005 | Integration of supercubing and learning in a SAT solverabstractLearning is an essential pruning technique in modern SAT solvers, but it exploits a relatively small amount of information that can be deduced from the conflicts. Recently a new pruning technique called supercubing was proposed [1]. Supercubing can exploit functional symmetries that are abundant in industrial SAT instances. We point out the significant difficulties of integrating supercubing with learning and propose solutions. Our experimental solver is the first supercubing-based solver with performance comparable to leading edge solvers. Domagoj Babic, Alan J. Hu |
ASP-DAC | 1 |
| 2005 | Efficient SAT solving: beyond supercubesabstractSAT (Boolean satisfiability) has become the primary Boolean reasoning engine for many EDA applications, so the efficiency of SAT solving is of great practical importance. Recently, Goldberg et al introduced supercubing, a different approach to search-space pruning, based on a theory that unifies many existing methods. Their implementation reduced the number of decisions, but no speedup was obtained. In this paper, we generalize beyond supercubes, creating a theory we call B-cubing, and show how to implement B-cubing in a practical solver. On extensive benchmark runs, using both real problems and synthetic benchmarks, the new technique is competitive on average with the newest version of ZChaff, is much faster in some cases, and is more robust. Domagoj Babic, Jesse D. Bingham, Alan J. Hu |
DAC | 1 |