Validating Memory Safety in Rust Binaries
Fuente:
Zenodo
Gespeichert in:
| Hauptverfasser: | , , |
|---|---|
| Format: | Recurso digital |
| Veröffentlicht: |
Zenodo
2024
|
| Online-Zugang: | |
| Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
| _version_ | 1866901612338872320 |
|---|---|
| author | Louka, Antonis Dionysiou, Antreas Athanasopoulos, Elias |
| author_facet | Louka, Antonis Dionysiou, Antreas Athanasopoulos, Elias |
| contents | <p>Without depending on heavy runtime support, Rust can realize fast machine code that mitigates most of the common attacks associated with memory-corruption and can appear in all unsafe machine code developed using C/C++. Most of the work for producing machine code with security guarantees is carried out at compile-time by the Rust compiler. However, at runtime, there is no mechanism to ensure that the produced security guarantees, as computed at compile-time, are still in place.<br>In this paper, we explore the possibilities of an attacker fabricating Rust binaries so that they are on purpose vulnerable. We<br>show that it is possible to modify automatically, and at large scale, binaries so that certain defences, placed by the Rust compiler, are removed. We introduce a generic problem, and focus on concepts of spatial and temporal safety. Finally, we produce a validator that assesses if all checks ensuring spatial and temporal safety remain intact within a Rust binary, before executing it. Our work is a step towards validating Rust binaries at load time so that security guarantees computed at compile-time are effective at runtime.</p> |
| format | Recurso digital |
| id | zenodo_https___doi_org_10_1145_3642974_3652281 |
| institution | Zenodo |
| language | |
| publishDate | 2024 |
| publisher | Zenodo |
| record_format | zenodo |
| spellingShingle | Validating Memory Safety in Rust Binaries Louka, Antonis Dionysiou, Antreas Athanasopoulos, Elias <p>Without depending on heavy runtime support, Rust can realize fast machine code that mitigates most of the common attacks associated with memory-corruption and can appear in all unsafe machine code developed using C/C++. Most of the work for producing machine code with security guarantees is carried out at compile-time by the Rust compiler. However, at runtime, there is no mechanism to ensure that the produced security guarantees, as computed at compile-time, are still in place.<br>In this paper, we explore the possibilities of an attacker fabricating Rust binaries so that they are on purpose vulnerable. We<br>show that it is possible to modify automatically, and at large scale, binaries so that certain defences, placed by the Rust compiler, are removed. We introduce a generic problem, and focus on concepts of spatial and temporal safety. Finally, we produce a validator that assesses if all checks ensuring spatial and temporal safety remain intact within a Rust binary, before executing it. Our work is a step towards validating Rust binaries at load time so that security guarantees computed at compile-time are effective at runtime.</p> |
| title | Validating Memory Safety in Rust Binaries |
| url | https://doi.org/10.1145/3642974.3652281 |