On Tue, Nov 22, 2011 at 8:07 AM, Oliver Müller <[email protected]> wrote:
> Yes, in my case 100103 is triggered and 31151 is "disabled", but 100102 is 
> not triggered after that anymore.
> The problem that I see is, that I am trying to define all my customized rules 
> in local_rule.xml, so in case of an update I know which ones has been chanced 
> by myself.
>
> In order to define a rule before 31151, I have to put it in web_rules.xml, 
> which is not a good idea, I guess.
>

This is totally untested (and if you test it you should report back
;)), but you could add 31151 to local_rules.xml with the overwrite
option:

  <rule id="31151" level="10" frequency="10" timeframe="120" overwrite="yes">
    <if_matched_sid>31101</if_matched_sid>
    <same_source_ip />
    <description>Mutiple web server 400 error codes </description>
    <description>from same source ip.</description>
    <group>web_scan,recon,</group>
  </rule>

I'm not sure that will "fix" the order, but it's worth a shot.

>
>
> On 17.11.2011, at 21:33, dan (ddp) wrote:
>
>> On Mon, Nov 14, 2011 at 7:58 AM, Oliver <[email protected]> wrote:
>>> I need help configuring my agents.
>>>
>>> My rules are working fine for most of our server, but there are some
>>> exceptions to them. E.g. our development server cannot be handled as
>>> strict as the production server.
>>>
>>> To explain the problem I will choose some of the problematic default
>>> rules:
>>>
>>> <rule id="31101" level="5">
>>>   <if_sid>31100</if_sid>
>>>   <id>^4</id>
>>>   <description>Web server 400 error code.</description>
>>> </rule>
>>>
>>> AND
>>>
>>> <rule id="31151" level="10" frequency="10" timeframe="120">
>>>   <if_matched_sid>31101</if_matched_sid>
>>>   <same_source_ip />
>>>   <description>Mutiple web server 400 error codes </description>
>>>   <description>from same source ip.</description>
>>>   <group>web_scan,recon,</group>
>>> </rule>
>>>
>>> These rules basically work find. I get an email if someone is
>>> responsible for a 4xx error 12 times within 120 seconds. What I like
>>> to do now is, turn that rule OFF on a single server and override it
>>> with a weaker rule. So I did the following in the local_rule.xml:
>>>
>>>      <!-- we need to disable this rule first before overriding it --
>>>>
>>>      <rule id="100103" level="0">
>>>               <if_sid>31151</if_sid>
>>>               <hostname>my_server</hostname>
>>>       </rule>
>>>
>>
>> So on my_server alert 31151 is triggered which then triggers 100103,
>> and those log messages are discarded.
>>
>>>       <!-- WEAKEN standard rule on my_server -->
>>>       <rule id="100102" level="10" frequency="20" timeframe="120">
>>>               <hostname>my_server</hostname>
>>>               <if_matched_sid>31101</if_matched_sid>
>>>               <same_source_ip />
>>>               <description>Mutiple web server 400 error codes </
>>> description>
>>>               <description>from same source ip.</description>
>>>               <group>web_scan,recon,</group>
>>>       </rule>
>>>
>>
>> They never make it to this rule. You probably need to have this rule
>> in the set before 31151.
>>
>>> I would have though, that this has to work, but as long as the
>>> frequency in the last rule is higher then in rule 31151, the ossec-
>>> logtest does not work. After 12 occurrences it will just fire:
>>>
>>>
>>> 192.168.1.22 - user [11/Nov/2011:17:08:49 +0100] "OPTIONS /mypath HTTP/
>>> 1.1" 401 710 "-" "Microsoft-WebDAV-MiniRedir/6.1.7601"
>>>
>>>
>>> **Phase 1: Completed pre-decoding.
>>>      full event: '192.168.1.22 - user [11/Nov/2011:17:08:49 +0100]
>>> "OPTIONS /mypath HTTP/1.1" 401 710 "-" "Microsoft-WebDAV-MiniRedir/
>>> 6.1.7601"'
>>>      hostname: 'my_server'
>>>      program_name: '(null)'
>>>      log: '192.168.1.22 - user [11/Nov/2011:17:08:49 +0100]
>>> "OPTIONS /mypath HTTP/1.1" 401 710 "-" "Microsoft-WebDAV-MiniRedir/
>>> 6.1.7601"'
>>>
>>> **Phase 2: Completed decoding.
>>>      decoder: 'web-accesslog'
>>>      srcip: '192.168.1.22'
>>>      url: '/mypath'
>>>      id: '401'
>>>
>>> **Phase 3: Completed filtering (rules).
>>>      Rule id: '100103'
>>>      Level: '1'
>>>      Description: '(null)'
>>> **Alert to be generated.
>>>
>>>
>>> But at this point everything just repeats itself instead of of hitting
>>> my customized rule 100102. It never occur even after a hundred bad
>>> requests.
>>>
>>> Does someone has an explanation to this or even better a solution?
>>>
>>> thnx in advance!
>>>
>>>
>>>
>
>

Reply via email to