chkrootkit
を使用してマシンをスキャンすると、常にそれらの1つについてメッセージが表示されます。
Checking `syslogd'... not tested
なぜこれがテストされていないのですか?これをテストする必要がありますか?そして、テストするのが良いことなら、どうやってテストすることができますか?
Description: Ubuntu 14.10
Release: 14.10
chkrootkit:
Installed: 0.49-5ubuntu1
Candidate: 0.49-5ubuntu1
Version table:
*** 0.49-5ubuntu1 0
500 http://gb.archive.ubuntu.com/ubuntu/ utopic/universe AMD64 Packages
100 /var/lib/dpkg/status
これは chkrootkit
がいくつかの一般的な場所でsyslogd
という名前の実行可能ファイルを探すために発生しますが、Ubuntuは rsyslog を使用するため、代わりにsyslogデーモンが呼び出されます- rsyslogd
。
マシンのsyslogデーモンがrsyslogd
ではなくsyslogd
と呼ばれていることを確認するには、locate syslogd
を実行します(もちろん、ルートキットがあれば間違った結果を引き起こす可能性があります)このコマンドでも報告されます):
ek@Io:~$ locate syslogd
/etc/apparmor.d/usr.sbin.rsyslogd
/etc/apparmor.d/disable/usr.sbin.rsyslogd
/etc/apparmor.d/local/usr.sbin.rsyslogd
/usr/sbin/rsyslogd
/usr/share/man/man8/rsyslogd.8.gz
これがchkrootkit
がsyslogデーモンをテストしていない理由であることを確認するために、-d
フラグ(debugモードでchkrootkit
を実行できます。 )出力のコピーをファイルに送信します:
Sudo chkrootkit -d |&tee ~/chkrootkit.log
次に、テキストエディターでログファイルを開き、Checking `syslogd'...
とnot tested
メッセージ間のデバッグ出力を調べます。私のマシンでは、これは次のようになります(あなたのマシンでは似ていると思います):
Checking `syslogd'... + chk_syslogd
+ STATUS=1
+ SYSLOG_I_L=/usr/lib/pt07|/dev/pty[pqrs]|/dev/hd[als][0-7]|/dev/ddtz1|/dev/ptyxx|/dev/Tux|syslogs\.h
+ loc syslogd syslogd /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /sbin /usr/sbin /lib /usr/lib /usr/libexec .
+ thing=syslogd
+ shift
+ dflt=syslogd
+ shift
+ :
+ test -f /usr/local/sbin/syslogd
+ :
+ test -f /usr/local/bin/syslogd
+ :
+ test -f /usr/sbin/syslogd
+ :
+ test -f /usr/bin/syslogd
+ :
+ test -f /sbin/syslogd
+ :
+ test -f /bin/syslogd
+ :
+ test -f /sbin/syslogd
+ :
+ test -f /usr/sbin/syslogd
+ :
+ test -f /lib/syslogd
+ :
+ test -f /usr/lib/syslogd
+ :
+ test -f /usr/libexec/syslogd
+ :
+ test -f ./syslogd
+ [ / = / ]
+ echo syslogd
+ exit 1
+ CMD=syslogd
+ [ ! -r syslogd ]
+ return 2
+ STATUS=2
+ [ = t ]
+ echo not tested
not tested
syslogd
これらの場所のいずれにも存在しない (またはまったくない)というファイルがあるため、テストするものは何もありません。
可能な部分的な回避策は、これらの場所の1つで実際のryslogd
実行可能ファイルへのシンボリックリンクを作成することです。 chkrootkit
がチェックする(またはチェックする必要がある)ことの詳細がわからないため、または特別なことがある場合は、これをpartialソリューションのみと見なしますrsyslogd
、を適切に検査するか、シンボリックリンクと最近作成されたファイルを検査するときに実際に適切に動作するかどうか。 chkrootkit
は、これを行うとsyslogd
のチェックに成功したことを報告しますが、
ek@Io:~$ Sudo ln -s /usr/sbin/rsyslogd /usr/local/sbin/syslogd
ek@Io:~$ Sudo chkrootkit | grep syslogd
Checking `syslogd'... not infected
/usr/local
のsbin
サブディレクトリはまだ存在していない可能性があり、その場合は作成できます。どちらにしても、使用後にsyslogd
シンボリックリンクを削除することをお勧めします。
いずれの場合も実際の解は asbodhi.zazensays -これはUbuntuのchkrootkit
パッケージに対するバグとして報告されるべきです。バグの報告方法は次のとおりです。
ubuntu-bug chkrootkit
を実行します。chkrootkit
の出力を文書化する情報を含めます。できればデバッグ出力を含む出力を示すログを添付することをお勧めします。 Sudo chkrootkit -d |& tee ~/chkrootkit.log
(上記を参照)を実行した場合は、作成したログファイルを添付できます。また、バグレポート自体のテキストで、最も重要な部分を再現することもできます。http://www.chkrootkit.org/README から:
「テストなし」:テストは実行されませんでした-これは次の状況で発生する可能性があります。
a)テストはOS固有です。
b)テストは利用できない外部プログラムに依存しています。
c)特定のコマンドラインオプションがいくつか指定されています。 (例:-r)。
特定のコマンドラインオプションを渡さなかったと仮定すると、これは何らかの形で「OS固有」であると推測します。
Ubuntuベースのディストリビューションに存在するsyslogdではなくsyslogdでチェックを行うことについて、chkrootkitの著者に書いた。
会話に関連する部分は次のとおりです。
- - をちょきちょきと切る - -
Ubuntuベースのディストリビューションのみの問題であることは理解していますが、rsyslogが最終的にターゲットになる可能性はありますか?
はい、すべてのLinuxバイナリが感染する可能性があります(rsyslogdが含まれています)が、それを確認するには、バイナリが感染していることを確認する必要があります。 chkrootkitが作成されてから20年後、rsyslogdが感染したことはありません。 - - をちょきちょきと切る - -
したがって、これはバグではありません。
乾杯。