Add an API for reporting security events, and a security event logging module.
authorRussell Bryant <russell@russellbryant.com>
Sat, 11 Jul 2009 19:15:03 +0000 (19:15 +0000)
committerRussell Bryant <russell@russellbryant.com>
Sat, 11 Jul 2009 19:15:03 +0000 (19:15 +0000)
commit4cf8a968fd37e4ab72052bf5549072abda81e1be
tree083f8af40de7b9c624b37fcc20d48f4c7da8ce94
parentc01286976af9db85c775ab7ec003c33664c5e95f
Add an API for reporting security events, and a security event logging module.

This commit introduces the security events API.  This API is to be used by
Asterisk components to report events that have security implications.
A simple example is when a connection is made but fails authentication.  These
events can be used by external tools manipulate firewall rules or something
similar after detecting unusual activity based on security events.

Inside of Asterisk, the events go through the ast_event API.  This means that
they have a binary encoding, and it is easy to write code to subscribe to these
events and do something with them.

One module is provided that is a subscriber to these events - res_security_log.
This module turns security events into a parseable text format and sends them
to the "security" logger level.  Using logger.conf, these log entries may be
sent to a file, or to syslog.

One service, AMI, has been fully updated for reporting security events.
AMI was chosen as it was a fairly straight forward service to convert.
The next target will be chan_sip.  That will be more complicated and will
be done as its own project as the next phase of security events work.

For more information on the security events framework, see the documentation
generated from doc/tex/.  "make asterisk.pdf"

Review: https://reviewboard.asterisk.org/r/273/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@206021 65c4cc65-6c06-0410-ace0-fbb531ad65f3
doc/tex/asterisk.tex
doc/tex/security-events.tex [new file with mode: 0644]
include/asterisk/event_defs.h
include/asterisk/security_events.h [new file with mode: 0644]
include/asterisk/security_events_defs.h [new file with mode: 0644]
main/event.c
main/manager.c
main/security_events.c [new file with mode: 0644]
res/res_security_log.c [new file with mode: 0644]
tests/test_ami_security_events.sh [new file with mode: 0755]
tests/test_security_events.c [new file with mode: 0644]