SlideShare ist ein Scribd-Unternehmen logo
1 von 55
Downloaden Sie, um offline zu lesen
© Hitachi Solutions, Ltd. 2021. All rights reserved.
株式会社 日立ソリューションズ
OSSコンサルティンググループ
森下 大輔
エンジニアのためのOSSライセンス管理
〜OSS管理ツールの池の水ぜんぶ抜く〜
© Hitachi Solutions, Ltd. 2021. All rights reserved. 1
はじめに
OSS管理ツールの池の水ぜんぶ抜く
クラウドサービスFOSSAについて
本日のアジェンダ
© Hitachi Solutions, Ltd. 2021. All rights reserved. 2
はじめに
© Hitachi Solutions, Ltd. 2021. All rights reserved. 3
自己紹介
森下 大輔
@OSSコンサルティンググループ
Qiitaやってます
https://qiita.com/d-morishita
© Hitachi Solutions, Ltd. 2021. All rights reserved. 4
(念のため)OSSライセンスとは
• MIT、Apache-2.0、GPL、AGPL、など
• OSI(Open Source Initiative)が定義
© Hitachi Solutions, Ltd. 2021. All rights reserved. 5
OSSライセンス”管理”とは
• 使っているOSSをすべて把握すること
• OSSライセンスを正しく把握すること
• ライセンスのルールに従うこと(責務を全うすること)
© Hitachi Solutions, Ltd. 2021. All rights reserved. 6
エンジニアにとってのOSSライセンス管理
• 手間がかかる
• ライセンスの確認には手間と時間がかかる
• 開発スピードを落としたくない
• よく分からない
• ライセンスは英語でよく分からない
• 日本語にしても法律関連の文章で意味不明
© Hitachi Solutions, Ltd. 2021. All rights reserved. 7
エンジニアにとってのOSSライセンス管理
• 手間がかかる
• ライセンスの確認には手間と時間がかかる
• 開発スピードを落としたくない
• よく分からない
• ライセンスは英語でよく分からない
• 日本語にしても法律関連の文章で意味不明
←ツール
←解釈共有
© Hitachi Solutions, Ltd. 2021. All rights reserved. 8
OSSライセンス管理のためのツール
• さまざまなツール
• 無償(フリー/OSS)
• FOSSology
• scancode-toolkit
• LicenseFinder
• など
• 有償
• Black Duck
• WhiteSource
• FlexNet Code Insight
• など
© Hitachi Solutions, Ltd. 2021. All rights reserved. 9
OSSライセンスの解釈共有サービス・ツール
1. TLDRLegal
• FOSSA社が公開しているOSSライセンスの要約を解りやすい形式
で提供するWebサイト
2. OSADL License obligations checklist
• Open Source Automation Development Lab(OSADL)が公開
しているライセンス義務条件データ
3. OSS License Open Data
• 日立が公開しているライセンス解釈データ
1.https://tldrlegal.com/
2.https://www.osadl.org/Access-to-raw-data.oss-compliance-raw-data-access.0.html
3.https://github.com/Hitachi/open-license
© Hitachi Solutions, Ltd. 2021. All rights reserved. 10
エンジニアにとってのOSSライセンス管理
• 手間がかかる
• ライセンスの確認には手間と時間がかかる
• 開発スピードを落としたくない
• よく分からない
• ライセンスは英語でよく分からない
• 日本語にしても法律関連の文章で意味不明
←ツール
←解釈共有
今日はここを深堀り
© Hitachi Solutions, Ltd. 2021. All rights reserved. 11
OSS管理ツールの池の水ぜんぶ抜く
© Hitachi Solutions, Ltd. 2021. All rights reserved. 12
OSS管理ツールの池の水ぜんぶ抜く
• 今日の話
• OSSライセンス管理のためのツールはどんなもの
があるか
• それらはどんなことができるか
• どう使えば良いか
© Hitachi Solutions, Ltd. 2021. All rights reserved. 13
どんなツールがあるのか
© Hitachi Solutions, Ltd. 2021. All rights reserved. 14
OSSライセンス管理のためのツール
オープンソースが世の中に広まっていく中でさまざまなツールが誕生
→ 全容が分かり辛くなっている(まるで公園の池のように…)
たくさんあるね
2004年に旧BlackDuck社が
OSSスキャンソリューションを発表
無償・有償問わず
多数のツールが誕生
多数の機能を持ったツールも存在
ツールによっては珍しい
機能を持ったツールも
まるで新種のように…
希少種の
ように…
まるで巨大魚のように…
© Hitachi Solutions, Ltd. 2021. All rights reserved. 15
開始10分ですが、
さっそく水を抜きます
© Hitachi Solutions, Ltd. 2021. All rights reserved. 16
池の水ぜんぶ抜いてみた
BlackDuck
WhiteSource
FlexNet Code
Insight
FOSSID
Insignary Clarity
FOSSA
Snyk
JFrog Xray
Veracode SCA
WhiteHat SCA
GitLab
yamory
Nexus
Contrast OSS
CAST Highlight
CxSCA
FOSSology
scancode-toolkit
askalono
lc
go-license-detector
licensee
ninka
licenseclassifier
LiD
ORT
LicenseFinder
licensed
license-
checker(npm)
license maven
plugin(Maven)
license gradle
plugin(Gradle)
AboutLibraries
(android)
LicensePlist(iOS)
pip-licenses(pip)
php-legal-
licenses(composer)
go-licenses(Go)
© Hitachi Solutions, Ltd. 2021. All rights reserved. 17
全ツールについて詳細を解説
整理した上で全体像(何ができるか)を解説
© Hitachi Solutions, Ltd. 2021. All rights reserved. 18
何ができるのか?(ライセンス関連)
1. OSSとライセンスのスキャン
• 依存関係(メタデータ)のスキャン
• ライセンス文字列のスキャン
• コードパターンのスキャン
2. ポリシーの設定とアラートの通知
• GPL/AGPLの検出でメール送付するなど
3. ライセンスファイルの生成
• 利用OSSすべてのライセンステキストまとめを生成
1と2できます 全部できます
※ツールによって持っている機能が異なります
1だけできます
© Hitachi Solutions, Ltd. 2021. All rights reserved. 19
何ができるのか?(ライセンス関連)
1. OSSとライセンスのスキャン
• 依存関係(メタデータ)のスキャン
• ライセンス文字列のスキャン
• コードパターンのスキャン
2. ポリシーの設定とアラートの通知
• GPL/AGPLの検出でメール送付するなど
3. ライセンスファイルの生成
• 利用OSSすべてのライセンステキストまとめを生成
1だけできます 1と2できます 全部できます
※ツールによって持っている機能が異なります
© Hitachi Solutions, Ltd. 2021. All rights reserved. 20
依存関係(メタデータ)のスキャンとは
• パッケージマネージャなどで依存モジュールとして設定し
たOSSライブラリの検出
• 無償・有償含め、本機能を持っているツールは多数存在
~パッケージマネージの例~
Maven
Npm
Gradle
nuget
CocoaPods
…
© Hitachi Solutions, Ltd. 2021. All rights reserved. 21
依存関係(メタデータ)のスキャン 補足
• ツールの例
• 特定環境特化型
• 特定の言語や環境に特化してOSSライセンスを調べるツール
• ツールの例
• license-checker(npm)
• LicenseToolsPlugin(android)
• など
• 環境横断型
• 複数言語(パッケージマネージャ)に対応したツール
• ツールの例
• LicenseFinder(pivotal)
• Licensed(github)
• など
• ツールによる違い
• 検出対象
• アプリケーションのパッケージ(npm、maven、…)
• OSのパッケージ(rpm、deb、…)
• ライセンスの判断材料
• パッケージのメタデータ
• 「LICENSE」や「README」などのファイル
• ソースファイル(ライセンスヘッダ等)
© Hitachi Solutions, Ltd. 2021. All rights reserved. 22
ライセンス文字列のスキャンとは
• OSSライセンスと思われるテキスト(文字列)の検出
• 無償、有償含め、多数のツールが存在
OSS
CodeBase
Scanner
Copy
“.*apache.*license.*2.0.*”
Search
Developer
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
© Hitachi Solutions, Ltd. 2021. All rights reserved. 23
ライセンス文字列のスキャン 補足
• ツールの例
• FOSSology
• scancode-toolkit
• Licensee
• askalono
• など
• ツールによる違い
• 検出手段
• 正規表現
• テキスト類似度
• 正確さを優先するもの、指摘漏れの回避を優先するものなど、さまざま
• 著作権表示(コピーライト)、Email、URLなどを検出するものもある
© Hitachi Solutions, Ltd. 2021. All rights reserved. 24
コードパターンのスキャンとは
• ソースファイルの内容をOSSデータベースと照合(マッチン
グ)させて検出
• 基本的に有償ツールでのみ実施可能(OSSデータベース要)
© Hitachi Solutions, Ltd. 2021. All rights reserved. 25
コードパターンのスキャン 補足
• ツールの例
• BlackDuck
• WhiteSource
• FlexNet Code Insight
• FOSSID
• Insignary Clarity
• ツールによる違い
• 検出の対象
• ソースコード
• 独自バイナリ
• 検出の粒度
• ファイル
• スニペット(コードの一部分であっても検出する)
• OSS特定のレベル
• OSSの特定は行わない(候補を出すのみ)
• OSSの特定まで行う(OSSを一意に決定する)
※有償なので実際は色々なスキャンが可能です
© Hitachi Solutions, Ltd. 2021. All rights reserved. 26
何ができるのか?(ライセンス関連)
1. OSSとライセンスのスキャン
• 依存関係(メタデータ)のスキャン
• ライセンス文字列のスキャン
• コードパターンのスキャン
2. ポリシーの設定とアラートの通知
• GPL/AGPLの検出でメール送付するなど
3. ライセンスファイルの生成
• 利用OSSすべてのライセンステキストまとめを生成
1だけできます 1と2できます 全部できます
※ツールによって持っている機能が異なります
© Hitachi Solutions, Ltd. 2021. All rights reserved. 27
何ができるのか?(ライセンス関連)
1. OSSとライセンスのスキャン
• 依存関係(メタデータ)のスキャン
• ライセンス文字列のスキャン
• コードパターンのスキャン
2. ポリシーの設定とアラートの通知
• GPL/AGPLの検出でメール送付するなど
3. ライセンスファイルの生成
• 利用OSSすべてのライセンステキストまとめを生成
1だけできます 1と2できます 全部できます
※ツールによって持っている機能が異なります
結局、何を
どうすべき?
© Hitachi Solutions, Ltd. 2021. All rights reserved. 28
エンジニアのためのOSSライセンス管理戦略
© Hitachi Solutions, Ltd. 2021. All rights reserved. 29
以下のようなプロジェクトで考える
OSS
OSS
OSS-A
OSS-a1
依存パッケージ
OSS-B
OSS-b1
OSS-a2
…
ソースコード
依存するOSS
・OSS-A
・OSS-B
・………
OSS-X
パッケージマ
ネージャ設定
ファイル
断片
(改変ファイル)
フォルダ
L L … License
L L L
L
L L
© Hitachi Solutions, Ltd. 2021. All rights reserved. 30
OSS
OSS
OSS-A
OSS-a1
依存パッケージ
OSS-B
OSS-b1
OSS-a2
…
ソースコード
依存するOSS
・OSS-A
・OSS-B
・………
OSS-X
パッケージマ
ネージャ設定
ファイル
断片
(改変ファイル)
フォルダ
L L … License
L L L
L
L L
OSSの管理戦略①
…
依存パッケージは依存関係(メタデータ)のスキャンで対応
依存関係
・誤検知なし
・高速
ライセンス文字列
コードパターン
・誤検知あり
・判断が難しい
OSSおよびバージョンの特定は手動
(ライセンスしか分からない)
© Hitachi Solutions, Ltd. 2021. All rights reserved. 31
OSS
OSS
OSS-A
OSS-a1
依存パッケージ
OSS-B
OSS-b1
OSS-a2
…
ソースコード
依存するOSS
・OSS-A
・OSS-B
・………
OSS-X
パッケージマ
ネージャ設定
ファイル
断片
(改変ファイル)
フォルダ
L L … License
L L L
L
L L
OSSの管理戦略②
残りの部分はどのようなアプローチでスキャンすべきか?
依存関係
コードパターン
でもさ、そもそもスキャンって
やる必要ある?
ライセンス文字列
OSS内の別OSSを見つけ
る場合、根拠になるのは
ライセンスなどの文字列
情報となる
ライセンス情報がなくても
検知可能なのでファイルや
コード断片の検出はコード
パターンのスキャンが良い
© Hitachi Solutions, Ltd. 2021. All rights reserved. 32
OSS
OSS
OSS-A
OSS-a1
依存パッケージ
OSS-B
OSS-b1
OSS-a2
…
ソースコード
依存するOSS
・OSS-A
・OSS-B
・………
OSS-X
パッケージマ
ネージャ設定
ファイル
断片
(改変ファイル)
フォルダ
L L … License
L L L
L
L L
OSSの管理戦略③
残りの部分はどのようなアプローチでスキャンすべきか?
・スキャンすれば良いというものではない
・運用まで考えて必要なところにツールを使う
開発者の意図しない利用
=ツールでスキャンすべき
開発者の意図した利用
=スキャン不要
ライセンス文字列
コードパターン
要教育
手間と時間がかかる上
に結局は検知漏れもあ
りえるので、開発者を
教育して把握させた方
が効率も精度も良い
とはいえ他社が作ったコード
など、コードパターンの
スキャンが有効な場合はあるよ
依存関係
開発者がリテラシを持ち
自身でOSSを把握する
ひと手間かかるがコンプラ
イアンス観点で要スキャン
© Hitachi Solutions, Ltd. 2021. All rights reserved. 33
OSS
OSS
OSS-A
OSS-a1
依存パッケージ
OSS-B
OSS-b1
OSS-a2
…
ソースコード
依存するOSS
・OSS-A
・OSS-B
・………
OSS-X
パッケージマ
ネージャ設定
ファイル
断片
(改変ファイル)
フォルダ
L L … License
L L L
L
L L
OSSの管理戦略④
2パターンのスキャンアプローチが準備できていればOK
依存関係
ライセンス文字列
コードパターン
要教育
その②
・FOSSology
・scancode-toolkit
・など
その①
・LicenseFinder
・licensed
・など
基本的に自動で検知
OSSコピペ時のみ手動確認
© Hitachi Solutions, Ltd. 2021. All rights reserved. 34
OSS
OSS
OSS-A
OSS-a1
依存パッケージ
OSS-B
OSS-b1
OSS-a2
…
ソースコード
依存するOSS
・OSS-A
・OSS-B
・………
OSS-X
パッケージマ
ネージャ設定
ファイル
断片
(改変ファイル)
フォルダ
L L … License
L L L
L
L L
OSSの管理戦略⑤
依存パッケージ内のOSSライセンスは大丈夫か?
依存関係
ライセンス文字列
コードパターン
要教育
L
L
L
L
L
L
各OSSパッケージ内にも他ライ
センスのコードがあるかも…
一つずつ文字列スキャンするか?
↓
場合によっては100~1000以上の
パッケージが利用される…
↓
多大な工数が発生
© Hitachi Solutions, Ltd. 2021. All rights reserved. 35
OSS
OSS
OSS-A
OSS-a1
依存パッケージ
OSS-B
OSS-b1
OSS-a2
…
ソースコード
依存するOSS
・OSS-A
・OSS-B
・………
OSS-X
パッケージマ
ネージャ設定
ファイル
断片
(改変ファイル)
フォルダ
L L … License
L L L
L
L L
依存関係
ライセンス文字列
コードパターン
要教育
L
L
L
L
L
L
・FOSSA
・ORT
・など
ライセンス文字列
基本的に自動で検知
これでかなり開発者の
負荷が減りそうです
希少種!!
OSSの管理戦略⑥
依存チェックと同時に文字列スキャンしてくれるツールを使う
© Hitachi Solutions, Ltd. 2021. All rights reserved. 36
クラウドサービスFOSSAについて
© Hitachi Solutions, Ltd. 2021. All rights reserved. 37
FOSSAとは
• OSSライセンス管理のためのクラウドサービス
• 個人利用は無料(制限つき)
• 「license scan」バッジを提供
引用:https://fossa.com/customers/js-foundation
© Hitachi Solutions, Ltd. 2021. All rights reserved. 38
FOSSA社について
• TLDRLegalを提供
• 業界の専門家と協力体制を構築
• OSSライセンスの世界で著名な米国弁護士であるHeather
Meeker氏がアドバイザーとして参画
• Cloud Native Computing Foundation (CNCF)のCTOである
Chris Aniszczyk氏がアドバイザーとして参画
https://tldrlegal.com/
© Hitachi Solutions, Ltd. 2021. All rights reserved. 39
FOSSA導入実績
• 全世界16000チームが採用
引用:https://fossa.com/customers
© Hitachi Solutions, Ltd. 2021. All rights reserved. 40
FOSSAの概要
• 機能
• OSSとライセンスのスキャン
• 依存関係(メタデータ)のスキャン
• ライセンス文字列のスキャン
• ポリシー・アラート
• ライセンスファイルの生成
© Hitachi Solutions, Ltd. 2021. All rights reserved. 41
FOSSAの概要
• 機能
• OSSとライセンスのスキャン
• 依存関係(メタデータ)のスキャン
• ライセンス文字列のスキャン
• ポリシー・アラート
• ライセンスファイルの生成
© Hitachi Solutions, Ltd. 2021. All rights reserved. 42
FOSSAの機能(OSSとライセンスのスキャン)
• クイックインポート
• スキャナ連携(CI/CD連携)※ベンダ推奨
© Hitachi Solutions, Ltd. 2021. All rights reserved. 43
クイックインポート
• GitHub、GitLab、Bitbucketのアカウントと連携
• 自身が管理するリポジトリを指定してFOSSAにインポート
引用:https://docs.fossa.com/docs/quick-import
© Hitachi Solutions, Ltd. 2021. All rights reserved. 44
スキャナ連携(CI/CD連携)
• 開発環境(開発PC、CI環境など)でスキャナを実行
• スキャナがスキャン結果をサーバに送信
https://github.com/fossas/fossa-cli
スキャナはOSSです。
© Hitachi Solutions, Ltd. 2021. All rights reserved. 45
FOSSAの概要
• 機能
• OSSとライセンスのスキャン
• 依存関係(メタデータ)のスキャン
• ライセンス文字列のスキャン
• ポリシー・アラート
• ライセンスファイルの生成
© Hitachi Solutions, Ltd. 2021. All rights reserved. 46
FOSSAの機能(ポリシー・アラート)
• FOSSAのポリシーおよびスキャン結果の確認
• Policies画面
• Issue画面
© Hitachi Solutions, Ltd. 2021. All rights reserved. 47
Policies画面
• ポリシーを利用してコンプライアンス違反の可能性を
検出可能
• 専門家が監修した3種類のポリシーがプリセットされ
ている
• Standard Bundle Distribution
• Single-Binary Distribution
• Website/Hosted Service
• ポリシーはカスタマイズも可能
引用:https://docs.fossa.com/docs/configuring-default-policy-rules
© Hitachi Solutions, Ltd. 2021. All rights reserved. 48
Issue画面
• ポリシーに違反している事象の列挙
• 問題に関わる情報の提供
• Jiraへのチケット作成機能
© Hitachi Solutions, Ltd. 2021. All rights reserved. 49
FOSSAの概要
• 機能
• OSSとライセンスのスキャン
• 依存関係(メタデータ)のスキャン
• ライセンス文字列のスキャン
• ポリシー・アラート
• ライセンスファイルの生成
© Hitachi Solutions, Ltd. 2021. All rights reserved. 50
FOSSAの機能(ライセンスファイルの生成)
• カスタマイズ性が高く実用性に優れたレポートを生成可能
Docker社の例
引用:https://www.docker.com/legal/components-licenses
© Hitachi Solutions, Ltd. 2021. All rights reserved. 51
FOSSAまとめ
OSS
OSS
OSS-A
OSS-a1
依存パッケージ
OSS-B
OSS-b1
OSS-a2
…
ソースコード
依存するOSS
・OSS-A
・OSS-B
・………
OSS-X
OSS-Y
OSS-Z
パッケージマ
ネージャ設定
ファイル
断片
(改変ファイル)
フォルダ
FOSSAなら全体のスキャン→違反検知→ライセンスファイル生成まで一気通貫
依存関係
ライセンス文字列
コードパターン
OSS-a1-1
OSS-a1-2
OSS-a2-1
OSS-a2-2
ライセンス文字列 …
OSS-b1-1
OSS-b1-2
違反検知
ライセンス
ファイル生成
© Hitachi Solutions, Ltd. 2021. All rights reserved. 52
補足:サポート範囲
詳細はFOSSAのドキュメントを参照ください:https://docs.fossa.com/docs
• 主要な言語/パッケージマネージャをサポート
• npm、Maven、Gradle、pip、Nuget、CocoaPods、など
• 主要な外部ツールとの統合をサポート
• GitHub、GitLab、Bitbucket、Jira、Slack、など
• 有償版はOSS脆弱性管理の機能もサポート
© Hitachi Solutions, Ltd. 2021. All rights reserved. 53
全体まとめ
• OSS管理ツールは整理する以下の機能に分解される
• OSSとライセンスのスキャン
• 依存関係(メタデータ)のスキャン
• ライセンス文字列のスキャン
• コードパターンのスキャン
• ポリシー設定とアラート通知
• ライセンスファイルの生成
• 管理の戦略
• スキャンすれば良いというものではない
• 適材適所のスキャンアプローチ
• 違反の検知やライセンス生成はツールで自動化
• 具体的な管理施策(例)
• FOSSAでプロジェクトを管理
© Hitachi Solutions, Ltd. 2021. All rights reserved. 54
END
※本資料に記載の会社名、商品名、ロゴ等は各社の商標または登録登録です。

Weitere ähnliche Inhalte

Was ist angesagt?

テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなKentaro Matsui
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021Hiroshi Tokumaru
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法Tetsutaro Watanabe
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean ArchitectureAtsushi Nakamura
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方Yoshiyasu SAEKI
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxShota Shinogi
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学MITSUNARI Shigeo
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説murachue
 
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールこんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールdcubeio
 
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないことNorishige Fukushima
 
こわくない Git
こわくない Gitこわくない Git
こわくない GitKota Saito
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計Yoshinori Matsunobu
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門大樹 小倉
 
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門泰 増田
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法についてYuji Otani
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Masahito Zembutsu
 
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
 
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugフロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugItsuki Kuroda
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門Kohei Tokunaga
 

Was ist angesagt? (20)

テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
 
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールこんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
 
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
 
こわくない Git
こわくない Gitこわくない Git
こわくない Git
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
 
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
 
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
 
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugフロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
 

Ähnlich wie エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~

たまにはライセンスの話をしよう 20110211
たまにはライセンスの話をしよう 20110211たまにはライセンスの話をしよう 20110211
たまにはライセンスの話をしよう 20110211Yutaka Kachi
 
たぶん45分くらいでわかる、オープンソースの世界
たぶん45分くらいでわかる、オープンソースの世界たぶん45分くらいでわかる、オープンソースの世界
たぶん45分くらいでわかる、オープンソースの世界Yutaka Kachi
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割Toru Yamaguchi
 
オープンソースライセンス ケーススタディ
オープンソースライセンス ケーススタディオープンソースライセンス ケーススタディ
オープンソースライセンス ケーススタディYutaka Kachi
 
Android™組込み開発基礎コース BeagleBoard編
Android™組込み開発基礎コース BeagleBoard編Android™組込み開発基礎コース BeagleBoard編
Android™組込み開発基礎コース BeagleBoard編OESF Education
 
テクてく Lotus 技術者夜会 03/16 Lotus Notes/Domino Upgrade Pack とは
テクてく Lotus 技術者夜会 03/16 Lotus Notes/Domino Upgrade Pack とはテクてく Lotus 技術者夜会 03/16 Lotus Notes/Domino Upgrade Pack とは
テクてく Lotus 技術者夜会 03/16 Lotus Notes/Domino Upgrade Pack とはHiroaki Komine
 
Otrs&OTOBO_document 20210402
Otrs&OTOBO_document 20210402Otrs&OTOBO_document 20210402
Otrs&OTOBO_document 20210402IO Architect Inc.
 
Keycloak入門-OpenID ConnectによるAPIセキュリティ
Keycloak入門-OpenID ConnectによるAPIセキュリティKeycloak入門-OpenID ConnectによるAPIセキュリティ
Keycloak入門-OpenID ConnectによるAPIセキュリティYuichi Nakamura
 
080826 Extライセンスについて(第3回勉強会)Slideshare
080826 Extライセンスについて(第3回勉強会)Slideshare080826 Extライセンスについて(第3回勉強会)Slideshare
080826 Extライセンスについて(第3回勉強会)SlideshareYuki Naotori
 
企業のオープンソース活動を支える Open Source Program Office (OSPO)
企業のオープンソース活動を支える Open Source Program Office (OSPO)企業のオープンソース活動を支える Open Source Program Office (OSPO)
企業のオープンソース活動を支える Open Source Program Office (OSPO)takanori suzuki
 
20130203 OSS-DB Exam Silver 技術解説無料セミナー
20130203 OSS-DB Exam Silver 技術解説無料セミナー20130203 OSS-DB Exam Silver 技術解説無料セミナー
20130203 OSS-DB Exam Silver 技術解説無料セミナーKazuko Itoda
 
[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...
[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...
[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...Insight Technology, Inc.
 
Mbed祭り 2017@春の新横浜 20170225 竹之下
Mbed祭り 2017@春の新横浜 20170225 竹之下Mbed祭り 2017@春の新横浜 20170225 竹之下
Mbed祭り 2017@春の新横浜 20170225 竹之下Koyo Takenoshita
 
App017 power shellの新しい相棒_visual_studio_
App017 power shellの新しい相棒_visual_studio_App017 power shellの新しい相棒_visual_studio_
App017 power shellの新しい相棒_visual_studio_Tech Summit 2016
 
App017 power shellの新しい相棒_visual_studio
App017 power shellの新しい相棒_visual_studioApp017 power shellの新しい相棒_visual_studio
App017 power shellの新しい相棒_visual_studioTech Summit 2016
 

Ähnlich wie エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~ (20)

たまにはライセンスの話をしよう 20110211
たまにはライセンスの話をしよう 20110211たまにはライセンスの話をしよう 20110211
たまにはライセンスの話をしよう 20110211
 
たぶん45分くらいでわかる、オープンソースの世界
たぶん45分くらいでわかる、オープンソースの世界たぶん45分くらいでわかる、オープンソースの世界
たぶん45分くらいでわかる、オープンソースの世界
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
 
オープンソースライセンス ケーススタディ
オープンソースライセンス ケーススタディオープンソースライセンス ケーススタディ
オープンソースライセンス ケーススタディ
 
Android™組込み開発基礎コース BeagleBoard編
Android™組込み開発基礎コース BeagleBoard編Android™組込み開発基礎コース BeagleBoard編
Android™組込み開発基礎コース BeagleBoard編
 
OSS光と闇
OSS光と闇OSS光と闇
OSS光と闇
 
テクてく Lotus 技術者夜会 03/16 Lotus Notes/Domino Upgrade Pack とは
テクてく Lotus 技術者夜会 03/16 Lotus Notes/Domino Upgrade Pack とはテクてく Lotus 技術者夜会 03/16 Lotus Notes/Domino Upgrade Pack とは
テクてく Lotus 技術者夜会 03/16 Lotus Notes/Domino Upgrade Pack とは
 
DevConf.cz 2020参加報告
DevConf.cz 2020参加報告DevConf.cz 2020参加報告
DevConf.cz 2020参加報告
 
Otrs&OTOBO_document 20210402
Otrs&OTOBO_document 20210402Otrs&OTOBO_document 20210402
Otrs&OTOBO_document 20210402
 
Keycloak入門-OpenID ConnectによるAPIセキュリティ
Keycloak入門-OpenID ConnectによるAPIセキュリティKeycloak入門-OpenID ConnectによるAPIセキュリティ
Keycloak入門-OpenID ConnectによるAPIセキュリティ
 
080826 Extライセンスについて(第3回勉強会)Slideshare
080826 Extライセンスについて(第3回勉強会)Slideshare080826 Extライセンスについて(第3回勉強会)Slideshare
080826 Extライセンスについて(第3回勉強会)Slideshare
 
企業のオープンソース活動を支える Open Source Program Office (OSPO)
企業のオープンソース活動を支える Open Source Program Office (OSPO)企業のオープンソース活動を支える Open Source Program Office (OSPO)
企業のオープンソース活動を支える Open Source Program Office (OSPO)
 
20130203 oss-db-lpi
20130203 oss-db-lpi20130203 oss-db-lpi
20130203 oss-db-lpi
 
20130203 OSS-DB Exam Silver 技術解説無料セミナー
20130203 OSS-DB Exam Silver 技術解説無料セミナー20130203 OSS-DB Exam Silver 技術解説無料セミナー
20130203 OSS-DB Exam Silver 技術解説無料セミナー
 
[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...
[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...
[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...
 
Lf intro 2020-r5
Lf intro 2020-r5Lf intro 2020-r5
Lf intro 2020-r5
 
20101022
2010102220101022
20101022
 
Mbed祭り 2017@春の新横浜 20170225 竹之下
Mbed祭り 2017@春の新横浜 20170225 竹之下Mbed祭り 2017@春の新横浜 20170225 竹之下
Mbed祭り 2017@春の新横浜 20170225 竹之下
 
App017 power shellの新しい相棒_visual_studio_
App017 power shellの新しい相棒_visual_studio_App017 power shellの新しい相棒_visual_studio_
App017 power shellの新しい相棒_visual_studio_
 
App017 power shellの新しい相棒_visual_studio
App017 power shellの新しい相棒_visual_studioApp017 power shellの新しい相棒_visual_studio
App017 power shellの新しい相棒_visual_studio
 

エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~

  • 1. © Hitachi Solutions, Ltd. 2021. All rights reserved. 株式会社 日立ソリューションズ OSSコンサルティンググループ 森下 大輔 エンジニアのためのOSSライセンス管理 〜OSS管理ツールの池の水ぜんぶ抜く〜
  • 2. © Hitachi Solutions, Ltd. 2021. All rights reserved. 1 はじめに OSS管理ツールの池の水ぜんぶ抜く クラウドサービスFOSSAについて 本日のアジェンダ
  • 3. © Hitachi Solutions, Ltd. 2021. All rights reserved. 2 はじめに
  • 4. © Hitachi Solutions, Ltd. 2021. All rights reserved. 3 自己紹介 森下 大輔 @OSSコンサルティンググループ Qiitaやってます https://qiita.com/d-morishita
  • 5. © Hitachi Solutions, Ltd. 2021. All rights reserved. 4 (念のため)OSSライセンスとは • MIT、Apache-2.0、GPL、AGPL、など • OSI(Open Source Initiative)が定義
  • 6. © Hitachi Solutions, Ltd. 2021. All rights reserved. 5 OSSライセンス”管理”とは • 使っているOSSをすべて把握すること • OSSライセンスを正しく把握すること • ライセンスのルールに従うこと(責務を全うすること)
  • 7. © Hitachi Solutions, Ltd. 2021. All rights reserved. 6 エンジニアにとってのOSSライセンス管理 • 手間がかかる • ライセンスの確認には手間と時間がかかる • 開発スピードを落としたくない • よく分からない • ライセンスは英語でよく分からない • 日本語にしても法律関連の文章で意味不明
  • 8. © Hitachi Solutions, Ltd. 2021. All rights reserved. 7 エンジニアにとってのOSSライセンス管理 • 手間がかかる • ライセンスの確認には手間と時間がかかる • 開発スピードを落としたくない • よく分からない • ライセンスは英語でよく分からない • 日本語にしても法律関連の文章で意味不明 ←ツール ←解釈共有
  • 9. © Hitachi Solutions, Ltd. 2021. All rights reserved. 8 OSSライセンス管理のためのツール • さまざまなツール • 無償(フリー/OSS) • FOSSology • scancode-toolkit • LicenseFinder • など • 有償 • Black Duck • WhiteSource • FlexNet Code Insight • など
  • 10. © Hitachi Solutions, Ltd. 2021. All rights reserved. 9 OSSライセンスの解釈共有サービス・ツール 1. TLDRLegal • FOSSA社が公開しているOSSライセンスの要約を解りやすい形式 で提供するWebサイト 2. OSADL License obligations checklist • Open Source Automation Development Lab(OSADL)が公開 しているライセンス義務条件データ 3. OSS License Open Data • 日立が公開しているライセンス解釈データ 1.https://tldrlegal.com/ 2.https://www.osadl.org/Access-to-raw-data.oss-compliance-raw-data-access.0.html 3.https://github.com/Hitachi/open-license
  • 11. © Hitachi Solutions, Ltd. 2021. All rights reserved. 10 エンジニアにとってのOSSライセンス管理 • 手間がかかる • ライセンスの確認には手間と時間がかかる • 開発スピードを落としたくない • よく分からない • ライセンスは英語でよく分からない • 日本語にしても法律関連の文章で意味不明 ←ツール ←解釈共有 今日はここを深堀り
  • 12. © Hitachi Solutions, Ltd. 2021. All rights reserved. 11 OSS管理ツールの池の水ぜんぶ抜く
  • 13. © Hitachi Solutions, Ltd. 2021. All rights reserved. 12 OSS管理ツールの池の水ぜんぶ抜く • 今日の話 • OSSライセンス管理のためのツールはどんなもの があるか • それらはどんなことができるか • どう使えば良いか
  • 14. © Hitachi Solutions, Ltd. 2021. All rights reserved. 13 どんなツールがあるのか
  • 15. © Hitachi Solutions, Ltd. 2021. All rights reserved. 14 OSSライセンス管理のためのツール オープンソースが世の中に広まっていく中でさまざまなツールが誕生 → 全容が分かり辛くなっている(まるで公園の池のように…) たくさんあるね 2004年に旧BlackDuck社が OSSスキャンソリューションを発表 無償・有償問わず 多数のツールが誕生 多数の機能を持ったツールも存在 ツールによっては珍しい 機能を持ったツールも まるで新種のように… 希少種の ように… まるで巨大魚のように…
  • 16. © Hitachi Solutions, Ltd. 2021. All rights reserved. 15 開始10分ですが、 さっそく水を抜きます
  • 17. © Hitachi Solutions, Ltd. 2021. All rights reserved. 16 池の水ぜんぶ抜いてみた BlackDuck WhiteSource FlexNet Code Insight FOSSID Insignary Clarity FOSSA Snyk JFrog Xray Veracode SCA WhiteHat SCA GitLab yamory Nexus Contrast OSS CAST Highlight CxSCA FOSSology scancode-toolkit askalono lc go-license-detector licensee ninka licenseclassifier LiD ORT LicenseFinder licensed license- checker(npm) license maven plugin(Maven) license gradle plugin(Gradle) AboutLibraries (android) LicensePlist(iOS) pip-licenses(pip) php-legal- licenses(composer) go-licenses(Go)
  • 18. © Hitachi Solutions, Ltd. 2021. All rights reserved. 17 全ツールについて詳細を解説 整理した上で全体像(何ができるか)を解説
  • 19. © Hitachi Solutions, Ltd. 2021. All rights reserved. 18 何ができるのか?(ライセンス関連) 1. OSSとライセンスのスキャン • 依存関係(メタデータ)のスキャン • ライセンス文字列のスキャン • コードパターンのスキャン 2. ポリシーの設定とアラートの通知 • GPL/AGPLの検出でメール送付するなど 3. ライセンスファイルの生成 • 利用OSSすべてのライセンステキストまとめを生成 1と2できます 全部できます ※ツールによって持っている機能が異なります 1だけできます
  • 20. © Hitachi Solutions, Ltd. 2021. All rights reserved. 19 何ができるのか?(ライセンス関連) 1. OSSとライセンスのスキャン • 依存関係(メタデータ)のスキャン • ライセンス文字列のスキャン • コードパターンのスキャン 2. ポリシーの設定とアラートの通知 • GPL/AGPLの検出でメール送付するなど 3. ライセンスファイルの生成 • 利用OSSすべてのライセンステキストまとめを生成 1だけできます 1と2できます 全部できます ※ツールによって持っている機能が異なります
  • 21. © Hitachi Solutions, Ltd. 2021. All rights reserved. 20 依存関係(メタデータ)のスキャンとは • パッケージマネージャなどで依存モジュールとして設定し たOSSライブラリの検出 • 無償・有償含め、本機能を持っているツールは多数存在 ~パッケージマネージの例~ Maven Npm Gradle nuget CocoaPods …
  • 22. © Hitachi Solutions, Ltd. 2021. All rights reserved. 21 依存関係(メタデータ)のスキャン 補足 • ツールの例 • 特定環境特化型 • 特定の言語や環境に特化してOSSライセンスを調べるツール • ツールの例 • license-checker(npm) • LicenseToolsPlugin(android) • など • 環境横断型 • 複数言語(パッケージマネージャ)に対応したツール • ツールの例 • LicenseFinder(pivotal) • Licensed(github) • など • ツールによる違い • 検出対象 • アプリケーションのパッケージ(npm、maven、…) • OSのパッケージ(rpm、deb、…) • ライセンスの判断材料 • パッケージのメタデータ • 「LICENSE」や「README」などのファイル • ソースファイル(ライセンスヘッダ等)
  • 23. © Hitachi Solutions, Ltd. 2021. All rights reserved. 22 ライセンス文字列のスキャンとは • OSSライセンスと思われるテキスト(文字列)の検出 • 無償、有償含め、多数のツールが存在 OSS CodeBase Scanner Copy “.*apache.*license.*2.0.*” Search Developer Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
  • 24. © Hitachi Solutions, Ltd. 2021. All rights reserved. 23 ライセンス文字列のスキャン 補足 • ツールの例 • FOSSology • scancode-toolkit • Licensee • askalono • など • ツールによる違い • 検出手段 • 正規表現 • テキスト類似度 • 正確さを優先するもの、指摘漏れの回避を優先するものなど、さまざま • 著作権表示(コピーライト)、Email、URLなどを検出するものもある
  • 25. © Hitachi Solutions, Ltd. 2021. All rights reserved. 24 コードパターンのスキャンとは • ソースファイルの内容をOSSデータベースと照合(マッチン グ)させて検出 • 基本的に有償ツールでのみ実施可能(OSSデータベース要)
  • 26. © Hitachi Solutions, Ltd. 2021. All rights reserved. 25 コードパターンのスキャン 補足 • ツールの例 • BlackDuck • WhiteSource • FlexNet Code Insight • FOSSID • Insignary Clarity • ツールによる違い • 検出の対象 • ソースコード • 独自バイナリ • 検出の粒度 • ファイル • スニペット(コードの一部分であっても検出する) • OSS特定のレベル • OSSの特定は行わない(候補を出すのみ) • OSSの特定まで行う(OSSを一意に決定する) ※有償なので実際は色々なスキャンが可能です
  • 27. © Hitachi Solutions, Ltd. 2021. All rights reserved. 26 何ができるのか?(ライセンス関連) 1. OSSとライセンスのスキャン • 依存関係(メタデータ)のスキャン • ライセンス文字列のスキャン • コードパターンのスキャン 2. ポリシーの設定とアラートの通知 • GPL/AGPLの検出でメール送付するなど 3. ライセンスファイルの生成 • 利用OSSすべてのライセンステキストまとめを生成 1だけできます 1と2できます 全部できます ※ツールによって持っている機能が異なります
  • 28. © Hitachi Solutions, Ltd. 2021. All rights reserved. 27 何ができるのか?(ライセンス関連) 1. OSSとライセンスのスキャン • 依存関係(メタデータ)のスキャン • ライセンス文字列のスキャン • コードパターンのスキャン 2. ポリシーの設定とアラートの通知 • GPL/AGPLの検出でメール送付するなど 3. ライセンスファイルの生成 • 利用OSSすべてのライセンステキストまとめを生成 1だけできます 1と2できます 全部できます ※ツールによって持っている機能が異なります 結局、何を どうすべき?
  • 29. © Hitachi Solutions, Ltd. 2021. All rights reserved. 28 エンジニアのためのOSSライセンス管理戦略
  • 30. © Hitachi Solutions, Ltd. 2021. All rights reserved. 29 以下のようなプロジェクトで考える OSS OSS OSS-A OSS-a1 依存パッケージ OSS-B OSS-b1 OSS-a2 … ソースコード 依存するOSS ・OSS-A ・OSS-B ・……… OSS-X パッケージマ ネージャ設定 ファイル 断片 (改変ファイル) フォルダ L L … License L L L L L L
  • 31. © Hitachi Solutions, Ltd. 2021. All rights reserved. 30 OSS OSS OSS-A OSS-a1 依存パッケージ OSS-B OSS-b1 OSS-a2 … ソースコード 依存するOSS ・OSS-A ・OSS-B ・……… OSS-X パッケージマ ネージャ設定 ファイル 断片 (改変ファイル) フォルダ L L … License L L L L L L OSSの管理戦略① … 依存パッケージは依存関係(メタデータ)のスキャンで対応 依存関係 ・誤検知なし ・高速 ライセンス文字列 コードパターン ・誤検知あり ・判断が難しい OSSおよびバージョンの特定は手動 (ライセンスしか分からない)
  • 32. © Hitachi Solutions, Ltd. 2021. All rights reserved. 31 OSS OSS OSS-A OSS-a1 依存パッケージ OSS-B OSS-b1 OSS-a2 … ソースコード 依存するOSS ・OSS-A ・OSS-B ・……… OSS-X パッケージマ ネージャ設定 ファイル 断片 (改変ファイル) フォルダ L L … License L L L L L L OSSの管理戦略② 残りの部分はどのようなアプローチでスキャンすべきか? 依存関係 コードパターン でもさ、そもそもスキャンって やる必要ある? ライセンス文字列 OSS内の別OSSを見つけ る場合、根拠になるのは ライセンスなどの文字列 情報となる ライセンス情報がなくても 検知可能なのでファイルや コード断片の検出はコード パターンのスキャンが良い
  • 33. © Hitachi Solutions, Ltd. 2021. All rights reserved. 32 OSS OSS OSS-A OSS-a1 依存パッケージ OSS-B OSS-b1 OSS-a2 … ソースコード 依存するOSS ・OSS-A ・OSS-B ・……… OSS-X パッケージマ ネージャ設定 ファイル 断片 (改変ファイル) フォルダ L L … License L L L L L L OSSの管理戦略③ 残りの部分はどのようなアプローチでスキャンすべきか? ・スキャンすれば良いというものではない ・運用まで考えて必要なところにツールを使う 開発者の意図しない利用 =ツールでスキャンすべき 開発者の意図した利用 =スキャン不要 ライセンス文字列 コードパターン 要教育 手間と時間がかかる上 に結局は検知漏れもあ りえるので、開発者を 教育して把握させた方 が効率も精度も良い とはいえ他社が作ったコード など、コードパターンの スキャンが有効な場合はあるよ 依存関係 開発者がリテラシを持ち 自身でOSSを把握する ひと手間かかるがコンプラ イアンス観点で要スキャン
  • 34. © Hitachi Solutions, Ltd. 2021. All rights reserved. 33 OSS OSS OSS-A OSS-a1 依存パッケージ OSS-B OSS-b1 OSS-a2 … ソースコード 依存するOSS ・OSS-A ・OSS-B ・……… OSS-X パッケージマ ネージャ設定 ファイル 断片 (改変ファイル) フォルダ L L … License L L L L L L OSSの管理戦略④ 2パターンのスキャンアプローチが準備できていればOK 依存関係 ライセンス文字列 コードパターン 要教育 その② ・FOSSology ・scancode-toolkit ・など その① ・LicenseFinder ・licensed ・など 基本的に自動で検知 OSSコピペ時のみ手動確認
  • 35. © Hitachi Solutions, Ltd. 2021. All rights reserved. 34 OSS OSS OSS-A OSS-a1 依存パッケージ OSS-B OSS-b1 OSS-a2 … ソースコード 依存するOSS ・OSS-A ・OSS-B ・……… OSS-X パッケージマ ネージャ設定 ファイル 断片 (改変ファイル) フォルダ L L … License L L L L L L OSSの管理戦略⑤ 依存パッケージ内のOSSライセンスは大丈夫か? 依存関係 ライセンス文字列 コードパターン 要教育 L L L L L L 各OSSパッケージ内にも他ライ センスのコードがあるかも… 一つずつ文字列スキャンするか? ↓ 場合によっては100~1000以上の パッケージが利用される… ↓ 多大な工数が発生
  • 36. © Hitachi Solutions, Ltd. 2021. All rights reserved. 35 OSS OSS OSS-A OSS-a1 依存パッケージ OSS-B OSS-b1 OSS-a2 … ソースコード 依存するOSS ・OSS-A ・OSS-B ・……… OSS-X パッケージマ ネージャ設定 ファイル 断片 (改変ファイル) フォルダ L L … License L L L L L L 依存関係 ライセンス文字列 コードパターン 要教育 L L L L L L ・FOSSA ・ORT ・など ライセンス文字列 基本的に自動で検知 これでかなり開発者の 負荷が減りそうです 希少種!! OSSの管理戦略⑥ 依存チェックと同時に文字列スキャンしてくれるツールを使う
  • 37. © Hitachi Solutions, Ltd. 2021. All rights reserved. 36 クラウドサービスFOSSAについて
  • 38. © Hitachi Solutions, Ltd. 2021. All rights reserved. 37 FOSSAとは • OSSライセンス管理のためのクラウドサービス • 個人利用は無料(制限つき) • 「license scan」バッジを提供 引用:https://fossa.com/customers/js-foundation
  • 39. © Hitachi Solutions, Ltd. 2021. All rights reserved. 38 FOSSA社について • TLDRLegalを提供 • 業界の専門家と協力体制を構築 • OSSライセンスの世界で著名な米国弁護士であるHeather Meeker氏がアドバイザーとして参画 • Cloud Native Computing Foundation (CNCF)のCTOである Chris Aniszczyk氏がアドバイザーとして参画 https://tldrlegal.com/
  • 40. © Hitachi Solutions, Ltd. 2021. All rights reserved. 39 FOSSA導入実績 • 全世界16000チームが採用 引用:https://fossa.com/customers
  • 41. © Hitachi Solutions, Ltd. 2021. All rights reserved. 40 FOSSAの概要 • 機能 • OSSとライセンスのスキャン • 依存関係(メタデータ)のスキャン • ライセンス文字列のスキャン • ポリシー・アラート • ライセンスファイルの生成
  • 42. © Hitachi Solutions, Ltd. 2021. All rights reserved. 41 FOSSAの概要 • 機能 • OSSとライセンスのスキャン • 依存関係(メタデータ)のスキャン • ライセンス文字列のスキャン • ポリシー・アラート • ライセンスファイルの生成
  • 43. © Hitachi Solutions, Ltd. 2021. All rights reserved. 42 FOSSAの機能(OSSとライセンスのスキャン) • クイックインポート • スキャナ連携(CI/CD連携)※ベンダ推奨
  • 44. © Hitachi Solutions, Ltd. 2021. All rights reserved. 43 クイックインポート • GitHub、GitLab、Bitbucketのアカウントと連携 • 自身が管理するリポジトリを指定してFOSSAにインポート 引用:https://docs.fossa.com/docs/quick-import
  • 45. © Hitachi Solutions, Ltd. 2021. All rights reserved. 44 スキャナ連携(CI/CD連携) • 開発環境(開発PC、CI環境など)でスキャナを実行 • スキャナがスキャン結果をサーバに送信 https://github.com/fossas/fossa-cli スキャナはOSSです。
  • 46. © Hitachi Solutions, Ltd. 2021. All rights reserved. 45 FOSSAの概要 • 機能 • OSSとライセンスのスキャン • 依存関係(メタデータ)のスキャン • ライセンス文字列のスキャン • ポリシー・アラート • ライセンスファイルの生成
  • 47. © Hitachi Solutions, Ltd. 2021. All rights reserved. 46 FOSSAの機能(ポリシー・アラート) • FOSSAのポリシーおよびスキャン結果の確認 • Policies画面 • Issue画面
  • 48. © Hitachi Solutions, Ltd. 2021. All rights reserved. 47 Policies画面 • ポリシーを利用してコンプライアンス違反の可能性を 検出可能 • 専門家が監修した3種類のポリシーがプリセットされ ている • Standard Bundle Distribution • Single-Binary Distribution • Website/Hosted Service • ポリシーはカスタマイズも可能 引用:https://docs.fossa.com/docs/configuring-default-policy-rules
  • 49. © Hitachi Solutions, Ltd. 2021. All rights reserved. 48 Issue画面 • ポリシーに違反している事象の列挙 • 問題に関わる情報の提供 • Jiraへのチケット作成機能
  • 50. © Hitachi Solutions, Ltd. 2021. All rights reserved. 49 FOSSAの概要 • 機能 • OSSとライセンスのスキャン • 依存関係(メタデータ)のスキャン • ライセンス文字列のスキャン • ポリシー・アラート • ライセンスファイルの生成
  • 51. © Hitachi Solutions, Ltd. 2021. All rights reserved. 50 FOSSAの機能(ライセンスファイルの生成) • カスタマイズ性が高く実用性に優れたレポートを生成可能 Docker社の例 引用:https://www.docker.com/legal/components-licenses
  • 52. © Hitachi Solutions, Ltd. 2021. All rights reserved. 51 FOSSAまとめ OSS OSS OSS-A OSS-a1 依存パッケージ OSS-B OSS-b1 OSS-a2 … ソースコード 依存するOSS ・OSS-A ・OSS-B ・……… OSS-X OSS-Y OSS-Z パッケージマ ネージャ設定 ファイル 断片 (改変ファイル) フォルダ FOSSAなら全体のスキャン→違反検知→ライセンスファイル生成まで一気通貫 依存関係 ライセンス文字列 コードパターン OSS-a1-1 OSS-a1-2 OSS-a2-1 OSS-a2-2 ライセンス文字列 … OSS-b1-1 OSS-b1-2 違反検知 ライセンス ファイル生成
  • 53. © Hitachi Solutions, Ltd. 2021. All rights reserved. 52 補足:サポート範囲 詳細はFOSSAのドキュメントを参照ください:https://docs.fossa.com/docs • 主要な言語/パッケージマネージャをサポート • npm、Maven、Gradle、pip、Nuget、CocoaPods、など • 主要な外部ツールとの統合をサポート • GitHub、GitLab、Bitbucket、Jira、Slack、など • 有償版はOSS脆弱性管理の機能もサポート
  • 54. © Hitachi Solutions, Ltd. 2021. All rights reserved. 53 全体まとめ • OSS管理ツールは整理する以下の機能に分解される • OSSとライセンスのスキャン • 依存関係(メタデータ)のスキャン • ライセンス文字列のスキャン • コードパターンのスキャン • ポリシー設定とアラート通知 • ライセンスファイルの生成 • 管理の戦略 • スキャンすれば良いというものではない • 適材適所のスキャンアプローチ • 違反の検知やライセンス生成はツールで自動化 • 具体的な管理施策(例) • FOSSAでプロジェクトを管理
  • 55. © Hitachi Solutions, Ltd. 2021. All rights reserved. 54 END ※本資料に記載の会社名、商品名、ロゴ等は各社の商標または登録登録です。