Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ELK für Incident Response

Avatar for joao joao
November 04, 2015

ELK für Incident Response

ELK für Incident Response.

Die Präsentation beschreibt den Aufbau einer virtualisierten Umgebung, auf dem ein ELK-Stack für Incident Response betrieben wird.

Präsentiert auf dem CERT-Verbund Treffen, Karlsruhe, 4. Nov. 2015.

* Elasticsearch, Logstash, and Kibana.

Avatar for joao

joao

November 04, 2015
Tweet

Other Decks in Technology

Transcript

  1. während eınes ıncıdents Sehr großes Volume von Logdaten Aus verschiedenen

    Quellen Nur von den gängigen Quellen sind Format und Inhalt bekannt
  2. log­quellen und datenvolumen @dt Gängige Log-Quelle Web-Proxys, DNS, DHCP, Firewalls

    Inhalt und Format bereits bekannt Weitere Log-Quelle VoIP, Mobilfunk- und Festnetz- Komponente, Datenbanksysteme Inhalt und Format der Logs können stark variieren ↪ vorbereitet sein Die IT/Office Web-Proxys (Bluecoat) generieren ca. 6-10 GB/Stunde. 5 Minuten von S I P S U B S C R I B E Nachrichten hatte ca. 780 MB (in 2014).
  3. wır brauchen neue werĸzeuge g r e p , a

    w k , s e d : nicht skalierbar ist nach 0,5 Millionen Logzeilen tot Überblick behalten, aber wie?
  4. funĸtıonale basısanforderungen Wiederverwendbar & Wiederaufbaubar Flexibilität Logformat und Inhalte/Felder Datentransport/Übertragungswege

    Skalierbarkeit Datenvolume und Datenrate Anzahl der nutzenden Personen Steile Lernkurve und geringere Lernaufwände
  5. ĸomponente und systemarchıteĸtur * u b u n t u

    l i n u x * p a c k e r . i o * v m w a r e e s x * r a b b i t M Q * e l a s t i c s e a r c h * l o g s t a s h * k i b a n a * p y t h o n * p u p p e t + - - + + - - - - - - - - + | + - - + | + - - - - - - - - + + - - - + | + - - - - > + | + - - + | | + - - - + + - - - - - - - - + | | | + - - - + + - - + | + - - - - - > | + - - - - - - - - + + - - - + + - - - + | + - - - + | + - - - + D A V E + - - - - - - - - - - - - - - - + + - - - - - - - + + - - - - - + + - - - - - - - - - - - - - + | ( L o g S o u r c e ) + - - - + + - - - + | + - - - + + - - + | + - - - + N F S M o u n t + - - - - - > | + - - - - - - - - + a n a l y s t l o g s t a s h - s h i p p e r r a b b i t M Q | + - - - + | | + - - + | | + - - - + + - - - - - - - - + + - - - - > + | | + - - - + + - - + | + - - - - - - - - + l o g s t a s h - c o n s u m e r | c l u s t e r + - - + | + - - - - - - - - + e l a s t i c s e a r c h c l u s t e r
  6. hardware­ressourcen Count Machine type Disk size (GB) RAM (MB) #vCPUs

    RAM (GB) #vCPU 1 analyst 10 8192 4 8 4 10* elastic-# 256 max. 61440 4 dynamic 40 5* logstash-consumer-# 10 4096 4 20 20 1 logstash-shipper 10 4096 4 4 4 1 rabbitMQ 10 16384 8 16 8 * Default values, configurable and expansible. The ESX Host machine is a HP ProLiant DL560 Gen8, Intel(R) Xeon(R) CPU E5-4640 v2 @ 2.20GHz, 4 Physical CPU, 10 Cores (80 Logical Cores). RAM 384 GB.
  7. worĸflow Neues Cluster aufsetzen Konfigurationsdateien (logstash-shipper, logstash-consumer) anpassen Testlauf durchführen

    und ggf. Konfiguration anpassen Zur Nutzung freigeben Monitoring Hardware-Ressourcen und Nachsteuerung Destroy Cluster
  8. ĸonfıguratıon von logstash i n p u t { r

    a b b i t m q { e x c h a n g e = > " l o g s t a s h - e x c h a n g e " h o s t = > " 1 0 . 5 . 5 . 5 0 " t y p e = > " b l u e c o a t - p r o x y " c o d e c = > j s o n { c h a r s e t = > " C P 1 2 5 2 " } } } f i l t e r { i f [ t y p e ] = = " b l u e c o a t - p r o x y " { # d r o p c o m m e n t l i n e s i f ( [ m e s s a g e ] = ~ / ^ # / ) { d r o p { } } c s v { c o l u m n s = > [ " d a t e " , " t i m e " , " t i m e _ t a k e n " , " c _ i p " , " s _ s u p p l i e r _ n a m e " , " s _ s u p p l i e r _ i p " , \ " s c _ s t a t u s " , " s _ a c t i o n " , " s c _ b y t e s " , " c s _ b y t e s " , " c s _ m e t h o d " , " c s _ u r i _ s c h e m e " , " c s _ h o s t " , \ " c s _ u r i _ p a t h " , " c s _ u r i _ q u e r y " , " s _ h i e r a r c h y " , " r s _ c o n t e n t _ t y p e " , " c s _ u s e r _ a g e n t " , \ " s c _ f i l t e r _ r e s u l t " , " s c _ f i l t e r _ c a t e g o r y " , " s _ i p " , " s _ s i t e n a m e " , " c s _ x _ f o r w a r d e d _ f o r " , \ " s _ c o m p u t e r n a m e " , " c s _ v e r s i o n " , " r _ p o r t " ] s e p a r a t o r = > " " } } } o u t p u t { e l a s t i c s e a r c h { h o s t = > [ " 1 0 . 5 . 5 . 1 0 1 " , " 1 0 . 5 . 5 . 1 0 2 " , " 1 0 . 5 . 5 . 1 0 3 " , " 1 0 . 5 . 5 . 1 0 4 " , " 1 0 . 5 . 5 . 1 0 5 " ] b i n d _ h o s t = > " 1 0 . 5 . 5 . 5 0 " c l u s t e r = > " e l k - f o r e n s i c s " p r o t o c o l = > " n o d e " w o r k e r s = > 1 m a n a g e _ t e m p l a t e = > t r u e # y o u n e e d t o u p l o a d t h e t e m p l a t e t o e l a s t i c s e a r c h i n d e x = > " l o g s t a s h - % { t y p e } - % { + Y Y Y Y - M M - d d } " } }
  9. was haben wır soweıt erreıcht? Neue fallbezogene Umgebung innerhalb einiger

    Stunden aufsetzen Große Datenvolume in kurzer Zeit indizieren und auswerten Rückstand während IR minimieren Effektive Suche der IOCs in den Logdaten IP-Adresse oder DNS-Namen in 5,3 Mrd Events aus 6 TB Logdaten Überblick behalten, trotz großer Datenmenge
  10. pros and cons Komponente ⬌ stabil und solide, nahtlos integriert

    Elasticsearch ⬌ eigene Welt an sich, sehr performant Logstash ⬌ einfache Integration in IR durch Flexibilität Kibana ⬌ sehr schnell nutzbar und an die erste Ergebnisse Einige Funktionalitäten sind nicht im Fokus von ELK Alarming Kollaboration, Notizen Tracking, Aufgabenliste Performance hat auch Grenzen Analyst muss Datenmenge berücksichtigen
  11. nächste schrıtte Testen, Testen, Testen Performance, Stabilität, Import von verschiedenen

    Logs und Inhalt Dokumentation aufpolieren Analyst/User Guide (inkl. cheat sheets, quick-start, ...) Nützliche Dashboards, vorkonfigurierte Queries, usw. Operations Guide Projektmanagement (Releases, QA, ...)