SIEM - H-CST-CYST2 - HBO-ICT 2024 PDF
Document Details
![ImmenseViolin](https://quizgecko.com/images/avatars/avatar-15.webp)
Uploaded by ImmenseViolin
De Haagse Hogeschool
2024
H-CST
P. Burghouwt
Tags
Summary
This document is a past paper for the H-CST-CYST2 course in the HBO-ICT program at De Haagse Hogeschool, covering SIEM (Security Information and Event Management) in 2024. It details the process steps, functionalities, and use cases of SIEM systems. This includes various aspects such as acquisition, data analysis, and visualization, and also uses examples of systems such as Microsoft Sentinel.
Full Transcript
SIEM H-CST-CYST2 hbo-ict 2024 P. Burghouwt CYST2 MONDET P. Burghouwt 1 Inhoud 1. Introductie: Wat is SIEM? 2. Acquisitie 3. Combinatie/Normali...
SIEM H-CST-CYST2 hbo-ict 2024 P. Burghouwt CYST2 MONDET P. Burghouwt 1 Inhoud 1. Introductie: Wat is SIEM? 2. Acquisitie 3. Combinatie/Normalisatie ▪ Regular Expressions 4. Analyse 5. Visualisatie en rapportage CYST2 MONDET P. Burghouwt 2 1. Introductie: Wat is SIEM? ▪ SIEM = Security Information and Event Management ▪ Historisch: ▪ SEM: real-time verwerking (security) machine data ▪ Analyse (vaak door correlatie en classificatie) van events ▪ Geprioriteerde mededelingen ▪ Visualisatie (bijv. door console views) ▪ SIM: long time opslag van (security) machine data ▪ (Doorzoekbare) Opslag ▪ Rapportage ▪ Aantonen compliance SIM+SEM=SIEM CYST2 MONDET P. Burghouwt 3 SIEM ▪ SIEM = Security Information and Event Management ▪ definitie NIST: Application that provides the ability to gather security data from information system components and present that data as actionable information via a single interface. ▪ definitie Gartner: Security information and event management (SIEM) technology supports threat detection, compliance and security incident management through the collection and analysis (both near real time and historical) of security events, as well as a wide variety of other event and contextual data sources. The core capabilities are a broad scope of log event collection and management, the ability to analyze log events and other data across disparate sources, and operational capabilities (such as incident management, dashboards and reporting). CYST2 MONDET P. Burghouwt 4 SIEM: functies? ▪ Log consolidation (verzamelen, normaliseren en opslaan van machine data) ▪ Analyse op mogelijke intrusions/aanvallen (intelligent correleren van threats, vulnerabilities, events, IoC’s, etc. om een mogelijke aanval te herkennen/modelleren) ▪ Ondersteuning incident management (geprioriteerde meldingen, advies over de respons, automatische response, registratie afhandeling) ▪ Rapportage (performance incident response, compliance (GDPR, NIS2, 27001, PCI-DSS, SOX, HIPAA, ISA/IEC62443 etc.), ad hoc (bijv. forensische rapportage) (afgeleid van Swift, A Practical Application of SIM/SEM/SIEM Automating Threat Identification, Sans, 2006) CYST2 MONDET P. Burghouwt 5 SIEM – Processtappen 1. Acquisition/Collection ▪ verzamelen machine data (meestal log-events) uit zoveel mogelijk bronnen 2. Combinatie/Normalisatie ▪ van de machine data 3. Analyse ▪ gericht op aanvalsdetectie en compliance-bewaking 4. Visualisatie & Rapportage ▪ situational awareness voor de optimale response CYST2 MONDET P. Burghouwt 6 Voorbeeld: Microsoft Sentinel ▪ Siem + SOAR ▪ SIEM = Security Information and Event Management (meten) ▪ SOAR = Beveiligingsindeling, automatisering en respons (response) https://learn.microsoft.com/nl-nl/azure/sentinel/overview CYST2 MONDET P. Burghouwt 7 Sentinal: Belangrijke functies ▪ Collect (acquisitie en normalisatie) ▪ Data wordt verzameld met data connectors: ▪ MS Defender (XDR, cloud...) ▪ Azure-services ▪ Syslog, REST-API, SNMP,... ▪ Analytics (detectie) ▪ regels om alle verzamelde data te doorzoeken op basis van analyseregels ▪ op basis van templates CYST2 MONDET P. Burghouwt 8 Vervolg Sentinal: Belangrijke functies ▪ Respond ▪ Naast waarschuwen ook automatisch reageren op basis van playbooks ▪ Connectors naar bestaande omgevingen en tools (van defender tot een ticket-systeem) ▪ Investigate (visualisatie en rapportage...) ▪ werkmappen met visualisatie e.d. van de data ▪ gebaseerd op templates ▪ roost cause analysis CYST2 MONDET P. Burghouwt 9 2. Acquisitie ▪ “acquisitie” is het “verwerven” van iets (of iemand). ▪ Machine data acquisition = het meten en verzamelen van machinedata. ibm.com CYST2 MONDET P. Burghouwt 10 Acquisitie: databronnen ▪ Machinedatabronnen ▪ Device (Syslog, Windows Event Log, SNMP, custom agents/bronnen) (zie les 2) ▪ Network Traffic (Netflow/IPFIX, sFlow, Rmon, custom agents/bronnen) (zie les 3) ▪ Security Detection (HIDS, NIDS, AV, spam-filter,...) (komt nog in les 5) ▪ Trouble Ticket system (tickets die niet aangemaakt zijn door de SIEM-applicatie, dus input van gebruikers e.d.) ▪ Vulnerabily scan reports (zie les 1 en gebruik tools in lab) ▪ Configuration data ▪ (External) threat intelligence (zie les 1) ▪ IAM data (gebruikers, rechten,...) ▪... CYST2 MONDET P. Burghouwt 11 3. Combinatie/Normalisatie CYST2 MONDET P. Burghouwt 12 Machinedata wordt vaak ongestructureerd aangeleverd CYST2 MONDET P. Burghouwt 13 Logbronnen combineren Verschillende logbronnen combineren is meer dan alles "echter elkaar plakken". ▪ Machinedata bestaat vaak uit ongestructureerde tekst ▪ Bovendien is de tekst per bron verschillende samengesteld ("appels en peren") ▪ Bijv. Een flat file met op elke regel een mededeling ▪ 66.249.75.210 - - [12/May/2018:11:10:36 +0000] "GET /robots.txt HTTP/1.1" 404 509 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)” ▪ May 12 11:19:55 www.hhs.nl sshd: Invalid user admin from 143.179.26.129 ▪ Dit wordt lastig bij zoeken en vergelijken ▪ Oplossing: Log-events structureren en slim opslaan in een database. CYST2 MONDET P. Burghouwt 14 Wat voor soort database? ▪ Twee mogelijkheden voor opslag in een database ▪ Relationele database (met tabellen) ▪ No-SQL-database (bijv. Elastic search) ▪ Daarvoor moeten de gegevens gestructureerd worden. ▪ Daarvoor zijn twee stappen nodig: ▪ Omzetting van logregels naar records met velden (parsing) ▪ Normalisatie van tabellen in de database CYST2 MONDET P. Burghouwt 15 Structureren we machinedata? Waar gebeurt het? 1. Bij de bron bijv. direct door de syslog-server 2. Bij een verzamelpunt bijv. Parsing (ontleding) van complexe logdata met Regular Expressions bijv. Normalisatie van databases CYST2 MONDET P. Burghouwt 16 Stuctureren bij de bron ▪ Voorbeeld RSyslog template en filter Fragment uit de configuratie in /etc/rsyslog.d: $template mytemplate,"%timegenerated%,%HOSTNAME%, %syslogpriority%,%syslogfacility%,%syslogtag%,%msg%\n” *.notice -/var/log/mysyslog.log;mytemplate ▪ De template “mytemplate” formateert de syslog-berichten. In dit geval ontstaat er een “comma separated values”-file (csv) ▪ De *.notice verstuurt alleen berichten met priority notational of ernstiger gaan door ▪ Op dezelfde wijze kunnen logfiles zelfs geformatteerd worden in JSON- of XML-format. CYST2 MONDET P. Burghouwt 17 RSyslog log default en csv Default May 13 09:01:48 testserver httpd: 86.89.105.195 - - [13/May/2018:09:01:48 +0000] "GET /administrator/ HTTP/1.1" 404 509 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:59.0) Gecko/20100101 Firefox/59.0” May 13 09:02:17 testserver sshd: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=86.89.105.195 CSV (mytemplate) May 13 09:01:48,testserver,5,22,httpd:, 86.89.105.195 - - [13/May/2018:09:01:48 +0000] "GET /administrator/ HTTP/1.1" 404 509 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:59.0) Gecko/20100101 Firefox/59.0” May 13 09:02:17,testserver,5,10,sshd:, PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=86.89.105.195 De komma's in het CSV-format scheiden bepaalde velden in een vaste volgorde, waardoor in feite een tabelvorm ontstaat (CSV=Comma Separated Values) CYST2 MONDET P. Burghouwt 18 Rsyslog messages in JSON format JSON (myjsontemplate + extra linefeeds) { "time":"2018-05-13T09:01:48.456698+00:00", "version":"1", "message":" 86.89.105.195 - - [13\/May\/2018:09:01:48 +0000] \"GET \/administrator\/ HTTP\/1.1\" 404 509 \"-\" \"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.13; rv:59.0) Gecko\/20100101 Firefox\/59.0\"", "sysloghost":"testserver", "severity":"notice", "facility":"local6", "programname":"httpd", "procid":"-" } { “time":"2018-05-13T09:02:17.693040+00:00", version":"1", "message":" PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=86.89.105.195", "sysloghost":"testserver", "severity":"notice", "facility":"authpriv", "programname":"sshd", "procid":"11122" } Nog meer structuur door JSON-format.: velden hebben een naam en worden volgorde-onafhankelijk CYST2 MONDET P. Burghouwt 19 Problemen bij structurering bij de bron: ▪ Niet elke bronapplicatie is zo flexibel als RSyslog, dus vaak zijn de formats bij de bron niet mogelijk. ▪ Resultaat is niet volledig genormaliseerd (kijk bijvoorbeeld in de voorbeelden van de vorige slide naar de “message”-velden) ▪ Oplossing: centraal structureren bij het verzamelpunt Technieken die we in deze les verder behandelen: ▪ Parsing van datavelden in "tekst" d.m.v. Regular Expressions ▪ Normalisatie van de database (aanpassing tabellen) CYST2 MONDET P. Burghouwt 20 Regular Expressions (REGEX) ▪ Hoe flat file om te zetten naar een tabel? ▪ Regular Expressions (REGEX) is een veelgebruikt en krachtig middel ▪ Op basis van pattern-matching in regels tekst worden velden (“groepen”) gedefinieerd en uitgelezen, zodat een tabel ontstaat. ▪ Bijna elke SIEM-applicatie biedt REGEX voor het inlezen van data. CYST2 MONDET P. Burghouwt 21 Matchen van characters ▪ \s matches a whitespace ▪ \S matches a non-whitespace ▪ \d matches a digit ▪ \D matches a non-digit ▪ \w matches a wordchar which is a-zA-Z0-9_ ▪ \W matches a non-wordchar ▪ \n matches newline ▪. matches any character but newline ▪ \. matches "." (\ is escape) ▪ [aB4-6] matches only one of the chars aB456 ▪ [^xY] matches anything but x and Y CYST2 MONDET P. Burghouwt 22 Omvang van de match ▪ ? 0 or 1x ▪ + 1 or more ▪ * 0 or more ▪ {4} 4x ▪ {,3} 0 – 3x ▪ {5,} 5x of more ▪ {3,5} 3x - 5x CYST2 MONDET P. Burghouwt 23 Groepen ▪ Met haakjes is een “groep” te isoleren, die automatisch in een variabele gaat. ▪ Voorbeeld teststring: ▪ Dit is een test met 10 en 234 als twee getallen. ▪ Opdracht: Isoleer (complete) getallen (tip: https://regex101.com/) ▪ "Mijn telefoonnummer is: 0612345678" ▪ Oplossing: (\d+) of ([0-9]+) variable = 0612345678 CYST2 MONDET P. Burghouwt 24 Nog wat handige zaken ▪ ^ Start van de regel ▪ $ Eind van de regel ▪ [abc] a or b or c ▪ [^abc] NOT (a OR b OR c) (werkt alleen binnen [ ]) \D NOT decimal (vergelijk met \d) ▪ ( ?: ) groep die geen output oplevert ▪ \ escape (voor bijzondere tekens zoals *. en + ) ▪ Zie verder de cheatsheet op BB en er is veel documentatie op internet te vinden. CYST2 MONDET P. Burghouwt 25 Voorbeeld ▪ Probeer alles uit op https://regex101.com/ String (staat ook op BB): May 12 11:19:55 www.hhs.nl sshd: Invalid user admin from 143.179.26.129 ▪ Selecteer de tijd. Regexp (\d+:\d{2}:\d{2}) of Regexp ([0-9]+:[0-9]{2}:[0-9]{2}) CYST2 MONDET P. Burghouwt 26 Oefening ▪ Voorbeeld onderstaande regel van een logfile: ▪ May 12 11:20:45 myhost sshd: Failed password for invalid user admin from 173.180.65.91 port 33085 ssh2 a. Isoleer de tijd en de datum b. Isoleer het IP-adres c. Isoleer de datum, tijd, hostname, service, PID, message d. Haal tevens het IP adres en de poort uit de message CYST2 MONDET P. Burghouwt 27 Oplossing Tijd: \s(\d\d:\d\d:\d\d)\s Datum: ^(\w{3})\s(\d+)\s IP: \s(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s Compleet bericht (incl. message): ^(\w{3})\s(\d+)\s(\d\d:\d\d:\d\d)\s(\w+)\s(\w+)\[(\d+)\]:\s(.+) Compleet bericht (met apart IP en poortnr): ^(\w{3})\s(\d+)\s(\d\d:\d\d:\d\d)\s(\w+)\s(\w+)\[(\d+)\]:\s(.+)\s(\d{1,3}\.\d{ 1,3}\.\d{1,3}\.\d{1,3})\sport\s([\d]{1,5})(.+) CYST2 MONDET P. Burghouwt 28 en verder.... ▪ Let op! ▪ Voor het verkrijgen van de gewenste normaalvorm is meestal meer nodig dan een REGEX ▪ Als de tijd als sleutel gekozen wordt voor een eventrecord, dan levert dat geen unieke sleutel op. (oplossing is een id toekennen aan elk eventrecord) ▪ Test goed op alle mogelijkheden! ▪ Bijvoorbeeld het IP-adres van de vorige pagina accepteert ook: 555.444.222.777 ▪ Vaak ondersteunen SIEM-applicaties niet alle REGEX syntax. ▪ Vaak worden een aantal velden al herkend en wordt REGEX gebruikt om een resterend “message”-veld verder te ontleden. CYST2 MONDET P. Burghouwt 29 Verdieping: Tabellen en normaalvormen ▪ 1e normaalvorm ▪ 1 waarde per veld ▪ Geen herhalingen van gelijksoortige velden ▪ 2e normaalvorm ▪ Alle velden afhankelijk van de volledige (samengestelde) sleutel ▪ Verwijderd redundantie ▪ 3e normaalvorm ▪ Alle velden hangen niet af van een “niet-sleutel”-veld ▪ Er bestaat ook nog een 4e en een 5e normaalvorm maar die worden niet vaak gebruikt. CYST2 MONDET P. Burghouwt 30 Example 1 (uit: Normalization in Databases, C. Haynes) ▪ Un-normalized Table Student# Advisor# Advisor Adv-Room Class1 Class2 Class3 1022 10 Susan Jones 412 101-07 143-01 159-02 4123 12 Anne Smith 216 101-07 159-02 214-01 CYST2 MONDET P. Burghouwt 31 ▪ Table in First Normal Form (uit: Normalization in Databases, C. Haynes) ▪ No Repeating Fields ▪ Data in Smallest Parts Adv- Student# Advisor# AdvisorFName AdvisorLName Class# Room 1022 10 Susan Jones 412 101-07 1022 10 Susan Jones 412 143-01 1022 10 Susan Jones 412 159-02 4123 12 Anne Smith 216 101-07 4123 12 Anne Smith 216 159-02 4123 12 Anne Smith 216 214-01 CYST2 MONDET P. Burghouwt 32 ▪ Tables in Second Normal Form (uit: Normalization in Databases, C. Haynes) ▪ Redundant Data Eliminated Table: Students Table: Registration Adv- Student# Class# Student# Advisor# AdvFirstName AdvLastName Room 1022 101-07 1022 10 Susan Jones 412 1022 143-01 4123 12 Anne Smith 216 1022 159-02 4123 201-01 4123 211-02 4123 214-01 CYST2 MONDET P. Burghouwt 33 ▪ Tables in Third Normal Form (uit: Normalization in Databases, C. Haynes) ▪ Data Not Dependent On Key is Eliminated Table: Advisors Table: Registration Adv- Advisor# AdvFirstName AdvLastName Room Student# Class# 10 Susan Jones 412 1022 101-07 12 Anne Smith 216 1022 143-01 Table: Students 1022 159-02 Student# Advisor# StudentFName StudentLName 4123 201-01 1022 10 Jane Mayo 4123 211-02 4123 12 Mark Baker 4123 214-01 CYST2 MONDET P. Burghouwt 34 NoSQL databases ▪ Normaliseren kost veel werk ▪ Joins (tabellen combineren tijdens het zoeken) kost ook veel werk ▪ Oplossing is ene gedistribueerde document database zoals Elastic Search ▪ Informatie wordt minder ver gestructureerd / genormaliseerd ▪ Snel zoeken naar trefwoorden e.d. onder andere op basis van gedistribueerde algoritmen ▪ Goed alternatief voor een relationele database bij logfiles CYST2 MONDET P. Burghouwt 35 3. Analyse CYST2 MONDET P. Burghouwt 36 SIEM correlatie ▪ In de SIEM-omgeving wordt geprobeerd verbanden te leggen tussen: ▪ Eigenschappen van events/traffic en een vaste regel (conditie) ▪ Eigenschappen tussen events/traffic van eenzelfde device (vertical correlation) ▪ Eigenschappen tussen events/traffic van verschillende devices (horizontal correlation) ▪ Eigenschappen tussen events/traffic en opgeslagen misuse signatures (misuse detection) ▪ Eigenschappen van events/traffic en opgeslagen normaal gedrag (anomaly detection) (Vaak worden tellers bijgehouden om bepaalde events of matches te aggregeren.) ▪ Het leggen van dergelijke verbanden heet correleren CYST2 MONDET P. Burghouwt 37 Classificeren/detecteren ▪ Veel events leiden tot het verhogen van bepaalde counters (bijvoorbeeld aantal mislukte logins). Dat is een vorm van aggregeren. Als binnen een bepaalde tijd een bepaalde drempelwaarde overschreden wordt, zal deze situatie geclassificeerd worden als een intrusion. ▪ Bij een binaire classificatie (bijvoorbeeld wel of geen malware) heet het ook wel detecteren Voorbeeld: 1. Een aantal TCP-flows van dezelfde afzender en zonder FIN-flag wordt geteld (deze aggregatie maakt correlatie met een mogelijk aanvalspatroon mogelijk. Hier waarschijnlijk een bepaald type DoS-aanval). 2. Binnen 5 minuten worden de flows van situatie 1 meer dan 100x gemeten. Daarom wordt deze situatie geclassificeerd als een DoS-aanval. CYST2 MONDET P. Burghouwt 38 Use cases (1) ▪ De kracht van de SIEM-omgeving is analyse op basis van heel veel data ▪ Daardoor blijft de analyse niet beperkt tot een netwerksegment of één device (in tegenstelling tot “lokale” HIDS en NIDS – zie volgende les) ▪ Maar welke data (bijvoorbeeld welke events) zijn relevant?? ▪ Soms universeel (bijvoorbeeld email met een malware attachment willen we zichtbaar krijgen in een SIEM) ▪ Soms afhankelijk van de organisatie en de activiteiten (bijvoorbeeld wellicht wordt een systeem bepaalde dagen van de week niet gebruikt. Als dat dan toch gebeurt... ). ▪ De relevantie van data (en wat ermee gedaan moet worden) kan bepaald worden aan de hand van scenario’s: de Use Cases. CYST2 MONDET P. Burghouwt 39 Use Cases (2) ▪ Use Cases kunnen vertaald worden naar ▪ relevante machine data ▪ correlatie- en classificatie-regels ▪ passende visualisatie en reportage ▪ Voorbeelden van scenario’s (bron http://resources.infosecinstitute.com): ▪ Detection of Possible Brute Force Attack door login failures te tellen ▪ Detection of Insider Threat door Acceptable Use Monitoring ▪ Logging werkt niet (helemaal niet of vreemde medelingen) ▪ Detecteren van onverwachte poorten, diensten (op basis van verkeer, port/vuln. scan- resultaten) CYST2 MONDET P. Burghouwt 40 en verder... ▪ Veel regels aggregeren niet, maar classificeren al bij de 1e keer van optreden ▪ bijvoorbeeld in geval van correlatie met een signature van bekende malware. Je wil niet dat je SIEM-proces pas na drie keer waarnemen van de malware een melding gaat geven. ▪ Naast regels over flows en events kunnen natuurlijk ook compliance- gerelateerde overtredingen op deze wijze gemeten worden. ▪ Ook zoekfuncties spelen een belangrijke rol bij SIEM (zoals bij zoekmachines). CYST2 MONDET P. Burghouwt 41 4. Visualisatie en Rapportage ▪ https://youtu.be/Q4iyK_jA4c8 CYST2 MONDET P. Burghouwt 42 Qradar Threat & Security Mon. CYST2 MONDET P. Burghouwt 43 QRadar Vulnerability Management CYST2 MONDET P. Burghouwt 44 Qradar: User Analytics CYST2 MONDET P. Burghouwt 45 Qradar SSL dashboard CYST2 MONDET P. Burghouwt 46 Application Overview CYST2 MONDET P. Burghouwt 47 Toepassing SIEM ▪ SIEM wordt toegepast in een SOC (=Security Operations Centre) ▪ De opsomming van mogelijke activiteiten in een SOC demonstreert goed dat SIEM bij vrijwel elke activiteit een rol kan spelen. 1. Monitoring ▪ Threat Intelligence ▪ Configuration management ▪ Vulnerability management ▪ Log management ▪ Detection security incidents ▪ Compliance monitoring CYST2 MONDET P. Burghouwt 48 Toepassing SIEM ▪ Vervolg van mogelijke SOC-activiteiten: 2. Incident response management (vaak onderdelen of georganiseerd in CSIRT/CERT) ▪ Advance planning ▪ Triage (=eerste lijn, prioritering) ▪ Response ▪ Post mortem (afhandeling na afloop incident) ▪ Incident Reporting ▪ Review, education 3. Disaster recovery 4. IAM (Identity Access Management) 5. Incidenteel onderzoek (vaak forensisch) 6. Admin support (= onderhoud/monitoring SOC-systemen) 7.... CYST2 MONDET P. Burghouwt 49