Crowdsec Windows makin batean ezartzen

Onena, ya hemos visto en el documento anterior un poco los conceptos e ideas de cómo desplegar Crowdsec en nuestra organización, gaur menukoan duguna da Crowdsec nola instalatu Windows makinan eta nola babestu. Botnetetatik babestea, erasoak, jakintsuak, aburridos…

Beraz, ekin diezaiogun, empezamos con un Windows! Habitualmente, se entiende que lo haremos en un Windows Server, un servidor que tenga algún servicio publicado y queramos proteger; no obligatoriamente tenga que estar en Internet. Crowdsec Segurtasun Motorra instalatzen hasiko gara, que es el agente que se encargará de todo, procesar sus logs, zure erabakiak hartzeko… ondoren bouncer-a instalatuko dugu (edo erremediazio osagaia) para su firewall de Windows, zure SO-arekin, interesa badugu ekintza bat egiteko eta bertan arauak gehitzeko gai izan dadin, IP helbide maltzurren sarbideak denbora batez blokeatuz. Eta amaituko dugu Crowdsec Kontsolan erregistratuz.

Con eso casi lo tendremos, ya que el documento continuará, aukera izango da, baina kudeaketa zentralizatua nahi baduzu, deberás de realizar algunos pasos más; eta hori da, zure erabakia. Interesatzen bazaizu, lehenik eta behin irakurri behar duzu aurreko posta.

Post honek honako egitura du:

 

 

Crowdsec Agentearen Instalazioa

 

Jarraitzean aurretik, será necesario previamente instalar el requisito .NET Runtime: https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-6.0.11-windows-x64-installer

 

Ya podremos proceder, descargamos el instalador MSI y comenzar la instalación de Crowdsec Engine, de https://github.com/crowdsecurity/crowdsec/releases/. Crowdsec durante la instalación necesitará acceso a Internet, elementu batzuk deskargatzeko, bildumak bezala… hala nola ohiko funtzionamendurako, agenteari Crowdsec-eko bi gunetara sartzeko sarbidea behar du, gomendatzen dizuet guneko/portuetako irakurketa behar dezakeen guztia.

“Hurrengoa”,

 

“Install”,

 

Segundo batzuk itxaroten dugu instalatzen den bitartean…

 

Eta amaitzea! Dagoeneko Crowdsec instalatuta daukagu!

 

Instalación del bouncer de Crowdsec Windows Firewall

 

Crowdsec detektatuko du baina ezin izango du ekintzarik egin, horretarako Windows firewall-eko bouncerra beharko dugu. Beraz, deskargatzen dugu: https://github.com/crowdsecurity/cs-windows-firewall-bouncer/releases eta bere instalazioa hasten dugu,

 

“Install”,

 

 

 

Eta orain bouncerra dugu, su-hesi mailan babestuko gaitu, “Finish”,

 

Crowdsec Kontsolara erregistratzea

 

Konturik ez badugu https://app.crowdsec.net sortu dezakegu, Crowdsec guztiak kontsoletik GUI bidez zentralizatutako moduan kudeatzeko, ez da derrigorrezkoa, eta Community bertsio bat dugu, honekin ere gauza asko egin daitezke, horien artean, ba, batzuetan hitz egin duguna bezala, makinen alerta ikusteko, haien egoera, blocklist ezberdinetara harpidetu ditzakegu…. Beraz, jarraitzen dugu gure Crowdsec gehituz, Windows horretan instalazioa. Exekutatu beharreko komandoa kopiatu.

 

Eta sistemako kontsola batean itsatsi, ejecutamos:

cscli console enroll xxxxxxxxxxxxxxxxxx

 

Volvemos a la Consola de Crowdsec y aceptamos el enroll, ez badugu agertzen, F5 egokia da,

 

 

Sobre el Engine recién añadido, le editamos el nombre y le pondremos uno que nos haga referencia a quién es,

 

Habitualmente, indicamos el nombre de la máquina, Eguneratu,

 

Eta nahi badugu, lo siguiente pueda ser añadirle algunos blocklists, horretarako, sakatu dezakegu “Browse available blocklists”,

 

Si ya estamos suscrito a algún blocklist, podremos seleccionarlo desde “Manage”

 

Y pulsar sobre “Add Security Engine” para añadir esta máquina a esta blocklist,

 

Elegimos un tipo de acción y confirmamos. Máquina suscrita!

Recordar que tras registrar Crowdsec contra la Consola hay que reiniciar el servicio de Windows que tenemos.

 

Bildumak

 

Por defecto Crowdsec cuando se instala en una máquina escanea en busca de los servicios que tenemos instalados y los intenta proteger, kasu honetan, en mi Windows me ha detectado que dispongo de IIS instalado, así como SQL Server, además de estas colecciones, nos habrá metido alguna adicional, así como las de Windows. Podemos ver las colecciones que tenemos instaladas con:

cscli collections list

 

Bilduma gehiago bilatu ahal izango ditugu bere Hub-ean, haiek edo komunitateak egindako bildumak, guk ditugun beste zerbitzuak babestu ditzaketenak, como si por ejemplo en este Windows tuviéramos Exchange Server… pues sería tan sencillo como ejecutar:

cscli collections install crowdsecurity/exchange

 

Y deberíamos añadir en su fichero de adquisiciones 'C:\ProgramData\CrowdSec\config\acquis.yaml’ beheko edukia, ez kezkatu, Hub-ean zehazten da kasu bakoitzean zer egin behar den, Exchange log-en ibilbideak zuzendu eta Crowdsec zerbitzua berrabiarazi ondoren, makina prest izango genuke, OWA-ren aurkako erasoei ere babesa ematen, SMTP autentikazioak…

 

##Exchange SMTP
erabili_denbora_makina: egia #Procesatu log-ak hala nola berriro jokatuko balira bezala denbora-txartela fitxategi izenetatik lortzeko:
  - C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\FrontEnd\ProtocolLog\SmtpReceive\*.LOG
labels:
  type: exchange-smtp
---
##Exchange IMAP
erabili_denbora_makina: egia #Procesatu log-ak hala nola berriro jokatuko balira bezala denbora-txartela fitxategi izenetatik lortzeko:
  - C:\Program Files\Microsoft\Exchange Server\V15\Logging\Imap4\*.LOG
labels:
  type: exchange-imap
---
##Exchange POP
erabili_denbora_makina: egia #Procesatu log-ak hala nola berriro jokatuko balira bezala denbora-txartela fitxategi izenetatik lortzeko:
  - C:\Program Files\Microsoft\Exchange Server\V15\Logging\Pop3\*.LOG
labels:
  type: exchange-pop
---
##Exchange OWA
#OWA saiakuntza hutsak RDP autentikazio huts berdin moduan log-eatzen dira
jatorria: wineventlog
event_channel: Security
event_ids:
 - 4625
event_level: informazioa
etiketak:
 type: eventlog
 ...

 

 

Zerrenda zuriak

Zerrenda zuria, guk interpretatu dezakegun bezala, erabilgarria izango zaigu, adibidez, IP helbide bat baztertzeko, Crowdsec-ek debekatu edo blokeatu ez dezan, habitualmente puedan ser las direcciones IP de algún puesto de control, equipo de salto, eta abar… Así como entre otras también podremos excluir paises, adibidez.

 

name: crowdsecurity/whitelists
description: "Whitelist events from private ipv4 addresses"
whitelist:
  reason: "private ipv4/ipv6 ip/ranges"
  ip:
    - "127.0.0.1"
    - "::1"
    - "192.168.1.33"
  cidr:
    #- "192.168.0.0/16"
    #- "10.0.0.0/8"
    - "172.16.0.0/12"
  # expression:
  #   - "'foo.com' in evt. Meta.source_ip.reverse"

El fichero lo encontraremos en 'C:\ProgramData\CrowdSec\config\parsers\s02-enrich\whitelists.yaml’, y veremos que podremos añadir sencillamente cualquier IP o rango IP en la lista blanca de exclusiones.

 

Si queremos excluir paises, debemos instalar antes el parser geoip-enrich que nos alimentará los logs con datos de geolocalización, como por ejemplo paises, ciudades o coordenadas GPS:

cscli parsers install crowdsecurity/geoip-enrich

 

Y bastará con añadir la siguiente expresión en el fichero de lista blanca:

expression:
  - evt. Enriched.IsoCode == 'ES'

 

Recordar al finalizar reiniciar el servicio de Crowdsec para recargar estos cambios.

 

Jakinarazpenak

 

notifications:
  - slack_default
  - splunk_default
  - http_default
  - email_default

Podremos habilitar notificaciones editando el fichero 'C:\ProgramData\CrowdSec\config\profiles.yaml’, non deskomentatu eta gure interesa duten jakinarazpen motak aukeratu ditzakegun, Splunk-era izan daitezke, Slack-era, posta elektroniko bidez, edo HTTP bidez (adibidez Telegram).

 

Adibidez posta jakinarazpenak nahi baditugu, en el directorio 'C:\ProgramData\CrowdSec\config\notifications\’ email.yaml fitxategia editatuko genuke (edo slack.yaml edo splunk.yaml edo http.yaml), non gure posta zerbitzariaren parametroak konfiguratu ditzakegun. Telegramekoak post batean ikusi genituen zaharkitua.

 

Probatzen

 

Amaituko dugu probatuz, ezta??  bestela nola sinetsi honek funtzionatuko duenik? 🙂 Sartutako akatsen probak egin ditzakezue nahi duzuen moduan, edo ahulgune eskaneatzaile batekin balioztatu, edo webguneko baten bidez… en ese documento viejuno tenéis un ejemplo con nikto.

 

Podéis ver las decisiones que ha tomado vuestra máquina con:

cscli decisions list

 

En este caso ha baneado la dirección IP 192.168.1.253 por hacer un Windows Brute Force, será que he metido mal varias veces el usuario al acceder al servidor por RDP, o SMB…

 

O desde el servidor LAPI si es que lo hemos registrado (que es lo que viene a continuación)

docker exec -it crowdsec-crowdsec-1 cscli decisions list

 

Si ya hemos desplegado el Crowdsec Mirror, podremos verificar que la dirección IP baneada sale en la URL donde publicamos nuestra blocklist http://DIRECCION_IP_CROWDSEC_MIRROR:41412/security/blocklist

 

Si queremos banear una dirección IP, lo haremos con:

cscli decisions add --ip DIRECCIÓN_IP --reason "Descripción"

 

Si queremos desbanear una dirección IP, lo haremos con:

cscli decisions delete --ip DIRECCIÓN_IP

 

 

Podremos investigar las alertas que hemos tenido con:

cscli alert list

 

 

Con el comando anterior las listamos, y ahora seleccionando el ID de una alerta en particular y podremos saber qué fichero de log la generó, qué estaba haciendo, el path, el estado http… en este caso de la imagen son muchos 404 al path /apps/files_sharing/publicpreview/

cscli alert inspect ID_ALERTA [-d]

 

Y, si es que lo necesitamos, crear nuestro propio fichero de Whitelist para hacer exclusiones en casos de falsos positivos, pej en 'C:\ProgramData\CrowdSec\config\parsers\s02-enrich\whitelist-permite-pdfs.yaml, pudiendo usar estas expresiones de ejemplo para hacer los filtros de exclusión:

name: crowdsecurity/mylistablancapdfs
description: "Ignora PDFs"
whitelist:
  reason: "ignora PDFs"
  expression:
    #- evt.Meta.http_path '/apps/files_sharing/publicpreview/'-ekin hasten da
    #- evt.Meta.http_status == '404' && evt.Meta.http_path '/apps/files_sharing/publicpreview/'-ekin hasten da
    - evt.Parsed.request '/apps/files_sharing/publicpreview/' dauka

 

 

Betiko moduan, ahaztu gabe Crowdsec zerbitzua berrabiarazi konfigurazio-aldaketa bakoitzarekin.

 

 

Crowdsec gure LAPI zerbitzarian erregistratzea

 

api:
...
  zerbitzaria:
    gaitu: false
...

 

Tokiko LAPIa desgaitzeko beharra dugu, editamos el fichero 'C:\ProgramData\CrowdSec\config\config.yaml’.

 

Ahora nos registramos contra el servidor LAPI que tenemos desplegado en la red:

cscli lapi register -u http://CROWDSEC_LAPI_IP_HELBIDEA:8080 --machine MAKINA_IZENA

 

LAPI zerbitzarian Windows makinaren erregistro eskaera ikus dezakegu, zerrendatzen dugu:

sudo docker exec -it crowdsec-crowdsec-1 cscli machines list

 

Onartzen dugu erregistro-eskaera eta berriz zerrendatzen dugu egoera egiaztatzeko:

sudo docker exec -it crowdsec-crowdsec-1 cscli machines validate NOMBRE_MAQUINA

 

Orain gure Crowdsec Windows-en komunikatuko da eta LAPI zerbitzaritik edozein erabaki irakurriko du, Beraz, zerbitzari zentralarekin erabiliz. Crowdsec-eko gainerako agenteek berdina egingo balute, denek informazio bera izango lukete komunean, eta beraz, makina batek IP bat gaiztoa izan daitekeela susmatzen duenean, Crowdsec-eko gainerako agenteek momentuan jakinen dute.

 

Crowdsec bouncer-a gure LAPI zerbitzarian erregistratzea

Eta amaitzeko, guk ditugun bouncer-ak ere erregistratu behar ditugu, kasu honetan Windowsen firewall bouncer-arekin, bouncer horrek LAPI zentraletik irakurtzea nahi badugu, pauso hauek jarraitu behar ditugu, Hortaz, esan duguna bezala, norbaitek edo zerbait LAPI zentralera IP bat gehitzen duenean, este firewall de sistema operativo hará una regla de denegación de acceso a dicha IP maligna.

Desde el servidor LAPI, podremos primero si queremos listar los bouncer que tenemos registrados con:

sudo docker exec -it crowdsec-crowdsec-1 cscli bouncers list

Eta Windows honetako firewall bouncer-a aktibatzeko exekutatuko dugu:

sudo docker exec -it crowdsec-crowdsec-1 cscli bouncers add NOMBRE_MAQUINA-FW

Anotamos la API Key que nos ha dado,

Windows-en, C fitxategia editatzen dugu:\ProgramData\CrowdSec\config\bouncers\cs-windows-firewall-bouncer.yaml y ponemos la IP del LAPI, su puerto y la API Key que nos dio el comando anterior. Guardamos el fichero y reiniciamos el servicioCrowdsec Windows Firewall Bouncer”.

Y ya saldrá el FW del equipo Windows registrado, lo verificamos

sudo docker exec -it crowdsec-crowdsec-1 cscli bouncers list

eta prest! Final! Por ahora yo creo que ya vale, ez? 🙂 Ya hemos visto cómo desplegar Crowdsec para proteger un servidor de Windows, con sus servicios, así como algunas configuraciones basicas, y la parte de centralizarlo, espero que os haya podido servir de algo, darle un poquito de cariño a vuestra infraestructura con este tipo de soluciones, os mando un saludo, esperando que os vaya muy bien, besarkada bat,

Izenburuko mezuak

Egilea

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, ez zalantzarik izan nirekin harremanetan jartzeko, ahal duzun guztietan laguntzen saiatuko naiz, partekatu ahal dudan guztietan ;) . Dokumentuez gozatu!!!