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
SOSS Community Day North America 2024 セッション報告
Search
Linux Foundation Japan
PRO
May 16, 2024
Technology
0
230
SOSS Community Day North America 2024 セッション報告
日立製作所 研究開発グループ 下沢拓氏
2024年5月13日開催 OSSセキュリティMeetup講演資料
Linux Foundation Japan
PRO
May 16, 2024
Tweet
Share
More Decks by Linux Foundation Japan
See All by Linux Foundation Japan
SOSS Fusion セッション報告
lfj
PRO
0
25
SOSS Community Day Japan イベントレポート
lfj
PRO
0
26
Open Source Summit Japan 2024 / Japan SBOM Summit 2024 Wrap up
lfj
PRO
0
30
SOSS Community Day EUROPE イベントレポート
lfj
PRO
0
34
OpenSSF 10分クッキング ー 10分でOpenSSFを解説
lfj
PRO
0
41
Open Source Summit EU 参加レポート
lfj
PRO
0
48
OSS Security Meetup Tokyo Oct 3, 2024
lfj
PRO
0
48
SLSA概要紹介 Supply-chain Levels for Software Artifacts
lfj
PRO
0
91
SOSS Community Day Report
lfj
PRO
0
160
Other Decks in Technology
See All in Technology
DevOps視点でAWS re:invent2024の新サービス・アプデを振り返ってみた
oshanqq
0
180
レンジャーシステムズ | 会社紹介(採用ピッチ)
rssytems
0
150
C++26 エラー性動作
faithandbrave
2
750
NW-JAWS #14 re:Invent 2024(予選落ち含)で 発表された推しアップデートについて
nagisa53
0
270
.NET 9 のパフォーマンス改善
nenonaninu
0
990
Google Cloud で始める Cloud Run 〜AWSとの比較と実例デモで解説〜
risatube
PRO
0
110
Storage Browser for Amazon S3
miu_crescent
1
200
MLOps の現場から
asei
6
650
ブラックフライデーで購入したPixel9で、Gemini Nanoを動かしてみた
marchin1989
1
540
KnowledgeBaseDocuments APIでベクトルインデックス管理を自動化する
iidaxs
1
260
2024年にチャレンジしたことを振り返るぞ
mitchan
0
140
普通のエンジニアがLaravelコアチームメンバーになるまで
avosalmon
0
100
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
VelocityConf: Rendering Performance Case Studies
addyosmani
326
24k
How to train your dragon (web standard)
notwaldorf
88
5.7k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.9k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
247
1.3M
Rails Girls Zürich Keynote
gr2m
94
13k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
How to Think Like a Performance Engineer
csswizardry
22
1.2k
Fireside Chat
paigeccino
34
3.1k
Automating Front-end Workflow
addyosmani
1366
200k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Transcript
© Hitachi, Ltd. 2024. All rights reserved. SOSS Community Day
North America 2024 セッション報告 日立製作所 研究開発グループ 2024/05/13 下沢 拓
1 © Hitachi, Ltd. 2024. All rights reserved. sigstore: 2024
and beyond (1/6) • sigstoreプロジェクトの目的・現在の状況と今後のロードマップ の紹介 – Graduated プロジェクトに (2024年3月) • 目的 – コードやアーティファクトの署名を簡単に実現できるようにすること • 鍵管理、コード署名・・・ – SDLCにおけるトラストの基礎を提供する • Trust foundation • Software attestation 発表者 Hayden Blauzvern (Google)
2 © Hitachi, Ltd. 2024. All rights reserved. sigstore: 2024
and beyond (2/6) • プロジェクト – Rekor (透過的なログ) – Fulcio (署名CA) – クライアント • Cosign • 言語ごとのクライアント (sigstore-*) • サービス – パブリックなインスタンス • rekor.sigstore.dev • fulcio.sigstore.dev • oauth2.sigstore.dev – フリーな認証局・透過的なログを利用可能 アーティファクト オーナー 認証局 (Fulcio) ログ (Rekor) リポジトリ (maven, npm等)
3 © Hitachi, Ltd. 2024. All rights reserved. sigstore: 2024
and beyond (3/6) • サービス (2024/4) – 10/22のGA以降、8千万以上の署名が記録 – Workload Identityの対応 • GitHub Actions, GitLab, BuildKite, … – 99.5%のSLOを維持 – パッケージエコシステムのサポート • npm: GA • Homebrew: まもなくGA • PyPIとMaven: 現在開発中
4 © Hitachi, Ltd. 2024. All rights reserved. sigstore: 2024
and beyond (4/6) • クライアントの開発状況 (2024/4) – Go, Python, JavaScript: GA – Java, Rust, Golang: ベータ – Ruby: 開発停止 • 現状の課題 – インフラのサステナビリティと維持(コストとリクエスト増大への対応) – クライアント間の互換性のための標準化 – プログラミング言語ごとの実装(検証コードなど)
5 © Hitachi, Ltd. 2024. All rights reserved. sigstore: 2024
and beyond (5/6) • 全体的な計画 – OSSのエコシステム採用の主要なパスとして、OSSパッケージマネージャ (npm, pypi…)に注力 – SIGを作成して、トピックごとに集中して議論・運営 (クライアント・パブリッ クインスタンスの運用) – sigstoreアーキテクチャのドキュメント化 – sigstoreサービス全体の運用を簡易化(helm, k8s, terraform)し、パブリッ クインスタンス・プライベートインスタンス両方の運用を容易にする
6 © Hitachi, Ltd. 2024. All rights reserved. sigstore: 2024
and beyond (6/6) • 短期的計画 – Go/Java/RustクライアントのGA – Cosignインタフェースの簡素化 – SLSA L3ビルダーの採用・来歴の公開 – ワークロードのアイデンティティと署名自動化に関するドキュメント – アーキテクチャドキュメントの完成 – アイデンティティに関するログモニタリング – 研究者向けのパブリックなデータセット • 長期的計画 – パッケージマネージャにおける採用 – 高度な検証ポリシーの評価 – 透過的ログのタイリング (C2SP) – 検証可能な検索 – プライバシーを保持したアイデンティティ – Post-quantum暗号技術対応
7 © Hitachi, Ltd. 2024. All rights reserved. Build Provenance:
Lessons (so far) from Homebrew • Homebrewエコシステムにおけるビルド来歴対応を紹介 • Bottleの自動ビルド時にprovenanceを作成 – Pull Requestが提出された際にビルド – Pull Requestがマージされたときに署名 • ビルド来歴(Build provenance)も作成 • 既にビルドされたものについて、trailofbits/homebrew-brew-verifyリ ポジトリで証明を作成 • 来歴の検証 – brew tapでリポジトリを指定した上で、brew verifyコマンドで可能 • 将来的にはbrew verifyやinstallだけで検証可能にする予定 Joe Sweeney (Trail of Bits) 発表者
8 © Hitachi, Ltd. 2024. All rights reserved. Beyond ”Just
Update All the Things” (1/2) • OSSの脆弱性データベースOSVとそれによる脆弱性検知ツールosv- scannerの紹介 • CVEの課題 – CPE IDによる対象の表現が適切に行えない場合がある • OSV Format – OSV Format (osv-schemaで定義) • package.ecosystem, package.name • ranges – 一部の言語(Go/Rust)ではシンボルレベルの情報が表現できる – 20のエコシステムからの脆弱性情報を統合 Holly Gong, Rex Pan (Google) 発表者
9 © Hitachi, Ltd. 2024. All rights reserved. Beyond “Just
Update All the Things” (2/2) • 各エコシステムにおける依存関係と脆弱性マッチング – lockfileによるマッチングは、実際には単純ではない – Goの場合 • ディレクティブでGoのバージョン・標準ライブラリのバージョンを指定できる • 外部ライブラリをローカルのライブラリに”replace”することができる – Mavenの場合 • 間接依存関係が記述されていない • バージョンの記述が複雑(プロパティ変数を介して指定している場合、依存関係記述部分に 書いてある場合など) • pom.xmlの親子関係 • 複数のバージョンが指定されていた場合の挙動(仕様は最初の指定が有効だが、ほとんどの 処理系は最後の指定を使う) – npmの場合 • 5種類の依存関係 (通常, dev, peer…)
10 © Hitachi, Ltd. 2024. All rights reserved. A step
closer to in-toto’lly secure (SupplyChainSecurityCon) • 来歴のフォーマット in-toto のツールwitnessとarchivistaの紹介 – ビルドの来歴に対して検証を行うことによって、意図しないプロセスが混入し ていないことを確かめる • Witness – In-totoによる証明に基づいた検証を行うCLIツール – 来歴に対して検証を行うことによって、typo squattingなどによってビルド時 に入ったパッケージを検出することができる – CVE Scanを行っていることといったようなポリシーも検証ができる • Archivista – in-totoによる証明(attestation)の格納 – GraphQLによるクエリ機能 John Kjell, Tom Meadows (TestifySec) 発表者
None
12 © Hitachi, Ltd. 2024. All rights reserved. Driving Security
at Scale: Principles for Package Repository Security • OpenSSF Securing Software Repositories WGの最近の成果物である “Principles for Package Repository Security”の紹介 – CISA (サイバーセキュリティ・社会基盤安全保障庁)とのパートナー協定による ドキュメント(共著) – CISAの”Open Source Software Security Roadmap”の内容の一つに対応 – 2024年2月にv0.1を公開 • ドキュメントの対象 – パッケージリポジトリの成熟モデル (maturity model) – パッケージリポジトリのケーパビリティの分類 – オープンソースのリポジトリの運用者を対象としたもの 発表者 Jack Cable (CISA), Zach Steindler (GitHub)
13 © Hitachi, Ltd. 2024. All rights reserved. Driving Security
at Scale: Principles for Package Repository Security • ドキュメントの内容 – 認証 – 認可 – 一般的なケーパビリティ – CLIツール • 今後の動向 – CISAが3/7にオープンソースエコシステムをセキュアにする新たな活動を 発表 (OpenSSFとの連携や本ドキュメントの活動も含む) • 現在、v0.2に向けて取り組んでおり、貢献を募集中 L3: MFAを 全リポジトリで必須 L2: フィッシング耐性のある MFAに対応、 重要なリポジトリでMFA必須 L1: MFAに対応、 アカウント回復ポリシーを文書化
14 © Hitachi, Ltd. 2024. All rights reserved. • 脆弱性検知において、オープンソースのエコシステムの違いによる問題をPython
(PyPI)の立場で紹介 • ソフトウェアIDの問題 – CPE (Common Platform Enumeration) • 多くのPyPIパッケージはCPE (ID)を持っていない • 50万以上のPythonパッケージがあり、急速に増え続けている – Pythonパッケージでは「リリース」という管理単位はなくファイル単位 • あるバージョンのうちWindows版のみが対象となる脆弱性 – 全てを一個のID体系で表すことは困難 – Package IDを用いることで、各エコシステムに表現を委譲できる (CVE Schema 5.1で採用) • pkg:pypi/… Embracing the Differences Securing open source ecosystems where they are 発表者 Seth Larson (Python Software Foundation)
15 © Hitachi, Ltd. 2024. All rights reserved. • その他の問題
– Numpy インストールの98%は(コンパイルされた)バイナリ – PyPIのインストールの38%はバイナリ Embracing the Differences Securing open source ecosystems where they are
16 © Hitachi, Ltd. 2024. All rights reserved. Improving FOSS
Security • オープンソースコミュニティ向けに、そのセキュリティを高めるために 必要な方策を紹介 – Proactive • セキュリティポリシーの明示 (コンタクト先など) – OpenSSFがガイドやテンプレートなどを公開しており利用可能 • GitHubでは、非公開の脆弱性レポート機能が利用可能 • 脆弱性の発見 (静的解析・Fuzzing・バグ褒賞の利用) – Responsive • 脆弱性の公開方法 (CVD: Coordinated Vulnerability Disclosure) – Downstreamなど他への通知、CVEプロセスへの関与、アナウンス、Changelogへの記載 • セキュリティパッチ – 問題と解決手段を明示、脆弱性修正だけのパッチ、脆弱性の(非)再現テストを加える 発表者 Mark Esler (Ubuntu)