Detecting Data Races in Binaries Using Software Static Analysis

In our modern computer systems, more and more programs are using concurrency to improve performance. These programs are vulnerable to unique concurrency issues such as when multiple threads fail to synchronize access. Because these mistakes depend on specific thread timings and are therefore difficult to identify, we present in this thesis a novel static analyzer to detect data races in binary programs. To help in the identification of data races, we choose to build a program analysis tool. Our analyzer uses a lockset-based analysis inspired by the static analysis RacerX by Engler and Ashcraft. The Racerx analyzer requires source code and most of the tools currently used to detect data races require dynamic instrumentation. We propose in this thesis a new static data race detector with new binary analysis techniques that can successfully identify possible data races in programs without the need for the source code. Our thesis describes the design of our binary analyzer built on the Ghidra reverse engineering framework. We also tested an implementation of our analyzer on a set of real-world data races previously found in the Linux kernel. Finally, we explore areas where this research can be expanded such as in automated security testing or coupled with surgical dynamic instrumentation.

Publication Details

Journal
University of Ottawa - Library
Published
2024-08-21
DOI
https://doi.org/10.20381/ruor-30500
Primary Topic
Auditing, Earnings Management, Governance
Type
article
Field-Weighted Citation Impact
0.00
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Detecting Data Races in Binaries Using Software Static Analysis

University of Ottawa - Library
Auditing, Earnings Management, Governance
article

Detecting Data Races in Binaries Using Software Static Analysis

article en

Abstract

In our modern computer systems, more and more programs are using concurrency to improve performance. These programs are vulnerable to unique concurrency issues such as when multiple threads fail to synchronize access. Because these mistakes depend on specific thread timings and are therefore difficult to identify, we present in this thesis a novel static analyzer to detect data races in binary programs. To help in the identification of data races, we choose to build a program analysis tool. Our analyzer uses a lockset-based analysis inspired by the static analysis RacerX by Engler and Ashcraft. The Racerx analyzer requires source code and most of the tools currently used to detect data races require dynamic instrumentation. We propose in this thesis a new static data race detector with new binary analysis techniques that can successfully identify possible data races in programs without the need for the source code. Our thesis describes the design of our binary analyzer built on the Ghidra reverse engineering framework. We also tested an implementation of our analyzer on a set of real-world data races previously found in the Linux kernel. Finally, we explore areas where this research can be expanded such as in automated security testing or coupled with surgical dynamic instrumentation.

University of Ottawa - Library
Openalex Percentile: Top 45%
Auditing, Earnings Management, Governance
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.