Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rust Foundation: September 2024 Update #421

Merged
merged 7 commits into from
Oct 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions alpha/engagements/2024/Rust Foundation/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,13 @@ In addition to the monthly reports here in GitHub, the Rust Foundation provides
* [February 2024](https://foundation.rust-lang.org/news/second-security-initiative-report-details-rust-security-advancements/)
* [July 2023](https://foundation.rust-lang.org/news/new-rust-foundation-report-details-security-initiative-progress/)

## Threat Modeling

1. **Crates ecosystem**: [Published](https://drive.google.com/file/d/1YxpJ0W5eqat2Y3ZfbdwKm_AoNhX3hIj_/)
2. **Rust Infrastructure**: [Published](https://docs.google.com/document/d/10Qlf8lk7VbpWhA0wHqJj4syYuUVr8rkGVM-k2qkb0QE/)
3. **crates.io**: [Published](https://docs.google.com/document/d/1krEL8zccid44ojS2vqxH4HRCD-bPzC7tLfcDhc5QekI/)
4. **Rust Project**: [Published](https://docs.google.com/document/d/1kpUUYekiiZRARk_EDQ7merBLmwp301yCE28MkQH-x8k/)

## Primary Contacts

* Joel Marcey - Director of Technology, Rust Foundation
Expand Down
45 changes: 45 additions & 0 deletions alpha/engagements/2024/Rust Foundation/update-2024-09.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
A successful RustConf 2024 consumed a bunch of the team's time this month, but we definitely got some wins this month. One win in particular was an agreement to use TUF for crate signing and mirroring.

## Engineering

### Rust TUF

A breakthrough occurred at [RustConf 2024](https://rustconf.com) - discussion between Foundation security initiative members and some members of the Rust Project agreed in principle that implementing [The Update Framework (TUF)](https://theupdateframework.io) for Rust was the best way to move forward with crate signing and mirroring. This would replace the original proposal outlined in the [PKI RFC](https://github.com/rust-lang/rfcs/pull/3579). This agreement in principle amongst the affected parties is actually a big milestone for progress. Now to get all this in writing and hopefully implemented.

There are some technical hurdles to overcome to make this goal of using TUF achievable. One of these hurdles is ensuring that the size of the crate payload metadata is not increased at a noticeable rate. Right now it is estimated that, as-is, 1MB of data would be appended every time the crate index was updated (which is about once a minute), and we want to try to reduce that, if possible. In order to reduce the payload size required to successfully use TUF for Rust, we want to implement [TAP16](https://github.com/theupdateframework/taps/blob/master/tap16.md). TAP16 “proposes a method for reducing the size of snapshot metadata a client must download without significantly weakening the security properties of TUF”, by using Merkle trees.

### Publish Notification Emails

Tobias has [pushed](https://github.com/rust-lang/crates.io/pull/9341/) his implementation of notifying crate owners when their crates have been published, including, to avoid potential notification overload backlash, a mechanism to [opt-out](https://github.com/rust-lang/crates.io/pull/9359), if desired. These notification emails will allow crate owners to ensure that no one is publishing their crates without their knowledge.

### Crates and Releases Backups

The [Rust Infrastructure Threat Model](https://docs.google.com/document/d/10Qlf8lk7VbpWhA0wHqJj4syYuUVr8rkGVM-k2qkb0QE/) has identified the lack of out-of-band backups for critical data assets of the Rust project as a major threat. JD and Marco are working on mirroring all Rust releases and crates into a separate infrastructure on Google Cloud Platform (GCP).

### MFA for Rust Project Infrastructure

We are starting to explore, based on the Rust Infrastructure Threat Model (https://docs.google.com/document/d/10Qlf8lk7VbpWhA0wHqJj4syYuUVr8rkGVM-k2qkb0QE/), the best way to enforce Multi-factor Authentication (MFA) on critical Rust infrastructure, from using one-time passwords to hardware tokens.

## Announcements and Community

### Dude, Where's My C?

[RustConf 2024](https://rustconf.com/) took place from 10 September - 13 September in Montreal, Quebec, Canada. One of the highlights of that conference was the conference extension Rust Global where Walter gave a talk called ["Dude Where's My C?"](https://rustconf.com/programs/#1083) to a filled room. Using [Painter](https://github.com/rustfoundation/painter) data, this talk discussed the statistics and implications of externally-linked code across the crates ecosystem. The video of the presentation should be posted in the next couple of weeks.

### C++/Rust Interop Progress

The C++/Rust Interop problem statement and high-level strategy is in its final stages of feedback and iteration. We expect this to be published to the public in October.

### Safety Critical Rust Consortium

The first official meeting of the Safety Critical Rust Consortium occurred on 10 September in Montreal, Quebec, Canada, coinciding with the beginning of RustConf.

Over 30 people attended, both in-person and virtually, from various companies and entities interested in ensuring that Rust can be used in safety critical applications. The meeting was a success with a mission being established, subcommittees being formed and excitement for future in-person meetings.

Infrastructure for the consortium such as GitHub repos, membership requirements and other governance is in the process of being setup, including chairs for the subcommittees.

The next in-person meeting is tentatively scheduled for Rust Nation in early 2025.

## Threat Modeling

Moved the links to these to the [README](./README.md) for persistent access.
Loading