Slide 1

Slide 1 text

www.sti-innsbruck.at ELK para analistas de ciberseguridad y equipos blue team @jmortegac

Slide 2

Slide 2 text

About me 2 http://jmortega.github.io/

Slide 3

Slide 3 text

About me 3 https://www.youtube.com/c/JoseManuelOrtegadev/

Slide 4

Slide 4 text

Books 4 ● Introducción al desarrollo seguro ● Aspectos fundamentales de desarrollo seguro ● Herramientas OWASP ● Seguridad en aplicaciones Android ● Seguridad en proyectos NodeJS ● Seguridad en proyectos Python ● Análisis estático y dinámico en aplicaciones C/C++ ● Metodologías de desarrollo

Slide 5

Slide 5 text

Books 5 https://bpbonline.com/products/devops-and-containers-sec urity-security-and-monitoring-in-docker-containers

Slide 6

Slide 6 text

Books 6 AGENDA

Slide 7

Slide 7 text

Books 7

Slide 8

Slide 8 text

Books 8

Slide 9

Slide 9 text

Agenda • Introducción a los SIEM • Introducción a ELK y cómo nos puede ayudar para crear nuestro laboratorio de análisis • Indexación y búsqueda de datos en ElasticSearch • Recopilación de datos con LogStash • Creación de dashboards con Kibana • Ejemplo de aplicación sobre eventos basados en el registro del sistema y autenticación en el sistema operativo 9

Slide 10

Slide 10 text

RED TEAM vs BLUE TEAM 10

Slide 11

Slide 11 text

SIEM && THREAT HUNTING 11

Slide 12

Slide 12 text

SIEM 12

Slide 13

Slide 13 text

SIEM 13 • Gestionar de forma unificada los eventos • Centralizar los eventos de nuestra red en un único punto • Reducir el volumen de eventos • Detección de anomalías a través de la correlación de eventos y el uso de algoritmos de machine learning

Slide 14

Slide 14 text

Correlación de eventos de seguridad 14

Slide 15

Slide 15 text

Eventos de seguridad 15 • 1.Recoger logs de los activos de interés (servidores,dispositivos,firewalls) • 2.Normalizar los eventos con el objetivo de adaptar la información recibida al formato del SIEM. • 3.Enriquecer los datos • 4.Correlar los eventos • 5.Reportar informes y alertas

Slide 16

Slide 16 text

Obtención de logs 16 • Sistema operativo • Antivirus / Firewall • Proxy navegación web • Sistemas de detección y prevención de intrusos(IDS). • Servidor web • Conexión VPN • Servicios en la nube

Slide 17

Slide 17 text

Syslog 17

Slide 18

Slide 18 text

Funciones de una solución SIEM 18 • Centralizar la vista de potenciales amenazas • Determinar qué amenazas requiren resolución y cuáles son falsos positivos. • Escalar información a los analistas de seguridad para que puedan tomar una acción. • Documentar en un registro de auditoría los eventos detectados y cómo fueron resueltos

Slide 19

Slide 19 text

SIEM comerciales 19

Slide 20

Slide 20 text

SIEM open source 20

Slide 21

Slide 21 text

Elastic Stack 21

Slide 22

Slide 22 text

ElasticSearch 22

Slide 23

Slide 23 text

Elastic Common Schema 23

Slide 24

Slide 24 text

Fichero config ElasticSearch 24

Slide 25

Slide 25 text

ElasticSearch 25 curl http://localhost:9200/

Slide 26

Slide 26 text

ElasticSearch 26 curl localhost:9200/_cluster/health?pretty

Slide 27

Slide 27 text

ElasticSearch 27 $ curl -XPUT localhost:9200/logs/_doc/1 --header 'Content-Type: application/json' -d '{ "dirección_ip":"127.0.0.1","date":"01-01-2020"}' {"_index":"logs","_type":"_doc","_id":"1","_version":1,"result":"cr eated","_shards":{"total":2,"successful":1,"failed":0},"_seq_no": 0,"_primary_term":1} $ curl -XGET localhost:9200/logs/_search?pretty

Slide 28

Slide 28 text

Logstash 28

Slide 29

Slide 29 text

Logstash 29 sudo apt-get install logstash sudo systemctl start logstash

Slide 30

Slide 30 text

Logstash 30 input { file { path => "/access_log", start_position=>"beginning", } } filter{ } output { elasticsearch { hosts => ["localhost:9200"], index => "logstash-logs" } stdout{ codec=>rubydebug } }

Slide 31

Slide 31 text

Logstash 31 input { file { path => "/var/log/apache2/access.log" start_position => beginning } } filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}" } } date { match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ] } } output { elasticsearch { host => localhost } } }

Slide 32

Slide 32 text

Logstash plugins 32 https://www.elastic.co/guide/en/logstash/current/input-plugins. html

Slide 33

Slide 33 text

Logstash plugins 33 https://github.com/coralogix-resources/logstash-input-plugins

Slide 34

Slide 34 text

Logstash twitter 34 input{ twitter{ consumer_key => "" consumer_secret => "" oauth_token => "" oauth_token_secret => "" keywords=>["Ciberseguridad","Bitup2020","Bitup alicante"] } } output{ file{ path=>"tweets.txt" } stdout{ } elasticsearch{ index =>"twitter-log" } }

Slide 35

Slide 35 text

Análisis de logs 35 • /var/log/syslog filter { if [type] == "syslog" { grok { match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" } add_field => [ "received_at", "%{@timestamp}" ] add_field => [ "received_from", "%{host}" ] } syslog_pri { } date { match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ] } } }

Slide 36

Slide 36 text

Ejecutar logstash con fichero de configuración 36 • sudo bin/logstash -f /etc/logstash/conf.d/logstash.conf

Slide 37

Slide 37 text

Explorar los índices creados 37 • curl -XGET 127.0.0.1:9200/_cat/indices?v

Slide 38

Slide 38 text

Beats 38 • Packetbeat: Recopila y analiza paquetes de red. • Filebeat: Recopila y envía archivos de registro. • Metricbeat Recopila métricas de los sistemas operativos y servicios que se ejecutan en los servidores. • Winlogbeat: Recopila registros de eventos de Windows. • Audibeat: Responsable de colectar los logs con el objetivo de supervisar la integridad de los archivos. • Heartbeat: Es el encargado de monitorizar el estado de servidores.

Slide 39

Slide 39 text

FileBeat 39

Slide 40

Slide 40 text

FileBeat 40 • Syslog • Netflow • UDP/TCP

Slide 41

Slide 41 text

Proceso de análisis de logs con ELK 41

Slide 42

Slide 42 text

FileBeat 42 filebeat.prospectors: - input_type: log paths: - /var/log/syslog output.logstash: hosts: ["localhost:5044"]

Slide 43

Slide 43 text

Logstash 43 input { beats { port => 5044 } } output { elasticsearch { hosts => ["http://localhost:9200"] index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY .MM.dd}" } }

Slide 44

Slide 44 text

Explorar los índices creados 44 • $ curl -X GET http://localhost:9200/filebeat*/_search?pretty

Slide 45

Slide 45 text

Kibana 45

Slide 46

Slide 46 text

Kibana 46

Slide 47

Slide 47 text

Kibana 47

Slide 48

Slide 48 text

Kibana 48

Slide 49

Slide 49 text

Crear index pattern 49

Slide 50

Slide 50 text

Crear index pattern 50

Slide 51

Slide 51 text

Estructura de un índice 51

Slide 52

Slide 52 text

Visualizar datos 52

Slide 53

Slide 53 text

Peticiones y geolocalización 53

Slide 54

Slide 54 text

Kibana canvas 54

Slide 55

Slide 55 text

XPack 55

Slide 56

Slide 56 text

XPack SIEM 56

Slide 57

Slide 57 text

Activar XPack 57 • /etc/elasticsearch/elasticsearch.yml • xpack.security.enabled: true • systemctl stop elasticsearch • systemctl start elasticsearch

Slide 58

Slide 58 text

RedELK: Herramienta SIEM para Red Team https://github.com/outflanknl/RedELK/ 58

Slide 59

Slide 59 text

HELK: Hunting ELK https://github.com/Cyb3rWard0g/HELK 59

Slide 60

Slide 60 text

SIEMonster https://siemonster.com/ 60

Slide 61

Slide 61 text

Books 61

Slide 62

Slide 62 text

62