Linux環境におけるClamAVとRkhunterを用いたセキュリティスキャン構築ガイド

ClamAV のセットアップと運用

パッケージ導入と定義データベースの初期化

ディストリビューションに対応するパッケージマネージャーを用いて ClamAV を導入します。導入直後にウイルス定義ファイルを最新状態に同期させる必要があります。

$ sudo pacman -S clamav
$ sudo freshclam --verbose

定義ファイルは通常 /var/lib/clamav/ ディレクトリ配下に daily.cvdmain.cvdbytecode.cvd として格納されます。

バックグラウンドサービスの構成

定義ファイルの自動更新とスキャンデーモンの連携を有効化します。初回サービス起動前に必ずデータベースの更新を完了させてください。

$ sudo systemctl enable --now clamav-freshclam.service
$ sudo systemctl enable --now clamd@scan.service

EICAR テストファイルによる動作検証

無害なテストシグネファイルをローカルに保存し、スキャンエンジンが正しく反応するか確認します。

$ wget -q -O /tmp/antivirus_test.txt https://secure.eicar.org/eicar.com.txt
$ clamscan /tmp/antivirus_test.txt

出力結果に Win.Test.EICAR_HDB-1 FOUND が含まれていれば、エンジンと定義ファイルの連携は正常に動作しています。

スキャン実行と高度なオプション

対象ディレクトリや個別ファイル単位でのスキャンが可能です。大規模な環境や圧縮アーカイブを扱う場合は、サイズ制限と除外パスを適切に設定します。

# 単一ファイルの検査
$ clamscan /opt/data/suspicious_file.bin

# 再帰的検索、感染ファイルのみ表示、結果をファイルに記録
$ clamscan -r -i --log=/var/log/clamav_scan.log /home/user/documents

# システム全体スキャン(仮想ファイルシステムを除外)
$ sudo clamscan -r -i --exclude-dir='^/proc|^/sys|^/dev|^/run' / -l /var/log/system_scan.log

# 大容量ファイル対応(単一ファイルおよびコンテナの最大読み取り量を2000MBに設定)
$ clamscan -r --max-filesize=2000M --max-scansize=2000M /data/archive

--remove オプションを使用すると感染ファイルを直接削除できますが、重要なデータが誤って消去されるリスクがあるため、代わりに --move=/quarantine_dir を指定して隔離領域へ移動させる運用が推奨されます。

主要コマンドフラグ一覧

オプション説明
-v, --verbose詳細なスキャン情報を出力
-i, --infected感染が確認されたファイルのみを表示
-o, --suppress-ok-resultsクリーンなファイルの出力を省略
-r, --recursiveサブディレクトリを再帰的に検索
-l, --log=FILEスキャン結果を指定ファイルに記録
-f, --file-list=FILEファイルパス一覧を読み込んでバッチスキャン
--exclude-dir=REGEX正規表現に一致するディレクトリを除外
--max-filesize=#nスキャン対象とするファイルの最大サイズ
--max-scansize=#nアーカイブ内など、コンテナごとの最大読み取り量
--detect-puaPotentially Unwanted Applications (PUA) を検知
--scan-archiveサポート形式の圧縮ファイルを展開して検査

Rkhunter によるルートキット検知

導入とプロパティデータベースの初期化

ファイルの整合性チェックを行うため、初回実行時はシステムのファイルハッシュ値を記録します。

$ sudo pacman -S rkhunter
$ sudo rkhunter --propupd

システムチェックと設定検証

以下のコマンドでシステムのセキュリティ状態を診断します。出力されるサマリーには、検出された疑わしいファイルやルートキットの兆候が含まれます。

$ sudo rkhunter -c --skip-keypress

設定ファイルの構文や整合性を事前に確認する場合は以下を実行します。

$ sudo rkhunter --configcheck

誤検知の抑制と設定ファイル

主要設定ファイルは /etc/rkhunter.conf です。デフォルトでは、スクリプトラッパーやパッケージマネージャーの変更により正当なファイルが警告対象となる場合があります。これらを抑止するため、ホワイトリストを活用します。

# 正当なスクリプト/バイナリをホワイトリストに追加
SCRIPTWHITELIST=/usr/bin/egrep
SCRIPTWHITELIST=/usr/bin/fgrep
SCRIPTWHITELIST=/usr/bin/ldd

# SSH設定の検証を緩和する場合
ALLOW_SSH_ROOT_USER=no

スキャンログは通常 /var/log/rkhunter.log に保存されます。アラート通知が必要な場合は MAIL-ON-WARNING 設定を構成します。

主要コマンドフラグ一覧

オプション説明
-c, --checkローカルシステムのセキュリティチェックを実行
-C, --configcheck設定ファイルの検証のみ実施
--propupd [path]ファイルプロパティデータベースを更新
--sk, --skip-keypress各テスト終了時のキー入力待ちを省略
-q, --quiet静かなモード(標準出力を抑制)
--rwo, --report-warnings-only警告メッセージのみを出力
-l, --logfile [file]ログ出力先を指定
--enable/disable [test]特定のテスト項目を有効化/無効化
--hash [algorithm]ファイルハッシュ計算に使用するアルゴリズムを指定(MD5/SHA256等)
--updateデータファイルの更新を確認

参考リソース

  • ClamAV 公式ドキュメント: https://docs.clamav.net/
  • Rkhunter プロジェクトサイト: http://rkhunter.sourceforge.net/
  • Arch Linux Wiki: ClamAV / Rkhunter

タグ: clamav rkhunter linux-security virus-scanning rootkit-detection

7月31日 06:18 投稿