web-dev-qa-db-ja.com

なぜchkrootkitはsyslogdをテストしないのですか?

chkrootkitを使用してマシンをスキャンすると、常にそれらの1つについてメッセージが表示されます。

Checking `syslogd'...                                       not tested

なぜこれがテストされていないのですか?これをテストする必要がありますか?そして、テストするのが良いことなら、どうやってテストすることができますか?


OS情報:

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
4
user364819

これは 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/localsbinサブディレクトリはまだ存在していない可能性があり、その場合は作成できます。どちらにしても、使用後にsyslogdシンボリックリンクを削除することをお勧めします。

いずれの場合も実際の解asbodhi.zazensays -これはUbuntuのchkrootkitパッケージに対するバグとして報告されるべきです。バグの報告方法は次のとおりです。

  1. このガイドを読む 、まだお持ちでない場合。バグレポートの作成に関する優れたガイダンスを提供します。 ( この質問 は別の良いリソースです。)
  2. ubuntu-bug chkrootkitを実行します。
  3. Apportは、「問題情報の収集」と言います。完了したら、[送信]をクリックします。これにより、バグを報告できる新しいブラウザタブが開きます。
  4. 問題が発生したときに、chkrootkitの出力を文書化する情報を含めます。できればデバッグ出力を含む出力を示すログを添付することをお勧めします。 Sudo chkrootkit -d |& tee ~/chkrootkit.log(上記を参照)を実行した場合は、作成したログファイルを添付できます。また、バグレポート自体のテキストで、最も重要な部分を再現することもできます。
  5. バグレポートを提出してください。
  6. 必要に応じて、この回答にコメントする場合、バグレポートに移動し、自分も影響を受けていることを示します(システムでバグを再現できたため)。追加情報を提供できる場合もあります。たとえば、15.04ベータ版で発生したことを確認できます。ログを作成して添付する時間がなければ、できます。 (ただし、元のレポートでできる限り多くの関連情報を提供することをお勧めします。)
6
Eliah Kagan

http://www.chkrootkit.org/README から:

「テストなし」:テストは実行されませんでした-これは次の状況で発生する可能性があります。
a)テストはOS固有です。
b)テストは利用できない外部プログラムに依存しています。
c)特定のコマンドラインオプションがいくつか指定されています。 (例:-r)。

特定のコマンドラインオプションを渡さなかったと仮定すると、これは何らかの形で「OS固有」であると推測します。

buntuでバグレポートを提出する

2
Panther

Ubuntuベースのディストリビューションに存在するsyslogdではなくsyslogdでチェックを行うことについて、chkrootkitの著者に書いた。

会話に関連する部分は次のとおりです。

- - をちょきちょきと切る - -

Ubuntuベースのディストリビューションのみの問題であることは理解していますが、rsyslogが最終的にターゲットになる可能性はありますか?

はい、すべてのLinuxバイナリが感染する可能性があります(rsyslogdが含まれています)が、それを確認するには、バイナリが感染していることを確認する必要があります。 chkrootkitが作成されてから20年後、rsyslogdが感染したことはありません。 - - をちょきちょきと切る - -

したがって、これはバグではありません。

乾杯。

0
Altoid