[asterisk-dev] GSoC: Implementing Networking Security Framework for DOS attacks

John Todd jtodd at digium.com
Tue Mar 24 14:37:40 CDT 2009


On Mar 24, 2009, at 9:25 AM, Smita wrote:

> Hello,
>
> I wanted to know if this idea is viable. Any help in refining the idea
> in the current context is highly appreciated!
>
> Store DoS related information within specfic nodes. This could include
> IPs or networks that are blacklisted, etc. When processing an incoming
> packet, the origin IP is compared to the data stored. If a match is
> found for the IP or the source network, the packet is discarded.
>
> Alternatively, these information nodes could contain Packets Per
> Second information for that IP/network. Any packet from this source
> that exceeds this count is dropped.
>
> Another variation could be the above concept being applied to session
> layer (SIP packets) rather than IP layer.
>
> What I refer to as nodes here, could be a data structure (e.g. like  
> Judy Nodes).
>
> References: http://astridevcon.pbwiki.com/Network-Security-Framework
>
> Please comment.
>
> Thanks,
> Smita



This has been suggested at least twice as a GSoC proposal, so I'll  
count this as a third (if anyone is counting other than me. :-)  Some  
have suggested that first, Asterisk needs to have a document that  
describes better how such a framework would be put in place.  As the  
author of the document you point to above, I'm in agreement - as it  
stands, it is far from complete and contains more concept than  
comprehensive design.  I'd be happy to see someone else pick it up and  
flesh it out a bit with the development process in mind.

In relevant news, there was a discussion yesterday via phone with JR  
Richardson, Eric Langheinrich, and myself (*) on the viability of  
using the Project Honeypot (http://www.projecthoneypot.org/) system as  
a centralized database for reporting "bad" events such that systems  
participating in the reporting system would be optionally able to  
extract data to create filters.  Honeypot.org doesn't have this focus  
at the moment (they're more for anti-spam) but Eric indicated that he  
would be very interested in helping make it contain the data that we  
might need to perform such a central role in attack reporting.

There are some potential very easy methods to implement as a first  
step, but they are fairly crude and probably don't easily translate to  
a widely-scalable system.  Imagine just an HTTPS wrapper around string- 
matched syslog events for outbound reporting, and rsync-based  
importation of partial iptables access lists, or perhaps sip.conf  
"permit=,deny=" lists.   I worry that these completely external  
methods may lose traction because of the moderate complexity of  
configuration, and the "non-default" nature of the protection.  I've  
learned from painful experience that 99% of the defaults in Asterisk  
are left in place, and almost nobody implements even basic security  
features unless (after a breach/at the point of a gun.)  The upside on  
the primitive syslog parsing method is that its fast to get in place,  
and requires no changes to Asterisk.

I do believe that a better security model needs to be developed for  
Asterisk on any network connection interfaces.  I also believe  
Asterisk should have robust attack reporting capabilities, and  
moderate attack-defense capabilities in each network element.  Having  
this built-in to standard versions of Asterisk would improve  
protection across the entire user base.

It could be argued that Asterisk has no place at all in defending  
against these attempts, and that is the job of a firewall or other  
external software and not the application.  Personally, I reject that  
particular delineation even though it may make sense from a "purist"  
perspective.  I think that applications should be secure entirely  
within themselves, and firewalls are the primary defense for weak  
applications with short-sighted developers.  Sorry if this raises  
hackles, but I see firewalls and VPN software as symptoms of  
underlying poor design at the app level.  While I advocate network- 
based protection, it should be a supplementary protection and warning  
layer and not the primary structure of defense.

Asterisk is installed on a huge number of platforms with varying  
capabilities of both the underlying system and of those that manage  
the platform.  Creating a filtering module that is embedded in  
Asterisk has the best chance of creating the most benefit for all  
users, and such a model does not meaningfully reduce the well-being of  
a system which chooses not to use it in favor of external protection  
systems.


So in summary: does anyone else think that at more integrated security  
framework would be worth the time of a GSoC coder? Does anyone else  
want to participate in the discussions with the Project Honeypot  
developers?  Send me or JR (jmr.richardson at gmail.com) mail.

(*: a few others were invited, but only we three ended up in the call)


JT

---
John Todd                       email:jtodd at digium.com
Digium, Inc. | Asterisk Open Source Community Director
445 Jan Davis Drive NW -  Huntsville AL 35806  -   USA
direct: +1-256-428-6083         http://www.digium.com/






More information about the asterisk-dev mailing list