Skip to content

Commit f95ef01

Browse files
committed
fix: add landing redirect, additional content
1 parent 1612ffb commit f95ef01

File tree

6 files changed

+176
-117
lines changed

6 files changed

+176
-117
lines changed

docs/compliance/SLSA.md

Lines changed: 65 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,31 +4,87 @@ title: "SLSA ・ Supply-chain Levels for Software Artifacts"
44
sidebar_label: "SLSA"
55
---
66

7-
# SLSA
7+
# SLSA: Your Blueprint for Securing the Software Supply Chain
88

9-
**Supply-chain Levels for Software Artifacts**, or **[SLSA](https://slsa.dev/)** _(pronounced "salsa")_, is a vendor-neutral security framework that provides guidance on building and delivering software securely. Supported by the [Open Source Software Security Foundation](https://openssf.org/), SLSA consists of a specification that developers can reference when identifying areas of potential improvement. It was [created by Google in 2021](https://security.googleblog.com/2021/06/introducing-slsa-end-to-end-framework.html) to help software developers fortify their supply chain security by incorporating the best industry practices end-to-end. It also enables consumers to better evaluate the software they adopt, before they adopt it.
9+
Ever wonder how to stop supply chain attacks like SolarWinds or Log4Shell in their tracks? Enter **Supply-chain Levels for Software Artifacts**, or **[SLSA](https://slsa.dev/)** _(pronounced "salsa")_. This framework is your recipe for hardening the software you build, deliver, and consume—step by step.
1010

11-
SLSA is divided into four different **[levels](https://slsa.dev/spec/v1.0/levels)**, which are further broken up into their own tracks, each expanding on the previous. Each level within a track measures a particular aspect of supply chain security. The idea is that, as your security posture matures, you work your way up through the different levels, like a ladder.
11+
[Created by Google](https://security.googleblog.com/2021/06/introducing-slsa-end-to-end-framework.html) and supported by the [Open Source Software Security Foundation](https://openssf.org/), SLSA is the industry's answer to supply chain chaos. With four progressive levels, it helps you secure your software artifacts from tampering and build trust with end users.
1212

13-
## SLSA Level 0: Build Basics
13+
is a vendor-neutral security framework that provides guidance on building and delivering software securely. Supported by the [Open Source Software Security Foundation](https://openssf.org/), SLSA consists of a specification that developers can reference when identifying areas of potential improvement. It was [created by Google in 2021](https://security.googleblog.com/2021/06/introducing-slsa-end-to-end-framework.html) to help software developers fortify their supply chain security by incorporating the best industry practices end-to-end. It also enables consumers to better evaluate the software they adopt, before they adopt it.
14+
15+
## Why does SLSA matter?
16+
17+
Software supply chains are more vulnerable than ever:
18+
- Dependencies sneak in unnoticed.
19+
- Build environments are ripe for tampering.
20+
- Provenance (the “who, what, where” of your code) is often nonexistent.
21+
22+
SLSA fixes these issues by providing a ladder of security maturity. Whether you're a developer or an organization, each level of SLSA improves your security posture.
23+
24+
## SLSA Levels & Tracks
25+
26+
SLSA is divided into four different **[levels](https://slsa.dev/spec/v1.0/levels)**. Each level within a track measures a particular aspect of supply chain security (e.g. build, source, dependencies).
27+
28+
Levels are further broken up into their own tracks, each expanding on the previous. The idea is that, as your security posture matures, you work your way up through the different levels, like a ladder.
29+
30+
- **Levels** define the overall maturity of your security practices.
31+
- **Tracks** identify specific areas of improvement (i.e. "source" ensures code integrity, while "build" ensures artifact integrity).
32+
33+
34+
### SLSA Level 0: The Starting Line
35+
36+
This is the Wild West of software development, where most software starts. No automation, no reproducibility, no trust. It’s like baking a cake without writing down the recipe—you might get something tasty once, but good luck doing it again the same way.
37+
38+
The build process might be manual, dependencies aren't tracked, and there's no way to verify the integrity of your artifacts.
39+
40+
- Risk: Tampering is undetectable, and no one knows how your software was built.
41+
- Goal: Recognize this as the starting point and commit to improvement.
42+
43+
### SLSA Level 1
1444

1545
The main focus of Level 1 is on automation, as manual processes are error-prone. It requires the build process to be fully scripted, meaning no manual, ad hoc commands. This ensures the builds are at least reproducible.
1646

47+
Requirements:
48+
- A defined build process (e.g. CI/CD pipelines).
49+
- Artifacts can be recreated reliably.
50+
51+
Example: Running `make` commands directly on your local machine and manually uploading binaries to a server.
52+
53+
Example tools might include Jenkins, GitHub Actions, or GitLab CI.
54+
1755
:::tip[Did you know?]
1856

19-
SLSA 1 is achievable for many teams with minimal effort—if you're using CI/CD pipelines, you might already be there!
57+
SLSA L1 is achievable for many teams with minimal effort—if you're using CI/CD pipelines, you might already be there!
2058

2159
:::
2260

23-
## SLSA Level 1: Provenance Proofs
61+
SLSA L1 is a means to an end, and should be seen as a stepping stone towards improving your overall approach to security.
62+
63+
64+
### SLSA Level 2: Provenance Proofs
2465

2566
Level 2 introduces the concept of [provenance](/what-is-software-provenance-and-why-is-it-important-for-security), a verifiable statement of what, how, and where something was built. Build systems must generate signed provenance documents.
2667

27-
## SLSA Level 2: Tamper Resistance
68+
Builds must be performed in a secure environment that prevents tampering, which involves using isolated, authenticated systems (e.g. hardened CI/CD environments).
69+
70+
### SLSA Level 3: Fully Fortified
2871

29-
Builds must be performed in a secure environment that prevents tampering. This involves using isolated, authenticated systems (e.g. hardened CI/CD environments).
72+
This is the gold standard. At Level 3:
73+
- Builds are hermetic (completely isolated from the outside world).
74+
- Dependencies are verified and controlled.
75+
- Build environments are hardened to prevent tampering.
3076

31-
## SLSA Level 3: Fully Fortified
77+
Additional practices include:
78+
- Two-person review for every change.
79+
- Strict control over source and dependencies.
80+
- Requirements:
81+
- All Level 2 controls.
82+
- Builds must be tamper-proof and reproducible in a hermetic environment.
83+
- Example Tools:
84+
- Containerized builds (e.g., using Docker or Bazel).
85+
- Cloud-native build systems like GCP Cloud Build or AWS CodeBuild.
3286

3387
This level adds two-person review for all changes and hermetic builds, meaning builds are completely isolated from the outside world. Every dependency must be verified.
3488

89+
90+

docs/software-supply-chain-security/sboms.mdx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
sidebar_position: 2
33
slug: "/what-is-an-sbom-software-bill-of-materials-and-why-does-it-matter"
4+
sidebar_label: "SBOMs"
45
---
56
import { Scrollycoding } from "/src/components/scrollycoding";
67

@@ -12,7 +13,7 @@ In recent years, the relevance of SBOMs has increased rapidly, with regulatory m
1213

1314
A **Software Bill of Materials**, or **SBOM**, is an inventory file that lists all components within a piece of software, including any dependencies. Those components can include anything from open source libraries, APIs, licenses, and known vulnerabilities.
1415

15-
## Why are SBOMs in vulnerability management?
16+
## Why are SBOMs important in vulnerability management?
1617

1718
The applications we build and use everyday ship with many dependencies. Those dependencies are then likely have _their own_ dependencies, which, in turn, might consist of _their_ own dependencies, and so on. When you consider that any single one of those dependencies can be exploited, it's easy to see why it's important that we are able to track and monitor them.
1819

docusaurus.config.ts

Lines changed: 13 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const chConfig = {
1414

1515
const config: Config = {
1616
title: "Trusted Foundations",
17-
tagline: "Software supply chain security tutorials and tips",
17+
tagline: "Notes and tutorials",
1818
favicon: "img/trusted-foundations-icon.ico",
1919

2020
// production url
@@ -55,21 +55,13 @@ const config: Config = {
5555
recmaPlugins: [[recmaCodeHike, chConfig]],
5656
routeBasePath: "/", // serve the docs at the site's root
5757
sidebarPath: "./sidebars.ts",
58-
// Please change this to your repo.
59-
// Remove this to remove the "edit this page" links.
60-
// editUrl:
61-
// 'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/',
6258
},
6359
// blog: {
6460
// showReadingTime: true,
6561
// feedOptions: {
6662
// type: ['rss', 'atom'],
6763
// xslt: true,
6864
// },
69-
// // Please change this to your repo.
70-
// // Remove this to remove the "edit this page" links.
71-
// editUrl:
72-
// 'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/',
7365
// // Useful options to enforce blogging best practices
7466
// onInlineTags: 'warn',
7567
// onInlineAuthors: 'warn',
@@ -131,27 +123,25 @@ const config: Config = {
131123
],
132124
copyright: `Copyright © ${new Date().getFullYear()} Trusted Foundations`,
133125
},
134-
// Replace with your project's social card
135-
// image: 'img/docusaurus-social-card.jpg',
126+
// social card
136127
image: "img/trusted-foundations-icon.svg",
137-
metadata: [{ name: "keywords", content: "open source, security" }],
128+
metadata: [
129+
{ name: "keywords", content: "software supply chain, security" },
130+
],
138131
navbar: {
139132
title: "Trusted Foundations",
140133
logo: {
141134
alt: "Logo",
142-
// src: 'img/logo.svg',
143135
src: "img/trusted-foundations-icon.svg",
144136
},
145-
items: [
146-
{
147-
type: "docSidebar",
148-
sidebarId: "tutorialSidebar",
149-
position: "right",
150-
label: "Learning",
151-
},
152-
// {to: '/blog', label: 'Blog', position: 'left'},
153-
// { href: "/resources", label: "Resources", position: "left" },
154-
],
137+
// items: [
138+
// {
139+
// type: "docSidebar",
140+
// sidebarId: "tutorialSidebar",
141+
// position: "right",
142+
// label: "Learning",
143+
// },
144+
// ],
155145
},
156146
prism: {
157147
theme: prismThemes.github,

src/components/HomepageFeatures/index.tsx

Lines changed: 35 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import type { ReactNode } from "react";
22
import clsx from "clsx";
33
import Heading from "@theme/Heading";
44
import styles from "./styles.module.css";
5+
import { Redirect } from "@docusaurus/router";
56

67
type FeatureItem = {
78
title: string;
@@ -10,46 +11,46 @@ type FeatureItem = {
1011
};
1112

1213
const FeatureList: FeatureItem[] = [
13-
// {
14-
// title: 'Easy to Use',
15-
// Svg: require('@site/static/img/undraw_docusaurus_mountain.svg').default,
16-
// description: (
17-
// <>
18-
// Docusaurus was designed from the ground up to be easily installed and
19-
// used to get your website up and running quickly.
20-
// </>
21-
// ),
22-
// },
23-
// {
24-
// title: 'Focus on What Matters',
25-
// Svg: require('@site/static/img/undraw_docusaurus_tree.svg').default,
26-
// description: (
27-
// <>
28-
// Docusaurus lets you focus on your docs, and we&apos;ll do the chores. Go
29-
// ahead and move your docs into the <code>docs</code> directory.
30-
// </>
31-
// ),
32-
// },
33-
// {
34-
// title: 'Powered by React',
35-
// Svg: require('@site/static/img/undraw_docusaurus_react.svg').default,
36-
// description: (
37-
// <>
38-
// Extend or customize your website layout by reusing React. Docusaurus can
39-
// be extended while reusing the same header and footer.
40-
// </>
41-
// ),
42-
// },
14+
{
15+
title: "Security Fundamentals",
16+
// Svg: require('@site/static/img/undraw_docusaurus_mountain.svg').default,
17+
description: (
18+
<>
19+
Docusaurus was designed from the ground up to be easily installed and
20+
used to get your website up and running quickly.
21+
</>
22+
),
23+
},
24+
{
25+
title: "Best Practices",
26+
// Svg: require('@site/static/img/undraw_docusaurus_tree.svg').default,
27+
description: (
28+
<>
29+
Docusaurus lets you focus on your docs, and we&apos;ll do the chores. Go
30+
ahead and move your docs into the <code>docs</code> directory.
31+
</>
32+
),
33+
},
34+
{
35+
title: "Compliance",
36+
// Svg: require('@site/static/img/undraw_docusaurus_react.svg').default,
37+
description: (
38+
<>
39+
Extend or customize your website layout by reusing React. Docusaurus can
40+
be extended while reusing the same header and footer.
41+
</>
42+
),
43+
},
4344
];
4445

4546
function Feature({ title, Svg, description }: FeatureItem) {
4647
return (
4748
<div className={clsx("col col--4")}>
4849
<div className="text--center">
49-
<Svg
50-
className={styles.featureSvg}
51-
role="img"
52-
/>
50+
{/*<Svg*/}
51+
{/* className={styles.featureSvg}*/}
52+
{/* role="img"*/}
53+
{/*/>*/}
5354
</div>
5455
<div className="text--center padding-horiz--md">
5556
<Heading as="h3">{title}</Heading>

0 commit comments

Comments
 (0)