KubeCon North America 2024から、ソフトウェアサプライチェインの基礎を解説する2つのセッションを紹介

KubeCon+CloudNativeCon North America 2024から、ソフトウェアサプライチェインに関する2つのセッションを紹介する。1つ目のセッションは11月13日のキーノートの後に行われたTUFに関する解説のセッション、2つ目は2日目のキーノートの一部として行われたin-totoに関するセッションだ。
最初に紹介するセッションではソフトウェアサプライチェインの基本的な内容を説明した後にTUF(The Update Framework)と呼ばれるCNCFのプロジェクトを解説。TUFは2019年にGraduationしたプロジェクトで、継続的にソフトウェアを更新するためのフレームワークだ。ここではソフトウェアそのものが信頼できるようにするために、メタデータを利用して対象となるソフトウェアが継続的に更新されても開発の過程での改ざんを防ぐ仕組みを説明した。
後半に紹介するセッションは2日目のキーノートの中で行われたもので、ソフトウェア開発の中で生成されるさまざまなアーティファクト(生成物)に対してデジタルシグネチャーによって検証する仕組みを加えることで、ソフトウェアサプライチェインの脆弱性を防ぐという内容だ。ここではin-totoというCNCFのプロジェクトが作られた経緯を解説している。
興味深いのはTUFのセッションを行ったMarina Moore氏も、キーノートセッションに登壇したPurdue Universityの助教授であるSantiago Torres Arias氏も、キーノートを一緒に行ったJustin Cappos氏の教え子だという部分だろう。
Justin Cappos氏は2023年のOpen Source Summit Japanに登壇しており、ここでもソフトウェアサプライチェインに関するセッションを行っている。
●参考:OpenSSF Day Japan開催。中国からの脅威から新しいOSSプロジェクトの紹介までを総括
New York Universityの教授でありながらオープンソースソフトウェアのコミュニティに対してコミットメントを継続しているJustin Cappos氏は、ベンダー主導になりがちなオープンソースコミュニティにおいては稀有な存在だろう。
The Update Frameworkを解説したセッション
では最初のセッションに戻ろう。Moore氏の現職はEdera Research所属のセキュリティリサーチャーだが、CNCFのTAG SecurityのCo-Chairでもあり、クラウドネイティブなシステムにおけるSLDC(Software Development Life Cycle)、サプライチェインセキュリティにおける専門家と言えるだろう。
ここからソフトウェアサプライチェインにおけるメタデータに関する説明となった。ソフトウェアが開発されリリースされる過程で、新しいバージョンがリリースされる場合にそれがハッカーなどによって改ざんされていないかどうかをソフトウェア自身だけでは確認することはできないために、SBOMを使ってその内容物を確認するためのメタデータが必要であることを説明。
しかし単にSBOMだけが存在しても、それが真正であるかどうかを確認するためにはデジタルシグネチャーが必要だと解説。ここでは途中のプロセスでアタッカーがアーティファクトを改ざんしている場合を想定して、改ざんされたアーティファクトから生成されたデジタルシグネチャーが真正ではないことを確認可能であることがわかる。
続いて、ソフトウェアが真正であることをソフトウェアサプライチェインの中で保証するための仕組みであるTUF(The Update Framework)を紹介。
TUFは「ソフトウェアが最新であること」「一貫していること」「真正であること」を保証するための仕様であると解説。ここではTUFは仕様であり、その実装はベンダーやコミュニティに任されていることに注目したい。リファレンス実装はPythonで書かれたPython-tufで、これの著作権がNew York UniversityとTUF Communityとなっていることからもわかるように、Cappos氏の研究室が実装例として開発したものだと思われる。
このスライドではTUFを構成するさまざまなメタデータを例に挙げて、ソフトウェア(この例ではfoo 1.0と2.0)が更新される中で必要となる属性を説明している。
このスライドではLayoutやAttestationの部分にin-totoが使われることをロゴで示している。in-totoは暗号を使ってメタデータを保護するフレームワークだ。TUFやin-totoを使うことによって、ソフトウェアが最新であるか真正であるかをメタデータによって確認できる。そしてもしも改ざんされたとしても復旧することが可能であることも明記されている。
TUFは仕様だがすでに8つ以上の実装例が存在し、20社以上で利用されていると紹介した。ここではDockerやGoogle、Cloudflareなどが紹介されている。TUFのためのRSTUF(Repository Service for TUF)やCIの中でTUFを使うためのTUF-on-CIなども存在し、エコシステムが広がっていることも紹介された。
in-totoに関するセッション
ここからはキーノートとして行われたJustin Cappos氏とSantiago Torres Arias氏のセッションを紹介する。
このタイトルを日本語訳すれば「オープンソースにおけるセキュリティはスポーツ観戦ではない」といったところか。前半で語られたのは、あるプロジェクトの開発に対して高校生が別のアイデアを出してそれが実際には良い改善案だったことを例に挙げて、どんなソフトウェアでも参加することで違いを産み出すことが可能であるという内容だった。
そしてここからソフトウェアサプライチェインに関する内容に移って解説を行った。
●参考(PDF):On omitting commits and committing omissions
Cappos氏とArias氏が共著した論文を挙げて、Gitを使ったソフトウェアサプライチェインにおいて脆弱性があることを紹介。それに対する回答として紹介したのがin-totoだ。
また過去に起きたセキュリティ事案として、2020年に発生したSolarWindsのハッキングを例に挙げて解説。SolarWindsはSaaSのサービスとして企業向けのネットワークとインフラストラクチャーのモニタリングソフトウェアを提供しており、サプライチェインを狙ったハッキングによって大量のデータ漏洩が発生したというものだ。
ソフトウェアのアップデートにおいて、署名の重要性はCappos氏とArias氏による2016年の論文でも解説されていたが、それが実際に本番システムに適用される前にSolarWindsのハッキングが起こってしまったということについては、アカデミアにいるCappos氏にとっては歯痒い状況だろう。SolarWindsのハッキングについてはSolarWindsのエンジニアが2021年のKubeCon NAの共催カンファレンス、SupplyChainSecurityConでセッションを行っている。ここではGitHub上で行われるCIについてシステムを改善し、in-totoを使った暗号化によって同じハッキングが行われないようにシステムを再構築したことが解説されている。
●SolarWindsのソフトウェアサプライチェイン改善の概要(動画):Project Trebuchet: How SolarWinds is Using Open Source to Secure Their Supply Chain in the Wake of the Sunburst Hack
このスライドはSolarWindsによるセッションからの引用だが、ビルドシステムをKubernetes上のTektonによって実装し、それを独立した2系統のシステムとして実装し、片方が攻撃されたとしても検証を行うことが可能になっているという。このスライドからもわかるように開発するソフトウェア以上にビルドを行うシステム、つまりソフトウェアサプライチェインの実装はそれ自体が複雑なシステムである。その複雑性が増すことで、ソフトウェアサプライチェイン自体が脆弱性を含んでいるとも言える。
Cappos氏はGitHub自体にアーティファクトの属性を生成する機能が追加されたことを紹介し、GitHubもアーティファクトに対するAttestationの重要性を理解していることを紹介した。ちなみにGitHubのArtifact Attestationが発表されたのは2024年6月であるため、Cappos氏にとってみればやっと正式版になったという感覚ではないだろうか。ちなみにGitHubのArtifact AttestationはSigstoreやTUF、in-totoを使った実装例になる。
●参考:Introducing Artifact Attestations-now in public beta
そしてソフトウェアサプライチェインセキュリティに関して過去を振り返り、2016年にCappos氏とArias氏のアイデアだったものがin-toto、Tekton Chainなどを経て、2024年に多くのユースケースやエコシステムに拡大していることを紹介した。
最後にソフトウェアサプライチェインセキュリティに参加したいエンジニアに対して、NYUのクラスを受けることなどを宣伝した後でOpenSSFやCNCFのTAG Securityに参加して欲しいと説明し、セッションを終えた。
SolarWindsのハッキング事件を絡めながらソフトウェアサプライチェインにおけるセキュリティの重要性を解説したCappos氏とArias氏のセッションは、地味ながらもまだ記憶に新しい事件を使ってサプライチェイン、特にビルドシステムがエンジニアにとって脆弱な攻撃対象となりえることを強く訴える内容となった。日本ではSBOMに注目が集まりがちだが、SBOMはアウトプットでしかなく、アーティファクトを生成するビルドプロセスを見直して自社のCI/CDのどこが危険なのかを見直すきっかけになって欲しいと思わせる2つのセッションであった。
●Moore氏のTUFセッション(動画):TUF: Secure Distribution Beyond Software
●Cappos氏とArias氏のin-totoセッション(動画):Keynote: Open Source Security Is Not A Spectator Sport
ちなみにTUFはTor(The Onion Router) Projectのアプリケーションアップデーター(Thandy)を参考にして仕様策定が行われたというのも興味深いと言える。
プレカンファレンスの夜に行われたパーティではCappos氏とMoore氏に再会。まだ公開できない情報をいろいろと教えてもらった。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- OpenSSF Day Japan開催。中国からの脅威から新しいOSSプロジェクトの紹介までを総括
- KubeCon Europe 2024にて、グラフを用いてSBOMを可視化するGUACのコントリビューターにインタビュー
- KubeCon NA 2021、ソフトウェア開発工程のタンパリングを防ぐSLSAを解説
- CNSC 2022、SBoMの概要と未来を展望するセッションを紹介
- Open Source Summit Japan 2023から、組込系システムにおけるサプライチェーンに関するセッションを紹介
- 「KubeCon NA 2022」 から、ソフトウェアへの署名を行う「Sigstore」のプレカンファレンスを紹介
- OpenSSFが2023年におけるOpenSSFコミュニティの活動と、その成果を公開した「2023 アニュアルレポート」を公開
- 「Open Source Forum 2019」開催 ― CI/CDの標準化やプロダクションAIのためのエコシステムなど解説
- LFがSBOMの導入によるライセンス順守とソフトウェアセキュリティ強化に関するレポートを発表、ほか
- 米国のバイデン大統領が署名したことで話題となった「国家のサイバーセキュリティ改善に関する大統領令」とは