Slide 1

Slide 1 text

© Hitachi, Ltd. 2024. All rights reserved. SOSS Community Day North America 2024 セッション報告 日立製作所 研究開発グループ 2024/05/13 下沢 拓

Slide 2

Slide 2 text

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)

Slide 3

Slide 3 text

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等)

Slide 4

Slide 4 text

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: 現在開発中

Slide 5

Slide 5 text

4 © Hitachi, Ltd. 2024. All rights reserved. sigstore: 2024 and beyond (4/6) • クライアントの開発状況 (2024/4) – Go, Python, JavaScript: GA – Java, Rust, Golang: ベータ – Ruby: 開発停止 • 現状の課題 – インフラのサステナビリティと維持(コストとリクエスト増大への対応) – クライアント間の互換性のための標準化 – プログラミング言語ごとの実装(検証コードなど)

Slide 6

Slide 6 text

5 © Hitachi, Ltd. 2024. All rights reserved. sigstore: 2024 and beyond (5/6) • 全体的な計画 – OSSのエコシステム採用の主要なパスとして、OSSパッケージマネージャ (npm, pypi…)に注力 – SIGを作成して、トピックごとに集中して議論・運営 (クライアント・パブリッ クインスタンスの運用) – sigstoreアーキテクチャのドキュメント化 – sigstoreサービス全体の運用を簡易化(helm, k8s, terraform)し、パブリッ クインスタンス・プライベートインスタンス両方の運用を容易にする

Slide 7

Slide 7 text

6 © Hitachi, Ltd. 2024. All rights reserved. sigstore: 2024 and beyond (6/6) • 短期的計画 – Go/Java/RustクライアントのGA – Cosignインタフェースの簡素化 – SLSA L3ビルダーの採用・来歴の公開 – ワークロードのアイデンティティと署名自動化に関するドキュメント – アーキテクチャドキュメントの完成 – アイデンティティに関するログモニタリング – 研究者向けのパブリックなデータセット • 長期的計画 – パッケージマネージャにおける採用 – 高度な検証ポリシーの評価 – 透過的ログのタイリング (C2SP) – 検証可能な検索 – プライバシーを保持したアイデンティティ – Post-quantum暗号技術対応

Slide 8

Slide 8 text

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) 発表者

Slide 9

Slide 9 text

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) 発表者

Slide 10

Slide 10 text

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…)

Slide 11

Slide 11 text

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) 発表者

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

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)

Slide 14

Slide 14 text

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に対応、 アカウント回復ポリシーを文書化

Slide 15

Slide 15 text

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)

Slide 16

Slide 16 text

15 © Hitachi, Ltd. 2024. All rights reserved. • その他の問題 – Numpy インストールの98%は(コンパイルされた)バイナリ – PyPIのインストールの38%はバイナリ Embracing the Differences Securing open source ecosystems where they are

Slide 17

Slide 17 text

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)