WMI Autentificering/autorisation NTLM/Kerberos

En af grundstenene for overvågning af Windows operativsystemet at benytte WMI (Windows Management Instrumentation).

Windows Management Instrumentation (WMI) blev udviklet af Microsoft som en del af deres implementering af en standard kaldet Web-Based Enterprise Management (WBEM). WBEM blev oprindeligt defineret af Distributed Management Task Force (DMTF), en organisation, der skaber standarder for systemadministration.

WMI blev introduceret som en standardkomponent i Windows med Windows 2000 og videreudviklet i senere versioner af operativsystemet. Formålet med WMI er at give systemadministratorer et værktøj til at overvåge og administrere Windows-systemer på en standardiseret måde. Det giver adgang til data og funktioner i operativsystemet via en ensartet grænseflade.

I Neosec Security Server benyttes både lokal login, samt fjernlogin ved overvågning via WMI.

Lokal login benyttes på selve Neosec Security Server for monitorering af operativ system og applikationer der er installeret på overvågnings serveren.

Lokal Login benyttes også ved brug af Neosec Windows Agent, som benyttes på servere der ikke er direkte adgang til fra den centrale Neosec Security Server. Dette kan være I miljøer hvor serverene er placeret I DMZ eller på et fjerndestination, hvor der ikke er direkte adgang til fra overvågnings serveren.

Metoder til login I WMI:

Windows Authentication (standard):

  • WMI bruger normalt Windows-brugerkonti til autentificering.
  • Du skal have en konto med tilstrækkelige privilegier (typisk administrative rettigheder) på den lokale eller fjernmaskine.

Netværksautentificering (RPC):

  • Hvis du tilgår WMI på en fjernmaskine, bruges ofte NTLM eller Kerberos til at validere legitimationsoplysninger over netværket. NTLM er standard.
  • Brugeren skal stadig have rettigheder til at få adgang til WMI-namespace på fjernmaskinen (f.eks. ROOT\CIMV2).
  • Som standard benyttes NTLM ved login I WMI, men man kan også benytte Kerberos som er mere sikkert.

Rettigheder og Autorisation:

  • Den brugerkonto, der bruges til login, skal have adgang til de relevante WMI-namespaces.
  • Dette kan konfigureres via WMI Control (wmimgmt.msc), hvor du kan give specifikke brugere eller grupper adgang til at udføre handlinger inden for WMI.

Sørg for at anvende sikre login oplysninger og begrænse adgangen til kun de nødvendige personer og systemer.

NTLM og Kerberos er begge autentificeringsprotokoller, der bruges i Windows-netværk, men de fungerer forskelligt og har forskellige fordele og ulemper, når det gælder brugen af WMI (Windows Management Instrumentation). Her er de vigtigste forskelle:

Generelt overblik

NTLMKerberos
Ældre protokol, som stammer fra Windows NT.Moderne protokol introduceret med Windows 2000.
Bruger udfordring/svar-metoden til autentificering.Bruger billetter udstedt af en Key Distribution Center (KDC).
Mindre sikker sammenlignet med Kerberos.Mere sikker og effektiv.
Bruges som fallback, når Kerberos ikke er tilgængelig.Standardprotokollen i domænebaserede miljøer.

Autentificeringsmekanisme

  • NTLM:
    • Bygger på en udfordring-svar-model.
    • Klienten sender et hashed brugernavn og en krypteret adgangskode til serveren.
    • Serveren validerer ved at sammenligne med sine egne hashes.
    • Støtter ikke delegation af legitimationsoplysninger uden tredjepartsværktøjer.
  • Kerberos:
    • Bygger på et billet-system.
    • En klient får en Ticket Granting Ticket (TGT) fra KDC (ofte domænekontrolleren).
    • Klienten præsenterer TGT for at få adgang til ressourcer uden at sende adgangskoder igen.
    • Støtter delegering af legitimationsoplysninger, hvilket gør det ideelt til komplekse scenarier med flere hop (f.eks. fjern-WMI, der involverer mellemled).

NTLM og Kerberos med WMI

  • NTLM med WMI:
    • Bruges typisk i arbejdsgrupper eller uden for et Active Directory-domæne.
    • Ikke afhængig af en KDC (domænekontroller), så det fungerer i miljøer uden centraliseret autentificering.
    • Mindre sikkert og ineffektivt for større miljøer.
    • Brugen af NTLM kræver ofte direkte administrative rettigheder på den målrettede maskine.
  • Kerberos med WMI:
    • Standardprotokollen i Active Directory-miljøer.
    • Gør det muligt at godkende sikkert og uden at sende adgangskoder over netværket.
    • Støtter multi-hop-forbindelser (f.eks. hvis en fjern-WMI-kommando videresendes via en mellemserver).
    • Mere sikker og hurtigere i store, komplekse netværk.

Sikkerhed

NTLM:

  • Sårbart over for pass-the-hash-angreb.
  • Ingen kryptering af sessioner som standard.
  • Bruges som fallback i tilfælde, hvor Kerberos ikke kan anvendes.

Kerberos:

  • Brug af tidsstemplede billetter gør det svært at udføre replay-angreb.
  • Billetter kan krypteres, hvilket beskytter mod aflytning.
  • Kræver korrekt konfiguration af tidssynkronisering mellem systemer, da billetter er tidsfølsomme.

Hvilken skal man vælge til WMI?

  • Hvis muligt, brug Kerberos, især i Active Directory-miljøer, da det er mere sikkert og effektivt.
  • Brug NTLM som fallback, hvis du arbejder i arbejdsgrupper eller systemer uden Kerberos-støtte.

For en sikker konfiguration, sørg for at minimere NTLM-brugen og implementere Kerberos korrekt i domænemiljøer.

Find mere info på følgende links.

Windows Management Instrumentation – Win32 apps | Microsoft Learn

Konfiguration af SNMPv3 på Cisco IOS/IOS XE

Konfiguration af SNMPv3 er ikke lige så nemt som med SNMPv1 og SNMPv2c hvor man benytter et community navn og definerer om det er readonly eller write adgang. SNMPv3 kræver et SNMPv3 View, en SNMPv3 Gruppe samt en SNMPv3 bruger.

Følg denne guide, for at konfigurere det.

Konfiguration af SNMPv3 View,

Et SNMPv3 View er en definition af hvilke SNMP OID der gives adgang til. Her giver vi adgang til hele SNMP OID træstrukturen.

snmp-server view snmpv3-oid-all iso included

Herefter skal vi knytte dette SNMP View til en Gruppe. Når man opretter en gruppe, skal man træffe nogle valg.

Ved oprettelsen skal man angive følgende

  1. Hvilken validering og kryptering af kommunikation der skal benyttes
  2. Om man skal have skrive adgang eller læse adgang.

I dette eksempel, vælger vi at benytte priv (Det vil sige at vi vil validere en bruger, samt benytte kryptering for kommunikationen)

Udover det vil vi kun give læse adgang via SNMP kommunikationen.

snmp-server group snmpv3group-read-all v3 priv read snmpv3-oid-all

Herefter skal brugeren oprettes, også her skal der træffes nogle valg ved oprettelsen.

  • Brugernavn
  • hvilken gruppe brugeren skal være medlem af.
  • hvilken kryptering der skal benyttes for validering, MD5 eller sha.
  • hvilken kryptering der skal benyttes ved kommunikation DES, 3DES, AES, AES192, AES384.
  • Password for bruger validering, her har vi valgt : h4KhA5cRXU3sEB
  • Password for Kryptering, her har vi valgt : XQ2EUKf2quaXN7

Der kan være forskel på hvilke sikkerheds protokoller og krypterings protokoller der kan benyttes på de forskellige netværks enheder. Dette har noget at gøre med alderen på udstyret, men også noget med versionen og understøttelse af sikkerhed.

snmp-server user snmpv3user snmpv3group-read-all v3 auth sha h4KhA5cRXU3sEB priv aes 256 XQ2EUKf2quaXN7

Herefter kan man overvåge en Cisco switche eller router med SNMPv3.

Der kan være forskel på hvilke sikkerheds protokoller og krypterings protokoller der kan benyttes på de forskellige netværks enheder. Dette har noget at gøre med alderen på udstyret, men også noget med versionen og understøttelse af sikkerhed. DES/3DES kryptering og SHA1 Hash algoritme, ses som usikre, men der er stadig hardware derude som kun understøtter disse, i forhold til AES kryptering og SHA2 Hash algoritme.

Ubuntu

Konfiguration af SNMP overvågning på Ubuntu server

For at kunne overvåge en Ubuntu server, skal der installeres en SNMP Daemon først [SNMPD]. SNMPD bliver ikke installeret som standard på en Ubuntu server. Tjek med følgende kommando om SNMPD allerede er installeret.

sudo service --status-all

[ + ] apparmor
[ + ] apport
[ + ] atd
[ - ] console-setup.sh
[ + ] cron
[ - ] cryptdisks
[ - ] cryptdisks-early
[ + ] dbus
[ + ] grub-common
[ - ] hwclock.sh
[ + ] irqbalance
[ - ] iscsid
[ - ] keyboard-setup.sh
[ + ] kmod
[ - ] lvm2
[ - ] lvm2-lvmpolld
[ + ] multipath-tools
[ - ] open-iscsi
[ + ] open-vm-tools
[ - ] plymouth
[ - ] plymouth-log
[ + ] procps
[ - ] rsync
[ + ] rsyslog
[ - ] screen-cleanup
[ + ] ssh
[ + ] udev
[ + ] ufw
[ + ] unattended-upgrades
[ - ] uuidd

Listen viser de services der er installeret på serveren, hvis der er angivet [+] så er servicen startet. Listen viser at SNMPD ikke er installeret.

Kør følgende for at installere SNMPD.

  1. opdater pakke listen: sudo apt-get update
  2. Installer SNMPD: sudo apt-get install snmp, snmpd

Herefter skal SNMPD konfigureres, dette gøres ved at ændre snmpd.conf filen. sudo nano /etc/snmp/snmpd.conf

Find linjen med følgende tekst: agentaddress 127.0.0.1,[::1]

Denne tekst skal ændres til følgende: agentaddress udp:161,udp6:[::1]:161

Find linjerne med følgende tekst:

rocommunity public default -V systemonly
rocommunity6 public default -V systemonly

Man benytter snmp community som password for at kunne få lov til at hente informationer fra serveren via snmp.

Ændre public til den SNMP Community som man ønsker eller benyt public som standard. Her er snmp community ændret til neosec.

rocommunity neosec default -V systemonly
rocommunity6 neosec default -V systemonly

Som standard er snmd konfigurereret med et systemonly view som ikke giver så mange informationer på systemet.

Hvis vi gerne vil overvåge disk, memory m.m. så skal snmp viewet ændres.

view systemonly included .1.3.6.1.2.1.1

View systemonly included .1.3.6.1.2.1.25.1

opret nyt view

view systemAll included .1

Gem ændringerne i snmpd.conf filen og start snmpd servicen. sudo service snmpd restart

[ + ] apparmor
[ + ] apport
[ + ] atd
[ - ] console-setup.sh
[ + ] cron
[ - ] cryptdisks
[ - ] cryptdisks-early
[ + ] dbus
[ + ] grub-common
[ - ] hwclock.sh
[ + ] irqbalance
[ - ] iscsid
[ - ] keyboard-setup.sh
[ + ] kmod
[ - ] lvm2
[ - ] lvm2-lvmpolld
[ + ] multipath-tools
[ - ] open-iscsi
[ + ] open-vm-tools
[ - ] plymouth
[ - ] plymouth-log
[ + ] procps
[ - ] rsync
[ + ] rsyslog
[ - ] screen-cleanup
[ + ] snmpd
[ + ] ssh
[ + ] udev
[ + ] ufw
[ + ] unattended-upgrades
[ - ] uuidd

Man kan nu se at snmpd er tilføjet i listen og servicen er startet.

Test nu om man kan hente snmp informationer fra serveren.

snmpwalk -v2c -c neosec localhost

iso.3.6.1.2.1.1.1.0 = STRING: "Linux ubuntudocker 5.4.0-62-generic #70-Ubuntu SMP Tue Jan 12 12:45:47 UTC 2021 x86_64"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.8072.3.2.10
iso.3.6.1.2.1.1.3.0 = Timeticks: (2143) 0:00:21.43
iso.3.6.1.2.1.1.4.0 = STRING: "Me <me@example.org>"
iso.3.6.1.2.1.1.5.0 = STRING: "ubuntudocker"
iso.3.6.1.2.1.1.6.0 = STRING: "Sitting on the Dock of the Bay"
iso.3.6.1.2.1.1.7.0 = INTEGER: 72
iso.3.6.1.2.1.1.8.0 = Timeticks: (1) 0:00:00.01
iso.3.6.1.2.1.1.9.1.2.1 = OID: iso.3.6.1.6.3.10.3.1.1
iso.3.6.1.2.1.1.9.1.2.2 = OID: iso.3.6.1.6.3.11.3.1.1
iso.3.6.1.2.1.1.9.1.2.3 = OID: iso.3.6.1.6.3.15.2.1.1
iso.3.6.1.2.1.1.9.1.2.4 = OID: iso.3.6.1.6.3.1
iso.3.6.1.2.1.1.9.1.2.5 = OID: iso.3.6.1.6.3.16.2.2.1
iso.3.6.1.2.1.1.9.1.2.6 = OID: iso.3.6.1.2.1.49
iso.3.6.1.2.1.1.9.1.2.7 = OID: iso.3.6.1.2.1.4
iso.3.6.1.2.1.1.9.1.2.8 = OID: iso.3.6.1.2.1.50
iso.3.6.1.2.1.1.9.1.2.9 = OID: iso.3.6.1.6.3.13.3.1.3
...

Ovenstående resultat viser at SNMP Daemon servicen kører og man kan herefter konfigurere overvågning af serveren.

#slack integration

#slack er en kommunikations platform, i stil med Facebook Messenger, Google Chat, Apple Messages m.m.
Man kommunikere i kanaler #channels, hvor man deler sine budskaber. For at kunne kommunikere med hinnanden, skal
man inviteres til den enkelte #cahnnel.

Integration i Neosec Security Server

Vi har integreret #slack i Neosec Security Server som en ekstra besked service for alarmering. Man skal oprette en #channel som benyttes til de afsendte alarmer.
Alle medlemmer af denne #channel modtager de alarmer der er sat op i Neosec.

For at benytte #slack i Neosec, skal gøre følgende.

  • Oprette en konto hos #slack, dette er gratis.
  • Oprette en channel hvor man vil have vist alle sine alarmer.
  • Oprette et webhook for den nyoprettede channel. For hver channel bliver der oprettet en unik URL, som vores #slack klient skal benytte for at kunne sende beskeder til den oprettede #slack channel.

 

Oprettelse af notification i Neosec

  • Indsæt webhook
  • Indsæt #channel navn

#slack hjemmeside