a short introduction to suricata idps - rmll2011.rmll.info/img/pdf/2011_rmll_suricata.pdf ·...

67
A short introduction to Suricata I D P S Éric Leblond OISF July 12th 2011 Éric Leblond (OISF) A short introduction to Suricata I D P S July 12th 2011 1 / 35

Upload: trantuong

Post on 04-Jul-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

A short introduction to Suricata IDP S

Éric Leblond

OISF

July 12th 2011

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 1 / 35

Page 2: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

1 IntroductionIntroductionGoals of the projectEcosystem

2 FunctionnalitiesList of functionnalitiesSignaturesStream inlineCUDA

3 Advanced functionalities of SuricatalibHTPFlow variablesIPS advanced functions

4 The futureThe roadmapMore information

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 2 / 35

Page 3: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Suricata ?

(C) Jean-Marie Hullot, CC BY 3.0

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 3 / 35

Page 4: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Suricata ?

(C) Jean-Marie Hullot, CC BY 3.0

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 3 / 35

Page 5: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Introduction

Éric LeblondInitial and lead developer of NuFWNetfilter Contributor (mainly ulogd2 and userpace interaction)Suricata core developer (IPS, multicore optimisation, . . . )Independant Open Source et security consultant. . .

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 4 / 35

Page 6: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

About OISF

Open Information Security Foundationhttp://www.openinfosecfoundation.org

Non-profit foundation organized to build a next generation IDS/IPSengineFunded by US Governement (DHS, Navy)Development of an Open Source IDS/IPS:

Developers financementFinancial support of related projects (barnyard2)Board who defines the roadmap

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 5 / 35

Page 7: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

About OISF

Open Information Security Foundationhttp://www.openinfosecfoundation.org

Non-profit foundation organized to build a next generation IDS/IPSengineFunded by US Governement (DHS, Navy)Development of an Open Source IDS/IPS:

Developers financement

Financial support of related projects (barnyard2)Board who defines the roadmap

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 5 / 35

Page 8: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

About OISF

Open Information Security Foundationhttp://www.openinfosecfoundation.org

Non-profit foundation organized to build a next generation IDS/IPSengineFunded by US Governement (DHS, Navy)Development of an Open Source IDS/IPS:

Developers financementFinancial support of related projects (barnyard2)

Board who defines the roadmap

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 5 / 35

Page 9: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

About OISF

Open Information Security Foundationhttp://www.openinfosecfoundation.org

Non-profit foundation organized to build a next generation IDS/IPSengineFunded by US Governement (DHS, Navy)Development of an Open Source IDS/IPS:

Developers financementFinancial support of related projects (barnyard2)Board who defines the roadmap

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 5 / 35

Page 10: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

About OISF

Consortium membersHOST program: Homeland Open Security TechnologyGold level: Npulse, EndaceBronze level: EdenWall, Nitro Security, Mara systems, . . .

Technology partner: Napatech, NvidiaDevelopers

Leader : Victor Julien

Developers: Anoop Saldanha, Gurvinder Singh, Pablo Rincon,William Metcalf, Eric Leblond, . . .

BoardMatt JonkmannRichard Bejtlich, Dr. Jose Nazario, Joel Ebrahimi, Marc Norton,Stuart Wilson. . .

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 6 / 35

Page 11: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

About OISF

Consortium membersHOST program: Homeland Open Security TechnologyGold level: Npulse, EndaceBronze level: EdenWall, Nitro Security, Mara systems, . . .Technology partner: Napatech, Nvidia

DevelopersLeader : Victor Julien

Developers: Anoop Saldanha, Gurvinder Singh, Pablo Rincon,William Metcalf, Eric Leblond, . . .

BoardMatt JonkmannRichard Bejtlich, Dr. Jose Nazario, Joel Ebrahimi, Marc Norton,Stuart Wilson. . .

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 6 / 35

Page 12: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

About OISF

Consortium membersHOST program: Homeland Open Security TechnologyGold level: Npulse, EndaceBronze level: EdenWall, Nitro Security, Mara systems, . . .Technology partner: Napatech, Nvidia

DevelopersLeader : Victor Julien

Developers: Anoop Saldanha, Gurvinder Singh, Pablo Rincon,William Metcalf, Eric Leblond, . . .

BoardMatt JonkmannRichard Bejtlich, Dr. Jose Nazario, Joel Ebrahimi, Marc Norton,Stuart Wilson. . .

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 6 / 35

Page 13: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

About OISF

Consortium membersHOST program: Homeland Open Security TechnologyGold level: Npulse, EndaceBronze level: EdenWall, Nitro Security, Mara systems, . . .Technology partner: Napatech, Nvidia

DevelopersLeader : Victor JulienDevelopers: Anoop Saldanha, Gurvinder Singh, Pablo Rincon,William Metcalf, Eric Leblond, . . .

BoardMatt JonkmannRichard Bejtlich, Dr. Jose Nazario, Joel Ebrahimi, Marc Norton,Stuart Wilson. . .

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 6 / 35

Page 14: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

About OISF

Consortium membersHOST program: Homeland Open Security TechnologyGold level: Npulse, EndaceBronze level: EdenWall, Nitro Security, Mara systems, . . .Technology partner: Napatech, Nvidia

DevelopersLeader : Victor JulienDevelopers: Anoop Saldanha, Gurvinder Singh, Pablo Rincon,William Metcalf, Eric Leblond, . . .

BoardMatt JonkmannRichard Bejtlich, Dr. Jose Nazario, Joel Ebrahimi, Marc Norton,Stuart Wilson. . .

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 6 / 35

Page 15: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Goals

Bring new technologies to IDSPerformance

Multi-threadsHardware accelerationhttp://packetchaser.org/index.php/opensource/suricata-10gbps

Open sourceSupport of Linux / *BSD / Mac OSX / Windows

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 7 / 35

Page 16: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Similar projects

BroDifferent technology (capture oriented)Statistical study

SnortEquivalentCompatibleFrontal concurrenceSourcefire has felt endangered and has been aggressivehttp://www.informationweek.com/news/software/enterprise_apps/226400079

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 8 / 35

Page 17: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Volume of code

Suricata

Snort

Source: ohloh.net

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 9 / 35

Page 18: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Suricata vs Snort

SuricataDrived by a foundationMulti-threadedNative IPSAdvanced functions(flowint, libHTP)PF_RING support, CUDAsupportModern and modular codeYoung but dynamic

SnortDeveloped by SourcefireMulti-processIPS supportSO ruleset (advanced logic+ perf but closed)No hardware accelerationOld code10 years of experience

Independant study:http://www.aldeid.com/index.php/Suricata-vs-snort

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 10 / 35

Page 19: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

1 IntroductionIntroductionGoals of the projectEcosystem

2 FunctionnalitiesList of functionnalitiesSignaturesStream inlineCUDA

3 Advanced functionalities of SuricatalibHTPFlow variablesIPS advanced functions

4 The futureThe roadmapMore information

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 11 / 35

Page 20: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Fonctionnalities

Ipv6 native support

Multi-threadedNative hardware acceleratoin (GPU, PF_RING)Numerous options for performance optimisationOptimized support of IP only testsIPS is native (inline mode)

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 12 / 35

Page 21: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Fonctionnalities

Ipv6 native supportMulti-threaded

Native hardware acceleratoin (GPU, PF_RING)Numerous options for performance optimisationOptimized support of IP only testsIPS is native (inline mode)

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 12 / 35

Page 22: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Fonctionnalities

Ipv6 native supportMulti-threadedNative hardware acceleratoin (GPU, PF_RING)

Numerous options for performance optimisationOptimized support of IP only testsIPS is native (inline mode)

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 12 / 35

Page 23: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Fonctionnalities

Ipv6 native supportMulti-threadedNative hardware acceleratoin (GPU, PF_RING)Numerous options for performance optimisation

Optimized support of IP only testsIPS is native (inline mode)

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 12 / 35

Page 24: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Fonctionnalities

Ipv6 native supportMulti-threadedNative hardware acceleratoin (GPU, PF_RING)Numerous options for performance optimisationOptimized support of IP only tests

IPS is native (inline mode)

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 12 / 35

Page 25: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Fonctionnalities

Ipv6 native supportMulti-threadedNative hardware acceleratoin (GPU, PF_RING)Numerous options for performance optimisationOptimized support of IP only testsIPS is native (inline mode)

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 12 / 35

Page 26: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Global architecture

Chained treatment modulesEach running mode can have its own architecture

Architecture of mode "pcap auto v1":

Fine setting of CPU preferencesAttach a thread to a CPUAttach a threads family to a CPU setAllow IRQs based optimisation

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 13 / 35

Page 27: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Global architecture

Chained treatment modulesEach running mode can have its own architectureArchitecture of mode "pcap auto v1":

Fine setting of CPU preferencesAttach a thread to a CPUAttach a threads family to a CPU setAllow IRQs based optimisation

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 13 / 35

Page 28: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Global architecture

Chained treatment modulesEach running mode can have its own architectureArchitecture of mode "pcap auto v1":

Fine setting of CPU preferencesAttach a thread to a CPUAttach a threads family to a CPU setAllow IRQs based optimisation

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 13 / 35

Page 29: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Entry modules

IDSPCAP

live, multi interfaceoffline support

PF_RINGhttp://www.ntop.org/PF_RING.htmlMultithread, really fast but require modified drivers

IPSNFQueue:

Linux: multi-queue, advanced supportWindows

ipfw :FreeBSDNetBSD

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 14 / 35

Page 30: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Entry modules

IDSPCAP

live, multi interfaceoffline support

PF_RINGhttp://www.ntop.org/PF_RING.htmlMultithread, really fast but require modified drivers

IPSNFQueue:

Linux: multi-queue, advanced supportWindows

ipfw :FreeBSDNetBSD

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 14 / 35

Page 31: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Output modules

FastlogUnified log (Barnyard 1 & 2)HTTP log (log in apache-style format)Prelude (IDMEF)

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 15 / 35

Page 32: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Signatures

Support almost all snort ruleset featuresExclusive features used by VRT ou Emerging Threats rulesets

alert tcp any any -> 192.168.1.0/24 21 (content: "USER root"; msg: "FTP root login";)

Action: alert / drop / pass IP parameters Motif Other parameters

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 16 / 35

Page 33: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Signatures

Support almost all snort ruleset featuresExclusive features used by VRT ou Emerging Threats rulesets

alert tcp any any -> 192.168.1.0/24 21 (content: "USER root"; msg: "FTP root login";)

Action: alert / drop / pass

IP parameters Motif Other parameters

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 16 / 35

Page 34: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Signatures

Support almost all snort ruleset featuresExclusive features used by VRT ou Emerging Threats rulesets

alert tcp any any -> 192.168.1.0/24 21 (content: "USER root"; msg: "FTP root login";)

Action: alert / drop / pass

IP parameters

Motif Other parameters

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 16 / 35

Page 35: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Signatures

Support almost all snort ruleset featuresExclusive features used by VRT ou Emerging Threats rulesets

alert tcp any any -> 192.168.1.0/24 21 (content: "USER root"; msg: "FTP root login";)

Action: alert / drop / pass IP parameters

Motif

Other parameters

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 16 / 35

Page 36: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Signatures

Support almost all snort ruleset featuresExclusive features used by VRT ou Emerging Threats rulesets

alert tcp any any -> 192.168.1.0/24 21 (content: "USER root"; msg: "FTP root login";)

Action: alert / drop / pass IP parameters Motif

Other parameters

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 16 / 35

Page 37: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Stream inline

High level applicative analysis works on a data streamTCP data can be messy

Packets lossPackets retransmitOut of order packets

The IDP S must reconstruct the TCP flow before doing the

applicative analysis

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 17 / 35

Page 38: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Problem

IDS must be the closer possible to what’s received by the targetPacket analysis when reception has been provenACK reception trigger data analysis

IPS must block the packets before they reached the targetThe IDS algorithm will block packet after they go throughAn other approach has to be used

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 18 / 35

Page 39: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

IPS as a control point

IPS is a blocking pointIt is representative of what goes throughIt can reconstruct the flows before send them

Suricata implementationReconstruction of data segments at receptionSend reconstructed data to applicative layer analyserTake decision based on dataRewrite packets if necessaryTransmit (possibly modified) packets

Details: http://www.inliniac.net/blog/2011/01/31/suricata-ips-improvements.html

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 19 / 35

Page 40: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

IPS as a control point

IPS is a blocking pointIt is representative of what goes throughIt can reconstruct the flows before send them

Suricata implementationReconstruction of data segments at receptionSend reconstructed data to applicative layer analyserTake decision based on dataRewrite packets if necessaryTransmit (possibly modified) packets

Details: http://www.inliniac.net/blog/2011/01/31/suricata-ips-improvements.html

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 19 / 35

Page 41: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

IPS as a control point

IPS is a blocking pointIt is representative of what goes throughIt can reconstruct the flows before send them

Suricata implementationReconstruction of data segments at receptionSend reconstructed data to applicative layer analyserTake decision based on dataRewrite packets if necessaryTransmit (possibly modified) packets

Details: http://www.inliniac.net/blog/2011/01/31/suricata-ips-improvements.html

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 19 / 35

Page 42: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

CUDA

Offload some computation to GPU through CUDA which is aparallel computation library developed by NVIDIANow: implementation of a matching algorithm in CUDAWork in progress, Nvidia is a technological partner of OISF

Difficult to use the GPU pipeline in an effective manner... Performance equivalent with and without CUDA (for decentCPUs)

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 20 / 35

Page 43: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

CUDA

Offload some computation to GPU through CUDA which is aparallel computation library developed by NVIDIANow: implementation of a matching algorithm in CUDAWork in progress, Nvidia is a technological partner of OISFDifficult to use the GPU pipeline in an effective manner

... Performance equivalent with and without CUDA (for decentCPUs)

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 20 / 35

Page 44: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

CUDA

Offload some computation to GPU through CUDA which is aparallel computation library developed by NVIDIANow: implementation of a matching algorithm in CUDAWork in progress, Nvidia is a technological partner of OISFDifficult to use the GPU pipeline in an effective manner... Performance equivalent with and without CUDA (for decentCPUs)

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 20 / 35

Page 45: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

1 IntroductionIntroductionGoals of the projectEcosystem

2 FunctionnalitiesList of functionnalitiesSignaturesStream inlineCUDA

3 Advanced functionalities of SuricatalibHTPFlow variablesIPS advanced functions

4 The futureThe roadmapMore information

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 21 / 35

Page 46: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

libHTP

Security oriented HTTP parserWritten by Ivan Ristic (ModSecurity, IronBee)Flow trackingSupport of keywords

http_bodyhttp_raw_urihttp_headerhttp_cookie. . .

Able to decode gzip compressed flows

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 22 / 35

Page 47: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Using HTTP features in signature

Signature example: Chat facebook

a l e r t h t t p $HOME_NET any −> $EXTERNAL_NET $HTTP_PORTS \(msg : "ET CHAT Facebook Chat ( send message ) " ; \flow : es tab l ished , to_server ; content : "POST" ; http_method ; \content : " / a jax / chat / send . php " ; h t t p _ u r i ; content : " facebook . com" ; ht tp_header ; \classtype : po l i cy−v i o l a t i o n ; reference : u r l , doc . emerg ingthreats . net /2010784; \reference : u r l ,www. emerg ingthreats . net / cgi−bin / cvsweb . cg i / s igs / POLICY / POLICY_Facebook_Chat ; \sid :2010784; rev : 4 ; \

)

This signature tests:The HTTP method: POSTThe page: /ajax/chat/send.phpThe domain: facebook.com

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 23 / 35

Page 48: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Flow variables

ObjectivesDetection of in-multiple-step attackVerify condition on a flowModify alert treatmentState machine inside each flow

Flowbitsboolean conditionSet a flag

FlowintDefine counterArithmetic operation

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 24 / 35

Page 49: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Flow variables

ObjectivesDetection of in-multiple-step attackVerify condition on a flowModify alert treatmentState machine inside each flow

Flowbitsboolean conditionSet a flag

FlowintDefine counterArithmetic operation

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 24 / 35

Page 50: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Flow variables

ObjectivesDetection of in-multiple-step attackVerify condition on a flowModify alert treatmentState machine inside each flow

Flowbitsboolean conditionSet a flag

FlowintDefine counterArithmetic operation

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 24 / 35

Page 51: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Flowint variables

Permit capture, keep and comparison of data in one variablekeep and do mathematical operationsVariable is bound to a given flow

Ex : show an alert if and only if usernamecount is greater than 5:

a l e r t tcp any any −> any any (msg : " Counting Usernames " ; content : " jonkman " ; \

f lowint : usernamecount , + , 1 ; f lowint : usernamecount , > , 5 ; )

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 25 / 35

Page 52: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Flowint variables (2)

Ex: Follow loginsPut a login failure counter:

a l e r t tcp any any −> any any (msg : " S t a r t a l o g i n count " ; content : " l o g i n f a i l e d " ; \f lowint : l o g i n f a i l , no tse t ; f lowint : l o g i n f a i l , = , 1 ; f lowint : n o a l e r t ; )a l e r t tcp any any −> any any (msg : " Counting Logins " ; content : " l o g i n f a i l e d " ; \f lowint : l o g i n f a i l , isset ; f lowint : l o g i n f a i l , + , 1 ; f lowint : n o a l e r t ; )

Alert if there is a success after 5 failed login:

a l e r t tcp any any −> any any (msg : " Login success a f t e r f i l e f a i l u r e s " ; \content : " l o g i n success fu l " ; \

f lowint : l o g i n f a i l e d , isset ; f lowint : l o g i n f a i l e d , = , 5 ; )

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 26 / 35

Page 53: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Suricata in IPS mode

Using a Linux/Netfilter based IPSUse NFQUEUE to send decision to userspaceAll packets of a connexion must be seen to SuricataThe brutal way: iptables -A FORWARD -j NFQUEUE

Interaction with the firewallNFQUEUE is a terminal target

An ACCEPT decision will shortcut the whole rulesetThis is the only possible decision but DROP

The previous method is thus incompatible with the existence of aruleset.

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 27 / 35

Page 54: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Suricata in IPS mode

Using a Linux/Netfilter based IPSUse NFQUEUE to send decision to userspaceAll packets of a connexion must be seen to SuricataThe brutal way: iptables -A FORWARD -j NFQUEUE

Interaction with the firewallNFQUEUE is a terminal target

An ACCEPT decision will shortcut the whole rulesetThis is the only possible decision but DROP

The previous method is thus incompatible with the existence of aruleset.

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 27 / 35

Page 55: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Living together: the IPS and the firewall case

Classic solutionUse mangle in the PREROUTING or FORWARD chains

The rule is an isolated tableThus no interaction with the rest of the rulesetThis mean we can do "nothing" in theses mangle chains

Alternative solutionUse advanced functionalities of NFQUEUESimulate a non terminal decision ( c© Patrick Mchardy)

Details: http://home.regit.org/2011/01/building-a-suricata-compliant-ruleset/

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 28 / 35

Page 56: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Living together: the IPS and the firewall case

Classic solutionUse mangle in the PREROUTING or FORWARD chains

The rule is an isolated tableThus no interaction with the rest of the rulesetThis mean we can do "nothing" in theses mangle chains

Alternative solutionUse advanced functionalities of NFQUEUESimulate a non terminal decision ( c© Patrick Mchardy)

Details: http://home.regit.org/2011/01/building-a-suricata-compliant-ruleset/

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 28 / 35

Page 57: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Alternate decision and packet marking

Alternate decisionsNF_REPEAT : send the packet back to the start of the tableNF_QUEUE : send the packet to another queue (chain softwareusing NFQUEUE)

nfq_set_markNew keyword that can be used in signaturePut a Netfilter mark on the packet if the signature matchCan be used in every network stack (QoS, routing, Netfilter)

Details: http://home.regit.org/2011/04/some-new-features-of-ips-mode-in-suricata-1-1beta2/

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 29 / 35

Page 58: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Alternate decision and packet marking

Alternate decisionsNF_REPEAT : send the packet back to the start of the tableNF_QUEUE : send the packet to another queue (chain softwareusing NFQUEUE)

nfq_set_markNew keyword that can be used in signaturePut a Netfilter mark on the packet if the signature matchCan be used in every network stack (QoS, routing, Netfilter)

Details: http://home.regit.org/2011/04/some-new-features-of-ips-mode-in-suricata-1-1beta2/

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 29 / 35

Page 59: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Logging of a suspect connexion (1/2)

ObjectiveDetect a suspect behaviourIncrease logging for the whole connexion

MethodThe alert put a Netfilter mark on the packetNetfilter propagate the mark to all packets of the related connexionNetfilter log every marked packets

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 30 / 35

Page 60: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Logging of a suspect connexion (1/2)

ObjectiveDetect a suspect behaviourIncrease logging for the whole connexion

MethodThe alert put a Netfilter mark on the packetNetfilter propagate the mark to all packets of the related connexionNetfilter log every marked packets

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 30 / 35

Page 61: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Logging of a suspect connexion (2/2)

The alert in Suricata

pass tcp any any −> any any (msg : "We were expect ing you " ; content : "Mr Bond" ; \nfq_set_mark :0 x007 /0 x f f f ; )

Netfilter settings

i p t a b l e s −I PREROUTING −t mangle − j CONNMARK −−res to re−marki p t a b l e s −A POSTROUTING −t mangle − j CONNMARK −−save−marki p t a b l e s −A POSTROUTING −t mangle −m mark −−mark 0x007 /0 x f f f − j NFLOG −−nf log−p r e f i x " Dr No log "

Next you can have ulogd2 to send everything in pcap ou SQL

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 31 / 35

Page 62: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Logging of a suspect connexion (2/2)

The alert in Suricata

pass tcp any any −> any any (msg : "We were expect ing you " ; content : "Mr Bond" ; \nfq_set_mark :0 x007 /0 x f f f ; )

Netfilter settings

i p t a b l e s −I PREROUTING −t mangle − j CONNMARK −−res to re−marki p t a b l e s −A POSTROUTING −t mangle − j CONNMARK −−save−marki p t a b l e s −A POSTROUTING −t mangle −m mark −−mark 0x007 /0 x f f f − j NFLOG −−nf log−p r e f i x " Dr No log "

Next you can have ulogd2 to send everything in pcap ou SQL

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 31 / 35

Page 63: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Logging of a suspect connexion (2/2)

The alert in Suricata

pass tcp any any −> any any (msg : "We were expect ing you " ; content : "Mr Bond" ; \nfq_set_mark :0 x007 /0 x f f f ; )

Netfilter settings

i p t a b l e s −I PREROUTING −t mangle − j CONNMARK −−res to re−marki p t a b l e s −A POSTROUTING −t mangle − j CONNMARK −−save−marki p t a b l e s −A POSTROUTING −t mangle −m mark −−mark 0x007 /0 x f f f − j NFLOG −−nf log−p r e f i x " Dr No log "

Next you can have ulogd2 to send everything in pcap ou SQL

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 31 / 35

Page 64: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

1 IntroductionIntroductionGoals of the projectEcosystem

2 FunctionnalitiesList of functionnalitiesSignaturesStream inlineCUDA

3 Advanced functionalities of SuricatalibHTPFlow variablesIPS advanced functions

4 The futureThe roadmapMore information

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 32 / 35

Page 65: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Roadmap

Finalize CUDA accelerationIP and DNS reputationExtract files and inspect their contentSCADA Preprocessor (thanks to Digital Bond)Keyword replaceKeyword geoipReload ruleset without breaking the flow analysisStateful Pattern Matching/Transaction-Aware Detections

Details: http://www.openinfosecfoundation.org/index.php/component/content/article/1-latest-news/116-oisf-state-of-the-project-report-phase-two

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 33 / 35

Page 66: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

How to test it fast and easy?

Already available in Debian, Ubuntu, Gentoo, FreebsdLive distribution:

SIEM live (Suricata + Prelude + Openvas) : https://www.wzdftpd.net/redmine/projects/siem-live/wiki

Smooth-Sec (Suricata + Snorby) :http://bailey.st/blog/smooth-sec/

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 34 / 35

Page 67: A short introduction to Suricata IDPS - RMLL2011.rmll.info/IMG/pdf/2011_rmll_suricata.pdf · Suricata ? (C) Jean-Marie Hullot, CC BY 3.0 Éric Leblond (OISF) A short introduction

Questions

Do you have questions ?

Big thanks:Pierre Chifflier : http://www.wzdftpd.net/blog/The whole OISF team and especially Victor Julien

Related read:OISF website: http://www.openinfosecfoundation.org/Suricata devel site:https://redmine.openinfosecfoundation.org/Victor Julien’s blog: http://www.inliniac.net/blog/Regit’s blog: http://home.regit.org

Join me:Mail: [email protected]: Regiteric

Éric Leblond (OISF) A short introduction to Suricata IDP S July 12th 2011 35 / 35