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

Ken Ashcraft

dblp:25/151 · DBLP profile ↗
← Back
3ranked-venue papers
1as first author
0since 2021 · last 2004
—ORCID · none

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

Software engineering, systems software and programming languages · 2Security 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 · 68% Concurrent programming · 32%
Network and information security
1 paper
Systems and software security · 100%

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

TopicWeightPapersLastEvidence papers
Program analysis
static analysis
0.132004
Correlation exploitation in error ranking · SIGSOFT FSE 2004
RacerX: effective, static detection of race conditions and deadlocks · SOSP 2003
Using Programmer-Written Compiler Extensions to Catch Security Holes · S&P 2002
Program analysis › static analysis › bug detection
false positive reduction
0.012004
Correlation exploitation in error ranking · SIGSOFT FSE 2004
Concurrent programming › concurrency bug detection
data race detection
0.012003
RacerX: effective, static detection of race conditions and deadlocks · SOSP 2003
Concurrent programming
deadlock detection
0.012003
RacerX: effective, static detection of race conditions and deadlocks · SOSP 2003
Systems and software security › vulnerability discovery
static analysis
0.012002
Using Programmer-Written Compiler Extensions to Catch Security Holes · S&P 2002
Systems and software security
vulnerability discovery
0.012002
Using Programmer-Written Compiler Extensions to Catch Security Holes · S&P 2002

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

static analysis · 0.1compiler extension · 0.1probabilistic ranking · 0.0clustering analysis · 0.0interprocedural analysis · 0.0flow-sensitive analysis · 0.0
YearPublicationVenuePosition
2004 Correlation exploitation in error ranking
abstract
Static program checking tools can find many serious bugs in software, but due to analysis limitations they also frequently emit false error reports. Such false positives can easily render the error checker useless by hiding real errors amidst the false. Effective error report ranking schemes mitigate the problem of false positives by suppressing them during the report inspection process [17, 19, 20]. In this way, ranking techniques provide a complementary method to increasing the precision of the analysis results of a checking tool. A weakness of previous ranking schemes, however, is that they produce static rankings that do not adapt as reports are inspected, ignoring useful correlations amongst reports. This paper addresses this weakness with two main contributions. First, we observe that both bugs and false positives frequently cluster by code locality. We analyze clustering behavior in historical bug data from two large systems and show how clustering can be exploited to greatly improve error report ranking. Second, we present a general probabilistic technique for error ranking that (1) exploits correlation behavior amongst reports and (2) incorporates user feedback into the ranking process. In our results we observe a factor of 2-8 improvement over randomized ranking for error reports emitted by both intra-procedural and inter-procedural analysis tools.
Ted Kremenek, Ken Ashcraft, Dawson R. Engler
SIGSOFT FSE2
2003 RacerX: effective, static detection of race conditions and deadlocks
abstract
This paper describes RacerX, a static tool that uses flow-sensitive, interprocedural analysis to detect both race conditions and deadlocks. It is explicitly designed to find errors in large, complex multithreaded systems. It aggressively infers checking information such as which locks protect which operations, which code contexts are multithreaded, and which shared accesses are dangerous. It tracks a set of code features which it uses to sort errors both from most to least severe. It uses novel techniques to counter the impact of analysis mistakes. The tool is fast, requiring between 2-14 minutes to analyze a 1.8 million line system. We have applied it to Linux, FreeBSD, and a large commercial code base, finding serious errors in all of them. RacerX is a static tool that uses flow-sensitive, interprocedural analysis to detect both race conditions and deadlocks. It uses novel strategies to infer checking information such as which locks protect which operations, which code contexts are multithreaded, and which shared accesses are dangerous. We applied it to FreeBSD, Linux and a large commercial code base and found serious errors in all of them.
Dawson R. Engler, Ken Ashcraft
SOSP2
2002 Using Programmer-Written Compiler Extensions to Catch Security Holes
abstract
This paper shows how system-specific static analysis can find security errors that violate rules such as "integers from untrusted sources must be sanitized before use" and "do not dereference user-supplied pointers." In our approach, programmers write system-specific extensions that are linked into the compiler and check their code for errors. We demonstrate the approach's effectiveness by using it to find over 100 security errors in Linux and OpenBSD, over 50 of which have led to kernel patches. An unusual feature of our approach is the use of methods to automatically detect when we miss code actions that should be checked.
Ken Ashcraft, Dawson R. Engler
S&P1