パソコン鳥のブログ

アクセスカウンタ

zoom RSS chkrootkit のSuckit誤検知の修正(Ubuntu版)

<<   作成日時 : 2014/10/07 20:41   >>

ブログ気持玉 0 / トラックバック 0 / コメント 2

以前、rootkit検知ツール chkrootkit でルートキット Suckit を誤検出する件を修正しました。

chkrootkit のSuckit誤検知の修正 パソコン鳥のブログ/ウェブリブログ

ただし、CentOS での対応だったので、今回、Ubuntu での chkrootkit の修正を説明します。

修正コードは以下になります。
### Suckit
で始まる箇所を下記のように修正します。赤字の箇所が修正/追加箇所です。


2015/3/3:コメント欄で指摘いただいたミスを修正しました。
if ! [ "`md5sum ...の「!」を追加しました。


/usr/sbin/chkrootkit

### Suckit
if [ -f ${ROOTDIR}sbin/init ]; then
  if [ "${QUIET}" != "t" ];then printn "Searching for Suckit rootkit... "; fi
  if [ ${SYSTEM} != "HP-UX" ] && ( ${strings} ${ROOTDIR}sbin/init | ${egrep} 'HOME='   || \
          cat ${ROOTDIR}/proc/1/maps | ${egrep} "init." ) >/dev/null 2>&1
    then
      if ! [ "`md5sum ${ROOTDIR}sbin/init | cut -d ' ' -f 1`" = "`grep 'sbin/init$' /var/lib/dpkg/info/upstart.md5sums | cut -d ' ' -f 1`" ]
      then
          echo "Warning: ${ROOTDIR}sbin/init INFECTED"
      fi
  else
     if [ -d ${ROOTDIR}/dev/.golf ]; then
        echo "Warning: Suspect directory ${ROOTDIR}dev/.golf"
     else
        if [ "${QUIET}" != "t" ]; then echo "nothing found"; fi
     fi
  fi
fi



Ubuntu版 では次の2点を修正しています。

1つ目は、/sbin/init に文字列 'HOME' が現れないかのチェックで誤検出していた箇所の修正です。
CentOS では問題無かったのですが、Ubuntu では次の文字列が検出されて誤検出していました。

XDG_CACHE_HOME
XDG_CONFIG_HOME

そこで、次のように、'HOME=' と検出条件を厳しくして、誤検出を回避しています。

if [ ${SYSTEM} != "HP-UX" ] && ( ${strings} ${ROOTDIR}sbin/init | ${egrep} 'HOME=' || \


これは、下記での修正案を反映しました。

[Bug 454566] Re: False positive for SucKit

なお、現時点で Ubuntu の apt-get でインストールされる chkrootkit はバージョン 0.49 ですが、ここ で公開されている最新版の 0.50 では、これは既に反映されています。



2つ目は、「chkrootkit のSuckit誤検知の修正」での場合と同様、 upstartパッケージの更新で init が置き換わる度に誤検出していた件を修正しています。

init の改ざんチェックで、Ubuntu用にコードを下記のように修正しています。

2015/3/3:コメント欄で指摘いただいたミスを修正しました。
if ! [ "`md5sum ...の「!」を追加しました。


if ! [ "`md5sum ${ROOTDIR}sbin/init | cut -d ' ' -f 1`" = "`grep 'sbin/init$' /var/lib/dpkg/info/upstart.md5sums | cut -d ' ' -f 1`" ]


これで、Ubuntu でもルートキット Suckit を誤検出しないようになります。



参考


[Bug 454566] Re: False positive for SucKit
linux - Can dpkg verify files from an installed package? - Server Fault

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(2件)

内 容 ニックネーム/日時
この度、raspberry pi の設定で参考にさせていただきました。
そのうえで、気になることがあってコメントさせていただきました。
if [ "`md5sum ${ROOTDIR}sbin/init | cut -d ' ' -f 1`" = "`grep 'sbin/init$' /var/lib/dpkg/info/upstart.md5sums | cut -d ' ' -f 1`" ]
の箇所なのですが、[] の箇所で = を使われています。しかし、= では、MD5 が正しいときに warning を出してしまわないでしょうか。自分も MD5 を確かめて同じであることを確認し、改ざんがないことを確認したので、本来では
if ! [ 省略 ] とするべきなのではないでしょうか?
以上です。よろしくお願い致します。
echo
2015/03/03 02:19
仰る通り、if ! [ "`md5sum ...の「!」がありませんでしたので、修正しました。
確認した所、本記事の公開以降に sbin/init の更新は無かったので、幸いにも本件ミスによる影響は無いようです。
御指摘、大変ありがとうございました。
パソコン鳥
2015/03/03 20:32

コメントする help

ニックネーム
本 文
chkrootkit のSuckit誤検知の修正(Ubuntu版) パソコン鳥のブログ/BIGLOBEウェブリブログ
文字サイズ:       閉じる