William R. Harris

dblp:38/7508 · DBLP profile ↗
← Back
16ranked-venue papers
10as first author
3since 2021 · last 2025
—ORCID · conflict

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 9 · 6 first-authorSecurity and privacy · 5 · 2 first-author · 2 since 2021Theory of computation · 5 · 4 first-authorSystems, architecture and hardware · 1Applied, interdisciplinary, general and emerging computing · 1 · 1 first-author · 1 since 2021
YearPublicationVenuePosition
2025 Electronic health records-based algorithms to screen for U.S. Centers for Disease Control and Prevention tier 1 genetic diseases: a scoping review
abstract
OBJECTIVE: Missed diagnosis of genetic conditions is a persistent challenge in clinical care, particularly for familial hypercholesterolemia (FH), hereditary breast and ovarian cancer (HBOC), and Lynch syndrome-conditions designated by the U.S. Centers for Disease Control and Prevention (CDC) as Tier 1 genomic applications. This scoping review summarizes evidence on the use of electronic health record (EHR)-based algorithms to identify individuals with these conditions. MATERIALS AND METHODS: We conducted a scoping review using the JBI Manual for Evidence Synthesis and reported results according to PRISMA-ScR guidelines. We searched Ovid MEDLINE, Embase, and Web of Science through October 2024 for studies evaluating EHR-based algorithms to identify individuals with FH, HBOC, or Lynch syndrome. Eligible studies addressed (1) performance of algorithms in detecting clinically or genetically confirmed cases or (2) outcomes from the implementation of algorithms in unselected populations with follow-up to identify new diagnoses. RESULTS: Of 598 articles screened, 22 met inclusion criteria. Most studies (20/22) focused on FH. Fourteen FH studies assessed algorithm performance, and 7 reported prospective implementation. FH algorithm performance varied widely (AUROC range 0.78-0.95), with machine learning models outperforming rule-based approaches. Implementation studies reported positive predictive values ranging from 11% to 67%. Only two studies addressed HBOC or Lynch syndrome, both using rules-based algorithms with limited sensitivity. DISCUSSION: Machine learning models consistently outperform rules-based algorithms relying on clinical criteria, but limited evidence exists for HBOC and Lynch syndrome. CONCLUSIONS: Early identification of CDC Tier 1 genetic conditions through EHR-based screening algorithms holds promise but will require both technical and implementation advances to realize improved patient care and outcomes.
William R. Harris, Marianna S. Hernandez, Khanh N. H. Ngo, Anne Fladger, Charles A Brunette, Sulaiman R. Hamarneh, Joshua W. Knowles, Matthew S. Lebo, Jason Vassy
J. Am. Medical Informatics Assoc.1
2024 ZKSMT: A VM for Proving SMT Theorems in Zero Knowledge
Daniel Luick, John C. Kolesar, Timos Antonopoulos, William R. Harris, James Parker, Ruzica Piskac, Eran Tromer, Xiao Wang 0012, Ning Luo 0002
USENIX Security Symposium4
2022 Proving UNSAT in Zero Knowledge
abstract
Zero-knowledge (ZK) protocols enable one party to prove to others that it knows a fact without revealing any information about the evidence for such knowledge. There exist ZK protocols for all problems in NP, and recent works developed highly efficient protocols for proving knowledge of satisfying assignments to Boolean formulas, circuits and other NP formalisms. This work shows an efficient protocol for the converse: proving formula unsatisfiability in ZK (when the prover posses a non-ZK proof). An immediate practical application is efficiently proving safety of secret programs.
Ning Luo 0002, Timos Antonopoulos, William R. Harris, Ruzica Piskac, Eran Tromer, Xiao Wang 0012
CCS3
2018 Enforcing Unique Code Target Property for Control-Flow Integrity
abstract
The goal of control-flow integrity (CFI) is to stop control-hijacking attacks by ensuring that each indirect control-flow transfer (ICT) jumps to its legitimate target. However, existing implementations of CFI have fallen short of this goal because their approaches are inaccurate and as a result, the set of allowable targets for an ICT instruction is too large, making illegal jumps possible. In this paper, we propose the Unique Code Target (UCT) property for CFI. Namely, for each invocation of an ICT instruction, there should be one and only one valid target. We develop a prototype called uCFI to enforce this new property. During compilation, uCFI identifies the sensitive instructions that influence ICT and instruments the program to record necessary execution context. At runtime, uCFI monitors the program execution in a different process, and performs points-to analysis by interpreting sensitive instructions using the recorded execution context in a memory safe manner. It checks runtime ICT targets against the analysis results to detect CFI violations. We apply uCFI to SPEC benchmarks and 2 servers (nginx and vsftpd) to evaluate its efficacy of enforcing UCT and its overhead. We also test uCFI against control-hijacking attacks, including 5 real-world exploits, 1 proof of concept COOP attack, and 2 synthesized attacks that bypass existing defenses. The results show that uCFI strictly enforces the UCT property for protected programs, successfully detects all attacks, and introduces less than 10% performance overhead.
Hong Hu 0004, Chenxiong Qian, Carter Yagemann, Simon P. Chung, William R. Harris, Taesoo Kim, Wenke Lee
CCS5
2017 Complexity verification using guided theorem enumeration
abstract
Determining if a given program satisfies a given bound on the amount of resources that it may use is a fundamental problem with critical practical applications. Conventional automatic verifiers for safety properties cannot be applied to address this problem directly because such verifiers target properties expressed in decidable theories; however, many practical bounds are expressed in nonlinear theories, which are undecidable.
Akhilesh Srikanth, Burak Sahin, William R. Harris
POPL3
2017 Program synthesis for interactive-security systems
William R. Harris, Somesh Jha, Thomas W. Reps, Sanjit A. Seshia
Formal Methods Syst. Des.1
2013 Validating Library Usage Interactively
William R. Harris, Guoliang Jin, Shan Lu 0001, Somesh Jha
CAV1
2013 Security challenges in automotive hardware/software architecture design
abstract
This paper is an introduction to security challenges for the design of automotive hardware/software architectures. State-of-the-art automotive architectures are highly heterogeneous and complex systems that rely on distributed functions based on electronics and software. As cars are getting more connected with their environment, the vulnerability to attacks is rapidly growing. Examples for such wireless communication are keyless entry systems, WiFi, or Bluetooth. Despite this increasing vulnerability, the design of automotive architectures is still mainly driven by safety and cost issues rather than security. In this paper, we present potential threats and vulnerabilities, and outline upcoming security challenges in automotive architectures. In particular, we discuss the challenges arising in electric vehicles, like the vulnerability to attacks involving tampering with the battery safety. Finally, we discuss future automotive architectures based on Ethernet/IP and how formal verification methods might be used to increase their security.
Florian Sagstetter, Martin Lukasiewycz, Sebastian Steinhorst, Marko Wolf, Alexandre Bouard, William R. Harris, Somesh Jha, Thomas Peyrin, Axel Poschmann, Samarjit Chakraborty
DATE6
2013 Secure programs via game-based synthesis
abstract
Summary form only given. Several recent operating systems provide system calls that allow an application to explicitly manage the privileges of modules with which the application interacts. Such privilege-aware operating systems allow a programmer to a write a program that satisfies a strong security policy, even when the program interacts with untrusted modules. However, it is often non-trivial to rewrite a program to correctly use the system calls to satisfy a high-level security policy. This paper concerns the policy-weaving problem, which is to take as input a program, a desired high-level policy for the program, and a description of how system calls affect privilege, and automatically rewrite the program to invoke the system calls so that it satisfies the policy. We describe a reduction from the policy-weaving problem to finding a winning strategy to a two-player safety game. We then describe a policy-weaver generator that implements the reduction and a novel game-solving algorithm, and present an experimental evaluation of the generator applied to a model of the Capsicum capability system. We conclude by outlining ongoing work in applying the generator to a model of the HiStar decentralized-information-flow control (DIFC) system.
Somesh Jha, Thomas W. Reps, William R. Harris
FMCAD3
2013 Declarative, Temporal, and Practical Programming with Capabilities
abstract
New operating systems, such as the Capsicum capability system, allow a programmer to write an application that satisfies strong security properties by invoking security- specific system calls at a few key points in the program. However, rewriting an application to invoke such system calls correctly is an error-prone process: even the Capsicum developers have reported difficulties in rewriting programs to correctly invoke system calls. This paper describes capweave, a tool that takes as input (i) an LLVM program, and (ii) a declarative policy of the possibly-changing capabilities that a program must hold during its execution, and rewrites the program to use Capsicum system calls to enforce the policy. Our experiments demonstrate that capweave can be applied to rewrite security-critical UNIX utilities to satisfy practical security policies. capweave itself works quickly, and the runtime overhead incurred in the programs that capweave produces is generally low for practical workloads.
William R. Harris, Somesh Jha, Thomas W. Reps, Jonathan Anderson, Robert N. M. Watson
IEEE Symposium on Security and Privacy1
2012 Secure Programming via Visibly Pushdown Safety Games
William R. Harris, Somesh Jha, Thomas W. Reps
CAV1
2011 Spreadsheet table transformations from examples
abstract
Every day, millions of computer end-users need to perform tasks over large, tabular data, yet lack the programming knowledge to do such tasks automatically. In this work, we present an automatic technique that takes from a user an example of how the user needs to transform a table of data, and provides to the user a program that implements the transformation described by the example. In particular, we present a language of programs TableProg that can describe transformations that real users require.We then present an algorithm ProgFromEx that takes an example input and output table, and infers a program in TableProg that implements the transformation described by the example. When the program is applied to the example input, it reproduces the example output. When the program is applied to another, potentially larger, table with a 'similar' layout as the example input table, then the program produces a corresponding table with a layout that is similar to the example output table. A user can apply ProgFromEx interactively, providing multiple small examples to obtain a program that implements the transformation that the user desires. Moreover, ProgFromEx can help identify 'noisy' examples that contain errors.
William R. Harris, Sumit Gulwani
PLDI1
2010 DIFC programs by automatic instrumentation
abstract
Decentralized information flow control (DIFC) operating systems provide applications with mechanisms for enforcing information flow policies for their data. However, significant obstacles keep such operating systems from achieving widespread adoption. One key obstacle is that DIFC operating systems provide only low-level mechanisms for allowing application programmers to enforce their desired policies. It can be difficult for the programmer to ensure that their use of these mechanisms enforces their high-level policies, while at the same time not breaking the underlying functionality of their application. These are issues both for programmers who would develop new applications for a DIFC operating system and for programmers who would port existing applications to a DIFC operating system. Our work significantly eases these tasks. We present as automatic technique that takes as input a program with no DIFC code, and two policies: one that specifies prohibited information flows and one that specifies flows that must be allowed. Our technique then produces a new version of the input program that satisfies the two policies. To evaluate out technique, we implemented it in an automatic tool, called Swim (for Secure What I Mean), and applied it to a set of real-world programs and policies. The results of our evaluation demonstrate that the technique is sufficiently expressive to produce programs for real-world policies, and that it can produce such programs efficiently. It thus represents a significant contribution towards developing systems with strong end-to-end information flow guarantees.
William R. Harris, Somesh Jha, Thomas W. Reps
CCS1
2010 Program analysis via satisfiability modulo path programs
abstract
Path-sensitivity is often a crucial requirement for verifying safety properties of programs. As it is infeasible to enumerate and analyze each path individually, analyses compromise by soundly merging information about executions along multiple paths. However, this frequently results in a loss of precision. We present a program analysis technique that we call Satisfiability Modulo Path Programs (SMPP), based on a path-based decomposition of a program. It is inspired by insights that have driven the development of modern SMT(Satisfiability Modulo Theory) solvers. SMPP symbolically enumerates path programs using a SAT formula over control edges in the program. Each enumerated path program is verified using an oracle, such as abstract interpretation or symbolic execution, to either find a proof of correctness or report a potential violation. If a proof is found, then SMPP extracts a sufficient set of control edges and corresponding interference edges, as a form of proof-based learning. Blocking clauses derived from these edges are added back to the SAT formula to avoid enumeration of other path programs guaranteed to be correct, thereby improving performance and scalability. We have applied SMPP in the F-Soft program verification framework, to verify properties of real-world C programs that require path-sensitive reasoning. Our results indicate that the precision from analyzing individual path programs, combined with their efficient enumeration by SMPP, can prove properties as well as indicate potential violations in the large.
William R. Harris, Sriram Sankaranarayanan 0001, Franjo Ivancic, Aarti Gupta
POPL1
2010 Alternation for Termination
William R. Harris, Akash Lal, Aditya V. Nori, Sriram K. Rajamani
SAS1
2009 Verifying Information Flow Control over Unbounded Processes
William R. Harris, Nicholas Kidd, Sagar Chaki, Somesh Jha, Thomas W. Reps
FM1