Marvin Pascale

[B.Log]

15 Aprile 2025

Landrun

Isolation

Nel panorama della sicurezza informatica, l’isolamento dei processi è fondamentale per proteggere il sistema da comportamenti indesiderati o dannosi. Tradizionalmente, strumenti come i container o l’uso di privilegi elevati erano necessari per creare ambienti isolati. Tuttavia, con l’introduzione di Landlock nel kernel Linux 5.13, è possibile per i processi non privilegiati auto-restringersi, offrendo un nuovo livello di sicurezza senza complessità aggiuntiva.

Cos’è Landlock?

Landlock è un modulo di sicurezza del kernel Linux che permette ai processi di applicare restrizioni su sé stessi in modo non privilegiato. Questo consente la creazione di sandbox sicure, aggiungendo livelli di controllo accessi oltre a quelli già esistenti nel sistema. L’obiettivo principale è mitigare l’impatto di bug o comportamenti malevoli nelle applicazioni utente.

Introduzione a Landrun

Sebbene Landlock offra potenti capacità di sandboxing, la sua interfaccia può risultare complessa per gli utenti. Ecco dove entra in gioco Landrun: un tool leggero e user-friendly che sfrutta Landlock per eseguire processi Linux in sandbox sicure senza necessità di privilegi elevati, container o configurazioni complesse come SELinux/AppArmor. Landrun è progettato per rendere pratico il sandboxing di qualsiasi comando con controlli di accesso granulare al filesystem e alla rete.

Caratteristiche principali di Landrun

  • Sicurezza a livello di kernel: utilizza Landlock per garantire un isolamento efficace dei processi;
  • leggerezza e velocità: progettato per essere minimale, senza introdurre overhead significativi;
  • controllo granulare degli accessi: permette di specificare permessi dettagliati per directory e file;
  • controllo dell’accesso alla rete: supporta restrizioni su porte TCP, richiedendo il kernel Linux 6.7 o successivo.

Requisiti per l’utilizzo

  • Kernel Linux 5.13 o successivo: necessario per il supporto a Landlock;
  • kernel Linux 6.7 o successivo: necessario per le restrizioni di rete (binding e connessione TCP);
  • go 1.18 o successivo: Per la compilazione da sorgente.

Mani in pasta

Vediamo come installare e utilizzare Landrun per eseguire un processo in un ambiente isolato.

  1. Installazione di Landrun

    Per installare Landrun direttamente dalla sorgente:

go install github.com/zouuup/landrun/cmd/landrun@latest

Assicurati di avere Go installato e configurato correttamente nel tuo sistema.

  1. Esecuzione di un comando in sandbox

    Supponiamo di voler eseguire il comando touch /tmp/nuovo_file in un ambiente isolato, concedendo accesso in sola lettura con esecuzione alla directory*/usr*e accesso in lettura-scrittura alla directory /tmp:

landrun --rox /usr --rw /tmp touch /tmp/nuovo_file

In questo esempio:

  • –rox /usr: Concede accesso in sola lettura con esecuzione alla directory/usr.
  • –rw /tmp: Concede accesso in lettura-scrittura alla directory/tmp.

Se provassimo a eseguire lo stesso comando senza concedere l’accesso in lettura-scrittura a /tmp:

   landrun --rox /usr touch /tmp/nuovo_file

Riceveremmo un errore di “Permission denied”, poiché il processo non ha i permessi necessari per scrivere in /tmp.

Conclusione

Landrun rappresenta una soluzione efficace per isolare processi su sistemi GNU/Linux senza la necessità di privilegi elevati o container. Sfruttando le capacità di Landlock, offre un’interfaccia semplice e leggera per creare sandbox sicure, permettendo agli utenti di eseguire applicazioni con controlli di accesso dettagliati al filesystem e alla rete. Per ulteriori dettagli e aggiornamenti, è possibile consultare il repository ufficiale su GitHub.


Le opinioni in quanto tali sono opinabili e nulla ti vieta di approfondire l’argomento.

Risorse: