Essentially, yes, but I think that &quot;protocol&quot; might sound a bit more daunting than the task really would be.&nbsp; I think &quot;method&quot; may be a more appropriate term.&nbsp; A simple web server that responds to HTTP posts would be good enough.&nbsp; My implementation uses the XMLRPC::Lite Perl module, which works perfectly to serialize and deserialize native Perl structures, making the actual transport completely transparent from hub to spoke.<br>
<br><div class="gmail_quote">On Wed, Dec 3, 2008 at 4:40 PM, Matt Jonkman <span dir="ltr">&lt;<a href="mailto:jonkman@jonkmans.com">jonkman@jonkmans.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
So you&#39;re thinking the tool should have it&#39;s own management protocol to<br>
a central hub built in. To allow sensors to be relatively autonomous,<br>
pulling config and reporting data through a single protocol?<br>
<br>
Matt<br>
<div><div></div><div class="Wj3C7c"><br>
Martin Holste wrote:<br>
&gt; John,<br>
&gt;<br>
&gt; I think you&#39;ve hit on some key points here. &nbsp;I manage about a dozen<br>
&gt; sensors, and there is a definite line that is crossed somewhere around a<br>
&gt; half-dozen servers where managing the configuration and health of the<br>
&gt; boxes requires some power tools. &nbsp;I prefer Nagios for general system<br>
&gt; health monitoring, so that has never been an issue. &nbsp;Conversely, it has<br>
&gt; been an incredible challenge to manage rules and granular Snort<br>
&gt; performance on many boxes with multiple Snort instances. &nbsp;I&#39;ve taken the<br>
&gt; route you have with many home-grown scripts, etc., but there&#39;s always<br>
&gt; something new that comes out with Snort making the management<br>
&gt; difficult. &nbsp;Specifically, dealing with SO rules throws a huge wrench in<br>
&gt; the works when dealing with mixed architectures.<br>
&gt;<br>
&gt; My strategy thus far has been to have my sensors completely self<br>
&gt; contained and manage them centrally using a home-grown system written in<br>
&gt; Perl to make generic queries and issue commands. &nbsp;The databases which<br>
&gt; Snort writes to are on the box (performance really isn&#39;t impacted at all<br>
&gt; by doing this). &nbsp;The Perl agent receives queries like &quot;get all alerts in<br>
&gt; last X minutes,&quot; or &quot;add this rule to the running configuration,&quot; or<br>
&gt; &quot;calculate stats for Mbps and alerts per second for last 1000 ticks.&quot;<br>
&gt; The key is that since all the data is on the sensor, it scales very<br>
&gt; well. &nbsp;The central Perl client can then parallelize queries so all<br>
&gt; sensors can search at the same time much faster than if all the alerts<br>
&gt; were located in one central database. &nbsp;Since everything goes through the<br>
&gt; central management client, it can easily log all the actions (and even<br>
&gt; queries) which are run for audit/change management purposes.<br>
&gt;<br>
&gt; For encryption, I run everything through OpenVPN. &nbsp;This works really<br>
&gt; well, especially for debugging, since it is much easier to tcpdump a<br>
&gt; tunnel interface than get a hook into a TLS socket.<br>
&gt;<br>
&gt; I&#39;m working on a 2.0 version of this architecture which will be entirely<br>
&gt; asynchronous, so that the sensors can alert the central management hub<br>
&gt; on predetermined criteria.<br>
&gt;<br>
&gt; For truly large deployments, I think you&#39;re right that a parent-child<br>
&gt; setup might be necessary. &nbsp;An exploration of peer-to-peer techniques<br>
&gt; might be an interesting, but I think that for simplicity, a tree<br>
&gt; hierarchy would make the most sense. &nbsp;That is, a &quot;hub&quot; may have X number<br>
&gt; of servers assigned to it, and a hub higher up the tree would be able to<br>
&gt; ask hubs to delegate queries down the hierarchy. &nbsp;It would be<br>
&gt; interesting to see if there would be performance gains versus attempting<br>
&gt; parallelized queries over thousands of sensors from just one hub. &nbsp;My<br>
&gt; thinking is that some of the sensors could also function as hubs.<br>
&gt;<br>
&gt; I think that we need to remember that the vast majority of users do not<br>
&gt; deploy more than a few sensors, so we need to guard against spending too<br>
&gt; much devel time on features that will only serve a small percentage of<br>
&gt; the community. &nbsp;That said, audit, change management, archiving, and<br>
&gt; other management features are things that benefit everyone. &nbsp;As long as<br>
&gt; we keep it all modular, users can mix and match to get the features they<br>
&gt; require.<br>
&gt;<br>
&gt; --Martin<br>
&gt;<br>
&gt; On Tue, Nov 18, 2008 at 12:47 PM, John Pritchard<br>
</div></div><div><div></div><div class="Wj3C7c">&gt; &lt;<a href="mailto:john.r.pritchard@gmail.com">john.r.pritchard@gmail.com</a> &lt;mailto:<a href="mailto:john.r.pritchard@gmail.com">john.r.pritchard@gmail.com</a>&gt;&gt; wrote:<br>

&gt;<br>
&gt; &nbsp; &nbsp; Team,<br>
&gt;<br>
&gt; &nbsp; &nbsp; My apologies if I&#39;ve missed this being covered previously. Or, if the<br>
&gt; &nbsp; &nbsp; Bro framework already takes some of these things into consideration.<br>
&gt;<br>
&gt; &nbsp; &nbsp; I&#39;d like to suggest that we take very large deployments into<br>
&gt; &nbsp; &nbsp; consideration when designing our solution. The kind of problems you<br>
&gt; &nbsp; &nbsp; encounter when managing an infrastructure with a handful or even a<br>
&gt; &nbsp; &nbsp; dozen different IDS sensors is very different than trying to<br>
&gt; &nbsp; &nbsp; efficiently and consistently manage infrastructures with larger<br>
&gt; &nbsp; &nbsp; footprints (e.g. &gt; 100+ sensors).<br>
&gt;<br>
&gt; &nbsp; &nbsp; A couple of suggestions to help our design address these potential<br>
&gt; &nbsp; &nbsp; deployment and management scenarios:<br>
&gt;<br>
&gt; &nbsp; &nbsp; 1) Centralized sensor and policy management platform (or framework)<br>
&gt; &nbsp; &nbsp; --&gt; Such a solution may be restricted to a single centralized server<br>
&gt; &nbsp; &nbsp; or multiple servers.<br>
&gt; &nbsp; &nbsp; --&gt; Might be a parent -&gt; child relationship among configuration<br>
&gt; &nbsp; &nbsp; servers to segregate business units, or simply replication among<br>
&gt; &nbsp; &nbsp; servers for disaster recovery / business continuity purposes<br>
&gt; &nbsp; &nbsp; --&gt; efficient, repeatable, and audit-able methodology for making<br>
&gt; &nbsp; &nbsp; changes to both individual sensors as well as pre-defined groups of<br>
&gt; &nbsp; &nbsp; sensors (e.g. dmz sensors, dns sensors, development lab sensors,<br>
&gt; &nbsp; &nbsp; etc...)<br>
&gt; &nbsp; &nbsp; --&gt; My experience to date has been performing these kind of tasks with<br>
&gt; &nbsp; &nbsp; home-grown scripts, ssh, scp, audit logs, etc... However, it would be<br>
&gt; &nbsp; &nbsp; nice to find something a little more mature for this project.<br>
&gt;<br>
&gt; &nbsp; &nbsp; I have not used it, but there is a project called &quot;Puppet&quot; that looks<br>
&gt; &nbsp; &nbsp; like it might be a good candidate for trying to develop a framework<br>
&gt; &nbsp; &nbsp; along these lines:<br>
&gt; &nbsp; &nbsp; <a href="http://reductivelabs.com/trac/puppet/wiki/PuppetIntroduction" target="_blank">http://reductivelabs.com/trac/puppet/wiki/PuppetIntroduction</a><br>
&gt;<br>
&gt;<br>
&gt; &nbsp; &nbsp; 2) Centralized sensor and policy monitoring platform (or framework)<br>
&gt; &nbsp; &nbsp; --&gt; This is similar to the &quot;management framework&quot; concept, but the<br>
&gt; &nbsp; &nbsp; focus is more on device health monitoring... and possibly policy<br>
&gt; &nbsp; &nbsp; integrity monitoring...<br>
&gt; &nbsp; &nbsp; --&gt; For this piece, I&#39;m thinking of something that provides functions<br>
&gt; &nbsp; &nbsp; such as looking at memory utilization, cpu utilization, hard-drive<br>
&gt; &nbsp; &nbsp; space, network interface stats... and other &quot;bits&quot; such as dates and<br>
&gt; &nbsp; &nbsp; checksums for critical configuration files changed (e.g. detection<br>
&gt; &nbsp; &nbsp; policies, tuning policies, variable definitions, etc)...<br>
&gt;<br>
&gt; &nbsp; &nbsp; There are a number of open-source enterprise monitoring utilities out<br>
&gt; &nbsp; &nbsp; there. Here&#39;s one I&#39;ve been playing with recently:<br>
&gt; &nbsp; &nbsp; <a href="http://www.zabbix.com/" target="_blank">http://www.zabbix.com/</a><br>
&gt;<br>
&gt;<br>
&gt; &nbsp; &nbsp; 3) Distributed Data Repositories<br>
&gt; &nbsp; &nbsp; I know we briefly touched on the database stuff when talking about<br>
&gt; &nbsp; &nbsp; schema design. I just wanted to add a plug for a couple of things<br>
&gt; &nbsp; &nbsp; here:<br>
&gt; &nbsp; &nbsp; --&gt; encrypted communication channels (sensor -&gt; DB or sensor -&gt; sensor)<br>
&gt; &nbsp; &nbsp; --&gt; ability to simultaneously log to 2 or more data repositories<br>
&gt;<br>
&gt; &nbsp; &nbsp; I strongly agree with the concept of designing modular solutions. So,<br>
&gt; &nbsp; &nbsp; these kind of features can be &quot;bolted on&quot; if they were required.<br>
&gt;<br>
&gt; &nbsp; &nbsp; Look forward to everyone&#39;s thoughts on how we can most effectively<br>
&gt; &nbsp; &nbsp; tackle problems of scale for large deployments.<br>
&gt;<br>
&gt; &nbsp; &nbsp; Cheers, John<br>
&gt; &nbsp; &nbsp; _______________________________________________<br>
&gt; &nbsp; &nbsp; Discussion mailing list<br>
&gt; &nbsp; &nbsp; <a href="mailto:Discussion@openinfosecfoundation.org">Discussion@openinfosecfoundation.org</a><br>
</div></div>&gt; &nbsp; &nbsp; &lt;mailto:<a href="mailto:Discussion@openinfosecfoundation.org">Discussion@openinfosecfoundation.org</a>&gt;<br>
<div class="Ih2E3d">&gt; &nbsp; &nbsp; <a href="http://lists.openinfosecfoundation.org/mailman/listinfo/discussion" target="_blank">http://lists.openinfosecfoundation.org/mailman/listinfo/discussion</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
</div>&gt; ------------------------------------------------------------------------<br>
<div class="Ih2E3d">&gt;<br>
&gt; _______________________________________________<br>
&gt; Discussion mailing list<br>
&gt; <a href="mailto:Discussion@openinfosecfoundation.org">Discussion@openinfosecfoundation.org</a><br>
&gt; <a href="http://lists.openinfosecfoundation.org/mailman/listinfo/discussion" target="_blank">http://lists.openinfosecfoundation.org/mailman/listinfo/discussion</a><br>
<br>
</div>--<br>
--------------------------------------------<br>
Matthew Jonkman<br>
Emerging Threats<br>
Phone 765-429-0398<br>
Fax 312-264-0205<br>
<a href="http://www.emergingthreats.net" target="_blank">http://www.emergingthreats.net</a><br>
--------------------------------------------<br>
<br>
PGP: <a href="http://www.jonkmans.com/mattjonkman.asc" target="_blank">http://www.jonkmans.com/mattjonkman.asc</a><br>
<br>
<br>
</blockquote></div><br>