メインメージ

OSSとは?

OSS(オープンソースソフトウェア(Open Source Software))とは、ソースコードが公開されており、無償で誰でも自由に改変、再配布が可能なソフトウェアのことです。OSSは特定の企業でなく、有志によって組織されたコミュニティなどで開発されていることが多く、開発にはプログラマが参加しています。OSSは基本的に自由に使えるためソースコードを見て仕組みを学習することができ、一部を修正して改良したソフトウェアを開発することが出来ます。

OSSと通常のソフトウェアの違い

通常のソフトウェアは改良が出来なく提供されているものを利用するのみにとどまります。OSSはソースコードを改良をして別のソフトウェアを公開する事ができます。

OSS鳥瞰図

OSS鳥瞰図とは「日本OSS推進フォーラム」が毎年更新して提供している、どの分野でどのOSSが利用されているか一覧で理解できる図のことです。日本OSS推進フォーラムのWebサイトでは「鳥瞰図ワーキンググループ」で年ごとにPDFファイルをダウンロードできますので、OSS利用者にとっては視覚的に俯瞰できる一覧図を見ることでOSSの全体を把握することができます。

ソフトウェア開発におけるオープンソースソフトウェアの重要性

Redhat社が発表した「The 2021 State of EnterpriseOpen Source: A Red Hat Report」において、デジタルトランスフォーメーションがオープンソースソフトウェアのトップユースケースの一つになりました。また、オープンソースソフトウェアを利用する理由は、コスト面よりもイノベーションの推進要因やセキュリティを理由に指摘しており、あらゆる業界でオープンソースソフトウェアを利用する理由が、低コストからイノベーションの原動力へ移行しています。Apple,Googleも、Xcode LLVM, Androidが多くのソフトウェア開発に利用されている背景から、オープンソースソフトウェア無しにイノベーションは出来ません。オープンソースソフトウェアは優れたセキュリティが重要なメリットともなっており、一般企業に限らずオープンソースソフトウェアは、ソフトウェア開発を成功されるもっと重要な存在となっています。

【参考】The 2021 State of EnterpriseOpen Source: A Red Hat Report(参考:エンタープライズ向けオープンソースの現状:Red Hat レポート

OSS利活用の留意点

OSSの利活用には、多くのメリットがある反面、留意しなければならない点も複数存在します。主な留意点としては「ライセンスコンプライアンス」「ライフサイクル(サポート期間等)が短い、サポートが十分ではない場合がある」「サプライチェーンにおけるOSSの使用」が挙げられます。

OSS一覧

OSSはプログラム言語基づいたフレームワークやサーバなどにインストールするOSが存在し、誰でも無償で利用することが出来ます。

プログラム言語(開発言語)

項目 特徴
Java 主に「Apache Struts」フレームワークで有名。昔から人気が高く、どのパソコンでも利用でき、
オブジェクト指向であることが特徴。
php 旧来からWEBアプリケーション開発のWEBプログラミングで利用されている言語、
近年はLaravelフレームワークで人気
Ruby 日本で開発されたプログラミング言語で国際規格に認証された初めての事例となった。
Python Django」フレームワークで有名。機械学習など様々なシーンで利用されるようになった。
Scala オブジェクト指向型と関数型の両方を扱うことが出来る言語。名前は英語の「scalable language」に由来される。
JavaScript 「React」「Angular」「Vue」「jQuery」などのフレーワムワークが多方面で利用されている。
主にWEB開発のフロントエンドコーディングで振る舞いをコントロールするために利用される。
GO シンプルかつ高速な処理でYoutubeなどのWEBアプリケーションで利用されている
C# 「.NET Framework」で稼働し、タイプセーフでオブジェクト指向言語、文法はJavaと似ている。

サーバサイドOS

項目 特徴 ライセンス型
ubuntu Debian GNU/Linuxを母体としたオペレーティングシステム(OS) GPL、及びその他ライセンス
CentOS Red Hat Enterprise Linux(RHEL)と機能的に
互換性があることを目指した無償のディストリビューション
GPL、及びその他ライセンス
Debian Debian Projectのコミュニティが作成している
無償のディストリビューション。派生しているものが多数存在する。
GPL、LGPL、修正 BSD、Artisticなど
Amazon Linux 主にAmazonEC2でLinuxベースの
アプリケーションを構築する際に利用される。
GPL、GNUなど
Red Hat Red Hat社が開発している無償のディストリビューション。 GNU、エンタープライズ版はサブスクリプションで有料

OSSライセンス

OSSライセンスとは公開されているソースコードを無制限に利用できるわけではなく、ライセンスの種類によって定義されたものを意味します。有名なものであればMITライセンス、GPL、BSDなどです。改変したソフトウェアを配布する場合、ソースコードの開示が必要になることもあります。OSSを用いて商用利用のソフトウェアを開発し、ソースコードを公開せずに販売する場合はライセンスの内容に注意する必要があります。

OSSライセンス一覧(コピーレフトと非コピーレフト)

OSSライセンスを利用するにあたり共通事項としては「商用利用可能、著作者による保証無し、著作権・ライセンス表示が必要」が存在します。「コピーレフト」とは、プログラムを自由とし、加えてプログラムの改変ないし拡張されたバージョンも全て自由であることを要求するための、一般的な手法の一つです。「準コピーレフト」は、OSSのソースコードを利用した場合のみ、もとのOSSと同じ条件で配布する必要があり、ライブラリとしての利用やネットワーク経由での利用の場合はコピーレフトの対象とならないことです。「非コピーレフト」は、ソースコードの開示は不要で改変して利用することができますが、ライセンステキストの添付が必要などコピーライト表記が必要になります。ソースコード内にコメント表記で記述されているものなどが代表的な例です。

類型 ライセンス例 改変部分の
ソースコード開示
他のソフトウェアの
ソースコード開示
ライブラリの
ソースコード開示
コピーレフト GPL、GNU、AGPLv3、EUPLなど 必要 必要 必要
準コピーレフト MPL、LGPLv3など 必要 必要 不要
非コピーレフト BSD License、Apache2.0 License、MIT Licenseなど 不要 不要 不要

【出典】情報処理推進機構(IPA)「OSSライセンスの比較および利用動向ならびに係争に関する調査報告書

OSSを利用する上での著作権表示

著作物には作者が持つ権利と利用者が持つ権利の範囲が定められてます。ソフトウェアも著作物であり「複製」「配布」「改変」などの権利は存在します。OSSの場合は利用者も「複製」「配布」「改変」を行い新たにソフトウェアを作り出して提供するため、ライセンスの範囲に則って利用する必要があります。

著作物 作者が持つ権利 利用者が持つ権利
書籍 出版、印刷、改版など 読む
絵画・美術品 公表、展示など 観る
写真 公開、加工、複製、展示など 観る
動画 公開、加工、複製など 視聴
音楽 録音、演奏、編曲など 聴く
ソフトウェア 複製、配布、改変など 実行
OSS 複製、配布、改変など 複製、配布、改変、実行など
※ライセンスによって使える範囲が変わる

OSSのサポートは無保証

OSSのサポートは著作者による保証は有りません。従って改変したソフトウェアやアプリケーション、ITシステムの運用管理は、開発者やシステム運用者で行う必要があります。クラウド環境を利用する際も同様にOSS管理は求められており、規定に定められた用にサービスのサポート内でクラウド事業者で運用管理は実施しますが、OSSの改変による利用や自社独自アプリケーションを利用する場合など、サポート対象外になった場合は保証を受けることは出来ません。次のセクションでは主に課題となるOSS脆弱性とセキュリティ対策についてご紹介します。

OSSの脆弱性とセキュリティリスクの関係性

情報資産に潜む脅威と脆弱性によるセキュリティリスクの関係性

OSSのセキュリティリスクは「Assets(OSやミドルウェア、フレームワーク、ライブラリ)などのソフトウェア資産)」に潜む「Vulnerability(脆弱性)」を「Threat(脅威)(攻撃または悪用)」することです。

OSSはソースコードが公開されているため、脆弱性が容易に見つかることがあります。開発しているコミュニティも企業ではないため対応には時間がかかることがあります。プログラムによっては、ほとんどメンテナンスがされていないものも存在しますので利用する場合には脆弱性などに注意をする必要があります。OSSで脆弱性が見つかったときに、他の開発者が誰でも修正できるメリットもありますが、デメリットもあります。脆弱性が見つかった際には開発者自らセキュリティ対策のためにアップデートが出来る点がメリットです。デメリットは、ライセンスコンプライアンス違反、ライフサイクルが短い、サプライチェーン攻撃のリスクが指摘されています。近年のモダンなアプリケーションには多くのOSSを利用されており、カスタム・コードは20%程度でOSSの利用割合は80%以上と言われています。また、アプリケーション内でどんなOSSが利用されているか、正確に把握出来ている開発者はほんの一部とも言われており、OSSの脆弱性は開発者が書いたプログラムソースコードではないため、開発者では気が付きにくく発見が遅れることがあります。従って、OSSの脆弱性情報の収集から分析、利用状況の把握、OSSに関する脆弱性管理の必要性が専門家から指摘されております。

OSSの脆弱性を悪用した危険性

OSS脆弱性はOWASP Top10(A9:2017 既知の脆弱性のあるコンポーネントの使用)でも大きな問題として取り上げられています。OSS脆弱性を放置していると標的型攻撃やBot攻撃による悪用される危険性があり、ITシステムやWebアプリケーションに対して攻撃され、個人情報を取り扱うECサイトや会員サイトでは個人情報の漏えい事故が実際発生しています。情報漏えい事故を未然に回避するために、システムやアプリケーションの定期的な運用でOSS脆弱性対策は必要とされます。

OSS/内部ホスト脆弱性管理サービス

「OSS/内部ホスト脆弱性管理サービス」では、ライブラリ、フレームワーク、ミドルウェア、OS等、ITシステムを構成する要素の脆弱性やライセンスを容易に一元管理できる仕組みと、セキュリティ対策に必要な運用代行を提供します。SSH接続による内部スキャンでのホスト診断にも対応しておりますので、従来の外部スキャンと組み合わせる事により、さらに強固なセキュリティレベルの維持が可能です。