Linuxルートキット検出ガイド:rkhunterとchkrootkitの使い方

Linuxサーバー向けルートキット検出ツールrkhunterとchkrootkitのインストール・実行方法を解説。定期的なスキャンの自動化や注意点も紹介。

rkhunterchkrootkitLinuxルートキットマルウェア検出2026/5/25

はじめに

ルートキットは、システムへの不正アクセスを隠蔽するマルウェアの一種です。Linuxサーバーを運用する上で、rkhunterやchkrootkitなどのツールを使った定期的な検出はセキュリティ対策の基本です。本記事では、それぞれの特徴、インストール方法、基本的な使い方、自動化の手順を解説します。

rkhunterとは

rkhunter(Rootkit Hunter)は、ルートキット、バックドア、ローカルエクスプロイトを検出するためのスキャンツールです。システムファイルのハッシュ値や権限、隠しファイル、ネットワークインターフェースの異常などをチェックします。

インストール

Debian/Ubuntu系

sudo apt update
sudo apt install rkhunter

RHEL/CentOS系

sudo yum install epel-release
sudo yum install rkhunter

Fedora

sudo dnf install rkhunter

初期設定とアップデート

インストール後、まずデータベースを更新します。

sudo rkhunter --update

必要に応じてプロパティデータベースを更新します。

sudo rkhunter --propupd

スキャンの実行

基本的なスキャンは以下のコマンドです。

sudo rkhunter --check

スキャン中に表示される警告は、必ずしもルートキットを意味するわけではありません。例えば、特定のファイルのハッシュ値が変更されている場合、正当なアップデートによるものかもしれません。結果をログファイル(/var/log/rkhunter.log)で確認し、疑わしい項目を精査します。

注意点

  • 誤検出:rkhunterは多くの警告を出します。特にシステム更新後はハッシュ値の不一致が発生するため、--propupdでデータベースを更新します。
  • root権限が必要:スキャンはrootで実行します。
  • chkrootkitとは

    chkrootkitは、既知のルートキットの痕跡をチェックするツールです。システムバイナリの改ざんや特定の文字列パターンを検出します。

    インストール

    Debian/Ubuntu系

    sudo apt update
    sudo apt install chkrootkit
    

    RHEL/CentOS系

    sudo yum install chkrootkit
    

    Fedora

    sudo dnf install chkrootkit
    

    スキャンの実行

    sudo chkrootkit
    

    デフォルトでは全てのテストを実行します。特定のテストのみ実行するには、-tオプションでテスト名を指定します。

    注意点

  • 誤検出:chkrootkitも誤検出が多く、特に「INFECTED」という表示が出ても注意が必要です。例えば、/sbin/initが改ざんされていないかチェックするテストで、一部のシステムでは正常でも警告が出ることがあります。
  • 実行中のプロセスへの影響:一部のテストはプロセスをスキャンするため、システムに負荷がかかる場合があります。
  • rkhunterとchkrootkitの比較

    項目rkhunterchkrootkit
    検出方法ハッシュ比較、権限チェック、パターンマッチパターンマッチ、バイナリ改ざんチェック
    データベース更新必要(--update)不要(バイナリ更新で対応)
    誤検出多い多い
    カスタマイズ設定ファイルで詳細調整可能オプションは限定的
    両方のツールを併用することで、検出率を高めることが推奨されます。

    自動化と定期実行

    cronを使って定期的にスキャンを実行し、結果をメールで通知する設定例です。

    <h1>rkhunterの自動実行(毎日午前3時)</h1>
    0 3 * * * /usr/bin/rkhunter --check --skip-keypress --report-warnings-only 2>&1 | mail -s "rkhunter report" admin@example.com
    
    <h1>chkrootkitの自動実行(毎日午前4時)</h1>
    0 4 * * * /usr/sbin/chkrootkit 2>&1 | mail -s "chkrootkit report" admin@example.com
    

    メール送信にはmailコマンドが必要です。インストールされていない場合は、sudo apt install mailutils(Debian系)などで導入します。

    結果の解釈と対応

    スキャン結果で「Warning」や「INFECTED」が表示された場合、以下の手順で対応します。

  • ログを詳細に確認:rkhunterは/var/log/rkhunter.log、chkrootkitは標準出力を確認。
  • 該当ファイルの調査:ファイルのタイムスタンプ、所有者、ハッシュ値を確認。
  • システム更新との関連:最近のアップデートでファイルが変更されていないか確認。
  • 専門家の判断:疑わしい場合はセキュリティ専門家に相談。
  • 注意点と限界

  • rkhunterとchkrootkitは既知のルートキットしか検出できません。未知のものには対応できません。
  • ルートキットがカーネルレベルで動作している場合、検出が困難です。
  • 定期的なシステムアップデートとセキュリティパッチの適用が重要です。

  • *この記事はArch Linux/btrfs/LUKs環境で実際に検証した内容を基にしています。セキュリティ設定は環境によって異なるため、本番環境への適用前に必ずテスト環境で検証してください。*

    まとめ

    rkhunterとchkrootkitは、Linuxサーバーのルートキット検出に有用なツールです。両方をインストールし、cronで定期実行することで、セキュリティ監視の自動化が可能です。ただし、誤検出が多いため、結果の解釈には注意が必要です。定期的なスキャンと合わせて、システムの堅牢化を心がけましょう。