見出し画像

Characterizing the Quality of Third-party libraries through Runnability and Risk Assessment in the Open Source Ecosystem

2021年度研究会推薦博士論文速報
[ソフトウェア工学研究会]

画像1

Bodin Chinthanet
(奈良先端科学技術大学院大学 特任助教)

邦訳:オープンソースエコシステムにおける実行可能性とリスク評価によるサードパーティライブラリの品質特徴づけ

■キーワード
ソフトウェアエコシステム
ソフトウェアリポジトリマイニング
ソフトウェア脆弱性

【背景】ソフトウェアは今や社会の共有資産
【問題】サイバー攻撃に耐えバグもない状態にソフトウェアを保つのは至難の業
【貢献】汎用性の高いプログラム部品(パッケージ)の高品質化

 ソフトウェア(「プログラム」や「アプリ」と表現した方が馴染みがあるかもしれない)は,多くの人にとってとても身近な存在となっている.スマホの人気や売上は,カメラの性能だけでなく,便利で面白いアプリが使えるかどうか,で大きく変わる.また,皆さんが直接目にすることのないところでも,情報化社会を支える裏方としてソフトウェアは大活躍している.ソフトウェアは今や社会の共有資産であり,特に,使い勝手がよく使い道もいろいろと見込まれるソフトウェアやその一部は,ソフトウェアパッケージ(プログラム部品の集合体)としてまとめられ,広く配布,共有,活用されるようになってきている.ソフトウェアを資産として共有,活用する枠組み全体をソフトウェアエコシステムと呼ぶ.

 ただし,作り手の意図通りに動作しサイバー攻撃にも負けない(バグや脆弱性が残っていない)ように作成したソフトウェアも,時間の経過とともに手直しが必要となる.ソフトウェアそのものは変化しないが,その利用環境や利用目的が変化すると意図通りには動作しなくなる.また,新たなサイバー攻撃にも対応しなければならない.ソフトウェアエコシステムにおいてソフトウェアをバグや脆弱性が残っていない状態に保つことは容易ではない.

 本研究では,ソフトウェアパッケージにおける品質評価と脆弱性伝搬に着目し,バグや脆弱性が残っていない状態にソフトウェアを保つ作業を支援する手法を提案している.

 ソフトウェアパッケージの品質評価においては,第三者が作成したライブラリ(サードパーティライブラリ.パッケージの集合)の作成者(エコシステムにおける貢献者)とその利用者(エコシステムにおける一般の開発者)の双方を対象とした調査に基づき,ライブラリを構成するパッケージの特性値を定量化した.その結果,品質評価の観点では,パッケージの作成者と利用者の間で差異はなく,特に,パッケージの実行可能性を重視していることが分かった.さらに,パッケージ特性値を用いてその実行可能性を予測することで,高品質なパッケージの選択支援が可能であることも示した.

 ソフトウェアパッケージの脆弱性伝搬については,開発プラットフォームGitHub上で最大級とされているnpmエコシステムを対象として,サードパーティライブラリについて2009年4月から2020年8月までに提出された脆弱性報告を分析した.その結果,脆弱性伝搬における遅延は,脆弱性の深刻度,および,脆弱性発見からの経過時間,に大きく依存していることが分かった.そこで,パッケージに内在する脆弱性コードを検出するとともに,パッケージ利用時に脆弱性コードが実行されるかどうか(到達可能性)を評価する2つのプロトタイプツールをパッケージ利用者向けに実現した.同ツールを用いることで,脆弱性修正にかかわる作業に優先順位をつけ,脆弱性伝播における遅延を低減することができる.

画像2

参考文献
1)Chinthanet, B., Kula, R. G., McIntosh, S., Ishio, T., Ihara, A. and Matsumoto, K. : Lags in the Release, Adoption, and
Propagation of npm Vulnerability Fixes, Empirical Software
Engineering, Vol.26, No.47 (Mar. 2021), doi:10.1007/s10664-021-09951-x
2)Chinthanet, B., Ponta, S. E., Plate, H., Sabetta, A., Kula, R. G., Ishio, T. and Matsumoto, K. : Code-based Vulnerability Detection in Node.js Applications: How far are we?, IEEE/ACM International Conference on Automated Software Engineering (ASE 2020) (Sep. 2020), doi:10.1145/3324884.3421838

(2022年5月17日受付)
(2022年8月15日note公開)

ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー
 取得年月日:2021年9月
 学位種別:博士(工学)
 大学:奈良先端科学技術大学院大学

ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー

推薦文[コンピュータサイエンス領域]ソフトウェア工学研究会
本論文は,高品質なサードパーティライブラリとそこに含まれるパッケージをソフトウェア開発者が容易に選択することを可能にし,脆弱性伝搬の遅延低減にもつながる明確で具体的な知見を明らかにしている.その手法や得られた知見は,広くソフトウェア開発者支援の高度化,ソフトウェア工学研究の発展に大きく貢献する.


研究生活  
私が博士課程に進むきっかけとなったのは,2015年6月から約2カ月間にわたって参加した,奈良先端科学技術大学院大学における研究インターンシップである.私は当時学部3年生で,博士課程への進学,ましてや,日本の大学への留学までは考えていなかった.研究インターンシップでは,ソフトウェアの特性やその開発過程が反映された膨大なデータの解析に取り組んだ.決して楽なものではなかったが,ソフトウェア開発に役立つ具体的な知見が数多く得られるなど,研究への興味が一気に高まった.あれから7年,研究活動が成果になかなか結びつかず迷いが生じる時期もあった.が,今になって思えば,誰も取り組んだことのない研究テーマにチャレンジしていたのだから,少しぐらいの回り道は当然のことであり,あれもこれもが研究者としての糧になっていると感じている.博士課程への進学は,皆さんに苦労を強いる暗いものではなく,皆さんの可能性を広げ明るい未来をもたらすと,自信を持って言うことができる.