Un profilo Novell® AppArmor rappresenta una criterio di sicurezza per un singolo processo o istanza di un programma. Può essere applicato a un programma eseguibile. Tuttavia, se per una parte del programma sono necessarie autorizzazioni di accesso diverse dalle altre parti, è possibile applicare un altro contesto di sicurezza, particolare rispetto al sistema di accesso al programma principale. Questo sistema è chiamato hat o sottoprofilo.
ChangeHat consente ai programmi di passare a o da un altro hat in un profilo Novell AppArmor. e di definire un livello di sicurezza superiore rispetto a quello del processo.
Per utilizzare questa funzione, è necessario rendere tutte le applicazioni "changehat compatibili", vale a dire impostarle in modo da inviare una richiesta al modulo Novell AppArmor affinché attivi domini di sicurezza a intervalli arbitrari durante l'esecuzione dell'applicazione.
Un profilo può includere il numero desiderato di sottoprofili ma solo due livelli: un sottoprofilo non può contenere altri sottoprofili. Un sottoprofilo viene creato come profilo separato e denominato come il profilo che lo contiene seguito dal nome del sottoprofilo, separato dal segno^. È necessario salvare i sottoprofili nello stesso file del profilo padre.
![]() | Nota |
|---|---|
Per ulteriori informazioni, vedere la pagina man | |
Novell AppArmor fornisce un modulo mod-apparmor per il programma Apache. Il modulo mod-apparmor viene eseguito sul sistema SUSE Linux in uso per consentire al server Web Apache di riconoscere "ChangeHat." Viene installato solo se sul computer in uso è disponibile Apache.
Quando Apache riconosce ChangeHat, controlla i profili di sicurezza personalizzati seguenti di Novell AppArmor nell'ordine specificato per ogni richiesta URI ricevuta.
Hat URI, ad esempio ^phpsysinfo-dev/templates/classic/images/bar_left.gif
DEFAULT_URI
HANDLING_UNTRUSTED_INPUT
Se sul computer in uso è disponibile Apache 2, il modulo mod-apparmor viene installato automaticamente con Novell AppArmor e aggiunto alla configurazione Apache. La versione 1.3 di Apache non è supportata.
![]() | Nota |
|---|---|
Se si installa il modulo LoadModule change_hat_module modules/mod_change_hat.so | |
Come per la maggior parte degli strumenti Novell AppArmor sono disponibili due metodi per la gestione di ChangeHat: YaST o l'interfaccia a riga di comando. La gestione delle applicazioni basate su ChangeHat dalla riga di comando è più flessibile ma anche più complicata. Entrambi i metodi consentono di gestire gli hat per l'applicazione e di compilarli con i dati del profilo.
Nei passaggi seguenti verrà illustrato come aggiungere hat a un profilo Apache con YaST. In , le utility di definizione dei profili Novell AppArmor richiedono la creazione di nuovi hat per le varie richieste URI. Se si sceglie di creare un nuovo hat, è possibile creare un profilo per ciascun URI e quindi di creare regole molto rigide per ciascuna richiesta.
Se l'URI da elaborare non è complicato o non rappresenta un rischio per la sicurezza, è possibile selezionare per elaborarlo nell'hat, o profilo di sicurezza, predefinito.
Nell'esempio viene creato un nuovo hat per l'URI phpsysinfo-dev e i successivi accessi. Le utility di definizione dei profili consentono di delegare il contenuto aggiunto al nuovo hat. L'hat ottenuto diventa un contenitore molto sicuro di tutte le operazioni di elaborazione che avvengono sul server dopo che l'URI phpsysinfo-dev viene trasferito al server Web Apache.
Nell'esempio viene generato un profilo per l'applicazione phpsysinfo (per ulteriori informazioni, vedere http://phpsysinfo.sourceforge.net). Si suppone che il pacchetto phpsysinfo-dev sia installato in /srv/www/htdocs/phpsysinfo-dev/ in una nuova installazione di Novell AppArmor.
Dopo l'installazione di phpsysinfo-dev è possibile aggiungere gli hat al profilo Apache. Scegliere dall'interfaccia utente grafica di Novell AppArmor.
![]() |
In , immettere httpd2-prefork.
Fare clic su . Verrà visualizzata la finestra .
![]() |
Riavviare Apache specificando rcapache2 restart in una finestra del terminale.
![]() | Nota |
|---|---|
Riavviare tutti i programmi per i quali è in corso la definizione del profilo. | |
Aprire http://localhost/phpsysinfo-dev/ in una finestra del browser. Verranno visualizzati l'utilizzo della rete e le informazioni sul sistema.
![]() | Nota |
|---|---|
Per garantire che la richiesta venga elaborata dal server e che i dati salvati nella cache non vengano visualizzati nel browser, aggiornare la pagina. A questo scopo, fare clic sul pulsante del browser per essere certi che Apache elabori la richiesta dell'URI | |
Fare clic su . In Novell AppArmor viene avviato lo strumento logprof, che ricerca tutte le informazioni immesse nel passaggio precedente. Verranno quindi visualizzate alcune domande sul profilo.
Nell'esempio viene chiesto di selezionare o perché è stato riscontrato che phpsysinfo-dev ha chiesto di accedere a un URI. Selezionare .
![]() |
Fare clic su .
La selezione di nel passaggio precedente comporta la creazione di un nuovo hat nel profilo e specifica di aggiungere le domande successive sulle azioni dello script nell'hat appena creato anzichè in quello predefinito per l'applicazione corrente.
Nella schermata successiva viene visualizzato un programma esterno eseguito dallo script. È possibile scegliere di eseguire il programma nell'hat phpsysinfo-dev (selezionare ), in un profilo separato (selezionare ) oppure senza limitazioni o profili di sicurezza (selezionare ). Se si sceglie , verrà creato un nuovo profilo (se non ancora esistente) per il programma.
![]() | Nota |
|---|---|
La selezione di può rappresentare un grave rischio per la sicurezza e deve essere effettuata con cautela. | |
![]() |
Verrà chiesto di generare nuovi hat e di aggiungere voci al profilo e ai relativi hat. La procedura relativa all'aggiunta di voci ai profili è illustrata nella Sezione 3.3.1, "Aggiunta guidata profili" (↑Guida all'amministrazione di Novell AppArmor 2.0).
Dopo aver risposto a tutte le domande sulla definizione dei profilo, fare clic su per salvare le modifiche e uscire dalla procedura guidata.
Il seguente è un esempio di contenuto dell'hat phpsyinfo-dev hat.
Esempio 5.1. Esempio di Hat phpsysinfo-dev
^phpsysinfo {
#include <program-chunks/base-files>
/bin/df ix,
/bin/bash ix,
/dev/tty rw,
/etc/SuSE-release r,
/etc/fstab r,
/etc/hosts r,
/etc/mtab r,
/proc/** r,
/sbin/lspci ix,
/srv/www/htdocs/sysinfo/** r,
/sys/bus/pci/devices r,
/sys/devices/** r,
/usr/bin/who ix,
/usr/share/pci.ids r,
/var/log/apache2/{access,error}_log w,
/var/run/utmp r,
}
![]() | Nota |
|---|---|
Il profilo | |
Quando si utilizza la finestra di dialogo (per informazioni, vedere la Sezione 3.3.3, "Modifica di un profilo" (↑Guida all'amministrazione di Novell AppArmor 2.0)) o quando si aggiunge un nuovo profilo mediante la funzione (per istruzioni, vedere la Sezione 3.3.2, "Aggiunta manuale di un profilo" (↑Guida all'amministrazione di Novell AppArmor 2.0)), è possibile aggiungere hat (sottoprofili) ai profili di Novell AppArmor.
È possibile aggiungere un sottoprofilo ChangeHat dalla .
![]() |
Scegliere dalla , quindi fare clic su . Verrà visualizzata la finestra di dialogo :
![]() |
Immettere il nome dell'hat che si desidera aggiungere al profilo Novell AppArmor. Questo nome corrisponde all'URI che, una volta aperto, riceve le autorizzazioni impostate nell'hat.
Fare clic su . Verrà di nuovo visualizzata la .
Dopo aver aggiunto il nuovo hat, fare clic su .
![]() | Nota |
|---|---|
Per un esempio di un profilo Novell AppArmor, vedere Esempio 5.1, "Esempio di Hat phpsysinfo-dev" (↑Guida all'amministrazione di Novell AppArmor 2.0). | |