オープンソースである理由

公開日 2020年10月09日

更新日 2020年10月10日

オープンソースライセンスのメリット

CMSのライセンスがオープンソースである場合、自治体様には次のメリットがあります。
 ・ソースコードが公開されていため、導入業務を広く多くのベンダーに打診できます。
 ・導入後の運用保守業務を入札などにより、導入したベンダー以外のベンダーに委託することができます。
 ・導入したベンダーが対応できない問題が発生した場合、関係者以外へのソースコードの公開が許可されているため、他のベンダーに問題調査などを委託できます。

公式ホームページのCMS以外にテスト用のCMSを運用したり、関連団体に同じCMSを導入する場合、公式ホームページのCMSのソースコードをそのまま流用できます。
CMSの導入、運用保守、機能追加などの各種業務を広く多数のベンダーに打診することができ、ベンダーロックインを排除しやすくなります。

Joruri CMS 2020を開発しているサイトブリッジ社では、このJoruri CMS 2020公式サイトに、各地の自治体様およびベンダー様がJoruri CMS 2020の導入・保守業務を円滑に行えるよう、細かい技術情報を掲載していきます。
また個別のシステムに細かく対応できるように、各種のサポートサービスをご提供しています。

オープンソースソフトウェアとして公開した経緯

初期Joruri CMS開発時の要求仕様

2008年に開発をスタートした初期のJoruri CMSは、発注元の徳島県様の仕様書に「開発後にオープンソースとして公開すること。」という要求仕様が記載されていたため、徳島県ホームページにリニューアル後、2010年3月23日にオープンソースソフトウェアとして公開しました。

徳島県様が参考にした島根県CMSがGPL v2であったことを参考にし、GPLライセンスとしバージョンは最新のv3としました。このため島根県CMSとはオープンソースのライセンスが異なります。
島根県CMSのソースコードを全く流用しなかったため、ライセンスのバージョンを変えることができました。

MITライセンスへの変更

Joruri CMS 2017をZOMEKIベースの改良型としてリリースする際、オープンソースのライセンスをより制約が少ないMITに変更しました。

GPLライセンスではCMSに追加したプログラムもGPLライセンスが適用されるため、ベンダー様が機能追加したバージョンを有償で再配布しにくい問題がありました。
MITライセンスにはそのような制約がないため、Joruri CMS を独自に改良し販売することが可能となりました。

オープンソースソフトウェアとして提供し続ける理由

Joruri CMS 2020は、ライセンスとしてはオープンソースを選択していますが、商用ライセンスのプロダクトと同様の開発体制で開発しています。
このためいつでも商用ライセンスに変更することも可能ですが、オープンソースライセンスとして提供し続けるのは次の理由からです。

初期Joruri CMSの開発時の多くの方々への感謝

徳島県様が独自にCMSを開発しオープンソースとして公開することを構想されたのは、先行して島根県CMSが存在したためです。
島根県CMSは島根県様から開発を委託された、島根県松江市のネットワーク応用通信研究所様がオープンソースCMSとして公開していました。

徳島県様におかれましては、当社に開発を委託いただき、当社にJoruri CMSを開発する機会を与えていただきました。
Joruri CMS開発後も自治体様からの問合せへの対応などのご支援をいただき、徳島県様のご協力なしにはここまで自治体関係に普及することはなかったと思います。

また神戸市様のご厚意により、2010年3月に開催されたオープンソースカンファレンス神戸に地元枠で参加させていだだき、オープンソース公開直前のベストのタイミングで多くの人にPRすることができました。
その後オープンソースカンファレンスには50回以上参加し、ユーザー様へのPRやCMS関係者との有益な情報交換が行えました。
オープンソースカンファレンスを運営されている株式会社びぎねっとのスタッフの方々には、出展にあたりいろいろとお世話になっています。

Joruri CMSがオープンソースのプロダクトであったため、オープンソースカンファレンスに出展することができました。
Joruri CMSがオープンソースライセンスでなければ、このようにいろいろな方々と関係を築くことができなかったと思います。

オープンソースプロダクトやコミュニティへの貢献

Webのシステムを構築するには、CMS以外にWebサーバー、データベースサーバー、負荷分散サーバーなど多くのソフトウェアは必要であり、それらのソフトウェアはすべてオープンソースソフトウェアです。
Joruri CMSを開発しているプログラミング言語であるRubyもオープンソースであり、ネットワーク応用通信研究所に勤務されているまつもとゆきひろさんが中心になって開発を進めています。

Joruri CMSのプログラムの土台となっているWebアプリケーションフレームワークのRuby on Railsは、アメリカシカゴのベースキャンプ社によりRuby言語で開発されています。
Joruri CMSのプログラム開発環境であるRubyやRuby on Railsもオープンソースソフトウェアです。

このように多種多様なオープンソースソフトウェアを利用することにより、Joruri CMSの開発を行え、CMSとして機能するWebシステムを構築できています。
当社においても、Joruri CMSをオープンソースとして公開することにより、微力ながらオープンソースコミュニティに貢献したいと考えています。

プロポーザルの機能要件への対応

プロポーザルの機能要件

自治体ホームページ再構築のプロポーザルにて、機能要件一覧に次のような仕様が記載されていることがあります。

「セキュリティ対策、改ざん防止を考慮し、一般にソースが開示されたオープンソースCMSではないこと。」

この要件について、当社としてはJoruri CMS 2020のソースコードは配布費用をいただいたユーザー様のみに配布していますので、「一般にソースが開示されたオープンソースCMS」には該当しないと考えています。

Joruri CMS 2020をオープンソースライセンスでご利用いただくのは、導入する自治体様、ベンダー様の利便性を高めるためです。
CMSのライセンスの規約として、オープンソースライセンスではどうしても不都合という場合は、商用ライセンスでのご提供を検討いたしますのでご連絡ください。

なお、オープンソースソフトウェアが不都合との場合、導入するお客様にライセンス形態が不都合なのか、ソースコードが公開されていることが不都合なのかなど、技術的な詳細をご確認ください。
自治体公式サイトのCMSのセキュリティに関しては、以下の列記するような多様な論点がありますが、すべてのオープンソースソフトウェアのCMSを排除するほどの理由が思い当たりません。
下記の内容を踏まえて、お客様がどのような観点からオープンソースソフトウェアにはリスクがあると考えているかを説明いだだいてください。

スクリプト言語であることが問題なのか?

Joruri CMS 2020は配布手続きを行ったユーザーのみに配布しているため、不特定多数にソースコードを公開していません。
再配布される可能性はありますが、日本の自治体向けのCMSという性質から、ある程度限定した範囲で利用され、広く全世界に拡散するわけではありません。

攻撃者がソースコードを入手してそれを解析し、その問題点を発見して専用の攻撃ツールを作成し、攻撃を実行する可能性はそれほど高くないと考えています。
また攻撃が行われたとしても、下記に記載したように自治体公式サイトは比較的高度なセキュリティ対応が行われているため、ソースコードが公開されていることに起因する問題が発生し、具体的な被害を被る可能性は非常に低いと考えています。

商用ライセンスのCMSであっても、プログラミング言語がPHPであり、ソースコードを暗号化しないで配置している場合、ソースコードを開発会社の社外に配布していることとなります。
製品を購入すると、商用CMSでも暗号化していなければ、ソースコードを解析することができます。

スクリプト言語で開発され、ソースコードを暗号化していないCMSは不可ということであれば、技術的には合理性があります。
またはクラウドサービスのみで提供し、パッケージ販売していないCMSという考え方もありえます。

冗長構成ではCMSはローカルネットで運用

冗長構成でサーバーを構築した場合、負荷分散サーバーを前段に配置し、CMSにはグローバルIPを割り振らずローカルネットで運用します。
当社標準の構成の場合、問合せフォームを受け付けるアプリケーションサーバーのCMSも、Webサーバーのリバースプロキシーを経由してローカルネットに配置しています。

このような構成でCMSがハッキングされるのであれば、ローカルネットに侵入されていることとなり、システム構成に重大な問題があると言えます。
ローカルネットに侵入された場合、CMSのソースコードが公開されていると、プログラムを書き換えられやすくなるということかもしれません。
ローカルネットに侵入されたことを想定してセキュリティ対策を行うのではなく、ネットワークのセキュリティ設定を確実に行い、さらには前段にWAFなどを配置するのが適切と考えます。

セキュリティクラウドでのセキュリティ対策

自治体公式サイトは各都道府県ごとに共有しているセキュリティクラウドを経由してWebサーバーにアクセスする仕様に変わりつつあります。
セキュリティクラウドには、WAFなどを含むネットワーク管理・監視のしくみが備わっており、不正なアクセスを検知・排除する機能があります。
各種のリスクへの対策は、セキュリティクラウドとWebシステムとで分担する構成となっています。
各種リスクへの対策は相応するシステムを構成をして行うもので、もはやCMS単体の仕様を超えたレベルにあります。

自治体サイトは静的HTMLでの運用

通常、自治体サイトは静的HTMLで運用しているため、Webサーバーへのアクセスから動的にデータベースへのアクセスが行われているわけではありません。
WebページのHTMLファイルはWebサーバーに配置され、セキュリティを担保しているのはCMSではなくWebサーバーです。
一般によく利用されるWebサーバーはオープンソースソフトウェアであるため、ソースコードが公開されています。

またページを生成する元のデータはデータベースに格納されています。
このデータベースも安価に利用できるものは、オープンソースソフトウェアです。

データベースへの接続情報はテキストファイルに記載されていますが、そのファイルのセキュリティはWebサーバーとOSが担保しています。
利用しているCentOSもオープンソースソフトウェアです。

Webシステムを安価に構築するには、オープンソースソフトウェアの利用は不可避です。
CMS周辺のデータを管理しているソフトウェアがオープンソースソフトウェアであることに関してどのように考えているかをご確認ください。

SQLインジェクションやクロスサイトスクリプティングへの対策

ソースコードが公開されていると、フォームのセキュリティ対策が抜けているところを見つけられて、攻撃される可能性があるというのがもっともらしい理由と思われます。
自治体公式サイトで利用されているフォームは、問合せの内容をデータベースに格納するだけの単純なものです。
一般的に自治体公式サイトには、公開画面からのログインとか、ユーザーが書き込んだ情報の一覧機能はありません。

フォームを利用しているところが限定的であるため、プログラミングにおいて十分なチェックが行われており、セキュリティ面で問題ないプログラムとしています。

また万一フォームを経由してデータベースの内容を閲覧された場合に備えて、ユーザーが書き込んだデータは短時間に内部のデータベースに移動する仕様としています。
このため通常はフォームから書き込まれたデータを格納しているデータベースのテーブルにはデータが存在しません。
この仕様は初期のJoruri CMSを開発する際、徳島県様の要求仕様に記載されており、Joruri CMSではこの機能が最初から備わっています。

フォームへの攻撃の場合、無作為に攻撃が行われる可能性が高いため、ソースコードを公開していない商用CMSであっても適切な対策が行われていないと情報が漏洩します。

フォームへの攻撃の安全性を高めたい場合は、データをデータベースに格納せず、登録と同時にメールで内部に送信する設定にする方法があります。
この場合、フォームの内容の細かいチェックをプログラムで行えないため、ユーザーの利便性は下がります。

ソースを非公開にすれば安全というわけではない

当社はCMSがオープンソースであることにより、セキュリティ上のリスクが発生するとは考えていません。
セキュリティ上のリスクは、ソースコードを非公開にしても解消するわけではありません。
セキュリティ対策は、各種のネットワークの設定や各システムの連携の設定を細かく積み上げていくことで実現します。

セキュリティ対策の問題をCMSがオープンソースであることにのみに帰着させ、CMSのソースコードのみを非公開にすれば安全という考えるのは危険です。
Webシステムがどのような要素で構成され、どこにどのようなリスクがあり、どの程度の対策を講じるかを技術的な視点で検討いただきたいと考えています。

ソースコードが公開されているので安心

自治体には公式サイト以外に、子育てサイト、移住サイト、就職支援サイトなど、多くのサブサイトが存在します。これらのサイトを1式のCMSで運用するのが最も効率的です。
Webサイトに関するセキュリティ対策、高負荷対応の費用を1式のWebシステムに集中投資でき、トータルの運用コストを低減できます。

新たにサブサイトを企画・制作する際、WebサーバーやCMSについて調査や費用の支払いを大幅に削減できます。
1つのCMSの操作方法を習得すると、部署異動によりそれまでとは異なるサイトを更新することになった場合も円滑に対応できます。

しかし多くのWebサイトをマルチテナントで1式のCMSで運用する場合、CMSを含めWebシステム全体に高い信頼性が求められます。
信頼性を確保するためのマクロな視点からすると、ソースコードが公開されていることは重要な要素です。
特定の民間企業が開発している商用CMSの場合、Javaなどのスクリプト言語でない言語で開発されていると、ソースコードはユーザーにも公開してくれません。
またデータベースの構造やWebサーバー、データベースサーバーとの連携の設定方法など、問題を調査するために必要な情報も、個別に依頼して公開してもらうこととなります。

このようにシステムが完全にブラックボックの状態では、何か大きな問題が発生した場合、導入したベンダーの調査をただ待つだけで、自治体側では技術的な対応ができません。
ソースコードや技術情報が公開されていると、導入したベンダー以外に調査を委託するなどの適切な措置をとることができます。