Protegendo nossas máquinas com Crowdsec – Parte I

Tenha cuidado, este é o… Desculpa, Mas é verdade… Para quem ainda não conhece, em uma série de posts pretendo mostrar algumas das maravilhas da Crowdsec e como podemos proteger nossa infraestrutura de ataques ou acessos indevidos.

Antes de começar a descrever o produto como tal, de sua arquitetura… Vamos começar a pensar que eu era um usuário feliz do fail2ban até descobrir o Crowdsec. Acontece que o Crowdsec, é um IDS e um IPS, Detecta e bloqueia o acesso às máquinas, Eu não me importo se é uma máquina em uma LAN, do que um serviço publicado na Internet, ser um Linux, Windows ou Contêiner. Crowdsec se detectar um ataque DDoS, Uma varredura de porta, Uma verificação de vulnerabilidade, ou simplesmente acessos incorretos (Para esse site, se for um site, para esse RDP se for um Windows, SSH, CIFS…). O Crowdsec detectará esse acesso impróprio e executará uma ação, A coisa mais normal, Faça com que ele seja banido, como? bem, entre outros, do próprio firewall do sistema operacional (Windows, Linux…). Portanto, o Crowdsec criará uma regra no FW do sistema operacional para bloquear esse IP de origem. Além disso, Obviamente, A Crowdsec também lerá os logs de nossos aplicativos, Serviços… e com base no que vejo, Agir, Cuidado com os invasores.

Poço, Se ao menos isso fosse, Eu não te disse que era o, Ainda, Ainda… Crowdsec é um software livre, que tem uma parte comercial se você quiser e não veremos nesta série de posts, Então, o que veremos nesta série estará tudo aberto. Total, que o Crowdsec detecta comportamentos, Gerenciamento baseado em reputação e ameaças, mas também tem uma lista negra de endereços IP públicos, compartilhado e nutrido por todos nós que usamos o Crowdsec; Então, quando há uma maioria que detecta uma ameaça, Todos seremos alertados e avisados!

Espere, não terminamos, acontece que o Crowdsec pode ser instalado como dissemos no Windows, macOS, Linux, Kubernetes, Estivador, OpenWRT… bem, graças à API Crowdsec, nossas máquinas também poderão compartilhar uma lista negra de IPs entre si. Isto é, que se alguém me ataca uma máquina, o resto bloqueará seu acesso antes de tentar, curioso… Poço, Crowdsec realmente detectará e o 'segurança'’ Agir (Então vamos a isso).

Há muito mais para ir, vamos ver aos poucos, e se notificações por Telegram, O console da web que você tem, que se integra ao Prometheus, Grafana… Mas, Quer saber, na minha opinião, a coisa mais curiosa de todas?? Talvez você pense que é besteira, Para mim é a bomba. Atento!!! pois é, que se tivermos um firewall corporativo na empresa, Um perímetro real, um Fortigate, por exemplo, um pfSense… Podemos fazer com que esses firewalls se alimentem dessas listas negras também! Ah! E ter regras em nossos firewalls (No topo de tudo) que negam o acesso aos referidos IPs pretos a outras máquinas, Segmentos de rede… Meu Deus!

É leve, modular, Simples de configurar… Poço, Vamos começar porque eu falo muito 😉

Neste primeiro post vamos saber: Como instalar o Crowdsec em um Linux, Os comandos básicos, Como instalar o Crowdsec em um Windows, Usando o console, fazemos um ataque de teste e, finalmente, como gerenciar alertas pelo Telegram. Quase nada.

Em outros posts veremos como fazer uma instalação multi-servidor, Isso é, que nossas máquinas compartilham informações, ou integre-o ao nosso firewall Fortigate…

Escusado será recomendar seu documento oficial: https://docs.crowdsec.net

Instale o Crowdsec no Linux

A instalação é muito simples, vamos começar com um exemplo que queremos proteger um Nginx que roda em um Ubuntu, Instalamos com:

curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | Sudo Bash sudo apt install crowdsec -y
   ...
   INFORMAÇÃO[11/12/2022:04:24:15 PM] crowdsec_wizard: Installing collection 'crowdsecurity/linux'
   INFO[11/12/2022:04:24:21 PM] crowdsec_wizard: Installing collection 'crowdsecurity/nginx'
   INFO[11/12/2022:04:24:24 PM] crowdsec_wizard: Installing collection 'crowdsecurity/sshd'
   ...

Como podemos ver, ao instalar o agente Crowdsec para Linux, detecta que temos serviços SSHd e Nginx, e, portanto, automaticamente e sem fazer mais nada, ele já detectará anomalias.

A próxima coisa é, se quisermos uma ação para banir os endereços IP de origem, como precisamos ter um firewall instalado e erguido no sistema operacional, que geralmente todo mundo traz, Entendemos que usamos iptables, Também suportaria NFTables, Ipset ou P, depende do nosso sistema operacional. E nós instalamos o leão-de-chácara correspondente:

sudo apt instalar crowdsec-firewall-bouncer-iptables -y

Bem, em princípio, agora estaria pronto, Máquina protegida! 🙂 Pegue agora! Vamos agora fazer o mesmo processo em um Windows, para ver as semelhanças, e então seguimos com mais detalhes talvez os comandos mais interessantes, falaremos sobre a API… É verdade que temos outros detalhes, que veremos.

Instale o Crowdsec no Windows

O que eu disse, Fazemos o mesmo exercício, instalar o Crowdsec em uma máquina Windows, com o objetivo de protegê-lo. E se alguém tentar acessar por RDP e digitar a senha errada (Inadimplência 5 vezes) Bem, bana-o, ou pelo CIFS, Ou o que você quiser, Faça uma varredura 😉

Em primeiro lugar, baixar e instalar o requisito de tempo de execução do .NET: https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-6.0.11-windows-x64-installer (ou uma versão superior, Depende de quando você lê isso).

E podemos prosseguir, baixamos o instalador MSI de https://github.com/crowdsecurity/crowdsec/releases/

“Seguinte”,

“Sim querido”,

“Sim”,

Esperamos alguns segundos enquanto ele instala…

E terminar! Já temos o Crowdsec instalado!

Mas cuidado, não terminamos, da mesma forma, o Crowdsec detectará, mas não poderá executar ações, para isso, precisaremos do segurança para o firewall do Windows. Então, Nós baixamos e instalamos: https://github.com/crowdsecurity/cs-windows-firewall-bouncer/releases

“Instalar”,

E agora é. PC com Windows protegido!

Executar ataque de teste

Em primeiro lugar, Por que não validamos se isso funciona? É assim que vemos alguns primeiros comandos iniciais. Nada, Muito simples, destemido, Como testá-lo?

Bem, o próprio computador Windows tenta validar você 5 vezes com credenciais incorretas por RDP (Área de Trabalho Remota), ou por meio do CIFS e de uma pasta compartilhada… Se quiser, você complica e faz uma varredura de porta, ou vulnerabilidades… você verá como a máquina Windows bloqueia você.

Ele criará uma regra no firewall nativo com uma exceção negando qualquer acesso do referido IP malicioso.

E a equipe Linux, se, por exemplo, ele carrega um Nginx como era o caso anterior, Bem, podemos baixar Nikto, que é um scanner de servidor web, e verificamos se ele detecta:

clone do git https://github.com/sullo/nikto cd nikto/programa git checkout nikto-2.5.0 ./nikto.pl -h https://XXX.XXX.XXX.XXX

Depois disso, a mesma coisa, A máquina Linux nos negará o acesso imediatamente com uma exceção no firewall.

Comandos básicos

Como desculpa, passamos ao próximo ponto do documento, Comandos mínimos que podemos estar interessados em saber (Saberemos mais tarde):

Veja a lista de banimentos ou bloqueios:

Lista de decisões sudo CSCLI

E isso nos devolverá que não há proibições, Se não fizéssemos o teste.

Ou que detectou um bloqueio e nos mostra seu IP, Sua razão, Tempo de bloqueio…

Banir manualmente um IP:

sudo cscli decisões add --ip DIRECCIÓN_IP --reason "Descrição"

Deban, ou desbloquear um endereço IP:

Sudo cscli decisões excluir --IP DIRECCIÓN_IP

Con 'sudo cscli alerts list’ Veremos os alertas que dispararam, con 'sudo cscli alerts inspecionar ID’ Teríamos mais detalhes de cada alerta.

Con 'sudo /usr/share/crowdsec/wizard.sh -c’ podemos ativar/desativar serviços a serem monitorados com Crowdsec.

Neste arquivo '/etc/crowdsec/parsers/s02-enrich/whitelists.yaml’ Teremos a possibilidade de excluir uma máquina e colocá-la na lista de permissões, Por padrão, ele traz 3 intervalos excluídos e se você não foi detectado pelo ataque de teste, Talvez você vá atirar 😉 por aqui

Nome: Descrição do crowdsecurity/whitelists: "Colocar eventos na lista de permissões de endereços IPv4 privados"
lista de permissões:
  razão: "IP/intervalos IPv4/IPv6 privados"
  IP:
    - "127.0.0.1"
    - "::1"
  Cidr:
    #- "192.168.0.0/16"
    #- "10.0.0.0/8"
    - "172.16.0.0/12"
  # expressão:
  #   - "'foo.com' in evt.Meta.source_ip.reverse"

Notificações do Telegram

Bem, neste último e outro dia continuaremos, que há muito para ver e contar 🙂 Por padrão e sem bagunçar o Telegram, poderíamos enviar notificações para o Slack, Splunk, Email…

Editamos o arquivo de perfil '/etc/crowdsec/profiles.yaml’ E nós descomentamos sobre isso 2 Linhas:

Notificações:
  - http_default

Editamos como diz em '/etc/crowdsec/notifications/http.yaml’ Ficar algo assim, devemos levar em consideração a alteração do ID do grupo do Telegram e do Token:

tipo: Nome HTTP: http_default log_level: Formato de informações: |
  {
   "chat_id": "-ID_CHAT_TELEGRAM",
   "Texto": "
     {{gama . -}}
     {{$Alerta := . -}}
     {{gama. Decisões -}}
     {{.Valor}} vai conseguir {{.Tipo}} para o próximo {{.Duração}} para acionar {{.Cenário}}.\rn https://www.shodan.io/host/{{.Valor}}
     {{Fim -}}
     {{Fim -}}
   "
  }

URL: https (em inglês)://api.telegram.org/botTOKEN/sendMessage método: Cabeçalhos POST:
  Tipo de conteúdo: "aplicativo/json"

Como de costume, quaisquer alterações que você precise para reiniciar o serviço Crowdsec:

sudo systemctl reiniciar crowdsec

Et voila!! As mensagens do Telegram chegarão instantaneamente!

Vir, Mais um dia continuamos, Isso vai para o inferno, Deixamos muitas coisas para ver, Devemos falar sobre mais comandos, API, de seu painel ou console da web que eu disse que veríamos, Mas por favor… Isso é muito longo Temos 🙂 que fazer com que todos os nossos agentes conversem uns com os outros, (se fosse de interesse), a parte de integrá-lo com nossos firewalls de perímetro… Veja a parte de Prometeu, Grafana…

Poço, Espero que seja uma solução de interesse, que tenho certeza de que muitos de nós publicamos serviços na Internet sem essa proteção. Ou por que não, implementá-lo nas máquinas internas da nossa organização, entre eles eles fazem uma malha e se protegem…

Poço, Que grande abraço!

Postagens recomendadas

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, Não hesite em contactar-me, Vou tentar ajudá-lo sempre que puder, Compartilhar é viver ;) . Desfrute de documentos!!!