開発支援
ソフトウェアデザイン
品質改革
OSS管理のベストプラクティス&OSS管理ツールの選び方
2021年9月13日
企業のOSS活用の指針となる「ポリシー」について
OSS管理って何から始めれば良いのでしょうか?という質問をいただくことがありますが、私はまず「OSSポリシーを作りましょう」と提案します。OSSポリシーとは、企業がOSSとどのように関わっていくかという指針を定めたもので、さまざまなシーンで行う判断の拠り所になります。OSSポリシーにも色々な形式、粒度がありますが、私が一般的におすすめしているのは下記の構成です。
図2. OSSポリシーの例
作成したポリシーは、定めた内容を詳細化し、タスクの粒度に落とし込んだ「ガイドライン」や、組織のメンバーに理解・浸透させるための「教育資料」の形に転用することもできます。特に、ソフトウェア開発に携わるすべての方が統一的な正しい知識を持っていることは、企業のコンプライアンスの基礎となる重要な要素ですので、教育は定期的にしっかり実施するようにしてください。
OSS管理業務を効率化する「ツール」について
ここでは、ソースコードを解析し、内包するOSSを可視化して一元管理するツールのことを「OSS管理ツール」と呼びます。ひとつの製品・サービスで使用されるOSSの数が増え、構造が複雑化している昨今、手動で一つひとつのOSSを正確に把握することはほぼ不可能ですので、ツールを活用して業務を効率化したいという方も多いのではないでしょうか。OSS管理ツールにもさまざまな種類があり、結局のところ、どれがいいの?と迷われる方も多いと思いますので、選ぶ際の観点とおすすめツールを纏めてみました。
観点その1:OSSを改変して使っているか
OSS管理ツールの基本的なアプローチは、解析対象ファイルから算出したハッシュ値と、あらかじめ算出して蓄えてあるOSSのハッシュ値とを比較する「ファイルマッチング」という方法です。ほとんどのツールには「あいまいマッチ検出」の機能があるので、軽微な改変であれば検出することができますが、改変の度合いと検出率は相反関係になります。
改変されたOSSの検出を可能にするため、いくつかのOSS管理ツールでは「スニペットマッチング」というアプローチをとっています。これは、ファイルの一部分だけが似ているようなOSSを特定することができ、OSSの意図しない混入(コンタミネーション)を防止することができます。
as-is(ありのまま)のOSSのライブラリを参照しているだけ、というような場合であればファイルマッチングができるOSS管理ツールで十分ですし、組込み開発などでOSSの改変が必須の方であれば、スニペットマッチングができるOSS管理ツールを選んでください。
このカテゴリーのおすすめツール
観点その2:独自ビルドのバイナリファイルを解析する必要があるか
OSSのバイナリファイルをas-isで使用している場合であれば、上述の「ファイルマッチング」でカバーできますが、独自ビルドのバイナリファイルは、ビルド環境やオプションなどによりハッシュ値が変わりますので、特別なアプローチが必要です。元にしたソースファイルが手元にある場合は、ソースファイルを解析すれば良いのですが、外部からの購入品などでバイナリファイルしか手元にない場合もありますので、そのような方は独自ビルドのバイナリファイルを解析する機能を持ったツールを選んでください。
このカテゴリーのおすすめツール
観点その3:依存関係の解析
取り込んだOSSがさらに別のOSSを取り込んでいて、突き詰めていくとGPLライセンスのライブラリが入っていた・・・という「あるある」を経験したことのある方も多いのではないでしょうか。このような「入れ子構造」になっているライセンスのことを「Deep License」と呼びます。このようなDeep Licenseを調べるには、パッケージごとの依存関係(どのパッケージが、どのパッケージを内包しているか)を調べなければなりません。Deep Licenseを詳しく調べたい方は、パッケージマネージャの依存関係を示すファイルを解析しパッケージの依存関係を可視化してくれる機能を持ったツールを選んでください。
このカテゴリーのおすすめツール
おわりに
最近ではさまざまな場面でOSSが使われるようになってきているため、OSS管理に取り組まれている企業が増えてきました。また、2020年にOSS管理の国際標準「ISO/IEC 5230」が誕生し、OSSコンプライアンスの切り口でサプライチェーンマネジメントにも注目が集まっています。お客様から、「貴社のOSS管理の仕組みを教えてください」と言われる機会も増えてくるかもしれませんので、いざというときに慌てない様、早いうちに取り組んでいただくことをお勧めします。
OSS管理のお困りごとは、日立ソリューションズにご相談ください。
渡邊 歩
株式会社 日立ソリューションズ
ITプラットフォーム事業部 デジタルシフト開発支援本部
グループマネージャ
2011年よりオープンソース管理ソリューションを立ち上げ、企業のOSS利活用を支援するコンサルティングを提供。顧客企業向けのトレーニングや業務支援のほか、セミナー講演や技術文書の投稿などを行っている。社外ではOpenChain Japan WGの中心メンバーとして活動、2020年には日立ソリューションズとして、日本企業初となるOpenChain公式パートナー認定を獲得した。