Capitolo 5. Definizione del profilo delle applicazioni Web con ChangeHat Apache

Sommario

5.1. Apache ChangeHat
5.2. Configurazione di Apache per mod-apparmor

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.

[Note]Nota

Per ulteriori informazioni, vedere la pagina man change_hat.


5.1. Apache ChangeHat

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.

[Note]Nota

Se si installa il modulo mod-apparmor senza Novell AppArmor, è necessario verificare che nel file di configurazione del modulo di caricamento di Apache sia disponibile un comando per il caricamento di mod-apparmor. A questo scopo, aggiungere la riga seguente al file configurazione Apache in uso:

LoadModule change_hat_module modules/mod_change_hat.so

5.1.1. Strumenti per la gestione di applicazioni basate su ChangeHat

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 Aggiunta guidata profili, 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 Usa hat predefinito 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.

  1. Dopo l'installazione di phpsysinfo-dev è possibile aggiungere gli hat al profilo Apache. Scegliere Aggiunta guidata profili dall'interfaccia utente grafica di Novell AppArmor.

    Aggiunta guidata profili
  2. In Profilo da aggiungere, immettere httpd2-prefork.

  3. Fare clic su Crea profilo. Verrà visualizzata la finestra Definizione guidata profili AppArmor.

    Definizione guidata profili AppArmor
  4. Riavviare Apache specificando rcapache2 restart in una finestra del terminale.

    [Note]Nota

    Riavviare tutti i programmi per i quali è in corso la definizione del profilo.

  5. Aprire http://localhost/phpsysinfo-dev/ in una finestra del browser. Verranno visualizzati l'utilizzo della rete e le informazioni sul sistema.

    [Note]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 Aggiorna del browser per essere certi che Apache elabori la richiesta dell'URI phpsysinfo-dev.

  6. Fare clic su Ricerca elementi da aggiungere ai profili nel registro di sistema. In Novell AppArmor viene avviato lo strumento logprof, che ricerca tutte le informazioni immesse nel passaggio precedente. Verranno quindi visualizzate alcune domande sul profilo.

  7. Nell'esempio viene chiesto di selezionare Aggiungi hat richiesto o Usa hat predefinito perché è stato riscontrato che phpsysinfo-dev ha chiesto di accedere a un URI. Selezionare Aggiungi hat richiesto.

    Definizione guidata profili AppArmor: Aggiungi hat richiesto
  8. Fare clic su Consenti.

    La selezione di Aggiungi hat richiesto 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 Eredita), in un profilo separato (selezionare Profilo) oppure senza limitazioni o profili di sicurezza (selezionare Senza limitazioni). Se si sceglie Profilo, verrà creato un nuovo profilo (se non ancora esistente) per il programma.

    [Note]Nota

    La selezione di Senza limitazioni può rappresentare un grave rischio per la sicurezza e deve essere effettuata con cautela.

    Definizione guidata profili AppArmor: Eredita
    1. Selezionare Eredita per il percorso /bin/bash. Il percorso /bin/bash/ (a cui può accedere Apache) verrà aggiunto al profilo hat phpsysinfo-dev con le autorizzazioni necessarie.

    2. Fare clic su Consenti.

  9. 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 Fine 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,
  }
[Note]Nota

Il profilo ^phpsysinfo-dev è valido solo nel contesto di un processo eseguito nel profilo padre httpd2-prefork.

5.1.2. Aggiunta di hat e di voci agli hat

Quando si utilizza la finestra di dialogo Modifica profilo (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 Aggiungi profilo AppArmor manualmente (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 finestra di dialogo Profilo AppArmor.

finestra di dialogo Profilo AppArmor
  1. Scegliere Aggiungi voce dalla finestra di dialogo Profilo AppArmor, quindi fare clic su Hat. Verrà visualizzata la finestra di dialogo Immettere nome hat:

    Immettere nome hat
  2. 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.

  3. Fare clic su Crea hat. Verrà di nuovo visualizzata la finestra di dialogo Profilo AppArmor.

  4. Dopo aver aggiunto il nuovo hat, fare clic su Fine.