honeynet

Know Your Enemy:

Honeynets

Honeynetとは何か、その価値、どのように動作するか、関連事項、危険性など

Honeynet Project

http://www.honeynet.org

Last Modified: 12 November, 2003

Honeynet Projectとは、ツール、方策の学習、悪意あるハッカーコミュニティのとる行動理由について学習し、その学習成果を共有する為の有志の非営利組織である。Honeynetはこれらの情報を収集する為の第一のツールである。この論文の目的は、Honeynetを構築する為の技術的な青写真ではなく、Honeynetとは何か、その価値、動作の概要、そして危険性や問題点について議論することである。技術的な準備の詳細については、この論文Know Your Enemy: Gen2を最初に参照されることを強く勧める。我々はセキュリティコミュニティがここで議論されている概念を採用できること、そして自身の研究目的のみならず、これに基づいて開発・改良していくための手助けをしてくれることを望む。また我々は組織がこの技術についての多くの危険や問題についてしっかりと認識してくれることも望んでいる。

Honeynet Overview

もともと情報のセキュリティはずっと単に受け身なものに過ぎなかった。ファイヤーウォール、IDS(侵入検知システム)、暗号化といったこれら全てのメカニズムは各自のリソースを守る為に受け身に用いられていた。その戦略は可能な限りある組織を守り、その防御における失敗を発見し、そしてそれらの失敗に対して何らかの行動を起こすというものである。このアプローチの問題点はこれが純粋に守備的なもので、「敵」が主導権を握っているというものである。Honeynetはこの状況を変えようとしている。Honeynetの第一の目標は存在する脅威についての情報を集めることである(発見されうる新しいツール、定義されうる攻撃手法、攻撃者の動機)。サンプルはこの論文に収録されている。Know Your Enemy: Motives and Know Your Enemy: Automated Credit Card Fraud. この情報はよりよい理解と内部、外部の両方からの脅威に対する防御のために使うことが出来るだろう。

Honeynetとは一種のHoneyPotである. 特に、脅威に対する広範な情報を集めるよう設計された高対話型のHoneyPotである。「高対話型」とは、(Honeydのような偽のOSやサービスを提供する「低対話型」のものとは反対に)本物のシステム、アプリケーション、サービスを攻撃者に対して提供し、応対することを意味する。この広大なインタラクションを通して我々は外部あるいは内部からの組織に対する脅威の情報を得る。Honeynetは完全なシステムのネットワークであるという点で他の多くのHoneyPotとは異なっている。ひとつのコンピュータなどではなく、Honeynetは攻撃者に応対する為のシステムのネットワークなのである。これらのおとりのシステム(Honeynet内のHoneyPot)は望み通りの種類のシステム、サービスあるいは情報を提供することが出来る。Solarisサーバ上にOracleデータベースを構築するのも全く問題ない。Windows 2003でIISを使ったe-コマースサイトを作るのも簡単だ。VAXシステムからシスコのルーターに至るまで、何でもできる。この柔軟性こそがHoneynetに本当の力を与えている。

概念としては、Honeynetsはとても単純である。Honeynetsはひとつ以上のHoneyPotを持つネットワークである。HoneyPotが生産的なシステムではない為、Honeynet自身も一切の生産的な活動や権限を与えられたサービスを持たない。そのため、Honeynetとのいかなるインタラクションも悪意のある、あるいは許可されていない活動を意味している。どのようなHoneynetへの接続であっても、それらは調査か、スキャンか、あるいは攻撃である。Honeynetから外部への接続のほとんどは、誰かがシステムを危うくし、外部に対する活動を始めたことを意味する。このことはHoneynet内の活動を分析することを容易にする。ファイヤーウォールのログやIDSのセンサーのようなこれまでのセキュリティ技術では、何ギガバイトというデータや何千ものアラートをふるいにかけなければならなかった。これらの情報に目を通し、攻撃あるいは許可されていない活動を特定しようとする為には大変な時間と努力が必要である。いろいろな意味で、大量の情報の中から重大なインシデントを見つけ出そうとすることは、干し草の山の中の針を見つけるような見つかる当ての無いものを探す行為である。HoneynetがHoneyPotのネットワークである以上、全ての記録されている活動は許可されていないものであるか、悪意のあるものだと考えることが出来る。これらの「針」のどれが最も価値のあるものか優先順位を決めるのはHoneynetを運用するもの次第であり、そしてそれらをつぶさに分析するのである。

Honeynetは製品ではなく、ただコンピュータにソフトウェアをインストールするものではない。むしろ、Honeynetはひとつの構造の基本設計概念である。この構造 は高度に管理された、その内部で起こる全ての行動を管理・監視することのできるネットワークを作り出す。そして、この構造の内部に目的とするシステムを設置するのである。いろいろな意味で、Honeynetはガラスの金魚鉢のようなものである。その中で起きているすべてのものを見ることのできる環境を作り出している。金魚鉢の中に石や珊瑚や海藻を入れるかわりに、LinuxのDNSサーバやHPのプリンター、そしてJuniperのルーターをHoneynetの中に置いているのである。魚が鉢の中でこれらの要素と相互に反応するのと同じように、侵入者はHoneynetの中のシステムに対して反応する。 GenII Honeynetの図式をここで見ることができる。

Honeynetの最終的な目標のひとつは、配備である。ひとたびこの構造を設計した後に、いかにして悪意のある行動を引き寄せるべくHoneynetを配備するのか?もともとHoneynetは外部のネットワーク上に設けられた、一般的に用いられるデフォルトインストールされたOS以上の何ものでもなかった。このようなシステムは価値のあるものとは認識されず、誰もその存在に気づかない。結果として、このような種類のシステムは一般的なscript kiddy、あるいはワームやスクリプトのようなランダムスキャンによる自動的な攻撃しか引きつけない。Honeynet Projectによって構築されたHoneynetも大部分がこの部類のものである。今まで極めて僅かなHoneynetしかより高度な攻撃活動を捉えることができていない。どのようにHoneynetを構築するかによって捉えることのできる攻撃者(あるいは行動)の種類は決定される。攻撃者にとってHoneynetにより分かりやすい価値があればあるほど、より高度な行動の記録を得ることができるようになるだろう。これはいまだに簡単に解決されていない、極めて手腕の問われる問題である。

Architecture Requirements

既に述べてきたように、Honeynetはひとつの構造に過ぎない。うまくHoneynetを構築するには、正しくHoneynetの基本設計を配置しなければならない。この基本設計についての決まったルールというものは存在しない。詳細や技術については全てHoneynetを構築しようとするものに委ねられている。しかし、Honeynetについての問題は複雑である。もし正しく構築できなければ、攻撃行動の記録に失敗するだけでなく、より悪いことに自分自身や他人を多大な危険にさらすことになりかねない。Honeynetをうまく構築するために、二つの重要な要件がある。Data ControlとData Captureである。全てのHoneynetの構築において、この要件を満たす必要がある。Data ControlはHoneynetに攻撃者に気づかれずにその行動記録がどのように格納されるかを決定する。Data Captureは、これも同じく攻撃者に知られることなく攻撃者の行動を捉える。この二つにおいては、Data Controlの方がより重要である。Data Controlは常にData Captureよりも重要である。

Data Controlは格納作業であり、これはリスクを緩和するものである。リスクとは、攻撃者がHoneynetを利用して非Honeynetシステムを攻撃あるいは危害を加える可能性があることを意味している。ひとたび攻撃者がHoneynet内部に侵入しても、侵入者が偶然に、あるいは意図的に他の非Honeynetシステムに害を与えることの無いように、我々は可能な限り全ての試みをしたい。このことは思ったよりも困難である。まず、我々は攻撃者に対してある程度の行動の自由を与えなければならない。攻撃者に対してより多くの行動の自由を与えれば与えるほど、我々が彼らについてより多くを学ぶことができるようになるだろう。しかし、攻撃者により多くの自由を許せば許すほど、攻撃者がData Controlを巧みに逃れ、他の非Honeynetシステムに害をなすリスクが増大する。攻撃者に対してどの程度の自由を与えるかということと、どの程度活動を制限するかということのバランスは全ての組織が自分自身で決めなければならないものである。組織はそれぞれに異なる必要条件とリスクの基準を設けているからである。第二に、我々は攻撃者の行動を、彼らに知られることなく、コントロールしなければならない。Data Controlに対する最良のアプローチのひとつとして、ひとつのメカニズムのみに依存しないということが挙げられる。ひとつのメカニズムのみに頼るのではなく、外部へのコネクションの回数制限や、侵入を防ぐ為のゲートウェイ、帯域制限といったレイヤーを用いたData Controlの使用である。いくつかの異なるメカニズムを組み合わせることで、ひとつの失敗に対する、特に新たな、あるいは未知の攻撃に対する有効な防御となる。また、Data Controlはfail closedなやり方で運営しなければならない。つまり、もしメカニズム内に失敗があれば(プロセスが死んだり、ハードディスクの容量がいっぱいになったり、ルールの設定を誤ったりなど)、Honeynetは全ての外部への行動を許可するのではなく、遮断しなければならない。Data Controlについてひとつ考慮しなければならないのは、それがリスクを最小限に抑えることしかできないということである。Honeynetを用いた攻撃者が非Honeypotシステムに対して攻撃を加えることの可能性を完全に排除することはできない。Data Controlに対する異なる技術やアプローチはそれぞれ異なるリスクのレベルがあるが、どれも完全にリスクをなくすことはできない。リスクについては本論文で後に詳しく述べる。

Data CaptureはHoneynet内における侵入者の全ての行動を監視し記録するものである。こうして捕捉したデータが分析され、ブラックハットコミュニティの用いるツール、策略や動機を知るのである。問題はいかにして侵入者に気づかれることなく可能な限り多くのデータを集めることが出来るかである。Data Controlと同じように、Data Captureのために学ばなければならない主要な教訓のひとつが、レイヤーの使用である。複数の仕組みを活動の記録に用いることは重要である。複数のレイヤーの組み合わせは攻撃者の行動の記録のひとつひとつを繋ぎ合わせるのに役立つだけでなく、リスクを分散してひとつの失敗ですべてをダメにしてしまうことを未然に防いでくれる。ネットワークとホストの両方のレベルに置いて、捉えた情報のレイヤーが多ければ多いほど、より多くの知見を得ることができる。Data Captureにおける課題のひとつが、(IPSec、SSH、SSLなどの)暗号化されたチャネルで起こる大部分の攻撃者の活動である。Data Captureのメカニズムは暗号化を考えに入れておかなければならない。またData Controlと同様に、攻撃者が我々の記録の仕組みを見つける可能性を最小限に抑えなければならない。これにはいくつかの方法がある。まず、可能な限り少ない変更しかHoneyPotに施さないことである。より多くの変更を加えれば加えるほど、攻撃者に気づかれる可能性は高くなる。次に、捕捉したデータをローカルのHoneyPot自身に保管しないことである。攻撃者にこれらのデータが見つけられないだけでなく、データが改ざんされたり削除されたりすることもなくなる。そのようなものとして、記録されたデータが別個に保存されていれば、保証されたシステムとなる。しかし、Data Controlと同様にData Captureも完全に安全が保証されているものではない。攻撃者はData captureのメカニズムを検知する方法を特定し、それを迂回あるいは無効にする方法を編み出すかもしれない。これらの問題については本論文で後に詳説する。

三つめの要件としてData Collectionがあるが、これは複数のHoneynetが分散した環境にある組織にのみ必要となる。多くの組織はおそらく単独のHoneynetしか持っていないだろうから、必要となるのはData ControlとData Captureのみである。しかしながら、論理的にあるいは物理的に複数のHoneynetを持つ組織は、Honeynet Research Allianceのように世界中に遍在しており、捕捉した全てのデータを集めてそれを中枢に保管しなくてはならない。この方法によって、得られたデータは組み合わされうり、その価値は指数関数的に高まる。Figure 1を参照してどのようにHoneynet Research Allianceがこの仕組みを作り上げたか見てほしい。データ収集に必要な要件は、分散したHoneynetから捉えた全ての情報を中心に集める信頼できる手法を与えた。

Honeynet Projectはこれらの三つの要件を詳細に定義する文書を作成した。この文書の目的は、それぞれの組織の環境と目的にあわせたHoneynetを構築する柔軟さを与えることである。また一方、この文書ではHoneynetが効果的に、そして安全に構築できることを、異なるHoneynetが相互運用することを考慮した上で確約している。自身でHoneynetを構築しようと考えている組織は、是非これらの要件に従うことを勧める。以下の記事に目を通すことを勧める。

Honeynet Definitions, Requirements, and Standards

Risk

Honeynetは強力な道具になりうる。Honeynetは様々な脅威に対して広範囲に及ぶ情報を集めることを可能にしてくれる。これらの情報を得る為に、攻撃者に対してアクセスを -- 潜在的に特権のあるアクセスを -- 自分のシステムとアプリケーションに対して与えなければならない。その結果として、これに対して払わなければならない対価はリスクである。人によって開発されたどのようなテクノロジーも、また人によって破壊させられてしまう。リスクとは異なる組織への異なる物事を意味する。どんなリスクが自分に取って重要であるかを明確にしなければならない。また、組織はリスクに対してそれぞれ異なる基準を設けている。何が正しくて何が誤りなのかを一意に決定することはできない。それぞれの組織はこの決定を自分たちで行わなければならない。我々はこれらのリスクについて知ってもらうことの手助けしかできない。また、我々はHoneyPotの法律上の問題や、Honeynetの具体的な問題について何らかの対応をすることもできない。これらはここで論じていることを超えており、いかなる事例に対しても一般的な方法で対処することができるわけではないのである。もしHoneyPotの法的な問題に着いて関心があるのであれば、Honeypots: Are They Illegal?を参照することを勧める。また、我々はそれぞれの組織が、特にプライバシーや法的責任に関連した問題についての法的な助言を自分たちで求めることを勧める。リスクに関しては、以下の四つの一般的な領域に着いてこれから述べていく。損害、発見、障害、違法行為の四つである。

  • 損害とはHoneynetが他の非Honeynetシステムに対して攻撃、危害を加えることに用いられたときのことである。例えば、ある攻撃者がHoneynetに侵入し、彼らが従来見られなかった外部への攻撃を行って、標的を成功裡に破壊したとする。Data Controlはこのリスクを緩和するための第一の手段である。複数のレイヤーによるData Controlは攻撃者が害をなすことを困難にする為に導入される。しかし、Honeynetが他のシステムを攻撃あるいは害をなすことができないようにすることが保証された方法は無い。どんなメカニズムを導入しようとも、攻撃者はいつかはそれをすり抜けることができるだろう。組織はどの程度のリスクを受け入れるのかを決めなければならない。リスクを低くする組織には、侵入者の外部への行動を最小限にとどめなければならない(おそらくはゼロに)。高いリスクを覚悟している組織に着いては、侵入者の外部への行動をかなり許さなければならないだろう。
    • 次に、発見・検知についてのリスクがある。いったんHoneynetをそれと見破られてしまうと、その価値は劇的に減少してしまう。攻撃者はHoneynetの情報収集能力を排除しながらそのHoneynetを無視あるいは迂回できるだろう。おそらくはよりいっそう危険なことに、Honeynetであることが攻撃者に知られてしまうと、攻撃者は誤った、あるいは偽の情報をHoneynetに送り込み、データ分析を誤った方向に導こうとするだろう。例えば、Honeynetへのローカルなアクセスによって優れた攻撃者、あるいは適切な装備の施された攻撃者は、場合によってはHoneynetがある場所を特定し、HoneynetのData ControlとData Captureのメカニズムをも特定してしまうかもしれない。もし、単純に10回以降の外部へのコネクションをブロックしていた場合、攻撃者は20回の外部へのコネクションを試し、11回目のコネクションが連続して失敗することを観察するだろう。パケットがHoneynetを通っていくように構成を変更していた場合、攻撃者は単にパケットを既知のペイロードとともに彼らの管理下にあるシステムに送り、そのパケットが通過するときに変更を加えられているかどうかを見るだろう。もしトラフィックを「honey farm」に通していたら、付加された待ち時間がHoneynetの存在していることをばらしてしまうだろう。あるいは、攻撃者は単純にHoneyPotの持つローカルのData Captureの機能を検知する方法を用いるかもしれない。
  • 第三に、Honeynetの機能性を無効にされるリスクがある。これはData ControlとData Captureの両方に対する攻撃になりうる。攻撃者はHoneynetの正体を見抜こうとするだけでなく、そのHoneynetの管理者に知られることなくData ControlあるいはData Captureの機能を無効にしようとするかもしれない。例えば、ある攻撃者がHoneynet内のHoneyPotへのアクセスを得たとすると、そのHoneyPotにおけるData Captureの機能を無効にするだろう。そしてそのHoneyPotに偽の行動記録を与え、管理者にData Captureは機能しており行動を記録していると思わせるだろう。複数の階層によるData ControlとData Captureはこのリスクを軽減させることができる。
  • 四番目の、そして最後のリスクは、全ての残りのリスクを包含する違法行為である。攻撃者は自分の乗っ取ったHoneynetを利用して実質的にはHoneynetの外部の誰にも攻撃を加えることなく犯罪行為を行おうとする。ひとつの例は、攻撃者がHoneyPotをファイルのアップロードの場所として利用し、そして映画や音楽の違法コピーや盗難クレジットカードの番号、あるいは児童ポルノというような禁止された、あるいは違法なものを配信することがある。これらの攻撃者が自身の意図でHoneynetへ侵入してきたことを忘れてはいけない。もし発見されれば、この違法な活動は、少なくとも最初は、Honeynetを構築した者が責任を負うことになる。そしてこれらの違法な行動がHoneynetを構築した者によるところではないことを証明しなければならなくなるだろう。

これらの全ての四つの事例において、リスクを軽減するためにはHuman monitoringとCustomizationの二つの方法がある。Human monitoringとは、熟練したプロフェッショナルにリアルタイムでHoneynetを監視、分析させることである。攻撃者が成功裡にHoneyPotへのアクセスを得た(あるいは得ようとしている)と疑えるときにはいつでも(外部へのコネクション、頻繁に内部へのコネクションが起こる、内部へのトラフィックの増加、ファイルの転送、異常なシステムの振る舞いなど)、セキュリティのプロフェッショナルは全ての捕捉したデータを監視、分析すべきである。これは攻撃者がHoneynetを発見あるいは無効にすることと、他の非Honeynetシステムへ害をなそうとすることのリスクを防ぐ。自動化された方法にのみ頼るのかわりに人の手によってHoneynetの活動を分析することで、新たなあるいは未知の、Honeynetへの対抗手段を防ぐことの助けとすることができる、より悪いシナリオの場合、もし攻撃者が組織の定めたリスクの基準を超えた場合でも、いつでもHoneynetをシャットダウンすることができる。第二に、Customizationは重要である。本稿と全てのHoneynetテクノロジーはオープンソースであり公的に利用できる。このことはブラックハットコミュニティも含めて誰でもこの情報を手に入れることができることを意味する。首尾よくHoneynetを配備するには、自身のHoneynetをカスタマイズ、あるいは変更を加える必要がある。デフォルトのままの設定を用いてはいけない。現状のものに変更を加え、あるいはData Controlのために帯域の制限などの付加的な技術を用いるてHoneynetの環境をカスタマイズする必要がある。目的のない単純にデフォルトのままの設定ではHoneyPotであることがばれてしまう。理想的には、カスタマイズされランダムに設定され、複数の階層を持ち、何種類かのダイナミズムあるいは他の独創的な検知手段とHoneynetの対抗手段を持つHoneynetを利用できるようにすることは非常に困難である。Honeynetの技術はリスクを軽減させるのに役立つ。しかし、最良のツールはHoneynetの活動を監視し、分析し、そして対処する際に人間をの手を介することである。

Conclusion

Honeynetは高対話型のHoneyPotである。その主要な長所は脅威に対する広範な情報を集めることができる能力である。Honeynetは金魚鉢に似たアーキテクチャである。このアーキテクチャの中において、望み通りのシステムやアプリケーションを配備することができる。このアーキテクチャに必要な二つの重要な必要事項はData ControlとData Captureであり、Data Controlの方がより重要である。大変強力である一方、Honeynetには固有のリスクもある。それらのリスクを軽減する為のメカニズムを導入することもできるが、全てのリスクをなくすことができるわけではない。Honeynetの導入に興味があれば、Know Your Enemy: Gen2ここでさらに技術的な詳細を学習することができる。