<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Ips on Inliniac</title>
    <link>https://inliniac.net/blog/category/ips/</link>
    <description>Recent content in Ips on Inliniac</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Tue, 20 Dec 2016 18:37:05 +0000</lastBuildDate>
    <atom:link href="https://inliniac.net/blog/category/ips/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Suricata bits, ints and vars</title>
      <link>https://inliniac.net/blog/2016/12/20/suricata-bits-ints-and-vars/</link>
      <pubDate>Tue, 20 Dec 2016 18:37:05 +0000</pubDate>
      <guid>https://inliniac.net/blog/2016/12/20/suricata-bits-ints-and-vars/</guid>
      <description>&lt;p&gt;Since the beginning of the project we&amp;rsquo;ve spoken about variables on multiple levels. Of course flowbits defined by the Snort language came first, but other flow based variables quickly followed: flowints for basic counting, and vars for extracting data using pcre expressions.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve always thought of the pcre data extraction using substring capture as a potentially powerful feature. However the implementation was lacking. The extracted data couldn&amp;rsquo;t really be used for much.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Suricata 3.0 is out!</title>
      <link>https://inliniac.net/blog/2016/01/27/suricata-3-0-is-out/</link>
      <pubDate>Wed, 27 Jan 2016 15:33:27 +0000</pubDate>
      <guid>https://inliniac.net/blog/2016/01/27/suricata-3-0-is-out/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://inliniac.net/blog/blog/wp-content/uploads/2015/11/suri-400x400.png?w=150&#34; alt=&#34;suri-400x400&#34;&gt;Today, almost 2 years after the release of Suricata 2.0, we released 3.0! This new version of Suricata improves performance, scalability, accuracy and general robustness. Next to this, it brings a lot of new features.&lt;/p&gt;&#xA;&lt;p&gt;New features are too numerous to mention here, but I&amp;rsquo;d like to highlight a few:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;netmap support: finally a high speed capture method for our FreeBSD friends, IDS &lt;strong&gt;and&lt;/strong&gt; IPS&lt;/li&gt;&#xA;&lt;li&gt;multi-tenancy: single instance, multiple detection configs&lt;/li&gt;&#xA;&lt;li&gt;JSON stats: making it much easier to graph the stats in ELK, etc&lt;/li&gt;&#xA;&lt;li&gt;Much improved Lua support: many more fields/protocols available, output scripts&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Check the full list here in the announcement: &lt;a href=&#34;http://suricata-ids.org/2016/01/27/suricata-3-0-available/&#34;&gt;http://suricata-ids.org/2016/01/27/suricata-3-0-available/&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>New Suricata release model</title>
      <link>https://inliniac.net/blog/2015/11/24/new-suricata-release-model/</link>
      <pubDate>Tue, 24 Nov 2015 15:54:35 +0000</pubDate>
      <guid>https://inliniac.net/blog/2015/11/24/new-suricata-release-model/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://inliniac.net/blog/blog/wp-content/uploads/2015/11/suri-400x400.png&#34; alt=&#34;suri-400x400&#34;&gt;As the team is back from a very successful week in Barcelona, I&amp;rsquo;d like to take a moment on what we discussed and decided on with regards to development.&lt;/p&gt;&#xA;&lt;p&gt;One thing no one was happy with is how the release schedules are working. Releases were meant to reasonably frequent, but the time between major releases was growing longer and longer. The 2.0 branch for example, is closing in on 2 years as the stable branch. The result is that many people are missing out on many of the improvements we&amp;rsquo;ve been doing. Currently many people using Suricata actually use a beta version, of even our git master, in production!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Suricata has been added to Debian Backports</title>
      <link>https://inliniac.net/blog/2015/01/08/suricata-has-been-added-to-debian-backports/</link>
      <pubDate>Thu, 08 Jan 2015 00:34:50 +0000</pubDate>
      <guid>https://inliniac.net/blog/2015/01/08/suricata-has-been-added-to-debian-backports/</guid>
      <description>&lt;p&gt;Thanks to the hard work of Arturo Borrero Gonzalez, Suricata has just been added to the &lt;img src=&#34;https://inliniac.net/blog/blog/wp-content/uploads/2015/01/openlogo-100.png&#34; alt=&#34;openlogo-100&#34;&gt;Debian &amp;lsquo;backports&amp;rsquo; repository. This allows users of Debian stable to run up to date versions of Suricata.&lt;/p&gt;&#xA;&lt;p&gt;The &amp;lsquo;Backports&amp;rsquo; repository makes the Suricata and libhtp packages from Debian Testing available to &amp;lsquo;stable&amp;rsquo; users. As &amp;rsquo;testing&amp;rsquo; is currently in a freeze, it may take a bit of time before 2.0.5 and libhtp 0.5.16 appear.&lt;/p&gt;&#xA;&lt;p&gt;Anyway, here is how to use it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Profiling Suricata with JEMALLOC</title>
      <link>https://inliniac.net/blog/2014/12/23/profiling-suricata-with-jemalloc/</link>
      <pubDate>Tue, 23 Dec 2014 15:34:23 +0000</pubDate>
      <guid>https://inliniac.net/blog/2014/12/23/profiling-suricata-with-jemalloc/</guid>
      <description>&lt;p&gt;JEMALLOC is a memory allocation library: &lt;a href=&#34;http://www.canonware.com/jemalloc/&#34;&gt;http://www.canonware.com/jemalloc/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;It offers many interesting things for a tool like Suricata. Ken Steele of EZchip (formerly Tilera) &lt;a href=&#34;https://github.com/inliniac/suricata/pull/1233&#34;&gt;made me aware of it&lt;/a&gt;. In Ken&amp;rsquo;s testing it helps performance.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Install&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wget http:&lt;span style=&#34;color:#f92672&#34;&gt;//&lt;/span&gt;www&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;canonware&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;com&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;download&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;jemalloc&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;jemalloc&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;3.6&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;0.&lt;/span&gt;tar&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;bz2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;tar xvfj jemalloc&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;3.6&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;0.&lt;/span&gt;tar&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;bz2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cd jemalloc&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;3.6&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;./&lt;/span&gt;configure &lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;prefix&lt;span style=&#34;color:#f92672&#34;&gt;=/&lt;/span&gt;opt&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;jemalloc&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;make&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo make install&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then use it by preloading it:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;LD_PRELOAD=/opt/jemalloc/lib/libjemalloc.so ./src/suricata -c suricata.yaml -l tmp/ -r ~/sync/pcap/sandnet.pcap -S emerging-all.rules -v&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I haven&amp;rsquo;t benchmarked this, but if you&amp;rsquo;re running a high performance setup it may certainly be worth a shot.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Crossing the Streams in Suricata</title>
      <link>https://inliniac.net/blog/2014/12/21/crossing-the-streams-in-suricata/</link>
      <pubDate>Sat, 20 Dec 2014 23:27:24 +0000</pubDate>
      <guid>https://inliniac.net/blog/2014/12/21/crossing-the-streams-in-suricata/</guid>
      <description>&lt;p&gt;At it&amp;rsquo;s core, Suricata is a packet processor. It reads packets and pushes them through a configurable pipeline. The 2nd most important processing unit in Suricata is the flow. In Suricata we use the term flow for the bidirectional flows of packets with the same 5 tuple (proto, src ip, dst ip, sp, dp. Vlans can be added as well). In fact, much of Suricata&amp;rsquo;s threading effort revolves around the flow. In the 2 main runmodes, autofp and workers, flow based load balancing makes sure that a all packets of a single flow always go through the same threading pipeline. In workers this means one single thread, in autofp 2: the capture thread and a stream/detect/output thread.&lt;/p&gt;</description>
    </item>
    <item>
      <title>SMTP file extraction in Suricata</title>
      <link>https://inliniac.net/blog/2014/11/11/smtp-file-extraction-in-suricata/</link>
      <pubDate>Tue, 11 Nov 2014 10:47:42 +0000</pubDate>
      <guid>https://inliniac.net/blog/2014/11/11/smtp-file-extraction-in-suricata/</guid>
      <description>&lt;p&gt;In &lt;a href=&#34;http://suricata-ids.org/2014/11/06/suricata-2-1beta2-available/&#34;&gt;2.1beta2&lt;/a&gt; the long awaited SMTP file extraction support for Suricata finally appeared. It has been a long development cycle. Originally started by BAE Systems, it was picked up by Tom Decanio of FireEye Forensics Group (formerly nPulse Technologies) followed by a last round of changes from my side. But it&amp;rsquo;s here now.&lt;/p&gt;&#xA;&lt;p&gt;It contains:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;a MIME decoder&lt;/li&gt;&#xA;&lt;li&gt;updates to the SMTP parser to use the MIME decoder for extracting files&lt;/li&gt;&#xA;&lt;li&gt;SMTP JSON log, integrated with EVE&lt;/li&gt;&#xA;&lt;li&gt;SMTP message URL extraction and logging&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;As it uses the Suricata file handling API, it shares almost everything with the existing file handling for HTTP. The rule keyword work and the various logs work automatically with SMTP as well.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Suricata Flow Logging</title>
      <link>https://inliniac.net/blog/2014/07/28/suricata-flow-logging/</link>
      <pubDate>Mon, 28 Jul 2014 19:09:07 +0000</pubDate>
      <guid>https://inliniac.net/blog/2014/07/28/suricata-flow-logging/</guid>
      <description>&lt;p&gt;Pretty much from the start of the project, Suricata has been able to track flows. In Suricata the term &amp;lsquo;flow&amp;rsquo; means the bidirectional flow of packets with the same 5 tuple. Or 7 tuple when vlan tags are counted as well.&lt;/p&gt;&#xA;&lt;p&gt;Such a flow is created when the first packet comes in and is stored in the flow hash. Each new packet does a hash look-up and attaches the flow to the packet. Through the packet&amp;rsquo;s flow reference we can access all that is stored in the flow: TCP session, flowbits, app layer state data, protocol info, etc.&lt;/p&gt;</description>
    </item>
    <item>
      <title>More on Suricata lua flowints</title>
      <link>https://inliniac.net/blog/2013/04/23/more-on-suricata-lua-flowints/</link>
      <pubDate>Tue, 23 Apr 2013 10:17:52 +0000</pubDate>
      <guid>https://inliniac.net/blog/2013/04/23/more-on-suricata-lua-flowints/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://inliniac.net/blog/blog/wp-content/uploads/2012/09/lua.gif&#34; alt=&#34;&#34;&gt;This morning I added flowint lua functions for incrementing and decrementing flowints. From the &lt;a href=&#34;https://github.com/inliniac/suricata/commit/9571091e53a2103cbc9926242fa2cb003eb412ec&#34;&gt;commit&lt;/a&gt;:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Add flowint lua functions for incrementing and decrementing flowints.&lt;/p&gt;&#xA;&lt;p&gt;First use creates the var and inits to 0. So a call:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    a = ScFlowintIncr(0)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Results in a == 1.&lt;/p&gt;&#xA;&lt;p&gt;If the var reached UINT_MAX (2^32), it&amp;rsquo;s not further incremented. If the&#xA;var reaches 0 it&amp;rsquo;s not decremented further.&lt;/p&gt;&#xA;&lt;p&gt;Calling ScFlowintDecr on a uninitialized var will init it to 0.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Suricata Lua scripting flowint access</title>
      <link>https://inliniac.net/blog/2013/04/22/suricata-lua-scripting-flowint-access/</link>
      <pubDate>Mon, 22 Apr 2013 16:16:30 +0000</pubDate>
      <guid>https://inliniac.net/blog/2013/04/22/suricata-lua-scripting-flowint-access/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://inliniac.net/blog/blog/wp-content/uploads/2012/09/lua.gif&#34; alt=&#34;&#34;&gt;A few days ago I wrote about my Emerging Threats sponsored &lt;a href=&#34;https://inliniac.net/blog/2013/04/18/suricata-lua-scripting-flowvar-access/&#34; title=&#34;Suricata Lua scripting flowvar access&#34;&gt;work&lt;/a&gt; to support flowvars from Lua scripts in Suricata.&lt;/p&gt;&#xA;&lt;p&gt;Today, I updated that support. Flowvar &amp;lsquo;sets&amp;rsquo; are now real time. This was needed to fix some issues where a script was invoked multiple times in single rule, which can happen with some buffers, like HTTP headers.&lt;/p&gt;&#xA;&lt;p&gt;Also, I implemented flowint support. Flowints in Suricata are integers stored in the flow context.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Suricata: Handling of multiple different SYN/ACKs</title>
      <link>https://inliniac.net/blog/2013/04/19/suricata-handling-of-multiple-different-synacks/</link>
      <pubDate>Fri, 19 Apr 2013 07:53:00 +0000</pubDate>
      <guid>https://inliniac.net/blog/2013/04/19/suricata-handling-of-multiple-different-synacks/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://inliniac.net/blog/blog/wp-content/uploads/2013/04/synack.png&#34; alt=&#34;synack&#34;&gt;When processing the TCP 3 way handshake (3whs), Suricata&amp;rsquo;s TCP stream engine will closely follow the setup of a TCP connection to make sure the rest of the session can be tracked and reassembled properly. Retransmissions of SYN/ACKs are silently accepted, unless they are different somehow. If the SEQ or ACK values are different they are considered wrong and events are set. The stream events rules will match on this.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Suricata 1.4 is out</title>
      <link>https://inliniac.net/blog/2012/12/13/suricata-1-4-is-out/</link>
      <pubDate>Thu, 13 Dec 2012 17:54:22 +0000</pubDate>
      <guid>https://inliniac.net/blog/2012/12/13/suricata-1-4-is-out/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://inliniac.net/blog/blog/wp-content/uploads/2012/07/suricata2.png&#34; alt=&#34;&#34;&gt;About 5 months after 1.3 came out we&amp;rsquo;ve released &lt;a href=&#34;http://suricata-ids.org/2012/12/13/suricata-1-4-released/&#34;&gt;1.4&lt;/a&gt;, and we&amp;rsquo;ve been quite busy. Eric Leblond&amp;rsquo;s post &lt;a href=&#34;https://home.regit.org/2012/12/some-statistics-about-suricata-1-4/&#34;&gt;here&lt;/a&gt; has all the stats and graphs. There are three big new features: &lt;a href=&#34;https://inliniac.net/blog/2012/11/29/closing-in-on-suricata-1-4/&#34; title=&#34;Closing in on Suricata 1.4&#34;&gt;unix socket&lt;/a&gt;, &lt;a href=&#34;https://inliniac.net/blog/2012/11/21/ip-reputation-in-suricata/&#34; title=&#34;IP Reputation in Suricata&#34;&gt;ip reputation&lt;/a&gt; and &lt;a href=&#34;https://inliniac.net/blog/2012/09/21/suricata-luajit-update/&#34; title=&#34;Suricata luajit update&#34;&gt;luajit&lt;/a&gt;. For each of these the same is true: it&amp;rsquo;s usesable now, but it&amp;rsquo;s the potential that we&amp;rsquo;re most excited about. Over the next months we&amp;rsquo;ll be extending each of those to be even more useful. We&amp;rsquo;re very much interested in ideas and feedback.&lt;/p&gt;</description>
    </item>
    <item>
      <title>IPv6 Evasions, Scanners and the importance of staying current</title>
      <link>https://inliniac.net/blog/2012/12/11/ipv6-evasions-scanners-and-the-importance-of-staying-current/</link>
      <pubDate>Tue, 11 Dec 2012 16:13:49 +0000</pubDate>
      <guid>https://inliniac.net/blog/2012/12/11/ipv6-evasions-scanners-and-the-importance-of-staying-current/</guid>
      <description>&lt;p&gt;Lots of activity on the IPv6 front lately. There was a talk on a conference on bypassing IDS using IPv6 tricks. Also a new scan tool (Topera) claimed to scan a host while staying below the radar of an IDS was released. To start with the latter, even though Suricata doesn&amp;rsquo;t have a dedicated port scan detector, the tool&amp;rsquo;s traffic lights up like a Christmas tree. The trick it pulls is to pack a lot of duplicate DST OPTS extension headers in the IPv6 packets. These options are just fillers, the only options they use are the &amp;ldquo;pad&amp;rdquo; option. In Suricata we&amp;rsquo;ve had an event for duplicate DST OPTS headers since 1.3 and the padding only headers generate an event in 1.4. Both alerts will be very noisy, so calling this a stealth attack rather dubious.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Closing in on Suricata 1.4</title>
      <link>https://inliniac.net/blog/2012/11/29/closing-in-on-suricata-1-4/</link>
      <pubDate>Thu, 29 Nov 2012 16:50:15 +0000</pubDate>
      <guid>https://inliniac.net/blog/2012/11/29/closing-in-on-suricata-1-4/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://inliniac.net/blog/blog/wp-content/uploads/2012/07/suricata2.png&#34; alt=&#34;&#34;&gt;I just made &lt;a href=&#34;http://suricata-ids.org/2012/11/29/suricata-1-4rc1-available/&#34;&gt;Suricata 1.4rc1&lt;/a&gt; available with some pretty exciting features: unix socket mode and IP reputation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Unix socket&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;First of all, &lt;a href=&#34;https://home.regit.org/2012/09/a-new-unix-command-mode-in-suricata/&#34;&gt;Eric Leblond&amp;rsquo;s work&lt;/a&gt; on the Unix socket was merged. The unix socket work consists of two parts. The unix socket protocol implementation and a new runmode.&lt;/p&gt;&#xA;&lt;p&gt;The protocol implementation is based on JSON messages over unix socket. Eric will be fully documenting it soon. Currently the commands are limited to shutting down and getting some basic stats. This part isn&amp;rsquo;t very exciting yet, but the groundwork for many future extensions has been laid.&lt;/p&gt;</description>
    </item>
    <item>
      <title>IP Reputation in Suricata</title>
      <link>https://inliniac.net/blog/2012/11/21/ip-reputation-in-suricata/</link>
      <pubDate>Wed, 21 Nov 2012 19:22:01 +0000</pubDate>
      <guid>https://inliniac.net/blog/2012/11/21/ip-reputation-in-suricata/</guid>
      <description>&lt;p&gt;&lt;em&gt;Disclaimer: this work was sponsored by &lt;a href=&#34;http://www.emergingthreatspro.com/&#34;&gt;Emerging Threats Pro&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;One thing we&amp;rsquo;ve been talking about for many years at OISF is IP Reputation. The basic idea is that many organizations have information about specific IP-addresses. This information may be that a host is infected, acts as a spam relay or many other things. We&amp;rsquo;ve always thought it might be useful to apply this info to the IDS directly.&lt;/p&gt;&#xA;&lt;p&gt;In the last weeks I&amp;rsquo;ve developed code to load IP reputation information into Suricata. This code is now part of the Suricata git master, so it&amp;rsquo;s available to all.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Important Suricata update</title>
      <link>https://inliniac.net/blog/2012/11/01/important-suricata-update/</link>
      <pubDate>Thu, 01 Nov 2012 18:16:51 +0000</pubDate>
      <guid>https://inliniac.net/blog/2012/11/01/important-suricata-update/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://inliniac.net/blog/blog/wp-content/uploads/2012/07/suricata2.png&#34; alt=&#34;&#34;&gt;We just released &lt;a href=&#34;http://suricata-ids.org/2012/11/01/suricata-1-3-3-available/&#34;&gt;Suricata 1.3.3&lt;/a&gt; which contains some important accuracy fixes. Also, it should be much more robust against out of memory conditions.&lt;/p&gt;&#xA;&lt;p&gt;For those of you running Suricata in IPS mode, this is important as well. We found that rules that have the drop or reject actions, were not playing well with thresholding.&lt;/p&gt;&#xA;&lt;p&gt;So upgrading is highly recommended!&lt;/p&gt;&#xA;&lt;p&gt;Code changes are not too big, largest changes are due to some extra unittests:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setting up an IPS with Fedora 17, Suricata and Vuurmuur</title>
      <link>https://inliniac.net/blog/2012/10/13/setting-up-an-ips-with-fedora-17-suricata-and-vuurmuur/</link>
      <pubDate>Sat, 13 Oct 2012 11:07:19 +0000</pubDate>
      <guid>https://inliniac.net/blog/2012/10/13/setting-up-an-ips-with-fedora-17-suricata-and-vuurmuur/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://inliniac.net/blog/blog/wp-content/uploads/2012/08/vuurmuur-connview-small.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;I recently found out that Fedora includes Vuurmuur in it&amp;rsquo;s repositories. Since Suricata is also included, I figured I would do a quick write up on how to setup a Fedora IPS. While writing it turned more into a real &amp;ldquo;howto&amp;rdquo;, so I decided to submit it to Howtoforge.&lt;/p&gt;&#xA;&lt;p&gt;It can be found &lt;a href=&#34;http://www.howtoforge.com/how-to-set-up-an-ips-intrusion-prevention-system-on-fedora-17&#34;&gt;here one HowtoForge&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://inliniac.net/blog/blog/wp-content/uploads/2012/07/suricata2.png&#34; alt=&#34;&#34;&gt;Vuurmuur on Fedora is at the 0.7 version, which is still the current stable. It&amp;rsquo;s rather old though, and it reminds me again I need to make sure the 0.8 branch gets to a stable release soon. The Suricata included in Fedora 17 is 1.2.1, with &lt;a href=&#34;http://suricata-ids.org/2012/10/03/suricata-1-3-2-available/&#34;&gt;1.3.2&lt;/a&gt; expected to land any day now.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Suricata MD5 blacklisting</title>
      <link>https://inliniac.net/blog/2012/06/09/suricata-md5-blacklisting/</link>
      <pubDate>Sat, 09 Jun 2012 08:52:22 +0000</pubDate>
      <guid>https://inliniac.net/blog/2012/06/09/suricata-md5-blacklisting/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://inliniac.net/blog/blog/wp-content/uploads/2012/06/md5.png&#34;&gt;&lt;img src=&#34;https://inliniac.net/blog/blog/wp-content/uploads/2012/06/md5.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt; For a few months Suricata has been able to calculate the MD5 checksum of files it sees in HTTP streams. Regardless of extraction to disk, the MD5 could be calculated and logged. Martin Holste created a set of very cool scripts to use the logged MD5 to look it up at VirusTotal and some other similar services. This is done outside of Suricata. One thing I have been wanting to try is matching against these MD5&amp;rsquo;s in Suricata itself.&lt;/p&gt;</description>
    </item>
    <item>
      <title>F-Secure AV updates and Suricata IPS</title>
      <link>https://inliniac.net/blog/2012/03/07/f-secure-av-updates-and-suricata-ips/</link>
      <pubDate>Wed, 07 Mar 2012 07:28:38 +0000</pubDate>
      <guid>https://inliniac.net/blog/2012/03/07/f-secure-av-updates-and-suricata-ips/</guid>
      <description>&lt;p&gt;My ISP recently started providing 3 F-Secure AV copies to each of their customers. I installed it but noticed that updates timed out.&lt;/p&gt;&#xA;&lt;p&gt;It turned out that Suricata, which runs in IPS mode, blocked the update. There were 3 Emerging Threats rules that alerted:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;[1:2003614:4] ET VIRUS WinUpack Modified PE Header Inbound&#xA;[1:2009557:2] ET TROJAN Yoda&amp;rsquo;s Protector Packed Binary&#xA;[1:2012086:2] ET SHELLCODE Possible Call with No Offset TCP Shellcode&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;It seems that F-Secure uses some form of packed binaries for their updates that is often used by malware.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Suricata 1.1.1 released</title>
      <link>https://inliniac.net/blog/2011/12/07/suricata-1-1-1-released/</link>
      <pubDate>Wed, 07 Dec 2011 18:34:50 +0000</pubDate>
      <guid>https://inliniac.net/blog/2011/12/07/suricata-1-1-1-released/</guid>
      <description>&lt;p&gt;A maintenance update for the Suricata 1.1 series was just released. It fixed an important issue. In some cases Suricata could crash on SMTP traffic.&lt;/p&gt;&#xA;&lt;p&gt;The full announcement for the 1.1.1 release is &lt;a href=&#34;http://www.openinfosecfoundation.org/index.php/component/content/article/140-suricata-111-available&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Naturally, the issue has also been fixed in the 1.2 development branch.&lt;/p&gt;</description>
    </item>
    <item>
      <title>File extraction in Suricata</title>
      <link>https://inliniac.net/blog/2011/11/29/file-extraction-in-suricata/</link>
      <pubDate>Tue, 29 Nov 2011 16:27:27 +0000</pubDate>
      <guid>https://inliniac.net/blog/2011/11/29/file-extraction-in-suricata/</guid>
      <description>&lt;p&gt;Today I pushed out a new feature in Suricata I&amp;rsquo;m very excited about. It has been long in the making and with over 6000 new lines of code it&amp;rsquo;s a significant effort. It&amp;rsquo;s available in the current git master. I&amp;rsquo;d consider it alpha quality, so handle with care.&lt;/p&gt;&#xA;&lt;p&gt;So what is this all about? Simply put, we can now extract files from HTTP streams in Suricata. Both uploads and downloads. Fully controlled by the rule language. But thats not all. I&amp;rsquo;ve added a touch of magic. By utilizing libmagic (this powers the &amp;ldquo;file&amp;rdquo; command), we know the file type of files as well. Lots of interesting stuff that can be done there.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Suricata 1.1 released, 1.2 on the horizon</title>
      <link>https://inliniac.net/blog/2011/11/10/suricata-1-1-released-1-2-on-the-horizon/</link>
      <pubDate>Thu, 10 Nov 2011 16:51:52 +0000</pubDate>
      <guid>https://inliniac.net/blog/2011/11/10/suricata-1-1-released-1-2-on-the-horizon/</guid>
      <description>&lt;p&gt;Today we released &lt;a href=&#34;http://www.openinfosecfoundation.org/index.php/component/content/article/1-latest-news/139-suricata-11-available&#34;&gt;Suricata 1.1&lt;/a&gt;. This ends a rather long development cycle of more than a year. And it shows. Performance, accuracy and features were all greatly improved. I think it&amp;rsquo;s the best Suricata so far. If you&amp;rsquo;ve been looking at trying Suricata, now might be a good time to jump in.&lt;/p&gt;&#xA;&lt;p&gt;The long development cycles should be something of the past. At our last brainstorm session, at RAID 2011, we decided to change our release policy. The aim of this policy is to do time based releases, roughly a &amp;ldquo;stable&amp;rdquo; every 2 months and a beta every other month. This way we&amp;rsquo;ll be making it much easier for users to stay current without have to run our &amp;ldquo;git master&amp;rdquo;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>RAID 2011 Thoughts</title>
      <link>https://inliniac.net/blog/2011/09/24/raid-2011-thoughts/</link>
      <pubDate>Sat, 24 Sep 2011 16:09:24 +0000</pubDate>
      <guid>https://inliniac.net/blog/2011/09/24/raid-2011-thoughts/</guid>
      <description>&lt;p&gt;The last few days I&amp;rsquo;ve been at the Recent Advances in Intrusion Detection (RAID) conference in California. Overall it has been a very pleasant and interesting experience. The nice California weather was certainly helping a lot!&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve seen all talks and some were very interesting. However, being a Suricata IDS developer, I was not just interested in research for the hell of it, but I was actively scouting for ideas we could implement into Suricata. In this respect the conference was highly disappointing. Although with some of the talks I thought the idea was applicable in general security, like Erik Bosmans high speed memory tainting detection, I found nothing like that for NIDS.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Suricata IPS improvements</title>
      <link>https://inliniac.net/blog/2011/01/31/suricata-ips-improvements/</link>
      <pubDate>Mon, 31 Jan 2011 20:51:25 +0000</pubDate>
      <guid>https://inliniac.net/blog/2011/01/31/suricata-ips-improvements/</guid>
      <description>&lt;p&gt;January has been a productive month for Suricata, especially for the IPS part of it. I&amp;rsquo;ve quite some time on adding support to the stream engine to operate differently when running inline. This was needed as dropping attacks found in the reassembled stream or the application layer was not reliable. Up until now the stream engine would offer the reassembled stream to the detection engine as soon as it was ACK&amp;rsquo;d. This meant that by definition the packets containing the data had already passed the IPS device. Simply switching to sending un-ACK&amp;rsquo;d data to the detection engine would have it&amp;rsquo;s own set of issues.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Suricata 1.1 beta 1 released</title>
      <link>https://inliniac.net/blog/2010/12/21/suricata-1-1beta1-released/</link>
      <pubDate>Tue, 21 Dec 2010 17:56:32 +0000</pubDate>
      <guid>https://inliniac.net/blog/2010/12/21/suricata-1-1beta1-released/</guid>
      <description>&lt;p&gt;Today we&amp;rsquo;ve released Suricata 1.1 beta 1, the first beta of the upcoming Suricata 1.1 release. The official release announcement is &lt;a href=&#34;http://openinfosecfoundation.org/index.php/component/content/article/1-latest-news/108-suricata-11-beta-1-released&#34;&gt;here on the OISF website&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The main focus of the new release has been to improve performance and to add support to the features the new ET/ETpro ruleset needs. ET and ETpro have rulesets specially tuned and geared for Suricata. We&amp;rsquo;re still missing some new rule keywords that are used by VRT, so in the 1.1 beta 2 release we&amp;rsquo;ll address that.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Suricata 1.0.2 released</title>
      <link>https://inliniac.net/blog/2010/09/02/suricata-1-0-2-released/</link>
      <pubDate>Thu, 02 Sep 2010 17:36:38 +0000</pubDate>
      <guid>https://inliniac.net/blog/2010/09/02/suricata-1-0-2-released/</guid>
      <description>&lt;p&gt;After some well deserved vacation I&amp;rsquo;m getting back up to speed in Suricata development. Luckily most of our dev team continued to work in my absence, making today&amp;rsquo;s 1.0.2 release possible.&lt;/p&gt;&#xA;&lt;p&gt;The main focus of this release was fixing the TCP stream engine. &lt;a href=&#34;http://twitter.com/judy_novak&#34;&gt;Judy Novak&lt;/a&gt; found a number of ways to evade detection. See her &lt;a href=&#34;http://www.packetstan.com/2010/09/suricata-tcp-evasions.html&#34;&gt;blog post&lt;/a&gt; describing the issues.&lt;/p&gt;&#xA;&lt;p&gt;The biggest other change is the addition of a new application layer module. The SSH parser parses SSH sessions and stops detection/inspection of the stream after the encrypted part of the session has started. So this is mainly a module focused on reducing the number of packets that need inspection, just like the SSL and TLS modules.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setting up Suricata 0.9.0 for initial use on Ubuntu Lucid 10.04</title>
      <link>https://inliniac.net/blog/2010/05/10/setting-up-suricata-0-9-0-for-initial-use-on-ubuntu-lucid-10-04/</link>
      <pubDate>Mon, 10 May 2010 14:27:25 +0000</pubDate>
      <guid>https://inliniac.net/blog/2010/05/10/setting-up-suricata-0-9-0-for-initial-use-on-ubuntu-lucid-10-04/</guid>
      <description>&lt;p&gt;The last few days I blogged about compiling Suricata in &lt;a href=&#34;http://www.inliniac.net/blog/2010/05/07/compiling-suricata-0-9-0-in-ubuntu-lucid-10-04-in-ids-mode.html&#34;&gt;IDS&lt;/a&gt; and &lt;a href=&#34;http://www.inliniac.net/blog/2010/05/07/compiling-suricata-0-9-0-in-ubuntu-lucid-10-04-in-ips-inline-mode.html&#34;&gt;IPS&lt;/a&gt; mode. Today I&amp;rsquo;ll write about how to set it up for first use.&lt;/p&gt;&#xA;&lt;p&gt;Starting with Suricata 0.9.0 the engine can run as an unprivileged user. For this create a new user called &amp;ldquo;suricata&amp;rdquo;.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;useradd &amp;ndash;no-create-home &amp;ndash;shell /bin/false &amp;ndash;user-group &amp;ndash;comment &amp;ldquo;Suricata IDP account&amp;rdquo; suricata&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;This command will create a user and group called &amp;ldquo;suricata&amp;rdquo;. It will be unable to login as the shell is set to /bin/false.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Compiling Suricata 0.9.0 in Ubuntu Lucid 10.04 in IPS (inline) mode</title>
      <link>https://inliniac.net/blog/2010/05/07/compiling-suricata-0-9-0-in-ubuntu-lucid-10-04-in-ips-inline-mode/</link>
      <pubDate>Fri, 07 May 2010 08:30:30 +0000</pubDate>
      <guid>https://inliniac.net/blog/2010/05/07/compiling-suricata-0-9-0-in-ubuntu-lucid-10-04-in-ips-inline-mode/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; the difference with the &lt;a href=&#34;http://www.inliniac.net/blog/2010/05/01/compiling-suricata-0-8-2-in-ubuntu-lucid-10-04-in-ips-inline-mode.html&#34;&gt;0.8.2 post&lt;/a&gt; is that addition of libcap-ng-dev. This allows Suricata to run as an unprivileged user.&lt;/p&gt;&#xA;&lt;p&gt;Here is how to compile Suricata 0.9.0 in &lt;em&gt;inline mode&lt;/em&gt; on Ubuntu Lucid 10.04.&lt;/p&gt;&#xA;&lt;p&gt;First, make sure you have the &amp;ldquo;universe&amp;rdquo; repository enabled. Go to the System menu, Administration, Software Sources. There enable &amp;ldquo;Community-maintained Open Source Software (universe)&amp;rdquo;. If you&amp;rsquo;re not running a gui, edit /etc/apt/sources.list and enable the universe repository there. Don&amp;rsquo;t forget doing an &amp;ldquo;apt-get update&amp;rdquo;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Suricata 0.9.0 released</title>
      <link>https://inliniac.net/blog/2010/05/07/suricata-0-9-0-released/</link>
      <pubDate>Fri, 07 May 2010 08:08:45 +0000</pubDate>
      <guid>https://inliniac.net/blog/2010/05/07/suricata-0-9-0-released/</guid>
      <description>&lt;p&gt;Yesterday we released we first release candidate for our upcoming 1.0 release of Suricata. See the announcement on the OISF site &lt;a href=&#34;http://www.openinfosecfoundation.org/index.php/component/content/article/1-latest-news/93-suricata-rc1-released&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Most notable changes are the following new features:&lt;/p&gt;&#xA;&lt;p&gt;- Support for the http_headers keyword was added&lt;/p&gt;&#xA;&lt;p&gt;- libhtp was updated to version 0.2.3&lt;/p&gt;&#xA;&lt;p&gt;- Privilege dropping using libcap-ng is now supported&lt;/p&gt;&#xA;&lt;p&gt;- Proper support for &amp;ldquo;pass&amp;rdquo; rules was added&lt;/p&gt;&#xA;&lt;p&gt;- Inline mode for Windows was added&lt;/p&gt;&#xA;&lt;p&gt;Go get the release here: &lt;a href=&#34;http://www.openinfosecfoundation.org/download/suricata-0.9.0.tar.gz&#34;&gt;http://www.openinfosecfoundation.org/download/suricata-0.9.0.tar.gz&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Compiling Suricata 0.8.2 in Ubuntu Lucid 10.04 in IPS (inline) mode</title>
      <link>https://inliniac.net/blog/2010/05/01/compiling-suricata-0-8-2-in-ubuntu-lucid-10-04-in-ips-inline-mode/</link>
      <pubDate>Sat, 01 May 2010 19:45:12 +0000</pubDate>
      <guid>https://inliniac.net/blog/2010/05/01/compiling-suricata-0-8-2-in-ubuntu-lucid-10-04-in-ips-inline-mode/</guid>
      <description>&lt;p&gt;Yesterday I &lt;a href=&#34;http://www.inliniac.net/blog/2010/04/30/compiling-suricata-0-8-2-in-ubuntu-lucid-10-04-in-ids-mode.html&#34;&gt;wrote&lt;/a&gt; about how to compile and install Suricata 0.8.2 as an IDS on Ubuntu Lucid 10.04, today I&amp;rsquo;ll explain the steps to compile and install it as an IPS. In IPS mode the engine runs in &lt;em&gt;inline&lt;/em&gt; mode. This means that it gets it&amp;rsquo;s packets from &lt;a href=&#34;http://www.netfilter.org/&#34;&gt;netfilter&lt;/a&gt; and sets a verdict on them after inspecting them. This way we can drop packets that trigger the rules.&lt;/p&gt;&#xA;&lt;p&gt;First, make sure you have the &amp;ldquo;universe&amp;rdquo; repository enabled. Go to the System menu, Administration, Software Sources. There enable &amp;ldquo;Community-maintained Open Source Software (universe)&amp;rdquo;. If you&amp;rsquo;re not running a gui, edit /etc/apt/sources.list and enable the universe repository there. Don&amp;rsquo;t forget doing an &amp;ldquo;apt-get update&amp;rdquo;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Suricata 0.8.2 released</title>
      <link>https://inliniac.net/blog/2010/04/19/suricata-0-8-2-released/</link>
      <pubDate>Mon, 19 Apr 2010 20:38:28 +0000</pubDate>
      <guid>https://inliniac.net/blog/2010/04/19/suricata-0-8-2-released/</guid>
      <description>&lt;p&gt;Today the OISF development team released 0.8.2 of the Suricata IDS/IPS engine. I feel this is definitely the best release so far. Read the announcement &lt;a href=&#34;http://www.openinfosecfoundation.org/index.php/component/content/article/1-latest-news/92-suricata-0-8-2-released&#34;&gt;here&lt;/a&gt;. In short, stability was improved, memory footprint reduced, performance improved and new features were added.&lt;/p&gt;&#xA;&lt;p&gt;One of the tools we used to help improve the engine is a fuzzer created by Will Metcalf, our QA lead. In short, the script takes a pcap file, runs it through editcap (part of wireshark) altering a number of random bytes, then feeds the altered pcap file to Suricata. This resulted in many interesting corner cases. Naturally the script makes sure you don&amp;rsquo;t forget to enable &amp;ldquo;ulimit -c unlimited&amp;rdquo; and such :) More on that script can be found on Will&amp;rsquo;s blog &lt;a href=&#34;http://node5.blogspot.com/2010/04/help-us-make-our-meerkat-fuzzier.html&#34;&gt;node5&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Suricata 0.8.1 released</title>
      <link>https://inliniac.net/blog/2010/02/20/suricata-0-8-1-released/</link>
      <pubDate>Sat, 20 Feb 2010 16:14:41 +0000</pubDate>
      <guid>https://inliniac.net/blog/2010/02/20/suricata-0-8-1-released/</guid>
      <description>&lt;p&gt;Yesterday the OISF development team released &lt;a href=&#34;http://www.openinfosecfoundation.org/index.php/component/content/article/1-latest-news/86-suricata-081-released&#34;&gt;Suricata 0.8.1&lt;/a&gt;. This release is much improved from our December 31st release. It is way more stable, performs better and has more features. Thanks to the now included HTP library we have much better HTTP handling. The stream engine has seen massive improvements. Initial experimental CUDA code has been added. Initial Win32 support has been added. We&amp;rsquo;ve added number of missing rule keywords. Many &lt;a href=&#34;https://redmine.openinfosecfoundation.org/projects/suricata/issues?fixed_version_id=3&amp;amp;set_filter=1&amp;amp;status_id=c&#34;&gt;bugs&lt;/a&gt; were fixed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>OISF IDS/IPS engine prototype intro</title>
      <link>https://inliniac.net/blog/2009/01/07/oisf-ids-ips-engine-prototype-intro/</link>
      <pubDate>Wed, 07 Jan 2009 11:24:07 +0000</pubDate>
      <guid>https://inliniac.net/blog/2009/01/07/oisf-ids-ips-engine-prototype-intro/</guid>
      <description>&lt;p&gt;For over a year I&amp;rsquo;ve been working on a prototype implementation of a new IDS/IPS engine for the &lt;a href=&#34;http://www.openinfosecfoundation.org/&#34;&gt;Open Infosec Foundation&lt;/a&gt;. This is not necessarily going to be the engine we&amp;rsquo;ll be using in OISF, although it&amp;rsquo;s likely that at least some of the code will be used. Discussions about features for the engine are still ongoing ( &lt;a href=&#34;http://doc.emergingthreats.net/bin/view/Main/EngineFeatures&#34;&gt;wiki&lt;/a&gt;, &lt;a href=&#34;http://lists.openinfosecfoundation.org/mailman/listinfo/discussion&#34;&gt;list&lt;/a&gt;), once that settles down we&amp;rsquo;ll see whats usable and whats not. In the worst case I still think many parts like hashing functions, pattern matcher implementations, protocol decoders, etc can be used.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Available for contract work</title>
      <link>https://inliniac.net/blog/2009/01/05/available-for-contract-work/</link>
      <pubDate>Mon, 05 Jan 2009 13:26:06 +0000</pubDate>
      <guid>https://inliniac.net/blog/2009/01/05/available-for-contract-work/</guid>
      <description>&lt;p&gt;This year there will be a lot of work that needs to be done for the &lt;a href=&#34;http://www.openinfosecfoundation.org/&#34;&gt;Open Infosec Foundation&lt;/a&gt;. And like I wrote a few days ago, a lot of work is already being done. However, most of it is unpaid at this time as it will be some months before our funding comes in. So at least until then I&amp;rsquo;m available and looking for contract work.&lt;/p&gt;&#xA;&lt;p&gt;For the last two years I&amp;rsquo;ve been doing work as a contractor in the (open source) security field. My experience is mostly in coding in C and Perl, primarily on &lt;a href=&#34;http://www.snort.org/&#34;&gt;Snort&lt;/a&gt; and &lt;a href=&#34;http://snort-inline.sf.net/&#34;&gt;Snort_inline&lt;/a&gt;. Recently I created the (Perl language) &lt;a href=&#34;http://doc.emergingthreats.net/bin/view/Main/SidReporter&#34;&gt;SidReporter&lt;/a&gt; program for &lt;a href=&#34;http://www.emergingthreats.net/&#34;&gt;Emerging Threats&lt;/a&gt;. Areas I worked in: IPv6 IDS/IPS coding, signature writing, Web Application Firewalls, threading, bandwidth accounting, and more&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Looking forward to 2009: Open Infosec Foundation</title>
      <link>https://inliniac.net/blog/2008/12/29/looking-forward-to-2009-open-infosec-foundation/</link>
      <pubDate>Mon, 29 Dec 2008 12:15:20 +0000</pubDate>
      <guid>https://inliniac.net/blog/2008/12/29/looking-forward-to-2009-open-infosec-foundation/</guid>
      <description>&lt;p&gt;The year 2008 was an exciting year to me. The biggest thing going on the infosec side was the formation of the Open Infosec Foundation. We&amp;rsquo;ve been working on it behind the scenes for more than a year now, and it&amp;rsquo;s cool that we&amp;rsquo;ve finally announced our plans. Of course, the work is just getting started. Next year, we expect to finalize our foundation setup. We&amp;rsquo;re working with the Software Freedom Law Center for setting up the foundation charter and consortium rules. While the US government is funding us initially, we hope the consortium will guarantee our long term funding. We are talking to some interesting companies already, both big and small.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Open Infosec Foundation founded!</title>
      <link>https://inliniac.net/blog/2008/10/18/open-infosec-foundation-founded/</link>
      <pubDate>Fri, 17 Oct 2008 22:07:59 +0000</pubDate>
      <guid>https://inliniac.net/blog/2008/10/18/open-infosec-foundation-founded/</guid>
      <description>&lt;p&gt;Last week Matt Jonkman announced the formation of the &lt;a href=&#34;http://www.openinfosecfoundation.org/&#34;&gt;Open Infosec Foundation&lt;/a&gt;. This foundation has been grant funded to create a new open source IDS/IPS engine. Together with Will Metcalf and of course Matt himself, I will be working on this. We want this to be a real community effort where there is a role for everyone in the infosec community. Developers, admins, vendors, goverments, research, education, everyone. There is a lot of work ahead, but that should be great fun and very inspiring. So far things are interesting already. The &lt;a href=&#34;http://lists.openinfosecfoundation.org/mailman/listinfo/discussion&#34;&gt;discussion mailinglist&lt;/a&gt; is growing rapidly with many ppl from the community and industry. A #oisf IRC channel was created today on freenode. Join us there to participate in discussion about this project!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Snort_inline and out of order packets</title>
      <link>https://inliniac.net/blog/2007/07/30/snort_inline-and-out-of-order-packets/</link>
      <pubDate>Mon, 30 Jul 2007 21:22:56 +0000</pubDate>
      <guid>https://inliniac.net/blog/2007/07/30/snort_inline-and-out-of-order-packets/</guid>
      <description>&lt;p&gt;In Snort_inline&amp;rsquo;s stream4 modifications, one of the changes is that out of order TCP packets are treated differently from unmodified stream4. This can cause some new alerts to appear and some unexpected behaviour. So I&amp;rsquo;ll try to explain what happens here.&lt;/p&gt;&#xA;&lt;p&gt;First of all let me explain quickly what out of order packets are. To put it simple, TCP packets are send out by the source host in a specific order but can arrive in a different order at the destination. Packetloss, link saturation, routing issues are among many things that can cause this. A Snort_inline specific issue is that when Snort_inline can&amp;rsquo;t keep up with the packets it needs to process, it will drop packets which causes packetloss. These packets will then have to be resent by the sending host.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Update on using realtime blacklists with ModSecurity</title>
      <link>https://inliniac.net/blog/2007/03/01/update-on-using-realtime-blacklists-with-modsecurity/</link>
      <pubDate>Thu, 01 Mar 2007 08:04:55 +0000</pubDate>
      <guid>https://inliniac.net/blog/2007/03/01/update-on-using-realtime-blacklists-with-modsecurity/</guid>
      <description>&lt;p&gt;A few days ago I posted a blog article about stopping comment spam with ModSecurity using realtime blacklists (rbl). While the approach was working, I noted having problems with rules when I tried to match on POST methods in HTTP requests.&lt;/p&gt;&#xA;&lt;p&gt;Luckily, ModSecurity creator Ivan Ristic was quick to point out where the problem is. I&amp;rsquo;m using the Core Ruleset for ModSecurity, and one thing that ruleset does is use the &amp;rsquo;lowercase&amp;rsquo; transformation. This converts all text from arguments to lowercase, so my ^POST$ match would never be able to match. So like Ivan suggested, using ^post$ solved this part.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Blocking comment spam using ModSecurity and realtime blacklists</title>
      <link>https://inliniac.net/blog/2007/02/23/blocking-comment-spam-using-modsecurity-and-realtime-blacklists/</link>
      <pubDate>Thu, 22 Feb 2007 22:25:45 +0000</pubDate>
      <guid>https://inliniac.net/blog/2007/02/23/blocking-comment-spam-using-modsecurity-and-realtime-blacklists/</guid>
      <description>Spammers are known to use compromised hosts from all over the world to send their messages. Many people are blocking or scoring email spam based on realtime blacklist (rbl), which contain ipaddresses of these known bad hosts. In my experience this works fairly well for email. A while ago I noticed in the ModSecurity documentation for version 2.0 that ModSecurity features an operator called &lt;a href=&#34;http://modsecurity.org/documentation/modsecurity-apache/2.1.0-rc6/html-multipage/08-operators.html#N11490&#34;&gt;rbl&lt;/a&gt;, that can be used to check the ipaddress of a visitor with a rbl. So I decided to see if I could use the realtime blacklists to prevent comment spam on my blog. Turns out this works great! In this post I&amp;rsquo;ll show how to get it working.</description>
    </item>
    <item>
      <title>Snort_inline in svn updated to 2.6.1.3</title>
      <link>https://inliniac.net/blog/2007/02/22/snort_inline-in-svn-updated-to-2613/</link>
      <pubDate>Thu, 22 Feb 2007 07:59:05 +0000</pubDate>
      <guid>https://inliniac.net/blog/2007/02/22/snort_inline-in-svn-updated-to-2613/</guid>
      <description>&lt;p&gt;This week &lt;a href=&#34;http://www.sourcefire.com/&#34;&gt;SourceFire&lt;/a&gt; published a &lt;a href=&#34;http://www.snort.org/docs/advisory-2007-02-19.html&#34;&gt;security advisory&lt;/a&gt; for (among others) &lt;a href=&#34;http://www.snort.org&#34;&gt;Snort&lt;/a&gt; version 2.6.1.2, on which Snort_inline is based. So I took some time to update Snort_inline. Normally this would have taken Will and me quite some time, but since we switched to using svn those days are gone. I was able to update it in under a hour. I was very happy I blogged about the procedure to follow, since I had already forgotten about it ;-)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Snort_inline 2.6.1.2 BETA 1 released!</title>
      <link>https://inliniac.net/blog/2007/01/23/snort_inline-2612-beta-1-released/</link>
      <pubDate>Tue, 23 Jan 2007 15:52:00 +0000</pubDate>
      <guid>https://inliniac.net/blog/2007/01/23/snort_inline-2612-beta-1-released/</guid>
      <description>&lt;p&gt;William Metcalf has finally released the new Snort_inline version we have been working on so hard, the first release of our code against Snort 2.6. The last release was in June 2006.&lt;/p&gt;&#xA;&lt;p&gt;Of course, we continue to lag behind SourceFire, as they just released 2.7.0 BETA 1, but I have good hope that we will be able to keep up a little bit better the following time!&lt;/p&gt;&#xA;&lt;p&gt;Anyway, get the release from the SourceForge &lt;a href=&#34;http://sourceforge.net/project/showfiles.php?group_id=78497&amp;amp;package_id=219144&amp;amp;release_id=480637&#34;&gt;download section&lt;/a&gt;!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Snort_inline patch updated to 2.6.1.2</title>
      <link>https://inliniac.net/blog/2007/01/17/snort_inline-patch-updated-to-2612/</link>
      <pubDate>Wed, 17 Jan 2007 11:55:34 +0000</pubDate>
      <guid>https://inliniac.net/blog/2007/01/17/snort_inline-patch-updated-to-2612/</guid>
      <description>&lt;p&gt;With the recent Snort vulnerabilities we had to make a choice if we would backport the fixes to our Snort_inline 2.6.0.2 patch or that we would upgrade to 2.6.1.2. Upgrading makes most sense since &lt;a href=&#34;http://www.sourcefire.com/&#34;&gt;SourceFire&lt;/a&gt; improves Snort with every release, but since the upgrade process has been very painful the last couple of releases, we weren&amp;rsquo;t really looking forward to it.&lt;/p&gt;&#xA;&lt;p&gt;Earlier I wrote about my testing with &lt;a href=&#34;http://www.inliniac.net/blog/?p=60&#34;&gt;Subversion for Snort_inline&lt;/a&gt;, and I found out that using Subversion made the upgrade procedure much easier and much less time consuming. So upgrading it was. Generally there were little changes to the Snort_inline patch required.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setting up Subversion for Snort_inline</title>
      <link>https://inliniac.net/blog/2007/01/17/setting-up-subversion-for-snort_inline/</link>
      <pubDate>Wed, 17 Jan 2007 11:02:31 +0000</pubDate>
      <guid>https://inliniac.net/blog/2007/01/17/setting-up-subversion-for-snort_inline/</guid>
      <description>&lt;p&gt;A reason for the slow development of Snort_inline is that we still weren&amp;rsquo;t using a version control system. Being sick of this, I decided to setup a private Subversion server to see how we could best use it. One thing that complicates the use of such a system is the fact that we maintain a patch on top of source code not maintained by ourselves. So the system must be able to deal with upstream sourcecode updates.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Detecting and blocking Phishing with Snort and ClamAV</title>
      <link>https://inliniac.net/blog/2006/11/12/detecting-and-blocking-phishing-with-snort-and-clamav/</link>
      <pubDate>Sun, 12 Nov 2006 18:12:31 +0000</pubDate>
      <guid>https://inliniac.net/blog/2006/11/12/detecting-and-blocking-phishing-with-snort-and-clamav/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.clamav.net/&#34;&gt;ClamAV&lt;/a&gt; is a great Open Source virusscanner that can be used for detecting virusses from &lt;a href=&#34;http://www.snort.org/&#34;&gt;Snort&lt;/a&gt; or &lt;a href=&#34;http://snort-inline.sf.net/&#34;&gt;Snort_inline&lt;/a&gt; using the &lt;a href=&#34;http://www.bleedingthreats.net/staticpages/index.php?page=snort-clamav&#34;&gt;ClamAV preprocessor&lt;/a&gt;. However, by using the anti-phishing and anti-scam signatures by &lt;a href=&#34;http://www.sanesecurity.com/clamav/&#34;&gt;SaneSecurity&lt;/a&gt;, this combination can also be used to detect and block phishing and scam attempts. Here is how to set it up.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve decided to run this on my gateway, which is a slow machine. Because I don&amp;rsquo;t want all my traffic to slow down to much, I&amp;rsquo;m not going to run the ClamAV defs, only the anti-phishing ones. The default location of the defs on my Debian Sarge system is /var/lib/clamav, so I&amp;rsquo;ve created a new directory called &amp;lsquo;/var/lib/clamav-phish&amp;rsquo;. Next I&amp;rsquo;ve downloaded the defs from &lt;a href=&#34;http://www.sanesecurity.com/clamav/downloads.htm&#34;&gt;SaneSecurity&lt;/a&gt;. After unzipping them and the defs were ready.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Update on Snort_inline 2.6.0.2 development</title>
      <link>https://inliniac.net/blog/2006/11/10/update-on-snort_inline-2602-development/</link>
      <pubDate>Fri, 10 Nov 2006 11:54:11 +0000</pubDate>
      <guid>https://inliniac.net/blog/2006/11/10/update-on-snort_inline-2602-development/</guid>
      <description>&lt;p&gt;I have spend the last week trying to find a very annoying bug that caused Snort_inline to go into 100% CPU on certain traffic. It kept working, only my P3 500Mhz home gateway slowed down to between 2kb/s and 25kb/s, while normally it handles the full 325kb/s for my DSL line at around 25% CPU.&lt;/p&gt;&#xA;&lt;p&gt;Snort comes with a number of performance measurement options. In 2.6 &amp;ndash;enable-perfprofiling was introduced. Also, &amp;ndash;enable-profile builds Snort for use with gprof. Next to those you can use strace and ltrace with the -c option to see the ammount of time spend in the several functions.&lt;/p&gt;&#xA;&lt;p&gt;I already knew the problem was related to my new Stream4 code, since running Snort_inline without the &amp;lsquo;stream4inline&amp;rsquo; option made the problem go away. So my performance debugging and code reviews were focussed on that code. However, the performance statistics showed no functions that took large ammounts of time in Stream4.&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Rules for reported Tikiwiki vulnerabilities</title>
      <link>https://inliniac.net/blog/2006/11/02/rules-for-reported-tikiwiki-vulnerabilities/</link>
      <pubDate>Thu, 02 Nov 2006 11:02:52 +0000</pubDate>
      <guid>https://inliniac.net/blog/2006/11/02/rules-for-reported-tikiwiki-vulnerabilities/</guid>
      <description>&lt;p&gt;Yesterday there was a mail to the bugtraq mailinglist about two types of vulnerabilties in Tikiwiki 1.9.5. The most serious is a claimed MySQL password disclosure through a special URI. The second is an XSS, also through an special URI. The message can be found &lt;a href=&#34;http://www.securityfocus.com/archive/1/450268/30/0&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I wrote &amp;lsquo;claimed password disclosure&amp;rsquo;, because on the Tikiwiki server I run, I could not reproduce it. With that I mean the password disclosure, since I do see that Tikiwiki gives an error that reveals other information, most notably the location of the website on the local filesystem.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Snort_inline: getting closer to 2.6.0.2</title>
      <link>https://inliniac.net/blog/2006/10/30/snort_inline-getting-closer-to-2602/</link>
      <pubDate>Sun, 29 Oct 2006 22:40:29 +0000</pubDate>
      <guid>https://inliniac.net/blog/2006/10/30/snort_inline-getting-closer-to-2602/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m back from my vacation which was very nice. Hardly did any geek stuff, other than meeting up with Philippe, who lives in Paris. It was the first time I met someone I got to know through the Vuurmuur project :)&lt;/p&gt;&#xA;&lt;p&gt;So with Snort_inline things aren&amp;rsquo;t moving as fast as I hoped, but there is certainly progress. I&amp;rsquo;m currently hunting for a few bugs. First of all I&amp;rsquo;ve seen it segfault on me once. Sadly I had forgotten to enable coredumps, so no clue as of why. Second, William and I have been ironing out some issues where the new stream4 mode was getting mixed up with the old. I think these are pretty much taken care of now. Third, there is a bug where an unified alert fired by http_inspect doesn&amp;rsquo;t contain a payload. Finally, i&amp;rsquo;m hunting what appears to be a heisenbug in the new stream reassembly, because I&amp;rsquo;ve never encountered it since I&amp;rsquo;m actually looking for it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Snort_inline: running Snort_inline 2.6.0.2</title>
      <link>https://inliniac.net/blog/2006/10/05/snort_inline-running-snort_inline-2602/</link>
      <pubDate>Thu, 05 Oct 2006 08:13:29 +0000</pubDate>
      <guid>https://inliniac.net/blog/2006/10/05/snort_inline-running-snort_inline-2602/</guid>
      <description>&lt;p&gt;No, it&amp;rsquo;s not released. But it wil be soon&amp;hellip; really!&lt;/p&gt;&#xA;&lt;p&gt;William has done most of the hard work of porting our Snort_inline patch from 2.4.5 to 2.6. I have mostly been working on improving the stream4inline modification. I have written about this &lt;a href=&#34;http://www.inliniac.net/blog/?p=3&#34;&gt;before&lt;/a&gt;. Like the stream4inline modification in Snort_inline 2.4.5 it scans the stream in a sliding window, making it possible to drop an attack detected in the reassembled stream. The new code does the same but is much faster, at the cost of higher memory usage.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ModSecurity: rule for latest Tikiwiki vulnerability</title>
      <link>https://inliniac.net/blog/2006/09/06/mod_security-rule-for-latest-tikiwiki-vulnerability/</link>
      <pubDate>Wed, 06 Sep 2006 13:02:57 +0000</pubDate>
      <guid>https://inliniac.net/blog/2006/09/06/mod_security-rule-for-latest-tikiwiki-vulnerability/</guid>
      <description>&lt;p&gt;A few days ago a new vulnerability was &lt;a href=&#34;http://isc.sans.org/diary.php?storyid=1672&#34;&gt;reported&lt;/a&gt; in &lt;a href=&#34;http://tikiwiki.org/tiki-index.php&#34;&gt;Tikiwiki&lt;/a&gt; 1.9.x, the software I use for the Vuurmuur Wiki. Luckily, the Snort.org Community rules quickly had &lt;a href=&#34;http://www.snort.org/pub-bin/snortnews.cgi#506&#34;&gt;a rule for detecting&lt;/a&gt; the attack. Because I also run ModSecurity on the webserver, i wanted to have protection there as well. This rule should block the attack:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;SecFilterSelective POST_PAYLOAD &amp;ldquo;jhot.php&amp;rdquo; &amp;ldquo;log,deny,status:403,msg:&amp;lsquo;LOCAL tikiwiki jhot.php attempt&amp;rsquo;&amp;rdquo;&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s see if I ever get a hit on it. An update for Tikiwiki as been released, so that should fix the issue completely.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ModSecurity: rules against comment spam</title>
      <link>https://inliniac.net/blog/2006/08/23/mod_security-rules-against-comment-spam/</link>
      <pubDate>Wed, 23 Aug 2006 08:07:40 +0000</pubDate>
      <guid>https://inliniac.net/blog/2006/08/23/mod_security-rules-against-comment-spam/</guid>
      <description>&lt;p&gt;Lately the &lt;a href=&#34;http://wiki.vuurmuur.org/&#34;&gt;wiki&lt;/a&gt; of my &lt;a href=&#34;http://www.vuurmuur.org/&#34;&gt;Vuurmuur project&lt;/a&gt; has been receiving quite a lot of comment spam. Although removing the spam manually is boring work, i still don&amp;rsquo;t really mind the spam, because it enables me to practice with ModSecurity rules to fight it off. So far, the spam seems to be following a pattern, in which the spam is posted by bots, and has the same general layout for longer periods of time. That makes it worthwhile to spend time on creating rules against it. Yesterday a new type of spam emerged on the wiki. The following audit_log is for one of them. I had to slightly edit it for layout reasons.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ModSecurity: more security by obscurity</title>
      <link>https://inliniac.net/blog/2006/08/17/mod_security-more-security-by-obscurity/</link>
      <pubDate>Thu, 17 Aug 2006 07:27:13 +0000</pubDate>
      <guid>https://inliniac.net/blog/2006/08/17/mod_security-more-security-by-obscurity/</guid>
      <description>&lt;p&gt;Yesterday, Philippe Baumgart showed me that my obscurity setup is not yet perfect. In fact, he could very easily enter an URL that didn&amp;rsquo;t exist and caused the webserver behind my proxy to respond with a 404. In this 404 the name and the version of the webserver were exposed.&lt;/p&gt;&#xA;&lt;p&gt;After some testing i found that adding the following to my config worked very well.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;# enable output scanning in Mod Security.&#xA;SecFilterScanOutput On&lt;/p&gt;</description>
    </item>
    <item>
      <title>ModSecurity: redirection</title>
      <link>https://inliniac.net/blog/2006/08/09/mod_security-redirection/</link>
      <pubDate>Tue, 08 Aug 2006 22:09:50 +0000</pubDate>
      <guid>https://inliniac.net/blog/2006/08/09/mod_security-redirection/</guid>
      <description>&lt;p&gt;Another nice feature of ModSecurity is rule based redirection. Lets say i want to block visitors of my website from opening the login page of wordpress, /blog/wp-login.php. I could of course just deny access to it, so the visitor gets a 403 error. This works fine, however sometimes you might want to use a more userfriendly message, for example: &amp;lsquo;Due to maintainance logins are currently disabled&amp;rsquo;.&lt;/p&gt;&#xA;&lt;p&gt;To do this i first created a very simple html file called nologin.html, and placed it in the webroot of the server. Then i added the following rules to Mod_Security:&lt;/p&gt;</description>
    </item>
    <item>
      <title>ModSecurity: directory hiding a.k.a. security by obscurity</title>
      <link>https://inliniac.net/blog/2006/08/06/mod_security-directory-hiding-aka-security-by-obscurity/</link>
      <pubDate>Sun, 06 Aug 2006 20:24:07 +0000</pubDate>
      <guid>https://inliniac.net/blog/2006/08/06/mod_security-directory-hiding-aka-security-by-obscurity/</guid>
      <description>&lt;p&gt;Ok, that&amp;rsquo;s a bit misleading, because i&amp;rsquo;m not just hiding, but also blocking and logging. What i wanted is this: I&amp;rsquo;m running awstats on my reverse proxy, but i don&amp;rsquo;t want anyone to know. So i just made the entire &amp;lsquo;cgi-bin&amp;rsquo; part forbidden for everyone, so that covers the script. The fact that my webserver has a cgi-bin directory is nothing special and won&amp;rsquo;t tell you i&amp;rsquo;m using awstats. However, awstats also uses icons, and these are by default in /awstats-icon/&lt;/p&gt;</description>
    </item>
    <item>
      <title>ModSecurity: my first rules</title>
      <link>https://inliniac.net/blog/2006/07/11/mod_security-my-first-rules/</link>
      <pubDate>Tue, 11 Jul 2006 09:37:33 +0000</pubDate>
      <guid>https://inliniac.net/blog/2006/07/11/mod_security-my-first-rules/</guid>
      <description>&lt;p&gt;I have been using ModSecurity for quite some time now to protect a webserver, but i never felt the need to write my own rules. Recently though, my site got quite a lot of spam in the comments of my TikiWiki based site. Since i was not willing to disable the anonymous comment posting i decided to see if i could use Mod_Security to block the spam.&lt;/p&gt;&#xA;&lt;p&gt;The spam all looked alike with the following characteristics. It all contained a list uri&amp;rsquo;s with a pipe | before them. So decided to try the most easy way, by blocking all posts with this characteristic.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Snort_inline: idea for an improved bait-and-switch</title>
      <link>https://inliniac.net/blog/2006/07/11/snort_inline-idea-for-an-improved-bait-and-switch/</link>
      <pubDate>Mon, 10 Jul 2006 22:13:09 +0000</pubDate>
      <guid>https://inliniac.net/blog/2006/07/11/snort_inline-idea-for-an-improved-bait-and-switch/</guid>
      <description>&lt;p&gt;William Metcalf recently wrote a bait-and-switch plugin for Snort_inline. The idea is that when a rule matches on certain traffic this plugin loads an iptables rule into the system that redirects the offending host to another server. This can present the user an error message such as &amp;ldquo;Access Denied&amp;rdquo; for example, but this server can also have al kinds of sniffing tools, or even be a honeypot.&lt;/p&gt;&#xA;&lt;p&gt;As the plugin currently creates an iptables rule it only works with linux. Also, it has some difficulty with existing iptables rulesets that might be maintained by other programs, such as my own Vuurmuur. My idea is to investigate whether or not it is possible to simply do the redirection in Snort_inline itself. By rewriting the ipaddress in the IP header, it might work as well. Naturally, this would need to be done for every packet, but with a connection to either the flow engine or the stream engine, this should be able to work&amp;hellip; just a thought&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Books: Preventing Webattacks with Apache</title>
      <link>https://inliniac.net/blog/2006/07/10/books-preventing-webattacks-with-apache/</link>
      <pubDate>Mon, 10 Jul 2006 21:54:51 +0000</pubDate>
      <guid>https://inliniac.net/blog/2006/07/10/books-preventing-webattacks-with-apache/</guid>
      <description>&lt;p&gt;I just finished Preventing Webattacks with Apache by Ryan C. Barnett. Even though the title says it is about Apache it is really mostly about Mod_Security, and this is why i really love the book.&lt;/p&gt;&#xA;&lt;p&gt;Especially cool is the part of the book where the author challenges the user to setup his &amp;lsquo;Buggy Bank&amp;rsquo; example application to play with the vulnarebilities and with the possible counter measures.&lt;/p&gt;&#xA;&lt;p&gt;This book got me even more exited about Mod_Security, which I use already to protect one webserver. I plan to check out setting up a reverse filtering web proxy soon.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Snort_inline: Adapting the TCP stream reassembler</title>
      <link>https://inliniac.net/blog/2006/07/10/snort_inline-adapting-the-tcp-stream-reassembler/</link>
      <pubDate>Mon, 10 Jul 2006 16:34:25 +0000</pubDate>
      <guid>https://inliniac.net/blog/2006/07/10/snort_inline-adapting-the-tcp-stream-reassembler/</guid>
      <description>&lt;p&gt;Currently I am rewriting a modification of the TCP reassembler in Snort_inline. Snort&amp;rsquo;s TCP reassembler is called Stream4 and it works fairly well in IDS mode, however it has some serious issues in &lt;em&gt;inline&lt;/em&gt; mode. The biggest and most important issue is that Snort_inline cannot block an attack if it is detected in the reassembled stream. In Snort_inline 2.4 we made our first attempt to fix this with the &lt;em&gt;stream4inline&lt;/em&gt; modification.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
