Eclipse Adoptiumワーキンググループへの参加

富士通技術者ブログ~Javaミドルウェア~

2025年3月17日 初版
桐山 卓弥

富士通は、Eclipse Foundation(注1) 内の Adoptiumワーキンググループ(注2)(以下、Adoptium)に、2024年7月から参加しています。Adoptiumでは、高品質なOpenJDKバイナリの提供に必要となるセキュリティ技術とテストフレームワーク技術の開発に取り組んでいます。
OpenJDKを含むオープンソース・ソフトウェア(以下、OSS)は、現代のソフトウェア開発において欠かせない存在となっています。一方、OSSを利用する場合は、そのセキュリティリスクについても十分に理解し対策する必要があります。
本記事では、OSS利用におけるセキュリティリスクとAdoptiumのセキュリティへの取り組みについて説明します。


ソフトウェアサプライチェーンの複雑化とセキュリティリスクの増大

かつて、ソフトウェア開発はコーディングから、テスト・リリースまで、自社でコントロール可能なシンプルなモデルが主流でした。しかし、OSSをはじめとした現在のソフトウェア開発では、複数のサードパーティソフトウェアやOSSを組み合わせた開発が一般的になり、不特定の開発者が関与する複雑な依存関係を形成するようになりました。依存関係が深い場合、間接的に利用しているものも含めてすべてをセキュリティ管理することは困難です。近年、この複雑な依存関係を狙ったソフトウェアサプライチェーン攻撃が増加しています。ソフトウェアサプライチェーン攻撃による全世界の年間損害額は、2023年の460億ドルから、2031年には1380億ドルに増加すると予測されています。(注3)
ソフトウェアのソースコードの脆弱性を狙った従来の攻撃とは異なり、サプライチェーン攻撃の対象はより広範です。図1は、ソフトウェアがユーザに届くまでのプロセスを示していますが、サプライチェーン攻撃はビルドプロセスや依存関係も含めたすべてを対象としています。サプライチェーン攻撃を防ぐには、ソースコードそのものをセキュアにするだけでなく、このプロセス全体でセキュリティ対策を実施する必要があります。

図1:ソフトウェアサプライチェーン攻撃
図1:ソフトウェアサプライチェーン攻撃


また、サプライチェーンに対するセキュリティ要求は政治的にも高まっています。

米国における大統領発令 (注4)

国家のサイバーセキュリティの強化に関する大統領令 EO14028 Improving the Nation’s Cyber Securityが2021年に発行されました。EO14028では、ソフトウェアサプライチェーンのセキュリティ強化の必要性、具体的にはセキュアなソフトウェア開発環境やソフトウェア部品表(以降、SBOM)提供の要求などについて記載されています。

EUにおけるサイバーレジリエンス法(CRA) (注5)

デジタル要素を備えた製品を購入する消費者と企業を保護することを目的としたCRAが2024年に発効しました。CRAでは、EU内で取引されるソフトウェアのサプライチェーン全体でのセキュリティ基準が示されています。

これらの政治的なセキュリティ要求の背景には、世界的なソフトウェアサプライチェーン攻撃の増大と攻撃の影響が広範に及ぶことがあります。OSSコミュニティやソフトウェアベンダは、使用者がソフトウェアを安全に使用するために、ソフトウェアサプライチェーンに対するセキュリティ対策を実施することが求められています。

OpenJDKとAdoptiumにおけるセキュリティ施策

OpenJDKプロジェクト(注6)では、セキュアなソースコードのために、厳格な開発プロセスに基づいてOpenJDKが開発されています。主な取り組みは以下の通りです。

コードレビュー

OpenJDKへの修正提案は、熟練の開発者、すなわちプロジェクトから特定の権限を与えられた開発者によるレビューを受けて、承認後にOpenJDKのソースコードに反映されます。

リグレッションテスト

OpenJDKプロジェクトは、OpenJDKの機能や障害修正を検証するリグレッションテストを提供しています。修正がOpenJDKに反映される前に、リグレッションテストが自動走行され、他の機能への影響が検証されます。

脆弱性の修正

セキュリティ研究者や開発者によって報告されたOpenJDKの脆弱性は、OpenJDKプロジェクトの信頼できるメンバーによって構成される OpenJDK Vulnerability Group (注7)(以下、OJVG)によって、レビューおよび修正されます。OJVGはOpenJDKのソースコードの脆弱性に対する修正を定期的に公開しています。(注8)

セキュリティ上問題のある機能の廃止

OpenJDKはセキュリティを重視しており、アップデートによってレガシーな暗号アルゴリズムや機能などを非推奨または廃止にする場合があります。代替方法が提供される場合もありますが、セキュリティリスクを考慮したうえで使用可否の判断をする必要があります。

このように、OpenJDKプロジェクトによってソースコードのセキュリティ品質は向上しています。OpenJDKプロジェクトでのソースコードの品質向上に加えて、Adoptiumではソフトウェアサプライチェーンに対するセキュリティ施策として、セキュアなビルドシステムを開発しています。

図2 : OpenJDKとAdoptiumのセキュリティ対応
図2 : OpenJDKとAdoptiumのセキュリティ対応

 


Adoptiumの活動は、OpenJDKソースのオープンでセキュアなビルドおよびテストシステムが必要だという議論から始まりました。現在ではEclipse Foundationのワーキンググループとなり、多くの主要なJavaベンダが参加しています。(注9)Adoptiumは、OpenJDKバイナリを安全にビルドするための関連技術を開発し、それらを使用してビルドした高品質なOpenJDKバイナリをEclipse Temurin (注10)というブランド名で提供しています。また、ビルド技術はオープンソース実装として公開されており、Eclipse Temurin以外のOpenJDKバイナリでも同様の方法で安全なビルドを実施することができます。

ソフトウェアサプライチェーンセキュリティのフレームワークとして、Supply chain Levels for Software Artifacts(SLSA) (注11)があります。
Adoptiumは、開発・提供するビルドプロセスが SLSA 仕様のビルド要件に準拠するように取り組んでいます。ビルドプロセスには様々な技術が含まれますが、例として以下のような技術があります。

Infrastructure as Code(IaC)

IaCとは、仮想マシンなどの構築を自動化し、コードとして管理する方法です。OpenJDKバイナリをビルドするときに、ビルド環境を繰り返し再利用するのではなく、ビルドごとに新しく環境を自動構築することで、意図しないコンポーネントがバイナリに含まれないようにビルドしています。

ソフトウェア部品表(SBOM)

SBOMとは、ソフトウェアに含まれるコンポーネントとそのバージョン、ライセンス情報などをリストした文書です。多くのソフトウェアは、複雑な依存関係を持つため、サプライチェーン全体を管理することは困難です。SBOMは、含まれるコンポーネントをリストアップし、セキュリティ脆弱性の発見や、ライセンスの確認を容易にします。

Reproducible Build

Reproducible Buildとは、同じソースコードとビルド環境から、常に同じバイナリを生成できるビルドプロセスです。バイナリにはタイムスタンプなどの情報が含まれるため、通常、同じソースコードとビルド環境であっても、同一のバイナリを生成することはできません。Reproducible Buildでは、バイナリに違いが出る要因を排除し、同一のバイナリを繰り返し生成することを可能にしています。
複数の環境でビルドすることで、仮にどれか一つの環境が侵害されたとしても、ビルド物のバイナリ比較することで、容易に侵害を検出することができるようになります。これは、悪意のある第三者による攻撃を検出する上で重要な技術となります。

おわりに

本記事で述べたように、ソフトウェアサプライチェーンのセキュリティリスクは高まっています。 富士通はこれまでOpenJDKプロジェクトへの障害修正提供を通じて品質向上に貢献してきました。 今後はAdoptiumへの参加を通じて、ビルドプロセスの改善を行い、Javaアプリケーションを実行するシステムの信頼性向上に貢献していきます。

本コンテンツに関するお問い合わせ

お電話でのお問い合わせ

富士通コンタクトライン(総合窓口)

0120-933-200

受付時間:9時~12時および13時~17時30分
(土曜日・日曜日・祝日・当社指定の休業日を除く)

Webでのお問い合わせ

当社はセキュリティ保護の観点からSSL技術を使用しております。

ページの先頭へ