[Snort-users] Trigger anomalies (on LXC container versus host)
Al Lewis (allewi)
allewi at ...589...
Sun May 3 20:51:04 EDT 2015
Its pretty hard to say without the pcap and conf file.
QA Software Engineer
SOURCEfire, Inc. now part of Cisco
9780 Patuxent Woods Drive
Columbia, MD 21046
Phone: (office) 443.430.7112
Email: allewi at ...589...
From: Chris [mailto:berzerkatives at ...11827...]
Sent: Sunday, May 03, 2015 8:08 PM
To: Al Lewis (allewi)
Cc: snort-users at lists.sourceforge.net
Subject: Re: [Snort-users] Trigger anomalies (on LXC container versus host)
I've taken the pcap capture on the hypervisor (which is where it will trigger), and run it through Snort using -r, and I see that the correct number of packets are being read from the capture, and that one of them is processed (I guess for its for HTTP payload, whereas the other packets I believe are just initialising the TCP connection), however it doesn't cause it to trigger.
I am certain that the packet that triggers the alert is in here, as looking through the earlier Snort alert lot I see this.
[**] [1:1646:5] WEB-CGI test.cgi access [**]
[Classification: access to a potentially vulnerable web application]
[Priority: 2] 05/03-22:54:17.553955 XXX.XXX.XXX.XXX:55208 ->
YYY.YYY.YYY.YYY:80 TCP TTL:64 TOS:0x0 ID:33526 IpLen:20 DgmLen:137 DF
***AP*** Seq: 0x934BB66C Ack: 0xF99F9563 Win: 0x3890 TcpLen: 32
And in the pcap capture I have an identically timestamped and addressed packet.
22:54:17.553955 IP XXX.XXX.XXX.XXX.55208 > YYY.YYY.YYY.YYY.80: Flags [P.], seq 0:85, ack 1, win 229, options [nop,nop,TS val 9149570 ecr 785127305], length 85
But loading it up, with identical command line arguments in addition to the -r, minus the -D, and having it log to a brand new place, fails to log/trigger anything.
Here's the rule that one would expect to trigger.
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"WEB-CGI test.cgi access"; flow:to_server,established; uricontent:"/test.cgi"; nocase; classtype:web-application-activity; sid:1646; rev:5;)
I'm left to think that I must be making a mistake somehow with my playback testing, but I'm not sure what. Any ideas?
On Sun, 3 May 2015 23:03:55 +0000
"Al Lewis (allewi)" <allewi at ...589...> wrote:
> The pcaps are needed for replay and testing against.
> As a test... if you run snort from both of your other instances and
> replay the packets the outputs should be the same when using the "-r"
> If the results are the same then you know you have a problem with your
> setup and with packets coming off the wire.
> You could also replay the pcaps (using tcpreplay ) and look at the
> exit stats to see if the packets are making it into snort correctly.
> Albert Lewis
> QA Software Engineer
> SOURCEfire, Inc. now part of Cisco
> 9780 Patuxent Woods Drive
> Columbia, MD 21046
> Phone: (office) 443.430.7112
> Email: allewi at ...589...
> -----Original Message-----
> From: Chris [mailto:berzerkatives at ...11827...]
> Sent: Sunday, May 03, 2015 6:33 PM
> To: Al Lewis (allewi)
> Cc: snort-users at lists.sourceforge.net
> Subject: Re: [Snort-users] Trigger anomalies (on LXC container versus
> Hi Albert,
> Absolutely, thanks for getting back to me, and I'd be more than happy
> to provide extra information.
> I'm guessing pcaps wouldn't be of any use as running tcpdump on the
> container and hypervisor at the same time yielded the exact same
> packets (that one system flagged, and the other ignored). I've just
> taken a moment to diff the packet capture that would be expected to
> trigger Snort, and the only difference is a very slight timestamp
> Like I say, the configs are pretty much vanilla Debian with the
> smallest amount of tweaking for interface names, and not much else.
> Should I just tar up /etc/snort and send it over?
> On Sun, 3 May 2015 19:04:27 +0000
> "Al Lewis (allewi)" <allewi at ...589...> wrote:
> > Hello,
> > It would help if you could provide some pcaps of the traffic in
> > question. Also a snort.conf or the rules that are involved.
> > Thanks!
> > Albert Lewis
> > QA Software Engineer
> > SOURCEfire, Inc. now part of Cisco
> > 9780 Patuxent Woods Drive
> > Columbia, MD 21046
> > Phone: (office) 443.430.7112
> > Email: allewi at ...589...
> > -----Original Message-----
> > From: Chris [mailto:berzerkatives at ...11827...]
> > Sent: Sunday, May 03, 2015 9:31 AM
> > To: snort-users at lists.sourceforge.net
> > Subject: [Snort-users] Trigger anomalies (on LXC container versus
> > host)
> > I'm observing a problematic difference in behaviour between two
> > instances of Snort that are configured identically (recursive
> > diff'ed their config dirs, and compared their initialisation
> > outputs) aside from the required differences (interfaces names) as
> > one is running inside an LXC container, listening to its single
> > virtual interface, and the other instance is on the hypervisor/base
> > OS listening to the bridge interface that all the containers are
> > attached to. The container receives traffic through NAT'ing rules on
> > the hypervisor.
> > What I see is that certain rules aren't being triggered on the
> > container instance of Snort, but are being triggered on the
> > hypervisor. This is despite being able to see the packets that
> > trigger these rules appear on both machines (hypervisor and
> > container) using tcpdump to view the respective interfaces that
> > Snort is configured to listen on. Specifically, the rules that I've
> > noticed are being ignored are those that involve HTTP header
> > inspection, like GET /test.cgi.
> > Like I said, I can see what look like the EXACT SAME packets on
> > these respective interfaces, so I've tried the following
> > troubleshooting without any luck.
> > * Switching off Snort on the hypervisor in case it was interfering.
> > * Creating a rule that triggers for any packet that is considered
> > to be web traffic (i.e. EXTERNAL any -> HTTP HTTP_PORT) and this
> > triggers for those packets without issue, so it's not a problem
> > with those variables being misconfigured.
> > * Wondering whether LXC doesn't properly isolate the interfaces
> > somehow, so I tried configuring the container Snort to use the
> > bridge interface on the hypervisor, however it correctly wasn't
> > able to use it (as it didn't exist inside the container, of course).
> > So I'm stuck as to where to go next. The container is where I want
> > Snort to be running, as it's my load balancer (including SSL
> > termination) so that's where I would like to detect and block rogue
> > traffic. The only reason that I run it on the hypervisor is to just
> > see whether any concerning traffic is bypassing the load balancer,
> > and whether undesirable traffic is being generated by services
> > behind it.
> > Thanks for your time, I really hope someone can shed some light on
> > this frustrating situation. Very happy to answer any questions about
> > the setup, including configuration specifics, though they're
> > essentially vanilla installions on Debian Wheezy straight out of
> > apt.
> > --------------------------------------------------------------------
> > --
> > -------- One dashboard for servers and applications across
> > Physical-Virtual-Cloud Widest out-of-the-box monitoring support with
> > 50+ applications Performance metrics, stats and reports that give
> > you Actionable Insights Deep dive visibility with transaction
> > tracing using APM Insight.
> > http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
> > _______________________________________________ Snort-users mailing
> > list Snort-users at lists.sourceforge.net Go to this URL to change user
> > options or unsubscribe:
> > https://lists.sourceforge.net/lists/listinfo/snort-users
> > Snort-users list archive:
> > http://sourceforge.net/mailarchive/forum.php?forum_name=snort-users
> > Please visit http://blog.snort.org to stay current on all the latest
> > Snort news!
More information about the Snort-users