EDBT 2026 Demo / reviewers in the wild / expert
Vineeth Kashyap
dblp:29/9698
· DBLP profile ↗
11ranked-venue papers
6as first author
0since 2021 · last 2020
0000-0003-0328-6297ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 10 · 5 first-authorSystems, architecture and hardware · 3 · 1 first-authorArtificial intelligence and machine learning · 1 · 1 first-authorSecurity and privacy · 1 · 1 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.
| Software engineering, system software, and programming languages
3 papers |
Program analysis · 55% Programming languages and type systems · 45% | |
| Network and information security
3 papers |
Hardware security and side channels · 52% Systems and software security · 42% Network security · 6% |
Topics — the 12 heaviest of 13, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis › static analysis
abstract interpretation |
0.2 | 1 | 2014 | JSAI: a static analysis platform for JavaScript · SIGSOFT FSE 2014 |
Program analysis › dynamic language analysis
javascript analysis |
0.2 | 1 | 2014 | JSAI: a static analysis platform for JavaScript · SIGSOFT FSE 2014 |
Programming languages and type systems
language design |
0.2 | 1 | 2014 | Sapper: a language for hardware-level security policy enforcement · ASPLOS 2014 |
Program analysis › static analysis
pointer analysis |
0.2 | 1 | 2014 | JSAI: a static analysis platform for JavaScript · SIGSOFT FSE 2014 |
Program analysis
static analysis |
0.2 | 1 | 2014 | JSAI: a static analysis platform for JavaScript · SIGSOFT FSE 2014 |
Programming languages and type systems
type inference |
0.2 | 1 | 2014 | JSAI: a static analysis platform for JavaScript · SIGSOFT FSE 2014 |
Systems and software security
information flow control |
0.1 | 1 | 2011 | Timing- and Termination-Sensitive Secure Information Flow: Exploring a New Approach · IEEE Symposium on Security and Privacy 2011 |
Systems and software security › information flow control › noninterference
termination-sensitive noninterference |
0.1 | 1 | 2011 | Timing- and Termination-Sensitive Secure Information Flow: Exploring a New Approach · IEEE Symposium on Security and Privacy 2011 |
Programming languages and type systems › domain-specific languages
hardware description languages |
0.1 | 1 | 2011 | Caisson: a hardware description language for secure information flow · PLDI 2011 |
Programming languages and type systems › type systems › security type systems
information-flow type systems |
0.1 | 1 | 2011 | Caisson: a hardware description language for secure information flow · PLDI 2011 |
Network security › covert channel
covert channel analysis |
0.0 | 1 | 2011 | Timing- and Termination-Sensitive Secure Information Flow: Exploring a New Approach · IEEE Symposium on Security and Privacy 2011 |
Electronic design automation
hardware description language |
0.0 | 1 | 2011 | Caisson: a hardware description language for secure information flow · PLDI 2011 |
Methods — techniques the papers use, named apart from their topics
static analysis · 0.4formal semantics · 0.4dynamic checks · 0.4type-based information flow analysis · 0.4formal security proof · 0.4reduced product · 0.2path sensitivity · 0.2heap sensitivity · 0.2context sensitivity · 0.2abstract domain · 0.2formal verification · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2020 | Out of Sight, Out of Place: Detecting and Assessing Swapped ArgumentsabstractProgrammers often add meaningful information about program semantics when naming program entities such as variables, functions, and macros. However, static analysis tools typically discount this information when they look for bugs in a program. In this work, we describe the design and implementation of a static analysis checker called SWAPD, which uses the natural language information in programs to warn about mistakenly-swapped arguments at call sites. SWAPD combines two independent detection strategies to improve the effectiveness of the overall checker. We present the results of a comprehensive evaluation of SWAPD over a large corpus of C and C++ programs totaling 417 million lines of code. In this evaluation, SWAPD found 154 manually-vetted real-world cases of mistakenly-swapped arguments, suggesting that such errors- while not pervasive in released code-are a real problem and a worthwhile target for static analysis. Roger Scott, Joseph Ranieri, Lucja Kot, Vineeth Kashyap |
SCAM | 4 |
| 2019 | Automated Customized Bug-Benchmark GenerationabstractWe introduce Bug-Injector, a system that automatically creates benchmarks for customized evaluation of static analysis tools. We share a benchmark generated using Bug-Injector and illustrate its efficacy by using it to evaluate the recall of two leading open-source static analysis tools: Clang Static Analyzer and Infer. Bug-Injector works by inserting bugs based on bug templates into real-world host programs. It runs tests on the host program to collect dynamic traces, searches the traces for a point where the state satisfies the preconditions for some bug template, then modifies the host program to "inject" a bug based on that template. Injected bugs are used as test cases in a static analysis tool evaluation benchmark. Every test case is accompanied by a program input that exercises the injected bug. We have identified a broad range of requirements and desiderata for bug benchmarks; our approach generates on-demand test benchmarks that meet these requirements. It also allows us to create customized benchmarks suitable for evaluating tools for a specific use case (e.g., a given codebase and set of bug types). Our experimental evaluation demonstrates the suitability of our generated benchmark for evaluating static bug-detection tools and for comparing the performance of different tools. Vineeth Kashyap, Jason Ruchti, Lucja Kot, Emma Turetsky, Rebecca Swords, Shih An Pan, Julien Henry, David Melski, Eric M. Schulte |
SCAM | 1 |
| 2017 | MuSynth: Program Synthesis via Code Reuse and Code Manipulation
Vineeth Kashyap, Rebecca Swords, Eric M. Schulte, David Melski |
SSBSE | 1 |
| 2015 | A parallel abstract interpreter for JavaScriptabstractWe investigate parallelizing flow- and context-sensitive static analysis for JavaScript. Previous attempts to parallelize such analyses for other languages typically start with the traditional framework of sequential dataflow analysis, and then propose methods to parallelize the existing sequential algorithms within this framework. However, we show that this approach is non-optimal and propose a new perspective on program analysis based on abstract interpretation that separates the analysis into two components: (1) an embarrassingly parallel state exploration of a state transition system; and (2) a separate component that controls the size of the state space by selectively merging states, thus injecting sequential dependencies into the system. This perspective simplifies the parallelization problem and exposes useful opportunities to exploit the natural parallelism of the analysis. We apply our insights to parallelize a JavaScript abstract interpreter. Because of JavaScript's dynamic nature and tricky semantics, static analysis of JavaScript is difficult to scale — one of our benchmarks with only 2.8 KLOC takes over 22 hours to analyze using the sequential JavaScript abstract interpreter. Thus, JavaScript is an excellent case study for the benefits of our approach. Our resulting parallel implementation sees significant benefits on real-world JavaScript programs, with speedups between 2-Ax on average with a superlinear maximum of 36.9× on 12 hardware threads. Kyle Dewey, Vineeth Kashyap, Ben Hardekopf |
CGO | 2 |
| 2014 | Sapper: a language for hardware-level security policy enforcementabstractPrivacy and integrity are important security concerns. These concerns are addressed by controlling information flow, i.e., restricting how information can flow through a system. Most proposed systems that restrict information flow make the implicit assumption that the hardware used by the system is fully ``correct'' and that the hardware's instruction set accurately describes its behavior in all circumstances. The truth is more complicated: modern hardware designs defy complete verification; many aspects of the timing and ordering of events are left totally unspecified; and implementation bugs present themselves with surprising frequency. In this work we describe Sapper, a novel hardware description language for designing security-critical hardware components. Sapper seeks to address these problems by using static analysis at compile-time to automatically insert dynamic checks in the resulting hardware that provably enforce a given information flow policy at execution time. We present Sapper's design and formal semantics along with a proof sketch of its security. In addition, we have implemented a compiler for Sapper and used it to create a non-trivial secure embedded processor with many modern microarchitectural features. We empirically evaluate the resulting hardware's area and energy overhead and compare them with alternative designs. Xun Li 0001, Vineeth Kashyap, Jason Oberg, Mohit Tiwari, Rajarathinam Vasanth Ram, Ryan Kastner, Timothy Sherwood, Ben Hardekopf, Fred Chong |
ASPLOS | 2 |
| 2014 | Security Signature Inference for JavaScript-based Browser Addons
Vineeth Kashyap, Ben Hardekopf |
CGO | 1 |
| 2014 | JSAI: a static analysis platform for JavaScriptabstractJavaScript is used everywhere from the browser to the server, including desktops and mobile devices. However, the current state of the art in JavaScript static analysis lags far behind that of other languages such as C and Java. Our goal is to help remedy this lack. We describe JSAI, a formally specified, robust abstract interpreter for JavaScript. JSAI uses novel abstract domains to compute a reduced product of type inference, pointer analysis, control-flow analysis, string analysis, and integer and boolean constant propagation. Part of JSAI's novelty is user-configurable analysis sensitivity, i.e., context-, path-, and heap-sensitivity. JSAI is designed to be provably sound with respect to a specific concrete semantics for JavaScript, which has been extensively tested against a commercial JavaScript implementation. We provide a comprehensive evaluation of JSAI's performance and precision using an extensive benchmark suite, including real-world JavaScript applications, machine generated JavaScript code via Emscripten, and browser addons. We use JSAI's configurability to evaluate a large number of analysis sensitivities (some well-known, some novel) and observe some surprising results that go against common wisdom. These results highlight the usefulness of a configurable analysis platform such as JSAI. Vineeth Kashyap, Kyle Dewey, Ethan A. Kuefner, John Wagner, Kevin Gibbons, John Sarracino, Ben Wiedermann, Ben Hardekopf |
SIGSOFT FSE | 1 |
| 2014 | Widening for Control-Flow
Ben Hardekopf, Ben Wiedermann, Berkeley R. Churchill, Vineeth Kashyap |
VMCAI | 4 |
| 2013 | Type refinement for static analysis of JavaScriptabstractStatic analysis of JavaScript has proven useful for a variety of purposes, including optimization, error checking, security auditing, program refactoring, and more. We propose a technique called type refinement that can improve the precision of such static analyses for JavaScript without any discernible performance impact. Refinement is a known technique that uses the conditions in branch guards to refine the analysis information propagated along each branch path. The key insight of this paper is to recognize that JavaScript semantics include many implicit conditional checks on types, and that performing type refinement on these implicit checks provides significant benefit for analysis precision. Vineeth Kashyap, John Sarracino, John Wagner, Ben Wiedermann, Ben Hardekopf |
DLS | 1 |
| 2011 | Caisson: a hardware description language for secure information flowabstractInformation flow is an important security property that must be incorporated from the ground up, including at hardware design time, to provide a formal basis for a system's root of trust. We incorporate insights and techniques from designing information-flow secure programming languages to provide a new perspective on designing secure hardware. We describe a new hardware description language, Caisson, that combines domain-specific abstractions common to hardware design with insights from type-based techniques used in secure programming languages. The proper combination of these elements allows for an expressive, provably-secure HDL that operates at a familiar level of abstraction to the target audience of the language, hardware architects. Xun Li 0001, Mohit Tiwari, Jason Oberg, Vineeth Kashyap, Fred Chong, Timothy Sherwood, Ben Hardekopf |
PLDI | 4 |
| 2011 | Timing- and Termination-Sensitive Secure Information Flow: Exploring a New ApproachabstractSecure information flow guarantees the secrecy and integrity of data, preventing an attacker from learning secret information (secrecy) or injecting untrusted information (integrity). Covert channels can be used to subvert these security guarantees, for example, timing and termination channels can, either intentionally or inadvertently, violate these guarantees by modifying the timing or termination behavior of a program based on secret or untrusted data. Attacks using these covert channels have been published and are known to work in practiceâ as techniques to prevent non-covert channels are becoming increasingly practical, covert channels are likely to become even more attractive for attackers to exploit. The goal of this paper is to understand the subtleties of timing and termination-sensitive noninterference, explore the space of possible strategies for enforcing noninterference guarantees, and formalize the exact guarantees that these strategies can enforce. As a result of this effort we create a novel strategy that provides stronger security guarantees than existing work, and we clarify claims in existing work about what guarantees can be made. Vineeth Kashyap, Ben Wiedermann, Ben Hardekopf |
IEEE Symposium on Security and Privacy | 1 |