<div dir="ltr">Dear community,<br><div class="gmail_quote"><div dir="ltr"><div><br></div><div><div style="font-size:13px">I'm investigating ways to teach suricata do SSL decryption and act as SSL MITM for the two most common scenarios - inbound SSL (suricata knows/owns server's cert/key) and outbound SSL (suricata generates fake server certificate on the fly using its CA cert and pretends to be the server to clients).</div><div style="font-size:13px"><br></div><div style="font-size:13px">I've googled on how to do this and only found a mention of "viewssld" which reads packets with libpcap in parallel to suricata, decrypts then and emits fake decrypted TCP traffic:</div><div style="font-size:13px"> <a href="http://resources.infosecinstitute.com/ssl-decryption/" target="_blank">http://resources.infosecinsti<wbr>tute.com/ssl-decryption/</a></div><div style="font-size:13px"><br></div><div style="font-size:13px">Now this may even for for the inbound SSL scenario, however it won't help with outbound SSL. For the outbound SSL there are however a number of opensource tools such as:</div><div style="font-size:13px">1) squid proxy's ssl-bump</div><div style="font-size:13px">2) <a href="http://mitmproxy.org/" target="_blank">http://mitmproxy.org/</a></div><div style="font-size:13px">3) <a href="https://www.roe.ch/SSLsplit" target="_blank">https://www.roe.ch/SSLsplit</a></div><div style="font-size:13px"><br></div><div style="font-size:13px">These tools can generate fake server certificate on the fly and decrypt all the traffic. They however work with TCP streams rather than packets.</div><div style="font-size:13px"><br></div><div style="font-size:13px">The challenge is basically to come with a solution for suricata. Do you know of any way to make decryption work for suricata, possibly with the use of above mentioned tools? Is this on the roadmap for suricata?</div><div style="font-size:13px"><br></div><div style="font-size:13px">I'm thinking of two main integration approaches:</div><div style="font-size:13px">1) modify suricata code to do SSL MITM - here there are a bunch of questions (which I hope you could help with):</div><div style="font-size:13px">- does suricata architecture today allow modification of packets / packet data as they traverse thru various detection modules?</div><div style="font-size:13px">- what would be the best way to be the MITM - provided that suricata will need to generate SSL traffic towards the client and server? This can be done by generating full IP packets, or by establishing TCP connections like squid/mitmproxy/splitssl do.</div><div style="font-size:13px"><br></div><div style="font-size:13px">2) route all incoming SSL traffic into a separate SSL MITM daemon (e.g. squid/mitmproxy/splitssl) and implement a custom module for suricata for packet acquisition - e.g. the daemon could feed decrypted traffic into suricata.</div><div style="font-size:13px">This approach probably need less changes in suricata itself. I'm thinking iptables rule for matching SSL traffic would be ideal - so that only SSL traffic is passed into such daemon (this does not exist today, but can be written).</div><div style="font-size:13px"><br></div><div style="font-size:13px">What would be your suggestion?</div><div style="font-size:13px"><br></div><div style="font-size:13px">Thanks!</div></div></div>
</div><br></div>