Skip to content

Commit 842b8c4

Browse files
committed
Enhance the mission objectives
1 parent 7e9e575 commit 842b8c4

7 files changed

Lines changed: 20 additions & 5 deletions

File tree

labspace/01-docker-init.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
**Mission**: Docker Commandos arrive at Asgard and initiate their mission to contain the outbreak. Gord orders, "Set up a command center for us". Valkyrie and Agent Null start setting up the command center, while Jack and Evie secure the perimeter.
44

5+
![Docker Commandos setting up the command center](https://dockersecurity.io/commandos-asgard/asgard-init.png)
6+
57
**Real-world context**: Docker Init creates secure, production-ready Dockerfiles using established best practices, reducing the likelihood of security misconfigurations from day one.
68

79
Docker Init is a command to initialize a Docker project with a Dockerfile and other necessary files:
@@ -13,6 +15,9 @@ Docker Init is a command to initialize a Docker project with a Dockerfile and ot
1315

1416
### Usage
1517

18+
> [!NOTE]
19+
> The command `docker init` is not available in the Labspace experience, so you can go to `flask-init` directly to see the generated files, and carry out the rest of the lab from there.
20+
1621
On the repo, go to the Flask example directory:
1722

1823
```bash

labspace/02-sbom.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,18 @@
1111
In the Docker Init step, we built an image with tag `flask-server:latest`. Let's check the SBOM for this image:
1212

1313
```bash
14-
docker sbom flask-server:latest
14+
docker scout sbom flask-server:latest --format list
1515
```
1616

1717
The output will show the SBOM in a table format. Try to export it to a SPDX file:
1818

1919
```bash
20-
docker sbom --format spdx-json flask-server:latest > sbom.spdx.json
20+
docker sbom flask-server:latest --format spdx --output sbom.spdx.json
2121
```
2222

2323
If you investigate the file, you will see that it contains a list of all the packages used in the image, their versions, and the licenses.
2424

2525
### Exercises
2626

27-
- 2.1. Use `docker sbom --help` to check available formats for the SBOM output.
27+
- 2.1. Use `docker scout sbom --help` to check available formats for the SBOM output.
2828
- 2.2. Compare different base images: `docker sbom node:22` vs `docker sbom node:22-alpine` - which has fewer packages?

labspace/04-sbom-attestations.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
**Mission**: The Valkyrie sets up a camera with face recognition and says, "I can generate an ID card for everyone in Asgard, and attach it to their database face record. That way, we can verify their identity at the checkpoints."
44

5-
![SBOM Attestations](https://dockersecurity.io/commandos-asgard/asgard-3.1.png)
5+
![SBOM Attestations](https://dockersecurity.io/commandos-asgard/asgard-checkpoint.png)
66

77
**Real-world context**: SBOM attestations are SBOMs generated during build time and cryptographically signed, providing tamper-proof component information that travels with your image.
88

@@ -44,6 +44,8 @@ Check the SBOM attestations for the image again:
4444
docker scout cves cpp-hello:with-build-stage
4545
```
4646

47+
![SBOM Attestations](https://dockersecurity.io/commandos-asgard/asgard-3.1.png)
48+
4749
### Exercises
4850

4951
- 4.1. Store the SBOM locally: `docker buildx build --sbom=true --sbom-output=type=local,dest=. -t test-image .`

labspace/07-vex-attestation.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
**Mission**: The Valkyrie issues "Check Exemption" badges for the Exempted CVEs, and adds them to the checkpoints. "The Exempted CVEs can pass through the checkpoints without being flagged, as they are not a threat to us."
44

5-
![Mina found a new warrior when fighting CVEs](https://dockersecurity.io/commandos-asgard/asgard-4.5.png)
5+
![Mina issues a VEX attestation for the exempted CVE](https://dockersecurity.io/commandos-asgard/asgard-vex.png)
66

77
**Real-world context**: VEX attestations are cryptographically signed exemptions that travel with your image, providing tamper-proof vulnerability exception documentation that's verified automatically.
88

@@ -23,6 +23,8 @@ Next time, you won't need to pass the VEX statement to the Scout scan, as it is
2323
docker scout cves aerabi/flask-hello:with-sbom
2424
```
2525

26+
![Mina found a new warrior when fighting CVEs](https://dockersecurity.io/commandos-asgard/asgard-4.5.png)
27+
2628
### Exercises
2729

2830
- 7.1. Research how else can one generate VEX statements besides using `vexctl create` command.

labspace/09-cosign.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
**Mission**: With the party still going, Evie steps away from the celebration and quietly gets to work. One by one, she signs each SBOM attestation and each VEX attestation with her special pen, ensuring their originality. "A document without a signature is just a rumor," she says.
44

5+
![Evie signing the SBOM and VEX attestations](https://dockersecurity.io/commandos-asgard/asgard-sign.png)
6+
57
**Real-world context**: Cosign (part of the Sigstore project) lets you cryptographically sign container images and attestations. Consumers can then verify those signatures before running anything.
68

79
### Usage

labspace/10-zero-day.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
**Mission**: During the party, Artemisia and Rothütle come to Gord, "Artemisia says she senses something off with Null," Rothütle adds, "I think Null is a traitor, he might be working with the CVEs." As they are talking, they notice Null throwing a smoke bomb and disappearing.
44

5+
![Null throwing a smoke bomb](https://dockersecurity.io/commandos-asgard/asgard-6.png)
6+
57
**Real-world context**: Zero-day vulnerabilities are unknown to security systems. Defense requires proactive security measures that protect against unknown attack vectors.
68

79
### Usage

labspace/11-final-mission.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
The hunt is complete, but Agent Null has escaped to the Black Forest. The Commandos have successfully defended Asgard using systematic security practices.
44

5+
![10 Docker Commandos in Asgard](https://dockersecurity.io/blog-img/10-commandos-asgard.png)
6+
57
## Victory Conditions
68

79
- ✅ All builds generate SBOM and provenance attestations

0 commit comments

Comments
 (0)