Online Book Reader

Home Category

Apache Security - Ivan Ristic [119]

By Root 2042 0
offer event correlation, but it does offer the throttle keyword (used in the previous example), which prevents too many actions from taking place.

Simple Event Correlator

Simple Event Correlator (SEC, available from http://www.estpak.ee/~risto/sec/) is the tool to use when you want to implement a really secure system. Do not let the word "simple" in the name fool you; SEC is a very powerful tool. Consequently, it can be a bit difficult to configure.

It works on the same principles as Swatch, but it keeps track of events and uses that information when evaluating future events. I will give a few examples of SEC to demonstrate its capabilities.

SEC is based around several types of rules, which are applied to events. The rule types and their meanings are:

Single

Match specified event and execute specified action.

SingleWithScript

Match specified event and call external script to decide whether to take action.

SingleWithSuppress

Match specified event, execute specified action, and ignore the same events during a given time period.

Pair

Match specified event and execute specified action, but ignore the following events of the same definition until some other specific event arrives. Execute another action when it does.

PairWithWindow

Match specified event, and wait for another specific event to arrive. Execute one action if that event arrives within a given period of time or execute another if it doesn't.

SingleWithThreshold

Count events of a specified type and execute specified action if a given threshold is exceeded.

SingleWith2Thresholds

Count events of a specified type and execute specified action if a given threshold is exceeded. Execute another action if the count falls below the threshold in the following specified time period.

Suppress

Suppress matching for a given event.

Calendar

Execute specified action at a given time.

Do not worry if this looks confusing. Read it a couple of times and it will start to make sense. I have prepared a couple of examples to put the rules above in the context of what we do here.

The following two rules cause SEC to wait for a nightly backup and alert the administrator if it does not happen:

# At 01:59 start waiting for the backup operation

# that takes place at 02:00 every night. The time is

# in a standard cron schedule format.

type = Calendar

time = 59 1 * * *

desc = WAITING FOR BACKUP

action = event %s

# This rule will be triggered by the previous rule

# it will wait for 31 minutes for the backup to

# arrive, and notify the administrator if it doesn't

type = PairWithWindow

ptype = SubStr

pattern = WAITING FOR BACKUP

desc = BACKUP FAILED

action = shellcmd notify.pl "%s"

ptype2 = SubStr

pattern2 = BACKUP COMPLETED

desc2 = BACKUP COMPLETED

action2 = none

window = 1860

The following rule counts the number of failed login attempts and notifies the administrator should the number of attempts become greater than six in the last hour. The shell script could also be used to disable login completely from that IP address.

type = SingleWithThreshold

ptype = RegExp

pattern = LOGIN FAILED, IP=([0-9.]+)

window = 3600

thresh = 6

desc = Login failed from IP: $1

action = shellcmd notify.pl "Too many login attempts from: $1"

SEC uses the description of the event to distinguish between series of events. Because I have included the IP address in the preceding description, the rule, in practice, monitors each IP address. Therefore, it may be a good idea to add another rule to watch the total number of failed login attempts during a time interval:

type = SingleWithThreshold

ptype = RegExp

pattern = LOGIN FAILED, IP=([0-9.]+)

window = 3600

thresh = 24

desc = Login failed (overall)

action = shellcmd notify.pl "Too many login attempts"

This rule would detect a distributed brute-force hacking attempt.

Web Server Status

In an ideal world, you would monitor your Apache installations via a Network Management System (NMS) as you would monitor other network devices and applications. However, Apache does not support

Return Main Page Previous Page Next Page

®Online Book Reader