<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-7">
<META content="MSHTML 6.00.2800.1126" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV>----- Original Message -----<BR>From: "Chris Green" <<A 
href="mailto:cmg@...402...">cmg@...402...</A>><BR>To: "John 
Papapanos" <<A 
href="mailto:jpa3nos@...1264...">jpa3nos@...1264...</A>><BR>Cc: <<A 
href="mailto:Snort-devel@lists.sourceforge.net">Snort-devel@...1954...orge.net</A>><BR>Sent: 
Wednesday, April 23, 2003 12:52 AM<BR>Subject: Re: [Snort-devel] icmpspoof 
preprocessor for snort<BR><BR><BR>> Just a few things for general 
advice:<BR>><BR>> 1) When using globals, unless it truely is global, use 
the 'static'<BR>> keyword to keep it file local.  I know the templates 
need<BR>> updating... :)<BR><BR>Couldn't agree more, my code needs a lot of 
fixing.<BR><BR>> 2) It seems that you are using global arguments to pass 
values between<BR>>    functions when you could have them as 
local. If you converted them,<BR>>    you could make your code 
even smaller by collapsing the _DN and _SN<BR>>    
code.<BR><BR>The _DN and _SN functions are mostly the same but DN and SN structs 
are<BR>different,<BR>using different pointers and other fields.So i needed to 
write a slightly<BR>different code to<BR>implement each one. (Hope I undertood 
what you meant)<BR><BR>> 3) Have you thought about implementing this as a 
call back for<BR>>    spp_conversation in much the same way 
portscan2 is done?<BR><BR>No i havent thought of that. When i started writing 
this preproc the<BR>portscan2 wasnt there.<BR>I'll look into it. Do you think it 
is a better solution?<BR><BR>> 4) Is there any consideration for an attacker 
generating lots of<BR>> spoofed packets?  In the 2 minutes I've spent 
looking, it doesn't seem<BR>> any memory protection mechanims are in place ( 
like a fixed-size ring<BR>> buffer )<BR><BR>Very good point. Its on the top 
of my TO DO list.<BR>The only protection mechanism for this is that i check my 
lists before i<BR>make any new<BR>insertion or before i search them to find a 
matching Request. If the nodes<BR>inside the list have<BR>a time field less than 
than the threshold time, then these nodes are<BR>deleted. A problem could 
exist<BR>if the attacker sends too many packets within the Timeout 
limit.(default 3<BR>secs)<BR><BR>> 5) To detect spoofed packets, perhaps you 
should allow one mac address<BR>>    to be assigned "internal 
side" and one mac address to be "external<BR>>    side" and 
then alert when you see traffic from one side to another.<BR><BR>If i'm getting 
it right this would detect only spoofed packets passing<BR>through snort.<BR>In 
this preproc if someone outside the protected net sends a spoofed Request<BR>to 
another outside<BR>host spoofing the address of an inside host, then the 
Reply(not spoofed)<BR>that will be sent to the protected net will<BR>pass 
through Snort and will generate an alert because no Request was stored<BR>in my 
lists for this Reply.The same is<BR>happening with the Unreachable 
messages.<BR><BR><BR>I will send you some snapshots of how the lists in the 
preproc look like, so<BR>it would be easier<BR>for someone to look into the 
code.<BR><BR>I know im not much of a programmer and my code needs a lot of 
fixing,<BR>but i think this preproc could be evolved into something 
usefull.<BR><BR>Thanks for your comments-advices.<BR></DIV></BODY></HTML>