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

サプライチェーン攻撃対策のためのSBOM入門

 サプライチェーン攻撃対策のためのSBOM入門

2022/07/28 JFrog Webinar
サプライチェーン攻撃対策のための SBOM入門

Yoshihisa Sato

July 29, 2022
Tweet

More Decks by Yoshihisa Sato

Other Decks in Technology

Transcript

  1. サプライチェーン攻撃対策のための
    SBOM入門
    2022/07/28(木)  JFrog Webinar

    View full-size slide

  2. はじめに
    2
    ▪ 資料・動画は後ほど公開します
    ○ 公開後、本ウェビナーにご登録いただいたメール宛にお知らせします
    ▪ Zoom機能を使って、是非ご参加ください
    ○ Q&Aで質問を随時書き込んでください
    ○ チャットは自由にお使いください(賑やかしなど)
    ▪ Twitterが好きな方は #JFrog でツイートをお願いします

    View full-size slide

  3. 自己紹介
    3
    ▪ Developer Advocate @ JFrog
    ▪ 「よしQ」と覚えていたくとうれしいです
    ▪ 山形県鶴岡市からリモートワーク
    ▪ SIerでアプリケーション開発エンジニアやアーキテクト、ITコン
    サルなど経験
    ▪ 提案〜要件定義〜設計・開発〜導入〜運用保守まで
    ▪ エンジニア目線で情報発信!
    佐藤 由久
    SATO Yoshihisa
    @umekichi1984 @yoshiq-sato

    View full-size slide

  4. Developers Summit 2022 Summer
    4

    View full-size slide

  5. アジェンダ
    5
    ▪ ソフトウェアサプライチェーン攻撃とは
    ▪ SBOMとは
    ▪ SBOMを作成するための周辺技術
    ▪ ソフトウェアサプライチェーン攻撃に対する構え
    ▪ まとめ・Q&A

    View full-size slide

  6. 6
    ソフトウェアサプライチェーン攻撃とは?

    View full-size slide

  7. 製造業におけるサプライチェーン
    7
    ▪ 製品の原材料や部品の調達から消費者に届くまでの一連の流れ、工程
    ▪ メーカーが他社(サプライヤー)の部品を調達して製品を製造することもある
    原料
    部材
    購入
    出荷
    製造
    原料 出荷
    製造
    サプライヤー メーカー (サプライヤー) 消費者
    (在庫/流通/販売)
    (供給・調達)
    (供給・調達)

    View full-size slide

  8. ソフトウェアのサプライチェーン
    8
    ▪ ソフトウェアが本番環境にデプロイされ、ユーザーの元へ届くまでの一連の流れ、工程
    ▪ 多くの場合、依存するライブラリやサードパーティーのコードなどを取り込むため、サプライチェーンは複雑になる
    ▪ ソフトウェアサプライチェーンのどこかで悪意あるコードやパッケージが組み込まれることをサプライチェーン攻撃
    という
    ソースコード
    依存するライブラリ
    サービス
    リリース
    ビルド
    使用開始

    View full-size slide

  9. ソフトウェアサプライチェーン攻撃の脅威
    9
    「SLSA(サルサ)」より
    そこ、大丈夫?チェックポイント
    出典: 2022年4月7日 GitHub Blog “Achieving SLSA 3 Compliance with GitHub Actions and Sigstore for Go modules”
    https://github.blog/2022-04-07-slsa-3-compliance-with-github-actions/
    2021年6月16日 Google Security Blog “Introducing SLSA, an End-to-End Framework for Supply Chain Integrity”
    https://security.googleblog.com/2021/06/introducing-slsa-end-to-end-framework.html
    ソースコー

    依存
    ビルド リリース
    H
    F
    G
    D
    A
    B
    C
    E
    SOURCE THREATS
    DEPENDENCY THREATS
    BUILD THREATS
    脅威 対応策
    A 不正な変更の送信 コードレビュー
    B リポジトリの侵害 VCSでの管理
    C 正しいソースからのビルド コードの普遍性管理
    D 不正なビルドプロセス 堅牢なビルド環境
    E 侵害された依存の使用 依存関係
    F CI/CDで作られていない
    アーティファクトの登録
    クレデンシャルを守る、メタ
    データの確認
    G パッケージリポジトリ 正しい出所の利用
    H 侵害されたパッケージ利用 使用パッケージの選択

    View full-size slide

  10. 10
    99%のソフトウェア、
    85%のエンタープライズ向けソフトウェアが
    オープンソースのコンポーネントを含む
    62%の攻撃がサプライヤーへの信頼を
    悪用したものであり、2015~2021で
    6.5倍に増えた
    2022年に攻撃は
    4倍に増えると予想されている
    出典: 2022年4月7日 GitHub Blog “Achieving SLSA 3 Compliance with GitHub Actions and Sigstore for Go modules”
    https://www.enisa.europa.eu/publications/threat-landscape-for-supply-chain-attacks
    “Threat Landscape for Supply Chain Attacks”
    https://github.blog/2020-09-02-secure-your-software-supply-chain-and-protect-against-supply-chain-threats-github-blog/

    View full-size slide

  11. 最近の事例
    11
    出典: JFrog 2021年12月28日掲載「Log4Shell ゼロデイ: 知っておくべきこと
    https://jfrog.com/ja/blog/log4shell-0-day-vulnerability-all-you-need-to-know/

    View full-size slide

  12. 推移的依存関係
    12
    ▪ ソフトウェアの依存は繰り返される
    ▪ すべて把握してセキュリティ対策しなくてはならない

    View full-size slide

  13. 14
    SBOMとは

    View full-size slide

  14. SBOMとは
    15
    ▪ Software Bill Of Materials (ソフトウェア部品表)
    ▪ ソフトウェアを構成するコンポーネントとメタデータの一覧
    ▪ 脆弱性やライセンスの観点で安全性を確認・保証するのに使う
    ▪ アメリカでは、政府と関わる重要なソフトウェアにおいてSBOMが義務化されるほどメジャーな存在となってい

    View full-size slide

  15. SBOMで一覧化するコンポーネント
    16
    ▪ ソフトウェアが依存・使用するOSSやサードパーティのライブラリ
    ▪ ソフトウェアが使うアドオン、プラグイン、拡張機能
    ▪ プロプライエタリなコード
    ▪ (SaaSの場合) APIやサードパーティのサービスの情報

    View full-size slide

  16. SBOMの3つの最小要素
    17
    ▪ Data Fields
    ○ SBOMが記録・管理する情報を明確に文書化する
    ▪ Automation Support
    ○ 生成も使用も自動化できるようにする
    ▪ Practices and Processes
    ○ SBOMを使ったオペレーションを定義する
    出典: The Minimum Elements For a Software Bill of Materials (SBOM)
    https://www.ntia.gov/files/ntia/publications/sbom_minimum_elements_report.pdf

    View full-size slide

  17. Data Fields (1/3)
    18
    SBOM
    自体の
    情報
    ソフトウェ
    アの情報
    出典: Survey of Existing SBOM Formats and Standards - Version 2021
    https://www.ntia.gov/files/ntia/publications/sbom_formats_survey-version-2021.pdf
    (例: SPDXフォーマット)

    View full-size slide

  18. Data Fields (2/3)
    19
    SBOM
    自体の
    情報
    出典: Survey of Existing SBOM Formats and Standards - Version 2021
    https://www.ntia.gov/files/ntia/publications/sbom_formats_survey-version-2021.pdf
    タイムスタンプ
    (Timestamp)
    SBOMの作成者
    (Author of SBOM Data)
    (例: SPDXフォーマット)
    必須とされる項目

    View full-size slide

  19. Data Fields (3/3)
    20
    ソフトウェ
    アの情報
    出典: Survey of Existing SBOM Formats and Standards - Version 2021
    https://www.ntia.gov/files/ntia/publications/sbom_formats_survey-version-2021.pdf
    コンポーネント名
    (Component Name)
    識別名のキー
    (Other Unique Identifiers)
    サプライヤー
    (Supplier Name)
    バージョン
    (Version of the Component)
    (例: SPDXフォーマット)
    必須とされる項目
    依存関係
    (Dependency Relationship)

    View full-size slide

  20. Automation Support
    21
    ▪ 自動化および組織の垣根を越えた運用のため、SBOMは標準フォーマットに則って生成する
    ○ Software Package Data Exchange (SPDX): 国際標準
    ○ CycloneDX
    ○ Software Identification (SWID)
    ▪ 一貫して同じフォーマットで管理するのが望ましい
    ▪ tag:value形式(SPDX)、JSON、YAML、XMLなどに対応
    ○ 人間にも機械にも読める
    ▪ ツールについては、生成に関するものがさまざま出始めている状態。利用についてはこれから。
    ○ デファクトスタンダードといえるツールはまだない

    View full-size slide

  21. Practices and Processes
    22
    ▪ ビルドやリリースによりソフトウェアが更新されたらSBOMも新たに作成する
    ▪ SBOMに誤りが見つかったら修正する
    深さ
    (Depth)
    頻度
    (Frequency)
    既知の未知
    (Known Unknown)
    ▪ 推移的依存関係も含め詳細なリストを作る
    ▪ 悪意あるパッケージが「ない」ことを証明するには、完全な網羅性が必要となる
    ▪ 依存関係の網羅性が分かっている箇所と不明確な箇所は区別し、その旨を明記する
    ▪ 必要とする人が適切なタイミングで使用できる(具体的な方法は現在決まっていない
    )
    アクセス制御
    (Access Control)
    配布・配信
    (Distribution and Delivery)
    間違いの許容
    (Accommodation of Mistakes)
    ▪ SBOMに対して、希望に応じたアクセス制御を実現する
    ▪ アクセス権を与える範囲は、ライセンスや契約で定める
    ▪ 発展途中の領域であり、SBOMについても課題やエラーに対して寛容でいる
    ▪ これからも変化・進化を伴うが、成熟を待つより今日から始める

    View full-size slide

  22. よくある心配
    23
    回答: メリットのほうが大きく、SBOMを使用すべき!
    ▪ ソースコードを公開するわけではない
    ▪ SBOMを公開するかどうかは自由である
    ▪ アタッカーがSBOMを攻撃の頼りにすることはない(もっと他の効率良いやり方を取る)ので、
    攻撃の対策としてのメリットの方が大きい
    中身を全部晒して大丈夫? それって情報漏えいにならないの?

    View full-size slide

  23. 24
    SBOMを作成するための周辺技術

    View full-size slide

  24. SCA (ソフトウェアコンポジション解析)
    25
    ▪ SBOMの作成には、ソフトウェアに何が含まれているかの調査が当然必要となる
    ▪ SCAとは:ソフトウェアをスキャンして、脆弱性やライセンス違反などを調べる
    ▪ 世の中には様々なSCAツールがあり、これを使ってCI/CD実行時にSCAも自動で行う
    QA
    ビルド
    開発 リリース
    SCA実施 SCA実施 SCA実施

    View full-size slide

  25. アーティファクトとメタデータの管理
    26
    ▪ SBOMの作成やSCAはソースコードではなくビルドした成果物(アーティファクト)に対して行う方が望ましい
    ○ アーティファクトは依存解決が済んでおり、ソースコードにない情報を持っているため
    ○ ソフトウェアはビルドの度に内容が変わる可能性があるため
    (環境変数が異なったり、依存解決で取得するライブラリのバージョンが変わったりしうる)
    ▪ アーティファクトはメタデータとともに専用リポジトリで管理する

    View full-size slide

  26. 27
    JFrog Platformを活用しよう

    View full-size slide

  27. JFrog Platform
    28
    24/7 Dedicated Support + DevOps
    Acceleration Service Arm
    BUILD TEST RELEASE DEPLOY
    継続的な統合
    自動化とデプロイ
    セキュリティとコンプライアン
    スの問題を解決
    本番環境への
    配布
    フローを制御し
    監視する
    On Premises
    & Multicloud
    あらゆる種類の
    パッケージを
    保存・管理
    VCS
    ACCESS FEDERATION
    認証、ACL、SSO、
    アクセストークン

    View full-size slide

  28. JFrog Artifactory
    29
    ▪ ユニバーサル・バイナリ・リポジトリマネージャ
    ▪ すべてのアーティファクトや依存関係を保存するための場所
    ▪ ビルドの結果・メタデータも同時に保存・管理
    ▪ 外部ツールとのインテグレーションが容易

    View full-size slide

  29. ビルド情報 (Build Info)
    30
    ▪ ビルドに関する詳細を含んだ、ビルドエージェントが収集したすべての情報
    ○ 生成されたアーティファクト、依存関係、環境変数など
    ▪ Artifactory上の専用リポジトリにJSON形式で保存される
    ▪ ビルド間の比較が可能
    ▪ ビルドをセキュリティスキャンすることが可能

    View full-size slide

  30. JFrog Xray
    31
    ▪ Artifactoryとネイティブな統合
    ○ 最適なスキャンと統一されたオペレーションを実現するSCAソリューション
    ○ アーティファクトに関するすべてのセキュリティおよびコンプライアンス情報を一元管理
    ▪ ユニバーサルなセキュリティとコンプラインス
    ○ 主要なパッケージタイプをサポート
    ○ 再起的なスキャンが可能(DockerイメージやZipファイルの中まで確認)
    ▪ 一般的な脆弱性情報(+JFrog独自情報)を元に、脆弱性スキャン

    View full-size slide

  31. 継続的な分析 (新しいアーティファクトの追加)
    32
    NEW ARTIFACT
    INDEXING SCANNING SETUP
    POLICY RULES
    CREATE
    AUTOMATIC ACTIONS
    FAIL
    BUILD
    NOTIFICATION
    CRITICAL
    VIOLATION
    MINOR
    VIOLATION

    View full-size slide

  32. JFrog Xrayのスキャン結果
    33

    View full-size slide

  33. JFrog Xrayによる脆弱性情報の提供
    34

    View full-size slide

  34. JFrog XrayからSBOMの出力
    35

    View full-size slide

  35. まとめ
    37
    ▪ ソフトウェアサプライチェーン攻撃とは
    ○ ソフトウェアサプライチェーンのどこかで悪意あるコードやパッケージが組み込まれること
    ○ ソフトウェアライフサイクルのさまざまなポイントで入りうる
    ○ 昨今は多くのソフトウェアでOSSを利用しており、脆弱性を狙った攻撃が増えている
    ▪ SBOMとは
    ○ Software Bill Of Materials (ソフトウェア部品表)
    ○ 脆弱性やライセンスの観点で安全性を確認・保証するのに使う
    ○ アメリカでは、政府と関わる重要なソフトウェアにおいてSBOMが義務化されている
    ▪ SBOMを作成するための周辺技術
    ○ SCA (ソフトウェアコンポジション解析)
    ○ JFrog Artifactory・JFrog Xray

    View full-size slide

  36. ソフトウェアサプライチェーン攻撃に対する構え
    38
    100%防ぐことはできないが、ダメージを最小化することを考える
    ▪ 業界のベストプラクティスを活用(SBOMの活用/SLSA準拠)
    ▪ 依存関係のあるソフトウェアへの脆弱性対策(開発時も、リリース後も)
    ○ SCAによるスキャン
    ○ 開発時はOSSコミュニティの活性度*も確認
    *: 開発が継続的に行われている、 Issueに対して積極的に修正がされている など
    (GitHubのログ更新を確認などすると、活性度を見ることができる )

    View full-size slide

  37. ステップアップ
    39
    SBOMを生成しよう
    アーティファクトに対し
    SCAを実施しよう
    ソースコードのみでなく
    アーティファクトも管理しよう

    View full-size slide

  38. ステップアップ
    40
    SBOMを生成しよう
    アーティファクトに対し
    SCAを実施しよう
    ソースコードのみでなく
    アーティファクトも管理しよう
    知ろう、考えよう

    View full-size slide

  39. 参考文献
    43
    • ZDNet 2020年12月15日掲載「米政府などへの大規模サイバー攻撃、SolarWindsのソフトウェア更新を悪用」 https://japan.zdnet.com/article/35163843/
    • JFrog 2021年12月28日掲載「Log4Shell ゼロデイ: 知っておくべきこと」https://jfrog.com/ja/blog/log4shell-0-day-vulnerability-all-you-need-to-know/
    • Synopsys whitepaper「Open Source Risk in M&A by the Numbers」https://www.synopsys.com/content/dam/synopsys/sig-assets/whitepapers/wp-risk-ma-numbers.pdf
    • 「『セキュリティ・スキャン』分野のソフトウェア構成分析(SCA)とは?」https://www.ricksoft.jp/blog/articles/001258.html
    • 「Explore your OSS dependencies. Visually!」https://www.linkedin.com/pulse/explore-your-oss-dependencies-visually-michael-muller/
    • 「Survey of Existing SBOM Formats and Standards - Version 2021」https://www.ntia.gov/files/ntia/publications/sbom_formats_survey-version-2021.pdf
    • 日経XTECH 2021年9月10日掲載 トヨタが推すサイバー対策の新常識「SBOM」、流出するリスクは? https://xtech.nikkei.com/atcl/nxt/column/18/00001/06002/
    • ITmedia NEWS 2022年1月11日掲載 OSS「faker.js」と「colors.js」の開発者、自身でライブラリを意図的に改ざん 「ただ働きはもうしない」
    https://www.itmedia.co.jp/news/articles/2201/11/news160.html
    • 経済産業省商務情報政策局サイバーセキュリティ課「OSSの利活用及びそのセキュリティ確保に向けた管理手法に関する事例集」
    https://www.meti.go.jp/press/2021/04/20210421001/20210421001-1.pdf
    • 「Best practices for introducing JFrog Xray into your DevSecOps process」
    https://media.jfrog.com/wp-content/uploads/2021/04/07164155/Best-practices-for-introducing-JFrog-Xray-into-your-DevSecOps-process.pdf
    • 2022年4月7日 GitHub Blog 「Achieving SLSA 3 Compliance with GitHub Actions and Sigstore for Go modules」
    https://www.enisa.europa.eu/publications/threat-landscape-for-supply-chain-attacks
    • 「Threat Landscape for Supply Chain Attacks」https://github.blog/2020-09-02-secure-your-software-supply-chain-and-protect-against-supply-chain-threats-github-blog/
    • 2022年4月7日 GitHub Blog 「Achieving SLSA 3 Compliance with GitHub Actions and Sigstore for Go modules」https://github.blog/2022-04-07-slsa-3-compliance-with-github-actions
    • The United States Department of Commerce 「 The Minimum Elements For a Software Bill of Materials (SBOM) 」
    https://www.ntia.doc.gov/files/ntia/publications/sbom_minimum_elements_report.pdf
    • 2021年6月16日 Google Security Blog 「Introducing SLSA, an End-to-End Framework for Supply Chain Integrity」
    https://security.googleblog.com/2021/06/introducing-slsa-end-to-end-framework.html

    View full-size slide