SourceForge.JP: Open Source Software

Login Create Account Help [en][ja]
アレゲなら Slashdot
OSS なら SF マガジン
Search

Magazine 特集記事

最新Webブラウザに向けたWebサイト開発テクニック[10/31更新]

2008年になり、FirefoxやInternet Explorer、Operaといった主要Webブラウザが相次いでメジャーバージョンアップ...

SourceForge.JPを活用する[10/10更新]

本特集では、CVSやSVNといったバージョン管理システムの使い方や、SSH/SCPによるリモートログイン/ファイル転送...

オススメFirefox拡張 [9/5更新]

Firefoxの魅力の1つに、豊富な“拡張”の存在がある。素の状態のFirefoxはIE 7やOperaといった...

ソフトウェア開発に役立つOSSのツール群

ベンダーが体系的なツール群を提供しているプロプライエタリな開発環境とは対照的に、オープン...

Linuxベンチマーキング

ここでは、Linuxシステムの性能評価に使えるベンチマークツールの紹介記事と、ベンチマーク...

ディストリビューション・レビュー

バザールモデルで開発されているLinuxの世界では、日々、新たなディストリビューションが...

SourceForge.JP活用特集

CVS/Subversionを使ったバージョン管理(後編:SVNを使ったバージョン管理)

前編、中編ではバージョン管理の基本事項やCVSについて解説してきたが、後編となる本記事では、Subversionの利用について解説する。...

CVS/Subversionを使ったバージョン管理(中編:CVSを使ったバージョン管理)

前編ではバージョン管理システムの基本事項について解説を行ったが、中編となる本記事では、CVSを使ったバージョン管理について解説する。...

CVS/Subversionを使ったバージョン管理(前編:バージョン管理の基礎)

本記事では、まずバージョン管理システムの基本的な考え方と、用語について解説する。...

Windows用SCP/SFTPクライアント「WinSCP」で安全なファイル転送

ネットワーク経由で安全にファイルを転送する方法として、SCPやSFTPがある。最近では、セキュリティ向上のため...

あなたの武器庫にrootkit hunterはあるか?

2004年04月11日 08:55PM
  • スラッシュドットにタレコむ
  • あとで読む
あれは3年前のこと。ある朝起きた私は、Web/メールサーバが動かなくなっているのを発見した。今振り返ると、Linuxだから安全だと私は思い込んでいた。

現在はそんな慢心はない。使用中のアプリケーションには、常に最新のセキュリティパッチを当てるようにしている。必要のないサービスは実行しない。自分と荒野の間にはファイアウォールを置いた。まだルーチン化していない対策もあり、ルートキットの定期チェックなどもその1つだ。もっとも、これがルーチンに加わる日も近い。rootkit hunterという小粋なプロジェクトの存在を知ったからだ。

Michael Boelenがrootkit hunterを開発しようと思い立ったのは、FreeBSD 5.0をインストールしたばかりのマシンを偶然スキャンした日の翌日だった。マシンはインターネットに接続してなかったが、スキャンに使ったツールchkrootkitは「バックドア」バイナリの存在を報告した。chkrootkitはオープンソースツールなので、彼はソースコードを調べ、FreeBSDの新しいオプションに予約されたキーワードが誤検出の原因であることを突き止めた。そこで、彼はスクリプトを自分で書くことにした。chkrootkitが気に入らないからではなく(実際その後も使い続けている)chkrootkitが問題を指摘したときの「セカンド・オピニオン」が得られるツールが欲しかったからだ。

Boelenの「セカンド・オピニオン」スクリプトは、今では3,000行を超える長さになった。ほぼすべてのUnix系システムで実行できる。実行中のモジュールや開かれているポートを確認したり、MD5チェックサムを生成したり、機密性の高いディレクトリをスキャンし、特定のキットの存在を漏らす「悪い」文字列を検出したりする作業を、ほかのシェルやPerlスクリプトを呼び出して実行する。

彼のWebサイトによると、rkhunterは「ルートキット、バックドア、ローカルの悪用」をスキャンするために次の作業を行う。

- MD5ハッシュを比較する
- ルートキットで使われるデフォルトファイルを探す 
- 不正なアクセス権が与えられたバイナリファイルを探す
- LKMモジュールとKLDモジュールに疑わしい文字列を探す
- 隠しファイルを探す
- 標準テキストファイルとバイナリファイルをスキャンする(オプション機能)

インストールは非常に簡単。tarballをダウンロードして展開し(アクセス権を正しく設定するためにp引数を使う)、rkhunterディレクトリのrkhunterスクリプトをrootで実行するだけだ。スクリプトを実行するにはrootアクセス権が必要である。

インストールが済んだら、引数なしでコマンドrkhunterを入力し、ヘルプページを表示する。最初に実行したときは、引数-c(「すべてチェック」)と--createlogfileを使ったところ、スキャンに31秒かかった。マシン環境に設定を合わせ、セルフテストを何度か実行した後で、rkhunterは300を超えるテストを実行し、約50種類のルートキットの有無をスキャンした。ログには、次のものが検出されなかったことが記録されていた。55808 Trojan - Variant A、aPa Kit、Apache Worm、Ambient(ark)Rootkit、BeastKit、BOBKit、CiNIK Worm(Slapper.Bの亜種)、Danny-BoyのAbuse Kit、Devil RootKit、Dica、Dreams Rootkit、Duarawkz、Flea Linux Rootkit、FreeBSD Rootkit、Fuck`it Rootkit、GasKit、Heroin LKM、HjC Kit、ImperalsS-FBRK、Kitko、Knark、Li0n Worm、Lockit / LJK2、MRK、RootKit for SunOS / NSDAP、Optic Kit(Tux)、Oz Rootkit、Portacelo、R3dstorm Toolkit、Scalper Worm、Shutdown、SHV4、Sin Rootkit、Slapper、Sneakin Rootkit、Suckit Rootkit、SunOS Rootkit、Superkit、TBD(Telnet BackDoor)、TeLeKiT、T0rn Rootkit、Trojanit Kit、VcKit、Volc Rootkit、X-Org SunOS Rootkit、zaRwT.KiT Rootkit。

ルートキットのチェックが終わると、続いてマルウェア、無差別Ethernetアダプタ、隠しファイル、設定エラーのチェックが開始される。たとえば、DebianのデフォルトSSH設定("RootLoginPermitted = Y")にセキュリティリスクの懸念があることが指摘され、rootアクセス権が必要なときには一般ユーザのサインオンを使ってsuを利用するほうがよいというアドバイスがログファイルに残された。

前記の2つの引数だけを使ってrkhunterを実行すると、コマンドはインタラクティブモードになる。各スキャンを実行するには、Enterキーを押す必要がある。現在はcronジョブとしてセットアップしたので、キー操作の必要はなくなった。また、--skip-keypress引数を使って手動で実行してもインタラクティブモードを回避できる。いろいろと調整が必要だった初回のスキャンを別として、コマンドの実行には7秒ほどしかかからない。

改良予定

rkhunter改良のロードマップをBoelenから聞いた。次の予定がある。

-オプションの文字列スキャン機能を基本チェッカーに統合する
-知られていなかったルートキットを追加する
-現用のシステムバイナリ(MD5ハッシュ)のホワイトリストを改良する
-「悪い」バイナリ(バックドア、悪性CGIスクリプト、ミスユースIRCツール、その他)のブラックリストを拡充する
-脆弱性のある「悪い」バージョンをチェックするためのアプリケーション・バージョンチェックを追加する
-インストーラを改良し、ファイルパスを利用することによってアプリケーションをより動的にする
-前記のデータベースやアプリケーションおよびそのWebサイトにミラーをセットアップする
- チェッカーとRootkitHunter管理サーバをサーバ/クライアントの関係にする

Boelenがプロジェクトに着手したのは、わずか9か月ほど前のことだ。1.0.0のファイナルリリースは、メーリングリストやFreshmeatで告知される前に、公開直後の数日間で2,000回以上ダウンロードされた。

rkhunterに関する多数の意見や提案がBoelenに寄せられているが、本当に欲しいのは「これまで知られていなかった新しいルートキット、特に複数のハニーポットで存在が確認されたもの」に関する情報だそうだ。ユーザからの貢献が多いほど、このプロジェクトの成果も大きくなる。

メモ:この記事は、バージョン1.0.3に基づいて書かれた。最新のバージョン1.0.5は、2004年4月5日にリリースされている。

Joe-Barr(2004年4月7日(水))
2007年07月01日 07:05PM 更新