~/docs/sysdig.howto

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

Img. 1 – Check di conferma

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)

Img. 2 – Importazione del MOK file

Riavviare il sistema

Al riavvio il sottosistema UEFI presenterà una schermata così composta, dare INVIO per procedere

Img. 3 – UEFI key management

Selezionare la voce “Entoll MOK”

Img. 4 – Enroll MOK

Selezionare la voce “Continue”

Img. 5 – Continuare

Dare la conferma

Img. 6 – 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”

Img. 7 – Riavvio

Al termine dell’installazione sarà possibile eseguire (da root) sysdig

Img. 8 – Sysdig

E ora?

Img. 9 – Quindi?!

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

Rispondi