Help us understand the problem. What is going on with this article?

Linuxセキュリテイ対策 ホストの侵入検知(chkrootkit/rkhunter/maldetect)

はじめに

本記事はLinuxのセキュリティ対策として、ホストの侵入検知について記載しています。

ホストの侵入検知の目的は、ルートキットの存在やマルウェアを検知することです。

本記事では以下のツール(※)を扱います。

  • chkrootkit
  • rkhunter
  • maldetect

(※)バージョンについては本記事執筆時点の最新バージョンを使用

chkrootkit

chkrootkitはルートキットの存在を検知するためのツールです。
CentOSの標準リポジトリには、Ubuntuのようにchkrootkitのパッケージは含まれていません。

chkrootkitはchkrootkit.orgDownloadからダウンロードできます。
本記事ではCentOS 7を例にchkrootkitの導入手順について解説します。

なお、chkrootkitは以下のコマンドを使用します。既に改ざんされた後では意味がないため、導入時には考慮が必要です。また、chkrootkitはrootkitを検出しても自動的に対処する機能はないため、検出後は手動で対応する必要があります。

次のコマンドは、chkrootkitスクリプトによって使用されます。

awk、cut、echo、egrep、find、head、id、ls、netstat、ps、strings、sed、uname

chkrootkitの導入

  • 必要なパッケージのインストール
    # yum groups install -y "Development Tools"
    # yum install -y wget glibc-static

  • chkrootkitのダウンロード
    # wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz

  • 解凍
    # tar xzvf chkrootkit.tar.gz

  • make
    # cd chkrootkit-0.53
    # make sense

  • シンボリックリンク作成
    # cd ../; mv chkrootkit-0.53/ /usr/local/
    # ln -s /usr/local/chkrootkit-0.53/ /usr/local/chkrootkit

chkrootkitの実行

  • ルートキットの検出
    # cd /usr/local/chkrootkit
    # ./chkrootkit
  • ルートキットの検出(指定したディレクトリを対象に実行)
    # ./chkrootkit -r <ディレクトリ>

cronで設定することで定期的に検査を行うことができます。
以下は毎日3時に実行し、メールで通知します。

0 3 * * * (cd /usr/local/chkrootkit; ./chkrootkit 2>&1 | mail -s "chkrootkit output" root)

rkhunter

rkhunterもルートキットの存在を検知するためのツールです。
chkrootkitと同じくCentOSの標準リポジトリには含まれてはいないため、rkhuntersourceforge.netからダウンロードします。あるいはEPELリポジトリからインストールすることができます。

rkhunterの導入

  • rkhunterのダウンロード
    # wget https://sourceforge.net/projects/rkhunter/files/rkhunter/1.4.6/rkhunter-1.4.6.tar.gz
  • 解凍
    # tar xzvf rkhunter-1.4.6.tar.gz

  • rkhunterのインストール
    # cd rkhunter-1.4.6
    # ./installer.sh --install

EPELリポジトリからインストールする場合は、以下の手順でインストールできます。

  • epel-releaseのインストール
    # yum install -y epel-release
  • rkhunterのインストール
    # yum install rkhunter

rkhunterの実行

rkhunterの動作設定は/etc/rkhunter.confで設定し、デフォルトのデータベースディレクトリは/var/lib/rkhunter/dbになります。ルートキットの検出を実行すると、/var/log/rkhunter.logファイルにログが出力されます。

  • rkhunterのアップデート
    # rkhunter --update
  • コマンドの実行ファイルの状態を更新
    # rkhunter --propupd
  • ルートキットの検出(--checkでルートキットの検知を実行、-skip-keypressでEnterの入力を行わない、--report-warnings-onlyでコマンドの結果について警告のみ表示)
    # rkhunter --check --skip-keypress --report-warnings-only

maldetect(Linux Malware Detect)

maldetect(Linux Malware Detect)はGNU GPLv2のライセンスのもとリリースされテイル無料のマルウェア検知ツールです。公式ブログはR-FX NETWORKSを参照。

maldetectの特徴は以下になります。

  • マルウェア検知用のシグネチャ(※)の自動更新
  • 検出エンジンにオープンソースのアンチウイルスソフトウェアとしてClamAVを採用
  • 検知対象とするファイルシステムの情報をデータベース化し、検査した情報と比較して改ざんを検知する

(※)特定のマルウェア検体に共通するバイトシーケンスのこと

maldetectの導入

  • ダウンロード
    # wget http://www.rfxn.com/downloads/maldetect-current.tar.gz
  • 解凍
    # tar xzvf maldetect-current.tar.gz
  • インストール
    # cd maldetect-1.6.4/
    # ./install.sh

maldetectによってインストールされたcronjobは/etc/cron.daily/maldetに配備されます。定期的にスキャンおよびシグネチャのアップデートを行う様に設定されます。

maldetectの実行

maldetectの動作設定は何も指定しない場合、/usr/local/maldetect/conf.maldetにインストールされます。

  • アップデート
    # maldet --update
  • マルウェアのスキャン実行(指定したディレクトリを対象に実行)
    # maldet --scan-all <ディレクトリ>

おわりに

サーバを構築して運用する場合は、システムを管理する責任があります。

システム管理は知識の集合です。無理にお金をかけなくてもOSS等を利用することで、セキュリティを向上することはできます。

Brutus
DevOpsとAIの二刀流を目指す凡人。Python、RaspberryPi、Linux、Docker、k8s、セキュリティ、Oracle Cloud、Terraform、Ansible等について発信しています。登壇、執筆等あれば、Twitterよりメッセージお願いします。
https://brutus.ml/
gauss
株式会社GAUSSは、AIソフトウェアを組み込んだサーバの提供、AIサービス構築のコンサルティング、AIのエンジニア育成をセットにしてサービス提供を展開するスタートアップ企業です。
https://gauss-ai.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした