この記事では、ルートキットハンターを使用してルートキットをインストールして見つける方法を学びます。他の脅威の中でも、現在ボットネットの作成に使用されているXOR.DDoSマルウェアのいくつかの亜種の兆候を見つけるために使用できます。大規模な分散型サービス拒否攻撃のためのLinuxシステム。

目次
- インストール
- ダウンロード
- パッチ-(オプション)
- インストール
- 構成
- テスト
- ログ
- ウィールリスト
- その他
- 実行
- フラグ
- cronスケジューリング
RKHunterをインストールする
Rkhunterをダウンロードし、cURLを試してこれを実行してください。
curl http://nbtelecom.dl.sourceforge.net/project/rkhunter/rkhunter/1.4.2/rkhunter-1.4.2.tar.gz -o rkhunter-1.4.2.tar.gz
次に、パッケージの内容を抽出します。
tar zxvf rkhunter-1.4.2.tar.gz
tarballディレクトリに入ります。
cd rkhunter-1.4.2
パッチ(オプション)
この手順では、rkhunterスクリプトとそのデータベースにパッチを適用して、XORDDoSLinuxマルウェアを探します。このパッチは、Akamai、Avast、MalwareMustDieによって作成されたレポートにあるポートとファイルに基づいています。
rkthunterディレクトリの下のfilesディレクトリに入力します。
cd files
パッチをインストールします yumを使用したユーティリティ。
yum install patch
パッチをダウンロードします。
curl http://sourceforge.net/p/rkhunter/patches/44/attachment/rkhunter.patch -o rkhunter.patch
または、ここからrkhunter.patchファイルの内容をコピーして貼り付けることもできます。
--- rkhunter 2014-03-12 17:54:55.000000000 -0300
+++ rkhunter.new 2015-10-02 17:01:25.040000000 -0300
@@ -7797,6 +7797,19 @@
#
+ # XOR.DDoS
+ XORDDOS_FILES="/lib/udev/udev
+ /lib/udev/debug
+ /etc/cron.hourly/cron.sh
+ /etc/cron.hourly/udev.sh
+ /lib/libgcc4.so
+ /var/run/udev.pid
+ /var/run/sftp.pid"
+ XORDDOS_DIRS=
+ XORDDOS_KSYMS=
+
+
+
# 55808 Variant A
W55808A_FILES="/tmp/.../r
/tmp/.../a"
@@ -11907,6 +11920,13 @@
return
fi
+ # XOR.DDoS Rootkit
+ SCAN_ROOTKIT="XOR.DDoS - Rootkit"
+ SCAN_FILES=${XORDDOS_FILES}
+ SCAN_DIRS=${XORDDOS_DIRS}
+ SCAN_KSYMS=${XORDDOS_KSYMS}
+ scanrootkit
+
# 55808 Trojan - Variant A
--- backdoorports.dat 2010-11-13 20:41:19.000000000 -0300
+++ backdoorports.dat.new 2015-10-02 17:10:24.086000000 -0300
@@ -12,6 +12,7 @@
2001:Scalper:UDP:
2006:CB Rootkit or w00tkit Rootkit SSH server:TCP:
2128:MRK:TCP:
+3502:Possible XOR.DDoS Botnet Malware:TCP:
6666:Possible rogue IRC bot:TCP:
6667:Possible rogue IRC bot:TCP:
6668:Possible rogue IRC bot:TCP:
rkhunterにパッチを適用します スクリプトとbackdoors.dat 次のコマンドでファイルを作成します。
patch < rkhunter.patch

パッチが完了したら、tarballルートディレクトリに戻ってインストールを続行します。
cd ..
ファイルのインストール
次のパラメータを使用してインストーラスクリプトを実行し、 / usr/local。にインストールします。
./installer.sh --install --layout /usr/local
-例を使用することもできます より多くのレイアウト情報と例を表示するためのフラグまたは-show -installの代わりにオプション レイアウトに何をインストールするかを示します。
再表示のインストール(推奨)
再表示 およびunhide-tcp ユーティリティは隠されたプロセスとポートを探しますが、必須ではありませんが、最も洗練されたルートキットはそれらの存在を隠すため、強くお勧めします。
まず、GNUコンパイラコレクションをインストールする必要があります。
yum install gcc
ストライプバイナリを作成するために必要なglibc-staticをインストールします。
yum install glibc-static
unhide-linuxをコンパイルします。
gcc -Wall -O2 --static -pthread unhide-linux*.c unhide-output.c -o unhide-linux
unhide-tcpをコンパイルします。
gcc -Wall -O2 --static unhide-tcp.c unhide-tcp-fast.c unhide-output.c -o unhide-tcp
/ usr / local / binの下にファイルをインストールし、再表示するためのシンボリックリンクを作成します。
cp unhide-linux unhide-tcp /usr/local/bin && cd /usr/local/bin/ && ln -s unhide-linux unhide && cd -
構成
このセクションでは、 rkhunter.confにあるオプションのいくつかを紹介します。 ファイルの場合、オプションはグループに分けられ、説明が簡略化されます。ファイルの実際の説明を読んでください。デフォルトのオプションで十分であるため無視するかどうかわからない場合は、ほとんどのオプションにコメントが付けられます。
構成ファイルに実際の変更を加える前に最初の実行を行うことをお勧めします。これにより、rkhunterの動作をよりよく理解し、構成ファイルにホワイトリストに登録する誤検知を特定できるようになります。
-cでrkhunterに電話するだけです または-チェック パラメータ。
rkhunter -c

上の画像でわかるように、egrepやifupなどのファイルがELFバイナリではなくスクリプトになるという警告が表示されますが、これらは正当なシステムファイルであり、構成ファイルのほとんどのオプションは、rkhunterにそのようなファイルを無視させる方法に関するものです。発生。
テスト
次のオプションENABLE_TESTSおよびDISABLE_TESTSは、作成する精巣のタイプを設定し、すべてを有効にしてから、不要な精巣を無効にします。誤検知が発生しやすいため、デフォルトで少なくともsuspscanを無効にすることをお勧めします。
ENABLE_TESTS=ALL
DISABLE_TESTS=suspscan
セキュアシェル
SSH接続でrootログインを有効にし、代わりにsu / sudoを使用することは決して良い考えではありません。そうでない場合は、これをyesに設定してください。
ALLOW_SSH_ROOT_USER=no
SSHプロトコルのバージョン1は安全でないことがわかっているため、これを1に設定すると、このプロトコルチェックを無視する必要があります
ALLOW_SSH_PROT_V1=0
ネットワークポート
format protocol:port
で許可されたネットワークポートPORT_WHITELIST
構文path_to_binary:protocol:port_number
を使用して一部のプログラムのホワイトリストを設定しますPORT_PATH_WHITELIST=/usr/sbin/squid:TCP:3801
アプリケーションバージョン
このオプションを使用すると、古いアプリケーションを実行できます。これは通常はお勧めできません。このリストに追加する前に、アプリケーションが安全であることを確認する必要があります。
APP_WHITELIST=openssl:0.9.7d gpg httpd:1.3.29
スニファー
ネットワークパケットをキャプチャするソフトウェアであるスニファの使用を許可します。
次の行のように、次のプロセスがネットワークをリッスンできるようにします。
ALLOWPROCLISTEN=/usr/sbin/snort-plain
これにより、リストされたネットワークインターフェイスが無差別モードでネットワークをリッスンできるようになります。
ALLOWPROMISCIF=eth0
ファイル
rkhunterによって行われたテストに対していくつかの例外を作成する必要があります。次のオプションを使用すると、ファイルやディレクトリなどの特定のオブジェクトへのテストをバイパスできます。
いくつかの隠しディレクトリを許可します。
ALLOWHIDDENDIR=/etc/.java
いくつかの隠しファイルを許可します。
ALLOWHIDDENFILE=/usr/share/man/man1/..1.gz
ALLOWHIDDENFILE=/usr/share/man/man5/.k5identity.5.gz
ALLOWHIDDENFILE=/usr/share/man/man5/.k5login.5.gz
このホワイトリストにより、一部のファイルをELFバイナリではなくスクリプトにすることができます。
SCRIPTWHITELIST=/usr/sbin/ifdown
SCRIPTWHITELIST=/usr/sbin/ifup
SCRIPTWHITELIST=/usr/bin/egrep
SCRIPTWHITELIST=/usr/bin/fgrep
SCRIPTWHITELIST=/usr/bin/ldd
ファイルを誰でも書き込み可能にする。
WRITEWHITELIST=/usr/bin/date
ファイルに属性の変更を許可します。
ATTRWHITELIST=/usr/bin/date
プロセスが削除されたファイルを照会できるようにします。
ALLOWPROCDELFILE=/sbin/cardmgr
ログオプション
これにより、ログに記録するファイルが定義されます。
LOGFILE=/var/log/rkhunter.log
rkhunterを実行するたびに同じファイルにログオンし続ける場合は、これを1に設定します。デフォルトは0で、ログファイルに「.old」が追加されて新しいファイルが作成されます。
APPEND_LOG=0
何か問題が発生したときにログファイルを保持したい場合は、次のオプションを1に設定します。
COPY_LOG_ON_ERROR=0
syslogを使用する場合は、コメントを解除してログ機能を設定します。
USE_SYSLOG=authpriv.warning
デフォルトでは、ホワイトリストに登録されたitensはテストでOKを報告します。ホワイトリストに登録されたアイテムを強調表示する場合は、このオプションを1に設定する必要があります。
WHITELISTED_IS_WHITE=0
オペレーティングシステムのオプション
CentOSを含むRedHatのようなシステムでは、パッケージマネージャーオプションをRPMに設定します。
PKGMGR=RPM
これを有効にすると、オペレーティングシステムがバージョン/リリースを変更したときに警告が報告されます。
WARN_ON_OS_CHANGE
オペレーティングシステムが変更されたときにデータベースを更新する必要がありますか?
UPDT_ON_OS_CHANGE
オペレーティングシステムのリリースファイルの場所は、CentOSで/ etc/redhat-releaseに設定してください。
OS_VERSION_FILE=/etc/redhat-release
ロック
複数のrkhunterを同時に実行している可能性がある場合は、このオプションを有効にして、ロックファイルの使用を有効にし、データベースの破損を回避する必要があります。
USE_LOCKING=0
ロックの使用を有効にした場合は、デッドロックを回避するためにタイムアウトを設定する必要があります。
LOCK_TIMEOUT
ロックされたセッションについて警告する必要がありますか?
SHOW_LOCK_MSGS
スタートアップとスーパーデーモン
inetd構成ファイルはどこにありますか。
INETD_CONF_PATH=/etc/inetd.conf
inetdを介して実行できるサービスはどれですか。
INETD_ALLOWED_SVC=/usr/sbin/rpc.metad /usr/sbin/rpc.metamhd
Xinetd構成ファイル。
XINETD_CONF_PATH=/etc/xinetd.conf
RCスタートアップファイルのパス。
STARTUP_PATHS=/etc/rc.d /etc/rc.local
アカウント
シャドウされたパスワードを含むファイル。
PASSWORD_FILE=/etc/shadow
root以外のユーザーアカウントを許可する UID0を取得します。
UID0_ACCOUNTS=toor rooty
パスワードなしのアカウントを許可します。
PWDLESS_ACCOUNTS=abc
Syslog
Syslog構成ファイル。
SYSLOG_CONFIG_FILE=/etc/syslog.conf
syslogがリモートでログに記録できるようにします。
ALLOW_SYSLOG_REMOTE_LOGGING=0
レポート
警告の数を報告しますか?
SHOW_SUMMARY_WARNINGS_NUMBER
テストの実行に必要な合計時間を表示しますか?
SHOW_SUMMARY_TIME
rkhunterが何かを見つけたときにメールレポートを受信するには、次のオプションを設定するとともに、メールアプリケーションを用意する必要があります。
メールの受信者。
[email protected]
メールの送信に使用したコマンド。
MAIL_CMD=mail -s "[rkhunter] Warnings found for ${HOST_NAME}"
rkhunterの実行
OK、この時点で、少なくとも1回はrkhunterを実行しているはずです。次に、rkhunterで使用できる他のフラグをいくつか見てください。
変更を確認する
構成が完了したら、 -Cを指定してrkhunterを実行します または--check-config ファイル内のエラーをチェックするためのフラグ。
rkhunter -C
プロパティの更新
これで、構成ファイルを変更するたびに、必ずファイルプロパティデータベースを更新してください。
rkhunter --propupd
警告のみを報告してください。
rkhunter --rwo
特定のテストのみを実行したい場合があります。この場合は、-テストのリストを試してください。 利用可能なテストの名前を取得してから、-enableを使用します フラグの後にテスト名が続きます。
rkhunter --list tests

次のオプションは、キーを押すプロンプトを無効にします。
rkhunter --sk
cronjobでrkhunterを実行するには、-cronjobを使用します フラグを立てて、実行可能ファイル /etc/cron.daily/rkhunter.shを作成します 毎日のチェックを行うために次の内容で
#!/bin/sh
( /usr/local/bin/rkhunter --versioncheck
/usr/local/bin/rkhunter --update
/usr/local/bin/rkhunter --cronjob -c ) >> /dev/null 2>&1
結論
これにより、rkhunterを使い始めることができ、セキュリティレイヤーがもう1つ提供されます。ただし、基本的なセキュリティ原則を無視したり、問題を軽減する代わりに、遭遇したすべての警告をホワイトリストに追加したりすると、これでは不十分です。また、rkhunterは、マシンがLinuxボットネットのメンバーになるのを防ぐのに役立ちますが、サイトがDDoSキャンペーンのターゲットになるのを防ぐことはできません。読んでくれてありがとう!