Hi,
Here is the context, we would like to send alert when user do too
many authentification
We send mail at 3, 5 and 10 authentification failure in 30mn, in
this email we send the history of failed authentification, and all the
known IP for the user.
We got two input file, the first with the authentification failure
(FILE 1) and the second with the couple username / IP (FILE2)
We have two ways of authentification, so we don't need to log IP
which doesn't generate failure authentification after X minute.
Because we are using some strange stuff, they are no order in the
centralize log solution. We can have an entry in the FILE1 and after an
entry in FILE2 or begin with an entry in FILE2 and after an entry come
in FILE1 (I hope you understood me)
I give you what i have done with (partial) sample.
## here i log ip for user when we found a failed authentification
type=EventGroup
continue=TakeNext
ptype=regexp
context=USERIP_$13
pattern=ERROR,([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*)
desc=User $13 appear
action=write result/$13.ip %t USERIP_$13 ;
window=1800
## eventgroup to send mail when we have 3 failure in 30mn
type=EventGroup
continue=TakeNext
ptype=regexp
pattern=ERROR,([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*)
count=lcall %ret $13 -> ( sub { ++$ucounts3{$_[0]}; } ); \
write /logs/rsa-authManager/result/$13.login %t $8 ; \
add USER3_$13 $0
desc=User $13 appear
action=pipe 'envoiMail' /root/sendMail3.pl $13 ;
multact=no
end=lcall %ret $13 -> ( sub { return delete $ucounts3{$_[0]}; } ); \
delete USER3_$13
window=1800
thresh=3
## eventgroup to send mail when we have 5 failure in 30mn
type=EventGroup
continue=TakeNext
ptype=regexp
pattern=ERROR,([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*)
count=lcall %ret $13 -> ( sub { ++$ucounts5{$_[0]}; } ); \
add USER5_$13 $0
desc=User $13 appear
action=pipe 'envoiMail' /root/sendMail5.pl $13 ;
multact=no
end=lcall %ret $13 -> ( sub { return delete $ucounts5{$_[0]}; } ); \
delete USER5_$13
window=1800
thresh=5
## eventgroup to send mail when we have 10 failure in 30mn
type=EventGroup
continue=TakeNext
ptype=regexp
pattern=ERROR,([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*)
count=lcall %ret $13 -> ( sub { ++$ucounts10{$_[0]}; } ); \
add USER10_$13 $0
desc=User $13 appear
action=pipe 'envoiMail' /root/sendMail10.pl $13 ;
multact=no
end=lcall %ret $13 -> ( sub { return delete $ucounts10{$_[0]}; } ); \
delete USER10_$13
window=1800
thresh=10
## Here we log IP address when we already have a failure authentification.
type=SingleWithSuppress
continue=takenext
ptype=regexp
context=USER3_$2
pattern=.* logger: ([^\t]*)\t([^\t-]*)\t([^\t]*)\t([^\t]*)
desc=User $2 logged in from $1
action=write result/$2.ip %t $1 ;
window=600
## Here we log IP address when we don't find failure authentification.
type=SingleWithSuppress
continue=takenext
ptype=regexp
context=!USER3_$2
pattern=.* logger: ([^\t]*)\t([^\t-]*)\t([^\t]*)\t([^\t]*)
desc=User $2 logged in from $1
action=add USERIP_$2 $1;
window=600
Entry exemple :
FILE2 exemple :
Jun 17 16:03:58 XXXXXXXXXXXXXXX logger: IPOFTHEUSER UseRLoGiN
[17/Jun/2011:16:03:58 +0200] PARAM1
FILE1 exemple :
Jun 17 16:06:35 XXXXXXXXXXXXXX 2011-06-17
16:06:35,957,,XXXX,ERROR,RRRR,AAAA,,ZZZZ,TTTT,13001,SUCCESS,ZZZZ,TTTTT,AAAA,BBBB,CCCC,userlogin,XXX,XXX,,,,,,,,,,,,,,,,,,,,
There is no order in the event correlation. The two event are generated
on differents computer in a very short period, they can be redirected to
the centralized syslog server in any order.
After that, we would like to sendMail when in a short time period (1
hour ?), we saw a login with 3 differents ip address.
I hope i am clear and i give enough information,
Ludovic.
Le 17/06/2011 15:48, Risto Vaarandi a écrit :
> hi Ludovic,
> it is impossible to set case insensitive processing for context names.
> However, there are several workarounds. First, with a PerlFunc pattern
> it is possible to convert the user name to lower (or upper) case
> format, and return it for the match variable. Second, if you would
> like to correlate two events, it might be possible to do this with
> Pair or PairWithWindow rule. In this case, you can take advantage of
> case insensitive regular expression matching in the 'pattern2' field,
> with employing match variables inside the regexp.
> In order to advise one or the other method, can you describe your
> event correlation scenario more precisely? What are the input events
> and what exactly you would like to achieve?
> kind regards,
> risto
>
> 2011/6/17 Ludovic Hutin<[email protected]>:
>> Hi,
>>
>> I am back again, with another question, it's possible to set the
>> context param to be case insensitive ?
>> In my first log, username come in lowercase, and into other log
>> they come with some uppercase
>>
>> context=USER_$13 with $13 in the first logs is "toto" and in the
>> second log is "TOTO"
>>
>> The result is simple, impossible to correlate the 2 entry :-(
>>
>> Any idea ?
>>
>> Best regards,
>> Ludovic.
>>
>> ------------------------------------------------------------------------------
>> EditLive Enterprise is the world's most technically advanced content
>> authoring tool. Experience the power of Track Changes, Inline Image
>> Editing and ensure content is compliant with Accessibility Checking.
>> http://p.sf.net/sfu/ephox-dev2dev
>> _______________________________________________
>> Simple-evcorr-users mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/simple-evcorr-users
>>
------------------------------------------------------------------------------
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev
_______________________________________________
Simple-evcorr-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/simple-evcorr-users