侵入とは?/ ディック
[ 329] ハッカーがネットワークに侵入する方法
[引用サイト] http://www.microsoft.com/japan/technet/technetmag/issues/2005/01/anatomyofahack/default.mspx
|
ハッキング : 対策ハッカーがネットワークに侵入する方法ハッキング : 対策Jesper Johansson>" width="165" height="40">トピックターゲット ネットワークネットワーク アドレス範囲とホスト名露出しているホストと公開されているアプリケーションバージョン情報と更新プログラムの適用状態アプリケーションとバックエンド サーバーの構造侵入の第一歩権限昇格他のコンピュータのハッキングドメインの保有まとめこの記事は、何かをハッキングする方法を伝えようとするものではなく、ハッカーが、あなたのミスをどのように巧みに利用するかを紹介するものです。この記事をお読みいただければ、犯罪的ハッカーが利用する、共通のわなを避けることができるようになります。説明を始める前に、侵入テストについていくつか知っておく必要があります。まず第一に、侵入テストを間違って実施すると、ネットワークの安定性に対して悲惨な事態を招くことがある、ということです。ハッカー (犯罪的な場合およびそうでない場合) が使用するツールには、ネットワークの脆弱性を探知するように設計されているものがあります。システムに対してハッキング ツールが使用されたり、弱点を突く手段が実行されたりすると、システムの誤作動、システムやネットワーク全体の不安定化など、予期しない結果が発生することがあります。専門家であれば、限界や、ネットワークを破壊せずにどの程度までネットワークを操作できるかを把握しています。一般の人は、それらを知りません。被害妄想的な発想をネットワークにうまく組み込むと、ネットワーク保護に明らかな効果を示す傾向が見られます。セキュリティ管理者が犯す可能性のある最悪の誤りの 1 つは、すべてがうまく行っている、と考えることです。「あなたのネットワークは安全です」という根拠のない言葉には注意してください。セキュリティ コンサルタントが、ネットワークにまったくアクセスできないという事実を理由に "あなたのネットワークは安全です" というレポートを出し、そのままにしておくことが驚くほど多く見られます。これは、ネットワークが安全だという証明にはなりません。コンサルタントが侵入経路を見つけることができないのであって、他のだれかが見つける可能性はあるのです。ターゲット ネットワーク今日の大部分のネットワークは、外部は硬く、内部は柔らかい、いわゆる "卵の殻" の原則に基づいて構築されています。これは、攻撃者がいったんネットワークに足場を組んでしまえば、ネットワーク全体がドミノのように崩れることを意味します。侵入後、最も重要な問題となるのは、多くの場合、次の攻撃対象、および実際にうまみのある情報が存在する場所を判断することです。しかし、このように進むことができてはいけないのです。正しい技術を駆使すれば、ネットワーク管理者は 2 つの重要な目標を達成できます。つまり、最初の足場の確立を難しくすること、その足場からネットワークの他の場所に進むのを困難にすることです。図 1: ターゲット ネットワークターゲット ネットワークの攻撃を開始する前に、直面しているものについて見てみましょう。実際の攻撃者が実際のネットワークを探知し、ネットワーク回路すべてにアクセスできることは "まれ" であるのは明白ですが、このケースでは、ターゲット ネットワークの構成の調査について説明します (図 1 を参照してください)。図 1 に示すように、ここでいうターゲット ネットワークは、フロントとバックにファイアウォールを設定した標準的なデュアルスクリーンド サブネットです。境界ネットワークは、フロントエンド Web サーバー、バックエンド データベース サーバー、緩衝地帯 (DMZ) ドメイン コントローラ (DC) から構成される、ごく一般的なセットアップです。バックエンドに企業の DC がある場合、攻撃者の最終目標はその DC の掌握ということになります。このネットワークにおいて通常と違うのは、おそらく、Web サーバーと DMZ DC がいずれもルーターとして機能することだけです。これは、このシナリオを構成するために、わざとこうしています。問題のネットワークは、Microsoft® Virtual PC 2004 で稼動するバーチャル マシンとして構築されており、このネットワークを使用してデモンストレーションを実施します。現実には、ホスト コンピュータ 1 台に対してバーチャル マシンを 2 台だけ実行します。ネットワーク全体を動かすには、必要なゲスト数の半数のホストが必要です。ルーターを独立させて構築する場合は、3 台のラップトップ (または、操作に必要な台数 + 1 台) が必要になります。これを実現するために、Web サーバーと DMZ DC をいずれもルーターとして機能させ、必要なホスト コンピュータの数を減らします。このような、少し例外的な構成は、結果とはなんら関係がないことはお伝えしておきます。ネットワークをハッキングするときの最初のステップは、攻撃対象の検出、つまりターゲット ネットワークへのフットプリントの作成です。犯罪的ハッカーに有益な要素には、以下のものがあります。•ネットワーク アドレス範囲•ホスト名•露出しているホスト•上記のホストで公開されているアプリケーション•オペレーティング システムとアプリケーションのバージョン情報•ホストおよびアプリケーションにおける更新プログラムの適用状態•アプリケーションとバックエンド サーバーの構造では、攻撃者が取得できる情報の種類を調べ、標準的なハッカーがそういった重要な情報を見つける方法について見ていきましょう。ページのトップへネットワーク アドレス範囲とホスト名正しいハッキングにおける次のステップは、ターゲット ネットワークの論理上の位置の検出です。たとえば、contoso.com の侵入テストを実施するとします。まず、contoso.com にどのようなネットワークが登録されているかを調べます。contoso.com に正式に登録されているアドレス範囲よりも、エクストラネットやビジネス パートナーなど、ターゲット ネットワークに接続されているネットワークの情報の方に関心があるかもしれません。多くの場合、セキュリティ機能の低い .com に攻撃し、そのドメインを掌握してから contoso.com に移動する方が簡単です。チェーン内のリンクと同様、特定のネットワークのセキュリティの程度は、そのネットワークに接続されているネットワークの中で (これに接続する VPN ユーザーも含みます) 最もセキュリティが低いネットワークと同じレベルになってしまいます。攻撃者は、次に、ホスト名が必要になります。大規模なネットワークで nslookup 要求を実行できる場合がありますが、ゾーン転送と呼ばれる機能を実行できる場合もあります。ゾーン転送は、DMZ ゾーン全体のコピー (ネットワークにおけるすべての登録名の一覧) を送り返すように DMZ サーバーに依頼する単純な要求です。ほとんどの攻撃において、ホスト名が決定的に重要になることはありませんが、ホスト名がわかれば攻撃はかなり簡単になります。たとえば、IIS を実行する Web サーバーのホスト名がわかっている場合、そのホストの匿名 IIS アカウントは、通常は IUSR_hostname であるため、推測できてしまいます。では、管理者がそのシステムにアカウント ロックアウトを設定している場合はどうでしょう。その Web サーバーを停止させるために、攻撃者は、管理者であるあなたを IUSR_hostname として認証するように依頼する大量の要求を、同サーバーに対して送信する必要があります。攻撃者が多数の不正パスワードを送信すると、すぐに匿名ユーザー アカウントがロックアウトされます。アカウントをロックアウトしてしまえば、あとは、不正な要求を単に送り続けるだけで、Web サーバーは他のユーザーに対して一切機能しません。ページのトップへ露出しているホストと公開されているアプリケーションホスト名よりも重要なのは、実際に露見されるホストです。攻撃のこのフェーズでは、簡単なターゲットの検出を試みます。この作業は非常につまらないと感じられるかもしれません。ICMP (Internet Control Message Protocol) トラフィックが境界でブロックされていなければ、ハッキング ツールが不要になる場合もあります。その場合は、以下のコマンドを指定するだけで十分です。 当然、最後の IP アドレスはターゲット範囲に合わせて調整する必要がありますが、ここでは、特定のネットワークの各ホストに ICMP エコーを送信しています。ICMP トラフィックがブロックされていない場合は、ネットワークで有効なアドレスの一覧が生成されるのを待つだけです。ポート スキャナは、ターゲットへの接続を試みて、その成否を報告するだけのツールです。接続の成功は、ホストがリスニングしていることを意味します。接続の失敗は、多くの場合、ホストがリスニングしていないことを意味します。最も一般的なポート スキャンは SYN スキャンとして知られるもので、攻撃者はターゲットへの通常の接続の確立を試みます。ホストがリスニングしている場合、接続が成功し、ポート スキャナは攻撃者にポートがオープンになっていることを通知します。ポート スキャンはネットワーク全体に対して、短時間で実施できます。厳選された一定範囲のポートでポート スキャンを実施すると、ネットワーク上の利用できるリソースに関する膨大な情報が返されます。ポート スキャンは、ホストで公開されているアプリケーションの種類を判断する方法です。ポート スキャンにより、攻撃で予測されるベクトルに関する情報が得られます。一般的に検出されるアプリケーションには、FTP クライアント/サーバー、Telnet、メール サーバー、および HTTP Web サーバーなどがあります。ページのトップへバージョン情報と更新プログラムの適用状態可能であれば、ターゲット コンピュータでの実行が検出されたアプリケーションのバージョンに関する情報を入手しておくと非常に役に立ちます。たとえば、接続直後に、ある種のバナーが送信されるアプリケーションが多くあります。SMTP サーバーと POP サーバーのほとんど、および多くの Web サーバーはこのように設定されています。ただし、ここに挙げた例では、ターゲット ネットワークは Windows Server™ 2003 上で IIS 6.0 を実行しており、IIS 6.0 は有用な情報が付属するバナーを送信しません。また、露出しているサーバーの更新プログラムの適用状態を把握することも、攻撃者にとっては非常に有利です。この情報はさまざまな方法で検出できます。アプリケーションから送信されるバナーから、必要なすべての情報が得られる場合があります。たとえば、sendmail バナーは、通常、デーモンのバージョン番号を伝えます。ある種の脆弱性を含んでいる sendmail のバージョンがわかれば、必要な情報がすべて揃います。また、システムの応答から、特定の更新プログラムが適用されているかどうかを把握できる場合もあります。これはもともと、悪意のない脆弱性スキャナや OS フィンガープリンティング ツールで採用されている技術です。最後の手段として、システムに対して弱点の悪用 (エクスプロイト攻撃) を実行し、どのような結果になるかを調べることも可能です。これは、脆弱性スキャナがサービス拒否 (DoS) 攻撃を検出する方法としてよく使用されます。攻撃後も応答するシステムは、脆弱ではなかったと考えられます。ページのトップへアプリケーションとバックエンド サーバーの構造アプリケーションとバックエンド サーバー (存在する場合) の構造について情報を入手しておくと、重宝する機会が多くあります。このような情報の入手は、一般には非常に難しいのですが、運よく手に入れられる場合もあります。たとえば、ファイル名とページのデザインが非常にわかりやすい、サード パーティ製の Web アプリケーションを使用するネットワークをターゲットとして設定する場合を考えてみます。この場合、使用しているアプリケーションが攻撃者に知られてしまいます。そのアプリケーションに慣れている攻撃者は、アプリケーションの見つけ方についてもよく知っています。一例を挙げると、アプリケーションで %webroot%\system.config と呼ばれる構成ファイルが使用されているとします。.config 拡張子を持つファイルが Web サーバーによって解析されない場合でも、攻撃者は Web ブラウザでこのファイルを要求できます。最良のシナリオでは、ファイルからわかるのは、バックエンド サーバーとデータベースの名前などの情報だけです。最悪のシナリオでは、ファイルに、Web サーバーとデータベース サーバー間の接続を確立するために使用されるユーザー名とパスワードが格納されていることがあります。これを不自然な例として、簡単に片付けないでください。筆者はこれとまったく同じ状況に遭遇しました。このときは、顧客のネットワークで、セキュリティの改善のために講ずるべき措置が何かないか調べていました。市販品である Web アプリケーションの多くは、きわめて不完全に作成されているため、結果的にネットワークの裏口 (バック ドア) としての役目を果たすことがあります。この段階で、ハッキングを始めるために必要なすべての情報が揃います。最初のステップとして、ネットワークに最初の足場を組み、その意思があれば、卵の殻を破ります。ページのトップへ侵入の第一歩ここで、最初の調査を数回行ったと想定し、ターゲット ネットワークに完全に更新プログラムの適用が施され、実際に堅牢なファイアウォールがネットワークのフロントエンドに配置されていることがわかったと仮定します。つまり (HTTP と HTTPS の既定である) ポート 80 と 443 でのみ送信が可能であるとします。この場合、どこから侵入できるでしょうか。前節で述べたバック ドアを思い出してください。バック ドアはどこになるでしょうか。何に直面するでしょうか。では、まず、筆者に対して露出しているもの、つまり Web アプリケーションを検証しましょう。図 2 は、Web サーバーのホーム ページを示したものです。この図から、ある種の注文サイトの画面であることがわかります。正式なアカウントを使用して、さらに調べてみます。図 2: Contoso.com ホーム ページ次のページに、Pubs 書店のホーム ページを例示し、販売書籍の一覧を掲載しています。ページには筆者のユーザー名が表示されています。そのページのセキュリティが甘ければ、このユーザー名が役に立ちます。そのユーザー名を使用して、他のテクニックを試すことができるからです。たとえば、ユーザーが入力したユーザー名またはパスワードの有効性を確認するために、このページは非常に質の悪いアルゴリズムを使用している予感がします (このアルゴリズムを書いたのは私なのですが)。また、このページでは、ユーザー名のフィールドから入力された内容の評価も適切ではないと疑っています。これを確かめるために、SQL インジェクションというテクニックを用います。SQL インジェクション (注入) 攻撃を使用するには、以下の文字列を渡します。 この段階で、最初の足場が完成し、ネットワークの掌握に大きく近づきました。権限をリモート匿名ユーザーから内部ユーザーに昇格させました。ユーザーの種類を確認するには、まず残りのツールをシステム上で実行する必要があります。残りのツールは、ネットワークでシステムの他の箇所をハッキングする際や、ローカル権限を必要に応じて昇格させるために使用します。それらのツールは、tftp.exe を使用して送信することもできます。この後、ホストで資格情報を検証できます。 ご覧のとおり、Web サーバーの掌握に成功しました。次の目標は、ドメイン自体を把握し、その後、ドメインから企業ドメインに到達することです。ページのトップへドメインの保有ここまでの作業で、データベース サーバーと Web サーバー (事実上、ドメイン コントローラを除くすべて) を所有しています。しかし、実際に Web サーバーによって、何にアクセスできるようになったのでしょうか。これを確かめるために、Web サーバーにツールをアップロードし、データベース サーバーの場合とまったく同じように、そのシステムでリモート コマンド シェルを取得する必要があります。Web サーバーに管理者として SMB 接続しているため、今回は多少簡単です。SMB によって、Web サーバーに簡単にアクセスできます。たとえば、コマンドのスケジューリングや、特定の形式の移植可能なリモート コマンド シェルの起動ができるようになります。ローカル シェルを取得すると、普段から使用している通常のツールを自由に使用できます。たとえば、ローカル管理者を全員、簡単に見つけられます。図 10 に示すように、この例では、アカウントは多くありません。既に発見しているサービス アカウントと、ローカル管理者、ドメイン管理者のみが見つかります。おそらく、システム管理にドメイン管理者アカウントを使用しているのでしょう。これは、トロイの木馬プログラムを使用し、いずれかのユーザーを通じてドメインを掌握できることを意味します。一般に、攻撃者は結果を早く出すために、直接的な攻撃を用いる傾向にあります。しかし、すべてが失敗に終わった場合、目標を達成するために受け身的な攻撃に出ます。これまでに、それほど多くのダイアログ ボックスを目にしていないことに気付いたかもしれません。趣向を変えて GUI ハッキングでもできないでしょうか。もちろんできます。ただし、落とし穴がいくつかあります。ファイアウォールには、80 と 443 の 2 つのポートだけが開かれていることを思い出してください。Web サーバーのポート 443 では何もリスニングしていないため、操作を中断することなく、また正式な管理者に情報が漏れるリスクを負わずに、そのポートにリスナを確立することができます。ターミナル サービスを再バインドし、そのポートを使用すると、非常に目立ちます。(Remote Desktop Protocol を使用する) Windows ターミナル サービスはポート 3389 をリスニングします。データベース サーバーのポートスキャンから、3389 が実際に開いていることが明らかになります。 ソケットが開かれた状態で実行できるのは、ターミナル サービス クライアントを使用して Web サーバー接続を確立することだけです。 この通知は、指定した方法で受け取ることができます。この特別なトロイの木馬は、攻撃者のホスト上のポート 80 に対してソケットを開き、そこに通知を送信するだけです。通知は任意のポートまたはプロトコルについてのみ暗号化、エンコード、送信することができ、無数の方法で変更できます。たとえば、IRC チャット チャネルへの通知はかなり一般的です。この段階で、DMZ ドメインは陥落し、ドメイン コントローラを掌握しています。ドメイン コントローラは、いわば王国の鍵を管理しています。特に、ユーザー アカウント データベースが含まれていることを思い出してください。この新たな権限を活用するために、再び DC 接続を確立し、リモート シェルを取得します。リモート シェルを取得すると、図 11 に示すように、自分の現在の位置をより詳細に理解できます。このシステムはデュアルホーム化されているだけではなく、企業ネットワークと DMZ 上でもデュアルホーム化されています。つまり、2 つのネットワーク間でルーターとして機能しています。この事実を利用する前に、ドメイン コントローラ上のすべてのユーザー アカウントをダンプアウトします。これまでに、DC には約 15 のユーザー アカウントが存在することがわかっています。繰り返すのは時間の無駄なので、ともかくパスワード ハッシュをダンプアウトし、クラッキングの作業に移った方がよさそうです。管理者権限を保有しているため、この作業はとてもよく知られている PWDump ツールを実行するだけの簡単なものです (図 12 を参照してください)。既定では、Windows は LM 「ハッシュ」 (ハッシュとはまったく異なる) と Windows NT® ハッシュの 2 つの異なるパスワード表現を格納しています。この結果から、このシステムには LM ハッシュが格納されていることがわかります。LM ハッシュはクラッキングが非常に簡単なため、犯罪的ハッカーにとっては朗報です。この結果をお気に入りのパスワード クラッカーに提供することで、24 時間以内にこのシステム上のほとんどのパスワードをクラッキングできます。実際、ハイブリッド攻撃を用いると、1 分もかからずに 3 つのパスワードをクラッキングできました。実際の攻撃者は、さらに速くパスワードをクラッキングできるかもしれません。クラッキングの速度とストレージ容量はトレードオフの関係が成り立つため、ストレージ容量を犠牲にし、クラッキング時間を大きく短縮するツールも使用できます。パスワードは取得しましたが、これをどこで使用するかを詳細に検討する必要があります。まず、172.17.0/24 ネットワークでどのシステムが利用できるか確認するため、10.1.2/24 ネット上に存在するものを調べてみます。 これで、このネットワークは完全にハッキングされました。さらにハッキングを進め、どのような目的も遂行できますが、ここから何をするかは主に攻撃者が何を求めているかにかかっています。考えられる選択肢として、ネットワーク内のデータの掃除、機密情報の盗み出し、給与支払名簿への自身の追加、取引先など他のネットワークを攻撃するための同ネットワークの利用などが挙げられます。攻撃者は contoso.com ネットワーク全体に、完全に無制限にアクセスできます。ページのトップへまとめこの記事では、Windows ベースのネットワークをハッキングする方法を検証し、Windows ベースのネットワークの安全性は他のネットワークと変わらないことを指摘しました。この記事で使用した個々の攻撃は Windows 限定のものですが、このテクニックの一部を修正したり新しいツール セットを使用したりすることで、異なるプラットフォームで実行されるネットワークであっても、同様のハッキングが可能になると考えられます。問題はプラットフォームそのものではなく、運用方法です。どんなプラットフォームもセキュリティを確保できますが、構築や実装が慎重に行われていないと、どのようなネットワークであってもエクスプロイト攻撃が可能です。基本プラットフォームにかかわらず、実装を誤ると、必ず、劣悪な実装ができあがります。ネットワークからハッカーを締め出す方法ネットワークが完全にハッキングされてしまったら、システム管理者に残された選択肢は 3 つです。つまり、自身の履歴書を更新する、ハッカーがネットワークで良い仕事をしてくれることを望む、またはネットワークを空っぽにする、の中から選ぶことになります。攻撃に対処する措置が必要なことは言うまでもありません。まず、採用できる選択肢と、前提条件をいくつか検証し、ハッキングされたシステムのクリーンアップにおいて、それらが最適な措置ではない理由を考えます。侵入されたシステムに更新プログラムを適用して、システムをきれいな状態にすることはできません。更新プログラムは脆弱性を取り除くだけにすぎません。 攻撃者が一度システムに侵入してしまった場合、攻撃者がシステムに再度侵入する方法をいくつか確保していると想定するべきです。バックドアを削除して、侵入されたシステムをきれいな状態にすることはできません。 攻撃者が仕掛けたバック ドアをすべて検出したという保証はどこにもないのです。これ以上検出できないという事実は、探す場所を知らないことや、システムが細工されているため、現実と違うものが表示されていることを暗示している可能性があります。ある種の"脆弱性削除ツール" を使用して、侵入されたシステムをきれいな状態にすることはできません。 システムが Blaster によって攻撃されたとします。Microsoft も含め、多くのベンダが Blaster が原因の脆弱性を駆除するプログラムを公開しています。ウイルス駆除プログラムを実行して Blaster を駆除したシステムは、この先信用できるでしょうか。私は信用しません。そのシステムが、Blaster に対して耐久性がないのなら、他の多くの攻撃に対しても脆弱であるからです。このシステムが他の攻撃になら耐えられるという保証があるでしょうか。あるとは思いません。ウイルススキャナを使用して、侵入されたシステムをきれいな状態にすることはできません。 完全に侵入されたシステムは、真実を伝えているかどうか信用できません。ウイルス スキャナは、システムに嘘の情報を流されると打つ手がありません。ウイルス スキャナがシステムに特定のファイルがないかどうかを問い合わせた場合に、攻撃者が仕込んだツールがこの問い合わせに対して嘘の情報を流すことがあります。ただし、システムの攻撃者が 1 種類だけで、どのウイルスまたはワームかを特定でき、このウイルスにバック ドアがないことから、脆弱性をリモートから悪用されないとわかっている場合に、ウイルス スキャナを実行してシステムをきれいな状態にできます。たとえば、大多数の電子メール ワームは、ユーザーが添付ファイル開くと感染します。この場合は、システムの感染源がワームを含んだ添付ファイルであることを特定できます。ただし、ワームが利用する脆弱性にユーザーによる操作なしにリモートからアクセスできる場合、そのワームのみがその脆弱性を利用していると保証できなければ、他の何かも同じ脆弱性を利用している可能性があります。この場合は、システムにセキュリティ更新プログラムを適用するだけでは解決できません。既存のインストールにオペレーティングシステムを上書きで再インストールしても、侵入されたシステムをきれいな状態にすることはできません。 この場合も、攻撃者はインストーラに常駐するツールを難なく展開する可能性があります。このとき、インストーラは感染しているファイルを削除しないことがあります。また、攻撃者はオペレーティング システム以外のコンポーネントにバック ドアを仕掛けていることもあります。侵入されたシステムからコピーしたデータは、信用できません。 攻撃者がシステムに侵入すると、システムのすべてのデータは変更される可能性があります。汚染されたシステムからデータをコピーし、汚染されていないシステムにデータを取り込むと、最良のシナリオでも、信頼できない可能性があるデータを持つことになります。悪くすると、実際にデータに潜伏しているバック ドアをコピーすることもあります。侵入されたシステムに関するイベントログは信用できません。 攻撃者がシステムへの完全なアクセス権を得ると、そのシステムのイベント ログを修正して攻撃の痕跡を隠すことは簡単です。イベント ログから攻撃者がシステムに対して実行したイベントを把握しようとしても、攻撃者が読ませたい内容を読んでいる可能性があります。最後に行われたバックアップを信用できない場合があります。 最初の攻撃が起こった時期がいつだかわかりますか。イベント ログに書いてある内容は信頼できません。攻撃を受けた時期を特定できないので、最後に行われたバックアップはまったく役に立ちません。そのバックアップに、現在、システムに仕掛けられているバック ドアがすべて含まれている可能性があるからです。このような状態で、バックアップをどのように信用したらよいのでしょうか。侵入されたシステムをきれいな状態にする唯一の正しい方法は、システムをフラットにし、再構築することです。 システムが完全に攻撃者による侵入を許している場合、唯一の安全な方法は、システムをフラット化 (徹底的にきれいな状態に) し、最初から再構築することです。別の方法を考えるのなら、システムがハッキングされるのを前もって防ぐ方が、ずっと価値があると思いませんか。ハッキングされた後の処理の詳細については、「ザ デイ アフター : セキュリティ違反への初期対応」 (TechNet Magazine 本号、Kelly J. Cooper 著) を参照してください。Jesper Johansson は、Microsoft でセキュリティ プログラム マネージャとして仕事をしています。お客様が、より安全に Microsoft 製品を展開する方法について取り組んでいます。MIS で博士号を取得し、世界各国の会議でセキュリティについて講演を行っています。この章は、Jesper Johansson と Steve Riley が共著で執筆した近刊予定の書籍『Protecting Your Windows Network』 (英語) から抜粋したものです。2005 年に Addison Wesley 社から発行される予定です。この文章は、TechNet Magazine 2005 冬季号 英語版 を翻訳したものになります。ページのトップへ プロファイル (個人情報) の管理 |TechNet の情報を無料ニュースレターで入手© 2008 Microsoft Corporation. All rights reserved. お問い合せ先 |使用条件 |商標 |プライバシー |日本での個人情報の取り扱い |
[ 330] @IT:攻撃者側から見た入前の事前調査(下見) - Page1
[引用サイト] http://www.atmarkit.co.jp/fsecurity/rensai/iprotect01/iprotect01.html
|
サーバへの不正侵入、Webページの改ざん、さらには機密情報の漏えいなど、ここ数年、インターネット上で発生するセキュリティ侵害事件が後を絶たない。そのため最近では、企業や組織の多くは、そういったセキュリティ侵害を意識してからか、ファイアウォールやIDSなどを設置し、自サイトのセキュリティ強化に取り組んでいる。 しかし、そういった対処を行っているにもかかわらず、セキュリティ侵害事件が後を絶たないのはなぜだろうか? それは、最も根本的な問題である、実際に守るべき資産(情報)が格納されている、サーバ自身のセキュリティが確保されていないからだ、と筆者は考える。 なお、あらかじめ断っておくが、本連載は攻撃者を育成するためのものではない。サーバ管理者に攻撃者の手口(心理)を知ってもらうことで、より効果的なサーバの運用管理に役立ててもらうことを目的としている。 他社および他組織のWebサイトなどへのポートスキャンおよびデータの取得などの行為で得た情報を侵入などに悪用するか、または同じ目的を持つ第三者に提供した時点で違法となります。ご注意ください。 攻撃者が対象サーバに侵入を試みる際に、最初に何を行うだろうか? ほとんどの場合は、いきなり侵入を試みるためのexploitプログラムを実行すのではなく、まずはそのサーバにどういった脆弱性が含まれるかどうかの事前調査から行うだろう。攻撃者が行う事前調査は、一般的に以下のような流れで行うと思われる。 攻撃対象の各サーバのIPアドレスを得たならば、次に行うのがポートスキャンと呼ばれる行為だ。ポートスキャンは、主に対象ホスト上で待機(listen)しているポート番号の洗い出しのために実施される。これは、対象ホストを家に例えるなら、ポートはさしずめ玄関や窓といった出入口に相当する。つまりポートスキャンの行為そのものは、泥棒がその家への侵入を試みる際に、玄関や窓がどこにあるのかを調べるのと同じだと考えてよい。 手間をかけずにポートスキャンを行いたい場合、たいていはNmapなどのツールを使うだろう。しかし、実際の攻撃者、特に用心深い攻撃者ほどその手のツールはあまり使わないのではないかと思う。なぜならば、そういったツールによるポートスキャンは、標的サイトの管理者が気付く可能性が高くなるからだ。それは、攻撃対象サイト側で以下の設定を行っていた場合に顕著となる。 ファイアウォールで通過を許可していないポートに対して一度に大量のアクセスが行われた場合、アクセス拒否した記録としてログ(ログビューア)に明示的に残るため、管理者が認識し警戒する。 綱引きに蛇口当て?! ベイズフィルターを楽しく学ぶ (2008/3/5)現代のメールはスパムフィルターなしに語れません。荒廃したメール世界の救世主、ベイズフィルターを2回にわたり解説します |
[ 331] @IT:Snortでつくる不正侵入検知システム 第1回
[引用サイト] http://www.atmarkit.co.jp/fsecurity/rensai/snort01/snort01.html
|
本稿の内容を検証する場合は、必ず影響を及ぼさない限られた環境下で行って下さい。また、本稿を利用した行為による問題に関しましては、筆者および株式会社アットマーク・アイティは一切責任を負いかねます。ご了承ください。 「IDSとは一体何なのか」。そう疑問に思った方は少なくないであろう。簡単にいえば、「ネットワークを流れるパケットに対してあるパターンに合致しているか否かを判定し、合致している場合はあらかじめ定められた処理を行う」ものである。 「あらかじめ定められた処理」とは具体的にどのような処理なのかというと、大抵は「警告を発する」という処理が行われる。あくまで「警告を発する」だけであることに注意してほしい。その警告を受けてどう動くかは、ほかならぬIDS管理者次第なのである。 「IDSを導入するメリットは何なのであろうか」という疑問を持たれるかもしれない。最も大きなメリットは「異常に気付かせてくれる」という点である。IDSがなければ、何か異常が発生したとしてもそれに気付くことは容易ではない。IDSを導入した後にそれが発する警告を眺めてほしい。恐らくその量の多さに驚くことだろう(後ほど述べるが、これらすべてが不正アクセスであるとは限らない)。 次に浮かんでくる疑問は、「IDSがあればファイアウォールは不要なのではないか」、あるいは「ファイアウォールがあるからIDSは不要なのではないか」といったものだろう。答えは「否」である。そもそもIDSとファイアウォールはお互いを補完する関係にある。もちろん、それぞれを単体で運用しても有益であるが、両者を組み合わせればさらに有益なものとなる。理想的にはファイアウォールとIDSの両方を設置することが望ましいといえる。 一方IDSはというと、「有人改札」であるといえる。チケットを持っているか否かに加え、そのチケットの持ち主が例えば指名手配犯でないかどうかといったことをチェックする。もし指名手配犯であれば、警察に通報することだろう。このようにIDSは、あるパケットがバッファオーバーフローを引き起こす脆弱性を狙ったものであるかどうかを判断し、そうであればIDS管理者に警告する。 「誤検知があっても問題はないのではないか」と考える方がいらっしゃるかもしれないが、それは最初だけである。IDSが警告をログに記録する場合で考えてみよう。最初のうちは誤検知があってもそれを無視してログをチェックするであろう。しかし、次第に誤検知の相対量が増えてくると、正規の警告が誤検知に埋もれてしまう。そうすると正規の警告を見逃しやすくなってしまう。探すのも面倒になる。その結果どうなるか。IDSの警告を無視するようになる。正しく侵入を検知しているものもそうでないものも、すべて無視するようになる。 極端な例だと思われるかもしれないが、多かれ少なかれそのようになっていくものである。また、ログを保存するストレージの容量を無駄に消費することにつながったり、余計なリソースを消費したりする結果にもなる。 このことから導き出される結論はただ1つ。「誤検知は極力減らすべし」。では、どうやって誤検知を減らしていけばよいのか。答えは単純である。ネットワークに最適化すればよい。しかしながら、単純であることと簡単であることは等価ではない。より具体的な方法については、今後紹介していきたいと思う。 綱引きに蛇口当て?! ベイズフィルターを楽しく学ぶ (2008/3/5)現代のメールはスパムフィルターなしに語れません。荒廃したメール世界の救世主、ベイズフィルターを2回にわたり解説します |