Kargus : A Highly-scalable Software-based Intrusion Detection System

41
Kargus: A Highly-scalable Software- based Intrusion Detection System M. Asim Jamshed * , Jihyung Lee , Sangwoo Moon , Insu Yun * , Deokjin Kim , Sungryoul Lee , Yung Yi , KyoungSoo Park * * Networked & Distributed Computing Systems Lab, KAIST † Laboratory of Network Architecture Design & Analysis, KAIST ‡ Cyber R&D Division, NSRI

description

Kargus : A Highly-scalable Software-based Intrusion Detection System. M. Asim Jamshed * , Jihyung Lee † , Sangwoo Moon † , Insu Yun * , Deokjin Kim ‡ , Sungryoul Lee ‡ , Yung Yi † , KyoungSoo Park * * Networked & Distributed Computing Systems Lab, KAIST - PowerPoint PPT Presentation

Transcript of Kargus : A Highly-scalable Software-based Intrusion Detection System

Page 1: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Kargus: A Highly-scalable Soft-ware-based

Intrusion Detection SystemM. Asim Jamshed*, Jihyung Lee†, Sangwoo Moon†, Insu Yun*,

Deokjin Kim‡, Sungryoul Lee‡, Yung Yi†, KyoungSoo Park*

* Networked & Distributed Computing Systems Lab, KAIST† Laboratory of Network Architecture Design & Analysis, KAIST

‡ Cyber R&D Division, NSRI

Page 2: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Internet

Network Intrusion Detection Sys-tems (NIDS)

• Detect known malicious activities– Port scans, SQL injections, buffer overflows, etc.

• Deep packet inspection– Detect malicious signatures (rules) in each packet

• Desirable features– High performance (> 10Gbps) with precision– Easy maintenance

• Frequent ruleset updates

2

NIDSAttack

Page 3: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Hardware vs. Software

• H/W-based NIDS– Specialized hardware

• ASIC, TCAM, etc.– High performance– Expensive

• Annual servicing costs– Low flexibility

• S/W-based NIDS– Commodity machines– High flexibility– Low performance

• DDoS/packet drops

3

IDS/IPS Sensors (10s of Gbps)

IDS/IPS M8000(10s of Gbps)

Open-source S/W

~ US$ 20,000 - 60,000

~ US$ 10,000 - 24,000

≤ ~2 Gbps

Page 4: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Goals

• S/W-based NIDS– Commodity machines– High flexibility

4

– High performance

Page 5: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Typical Signature-based NIDS Ar-chitecture

5

PacketAcquisition

Preprocessing

DecodeFlow management

Reassembly

MatchSuccess

Match Failure(Innocent Flow)

Multi-string Pattern

MatchingEvaluation Failure(Innocent Flow)

EvaluationSuccess

Rule Options Evaluation Output

MaliciousFlow

alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS 80 (msg:“possible attack attempt BACKDOOR optix runtime detection"; content:"/whitepages/page_me/100.html"; pcre:"/body=\x2521\x2521\x2521Optix\s+Pro\s+v\d+\x252E\d+\S+sErver\s+Online\x2521\x2521\x2521/")

Bottlenecks

* PCRE: Perl Compatible Regular Expression

Page 6: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Contributions

A highly-scalable software-based NIDS for high-speed networkGoal

Slow software NIDS

Fast software NIDS

Inefficient packet acquisition

Expensive string & PCRE pattern matching

Multi-core packet acquisition

Parallel processing & GPU offloading

Bottlenecks

Solutions

Fastest S/W signature-based IDS: 33Gbps 100% malicious traffic: 10 Gbps Real network traffic: ~24 Gbps

Outcome

6

Page 7: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Challenge 1: Packet Acquisition

• Default packet module: Packet CAPture (PCAP) library– Unsuitable for multi-core environment– Low performing– More power consumption

• Multi-core packet capture library is required

7

[Core 1]

[Core 2]

[Core 3]

[Core 4]

[Core 5]

10 Gbps NIC B10 Gbps NIC A

[Core 7]

[Core 8]

[Core 9]

[Core 10]

[Core 11]

10 Gbps NIC D10 Gbps NIC C

Packet RX bandwidth*

0.4-6.7 Gbps CPU utilization100 %

* Intel Xeon X5680, 3.33 GHz, 12 MB L3 Cache

Page 8: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Solution: PacketShader I/O

• PacketShader I/O– Uniformly distributes packets based on flow info by RSS hash-

ing • Source/destination IP addresses, port numbers, protocol-id

– 1 core can read packets from RSS queues of multiple NICs– Reads packets in batches (32 ~ 4096)

• Symmetric Receive-Side Scaling (RSS)– Passes packets of 1 connection to the same queue

8

* S. Han et al., “PacketShader: a GPU-accelerated software router”, ACM SIGCOMM 2010

RxQA1

RxQB1

RxQA2

RxQB2

RxQA3

RxQB3

RxQA4

RxQB4

RxQA5

RxQB5

[Core 1]

[Core 2]

[Core 3]

[Core 4]

[Core 5]

10 Gbps NIC B10 Gbps NIC A

Packet RX bandwidth 0.4 - 6.7 Gbps 40 GbpsCPU utilization

100 % 16-29%

Page 9: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Challenge 2: Pattern Matching

• CPU intensive tasks for serial packet scanning

• Major bottlenecks– Multi-string matching (Aho-Corasick phase)– PCRE evaluation (if ‘pcre’ rule option exists in rule)

• On an Intel Xeon X5680, 3.33 GHz, 12 MB L3 Cache– Aho-Corasick analyzing bandwidth per core: 2.15 Gbps– PCRE analyzing bandwidth per core: 0.52 Gbps

9

Page 10: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Solution: GPU for Pattern Match-ing

• GPUs– Containing 100s of SIMD processors

• 512 cores for NVIDIA GTX 580– Ideal for parallel data processing without

branches• DFA-based pattern matching on GPUs

– Multi-string matching using Aho-Corasick algo-rithm

– PCRE matching• Pipelined execution in CPU/GPU

– Concurrent copy and execution

10

Engine ThreadPacket

Acquisition PreprocessMulti-string

Matching

Rule Option

Evaluation

GPU Dispatcher Thread

Offloading

Offloading

GPUMulti-string

Matching

PCREMatching

Multi-string Matching Queue

PCRE Matching Queue

Aho-Corasick bandwidth 2.15 Gbps

39 Gbps PCRE bandwidth

0.52 Gbps8.9 Gbps

Page 11: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Optimization 1: IDS Architecture

• How to best utilize the multi-core architecture?• Pattern matching is the eventual bottleneck

• Run entire engine on each core

11

Function Time % ModuleacsmSearchSparseDFA_Full 51.56 multi-string match-

ingList_GetNextState 13.91 multi-string match-

ingmSearch 9.18 multi-string match-

ingin_chksum_tcp 2.63 preprocessing

* GNU gprof profiling results

Page 12: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Solution: Single-process Multi-thread

• Runs multiple IDS engine threads & GPU dispatcher threads concurrently– Shared address space– Less GPU memory consumption– Higher GPU utilization & shorter service latency

12

GPU memory usage1/6

Packet Acquisition

Core 1

Preprocess

Multi-string

Matching

Rule Option

Evaluation

Packet Acquisition

Core 2

Preprocess

Multi-string

Matching

Rule Option

Evaluation

Packet Acquisition

Core 3

Preprocess

Multi-string

Matching

Rule Option

Evaluation

Packet Acquisition

Core 4

Preprocess

Multi-string

Matching

Rule Option

Evaluation

Packet Acquisition

Core 5

Preprocess

Multi-string

Matching

Rule Option

Evaluation

Core 6GPU Dispatcher Thread

Single thread pinned at core 1

Page 13: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Architecture

• Non Uniform Memory Access (NUMA)-aware• Core framework as deployed in dual hexa-core system• Can be configured to various NUMA set-ups accordingly

13

▲ Kargus configuration on a dual NUMA hexanode machine having 4 NICs, and 2 GPUs

Page 14: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

• Caveats– Long per-packet processing latency:

• Buffering in GPU dispatcher– More power consumption

• NVIDIA GTX 580: 512 cores• Use:

– CPU when ingress rate is low (idle GPU)– GPU when ingress rate is high

Optimization 2: GPU Usage

14

Page 15: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

• Load balancing between CPU & GPU– Reads packets from NIC queues per cycle– Analyzes smaller # of packets at each cycle (a < b < c)– Increases analyzing rate if queue length increases– Activates GPU if queue length increases

CPU CPU GPU

Solution: Dynamic Load Balancing

15

a b

b ca

cα β γ

Internal packet queue (per engine)

GPU Queue Length

Packet latency with GPU : 640 μsecs

CPU: 13 μsecs

Page 16: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Optimization 3: Batched Process-ing

• Huge per-packet processing overhead– > 10 million packets per second for small-sized packets at 10

Gbps– reduces overall processing throughput

• Function call batching– Reads group of packets from RX queues at once– Pass the batch of packets to each function

16

Decode(p) Preprocess(p) Multistring_match(p)

Decode(list-p) Preprocess(list-p) Multistring_match(list-p)

2x faster processing rate

Page 17: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Kargus Specifications

17

NUMA node 1

12 GB DRAM (3GB x 4)

Intel 82599 Gigabit Ethernet Adapter (dual port)

NVIDIA GTX 580 GPU

NUMA node 2

Intel X5680 3.33 GHz (hexacore)12 MB L3 NUMA-Shared Cache $1,21

0

$512

$370

$100

Total Cost (incl. serverboard) =

~$7,000

Page 18: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

IDS Benchmarking Tool

• Generates packets at line rate (40 Gbps) – Random TCP packets (innocent)– Attack packets are generated by attack rule-set

• Support packet replay using PCAP files• Useful for performance evaluation

18

Page 19: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Kargus Performance Evaluation

• Micro-benchmarks– Input traffic rate: 40 Gbps– Evaluate Kargus (~3,000 HTTP rules) against:

• Kargus-CPU-only (12 engines)• Snort with PF_RING• MIDeA*

• Refer to the paper for more results

19

* G. Vasiliadis et al., “MIDeA: a multi-parallel intrusion detection architecture”, ACM CCS ‘11

Page 20: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

64 218 256 818 1024 151805

101520253035

MIDeASnort w/ PF_RingKargus CPU-onlyKargus CPU/GPU

Packet size (Bytes)

Thro

ughp

ut (G

bps)

64 218 256 818 1024 151805

101520253035

Packet size (Bytes)

Thro

ughp

ut (G

bps)

Innocent Traffic Performance

20

Actual payload analyzing bandwidth

• 2.7-4.5x faster than Snort• 1.9-4.3x faster than MIDeA

Page 21: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Malicious Traffic Performance

21

64 256 1024 15180

5

10

15

20

25

30

35Kargus, 25%Kargus, 50%Kargus, 100%Snort+PF_Ring, 25%Snort+PF_Ring, 50%Snort+PF_Ring, 100%

Packet size (Bytes)

Thro

ughp

ut (G

bps)

• 5x faster than Snort

Page 22: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Real Network Traffic

• Three 10Gbps LTE backbone traces of a major ISP in Korea:– Time duration of each trace: 30 mins ~ 1 hour– TCP/IPv4 traffic:

• 84 GB of PCAP traces• 109.3 million packets• 845K TCP sessions

• Total analyzing rate: 25.2 Gbps– Bottleneck: Flow Management (preprocessing)

22

Page 23: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Effects of Dynamic GPU Load Bal-ancing

23

0 5 10 20 33400450500550600650700750800850900

Kargus w/o LB (polling)Kargus w/o LBKargus w/ LB

Offered Incoming Traffic (Gbps) [Packet Size: 1518 B]

Pow

er C

onsu

mpt

ion

(Wat

ts)

• Varying incoming traffic rates– Packet size = 1518 B

8.7%20%

Page 24: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Conclusion

• Software-based NIDS:– Based on commodity hardware

• Competes with hardware-based counterparts– 5x faster than previous S/W-based NIDS– Power efficient– Cost effective

24

> 25 Gbps (real traffic)> 33 Gbps (synthetic traffic)US $~7,000/-

Page 25: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Thank You

25

[email protected]

https://shader.kaist.edu/kargus/

Page 26: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Backup Slides

Page 27: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Kargus vs. MIDeA

27

UPDATE MIDEA KARGUS OUTCOME

* G. Vasiliadis, M.Polychronakis, and S. Ioannidis, “MIDeA: a multi-parallel intrusion detection architecture”, ACM CCS 2011

Page 28: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Kargus vs. MIDeA

28

UPDATE MIDEA KARGUS OUTCOME

Packet acquisi-tion PF_RING PacketShader I/O 70% lower CPU utiliza-

tion

* G. Vasiliadis, M.Polychronakis, and S. Ioannidis, “MIDeA: a multi-parallel intrusion detection architecture”, ACM CCS 2011

Page 29: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Kargus vs. MIDeA

29

UPDATE MIDEA KARGUS OUTCOME

Packet acquisi-tion PF_RING PacketShader I/O 70% lower CPU utiliza-

tion

Detection en-gine

GPU-support for Aho-Corasick

GPU-support for Aho-Corasick &

PCRE65% faster detection

rate

* G. Vasiliadis, M.Polychronakis, and S. Ioannidis, “MIDeA: a multi-parallel intrusion detection architecture”, ACM CCS 2011

Page 30: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Kargus vs. MIDeA

30

UPDATE MIDEA KARGUS OUTCOME

Packet acquisi-tion PF_RING PacketShader I/O 70% lower CPU utiliza-

tion

Detection en-gine

GPU-support for Aho-Corasick

GPU-support for Aho-Corasick &

PCRE65% faster detection

rate

Architecture Process-based Thread-based 1/6 GPU memory us-age

* G. Vasiliadis, M.Polychronakis, and S. Ioannidis, “MIDeA: a multi-parallel intrusion detection architecture”, ACM CCS 2011

Page 31: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Kargus vs. MIDeA

31

UPDATE MIDEA KARGUS OUTCOME

Packet acquisi-tion PF_RING PacketShader I/O 70% lower CPU utiliza-

tion

Detection en-gine

GPU-support for Aho-Corasick

GPU-support for Aho-Corasick &

PCRE65% faster detection

rate

Architecture Process-based Thread-based 1/6 GPU memory us-age

Batch process-ing

Batching only for detection engine

(GPU)

Batching from packet

acquisition to out-put

1.9x higher throughput

* G. Vasiliadis, M.Polychronakis, and S. Ioannidis, “MIDeA: a multi-parallel intrusion detection architecture”, ACM CCS 2011

Page 32: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Kargus vs. MIDeA

32

UPDATE MIDEA KARGUS OUTCOME

Packet acquisi-tion PF_RING PacketShader I/O 70% lower CPU utiliza-

tion

Detection en-gine

GPU-support for Aho-Corasick

GPU-support for Aho-Corasick &

PCRE65% faster detection

rate

Architecture Process-based Thread-based 1/6 GPU memory us-age

Batch process-ing

Batching only for detection engine

(GPU)

Batching from packet

acquisition to out-put

1.9x higher throughput

Power-efficient

Always GPU (does not offload only when packet

size is too small)

Opportunistic of -floading to GPUs

(Ingress traffic rate)15% power saving

* G. Vasiliadis, M.Polychronakis, and S. Ioannidis, “MIDeA: a multi-parallel intrusion detection architecture”, ACM CCS 2011

Page 33: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Receive-Side Scaling (RSS)

33

• RSS uses Toeplitz hash function (with a random secret key)

Algorithm: RSS Hash Computationfunction ComputeRSSHash(Input[], RSK)

ret = 0;for each bit b in Input[] do

if b == 1 thenret ^= (left-most 32 bits of RSK);

endifshift RSK left 1 bit position;

end forend function

Page 34: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Symmetric Receive-Side Scaling

34

• Update RSK (Shinae et al.)

0x6d5a 0x6d5a 0x6d5a 0x6d5a0x6d5a 0x6d5a 0x6d5a 0x6d5a0x6d5a 0x6d5a 0x6d5a 0x6d5a0x6d5a 0x6d5a 0x6d5a 0x6d5a0x6d5a 0x6d5a 0x6d5a 0x6d5a

0x6d5a 0x56da 0x255b 0x0ec20x4167 0x253d 0x43a3 0x8fb00xd0ca 0x2bcb 0xae7b 0x30b40x77cb 0x2d3a 0x8030 0xf20c0x6a42 0xb73b 0xbeac 0x01fa

Page 35: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Why use a GPU?

35

GTX 580: 512 cores

ALU

Xeon X5680:

6 cores

Control

Cache

ALU

ALU ALU

ALUALU

ALU

VS

*Slide adapted from NVIDIA CUDA C A Programming Guide Version 4.2 (Figure 1-2)

Page 36: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

GPU Microbenchmarks – Aho-Cora-sick

36

32 64 128 256 512 1024 2048 4096 8192 163840

5

10

15

20

25

30

35

40GPU throughput (2B per entry)CPU throughput

The number of packets in a batch (pkts/batch)

Thro

ughp

ut (G

bps)

2.15 Gbps

39 Gbps

Page 37: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

GPU Microbenchmarks – PCRE

37

32 64 128 256 512 1024 2048 4096 8192 163840123456789

10GPU throughputCPU throughput

The number of packets in a batch (pkts/batch)

Thro

ughp

ut (G

bps)

0.52 Gbps

8.9 Gbps

Page 38: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

• Use of global variables minimal– Avoids compulsory cache misses– Eliminates cross-NUMA cache bouncing effects

64 128 256 512 10241

1.21.41.61.8

22.22.42.62.8

Innocent Traffic

Effects of NUMA-aware Data Placement

38

Packet Size (Bytes)

Perfo

rman

ce S

peed

up

1518

Page 39: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

CPU-only analysis for small-sized packets

• Offloading small-sized packets to the GPU is expensive– Contention across page-locked DMA accessible memory with

GPU– GPU operational cost of packet metadata increases

39

64 68 72 76 80 84 88 92 96 1001041081121161201241280

2,000 4,000 6,000 8,000

10,000 12,000 GPU total latency

CPU total latency

Packet Size (Bytes)

Late

ncy

(mse

c)

82

Page 40: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Challenge 1: Packet Acquisition

• Default packet module: Packet CAPture (PCAP) library– Unsuitable for multi-core environment– Low Performing

40

64 128 256 512 1024 151805

10152025303540

0

20

40

60

80

100

0.4 0.8 1.5 2.9 5.0 6.7

PCAP polling PCAP polling CPU %

Packet Size (bytes)

Rece

ivin

g Th

roug

hput

(G

bps)

CPU

Utili

zatio

n (%

)

Page 41: Kargus : A Highly-scalable Software-based  Intrusion Detection  System

Solution: PacketShader* I/O

41

64 128 256 512 1024 151805

10152025303540

0

20

40

60

80

100

0.4 0.8 1.5 2.9 5.0 6.7

PCAP polling PSIO PCAP polling CPU % PSIO CPU %

Packet Size (bytes)

Rece

ivin

g Th

roug

hput

(G

bps)

CPU

Utili

zatio

n (%

)