Hi,

first, I would use the same format for both messages. Two options:

   - Change log format in each device. 
      - Choose one:
         - 1Mar2016 15:17:09 redirect st4600fw01n1
         - Jan 27 09:41:01 127.0.0.1 Jan 27 9:32:28 st4600fw01n1
      - This part could be your parent decoder (using regular expressions)
   - Change the log received with rsyslog, for example, add a string:
      - *MyFirewall *1Mar2016 15:17:09 redirect st4600fw01n1
      - So, the parent decoder will be <prematch*>^**MyFirewall </prematch>*
   
The prematch of each sub-decoder (child decoder) could be the type of log, 
maybe "web_client_type" or "mail".

What firewall are you using? Version?.

Paste here more logs.

Regards,
Jesus Linares

On Thursday, March 24, 2016 at 9:47:28 PM UTC+1, Fredrik wrote:
>
> Hi Jesus,
>
>
> Got sidetracked with other projects, and finally getting back to my 
> questions about handling different messages from the same device 
> (firewall). Also, Jesus your suggestion about placing a prematch in the 
> suggested decoder in this thread - what would be a good prematch here? 
>
> Should I add an OR to the parent decoder to do the first match and then 
> use different subdecoders to extract the useful information from the other 
> type of message? How do you deal with these type of scenarios?
>
> Just so I got that part right. Giving two sections the same 
> <decoder-name>Checkpoint-alert</decoder> in essence means that it is one 
> decoder, but defined in two sections? 
>
>
> Please find the two message-types below for reference.
>
> MESSAGE1:
> 1Mar2016 15:17:09 redirect st4600fw01n1 <eth1 alert web_client_type: 
> Chrome; resource: http://
> sc1.checkpoint.com/za/images/threatwiki/pages/TestAntiBotBlade.html; src: 
> 192.168.1.15; dst: 23.8.4.103; proto: tcp; session_id: 
> {0x56d5a2de,0x4,0xc50d2e0a,0xc0000001}; Protection name: Check Point - 
> Testing Bot; malware_family: Check Point; Source OS: Windows; Confidence 
> Level: 5; severity: 2; malware_action: Communication with C&C site; 
> rule_uid: {9AF67731-0D35-4117-AF2B-9A47F9396D26}; Protection Type: URL 
> reputation; malware_rule_id: {000000CE-00A4-0046-9658-621EA5468654}; 
> protection_id: 00233CFEE; log_id: 2; proxy_src_ip: 192.168.1.15; scope: 
> 10.46.5.133; product: Anti Malware; service: http; s_port: 61834;
>
> MESSAGE2:
> Jan 27 09:41:01 127.0.0.1 Jan 27 9:32:28 st4600fw01n1 allow <eth1 mail src
> : 192.168.1.15; dst: 89.208.212.2; proto: tcp; appi_name: ******; app_desc
> : ******; app_id: 10063753; app_category: ******; matched_category: 
> ******; app_properties: ******; app_risk: ******; app_rule_id: ******; 
> app_rule_name: ******; web_client_type: Chrome; web_server_type: Microsoft
> -IIS; app_sig_id: 10063753:5; resource: http://www.aliveproxy.com/; 
> proxy_src_ip: 192.168.1.15 product: Application Control; service: http; 
> s_port: 58579; product_family: Network;
>
> On Monday, March 7, 2016 at 12:11:21 PM UTC+1, Jesus Linares wrote:
>
>> Hi Fredrik,
>>
>> The expression "\.+" matches for anything. Usually, it is not a good idea 
>> because is slow and maybe you capture something that you don't want. So, 
>> *when 
>> it is possible*, it is better to use something specific.
>>
>> When you have different decoders (different name) with the same parent, 
>> you should use a prematch. If you don't use prematch, it is fired the first 
>> rule. In the previous example:
>>
>> Log:
>> Mar  3 12:15:24 LinMV TestDecoder[1963]: TypeB field1: hi; value2: bye; 
>> value3: seeyou
>>
>> Without prematch:
>> **Phase 2: Completed decoding.
>>        decoder: 'TestDecoder'
>>        extra_data: 'seeyou'
>>
>> With prematch:
>> **Phase 2: Completed decoding.
>>        decoder: 'TestDecoder'
>>        id: 'bye;'
>>
>>
>> Without prematch, the decoder is TestDecoder-1, but it should be 
>> TestDecoder2 (because it has the string "field1". In my view, it is a good 
>> practice use prematch, but sometimes it is no necessary.
>>
>> Regarding your last question, could you use the same log format in your 
>> firewall and in the blade?. Paste here two logs of each one (firewall and 
>> blade) and your decoders, and we will take a look ;)
>>
>> Regards.
>> Jesus Linares
>>
>> On Friday, March 4, 2016 at 9:08:34 PM UTC+1, Fredrik wrote:
>>>
>>> Hi All,
>>>
>>>
>>> In this context and with your great response. What would you PROs 
>>> suggest I do when decoding another type of message from the same firewall - 
>>> but a different blade (i.e. module). Turns out that the messages look 
>>> somewhat different. This is a sample from the other module and it won't 
>>> match with the current decoder. Should I add an OR to the parent decoder to 
>>> do the first match and then use different subdecoders to extract the useful 
>>> information from the other type of message? How do you deal with these type 
>>> of scenarios?
>>>
>>> MESSAGE:
>>> 1Mar2016 15:17:09 redirect st4600fw01n1 <eth1 alert web_client_type: 
>>> Chrome; resource: http://
>>> sc1.checkpoint.com/za/images/threatwiki/pages/TestAntiBotBlade.html; 
>>> src: 192.168.1.15; dst: 23.8.4.103; proto: tcp; session_id: 
>>> {0x56d5a2de,0x4,0xc50d2e0a,0xc0000001}; Protection name: Check Point - 
>>> Testing Bot; malware_family: Check Point; Source OS: Windows; Confidence 
>>> Level: 5; severity: 2; malware_action: Communication with C&C site; 
>>> rule_uid: {9AF67731-0D35-4117-AF2B-9A47F9396D26}; Protection Type: URL 
>>> reputation; malware_rule_id: {000000CE-00A4-0046-9658-621EA5468654}; 
>>> protection_id: 00233CFEE; log_id: 2; proxy_src_ip: 192.168.1.15; scope: 
>>> 10.46.5.133; product: Anti Malware; service: http; s_port: 61834;
>>>
>>> Best regards,
>>> Fredrik 
>>>
>>>
>>> On Wednesday, March 2, 2016 at 11:03:08 AM UTC+1, Fredrik wrote:
>>>>
>>>> Hi All,
>>>>
>>>>
>>>> Came across this where I think I would be helped by extracting fields 
>>>> both in forward (from beginning) and in reverse (from end) order of 
>>>> messages!? Is this possible, if so, is it stupid given that there are 
>>>> other 
>>>> (better) ways to accomplish the same thing :/ ? 
>>>>
>>>> In addition to the fields my current decoder extracts, I was hoping to 
>>>> extract the resource (http://www.aliveproxy.com/) and also the product 
>>>> (Application Control;). My idea was to add a secondary statement, 
>>>> before the <order> statement, something in the lines of:
>>>> <regex>$/p\w+\s    [...] and work my way backward so that I can extract 
>>>> Application Control and resource . How would you suggest I do this?! 
>>>>
>>>> Thanks again for all the great help - hope my threads (and questions) 
>>>> can be useful for other newstarters outhere trying to get there feet off 
>>>> the ground ;) 
>>>>
>>>> Best regards,
>>>> Fredrik 
>>>>
>>>> LOG-MESSAGE
>>>>
>>>> *Jan 27 09:41:01 127.0.0.1 Jan 27 9:32:28 st4600fw01n1 *allow <eth1 
>>>> mail src: 192.168.1.15; dst: 89.208.212.2; proto: tcp; appi_name: 
>>>> ******; app_desc: ******; app_id: 10063753; app_category: ******; 
>>>> matched_category: ******; app_properties: ******; app_risk: ******; 
>>>> app_rule_id: ******; app_rule_name: ******; web_client_type: Chrome; 
>>>> web_server_type: Microsoft-IIS; app_sig_id: 10063753:5; resource: http:
>>>> //www.aliveproxy.com/; proxy_src_ip: 192.168.1.15 product: Application 
>>>> Control; service: http; s_port: 58579; product_family: Network;
>>>>
>>>> MY CURRENT DECODER
>>>>
>>>> <decoder name="Checkpoint">
>>>>   <prematch>^\w+ \d+ \d+:\d+:\d+ st4600fw01n\d</prematch>
>>>>   <type>firewall</type>
>>>> </decoder>
>>>>
>>>> <decoder name="Checkpoint-alert">
>>>>   <parent>Checkpoint</parent>
>>>>   <regex offset="after_parent">(\w+) \p\w+ \w+ 
>>>> src:\s(\d+.\d+.\d+.\d+);\sdst:\s(\d+.\d+.\d+.\d+)</regex>
>>>>   <order>action,srcip,dstip</order>
>>>> </decoder>
>>>>
>>>> LOGTEST OUTPUT
>>>>
>>>>
>>>> **Phase 1: Completed pre-decoding.
>>>>        full event: 'Jan 27 09:41:01 127.0.0.1 Jan 27 9:32:28 
>>>> st4600fw01n1 allow <eth1 mail src: 192.168.1.15 dst: 89.208.212.2; proto: 
>>>> tcp; appi_name: ******; app_desc: ******; app_id: 10063753; app_category: 
>>>> ******; matched_category: ******; app_properties: ******; app_risk: 
>>>> ******; 
>>>> app_rule_id: ******; app_rule_name: ******; web_client_type: Chrome; 
>>>> web_server_type: Microsoft-IIS; app_sig_id: 10063753:5; resource: 
>>>> http://www.aliveproxy.com/; proxy_src_ip: 192.168.1.15; product: 
>>>> Application Control; service: http; s_port: 58579; product_family: 
>>>> Network;'
>>>>        hostname: '127.0.0.1'
>>>>        program_name: '(null)'
>>>>        log: 'Jan 27 9:32:28 st4600fw01n1 allow <eth1 mail src: 
>>>> 192.168.1.15; dst: 89.208.212.2; proto: tcp; appi_name: ******; app_desc: 
>>>> ******; app_id: 10063753; app_category: ******; matched_category: ******; 
>>>> app_properties: ******; app_risk: ******; app_rule_id: ******; 
>>>> app_rule_name: ******; web_client_type: Chrome; web_server_type: 
>>>> Microsoft-IIS; app_sig_id: 10063753:5; resource: 
>>>> http://www.aliveproxy.com/; proxy_src_ip: 192.168.1.15; product: 
>>>> Application Control; service: http; s_port: 58579; product_family: 
>>>> Network;'
>>>>
>>>> **Phase 2: Completed decoding.
>>>>        decoder: 'Checkpoint'
>>>>        action: 'allow'
>>>>        srcip: '192.168.1.15'
>>>>        dstip: '89.208.212.2'
>>>>
>>>> **Phase 3: Completed filtering (rules).
>>>>        Rule id: '4100'
>>>>        Level: '0'
>>>>        Description: 'Firewall rules grouped.'
>>>>
>>>>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"ossec-list" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to