Demo Data from EDBT 2026 / reviewers in the wild / expert
Scott Moore 0001
dblp:07/5743-1
· DBLP profile ↗
8ranked-venue papers
4as first author
1since 2021 · last 2023
0009-0009-0719-1130ORCID · conflict
Domains — the database's venue-derived domains; a paper can count in several
Security and privacy · 4 · 2 first-authorSoftware engineering, systems software and programming languages · 4 · 2 first-author · 1 since 2021
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.
| Databases, data mining, and information retrieval
1 paper |
Data models and query languages · 33% Query processing and optimization · 33% Database theory · 33% | |
| Network and information security
4 papers |
Systems and software security · 61% Authentication and access control · 25% Network security · 14% | |
| Software engineering, system software, and programming languages
5 papers |
Compilers and program optimization · 44% Requirements engineering and software design · 25% Program analysis · 20% |
Topics — the 12 heaviest of 13, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Data models and query languages › datalog
datalog engine |
0.7 | 1 | 2023 | Bring Your Own Data Structures to Datalog · Proc. ACM Program. Lang. 2023 |
Query processing and optimization › recursive query
recursive query evaluation |
0.7 | 1 | 2023 | Bring Your Own Data Structures to Datalog · Proc. ACM Program. Lang. 2023 |
Database theory › datalog evaluation
semi-naive evaluation |
0.7 | 1 | 2023 | Bring Your Own Data Structures to Datalog · Proc. ACM Program. Lang. 2023 |
Systems and software security
information flow control |
0.4 | 2 | 2015 | Exploring and enforcing security guarantees via program dependence graphs · PLDI 2015 Precise enforcement of progress-sensitive security · CCS 2012 |
Authentication and access control
access control |
0.2 | 1 | 2016 | Extensible access control with authorization contracts · OOPSLA 2016 |
Requirements engineering and software design › specification
software contracts |
0.2 | 1 | 2016 | Extensible access control with authorization contracts · OOPSLA 2016 |
Compilers and program optimization
dependence analysis |
0.2 | 1 | 2015 | Exploring and enforcing security guarantees via program dependence graphs · PLDI 2015 |
Compilers and program optimization › dependence analysis
program dependence graph |
0.2 | 1 | 2015 | Exploring and enforcing security guarantees via program dependence graphs · PLDI 2015 |
Program analysis
static analysis |
0.2 | 1 | 2023 | Bring Your Own Data Structures to Datalog · Proc. ACM Program. Lang. 2023 |
Network security
covert channel |
0.1 | 1 | 2012 | Precise enforcement of progress-sensitive security · CCS 2012 |
Programming languages and type systems
language-based security |
0.1 | 2 | 2014 | SHILL: A Secure Shell Scripting Language · OSDI 2014 Precise enforcement of progress-sensitive security · CCS 2012 |
Systems and software security
security policy specification |
0.1 | 1 | 2015 | Exploring and enforcing security guarantees via program dependence graphs · PLDI 2015 |
Methods — techniques the papers use, named apart from their topics
procedural macros · 1.3incremental evaluation · 1.3DSL embedding · 1.3authorization contracts · 0.5PDG query language · 0.4language-based information-flow mechanisms · 0.3
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2023 | Bring Your Own Data Structures to DatalogabstractThe restricted logic programming language Datalog has become a popular implementation target for deductive-analytic workloads including social-media analytics and program analysis. Modern Datalog engines compile Datalog rules to joins over explicit representations of relations—often B-trees or hash maps. While these modern engines have enabled high scalability in many application domains, they have a crucial weakness: achieving the desired algorithmic complexity may be impossible due to representation-imposed overhead of the engine’s data structures. In this paper, we present the "Bring Your Own Data Structures" (Byods) approach, in the form of a DSL embedded in Rust. Using Byods, an engineer writes logical rules which are implicitly parametric on the concrete data structure representation; our implementation provides an interface to enable "bringing their own" data structures to represent relations, which harmoniously interact with code generated by our compiler (implemented as Rust procedural macros). We formalize the semantics of Byods as an extension of Datalog’s; our formalization captures the key properties demanded of data structures compatible with Byods, including properties required for incrementalized (semi-naïve) evaluation. We detail many applications of the Byods approach, implementing analyses requiring specialized data structures for transitive and equivalence relations to scale, including an optimized version of the Rust borrow checker Polonius; highly-parallel PageRank made possible by lattices; and a large-scale analysis of LLVM utilizing index-sharing to scale. Our results show that Byods offers both improved algorithmic scalability (reduced time and/or space complexity) and runtimes competitive with state-of-the-art parallelizing Datalog solvers. Arash Sahebolamri, Langston Barrett, Scott Moore 0001, Kristopher K. Micinski |
Proc. ACM Program. Lang. | 3 |
| 2016 | Extensible access control with authorization contractsabstractExisting programming language access control frameworks do not meet the needs of all software components. We propose an expressive framework for implementing access control monitors for components. The basis of the framework is a novel concept: the authority environment. An authority environment associates rights with an execution context. The building blocks of access control monitors in our framework are authorization contracts: software contracts that manage authority environments. We demonstrate the expressiveness of our framework by implementing a diverse set of existing access control mechanisms and writing custom access control monitors for three realistic case studies. Scott Moore 0001, Christos Dimoulas, Robert Bruce Findler, Matthew Flatt, Stephen Chong |
OOPSLA | 1 |
| 2015 | Cryptographic Enforcement of Language-Based Information ErasureabstractInformation erasure is a formal security requirement that stipulates when sensitive data must be removed from computer systems. In a system that correctly enforces erasure requirements, an attacker who observes the system after sensitive data is required to have been erased cannot deduce anything about the data. Practical obstacles to enforcing information erasure include: (1) correctly determining which data requires erasure, and (2) reliably deleting potentially large volumes of data, despite untrustworthy storage services. In this paper, we present a novel formalization of language-based information erasure that supports cryptographic enforcement of erasure requirements: sensitive data is encrypted before storage, and upon erasure, only a relatively small set of decryption keys needs to be deleted. This cryptographic technique has been used by a number of systems that implement data deletion to allow the use of untrustworthy storage services. However, these systems provide no support to correctly determine which data requires erasure, nor have the formal semantic properties of these systems been explained or proven to hold. We address these shortcomings. Specifically, we study a programming language extended with primitives for public-key cryptography, and demonstrate how information-flow control mechanisms can automatically track data that requires erasure and provably enforce erasure requirements even when programs employ cryptographic techniques for erasure. Aslan Askarov, Scott Moore 0001, Christos Dimoulas, Stephen Chong |
CSF | 2 |
| 2015 | Exploring and enforcing security guarantees via program dependence graphsabstractWe present PIDGIN, a program analysis and understanding tool that enables the specification and enforcement of precise application-specific information security guarantees. PIDGIN also allows developers to interactively explore the information flows in their applications to develop policies and investigate counter-examples. PIDGIN combines program dependence graphs (PDGs), which precisely capture the information flows in a whole application, with a custom PDG query language. Queries express properties about the paths in the PDG; because paths in the PDG correspond to information flows in the application, queries can be used to specify global security policies. PIDGIN is scalable. Generating a PDG for a 330k line Java application takes 90 seconds, and checking a policy on that PDG takes under 14 seconds. The query language is expressive, supporting a large class of precise, application-specific security guarantees. Policies are separate from the code and do not interfere with testing or development, and can be used for security regression testing. We describe the design and implementation of PIDGIN and report on using it: (1) to explore information security guarantees in legacy programs; (2) to develop and modify security policies concurrently with application development; and (3) to develop policies based on known vulnerabilities. Lucas Waye, Scott Moore 0001, Stephen Chong |
PLDI | 3 |
| 2014 | Declarative Policies for Capability ControlabstractIn capability-safe languages, components can access a resource only if they possess a capability for that resource. As a result, a programmer can prevent an untrusted component from accessing a sensitive resource by ensuring that the component never acquires the corresponding capability. In order to reason about which components may use a sensitive resource it is necessary to reason about how capabilities propagate through a system. This may be difficult, or, in the case of dynamically composed code, impossible to do before running the system. To counter this situation, we propose extensions to capability-safe languages that restrict the use of capabilities according to declarative policies. We introduce two independently useful semantic security policies to regulate capabilities and describe language-based mechanisms that enforce them. Access control policies restrict which components may use a capability and are enforced using higher-order contracts. Integrity policies restrict which components may influence (directly or indirectly) the use of a capability and are enforced using an information-flow type system. Finally, we describe how programmers can dynamically and soundly combine components that enforce access control or integrity policies with components that enforce different policies or even no policy at all. Christos Dimoulas, Scott Moore 0001, Aslan Askarov, Stephen Chong |
CSF | 2 |
| 2014 | SHILL: A Secure Shell Scripting Language
Scott Moore 0001, Christos Dimoulas, Dan King, Stephen Chong |
OSDI | 1 |
| 2012 | Precise enforcement of progress-sensitive securityabstractProgram progress (or termination) is a covert channel that may leak sensitive information. To control information leakage on this channel, semantic definitions of security should be progress sensitive and enforcement mechanisms should restrict the channel's capacity. However, most state-of-the-art language-based information-flow mechanisms are progress insensitive---allowing arbitrary information leakage through this channel---and current progress-sensitive enforcement techniques are overly restrictive. Scott Moore 0001, Aslan Askarov, Stephen Chong |
CCS | 1 |
| 2011 | Static Analysis for Efficient Hybrid Information-Flow ControlabstractHybrid information-flow monitors use a combination of static analysis and dynamic mechanisms to provide precise strong information security guarantees. However, unlike purely static mechanisms for information security, hybrid information-flow monitors incur run-time overhead. We show how static analyses can be used to make hybrid information-flow monitors more efficient, in two ways. First, a simple static analysis can determine when it is sound for a monitor to stop tracking the security level of certain variables. This potentially reduces run-time overhead of the monitor, particularly in applications where sensitive (i.e., confidential or untrusted) data is infrequently introduced to the system. Second, we derive sufficient conditions for soundly incorporating a wide range of memory abstractions into information-flow monitors. This allows the selection of a memory abstraction that gives an appropriate tradeoff between efficiency and precision. It also facilitates the development of innovative and sound memory abstractions that use run-time security information maintained by the monitor. We present and prove our results by extending the information-flow monitor of Russo and Sabelfeld (2010). These results bring us closer to efficient, sound, and precise enforcement of information security. Scott Moore 0001, Stephen Chong |
CSF | 1 |