Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Introduction Supply Chain Security
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Masahiro331
July 02, 2022
Technology
200
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Introduction Supply Chain Security
Recent trends in supply chain security.
Masahiro331
July 02, 2022
More Decks by Masahiro331
See All by Masahiro331
Model Context Protocol 勉強会
masahiro331
0
120
OSSに新機能を追加するまでの苦労話
masahiro331
0
260
Analyze Filesystem in Virtual Machine Image
masahiro331
0
260
SBOMを利用したソフトウェアサプライチェーンの保護
masahiro331
4
3.1k
Container Security with Trivy
masahiro331
0
270
VirtualMachine Image scanning PoC with Molysis
masahiro331
0
220
Other Decks in Technology
See All in Technology
内製アプリとClaudeスキルのセキュリティチェック、 Backlogの課題で回しています。
ayaka_egaaa
0
140
企画からFlutter実装まで、1つの機能を一貫して開発したプロセスと成果物
khiroyuki1003
1
160
[JAWS Festa 2026]一番いい仕事は、請求書に現れない / jawsfesta2026
sh_fk2
2
330
「いつか使う」の「いつか」は来ない 〜AI駆動開発における「作らない」判断について〜
ikki0006
0
150
増え続けるプロダクトの品質をどう担保するか。ProductSpecとTypeScriptによる取り組み
joere
3
1k
コードレビューをなくして見えたもの
henteko
0
140
レガシーコードに対する loop engineering的なAI開発プロセス導入について
kubell_hr
0
280
なぜ東京にいる私が、新潟の技術コミュニティを運営するのか by 八雲慎之助
yakumo
0
220
慶應義塾大学 AI実践05 論文執筆の仕組み化
keio_smilab
PRO
7
3.7k
リアクションエンジニア ― 小さなリアクションから、話しかけやすい組織をつくる ―
ryuguyana
1
130
【dbts2026】AIエージェントの 判断と探索を変える、 データベース エンジニアリング― 既存DBの処理と依存関係から作る、オペレーショナルオントロジー ―
shisyu_gaku
0
230
DBTS2026 盛り上がってますか!?Databricksが実現するAI時代のデータ基盤
akuwano
1
190
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Amusing Abliteration
ianozsvald
1
380
Into the Great Unknown - MozCon
thekraken
41
2.8k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
60k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
970
Balancing Empowerment & Direction
lara
6
1.4k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.8k
Rails Girls Zürich Keynote
gr2m
96
14k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
660
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Transcript
はじめに 僕が興味の赴くままに勉強したことを共有します。 今日のお話 Supply Chain Security のお話 なぜ Supply Chain
Security を考えるのか? 世の中ではどのように議論されているのか? 大きな課題に対する取り組み方も勉強になる 今日のゴール 雰囲気を持ち帰って欲しい(僕も雰囲気しか理解できてないから) 1
なぜ Supply Chain Security が必要なのか すでに脅威として世の中で騒がれている IPAが出している 情報セキュリティの10大脅威 にもランクインしている 2
Sonatype からも攻撃が増加しているとのレポートが出ている 3
Supply Chain Security とは ソフトウェアの供給プロセス全体で整合性を保護し、各プロセスへの攻撃からプロダクトを 守ること → サプライチェーン攻撃から守ること 4
サプライチェーン攻撃とは 大きく分けて2種類の攻撃が存在 取引先や関連会社、グループ会社を経由した攻撃 ターゲット企業とやり取りがある比較的セキュリティレベルが低い取引先や関連会社、 グループ会社を経由し、攻撃を行う方法。 ソフトウェアが依存しているモジュールなどを標的とした攻撃 広く利用されるソフトウェアや、ターゲット企業が利用するであろうソフトウェアやソ フトウェアの更新プログラムに攻撃を行う方法。 今日は ソフトウェアが依存しているモジュールなどを標的とした攻撃
への対策としてのサプ ライチェーンセキュリティの話 5
具体的にどのような攻撃が行われているのか Node.jsの event-streamライブラリにマイニングスクリプトを埋め込まれた事件 https://arstechnica.com/information-technology/2018/11/hacker-backdoors-widely- used-open-source-software-to-steal-bitcoin/ SolarWinds事件 ネットワーク監視機器にマルウェアを混入 https://orangematter.solarwinds.com/2021/01/11/new-findings-from-our- investigation-of-sunburst/ Codecov
CI/CD上で動作するツール上経由でGitHubのクレデンシャルなどが漏洩 https://blog.gitguardian.com/codecov-supply-chain-breach/ そのほかの事例についてはCNCFが纏めてたりする https://github.com/cncf/tag-security/tree/main/supply-chain-security/compromises 6
これらの脅威に対しての取り組みについて 様々な団体がこれらの問題に対して取り組んでいる. OpenSourceSecurity Foundation(OSSF) が主導して取り組んでいる LinuxFoundation 配下の WG OpenSourceSecurity Foundation
の GitHub 業界関係者と政府関係者を集めて今後の計画を発表している CNCFでもTAG-SecurityというWGが立ってる https://github.com/cncf/tag-security 7
OSSF について OSSF が目指す世界 OSSの開発者 サプライチェーンの各プロセスにおいて、ソフトウェアの作成者、作成、コンポーネント、 健全性、セキュリティ、ライセンス、アイデンティティ、その他の側面に関する暗号的に検 証可能な情報をシームレスに収集し公開できるようにする。 OSSの利用者 この情報をシームレスに比較し、セキュリティとコンプライアンスの必要性に応じて、ソフ
トウェアの受け入れ、拒否、軽減のポリシーを適用できる状態にする。 8
OSSF の進め方 (少し脱線) アプローチ 1. スコープの合意 2. サプライチェーンにおける脅威モデルを定義する 3. いくつかのコミュニティと協力して、脅威の対策を検討する
4. これらの解決策を一般化する ※ 合意したスコープを探したけど見つからなかった... 9
本題 10
現在取り組まれていること 脅威モデル の作成と検討 SLSA の制定 サプライチェーンを保護するためのガイドライン Digital Identity Attestation の検討
OSS開発者とOSS利用者が、作成、使用するコードの出所を理解し、決定できるように することを目的 SLSA を元に脅威モデルやDigital Identity Attestationについて触れていく 11
ここからの話 脅威モデルについて SLSA について Digital Identity Attestation について 12
脅威モデルについて SLSA について Digital Identity Attestation について 13
脅威モデルについて 読んでください https://docs.google.com/document/d/1xVQowaPQ_x_yaMu2GY59iP74I54lbizmUuDFIrax 3OQ/edit# 14
脅威モデルについて SLSA について Digital Identity Attestation について 15
SLSA について SLSAは(Supply-chain Levels for Software Artifacts)の略でサプライチェーンの保護レベ ルを定義するセキュリティフレームワーク。 具体的には、4つのレベルとそれらの Requirements
を定義している。 現在は SLSA Level 2 までを対応するために必要なツールを提供している。 16
SLSA におけるソフトウェアサプライチェーンの定義 Source GitHubにcommitされたソースコード Build Travis CIやJenkinsなどのCI/CD もしくは ローカル環境かもしれない Package
Buildプロセスの出力 (例: docker image, zip, jar, なんでも) Dependencies Buildプロセスへの入力だが、ソースではないアーティファクト。 17
ソフトウェアサプライチェーンにおける脅威の定義 具体的な脅威については以下に記載されている。 https://slsa.dev/spec/v0.1/threats 18
SLSA Level と Requirements SLSA は Build, Source, Deps の3つの環境へのセキュリティ対策の達成度ごとにレベルを定
義している。 Levelごとに Requirements を定めている。 https://slsa.dev/spec/v0.1/requirements 19
セキュリティレベルについて (1) SLSA 1. Documentation of the build process ビルドプロセスの
Provenance(来歴)を作成すること。 ビルドプロセスが自動化され、Provenanceを生成する必要がある。 Provenance は、ビルドプロセス、ソースコード、依存関係など、アーティファクトがどのよ うにビルドされたかに関するメタデータ Provenance を用いることで、ソフトウェアの利用者はリスクに基づいたセキュリティ上の決 定を下すことができる。SLSA 1は Provenance の改ざんには対応できないが、コードソース を識別し、脆弱性管理することが可能。 20
セキュリティレベルについて (2) SLSA 2. Tamper resistance of the build service
バージョン管理と、署名された Provenance を生成すCI/CDの環境を利用する必要がある。 SLSA 2 では、Provenance により、ビルドサービスが信頼できる範囲での改ざんが防止でき る。 SLSA 3. Extra resistance to specific threats SLSA 2に対してより強固なBuild環境の提供 SLSA 4. Highest levels of confidence and trust SLSA 3に対してより強固なBuild環境の提供とソースコードの管理 https://slsa.dev/spec/v0.1/levels 21
セキュリティレベルについて (まとめ) 各レベルに対する要件 基本的には以下の3つに対して要件が定められている。 Build環境 ソースコードの管理 Provenance https://slsa.dev/spec/v0.1/requirements セキュリティモデルと脅威モデル 各レベルに対して対策される脅威がマッピングされている
https://slsa.dev/spec/v0.1/threats 22
Provenance 目的 アーティファクトまたはアーティファクトのセットがどのように生成されたかを示すための もの Prerequisite Understanding of SLSA Software Attestations
and the larger in-toto attestation framework. Software Attestation と in-toto attestation を知らないとダメのようなのでその話をします。 実質これが Digital Identity Attestationです。 23
脅威モデルについて SLSA について Digital Identity Attestation について 24
Digital Identity Attestation とは OSS開発者/貢献者/利用者が、保守/開発/利用するコードが どこから どのように 供給されて いるかを理解し、利用判断できるようにすること https://github.com/ossf/wg-supply-chain-integrity/tree/main#readme
Digital Identity Attestation の一種である Software Attestation を紹介する。 要約 25
Software Attestation 「何が(Subject)、どのように作成(Predicate)、誰が署名(Signature)」などのメタデータをモ デル化したもの。 以下のモデルを満たしていれば ソフトウェアアテステーション とみなせ る。 26
in-toto Attestation Software Attestation の一つの形式として in-toto attestation が推奨されている。 Software attestationを実体化した仕様
ソフトウェアアーティファクトのメタデータ向けの署名方法とデータ形式を定義 メタデータはデータ型を指定し、Provenance や SBOM などのデータ型があり、ま た独自定義も可能 署名方法は cosign が推奨されている 27
in-toto Attestation (例) シナリオ masahiro331 が自作の Docker Image に masahiro331
が作ったことを署名したい 方法は以下 Artifact は Docker Image Predicate(メタデータ) の型を http://my.example.com/author とする メタデータ は {"author": "masaihro331"} Subject は Docker Image の sha256 Digest 49193a2310dbad4c02382da87ac624a80a92387a4f7536235f9ba590e5bcd7b5 署名はcosignで生成した鍵を使用 28
Statement の作成 Subject と Predicate を用いて 「Docker Image」を「masahiro331によって作成」を表現し ている {
"_type": "https://in-toto.io/Statement/v0.1", "predicateType": "http://my.example.com/author", "subject": [ { "name": "masahiro331/maven-test-project", "digest": { "sha256": "49193a2310dbad4c02382da87ac624a80a92387a4f7536235f9ba590e5bcd7b5" } } ], "predicate": { "author": "masahiro331" } } 29
Attestation の作成 Statement を base64 encode し、 payload に詰め込んでから 署名している。
{ "payloadType": "application/vnd.in-toto+json", "payload": "eyJfdHlwZSI6Imh0dHBzOi8vaW4tdG90by5pby9TdGF0ZW1lbnQvdjAuMSIsInByZ...", "signatures": [ { "keyid": "", "sig": "MEQCIG+na8kNMK4u9j2jc2Db94aR0rglNqbHZcscHH9QqP..." } ] } 30
デモ 31
in-toto で表現できることまとめ Subject なにが (アーティファクトのDigest) Predicate なにに依存して (SBOM) どのように作られたか (Provenance)
誰が (author) その他自由 Signature 署名 (cosign) 32
まとめ Supply Chain Security が 流行っていてそれらに対処する仕様が作られつつある。 業界の中で先頭を走っているのは SLSA Framework かもしれない(多分)
in-toto attestation format が Software Attestation の中でも有力 33