ハニーポットによるウイルス捕獲から見えてくるもの:セキュリティ対策の「ある視点」(11)(2/4 ページ)
もうすぐ夏休みも終わり。そこで今回は夏休み特別企画、ネットでできる「ITセキュリティ版昆虫採集」で脅威の今を探ります。
nepenthesのインストールの前に
ロー・インタラクションのハニーポットとはいえ、この動作には当然土台となるOSが必要である。nepenthesは「Linux系」「BSD系」「Mac OS X」「Windows(要Cygwin)」とさまざまなOSで動作することが可能となっている。
今回は、Red Hatとも互換性の高い「CentOS」の5.2 FINALを用いる。OSのインストールについては、詳細な記事がインターネット上に存在するため今回は割愛させていただき、nepenthesに関する部分のみを取り上げさせていただく。
OSのインストール完了後、nepenthes本体のインストールに入る前に、各種モジュールの準備などが必要となる。nepenthesのREADMEによると、動作に必要とされる、モジュールは以下のとおりであるが、これ以外にtftpコマンドが必要となる。
【nepenthesの動作に必要とされるモジュール】
- libcurl
- libpcre
- libpcap
- libmagic(fileパッケージに含まれる)
- libadns (http://www.chiark.greenend.org.uk/~ian/adns/からソースを入手)
ほとんどのモジュールは、yum(Yellow Dog Updater Modified)コマンドを用いることでインストールできるが、インストールの前に現在のシステムに必要なモジュールがインストールされているかどうかの確認を行うことをお勧めする。インストールされているかどうかを確認するには、それぞれ以下のように実行するとよい(libadnsについては、yumではなく、ソースからインストールする必要があるためインストール方法は別途紹介する)。
# rpm -qa | grep tftp # rpm -qa | grep curl # rpm -qa | grep pcre # rpm -qa | grep pcap
上記コマンドそれぞれを実行後、何も結果が表示されない場合は、そのモジュールはインストールされていないということである。以下は、筆者が作成した環境でのインストール確認ログである。
# rpm -qa |grep tftp # rpm -qa |grep curl curl-7.15.5-2.el5 # rpm -qa |grep pcre pcre-6.6-1.1 # rpm -qa |grep pcap libpcap-0.9.4-11.el5 # rpm -qa | grep ^file- file-4.17-9.0.1.el5
上記結果から、「tftp」がシステム内にインストールされていないことが分かる。また、nepenthesの動作には、devel版も必要となるので「curl-devel」「pcre-devel」について、別途、インストールが必要である。
上記ログにおいて、インストールされていないと判明したものに対して、yumを用いてインストールを行う。インストールの際のコマンドは下記のように実行する。
yum install <ソフトウェア、モジュール名>
例えば、tftpの場合であれば下記のようなログになる。
yum install tftp
上記の要領でインストールされていなかったモジュールのインストールを行っていただきたい。
それでは、最後のモジュール、libadnsのインストールを行う。特に気を付ける点などはなく、下記のような方法でインストール可能だ。
# wget http://www.chiark.greenend.org.uk/~ian/adns/adns.tar.gz # tar zxvf adns.tar.gz # cd adns-1.2/ # ./configure # make # make install
インストールが完了したら、モジュールのロードを行うためのファイルとコマンドの実行が必要になる。まず、下記の内容を記述したファイル(ファイル名は任意)を/etc/ld.so.conf.d/以下に作成する。
/usr/local/lib
作成が完了したら、「ldconfig」を実行してモジュールのロードを行う。この作業は初回のみ必要となるので、OSの再起動などが発生しても、実行する必要はない。ファイルの作成からモジュールのロードは下記手順である(任意の名前のファイルは「nep_mod.conf」とした)。
# vi /etc/ld.so.conf.d/nep_mod.conf "/etc/ld.so.conf.d/nep_mod.conf" [New] 2L, 16C written # ldconfig
nepenthes本体のインストール準備の最後は、nepenthes起動用グループとユーザーの作成である。
# groupadd nepenthes # useradd -g nepenthes -d /dev/null -s /sbin/nologin nepenthes
nepenthesのインストール
それでは、nepenthes本体のインストールである。前述した環境が整っていれば以下の手順でスムーズにインストールが進むだろう。./configureの時点で何かのモジュールが存在しないといったエラーが返された場合は適宜yumなどを使用し、モジュールを追加していただきたい。
# wget http://nchc.dl.sourceforge.net/sourceforge/nepenthes/nepenthes-0.2.2.tar.gz # tar zxvf nepenthes-0.2.2.tar.gz # cd nepenthes-0.2.2 # ./configure # make # make install
上記コマンドでインストールが完了するとnepenthesは「/opt/nepenthes」以下に作成される。
これで起動の準備は整ったのだが、起動前に注意することがある。それは、nepenthesが脆弱性をエミュレートするに当たって、nepenthesが使用するポートが事前に使われているかどうかである。OSをインストールする際に、サーバ系ソフトウェア、例えばApacheなどをインストールしていて自動で起動していた場合はそちらが優先され、nepenthesがポート開放に失敗する。そのような場合は、オープンポートが競合するサービスを停止するか、ポート番号を変更すればよい。
nepenthes起動前(サーバ系ソフトウェアのSSHのみ)と起動後のnetstatの結果を掲載(LISTENステータスのみ)しておくので、事前の確認を行う参考としてほしい。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
nepenthesがかなりの数のポートをオープンしていることが分かるだろう。nepenthes起動前と後を比較するとtcp/22番とudp/68番以外はnepenthesが脆弱性をエミュレートするために開放しているポートであるということが分かる。
それでは、nepenthesを起動しよう。
Copyright © ITmedia, Inc. All Rights Reserved.