2023 Fiscal Year Annual Research Report
Develping Infrastructure for Software Ecosystem Analysis Using SPDX
Project/Area Number |
23H03375
|
Allocation Type | Single-year Grants |
Research Institution | Nanzan University |
Principal Investigator |
井上 克郎 南山大学, 理工学部, 教授 (20168438)
|
Co-Investigator(Kenkyū-buntansha) |
横森 励士 南山大学, 理工学部, 准教授 (40379152)
眞鍋 雄貴 (真鍋雄貴) 福知山公立大学, 情報学部, 講師 (20625339)
神田 哲也 大阪大学, 大学院情報科学研究科, 助教 (90780726)
KULA RAULA・GAIKOVINA 奈良先端科学技術大学院大学, 先端科学技術研究科, 准教授 (80749094)
|
Project Period (FY) |
2023-04-01 – 2027-03-31
|
Keywords | SPDX / ソフトウェアエコシステム / 依存関係分析 / Debian / 脆弱性 / 改竄検出 |
Outline of Annual Research Achievements |
近年、ソフトウェアエコシステムを構成するプロダクトの安全性や健全性を検証するために、ソフトウェア部品表(SBoM)と呼ばれるメタデータを用いることが推奨され、Linux Foundationが開発したSPDXがその一実現方法として普及が進んでいる。 本研究では、様々なプロダクトの特性や関連の情報を既存の、または拡張したSPDXのフィールドとして表記する方法を開発する。また、得られたSPDX表記からエコシステムモデルを作り、その安全性や健全性を効率的に分析する方法を確立する。 さらにSPDXの表記法や分析技術の普及を図り、分析情報付きのSPDX形式のメタデータが広く普及・流通することを目指す。 本年度はまずSPDXにパッケージの依存情報を保存するための手法を開発した。対象をLinuxのDebianに限定し、当該パッケージが依存しているパッケージ情報をDebianのControlファイルから推移的に取得し、SPDXのメタ情報に変換して保存する方法を開発した。依存関係が循環している場合でもハッシュ値に矛盾がないSPDXファイルに変換するために、関連する複数ファイルをまとめてハッシュ化する方法を開発した。実際にDebianのControlファイルからSPDXファイルを作成するシステムを試作し評価を行い、正しくSPDXファイルが生成できることを確かめた。 また、SPDXに書かれている依存情報を元にして、依存先のパッケージに脆弱性に関する問題がないかを定期的にチェックするシステムを開発した。このシステムによりソフトウェアに脆弱性を含むパッケージを利用していないか、不当に改竄されていないか、また破損していないかなどを定期的に検証を行うことができるようになった。 その他、ソフトウェアエコシステムの課題整理やコードクローン作者に関する実践的な分析などの研究を行った。
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
当初目的とした、DebianのSPDXの生成ツールや脆弱性ツールの開発およびこれらの研究成果の発表は、予定通り行うことができた。 最近、SBoMは新しい版が公開され、その構成要素も変更が見られる。我々の研究に関する部分にも影響があるか、今後慎重に見極めていく必要があろう。
|
Strategy for Future Research Activity |
SPDXの普及は進みつつあるようであるが、実際の開発者にとってはどのような課題があるかの調査を進め、その課題解決の方法を考えていく必要がある。そのための調査研究を進めていく。 このような課題の一つとして考えられるのがSPDXの読みにくさ、理解しづらさだと考えられる。そこでそれを解消するための一手段として、SPDXの要約方法を検討する。SPDXの仕様の変更や記述の自由さを考えると、機械学習を用いた柔軟な要約システムの構築が考えられる。このようなシステムの設計を行う。 SPDXは普及の兆しは見られるとはいえ、まだそのサンプルは多いとは言えない。そこで多数のソフトウェアパッケージを対象として、それらのSPDXを生成し、パッケージとそのSPDXの対のデータベースを構築して公開し、SPDXの研究の材料となるようにする。これを効率的に行うためには、SPDX生成ツールを活用して自動生成を行う。現在SPDX生成ツールは多数提案されているが、それらの違い、問題点、効率などを評価し、そのデータも公開を目指す。 その他、コードクローンの生成、更新の履歴を分析し、危険なコードクローンを認識するための手法を開発する。履歴分析のためにGitのコミット履歴を利用し、効果的な分析を行なえるようにする。
|