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

ELK para analistas de seguridad y equipos Blue Team

7c4b1ae16723b56facc7a8a8f95aa6ce?s=47 jmortegac
October 24, 2020

ELK para analistas de seguridad y equipos Blue Team

La charla trataría sobre cómo usar el stack Elasticsearch, Logstash y Kibana (ELK) para respuestas ante incidentes, monitorización de logs y otras tareas relacionadas con los equipos blue team. Por ejemplo, podríamos analizar los registros basados en autenticación y eventos del sistema operativo.
Entre los puntos a tratar podemos destacar:

-Introducción al estándar ELK y cómo nos puede ayudar para crear nuestro laboratorio de análisis.
-Comentar las diferentes fuentes de datos que podríamos usar (eventos del sistema operativo, capturas de red).
-Indexación y búsqueda de datos en ElasticSearch.
-Recopilación y manipulación de datos con LogStash.
-Creación de dashboards con Kibana.
-Ejemplo de aplicación para alertar sobre eventos basados en la autenticación en el sistema operativo.

7c4b1ae16723b56facc7a8a8f95aa6ce?s=128

jmortegac

October 24, 2020
Tweet

Transcript

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

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

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

  4. 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
  5. Books 5 https://bpbonline.com/products/devops-and-containers-sec urity-security-and-monitoring-in-docker-containers

  6. Books 6 AGENDA

  7. Books 7

  8. Books 8

  9. 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
  10. RED TEAM vs BLUE TEAM 10

  11. SIEM && THREAT HUNTING 11

  12. SIEM 12

  13. 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
  14. Correlación de eventos de seguridad 14

  15. 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
  16. 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
  17. Syslog 17

  18. 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
  19. SIEM comerciales 19

  20. SIEM open source 20

  21. Elastic Stack 21

  22. ElasticSearch 22

  23. Elastic Common Schema 23

  24. Fichero config ElasticSearch 24

  25. ElasticSearch 25 curl http://localhost:9200/

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

  27. 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
  28. Logstash 28

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

  30. Logstash 30 input { file { path => "/access_log", start_position=>"beginning",

    } } filter{ } output { elasticsearch { hosts => ["localhost:9200"], index => "logstash-logs" } stdout{ codec=>rubydebug } }
  31. 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 } } }
  32. Logstash plugins 32 https://www.elastic.co/guide/en/logstash/current/input-plugins. html

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

  34. 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" } }
  35. 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" ] } } }
  36. Ejecutar logstash con fichero de configuración 36 • sudo bin/logstash

    -f /etc/logstash/conf.d/logstash.conf
  37. Explorar los índices creados 37 • curl -XGET 127.0.0.1:9200/_cat/indices?v

  38. 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.
  39. FileBeat 39

  40. FileBeat 40 • Syslog • Netflow • UDP/TCP

  41. Proceso de análisis de logs con ELK 41

  42. FileBeat 42 filebeat.prospectors: - input_type: log paths: - /var/log/syslog output.logstash:

    hosts: ["localhost:5044"]
  43. Logstash 43 input { beats { port => 5044 }

    } output { elasticsearch { hosts => ["http://localhost:9200"] index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY .MM.dd}" } }
  44. Explorar los índices creados 44 • $ curl -X GET

    http://localhost:9200/filebeat*/_search?pretty
  45. Kibana 45

  46. Kibana 46

  47. Kibana 47

  48. Kibana 48

  49. Crear index pattern 49

  50. Crear index pattern 50

  51. Estructura de un índice 51

  52. Visualizar datos 52

  53. Peticiones y geolocalización 53

  54. Kibana canvas 54

  55. XPack 55

  56. XPack SIEM 56

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

    stop elasticsearch • systemctl start elasticsearch
  58. RedELK: Herramienta SIEM para Red Team https://github.com/outflanknl/RedELK/ 58

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

  60. SIEMonster https://siemonster.com/ 60

  61. Books 61

  62. 62