2023.09.21更新日:2024.07.31
オープンソースソフトウェアは無償で使える上、さまざまな種類が存在します。正しく使えば企業にとって開発の強力なツールとなるでしょう。本ページではオープンソースソフトウェアのメリット・デメリットやライセンスに関する注意点などを解説し、セキュリティ管理用ツールについてご紹介します。
オープンソースソフトウェア(Open Source Software、以下OSS)とは、ソースコードが無償で公開され、さらに利用や改変、再配布を行うことが誰に対しても許可されているソフトウェアのことです。(*)
※出典:経済産業省「オープンソースソフトウェアの利活用及びそのセキュリティ確保に向けた管理手法に関する事例集」
https://www.meti.go.jp/press/2021/04/20210421001/20210421001-1.pdf(2023年2月14日)
OSSと聞くと、オペレーションシステムのLinux、スマートフォンのOS「Android」、ウェブサーバーのApache HTTP Server, リレーショナルデータベースのMySQL、ウェブブラウザのFirefox、思い浮かべる方が多いと思います。米Meta社が生成AIの基盤となる大規模言語モデルを公開したように、企業がオープンソースで公開するケースもあります。プログラムを構成する部品にあたるソフトウェアコンポーネントにもOSSのものがあり、様々な場面で使われています。
オープンソースソフトウェアの促進を目的とする団体Open Source Initiative(OSI)は、OSSを以下の10項目より定義し、これらに準拠したソフトウェアにオープンソースライセンスを承認しています。
※出典:Open Source Initiative「The Open Source Definition」
https://opensource.org/osd(2023年2月14日)
OSSを活用するメリットは利用料がかからないことだけではありません。自由にカスタマイズができることや、世界中の技術者が開発コミュニティに参加していることなどいくつもあります。ここではOSSを活用するメリットの中でも代表的なものを、順にご紹介します。
OSSはソースコードが公開されており、各OSSごと有志のユーザーコミュニティによって見守られています。不正プログラムや脆弱性があった場合、有志のユーザーが発見し、チェック・修正がされます。
世界中のユーザーが自由に使用・改良でき、中には優秀な技術者や企業によって継続的な開発とメンテナンスが行われているものもあります。そのためユーザーの多いソフトウェアほど機能追加やアップデートが積極的に行われるのが特徴です。脆弱性やバグが発見されても、早期の修正が期待できます。
多くの商用ソフトウェアや一部の無償のフリーソフトの中には、ソースコードを公開していなかったり、公開していても改変・再配布を禁止していたりするものがあります。これらを総じてプロプライエタリソフトウェアといいます。プロプライエタリソフトウェアを使用していると、メーカーのサポート打ち切りによりアップグレードや買い替えを余儀なくされる可能性があります。
一方OSSであれば、ユーザーによる開発者コミュニティが活発である限り、メンテナンスが継続され、使用できるといえます。
OSSは基本的に無償で利用できるため、商用ソフトウェアに比べてコストを抑えて開発を行えます。
ライセンスの条件下であればソースコードの改変ができるため、ソフトウェアにすでに実装された機能をカスタマイズして独自の機能を付け加えるといった開発手法が可能になり、費用や時間の短縮が期待できます。特定のメーカー製品のみに依存して乗り換えができない「ベンダーロックイン」の状態に陥るのを避けられる点もメリットです。
このようにOSSの活用には多くのメリットがありますが、一方でライセンス準拠の問題、有償の可能性、脆弱性など注意しなければならない点がいくつかあります。順にご紹介します。
OSSは著作権者の意思のもとでライセンスを付与して配布されており、利用に際してはライセンスの遵守が求められます。
OSSライセンスは複数ありますが、以下のような共通点があります。
OSSの中には商用利用を禁止しているものもあるため、特に企業が商用で利用する場合には確認が必要です。ライセンス違反による訴訟を避けるためにも、法務専門家による確認を行いましょう。
OSSは基本的に無償で自由に利用できますが、有償のOSSも存在します。
個人による使用や研究目的であれば無償でも、利益が発生する利用形態であればライセンス使用料金を課すOSSもあるため、企業が商用利用をする場合はライセンス料の支払いについて考慮が必要です。
元のソフトウェアのソースコードを利用したり改変したりして作成されたソフトウェアのことを「派生物」と呼びます。OSSの派生物を再配布する際には、ライセンスの種類によって課される制限に違いがあり、次のように分類できます。
ライセンスの種類 | 内容 |
---|---|
コピーレフト型 | 元のOSSのソースコードを改変またはライブラリとして利用した場合でも、派生物は同じライセンスが適用され、ソースコードを開示しなければならない(GPLv2、GPLv3など) |
準コピーレフト型 | 元のOSSのソースコードを改変した場合のみ、同じライセンスでソースコードを開示しなければならない(Mozilla Public Licenseなど) |
非コピーレフト型 | 派生物は同じライセンスを課されずソースコード公開の必要がない(BSDライセンス、Apache Software Licenseなど) |
OSSを元に開発を行う場合はこのようなライセンスの規定をよく理解しておきましょう。
OSSはサーバー、ネットワーク、システムコンポーネントのライブラリなどと多岐にわたり利用されていますが、脆弱性が見つかる場合もあります。ソフトウェアの脆弱性を狙うサイバー攻撃の手法として「標準型攻撃」と「Bot型攻撃」について解説します。
ライセンスの種類 | 内容 |
---|---|
標準型攻撃 | 攻撃者は対象となる企業でフレームワークや言語として使用されているOSSを特定し、そのOSSの脆弱性を調べ出し、データ詐取などの攻撃を仕掛けてくる |
Bot型攻撃 | 攻撃者は報告された脆弱性の悪用方法を取り入れたBotと呼ばれる攻撃を自動化したツールにより無差別に攻撃を仕掛けてくる。サーバーが乗っ取られBot攻撃の踏み台とされる可能性もある |
複雑なライセンス条件やソフトウェアの内部で、多岐にわたって利用されているOSSコンポーネントの脆弱性に対処するためには多くの手間がかかります。人手で管理するには限界があるので、管理の際は専用のチェックツールを活用するのがおすすめです。ここで管理においてどのような作業が発生するのか、具体的な手順をご紹介します。
OSSにおけるライセンス・脆弱性管理に必要な作業の手順は次のようになります。
OSSはコンポーネント利用のものも含めると種類が多く複雑な依存関係にあります。セキュリティ対策・ライセンス管理には専用のチェックツールを導入するのがおすすめです。