98年6月  JEIDA駐在員・・・長谷川英一

米国における
情報セキュリティー問題の現状-5-

セキュリティの欠陥

 上述の用に、守るべきセキュリティはかなり明らかであるにも関わらず、コンピュータ・システムにはセキュリティの欠陥も多く、それがハッカーらの侵入を招き寄せることになっている。その欠陥は主に次の3種類に分類することができる。

1 ネットワーク及びコンピュータが本来的に内包する欠陥
(エボリューション・トラップ)

ネットワーキングなどの基盤技術の性質上避け難いもの。特に、元々情報のオープンな共有化のために開発されたインターネットの基本プロトコール(TCP/IP)には、埋め難いセキュリティ上の問題がある。例えば、ファイル転送プロトコール(FTP)は、データを転送する際にユーザーのログイン名とパスワードをプレーンテキストの形で含む仕組みになっている。そのため、FTP通信を傍受して侵入のためのパスワード情報を手に入れようとするハッカーが出現するのである。このような欠陥は、問題の技術が発達した原点にまで溯るという意味で、「エボリューション・トラップ」とも呼ばれる。今日あるネットワークやコンピュータの技術は、セキュリティがまだ問題とされていなかった時代に生まれた何らかのプラットフォームを土台にして発達したものであるため、現在見られるようなハッカーによる攻撃をはね返すようには作られていない。

より新しいエボリューション・トラップの例として、ユーザー・データグラム・プロトコール(UDP)が挙げられる。UDPは主に「RealAudio」や「RealNetworks」に代表されるウェブ上の新しいマルチメディア・アプリケーションのデータパケットに使われるプロトコールである。問題が起こるのは、UDPパケットがファイアウォールを通過する場面である。ファイアウォールには、外部から入ってくるパケットをチェックして未知のフォーマットのものをシャットアウトする機能がある。UDPのフォーマットは新しいため、既存の多くのファイアウォールは、これを疑わしいと判断してストップをかけてしまう。このような場合、もしこのUDPを通したいとしてファイアウォールのパケット・スクリーニング機能が解除してしまうと、ハッカーもUDPパケットを使用することで易々とシステム内に侵入できるようになる。

2 ネットワーク及びコンピュータの設計上の欠陥
(イノベーション・トラップ)

 システムを構成するさまざまなソフトウェアにも、設計段階での見落としに起因する欠陥(バグもしくはセキュリティ・ホール)を持ったものが多い。この主の欠陥は、ソフトウェア市場の激しい競争が背景になって生まれた「イノベーション・トラップ」と呼ばれる。これらは多くの関心を集めており、各種の対応が行われている。例えば、セキュリティ関連の団体は、特定ソフトの問題点を解説した「勧告(advisories)」を発行しており、開発元も、セキュリティ・ホールをカバーするソフト(パッチ)を無料で配布したりしている。

具体例を上げると枚挙にいとまがないが、最近見つかった有名なものとしては以下のようなものが上げられよう。

ブラウザ・ソフトでは、ユーザーがあるウェブサイトを閲覧していると、サイトのホストが逆にユーザーPCにアクセスしてハードドライブ内のファイルを操作できるというバグが、ネットスケープでは97年6月に、インターネット・エクスプローラーでは98年1月にそれぞれ発見されている。

また、96年から97年にかけて盛んに報じられた「ウェブ・スプーフィング(Web spoofing)」と呼ばれる不正は、あらゆるブラウザに共通したセキュリティ・ホールの存在を明らかにした。まず、ユーザーのブラウザに含まれているネームサーバー・キャッシュにアクセスし、特定のドメイン名(例えばそのユーザーの取引銀行)によって参照されるIPアドレスを、そのハッカーが持っているIPアドレスに変えてしまう。ハッカーのコンピュータには、本物そっくりのページを用意しておき、ここでユーザーが何の疑いもなしに入力する情報(例えば銀行口座へのログイン名やパスワード)をだまし取るのである。
 
OSはより問題が多く、例えばサンのソラリス2.5はこれまで28種類のセキュリティ・ホールが、ウィンドウズNTでは45種類がそれぞれ見つかっている。その一例が、98年1月に起こった「ボンク(Bonk)」事件である。これは、ハッカーがばら撒くBonkと呼ばれる無効なUDPパケットを読み込んだウィンドウズNTや95搭載のCPUが、短時間でオーバーロードしてシステムエラーを起こすというものであった。これは、ウィンドウズの構造上の欠陥と、「エボリューション・トラップ」の両方を利用した攻撃であるが、被害を受けたコンピュータが一時的にストップすることを除けば実害は少なく、一種の愉快犯的行動ということができる。その後、98年3月には早くも複数のサーバーを同時にクラッシュさせる機能を持つBonkの新種が登場し、大学やNASAなどのサーバーを停止させている。

サンのJavaやマイクロソフトのActiveXなどのオブジェクト指向プログラミング言語は、ウェブページ上にさまざまな小型のプログラム(アプレット)を埋め込むために使われることが多いが、しかし最近、これらの言語に次々とセキュリティ・ホールが発見されユーザーの不安を呼んでいる。ハッカーは、これらの言語を利用していわゆる「トロイの木馬(Trojan Horses、後述)」プログラムをユーザーのコンピュータに送り込み、悪質なウィルスなどに感染させることができることがわかったからである。

例えば、ドイツのプログラマー・グループが97年秋に行ったデモでは、ハッカーの作るActiveXのプログラムがユーザーのコンピュータに深刻なダメージを与えることが証明された。このプログラムを植え付けられたコンピュータに、人気経理ソフトの「クイッケン(Quicken)」があると、その中の資産データがユーザーの知らないうちに操作されてしまうのである。専門家らは、「セキュリティが改善されるまでは、JavaやActiveXの機能を停止しておいた方が安全」とユーザーにアドバイスしている。

3 導入面での欠陥
(ヒューマン・エラー)

 エンドユーザーが適切な導入を怠ったために生じる欠陥。ソフトウェアのセキュリティがいかに整っていても、セキュリティ・システムの導入の仕方が不適切な場合、その効果が帳消しとなることもある。導入時のミスには、基本的に「コンポーネント・レベル」のものと「システム・レベル」のものの2種類がある。
 
コンポーネント・レベル(コンフィギュレーション)の欠陥というのは、企業などがネットワークを構築する際、担当するITスタッフの間にセキュリティへの十分な認識が欠けていると、コンポーネント(クライアント端末、ルータ、ファイアウォールなど)を適切に設置できずにセキュリティ・ホールを作り出してしまう危険のことである。特に、システムを購入したままの状態で調整せずに接続してしまう、いわゆる「アウト・オブ・ボックス」式のずさんな設置は、多くのセキュリティ・リスクを放置することになる。具体的には、「初期設定(デフォルト)パスワードの継続利用」、「ゲスト・アカウントや共有化機能の放置」、「オープン・プラットフォーム・ポート(telnet、FTP等を使用するユーザー用ポート)の開放」など、コンポーネントの出荷状態のままで使ってしまうことにより陥るエラーや、「裏口アクセスの許容(システム管理者が出張者や自宅勤務者用にとシステムにバックドアを設けること)」によりハッカーに侵入路を与えてしまうことなどがある。
 
システム・レベル(アーキテクチャー)の欠陥は、ネットワークの個別コンポーネントのセキュリティが適切であっても、システム・アーキテクチャーの構成が不適切な場合、外敵につけ入る隙を与えることになることを言う。最もよく見られるアーキテクチャー面での欠陥には、次の2種類がある。

一つは「内部セキュリティの不在」で、ファイアウォールの内側を安全と考えて対策を施さないでいると、社内ネットワーク・デバイスの間のセキュリティ・コントロールがないに等しいため、一旦侵入したハッカーや内部ユーザーは、重要なサーバーやデータベースに触手を伸ばすことも思いのままとなってしまう。

もう一つは「ファイアウォールの負荷集中」がある場合、複数のファイアウォールで分担すべきところ、1台のファイアウォールのまま、トラフィックの多い電子メール・サーバーなどを外に出してしまったりすることで、そこを踏み台に侵入されるといういことがある。

 

←戻る | 続き→


| 駐在員報告INDEXホーム |
コラムに関するご意見・ご感想は hasegawah@jetro.go.jp までお寄せください。
J.I.F.に掲載のテキスト、グラフィック、写真の無断転用を禁じます。すべての著作権はJ.I.F..に帰属します。
Copyright 1998 J.I.F. All Rights Reserved.