SOHO時代のUNIX管理と活用の記録
(第9回) Linuxスモールサイトに挑戦! 1.Linuxスモールサイトの安全性 倉光 君郎 現在,Linuxに関して,インターネットサイト構築のための入門書や解説書が数多く出版されています.そのおかげで,多くのLinuxユーザーが,OCNエコノミーなど低価格な常時接続サービスや大学などの教育ネットワークを利用して,手軽にスモールサイトを運用しています.そこで,メールサービスやWebサービスを提供して,より一歩進んだインターネットの活用を行っているわけです. |
Linuxスモールサイトの落とし穴
インターネットは,必ずしも情報社会の明るい面だけ持っているわけではありません.インターネット上には,「クラッカー」と呼ばれる危険な連中が数多く存在し,インターネットサービスやサーバーに対して,日夜,不正なアクセスを試みています.つまり,いったんLinuxを利用したスモールサイトを立ち上げてしまったら,インターネットには国境がありません.世界中の「クラッカー」たちからの攻撃を物理的に隔てるものはありません.
インターネットは,基本的に無法地帯といえるので,インターネットセキュリティという名前の自己防御策が求められます.現在では,企業や公的機関は,インターネットセキュリティに対する意識が非常に高まってきています.セキュリティは,機密情報の漏洩の防止だけでなく,その組織に恨みを抱いている人物からの破壊工作や社会的な信用を狙った攻撃をも防ぐことができるからです.
これに対して,個人レベルで運用しているスモールサイトは,セキュリティは本当に重要なのでしょうか?確かに,スモールインターネットサイトの場合,サイト運用者が特別な恨みでもかっていない限り,社会的信用やサイトの破壊が目的で狙われることはないでしょう.
しかし,Linuxスモールサイトは,「クラッカー」に狙われやすい3つの理由があります.
(1) Linuxは世界規模で急激に普及している.そのため,マイナーなOSに比べ,セキュリティホールが発見されやすく,攻撃の対象となりやすい.
(2) Linuxサイトは安価に構築できるため,逆にわざわざ高価なファイアウオールを導入して防御しようと考える人は少ない.
(3) Linuxは比較的UNIX初心者が管理している可能性が高い.もしくは,インストールしたまま,管理者不在状態で放置されたマシンも結構ある.
クラッカーは,セキュリティの甘いLinuxサイトをまず不正侵入して,そこを単なる「踏み台」にして「本命」にアタックをかけるのです.Linuxスモールサイトだからといって,セキュリティ対策を疎かにできません.
実際に最近では,Linuxサイトが絶好の標的として狙われて,実際に不正アクセスの被害にあうケースが急増していると言われます.そして残念なことに,これが「Linuxはセキュリティに弱い」という悪い評判につながっていきます.Linuxユーザーとしては,Linuxの評判を下げないように気をつけるに越したことはありません.
今回は,「Linuxスモールサイトに挑戦」の第1回目として,クラッカーから最低限の身を守る術を考えてみましょう.
ある「愉快犯」の侵入手口
まず,Linuxスモールサイトを守るためには,その攻撃者である「クラッカー」たちの侵入手口を推察するところから始めましょう.孫子の「敵を知り己を知れば,」という戦略です.
今回は,CERT(http://www.cert.org/)やJPCERT/CC(コンピュータ緊急対応センター:
http:// www.jpcert.or.jp/)
に報告されているクラッキング手法と,実際にクラックされたサイトの解析を手伝った経験から,ある「愉快犯」的なクラッカーの侵入手口を再現してみました.「愉快犯」とは,特に目的性もなく,適当に他人のサイトに不正侵入して遊んでいる連中です.サイト運用者のプライドが傷つく以外,ほとんど実害を与えません.すべてのクラッカーがこの「ある愉快犯の侵入手口」通りに攻めてくるとは限りませんが,セキュリティ対策を考える材料くらいにはなるでしょう.
注意:ちなみに,ここに書いてある手続きは犯罪行為ですから,絶対に真似しないでください.
(1) クラック対象を探す
「愉快犯」は,クラックの対象となるインターネットサイトを探すところから始めます.昔は,メールアドレスやURLから攻撃対象のホスト名を決めていたようです.しかし最近では,大企業やプロバイダがセキュリティ対策に非常に神経質になったため,著名なメールアドレスやWebサイトは,腕に覚えのある「上級者クラッカー」しか狙いません.
普通の「愉快犯」は,効率は悪いけど,IPアドレスからランダムに検索して,暇つぶしにはちょうどいい攻撃対象を選ぶようです(*1).
(2) 対象のOSとバージョンを調べる
「愉快犯」は,インターネット上に接続されたコンピュータを発見したら,そのOSとバージョンを調べます(自分の知らないOSにはアタックできないので).
誰でもできる最も簡単な確認方法は,そのマシンにtelnetをかけることです.たとえば,UNIX系のOSの場合,ご丁寧にもOS名とそのバージョンを教えてくれます.
Red Hat Linux release 5.2 (Apollo)
Kernel 2.0.36 on an i586
login: _
クラッカーは,リモートアクセスが可能なサーバー系OSを狙います.その中でも,特にLinuxは普及率が高く,オープンソースでセキュリティホールが発見されやすいので,クラッカーのお得意様になりがちです.少なくとも,telnetに対して正直にOS名とバージョン情報を返すLinuxマシンは,まず「愉快犯」の最有力候補といえるでしょう.
注意:現在では,自分のユーザーアカウントを持っていないサーバーに対してtelnetをかけることは,クラッキング活動の一種と見なされる可能性があります(気をつけましょう).
(3)
ポートスキャンで,動作しているサービスを調べる
「愉快犯」は,カモになりそうなLinuxマシンを発見したら,次にそのマシンの弱点を探します.具体的には,ポートスキャンという手法を用いて,クラック対象のマシン上で動作しているネットワークサービスの一覧を得て,さらにそのサービスがセキュリティホールのあるサーバーで提供されていないか,解析するのです.
ポートスキャンは,順番にソケットのポート番号に接続を試みるだけの簡単なプログラムで実行できます(ソースコードは敢えて掲載しないが,この種のプログラムはネットワークプログラミングの教科書にも紹介されている).ポートスキャンの結果,どのようなサービスが動いているか,表1のようにリストを作ることができます.
<表1>ポートスキャンの結果
(4)
セキュリティホールのあるサービスからシェルを奪う
「愉快犯」は,ポートスキャンで発見したセキュリティホールに対して,不正なアクセスを試みます.
セキュリティホールとは,簡単に言ってしまえば,外部からシェルを奪えるバグのことです(これ以外にも,サービスやOSを強制的にダウンさせるバグの可能性もある).しかし当然ですが,筆者は具体的な「シェルの奪い方」までは知りません.つまり,(1)〜(3)までは,ある意味で誰でも実行可能ですが,(4)だけは,特殊な裏情報を知らなければできません.
実は,3年ほど前,一度だけ具体的にセキュリティホールとはどんなものか知る機会がありました.それは,管理者向けメーリングリストに流れてきたものですが,Webサーバー(ApacheやNCSA)の標準CGIプログラムphfの不具合についてでした.実際に,Netscapeを使って簡単にWebサーバー機のパスワードファイルを見ることができました.このように,セキュリティホールは知ってしまえばあっけないもので,簡単にサイトの機密情報を奪い,不正な侵入を許すことになります.
「クラッカー」は,どうやって具体的なセキュリティホールの情報を得ているのでしょうか?
以下略.
copyright 1999 倉光 君郎