このところ、常時接続用インフラの立上げがとても盛んになってきました。政府のIT戦略会議においても低価格の高速常時接続が必須の課題となっているようですね。回線インフラについては「インターネットへの各種接続媒体」をご覧いただくとして、このように常にインターネットへ接続している状態では、さまざまな不正アクセスが起こります。これまでもSEAWorks Network!においては、「ちょっとだけセキュリティについて考える」と題して、おもな不正アクセスなどについてお話してきました。残念ながらわが国のIT戦略会議では、このあたりの点について一切言及しているところが見当たりません。本当にこの方たちに任せておいて大丈夫なのかなぁ・・・といったところはありますが、では、そんな状況下のわれわれ素人集団では、現実問題としてどのようにセキュリティの確保をするかといった点について注目し、もうちょっとセキュリティについて考えてみましょう。
常時接続とは、終日インターネットにつないだままでいられることと定義できますが、実際のところプロバイダの都合などにより、インターネット接続時に取得されるIPアドレスがグローバルアドレスかプライベートアドレスかによって、その不正アクセスの内容が大きく変わります。一般にプライベートアドレスが割り当てられている場合は、インターネットへ常時接続しているとはいえないということになりますが、利用者側から見てインターネットを常に利用できるという見方からは常時接続しているのと同じということになります。どちらも不正アクセスの対象とはなりますが、一般的にグローバルアドレスの方が危険の範囲は広くなります。それは、プライベートアドレスを取得している場合には、グローバルアドレスを持っているインターネット側の端末からはアクセスすることができないからで、同一のプロバイダに接続している同じネットワークアドレスのプライベートアドレスを持ったその他の端末からしかアクセスできないからです。グローバルアドレスを取得していると、それこそ世界中から直にアクセスが可能となってしまいますから、侵入を試みようと考える者の数はプライベートだけの場合より膨大に増えることでしょう。ただし、先ほども述べたように、プライベートアドレスで接続していても、同一プロバイダにより割り当てられた同じプライベートアドレスを持つその他のユーザーからの不正アクセスは考えられますし、もちろん、外部からでも、その接続中のプロバイダを中継して不正アクセスをすることが考えられますので注意は必要となります。
ダイヤルアップアクセスでは、ほとんどの場合プロバイダのDHCPにより、任意のグローバルアドレスを借りていることになります。常時接続タイプのものとは違い、ほとんどの場合接続するたびにIPアドレスが変わるため、一般的には不正アクセス行為は受けにくいとされています。しかし、プロバイダによってはアクセスごとに同じIPアドレスを割り当てる場合も考えられ、さらにダイヤルアップ中だけの短い時間で行える不正行為もないとは言えません。また、モデムやTAなどでアクセスしている場合、直接パソコンにアクセスしてしまうことが可能で、意外と不正アクセスを行いやすい環境となってしまっているのも現実でしょう。また、最近のパソコンは高性能化が著しく、パスワードの類推やIPアドレスの検索など、とても高速にこなすことができるようになってきており、不正アクセスを試みる側にとっても都合が良くなってきています。
このところニュースやセキュリティ関連のサイトでも度々登場するこれらの言葉は、米Yahoo!で起きたDDoS攻撃※1時などにみられた不正アクセスなどで使われるキーワードです。トロイの木馬とは相手先に不正なプログラムを仕込み、任意のタイミングでターゲットとなった端末内で動作するプログラムのことです。また、バックドアは、その不正に仕込まれたプログラムをコントロールしたり、ターゲットとなった端末内の情報を盗み出すためにあけられた任意のポートなどのことで、通称裏口とも呼ばれます。さらにゾンビ化とは、トロイの木馬をしかけられ、バックドアにより開けられたポートを使って、不正アクセス者に任意にコントロールされてしまうパソコンなどの端末のことを意味します。
そのほかについては、「ちょっとだけセキュリティについて考える」にて概要を書いておりますので、必要であれば読んでみてください。
※1:DDoS攻撃(Distributed Denial of Service:分散型サービス拒否攻撃)ゾンビ化された複数の端末から、特定サイトの特定ポートに対して大量のトラフィックを投げかけ、一時的に使用不能な状態にしてしまうこと。
不正アクセスを試みる者は、相手のスキルを考えてはくれません。相手が初心者であるのかないのかはまったく関係なく、無差別に不正アクセスは繰り返されます。逆にいえば、十分に対策を施せない初心者ほど不正アクセスを受けやすいといえるでしょう。また、勘違いをなさっている方も多いのですが、Linuxを使っているから安全だというのは、まったくの誤りです。素の状態で不正アクセスを試みるならば、どちらも穴だらけなのは否めません。まして強力なネットワーク機能を持っているLinuxであればこそきちんとした管理をしないと、逆に他人に多大な迷惑をかけたり、自分自身が想像を絶する被害を被ることも多いでしょう。強いて言えば、自分でコントロールできるのがLinuxです。自分でいかようにもセキュリティ対策を施すことが可能になります。また、オープンな環境であるため、セキュリティホールなども比較的発見・情報伝達が早く、これらを正確に把握してすぐに対策を施すことが可能です。このあたりのことについては、マイクロソフトに頼らざるを得ない、パッチ配布を待つことしかできないWindowsと比較して、非常に優れている点でもあります。
なんらセキュリティ対策を取らずにインターネットに接続し、不正アクセスの踏み台となるようなケースでは、場合によって第三者責任が問われる可能性があることが「不正アクセス防止法※1」によって方向付けされました。では、例えば踏み台にされた場合、どの様なことが起きるかといいますと、前述の米Yahoo!の件はそのものずばりですが、それ以外でも、インターネットに接続するパソコンでsmtpサーバーを稼動させていて、SPAMやメールボムなどの迷惑メールの中継をされることも考えられますし、不意にアクセス権限を設定していないプロキシを中継されて、掲示板荒らしなどのいやがらせ行為の片棒を担ぐことも想定されます。これらはプロキシやSMTPサーバーにアクセスできる端末を正しく制限することで回避できます。
もちろん、OSの不具合を無いものとして考えると、ユーザー側で考えられる対策はそれほど多くはありません。基本的にはファイアウォールをいかに高度に設定するかにかかってしまうのですが、ファイアウォールにはどのようなタイプがあるのでしょうか。個人やちいさな会社でも手が届く範囲を想定して考えてみましょう。
※1:正式には「不正アクセス行為の禁止等に関する法律」と呼びます。
パケットフィルタリングはポート番号と送受信者のIPアドレスを監視し、あらかじめ設定されているフィルタリングルールとの照合により、必要なパケットのみ流通させる方法です。ルールにのっとっていないものは、破棄してしまいます。一般的なダイヤルアップルータやCATV・ADSLなどで用いるブロードバンドアクセスルータには、必ずといっていいほど搭載されている機能で、故意にオフにしない限りは、初期設定でそれなりの設定が施されています。また、ダイヤルアップルータの場合、NAT+IPマスカレードの機能と併用してグローバルアドレスとプライベートアドレスを分けているため、外部からの侵入が非常に難しくなっていることも有利な点となっています。
ただし、物にも寄りますが、あらかじめ仕込まれたトロイの木馬によって開けられたバックドアの任意のポートなどには対応できないこともありますので注意が必要となります。
NATは、基本的にファイアウォールとして設計されたものではありませんが、結果としてファイアウォール機能をもたらすことで知られている機能です。
一般に内部のLANにプライベートアドレスを割り当てた場合、外部からのアクセスができないためとても安全になりますが、そのままでは内部から外部へアクセスすることもできなくなり、使い勝手の面で非常に不利になります。現在のインターネット利用状況からか考えれば、LANからインターネットへアクセスできないのでは本末転倒と言ったところでしょうか。だからといって、全てのパソコンにグローバルアドレスを取得して接続する会社も無いと思います。もちろん、その様な割り当て方ができるほどIPv4のIPアドレスは潤沢には数がありませんし、全ての端末をインターネットにさらすことにでもなったら、そのセキュリティ管理には想像を絶するコストがかかることでしょう。
そこで、外部との接点のみグローバルアドレスを取得して通信を確立する手法が考えられ、NAT(Network Address Translation)と呼ばれています。NATを理解するにはIPヘッダを理解する必要がありますが、簡単に説明するとIPヘッダには送信元アドレスと送信先アドレスが書きこまれていて、送信先アドレスに向かってあらかじめ設定されたルーティング情報をもとに宛先まで届くようになっています。相手先で受け取ったという情報は、送信元アドレスに向かって返ってくるわけですが、プライベートアドレスのルーティング情報は世界中どこをさがしてもインターネット上には存在しません。したがって戻ってこれないということになります。ということで、通信を確立させるにはどうしてもグローバルアドレスが必要ということになりますが、そこで登場するのがNATです。NATでは、内部のプライベートアドレスからのパケットの送信元アドレスを、あらかじめNATを提供する装置が取得しているグローバルアドレスに入れ替えてパケットを流します。もちろん返ってきたときには、その送信元のプライベートアドレス宛てに入れ替えて内部へ流しますので、通信が確立するようになっています。もちろんこの仕組の場合特別な設定をしない限りは逆はありえませんので、外からの不正アクセスにはとても強くなり、ファイアウォールとしての機能も持ち合わせるようになります。特にIPマスカレードと呼ばれる機能を実装している場合には、さらにTCP/UDPポート番号の振替も行うため、LAN内の複数の端末からの通信を確立しますが、1対多の通信を行うため、外部からのアクセスは非常に難しくなるようです。NAT/IPマスカレードについて、詳しくは「インターネットプロトコルの謎」をご覧下さい。
☆ブロードバンドアクセスルータ☆
○ワイルドラボ:LAMB | ☆ダイヤルアップアクセスルータ☆ ☆ファイアウォール専用☆ |
近頃話題のパーソナルファイアウォールは、パケットの内容を常時監視し、不正なパケットには返答しない、内部へは通さないなどの処置を施すことができるようになっています。最近では、ウィルス検知プログラムに統合されて配布されているものもあります。また、価格帯もかなり下がってきており、個人でも手が届くようになってきました。
このパーソナルファイアウォールにも様々な形態がありますが、大きく分けるとパケットフィルタリングとIDS*1と呼ばれる侵入検知システムになります。パケットフィルタリングについては前述の通りですが、IDSは、不正アクセスを検出し、ログを記録する機能です。東陽テクニカのBlackICE Defenderは、このIDSに該当する製品であると同時に、パーソナルファイアウォールの機能も持ち合わせています。
*1:IDS intrusion detection system
プロキシ(PROXY)は、別名アプリケーションレベルゲートウェイ又はコネクションレベルフィルタリング(Socks Proxyの場合)とも呼ばれ、特定のアプリケーションポートのみをクライアントに代わって代理通信を行います。詳細はネットワーク入門でも触れていますが、アプリケーション層で動作するため、複雑で柔軟な制御が比較的簡単に可能となっています。インターネット上で公開しているプロキシとはやや使い方などの面で違いがあるので注意が必要です。
プロキシの特徴としては、内部からアクセスできるポートを制限できることです。つまり、内部からはプロキシを通さない限り通信ができないため、当然プロキシで許可していないポートによる通信ができません。これは、例えばLAN内にトロイの木馬などを仕掛けられ、特定のポートを開いて通信しようとしても、プロキシが許可したポート以外では通信ができないことを意味します。反面、対応しないポートは制御不能ということになっていますので、プロキシが動作しているコンピュータ内でプロキシ以外が開いているポートなどには別途注意が必要です。それ以外でも、代理で通信を行うことにより、通信ログを記録したり、キャッシュにより高速化、通信内容を加工することができるなどの特徴を持ちます。
数百万円台の高額なファイアウォール専用機器ではさまざまな対策を施してあり、内部を安全に保つことができますが、予算の乏しいちいさな事業所やSOHO、個人環境ではこれらの経費を捻出することは現実的には不可能です。これまで説明してきたセキュリティ対策は、それぞれが長所短所を持っていますが、比較的低価格で入手可能で、機能的にもかなり高度なものが提供されています。一つ一つの機能は専用機に比べて低く抑えられていますが、これらを組み合わせることにより、専用機にも見劣りしないような機能を実現することができます。左の図は組合せ構成のほんの一例です。もちろん、これ以外でもルータを2台以上繋いで、ルータとルータの間をDMZ(非武装地帯)として外部からのアクセスを許可しつつ監視・制御可能なようにして、かつ一番内側のLANからは安全にアクセスできる様にする構成などもあります。予算や用途に応じて柔軟な構成を考えてみましょう。
今回本書で触れているのは、主にOSへの不正アクセスへの対応ですが、実際にはルータなどのネットワーク機器にもセキュリティホールが存在する可能性は十分考えられます。自分の環境を正確に把握し、個々の機器やソフトウェアについて常に関心を持って情報を収集するように心がけましょう。
一般にスキャンと呼ばれる相手先を探るような不正アクセスの場合は、こちら側である程度のセキュリティ対策を施すことにより、ほとんど心配は無くなります。一般的な不正アクセスは検知してブロックしてしまうかポートへのアクセスに対して反応しなければ良いだけです。一般的なパーソナルファイアウォールで十分な効果が得られるでしょう。しかし、メールの添付ファイルなどによりトロイの木馬などをしかけられることも考えられ、一概にインターネットとの接点のみを監視すれば良いとは言えません。
実際に、これら不正アクセス行為に気がついたら、まずは該当する端末をネットワークから切り離し、十分に調査をすることが重要となります。各ログを解析し、不正行為を行った者を特定し、その手法なども必ず見つけ出しましょう。結果、その端末自体が証拠物件となりますので、訴訟にまでいたるような場合を想定し、安易にOSの再インストールなどは行わず、調査を進めるようにしましょう。
以下に問題解決のためのURLを少しだけ紹介します。基本的にはIPアドレスを検索し、不正アクセス元のIPアドレスを持つ団体に連絡します。相手がダイヤルアップである場合も想定し、いつ、どのアドレスからどの様な不正アクセスを受けたかを正確に記述します。もちろん、相手がプロバイダの場合、個人情報を開示してはくれませんので、別途プロバイダから注意をしてもらうようにします。その後も継続して続くようであれば、その他の団体へ訴えるのも有効な手段かもしれません。個人的にはなんでもお上に任せるのは???ですが、個人のスキルにより解決がつかない場合は適宜相談したほうがいい場合もあると思われます。
IPアドレスの検索:IPドメインSEARCH
セキュリティ用語:セキュリティ用語辞典
セキュリティ関連団体:IPA、JPCERT、JCSA
ハイテク犯罪対策:相談窓口等一覧
基本的にファイアウォールに求められる機能としては、外部からの不正アクセスの制御と不正アクセスログの記録・監視ができることです。現実的には、高度なネットワークの知識を持って始めてきちんとしたファイアウォールが構築できるわけですが、われわれにわかシステム管理者レベルでは手に余ることも多いことでしょう。また、どんなに優れたファイアウォールでも完璧と言いきれる環境は存在しません。それぞれに危険性と利便性を計りにかけつつ構築するものとなります。
とりあえず私たちのレベルで取ることができる対策としては、上記の対策をいくつか組み合わせることです。パケットフィルタリングを破られても、パーソナルファイアウォールやプロキシのログから相手先のアクセスを制限したり、ログを記録したりすることができます。とにかくインターネットへ接続している以上は、自己責任が原則です。日々の監視の目をゆるめずにがんばりましょう。
本当は、ここでご紹介したプログラムや各種機器を自分で試して一つ一つ解説したいところなのですが、予算も時間的余裕もあまり無いためご紹介しかしていません。特に上記パーソナルファイアウォールは試用版やフリー版などが配布されているものもありますので、詳細は各サイトでお確かめ下さい。
ということで、長文となりましたが、お読みいただきましてありがとうございました。
Rev1:2001.03.14 文書をちょっぴり変更。
Rev2:2001.06.13 プロキシの文書を拡充、構成例の画像追加。