Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SOSS Community Day North America 2024 セッション報告

SOSS Community Day North America 2024 セッション報告

日立製作所 研究開発グループ 下沢拓氏
2024年5月13日開催 OSSセキュリティMeetup講演資料

More Decks by Linux Foundation Japan

Other Decks in Technology

Transcript

  1. © Hitachi, Ltd. 2024. All rights reserved. SOSS Community Day

    North America 2024 セッション報告 日立製作所 研究開発グループ 2024/05/13 下沢 拓
  2. 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)
  3. 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等)
  4. 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: 現在開発中
  5. 4 © Hitachi, Ltd. 2024. All rights reserved. sigstore: 2024

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

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

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

    – Numpy インストールの98%は(コンパイルされた)バイナリ – PyPIのインストールの38%はバイナリ Embracing the Differences Securing open source ecosystems where they are
  16. 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)