diff --git a/assets/visao-geral-01.png b/assets/visao-geral-01.png new file mode 100644 index 0000000..e80ef02 Binary files /dev/null and b/assets/visao-geral-01.png differ diff --git a/assets/visao-geral-02.png b/assets/visao-geral-02.png new file mode 100644 index 0000000..8e861b8 Binary files /dev/null and b/assets/visao-geral-02.png differ diff --git a/assets/visao-geral-03.png b/assets/visao-geral-03.png new file mode 100644 index 0000000..a624d56 Binary files /dev/null and b/assets/visao-geral-03.png differ diff --git a/assets/visao-geral-04.png b/assets/visao-geral-04.png new file mode 100644 index 0000000..8c0ec68 Binary files /dev/null and b/assets/visao-geral-04.png differ diff --git a/assets/visao-geral-05.png b/assets/visao-geral-05.png new file mode 100644 index 0000000..5e2be2a Binary files /dev/null and b/assets/visao-geral-05.png differ diff --git a/assets/visao-geral-06.png b/assets/visao-geral-06.png new file mode 100644 index 0000000..db83a2e Binary files /dev/null and b/assets/visao-geral-06.png differ diff --git a/roteiros/ingestao-de-logs/README.md b/roteiros/ingestao-de-logs/README.md new file mode 100644 index 0000000..c5e3137 --- /dev/null +++ b/roteiros/ingestao-de-logs/README.md @@ -0,0 +1,112 @@ +--- +hide: + - toc +--- +#### 1. Questões a Considerar: O que vai ser enviado? + +É importante fazer um planejamento sobre O QUE será enviado a partir dos hosts para ser processado e analisado no SIEM. + +![](../../assets/visao-geral-01.png) + +Em um primeiro momento talvez a intenção seja enviar TODOS os Logs de TODOS os hosts, mas, o volume de tráfego gerado e a demanda por armazenamento e indexação no SIEM devem ser considerados. + +Na maioria dos casos, faz-se a opção por realizar "filtros" (seleção sobre o que será enviado de cada host) e o levantamento de serviços específicos em execução e então toma-se a decisão sobre o que vale a pena, de fato, enviar para ser processado pelo SIEM. + +Além de Logs, tem sido cada vez mais comum o envio para geranciadores de Logs informações relacionadas a métricas e traces (comunicação entre microsserviços). O SIEM tem condições, também, de processar analisar e disponibilizar informações sintetizadas sobre esses dados. + +*** + +#### 2. Questões a Considerar: Formato de Envio + +Os primeiros gerenciadores de Logs costumavam ser configurados para receber os logs dos hosts em formato "bruto" (sem qualquer filtragem) e então todo o processamento era feito pelo gerenciador (hoje o SIEM). + +![](../../assets/visao-geral-02.png) + +Mas, atualmente, muitos hosts (ou coletores instalados neles) têm a capacidade de fazer um pré-processamento (filtro/parser/pipeline) para que os logs sejam enviados já tratados e com isso diminuir o trabalho do SIEM. + +Esses procedimentos recebem vários nomes, entre eles: +- Normalização de Logs +- Padronização de Logs +- Enriquecimento de Logs +- Anonimização de Logs +- Personalização de Logs + +Uma decisão importante no planejamento é verificar SE os hosts têm essa capacidade de pré-processamento e, em caso positivo, se vale a pena utilizá-los, analisando o impacto desse pré-processamento comparado à possibilidade de processar essas filtragens no SIEM. + +*** + +#### 3. Questões a Considerar: Quando enviar? + +Os SIEMs modernos (e o RK-SIEM naturalmente) têm a capacidade de processar dados praticamente em "tempo real", mas, isso é realmente necessário (e conveniente)? + +![](../../assets/visao-geral-03.png) + +É necessário considerar o número de hosts que enviam dados ao SIEM e o volume desses dados/logs enviados e decidir SE e QUAIS hosts/serviços terão seus logs analisados em tempo real pelo SIEM. + +É possível configurar/personalizar o envio dos logs de acordo com a criticidade de sua análise e conveniência para serem enviados periodicamente em períodos como de 30 em 30 segundos, a cada minuto, a cada 5 minutos... + +Dependendo do que se está monitorando pode ser conveniente programar o envio de logs para ser feito somente quando eventos específicos acontecerem ou quando deverminados serviços se encontrarem em situações específicas. + +*** + +#### 4. Questões a Considerar: E depois de enviar? + +Os Logs depois de serem enviados pelos hosts ao SIEM ainda precisam existir? + +![](../../assets/visao-geral-04.png) + +Vários serviços de geração de logs nos próprios hosts já dispõem de configurações que fazem um rotacionamento de logs diariamente e/ou semanalmente ou em um período determinado. Isso é realmente necessário? + +Se o volume de logs gerado é muito grande e o rotacionamento é implementado é necessário/possível armazenar logs mais antigos em algum sistema de backup? + +Se sim, é importante definir a periodicidade (e se possível a automação do processo) dos backups e o tempo de armazenamento. Essa decisão pode ser em função de questões legais (LGPD, GDPR, ...) ou a partir de políticas institucionais. + +Uma outra decisão pode ser a de descartar os logs gerados/armazenados nos hosts uma vez enviados ao SIEM. Nesses casos, o planejamento de arnazenamento e backup passa a ser exclusivo sobre os registros indexados e armazenados no próprio SIEM. + +*** + +#### 5. Cenários de Ingestão de Logs no RK-SIEM: + +![](../../assets/visao-geral-05.png) + +*** + +#### 6. Lista (não exaustiva) de possibilidade de Ingestão de Logs + + + +*** + +#### 7. Ingestão de Logs: Visão Geral + +![](../../assets/visao-geral-06.png) + +*** + +### Assista à Videoaula explicativa sobre o assunto clicando na imagem abaixo: + +???+ example "Ingestão de Logs: Visão Geral" +
+ +
\ No newline at end of file diff --git a/roteiros/lab01/docker-compose.yml b/roteiros/lab01/docker-compose.yml index acce8d8..61ce990 100644 --- a/roteiros/lab01/docker-compose.yml +++ b/roteiros/lab01/docker-compose.yml @@ -1,8 +1,56 @@ services: - rk-siem-host01: + rk-siem-core: + image: ricardokleber/rk-siem-core:latest + container_name: rk-siem-core + environment: + - cluster.name=rk-siem-core + - node.name=rk-siem-node + - discovery.type=single-node + - bootstrap.memory_lock=true + - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m" # Ajuste conforme sua RAM disponível + - DISABLE_INSTALL_DEMO_CONFIG=false + ulimits: + memlock: + soft: -1 + hard: -1 + nofile: + soft: 65536 + hard: 65536 + volumes: + - rk-siem-data:/usr/share/opensearch/data + ports: + - 9200:9200 # API REST + - 9600:9600 # Performance Analyzer + networks: + - rk-siem-net + + rk-siem-ui: + image: ricardokleber/rk-siem-ui:latest + container_name: rk-siem-ui + ports: + - 5601:5601 # Interface Web + expose: + - 5601 + command: ["/bin/bash", "-c", "/etc/init.d/opensearch-dashboards start && tail -f /var/log/opensearch-dashboards/opensearch-dashboards.stdout"] + restart: always + environment: + - 'OPENSEARCH_HOSTS=["https://rk-siem-core:9200"]' + - "DISABLE_SECURITY_DASHBOARDS_PLUGIN=false" + networks: + - rk-siem-net + depends_on: + - rk-siem-core + + rk-siem-host01: image: ricardokleber/rk-siem-host01:latest container_name: rk-siem-host01 hostname: rk-siem-host01 tty: true stdin_open: true restart: always + +volumes: + rk-siem-data: + +networks: + rk-siem-net: \ No newline at end of file diff --git a/roteiros/lab02/README.md b/roteiros/lab02/README.md new file mode 100644 index 0000000..95534d0 --- /dev/null +++ b/roteiros/lab02/README.md @@ -0,0 +1 @@ +ops \ No newline at end of file