キヤノンMJ/サイバーセキュリティ情報局

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

  • この記事をはてなブックマークに追加
  • 本文印刷

本記事はキヤノンマーケティングジャパンが提供する「サイバーセキュリティ情報局」に掲載された「セキュリティ観点を交えて考える、オープンソース活用のメリットとデメリット」を再編集したものです。

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

オープンソースソフトウェア(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のハイブリッドと言えるライセンスで、プロプライエタリとオープンソースの間のバランスを模索したものとなっている。

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

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

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

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

Androidはウイルスに狙われやすい?必要なセキュリティ対策は?
https://eset-info.canon-its.jp/malware_info/special/detail/191107.html

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

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

1) オープンソースソフトウェア利用のメリット
・ソースコードの信頼性や透明性が高い
・自由に改修できる
・低コストで導入できる
・ベンダーロックインに陥らない
・関連する情報が豊富である

2) オープンソースソフトウェア利用のデメリット
・不具合や脆弱性に対する保証がない
・開発コミュニティー存続の保証がない
・有償サポートが必要となる場合がある

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

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

ウェブブラウザーChromeが頻繁にアップデートを求める理由とは?
https://eset-info.canon-its.jp/malware_info/special/detail/221018.html

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

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

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

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

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

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

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

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

「Log4Shell」の深刻な脆弱性を狙った数十万回もの攻撃試行を検出
https://eset-info.canon-its.jp/malware_info/special/detail/220210.html