セキュリティ観点を交えて考える、オープンソース活用のメリットとデメリット

この記事をシェア

デジタルの進展に伴い利用が広がるオープンソースソフトウェア。その脆弱性を狙うサイバー攻撃の手口も近年、巧妙化・複雑化する傾向にある。この記事では、オープンソースソフトウェアの概要やメリット、デメリット、そして利用において生じ得るセキュリティリスクやその対処方法について解説する。

セキュリティ観点を交えて考える、オープンソース活用のメリットとデメリット

オープンソースソフトウェア(OSS)とは

オープンソースとは、読んで字の如く、プログラムの元となるソースコードがオープン(公開されている状態)になっており、誰でもそのコードへ自由にアクセスできることを意味する。本来、IT業界に端を発する用語であるが、今では広く世間一般に認知されるに至っている。

オープンソースで開発されているソフトウェアのことをオープンソースソフトウェア(OSS)と呼ぶが、オープンソースソフトウェアには多くのメリットがあり、さまざまなケースで利用されている。

オープンソースソフトウェアは、善意によって集った技術者によって開発・保守が進められており、原則として無償で利用できるものが多い。特に、多くの技術者に支持されているオープンソースソフトウェアの場合、機能開発や脆弱性対応のサイクルも高速化する傾向にある。一方で、開発に参加する技術者が少ないオープンソースソフトウェアの場合、そのサイクルが長期化してしまう懸念が残る。

オープンソースとは、プログラムのソースコードが公開されていて、基本的に無償で利用できるソフトウェアのことだが、1998年にOpen Source Initiative(OSI)という団体によって、オープンソースが定義された。

OSIが定めたオープンソースの定義が以下の10項目である。

1)再頒布の自由(Free Redistribution)

ソフトウェアを販売、あるいは無料で頒布することを制限してはならない。

2)ソースコード(Source Code)

ソフトウェアはソースコードを含んでいなければならず、ソースコードでの頒布も許可されていなければならない。

3)派生ソフトウェア(Derived Works)

ソフトウェアの変更や派生ソフトウェアの作成、派生ソフトウェアを元のソフトウェアと同じライセンスの下で頒布することを許可しなければならない。

4)作者のソースコードの完全性(Integrity of The Author’s Source Code)

ソースコードと一緒にバッチファイルを頒布することを認める場合に限り、ライセンスによって変更されたソースコードの頒布を制限することができる。

5)個人やグループに対する差別の禁止(No Discrimination Against Persons or Groups)

特定の個人やグループを差別するものであってはならない。

6)利用する分野に対する差別の禁止(No Discrimination Against Fields of Endeavor)

ある特定の分野でプログラムを使うことを制限してはならない。

7)ライセンスの分配(Distribution of License)

プログラムに付随する権利は、そのプログラムが再頒布された者すべてに等しく認められなければならない。

8)特定製品でのみ有効なライセンスの禁止(License Must Not Be Specific to a Product)

プログラムに付与された権利は、それがある特定のソフトウェア頒布物の一部であるということに依存するものであってはならない。

9)他のソフトウェアを制限するライセンスの禁止(License Must Not Restrict Other Software)

ライセンスはそのソフトウェアとともに頒布される、ほかのソフトウェアに制限を設けてはならない。

10)ライセンスは技術中立的でなければならない(License Must Be Technology-Neutral)

ライセンス中に、特定の技術やインターフェースの様式に強く依存するような規定があってはならない。

上記の定義を満たすことで、OSIから「OSI認証マーク」が与えられる。

オープンソースソフトウェアとフリーソフトの違い

先述のオープンソースの定義に従って配布されているオープンソースソフトウェアは、多くの場合に無償で利用できるというメリットから、今ではOSやアプリケーションをはじめ、数多くのOSSがさまざまな場面で利用されている。

無償で利用できるソフトウェアとして、フリーソフト(フリーウェア)も存在するが、フリーソフトの場合、ソースコードが公開されていないものが少なくない。また、無償で利用できるのは個人利用に限定されることがある。加えて、ソースコードの改変や再頒布が可能かどうかなどもソフトウェアの作者に委ねられる。

一方でOSSは先述のように、「ソースコードが公開され」、「無償で再配布が可能」という定義がある。
また、オープンソースソフトウェアは企業での利用も想定されていることもあって、企業が要求する利用環境に耐え得る性能や機能、品質を実現している。そういったオープンソースの高機能化に伴い、有償のサポートを提供する事業者も増えている。

なお、OSSは複製や改修、再頒布などについての取り決めとしてライセンスが定められている。主なOSSライセンスは以下のとおりだ。

GPL(General Public License)

GNUプロジェクトが提唱するフリーソフトウェアのライセンス。ソフトウェアとそれを使用するユーザーに、使用・複製・変更・再頒布などの自由を与える。派生的・二次的なソフトウェアを作成した場合には、これにもGPLを適用しなければならない。

BSDL(BSD Licenses)

カリフォルニア大学によって作成されたオープンソースライセンスで、公開されたプログラムを改変したり、派生的な著作物は、ソースコードを公開せずに販売・頒布したり、BSDLとは異なるライセンスで提供できる。

MPL(Mozilla Public License)

Mozilla Foundationによって作成されたフリーソフトウェアライセンス、オープンソースライセンスであり、BSDLとGPLのハイブリッドと言えるライセンスで、プロプライエタリとオープンソースの間のバランスを模索したものとなっている。

主なオープンソースソフトウェア

オープンソースソフトウェアはWebサイト、アプリ開発などで利用される、おなじみのものが多い。また、Webブラウザーなど個人ユーザー向けのものも少なくない。

Webサイト、アプリ開発向け

リレーショナルデータベースとしてMySQLやPostgreSQL、WebサーバーとしてApache HTTP Server、プログラム言語としてPHP、Ruby、Perl、Python、Javaなど。また、コンテンツ管理システムとしてWordPressなどがよく使われている。

個人ユーザー向け

OSとしてLinuxやFreeBSD、Androidなど、WebブラウザーとしてFirefox、Brave、Opera、メールソフトではThunderbirdなどがよく知られている。

オープンソースソフトウェア利用のメリットとデメリット

オープンソースソフトウェアを利用する際は、メリットとデメリットを予め理解しておくことが望ましい。具体的なメリットとデメリットは以下のとおりだ。

1)オープンソースソフトウェア利用のメリット

  • ソースコードの信頼性や透明性が高い
  • 自由に改修できる
  • 低コストで導入できる
  • ベンダーロックインに陥らない
  • 関連する情報が豊富である

2)オープンソースソフトウェア利用のデメリット

  • 不具合や脆弱性に対する保証がない
  • 開発コミュニティ存続の保証がない
  • 有償サポートが必要となる場合がある

オープンソースソフトウェアの開発や保守、情報交換などはコミュニティによって行われている。オープンソースコミュニティとは、各オープンソースソフトウェアのユーザーや開発者で構成された非営利団体であり、オープンソースコミュニティに参加して活動することはOSS活動と呼ばれる。OSS活動はエンジニアとしてのスキルを可視化する手段の1つとしてキャリアアップにもつながるため、従業員の活動への関与を推奨している企業もある。

オープンソースはこうしたコミュニティに依存する傾向が強く、それがメリットやデメリットに直結する。フリーソフトとの混同からか、無償利用というメリットばかりが強調されるものの、一概に無償のものばかりではないことにも注意が必要だ。また、昨今のセキュリティ事情を踏まえ、利用時には配布元の信頼性についても精査しておく必要があるだろう。

オープンソースソフトウェアのセキュリティリスクと対処方法

オープンソースソフトウェアは原則としてソースコードが公開されているため、脆弱性が発見された場合、各オープンソースコミュニティがその脆弱性へ対処することが多い。そのため、コミュニティの活動状況によって脆弱性への対処時間も異なる。

このような背景から、コミュニティが過疎化しているオープンソースソフトウェアでは利用するリスクは自ずと高くなる。実際に、最近ではオープンソースソフトウェアの脆弱性を狙うサイバー攻撃も増加している。例えば、2021年12月に発見された「Log4Shell」は、Javaのログ出力ライブラリ「Apache Log4j」の脆弱性であるが、Log4Shellに起因する被害事例も多数報告されている。

こうしたオープンソースソフトウェアのセキュリティリスクへ対処するための基本的な3つのステップを紹介する。

1)リストアップ

利用しているオープンソースソフトウェアを洗い出し、リストアップする。

2)脆弱性のチェック

利用しているオープンソースソフトウェアにおいて、新たな脆弱性が生じていないか定期的に確認する。

3)脆弱性の解消

脆弱性が生じた場合、極めてリスクの高いものから順次アップデートを行い、脆弱性の解消を目指す。

基本的に無償で導入できるというメリットからオープンソースソフトウェアの採用を検討する企業は少なくないだろう。しかし、その裏で抱えるリスクを認識せずに導入したことで、重大なインシデントに遭遇する恐れもある。そうなっては本末転倒であり、場合によっては事業継続に大きなダメージを被る可能性も否定できない。くれぐれもオープンソースソフトウェアを利用する際には、入念に検証した上で導入するようにしてほしい。

この記事をシェア

情報漏えい対策に

サイバーセキュリティ
情報局の最新情報を
チェック!