OSS(オープンソースソフトウェア)とは?その特徴とメリット

情報保護について無料で相談する

オープンソースソフトウェアの定義

オープンソースソフトウェア (OSS) とは、アプリケーションの開発者が、実行ファイルなどのコンパイル済みプロジェクトのみではなく、プロジェクトの完全なコードを提供する共有ベースのモデルです。クローズドソースの開発会社としては、マイクロソフト社が有名ですが、近年、一部のソフトウェアプロジェクトでは、オープンソースモデルに移行しています。オープンソースのプロジェクトでは、他の開発者が既存のコードに追加したり、修正したり、コピーしたり、サイバーセキュリティやバグの問題を分析したりすることができます。

オープンソースコミュニティとOSSのライセンス

デスクトップコンピュータが普及した1990年代、ソフトウェア開発会社は、ユーザーのコンピュータにインストールできるコンパイル済みコードをハードディスクに収めて提供しました。コンパイル済みコードは、OSがコンピュータのリソースを割り当てたり、開発者の手順を実行したりするための命令が書かれたファイルを含んでいます。バイトコード(インタプリタ型言語)やオペコード(コンパイル型言語)は、コンピュータが理解できる言語であり、開発者の指示を実行するために使用されます。

例として、以下のようなコードがコードベースを構成します。

 

if (active)
//do something

 

人間はこのような文字で構成されたコードを簡単に理解できますが、コンピュータは人間の言語を理解できません。コンピュータは1と0によって解釈するので、開発者はコンパイラを使って人間の言語コードを実行ファイルに変換します。実行ファイルは、OSがメモリを確保したり、変数やデータを初期化したり、プログラム自体を構成するオペコードなどに使われます。コンパイル済みファイルは、OSごとに内部手続きの呼び出し方法が異なるため、OS固有のものとなります。

実行ファイルはコンパイルされているため、人間は実行ファイルの命令を理解することができません。実行ファイルだけだと、優秀な逆コンパイラがない限り、コードそのものを見ることはできません。これにより、著作権と認められた開発者のコードは、第三者に解析されたり盗まれたりしないように保護されています。

オープンソースコミュニティは、アプリケーションのソースコードを自由に公開することで、これまでとは異なる活動を行っています。これは、コードが盗まれる可能性がある一方で、解析や拡張のためにコードを共有することのメリットがはるかに大きいという考え方です。ユーザーは自由にコードを見ることができ、そこから学んだり、改良したりすることができます。オープンソースのコードはフォークする(派生させる)ことができます。つまり、他の開発者がそのコードのコピーを取り、機能を追加することができるのです。アナリストの中には、バグやサイバーセキュリティ上の脆弱性がないかコードを確認し、元の開発者に注意を促す人もいます。

オープンソースソフトウェアの開発者がコードを公開したからといって、それを自由にコピーしたり使ったりできるわけではありません。オープンソースの開発者は、コードベースの公開時に、そのコードに適用されるライセンスの種類を設定します。オープンソースの世界におけるライセンスは、コードの使用、コピー、変更、および配布の方法を定義するという点で、クローズドソースのライセンスと似ています。例えば、オープンソースのライセンスの中には、学術関係者や学生、個人が自由にコードを使用することを認めているものもありますが、企業がコードベースを商用アプリケーションに使用してはいけないものもあります。

オープンソースプロジェクトとOSSの仕組み

オープンソースプロジェクトの開発者がコードを作成する方法は、プロジェクトが公開されていることを除けば、クローズドソースと同じです。Githubは、開発プロセスに組み込まれた共通のリポジトリ管理プラットフォームです。多くのコードリポジトリツールと同様に、プロジェクトごとに履歴が残り、開発者は変更の取り消し、コードのチェックアウト、アップデートの公開が可能です。開発者は通常、プライベートでコードを開発し、その変更をGithubのパブリックなクラウドプラットフォームに公開します。

開発プロジェクトを公開すると、他のユーザーはそのプロジェクトに関連するすべてのファイルを見ることができます。ユーザーは、リポジトリ全体をダウンロードすることも、各ファイルを個別に表示してダウンロードすることもできます。プロジェクト全体をダウンロードすると、ユーザーのローカルマシンでコンパイルして実行し、レビューを行うことができます。バグやコードに実行上の問題があれば、ユーザーのローカルコピーで修正することができます。

プロジェクトのメイン開発者は、コードベースを維持し、変更を承認し、完全にコントロールしています。他のユーザーはコピーを取ることができますが、メインコードベースへの変更を取り入れるには、オーナーの承認が必要です。Linux OSは、複数の開発者がコードを提供していますが、メインコードの所有者であるLinus Torvalds氏は、これらの変更を承認しなければなりません。

メインのコードベースはフォークすることができます。これは、他の開発者がコードのコピーを取り変更することを、プロジェクトのオリジナルオーナーが許可することを意味します。これらの変更は、メインのコードベースには組み込まれません。この変更は、ソフトウェアの修正版として新しいバージョンを作成するために使用されます。例えば、Linuxオペレーティングシステムには、Kali、Ubuntu、Red Hatなど、コアのLinuxオペレーティングシステムを使用したバージョンがありますが、変更されたバージョンには、開発者独自の異なるプリパッケージツールやGUIが搭載されています。

オープンソースソフトウェアのメリット

コードベースへの貢献者が増えれば、ソフトウェアの機能が向上し、バグが減り、継続的な更新が可能になります。小規模な開発者は、ソフトウェアを配布し、それを他の人と共有して改善するためのプラットフォームをもつことで、より巨大なブランドと競争することができます。開発者にとっては、コーディング規約を学び、特定の手順をコーディングするためのより良い方法を見出すのに最適な方法です。

ユーザーにとってのメリットは、コードの安定性と安全性にあります。ユーザーは、自分のローカルマシンで動作するコンパイル済みコードを受け取りますが、多くの開発者が貢献しているおかげで、バグが少なくなる可能性があります。サイバーセキュリティのアナリストが、コードをダウンロードしてレビューしたり、開発者に問題点を指摘したりすることもあります。大手のオープンソース開発者は、ホワイトハットハッキングサイトでプロジェクトを公開し、ホワイトハッカーにお金を払ってコードの脆弱性を見つけてもらいます。有償のハッカーを使うことで、オープンソースソフトウェアに含まれる脆弱性が少なくなり、悪意のある攻撃者や未知の問題を悪用するマルウェアからユーザーを守ることができます。

OSなどの主要なソフトウェアがオープンソースであることは、開発者がひとつのOSからもう一方のOSへソフトウェア移植することを、より簡単にします。Windowsでは、開発者がOSの更新や変更に縛られ、最新のOSバージョンでコードをテストして初めて、ソフトウェアが最新環境で動作するかどうかがわかります。一方、Linuxでは、Windows上で動作する既存のコードを、Linux OS上で動作するように変換することが簡単にできます。

OSSの特徴と注意点

エンドユーザーは、ソフトウェアがオープンソースなのかクローズドソースなのかを知りません。ほとんどのユーザーは、オープンソースを無料のソフトウェアと考えていますが、必ずしもそうとは限りません。個人で使用する場合は、多くのオープンソース開発者が無料で提供したり、寄付を募ったりしていますが、ユーザーはソフトウェアをマシンに自由にインストールする前に、必ずライセンスを確認する必要があります。ライセンス違反は、オープンソースソフトウェアを悪用した企業にとって、特に大きな損害となります。

オープンソースソフトウェアは、無料ではないにしても、クローズドソースのソフトウェアに比べれば、はるかに手頃な価格であることがほとんどです。オープンソースの開発者は、通常、有償のサポートを提供することで収益を上げています。有名なLinux OSの配布を行っている大手の開発者は、商用ソフトウェアに企業向けサポートを提供しており、それによって開発者はビジネスを維持し、収益を上げています。企業は、クローズドソース製品よりもはるかにコスト効率の良い、有料サポート付きのソフトウェアを手に入れることができます。

他の研究者やIT専門家は、さまざまな理由でオープンソースのOSを好んでいます。Linuxには、Windows OSにはないコマンドがあります。Linuxはカスタマイズできるので、Windows OSに比べて制限が少ないです。Windows OSを改変するためのハッキングは可能ですが、Windowsが提供する使用許諾に違反します。通常、OSのアップデートは、承認されていないカスタムの変更を上書きするので、OSのコードをハッキングして変更しても意味がありません。

Proofpoint Sendmail オープンソース電子メール保護

大規模で複雑な環境向けの Sendmail Sentrion プラットフォームの一部をオープンソース製品として提供します。

ホワイトペーパー:ユーザーリスクレポートで脆弱性を探る

Proofpoint の 2020 年ユーザー リスク レポート では、サイバーセキュリティ体制を脅かす、ユーザーの意識と知識の欠如について説明し、さらにこれらに基づいて、ユーザーのセキュリティ耐性を強化するためのアクションを推奨しています。