ossecの覚書

 
tiutiu.net/ computer/application/ossec/
2008/5/26
本家

www.ossec.net

概要

ルートキットの検索, システムファイルの変更の通知

インストール

解凍して, できたディレクトリに行き, ./install.shを実行 すればよい。

gccが必要。

$ su
# yum install gcc
# wget http://www.ossec.net/files/ossec-hids-1.5.tar.gz
# zcat ossec-hids-1.5.tar.gz | tar -xvf -
# cd ossec-hids-1.5
# ./install.sh
(以下, 質問が続く。最初の質問でjpと答えると日本語でできる。)
# /var/ossec/bin/ossec-control start
DNSキャッシュポイズニング攻撃?への対応
現象

下記のようなログ(/var/log/messages)が1分に10行前後残される。

Feb  1 14:07:10 dns named[20747]: client 65.23.129.220#24071: view external: query (cache) './NS/IN' denied
Feb  1 14:07:15 dns named[20747]: client 71.6.131.81#24437: view external: query (cache) './NS/IN' denied

今回の環境

Fedora core 10, bind9(DNSキャッシュポイズニング対応済みバージョン)

ossecの作業ディレクトリは/var/ossec。

対応

まず, 下記内容の/var/ossec/rules/local-named-rules.xmlを作成

<group name="named,syslog,">

  <rule id="101201" level="5">
    <decoded_as>named</decoded_as>
    <match>view external: query . IN NS </match>
    <description>recursive root query; possible forged attacher</description>
  </rule>

  <rule id="101202" level="10">
    <if_matched_sid>101201</if_matched_sid>
    <same_source_ip />
    <description>Multiple recursive root queries</description>
  </rule>

  <rule id="101203" level="5">
    <decoded_as>named</decoded_as>
    <match>view external: query (cache) './NS/IN' denied</match>
    <description>recursive root query(cache); possible forged attacher</description>
  </rule>

  <rule id="101204" level="10">
    <if_matched_sid>101203</if_matched_sid>
    <same_source_ip />
    <description>Multiple recursive root queries(cache)</description>
  </rule>
</group>

id=101201と101202は不要かも知れない。

次に/var/ossec/etc/ossec.confを編集する。まず, syslog_rules.xmlの前にlocal-named-rules.xmlをincludeする。 前後の行は次の通り

 <rules>
    <include>rules_config.xml</include>
    ...
    <include>telnetd_rules.xml</include>
    <include>local_named_rules.xml</include>
    <include>syslog_rules.xml</include>
    ...

syslog_rulesでdeniedを含むログに反応するため, 念のため syslog_rulesより前に書いたが, 前に書くことが必要かどうかは 定かではない。

次に, 事態が発生した場合の設定を/var/ossec/etc/ossec.confに 書く。ここでは, 87000秒アクセスを拒否することにする。

  <active-response>
    <!-- This response is going to execute the host-deny
       - command for every event that fires a rule with
       - level (severity) >= 10.
       - The IP is going to be blocked for  600 seconds.
      -->
    <command>host-deny</command>
    <location>local</location>
    <level>10</level>
    <timeout>87000</timeout>
  </active-response>

  <active-response>
    <!-- Firewall Drop response. Block the IP for
       - 87000 seconds on the firewall (iptables,
       - ipfilter, etc).
      -->
    <command>firewall-drop</command>
    <location>local</location>
    <level>10</level>
    <timeout>87000</timeout>
  </active-response>

念のため, 規定のlevel6の場合より前に書いた。

再起動して, 現象で述べたログが発生し, かつ同じIPアドレスから 何度もくれば, 1日強接続を拒否してくれるはずである。

注意

タイトルに?がついているのは, このログが本当に DNSキャッシュポイズニング攻撃のものかどうか わからないため。


Google