Translation: [EN] [ES]
   Center for Information Technology Integration   
Systrace - Interactive Policy Generation for System Calls
  
 

Systrace - Interactive Policy Generation for System Calls

Systrace permette di creare delle policy alle system call, costringendo l'accesso delle applicazioni al sistema. Le policy sono generate interattivamente. Operazioni non coperte da policy producono un allarme, permettendo all'utente di ridefinire la configurazione corrente della policy.

Per applicazioni complicate, è difficile sapere la policy corretta da utilizzare. Inizialmente, Systrace notifica all'utente tutte le system calls che un'applicazione prova ad eseguire. L'utente configura una policy per la specifica system call che genera un warning. Dopo alcuni minuti, una policy è generata per permettere all'applicazione di essere eseguita senza nessun warning. Comunque, eventi che non sono ancora coperti generano un warning. Normalmente, questo indica un problema di sicurezza. Systrace migliora la cyber security fornendo una prevenzione alle intrusioni.

Con systrace, le applicazioni binarie insicure possono essere circoscritte. Il loro accesso al sistema può essere ristretto quasi arbitrariamente. Non è possibile individuare con precisione cosa faccia un'applicazione se essa viene distribuita solo in forma di eseguibile binario; per questa ragione circoscrivere applicazioni di questo tipo può essere fatto solo "ad intuito" e per tentativi. Comunque, si rileva utile restringere anche le system call per le grosse applicazioni open-source, di cui
a volte può essere difficile determinare la loro correttezza.

Gli argomenti delle system call possono essere riscritte dinamicamente.                
Questo effettua un chroot virtuale per le applicazioni circoscritte, e previene l'insorgere di race conditions nella valutazione degli argomenti stessi.

[Risposte ad alcune frequently asked questions]

   

 Caratteristiche

  • Confinamento di applicazioni binarie insicure.
  • Generazione Interattiva delle Policy attraverso GUI
  • Supporta differenti emulazioni:
    • GNU/Linux, BSDI, etc..
  • Riscrittura degli argomenti delle System Call.
  • Non-interactive Policy Enforcement.
  • Monitoraggio Remoto e Intrusion Detection.
  • Elevazione dei Privilegi: Add-on capabilities.
 
 
 

Intrusion Detection

Con systrace, è possibile monitorare demoni su macchine remote e generare warnings in una locazione centrale. Grazie a questi warnings che indicano operazioni non coperte da policy, è possibile individuare intrusioni e prevenirle dalla loro riuscita. Per esempio, possono essere monitorati in questa maniera un server web o un server ftp.

Non-Interactive Policy Enforcement

Dal momento che una policy è stata generata, systrace può automaticamente farla rispettare senza l'intervento dell'utente. Le system calls non coperte da una policy sono negate. Per esempio, chi offre una shell può
far rispettare delle policies ed eseguirecomandi con systrace agli utenti.

Elevazione dei Privilegi

Usando la caratteristica dell'elevazione dei privilegi di systrace, non è più necessario l'utilizzo del setuid o
del setgid sui binari.

Infatti con systrace è possibile di norma eseguire un'applicazione senza privilegi, garantendo solamente quelli strettamente necessari. Per esempio,

native-socket: sockdom eq "AF_INET" and socktype eq "SOCK_RAW" then permit as root
native-bind: sockaddr eq "inet-[0.0.0.0]:22" then permit as root
native-fsread: filename eq "/dev/kmem" then permit as :kmem

Systrace eleva i privilegi precisamente per le operazioni che li richiedono. Come risultato (di conseguenza), otteniamo la possibilitàdi avere un percorso privilegiato di codice estremamente ridotto. In combinazione con dynamic predicates,èpossibile permettere ad una applicazione non previlegiata di bindare una porta riservata solo una volta, etc.

Esempio di Policy 

L'esempio seguente illustra una semplice policy per il binario ls. Se lstenta di listare i files in /etc, systrace vieta
l'accesso e rende /etc non visibile. Elencando i contenuti di /tmplavora normalmente, ma provando ls /varsi
genera un warning.

Policy: /bin/ls, Emulation: native
native-munmap: permit
[...]
native-stat: permit
native-fsread: filename match "/usr/*" then permit
native-fsread: filename eq "/tmp" then permit
native-fsread: filename eq "/etc" then deny[enotdir]
native-fchdir: permit
native-fstat: permit
native-fcntl: permit
[...]
native-close: permit
native-write: permit
native-exit: permit

Systrace supporta applicazioni multiple con policies multiple. Le policies possono essere switchate su execve.

Screenshots

Un web browser prova ad accedere al database delle passwords. Monitorare le system calls di un server web è sensato dal momento che i browser sono potenzialmente esposti a pagine web ostili che cercano di sfruttare errori di programmazione nel browser.   Systrace potrebbe anche essere usato per evitare danni da distribuzioni di software che contengono trojan. Nell'esempio Systrace rileva un Trojan nello script di configurazione contenuto in una distribuzione modificata.
 
   

Download

Systrace è distribuito sotto una licenza di stile BSD ed è stato integrato in NetBSD e OpenBSD.
NetBSD-current contiene il codice sorgente di Systrace   più recente. Puoi usare l'AnonCVS   per accederci.
Al momento, systrace supporta i binari nativi e di Linux.

Ports

Source Code

  • usr-systrace-2003-06-23 - Current snapshot of systrace userland. (Darwin, Linux, NetBSD, OpenBSD) - 2003-06-23
    • UI detaching and multiplexing.
    • Allows for escaping of special characters.
    • Support for prompt directive.
    • Freeing of old policies, requires kernel patch for OpenBSD.
  • gtk-systrace-2003-06-23 - GTK Systrace front end invoked by systrace.
  • systrace templates - Templates for NetBSD/OpenBSD to facilitate policy generation. - 2002-11-22
 
Necessiti di installare il gtk frontend e il systrace userland. Il frontend gtk è richiesto solo per la generazione grafica delle policy.

Riferimenti

Esempi di Policies

  • httpd - Apache Web Server
  • gaim - GTK AOL Instant Messenger
  • konq-e - Konquerer Embedded
  • mplayer - Movie Player

Links

  • Systrace è stato presentato al CanSecWest nel Maggio 2002.
  • Systrace WIP all' USENIX Technical conference nel Giugno 2002.
  • Systrace Talk al Libre Software Meeting nel Luglio 2002.

Systrace Press

Acknowledgements

Grazie a Dug Song e Perry Metzger per utili discussioni e suggerimenti.

 

 

Domande e Commenti:
Niels Provos
Ultima modifica:  Mon Jun 23 20:22:56 EDT 2003
  Puoi rendermi felice mentre faccio hacking riducendo la
mia Lista dei desideri: Libri,Musica

Translation by goony.