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

ELK para analistas de seguridad y equipos Blue Team

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.

jmortegac

October 24, 2020
Tweet

More Decks by jmortegac

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

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

    View Slide

  6. Books
    6
    AGENDA

    View Slide

  7. Books
    7

    View Slide

  8. Books
    8

    View Slide

  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

    View Slide

  10. RED TEAM vs BLUE TEAM
    10

    View Slide

  11. SIEM && THREAT HUNTING
    11

    View Slide

  12. SIEM
    12

    View Slide

  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

    View Slide

  14. Correlación de eventos de seguridad
    14

    View Slide

  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

    View Slide

  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

    View Slide

  17. Syslog
    17

    View Slide

  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

    View Slide

  19. SIEM comerciales
    19

    View Slide

  20. SIEM open source
    20

    View Slide

  21. Elastic Stack
    21

    View Slide

  22. ElasticSearch
    22

    View Slide

  23. Elastic Common Schema
    23

    View Slide

  24. Fichero config ElasticSearch
    24

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

  28. Logstash
    28

    View Slide

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

    View Slide

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

    View Slide

  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 }
    }
    }

    View Slide

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

    View Slide

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

    View Slide

  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"
    }
    }

    View Slide

  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" ]
    }
    }
    }

    View Slide

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

    View Slide

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

    View Slide

  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.

    View Slide

  39. FileBeat
    39

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  45. Kibana
    45

    View Slide

  46. Kibana
    46

    View Slide

  47. Kibana
    47

    View Slide

  48. Kibana
    48

    View Slide

  49. Crear index pattern
    49

    View Slide

  50. Crear index pattern
    50

    View Slide

  51. Estructura de un índice
    51

    View Slide

  52. Visualizar datos
    52

    View Slide

  53. Peticiones y geolocalización
    53

    View Slide

  54. Kibana canvas
    54

    View Slide

  55. XPack
    55

    View Slide

  56. XPack SIEM
    56

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  61. Books
    61

    View Slide

  62. 62

    View Slide