各WWWサーバにおけるCGI利用について

早稲田大学メディアネットワークセンター(以下MNC)では,5万人を超える学生および教職員に様々なサービスを提供しています.その1つがWebによる情報公開サービスであり,教員個人用のほか,ゼミ用,サークル用などの用途にも提供されています.

このWebページ公開サービスについてよく寄せられる要望に,CGI (※1)に関するものがあります.過去にMNCではCGIを一切開放してきませんでした(※2) が,Waseda-net WWWサービスの稼働に伴い,現在ではアクセスカウンタとメールフォームの2つのCGIプログラムを提供しています.もっと一般的に開放してほしい,あるいは提供するCGIプログラムの種類を増やしてほしい,という要望が多く聞かれますが,MNCでは現在のところ,これら以外のCGIプログラムを提供する予定はありません.これは,大きく分けて以下の3つの理由によります.

1. セキュリティ上の問題

CGIはWWWサーバの内部でCGIプログラムを起動させます.技術的には,標準入力およびHTTPの環境変数を入力として用い,用意された CGIプログラムを実行してこれを読み込ませます.次に,CGIプログラムからの標準出力への出力を,WWWサーバプログラムに送出します.ここでプログラムは任意のプログラム言語で記述することが可能ですが,CGIプログラムの作成はそのほとんどを手作業で行わなければなりません.言い換えれば,プログラマがすべての機能を自分で設計しコーディングする必要があるということになります.

その結果として,高い柔軟性と機能性を得ることができますが,この高い柔軟性と機能性の組み合わせは,しばしばセキュリティ上の高いリスクを負うことにもなります.CGIプログラムも例外ではなく,これまで多くの危険なCGIプログラムが生み出されてきました.古いバージョンのWWWサーバプログラム(Apache)には,任意のコマンドを実行することができるというセキュリティ上問題のあるCGIが同梱されていたことはよく知られているところです.

このように,CGIプログラムはWWWサーバの内部で動作するプログラムであり,脆弱性のあるCGIプログラムを用いた場合は,外部者に不当なシステム上の権限を与えかねないという危険があります.したがって,CGIを一般に開放し,自由なCGIプログラムを利用できるようにすることは,セキュリティ的な観点から許可していません.また,利用者が用意したCGIプログラムをMNCが検査してその安全性を保証するということも,コスト的な観点から実施可能ではありません.

参考までに,以下にCGIプログラムの技術的な欠陥を突いた攻撃の例を挙げます.

  • 管理者以外の人にプログラムやデータを自由に操作されてしまう
  • 重要な個人情報を盗まれてしまう
  • 異常に大きな文字数を書き込まれ,機能が麻痺してしまう

2. WWWサーバへの負荷の問題

CGIはWWWサーバからみて比較的負荷の高いプロセスであることが知られています.これは,CGIプログラムを起動する,入出力を受け渡すなどの処理が必要なためです.こうした処理を軽減する枠組みが用意されている場合もありますが,すべてのプログラミング言語に対応した汎用的な枠組みは存在していません.

CGIプログラムはWWWサーバプログラムの背後でプログラムとして動作している以上,これを様々な用途に利用することが可能です.極端な場合,研究目的の数値計算に利用することも可能です.このような利用方法による応答速度の低下等のコストを負担するのは,最終的には同じWWWサーバを利用する利用者です.このような計算機資源の利用に係わる公平性の確保は非常に難しく,過去にMNCが運営してきた各種システムでも,一部のユーザによる行き過ぎた利用は常に議論の対象となってきました.

このように,CGIは汎用的なプログラムを実行する仕組みであるということから,ユーザがセキュリティに関して十分な知識があり,また計算機資源への配慮を行うということがCGIの開放にあたっての前提条件となります.しかしながら,ユーザの知識や善意を信用するか否かという問題ではなく,全世界からアクセスがあるWWWサーバのリスク管理の問題として考えた場合,このような前提を置くこと自体が難しくなってきます.

3. BBS(Bulletin Board System)公開によるトラブル発生の問題

よく寄せられるCGIに関する要望として,掲示板のCGIプログラムであるBBS(Bulletin Board System)の公開の許可があります.BBSにも先述したセキュリティ上の問題が存在しますが,それ以上に悪質な書き込みを行うなどの,社会的なトラブルを招く危険性があります.

BBSへの悪質な書き込みの例には以下のようなものがあります.

  • 誹謗中傷
  • 個人情報の漏洩
  • 著作権法違反(ソフトウェアのシリアルナンバーの公開等)
  • アダルトサイト等不適切なサイトへのリンク

もしもBBS等を利用して上記のような行為が行われた場合,MNCがそのBBSの公開を許可していれば,早稲田大学がそのような内容を公開したと社会的には受け止められます.これらの悪質な書き込みによる社会的信用の失墜を防ぐには,24時間体制のリアルタイムでの監視や対応が必要となりますが,MNCがそのようなコストを負担することは非現実的です.また,重要な個人情報が漏洩した場合,その責任はCGIの使用を許可した大学側にも負わされることが予想されますが,そのようなリスクを大学が負うこともやはり現実的ではありません.同様の理由により,Webページ内に早稲田大学外のCGIへのリンクを置くことも許可していません.

BBSの要望が多い理由は,ゼミやサークル等での情報交換を手軽に行えるというところにあると思われますが,情報交換が目的であり,前述したコストやリスクの負担の大きさを考慮するならば,代替手段としてメーリングリストの利用が考えられます.

先述したように,現在では要望に応えてアクセスカウンタとメールフォームの2つのCGIプログラムを用意していますが,これは決して上記の見解を変更したことを意味するわけではなく,CGIの利用を許可できないという考え方に変わりはありません.アクセスカウンタは本質的なアクセス数を表してはいませんし,メールフォームは通常のメールを利用することで代替できます.それでもなお提供している理由は,これらのCGIプログラムに対する要望が多く,またWWWサーバへの負荷が軽く,ユーザ毎のカスタマイズも最低限で済むという,いくつかのポイントをクリアしているためです.

なお,MNCは研究・教育目的のためのWWWサーバの利用や,そこでのCGIの利用についての重要性は認識しています.MNCではWebを軸としてカリキュラムを組み立てており,CGIを含むWebアプリケーションを内容として持つ講義も擁しております.しかし,ここでCGI採否の判断基準になっているのは,主としてセキュリティに関する顕在的および潜在的なコストであることをご理解,ご了承ください.

  • ※1 CGIとは Common Gateway Interface の略で,Webを介したクライアントからの要求に応じて,Webサーバ(HTTPサーバプログラムの動作するマシン)上の外部プログラムを起動させる仕組みです.ここでいう外部プログラムとは,Webサーバ上で稼働するWebサーバプログラム以外のプログラムを指します.このようにCGIを介して起動される外部プログラムを,CGIプログラムと呼びます.CGIが介在することで,動的なWebページを作成することが可能になります.
  • ※2 各WWWサーバにおけるCGI利用について(中間報告) (1998/11/19掲載)
    http://www.waseda.ac.jp/mnc/LOCAL/GUIDE/about_CGI.html (学内参照のみ)

TOPへ戻る