In this article
安全なオープンソースポリシーの策定
オープンソースポリシーの定義
オープンソースソフトウェアポリシーとは、ビジネスやプロジェクトにおいてオープンソースソフトウェアを使用・配布する際に許容されるユースケースを定めたものです。
オープンソースポリシーとは何でしょうか。
今日の組織は、競争が激化する市場で存続するため、規模を拡大しながら効率性と俊敏性を高めるという大きなプレッシャーに直面しています。生産性を高め、市場での成長を最大化するには、開発者がオープンソースのデジタル資産や情報技術、膨大なインフラソフトウェアを共有し、活用する必要があります。
オープンソースソフトウェアポリシーを設けることで、開発者が判断に迷う場面を減らし、組織のデジタルトランスフォーメーションを促進できます。何より、オープンソース利用ポリシーがあれば、開発者は適切なツールを選び、オープンソースコードを積極的に活用できます。
組織においてオープンソースポリシーが重要となるのは、次のような場合です。
オープンソースソフトウェアを利用するとき
製品にオープンソースコードを使用するとき
オープンソースプロジェクトに貢献するとき
社内ツールの構築にオープンソースコードを使用するとき
明確に定義されたオープンソースポリシーの重要性
オープンソースポリシーの管理を適切に行うことで、オープンソースコードの効果とメリットを最大限に引き出せます。これにより、オープンソースソフトウェアの導入や会社の知的財産のオープンソース化に伴う法務上・技術上のリスクを正しく把握し、事前に軽減できます。
オープンソースポリシーが必要な理由
明確に定義されたオープンソースポリシーには、開発者が次のことを理解するための具体例を盛り込む必要があります。
オープンソースの使用において許容される慣行とは何か
会社のコードやツールをオープンソースとして公開してよいのはどのような場合か
どのような使い方が許容されるのか、あるいは許容されないのかを把握することは、オープンソースポリシーを適切に管理するうえで不可欠です。
リスクを抑え、効率を最大化する
オープンソースの自由度や柔軟性、コミュニティを活用することは、開発者にとって働きやすい環境づくりにつながります。しかし、こうしたメリットを組織の法務チームが重視するとは限りません。社内弁護士は、ライセンスへの準拠を徹底し、訴訟を防ぎ、コードやツールの不適切な使用・流用による悪評やコミュニティからの反発を回避できるオープンソースソフトウェアポリシーを求めています。オープンソース利用ポリシーを策定する際、関係者はコントリビューターライセンス契約を含むオープンソースライセンスの種類を理解しておく必要があります。
オープンソース利用ポリシーには何を盛り込むべきか
オープンソースポリシーの管理では、組織がソフトウェアを利用する前に、どのようにレビューし、誰が承認できるのかを文書化する必要があります。
組織がオープンソースプロジェクトに貢献する場合は、会社の知的財産を保護し、その他のリスクを抑えるポリシーを盛り込むことも重要です。これにより、開発者がオープンソースコミュニティに参加できるようになり、生産性と士気の向上につながります。
さらに、オープンソース利用ポリシーでは、問題の修正と関係者への通知を担うチームを明確にする必要があります。また、会社の成長や取引関係、パートナーシップの構築に応じてポリシーを見直せるよう、責任者とメンテナーを定めておきましょう。
オープンソースポリシーを策定する手順
オープンソースポリシーの策定には、次の2つの重要な手順があります。
おそらく最も重要なのは、まず組織としての合意を得ることです。主要な関係者の支持があれば、計画を採用し、オープンソースポリシーの管理計画が変化しても継続して実行しやすくなります。
この最初の手順を終えたら、さまざまなトレードオフを検討しながらポリシーの草案を作成します。複雑なルールではなく、シンプルで幅広く適用できるルールを定め、リスク管理と開発者の生産性向上のバランスを意識しましょう。
オープンソースポリシーの策定に関わる主な関係者
組織のオープンソースポリシーの管理には、重要な関係者が参加する必要があります。オープンソースソフトウェアポリシーの策定や見直しには、ソフトウェアエンジニア、開発者、ソフトウェアアーキテクト、製品・事業マネージャー、品質保証担当者などが関わります。また、組織の内外でソフトウェアを使用する際の詳細を監督する、法務顧問やセキュリティ関係者も忘れてはなりません。
オープンソースポリシーにおけるライセンスコンプライアンス
他のライセンスと同様に、リスクへの露出を抑えるには、オープンソースライセンスの条件を遵守することが重要です。これも、組織のオープンソースソフトウェアポリシーに欠かせない要素です。そのためには定期的な監査を行い、文書化されていない、または文書の記載が不正確なオープンソースソフトウェアが、組織のソフトウェアリリースに含まれていないことを確認する必要があります。
コードスキャンポリシーを導入する
ソフトウェアの提供元には、納品物に組み込まれた各OSSコンポーネント、その変更内容、既知のセキュリティリスクを報告するよう求める必要があります。また、Snyk Open Sourceなどを活用したコードスキャンポリシーを導入し、ソフトウェアの安全性とオープンソースライセンスへの準拠を確認しましょう。デュアルライセンスを許容するかどうかを把握し、許容できないライセンスを除外できるよう、ライセンスコンプライアンスの条件も盛り込む必要があります。
オープンソースの依存関係をスキャンして脆弱性を検出
Snykを使って、脆弱性を自動で検出・優先順位付けし、無料で修正しましょう。
オープンソースポリシーに基づいてパッケージの利用申請をレビューする
オープンソースソフトウェアポリシーの重要な要素の1つが、承認済みオープンソースのリストです。専有ソフトウェアにオープンソースコードを使用することが許容されるかどうかを、ポリシーで明確に定めましょう。そうしないと、組織のライセンス上の問題につながる可能性があります。オープンソースの利用申請やコントリビューターライセンス契約を迅速にレビューするポリシーがあれば、開発者は作業を素早く進めるための適切なツールを選べます。また、組織がオープンソースを積極的に支持していることも示せます。新しいソフトウェアやコードの申請をなかなか承認しない、あるいは関心を失ったレビュー担当者は、特に組織の規模が拡大する際には交代させるべきです。
オープンソースポリシーを継続的に見直すべき理由
オープンソースソフトウェアは継続的に更新・改善されるため、新たな脆弱性や修正が頻繁に生まれます。オープンソースの利用が増えるほど、組織での利用状況を継続的に監視するプロセスが成功の鍵となります。このプロセスは、オープンソースコミュニティが管理するさまざまな脆弱性情報データベースと連携して運用する必要があります。そうすることで、オープンソースの脆弱性をリアルタイムで把握できます。
コンプライアンスをコード化し、オープンソースポリシーを自動化する
ソフトウェアの保守や反復的な開発を急ぐ今日、コンプライアンス・アズ・コードは、オープンソースソフトウェアの手動監査に代わる方法となります。自動化によって開発者が社内サービスや顧客向けサービスの改善に専念できるなら、オープンソース利用ポリシーに沿って管理策が守られているかを確認するプロセスも自動化するのが合理的です。コンプライアンス・アズ・コードは、バグやセキュリティ侵害の予防・検出・修正に役立ちます。