Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
サプライチェーンとSLSA
Search
yoseio
April 12, 2023
Programming
1
330
サプライチェーンとSLSA
yoseio
April 12, 2023
Tweet
Share
Other Decks in Programming
See All in Programming
connect-python: convenient protobuf RPC for Python
anuraaga
0
180
複数チーム並行開発下でのコード移行アプローチ ~手動 Codemod から「生成AI 活用」への進化
andpad
0
180
開発生産性が組織文化になるまでの軌跡
tonegawa07
0
190
手軽に積ん読を増やすには?/読みたい本と付き合うには?
o0h
PRO
1
110
Agentに至る道 〜なぜLLMは自動でコードを書けるようになったのか〜
mackee
5
1.9k
AIの弱点、やっぱりプログラミングは人間が(も)勉強しよう / YAPC AI and Programming
kishida
10
5.2k
ゼロダウンタイムでミドルウェアの バージョンアップを実現した手法と課題
wind111
0
210
AIエージェントでのJava開発がはかどるMCPをAIを使って開発してみた / java mcp for jjug
kishida
4
760
なぜ強調表示できず ** が表示されるのか — Perlで始まったMarkdownの歴史と日本語文書における課題
kwahiro
12
7.2k
r2-image-worker
yusukebe
1
180
DartASTとその活用
sotaatos
2
150
Nitro v3
kazupon
2
320
Featured
See All Featured
Building Applications with DynamoDB
mza
96
6.8k
Unsuck your backbone
ammeep
671
58k
Facilitating Awesome Meetings
lara
57
6.6k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
Writing Fast Ruby
sferik
630
62k
Into the Great Unknown - MozCon
thekraken
40
2.2k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
Git: the NoSQL Database
bkeepers
PRO
432
66k
It's Worth the Effort
3n
187
29k
Transcript
サプライチェーンとSLSA 2022/04/12
ソフトウェアサプライチェーン https://slsa.dev/spec/v0.1/terminology より
脅威 https://slsa.dev/spec/v0.1/threats より
実際の攻撃:Linux Hypocrite Commits • https://lore.kernel.org/lkml/202105051005.49BFABCE@keesco ok/ • 研究目的で脆弱性を含むパッチをLinuxカーネルコミュニティーに投稿し た
実際の攻撃:Linux Hypocrite Commits
実際の攻撃:SolarWinds • https://www.crowdstrike.com/blog/sunspot-malware-technic al-analysis/ • ビルドシステムにマルウェア • コンパイルに関わるプロセスの実行を監視し、ソースファイルを置き換え て、バックドアを仕込む
実際の攻撃:SolarWinds
実際の攻撃:CodeCov • https://about.codecov.io/apr-2021-post-mortem/ • 漏洩した鍵を使ってGCSに悪意のあるファイルをアップロードし、ユーザー に配信
実際の攻撃:CodeCov
SLSAとは • SLSA:Supply chain Levels for Software Artifacts • サプライチェーンにおける成果物の完全性に関するフレームワーク
• GoogleのBinary Authorization for Borgが元になっている • 4つのレベル https://slsa.dev/spec/v0.1 より
SLSAレベル レベル1 ビルドプロセスのドキュメント化 レベル2 ビルドサービスの耐タンパー性 レベル3 特定の脅威に対するさらなる耐性 レベル4 最高レベルの信頼と信用
実装:GitHub Actions • SLSA GitHub Generatorを使う • やってくれること ◦ provenanceの生成
▪ 任意のアーティファクト ◦ provenanceの署名 ▪ Sigstoreを使ってActionsのOIDCトークンで署名する • やってくれないこと ◦ 特になし(GitLab CI・Cloud Buildと比較)
実装:GitLab CI • SLSAが組み込まれている(GitLab Runner 15.1 ~) • やってくれること ◦
provenanceの生成 ▪ ジョブアーティファクト • やってくれないこと ◦ ジョブアーティファクト以外に対するprovenanceの生成 ◦ provenanceの署名 ▪ gitlab.com/gitlab-org/gitlab-runner/-/issues/29063
実装:Cloud Build • SLSAが組み込まれている • やってくれること ◦ provenanceの生成 ▪ Java・Python・コンテナ
◦ provenanceの署名 ▪ DSSEに準拠した署名 • やってくれないこと ◦ Java・Python・コンテナ以外に対するprovenanceの生成
SLSA 1.0に向けて • 変更点 ◦ 複数のトラックに分割 ▪ 1.0 RCではビルドトラック(L1 ~
L3)のみ ◦ provenanceの検証について明確化 • 今後の方向性 ◦ ビルドトラック L4の追加 ◦ ソーストラックの追加
所感 • まだ仕様が安定していないので導入は慎重にしたい ◦ 0.1 → 1.0は変更が大きいので1.0まで待ちたい ◦ 1.0以降は仕様が追加されるだけになりそう •
必要に応じてポリシーエンジンを導入する ◦ GKE・Cloud Runの場合はBinary Authz ◦ Sigstoreの場合はPolicy Controller • Sigstoreを使う際はRekorに注意
参考文献 • https://slsa.dev • https://github.com/slsa-framework/slsa-github-generator • https://docs.gitlab.com/ee/ci/runners/configure_runners.html • https://cloud.google.com/build/docs/securing-builds/view-build-provenance