Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Gene Novark

dblp:65/666 · DBLP profile ↗
← Back
5ranked-venue papers
3as first author
0since 2021 · last 2010
—ORCID · none

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

Software engineering, systems software and programming languages · 4 · 2 first-authorSystems, architecture and hardware · 1Security 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
4 papers
Concurrent programming · 32% Program analysis · 32% Programming languages and type systems · 16%
Network and information security
3 papers
Systems and software security · 100%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Distributed systems · 50% Hardware reliability and fault tolerance · 50%

Topics — the 13 heaviest of 14, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Systems and software security
memory safety
0.332010
DieHarder: securing the heap · CCS 2010
Archipelago: trading address space for reliability and security · ASPLOS 2008
Exterminator: automatically correcting memory errors with high probability · PLDI 2007
Systems and software security
exploitation
0.112010
DieHarder: securing the heap · CCS 2010
Systems and software security › memory safety
heap security
0.112010
DieHarder: securing the heap · CCS 2010
Concurrent programming
concurrency bugs
0.112009
Grace: safe multithreaded programming for C/C++ · OOPSLA 2009
Program analysis
dynamic analysis
0.112009
Efficiently and precisely locating memory leaks and bloat · PLDI 2009
Program analysis › error detection
memory leak detection
0.112009
Efficiently and precisely locating memory leaks and bloat · PLDI 2009
Concurrent programming › concurrency bug detection
race and deadlock detection
0.112009
Grace: safe multithreaded programming for C/C++ · OOPSLA 2009
Distributed systems
fault tolerance
0.112008
Archipelago: trading address space for reliability and security · ASPLOS 2008
Hardware reliability and fault tolerance
memory fault tolerance
0.112008
Archipelago: trading address space for reliability and security · ASPLOS 2008
Systems and software security › memory safety
buffer overflow
0.112007
Exterminator: automatically correcting memory errors with high probability · PLDI 2007
Debugging and program repair
automated program repair
0.112007
Exterminator: automatically correcting memory errors with high probability · PLDI 2007
Operating systems › system security › operating system security › protection mechanism
address space layout randomization
0.012008
Archipelago: trading address space for reliability and security · ASPLOS 2008
Operating systems › resource management › memory management
virtual memory
0.012008
Archipelago: trading address space for reliability and security · ASPLOS 2008

Methods — techniques the papers use, named apart from their topics

address space trading · 0.2probabilistic correction · 0.1formal treatment · 0.1allocator design analysis · 0.1runtime monitoring · 0.1garbage collection · 0.1code sampling · 0.1binary rewriting · 0.1
YearPublicationVenuePosition
2010 DieHarder: securing the heap
abstract
Heap-based attacks depend on a combination of memory management error and an exploitable memory allocator. Many allocators include ad hoc countermeasures against particular exploits but their effectiveness against future exploits has been uncertain. This paper presents the first formal treatment of the impact of allocator design on security. It analyzes a range of widely-deployed memory allocators, including those used by Windows, Linux, FreeBSD and OpenBSD, and shows that they remain vulnerable to attack. It them presents DieHarder, a new allocator whose design was guided by this analysis. DieHarder provides the highest degree of security from heap-based attacks of any practical allocator of which we are aware while imposing modest performance overhead. In particular, the Firefox web browser runs as fast with DieHarder as with the Linux allocator.
Gene Novark, Emery D. Berger
CCS1
2009 Grace: safe multithreaded programming for C/C++
abstract
The shift from single to multiple core architectures means that programmers must write concurrent, multithreaded programs in order to increase application performance. Unfortunately, multithreaded applications are susceptible to numerous errors, including deadlocks, race conditions, atomicity violations, and order violations. These errors are notoriously difficult for programmers to debug.
Emery D. Berger, Tongping Liu, Gene Novark
OOPSLA4
2009 Efficiently and precisely locating memory leaks and bloat
abstract
Inefficient use of memory, including leaks and bloat, remain a significant challenge for C and C++ developers. Applications with these problems become slower over time as their working set grows and can become unresponsive. At the same time, memory leaks and bloat remain notoriously difficult to debug, and comprise a large number of reported bugs in mature applications. Previous tools for diagnosing memory inefficiencies-based on garbage collection, binary rewriting, or code sampling-impose high overheads (up to 100X) or generate many false alarms.
Gene Novark, Emery D. Berger, Benjamin G. Zorn
PLDI1
2008 Archipelago: trading address space for reliability and security
abstract
Memory errors are a notorious source of security vulnerabilities that can lead to service interruptions, information leakage and unauthorized access. Because such errors are also difficult to debug, the absence of timely patches can leave users vulnerable to attack for long periods of time. A variety of approaches have been introduced to combat these errors, but these often incur large runtime overheads and generally abort on errors, threatening availability.
Vitaliy B. Lvin, Gene Novark, Emery D. Berger, Benjamin G. Zorn
ASPLOS2
2007 Exterminator: automatically correcting memory errors with high probability
abstract
Programs written in C and C++ are susceptible to memory errors, including buffer overflows and dangling pointers. These errors, whichcan lead to crashes, erroneous execution, and security vulnerabilities, are notoriously costly to repair. Tracking down their location in the source code is difficult, even when the full memory state of the program is available. Once the errors are finally found, fixing them remains challenging: even for critical security-sensitive bugs, the average time between initial reports and the issuance of a patch is nearly one month.
Gene Novark, Emery D. Berger, Benjamin G. Zorn
PLDI1