Prefazione
Oggi vedremo cos’è sysdig, per cosa serve e perché è un alleato fenomenale se ti occupi di amministrazione server e/o di cybersecurity.
Prima di addentrarci però nel dettaglio è bene avere ben chiaro un po’ di termini che andremo ad usare.
Glossario
MOK file
I file MOK (Machine Owner Key) sono utilizzati in Linux come parte del processo di Secure Boot per consentire l’installazione e l’esecuzione di moduli del kernel che non sono firmati con chiavi riconosciute. In altre parole, i file MOK consentono di estendere la fiducia del Secure Boot per includere driver o moduli del kernel che potrebbero essere necessari per il corretto funzionamento del sistema, ma che potrebbero non essere firmati digitalmente da una chiave riconosciuta.
UEFI
UEFI sta per Unified Extensible Firmware Interface ed è un’interfaccia firmware che sostituisce il tradizionale BIOS (Basic Input/Output System) nei sistemi informatici. UEFI è progettato per gestire le operazioni di avvio del sistema, la configurazione hardware e altre funzionalità di basso livello nei computer.
Secure Boot
Secure Boot è un sistema progettato per garantire che il firmware del sistema (UEFI o BIOS) consenta solo l’esecuzione di software affidabile e firmato digitalmente durante il processo di avvio del sistema. Ciò impedisce il caricamento di malware o software non autorizzato durante l’avvio del sistema operativo.
Cos’è sysdig
Sysdig è un progetto per il monitoraggio che fornisce una piattaforma di sicurezza basata su eventi per aiutarci a rilevare, investigare e rispondere agli attacchi informatici. La piattaforma utilizza il sistema di tracciamento dei file per raccogliere dati dai sistemi operativi e dai container, che vengono quindi analizzati per rilevare anomalie e comportamenti sospetti.
Qualche esempio di utilizzo del prodotto si può riassumere in:
- Rilevamento e Monitoraggio: Sysdig consente il monitoraggio completo di sistemi, applicazioni e servizi in tempo reale. Utilizza tecnologie di tracciamento approfondito per catturare e analizzare i dati di attività del sistema e delle applicazioni. Questo livello di monitoraggio consente di individuare rapidamente le anomalie e di rispondere in modo proattivo a problemi potenziali.
- Visibilità a 360 Gradi: Sysdig fornisce una visibilità dettagliata delle attività all’interno di un ambiente IT, inclusi container, microservizi e host. Questa visibilità a 360 gradi è essenziale per identificare i punti deboli e le possibili minacce, consentendoci di prendere misure preventive e correttive.
- Sicurezza e Rilevamento delle Minacce: Una delle principali ragioni per cui Sysdig è ampiamente utilizzato nell’ambito della cybersecurity è la sua capacità di rilevare e rispondere alle minacce. La piattaforma monitora costantemente il traffico e l’attività, individuando comportamenti sospetti, intrusioni e attacchi informatici. Inoltre, Sysdig può integrarsi con strumenti di sicurezza esistenti, migliorando ulteriormente la capacità di identificare e mitigare le minacce.
- Analisi Forense e Investigativa: In caso di violazioni o incidenti di sicurezza, Sysdig consente alle organizzazioni di condurre analisi forensi approfondite per capire come e quando si sono verificati gli eventi dannosi. Questo è fondamentale per comprendere l’entità di un attacco e prendere misure per prevenirne futuri.
- Politiche di Sicurezza e Conformità: Sysdig consente alle organizzazioni di definire e applicare rigorose politiche di sicurezza e di conformità. Queste politiche assicurano che le risorse informatiche siano utilizzate in modo appropriato e che siano rispettati gli standard normativi e di sicurezza.
- Automazione e Risposta: Sysdig offre funzionalità di automazione che consentono alle organizzazioni di rispondere automaticamente alle minacce o agli eventi di sicurezza. Questo può includere l’isolamento di host compromessi o l’arresto di processi malevoli per prevenire ulteriori danni.
- Supporto per Ambienti Container: Sysdig è noto per il suo solido supporto per gli ambienti container, come Docker e Kubernetes. Questo è particolarmente prezioso dato che le applicazioni basate su container sono diventate sempre più diffuse per la loro portabilità e scalabilità.
Sysdig può anche essere utilizzato per investigare attacchi informatici che sono già stati rilevati in quanto fornisce una serie di strumenti che possono essere utilizzati per raccogliere e analizzare i dati degli attacchi, identificarne le cause e prendere le misure per mitigare gli effetti.
Sysdig, per poter funzionare, necessita delle librerie e dei moduli del kernel di OpenScap
Cos’è OpenScap
OpenSCAP (Open Security Content Automation Protocol) è uno standard open source e un insieme di strumenti per l’automazione della sicurezza e la valutazione della conformità nelle infrastrutture IT.
L’obiettivo principale di OpenSCAP è di consentirci di automatizzare il processo di verifica e monitoraggio della sicurezza e della conformità delle proprie infrastrutture. Ciò include server, workstation, dispositivi di rete e sistemi embedded. OpenSCAP fornisce uno schema standardizzato per definire politiche di sicurezza, valutare le configurazioni del sistema rispetto a tali politiche e generare rapporti dettagliati sull’aderenza alle linee guida di sicurezza e alle normative.
TL;DR – Installazione
NOTA
Questa piccola guida è stata testata su Almalinux 9.x con Secure Boot abilitato, potrebbe quindi non essere idonea al tuo sistema. Consiglio prima di effettuare qualsiasi operazione di installare sysdig direttamente dai repository ufficiali e verificarne il funzionamento.
Let’s go
Per prima cosa dobbiamo verificare se è abilitato il Secure Boot sulla nostra macchina quindi procediamo con il comando
mokutil --sb-state
Se il risultato dovesse essere affermativo si dovrebbe ricevere un output come questo
A questo punto procediamo con l’installazione di OpenScap e delle sue librerie
dnf install openscap openscap-utils scap-security-guide
Successivamente installiamo i repository per EPEL
dnf install epel-release
Importiamo la chiave pubblica del repository del sysdig
rpm --import https://download.sysdig.com/DRAIOS-GPG-KEY.public
Creiamo il file di descrizione del repository /etc/yum.repos.d/draios.repo e andiamo ad incollare le seguenti direttive
[draios]
name=Draios
baseurl=https://download.sysdig.com/stable/rpm/$basearch
enabled=1
gpgcheck=1
gpgkey=https://download.sysdig.com/DRAIOS-GPG-KEY.public
#repo_gpgcheck=1
Ora possiamo installare sysdig
dnf install sysdig
Al termine dell’installazione dobbiamo andare ad importare le chiavi MOK per firmare il modulo “scap” del kernel, quindi
mokutil --import /var/lib/dkms/mok.pub
il sistema chiederà una password e una conferma della stessa. Questa password verrà richiesta al momento dell’enrollment in fase di boot (solo al primo avvio, ovviamente)
Riavviare il sistema
Al riavvio il sottosistema UEFI presenterà una schermata così composta, dare INVIO per procedere
Selezionare la voce “Entoll MOK”
Selezionare la voce “Continue”
Dare la conferma
Digitare la password precedentemente scelta (vedi img. 2) facendo ben attenzione che in questa fase il layout della tastiera è quello americano
Selezionare la voce “Reboot”
Al termine dell’installazione sarà possibile eseguire (da root) sysdig
E ora?
Esempio 1 – Individuazione della modifica di un file di sistema
Supponiamo di avere un server Linux e vogliamo monitorare un file di sistema critico, ad esempio il file di configurazione del servizio SSH (sshd_config). Vogliamo rilevare se questo file subisce modifiche non autorizzate, che potrebbero indicare un potenziale attacco o una compromissione del sistema.
Possiamo utilizzare Sysdig per creare un filtro che cattura l’evento che desideri inviare a syslog. Ad esempio, supponiamo che vogliamo inviare eventi relativi all’apertura del file sshd_config
sudo sysdig -p "%evt.num %evt.type %proc.name %evt.dir %fd.name" "evt.type=open and fd.name=/etc/ssh/sshd_config" | awk '{ print | "logger -t Sysdig" }'
In questo esempio, il comando sysdig crea un filtro per catturare gli eventi di apertura del file sshd_config, quindi il comando awk
trasmette ogni riga all’utilità logger che invierà l’evento al server syslog. L’opzione -t Sysdig
assegna un tag personalizzato all’evento nel syslog.
Esempio 2 – Individuazione di una privilege escalation via sticky bit
In questo esempio vogliamo individuare l’utilizzo del comando find
per cercare file con bit SUID o SGID abilitati, che potrebbe essere un segno di un potenziale attacco o di un uso improprio del sistema.
sudo sysdig -p "%evt.num %proc.name %evt.args" "evt.type=execve and proc.name=find and evt.args contains suid or evt.args contains sgid" | awk '{ print | "logger -t Sysdig" }'
Ogni volta che il comando find
viene eseguito con le opzioni rilevanti, l’evento verrà inviato al server syslog e registrato nei file di log.
Esempio 3 – Monitoraggio eventi di copia, spostamento e rinomina di file e directory
Supponiamo di voler monitorare l’attività dei processi che coinvolgono il trasferimento e la rinomina di file tra directory diverse all’interno del sistema. Vogliamo individuare eventuali trasferimenti di file sospetti che potrebbero indicare un tentativo di furto di dati o attività malevola.
sudo sysdig -p "%evt.num %evt.type %proc.name %evt.args" "evt.type=execve and (proc.name=mv or proc.name=cp)"
Conclusioni
Come si può notare dagli esempi sysdig offre possibilità illimitate agli amministratori di sistema e agli esperti di sicurezza informatica.
Rimane ovvio dire che gli esempi sono a titolo dimostrativo: ognuno dovrà poi modificarli secondo propria necessità.
Riferimenti
EOF