せっかくウイルスの捕獲を行うのに、そのウイルスが何であるかを分からないままでは、面白みがない。ここからは、捕獲したウイルスが何であるかのチェックを行う、つまり、アンチウイルスソフトを導入する方法を紹介する。
ここまで、すべて無料で構築できる仕組みを紹介してきたので、ここでも無料で利用できるアンチウイルスソフト「Clam AntiVirus」(以下、ClamAV)を紹介する。
このソフトウェアも非常に素直にインストールできる。まず、nepenthes同様、ClamAVも動作用のグループとユーザーを作成する。
# groupadd clamav # useradd -g clamav -d /dev/null -s /sbin/nologin clamav
今回のインストールはソース版を用いる。
# wget http://freshmeat.net/redir/clamav/29355/url_tgz/clamav-0.93.3.tar.gz
【注】
clamav-0.93.3.tar.gzは記事執筆時点の最新版である。
ソース版をダウンロードできたら下記のように実行するとインストールできるだろう。
# tar zxvf clamav-0.93.3.tar.gz # cd clamav-0.93.3 # ./configure --prefix=/usr/local/clamav # make # make install
早速、ウイルススキャンといきたいところだが、皆さんが毎日のようにお世話になっているアンチウイルスと同様、ClamAVも定義ファイル、パターンファイルに当たる「VirusDB」というデータベースを利用してウイルスを検出しているため、そのアップデートを行う必要がある。/usr/local/etc/freshclam.conf、および/usr/local/etc/clamd.confをエディタで開き、下記のように記述されている個所の先頭に「#」を加え、コメント行とし、保存する。
Example
↓
#Example
保存ができたら、下記のようにコマンドを実行して、VirusDBのアップデートを行う。
# freshclam ClamAV update process started at Fri Jul 25 00:50:09 2008 SECURITY WARNING: NO SUPPORT FOR DIGITAL SIGNATURES : (以下略) :
【注】
freshclam実行時に下記のようなエラーが出る場合がある。
freshclam: error while loading shared libraries: libclamav.so.4: cannot open shared object file: No such file or directory
上記のようなエラーが返された場合は、モジュールの再ロードを行う必要があるため「ldconfig」コマンドを実行すれば、解決されるだろう。
さあ、これで準備が整った。下図は、実際にnepenthesで捕獲したウイルスをClamAVでスキャンした結果画面である。いろいろなウイルスが検出されていることが分かる。
上図の結果の中に「OK」となっているファイルが1つあるが、このファイルはClamAVのスキャン結果としてはウイルスであると認められなかったファイルである。ただし、あくまで「OK」というのは、ClamAVの結果であるため、完全に無害なファイルであるということが確認されたという意味ではない。
この「OK」と検出されたファイルをインターネット上に公開されているウイルススキャンサービス「VirusTotal」でスキャンを行ってみよう。
【注】
「VirusTotal」とは複数のウイルス対策ソフトベンダ(執筆時現在34社分)のスキャンエンジンを利用して、ユーザーから提供されたファイルをスキャンし、その結果を知ることのできるサービスである。
先ほどのClamAVのスキャン結果で「OK」という結果が出たファイルを「VirusTotal」でスキャンした結果は以下のとおりである。
34社中、22社のスキャンエンジンがウイルスとして認められるものであるという結果が出た。
誤って解釈してほしくないのだが、これは、ウイルス対策製品、今回でいえばClamAVの評価をしているのではない。ウイルス対策ソフトも「人の造りしもの」である。これは、すべてのセキュリティ製品、飛躍したいい方をすれば、世の中のすべての製品にいえるのではないだろうかと筆者は思っている。「人の造りしもの」に100%というものはないのではないだろうか。
ウイルス対策製品を現実世界のワクチンに例えて考えてみてほしい。ワクチンは基本的に、世界のどこかでウイルスが発見され、検体を手に入れてから解析が行われ開発に至る。つまり、守る側の立場は、ほぼ例外なく後手に回ってしまうということである。その点を踏まえて、ウイルス対策ソフトはさまざまなテクノロジーにより、できる限り後手に回らず先手で対策を行えるよう進化をしているが、やはり、100%と呼ぶには程遠いのが現状である。
ここで、学ぶべきことは、「人の造りしもの」の1つであるウイルス対策ソフトも完ぺきではないという事実を知り、受け止め、セキュリティ対策というものは完ぺきなブロックをするものではなく、ふるいにかけるものであるということではないだろうかと筆者は考える。そのふるいの精度を上げ、どのように脅威から身を守っていくかということは「人の造りしもの」を使う人たちのコーディネートにかかっているのだろう。
また、システムだけではなく、人の知識、そこから生まれる判断もコーディネートをするうえでの1つの要素となることはいうまでもない。
さて、夏休みの自由研究はどうだっただろうか。
今回は、ウイルスの捕獲を行う、仕組みの解説のみを行ったが、これは最低限の内容であると理解していただきたい。ハニーポットは、敵を知るために存在するものである。今回のnepenthesでいえば、ウイルスを捕獲することが本来の目的ではないといっても過言ではない。これを使って、
など、さまざまなリアルな情報を得るためのものである。
nepenthesを構築し、インターネットに公開しただけで得られる情報は、短い期間で頭打ちとなるだろう。しかし、今回紹介した仕組みを拡張することで、得られる情報を何倍にも増やすことは可能である。例えば、IDS(Intrusion Detection System)でnepenthesに届くパケットを監視し、統計を出すことで、また違った事実が見えてくるだろう。
この仕組みの拡張次第で、皆さんの夏休みの自由研究にもオリジナリティが出てくることだろう。今回、紹介できなかったことについては、また、別の機会に紹介できればと思う。
今回の記事で、ハニーポットに興味を持ち、そこから得られる情報の重要性を理解していただき、守る側の視点というものに磨きをかけていただけば幸いである。
辻 伸弘(つじ のぶひろ)
セキュリティエンジニアとして、主にペネトレーション検査などに従事している。
民間企業、官公庁問わず多くの検査実績を持つ。
自宅では、趣味としてのハニーポットの運用、IDSによる監視などを行っている。
Copyright © ITmedia, Inc. All Rights Reserved.