Come usare AppArmor in Ubuntu

Probabilmente hai sentito parlare di AppArmor mentre usavi Ubuntu, ma poiché non è un’applicazione che appare nel Menu delle Applicazioni e non si presenta in alcuna forma grafica, alcuni potrebbero non sapere cosa fa e perché è essenziale per il tuo sistema. In breve, AppArmor è un modulo di sicurezza che confina i singoli programmi a un insieme di file e capacità elencati affinché non possano causare danni al sistema.
Scopri le differenze tra SELinux e AppArmor per mettere in sicurezza il tuo sistema Linux.
Indice dei Contenuti
- Che cos’è AppArmor?
- Come funziona AppArmor
- Controllare lo stato di AppArmor
- Trovare i profili AppArmor disabilitati
- Abilitare e disabilitare i profili AppArmor
- Come appare un profilo AppArmor?
- Creare i propri profili per limitare le applicazioni
- Fermare e riavviare AppArmor
- Domande Frequenti
Che cos’è AppArmor?
AppArmor è un sistema di Controllo di Accesso Obbligatorio (MAC) che confina i programmi a un insieme limitato di risorse. Limita i programmi a un insieme di file, attributi e capacità in modo da non penetrare profondamente nel sistema e causare danni (a meno che non venga concessa l’autorizzazione). A differenza del modello di Controllo Account Utente (UAC) di Windows che conferisce il controllo agli utenti, AppArmor lega gli attributi di controllo dell’accesso al programma stesso.
Come funziona AppArmor
AppArmor funziona a livello di kernel (controlla questi suggerimenti se stai compilando il tuo kernel) e si carica durante l’avvio iniziale. AppArmor gestisce i permessi tramite Profili: un insieme di regole che determina cosa il programma può e non può fare.
Ci sono due modalità in cui i Profili possono operare: Applicazione e Complain. La modalità di Applicazione è una rigorosa applicazione della policy, che è definita nel profilo, e riporta i tentativi di violazione della policy. La modalità Complain riporterà solo i tentativi di violazione della policy e non applica la policy. La maggior parte dei profili viene caricata in modalità Applicazione, anche se ci possono essere un buon numero di profili di terze parti caricati anche in modalità Complain.
Controllare lo stato di AppArmor
Se stai usando Ubuntu 7.04 o versioni superiori, AppArmor è installato per impostazione predefinita e si carica all’avvio del computer. Per controllare lo stato di AppArmor, digita il seguente comando nel terminale:
sudo apparmor_statusL’immagine qui sotto mostra cosa vedrai.

Nel mio sistema, puoi vedere che ci sono 36 profili caricati in modalità Applicazione.
Trovare i profili AppArmor disabilitati
AppArmor ha diversi profili predefiniti, alcuni dei quali sono disabilitati per impostazione predefinita. Puoi controllarli nella cartella “/etc/apparmor.d/disable”. Nella versione più recente di AppArmor, puoi vedere che il profilo rsyslogd non è abilitato.

Questo profilo è disabilitato per impostazione predefinita, poiché gli utenti spesso apportano modifiche di configurazione a rsyslogd che lo rendono incompatibile con AppArmor.
Suggerimento: scopri come puoi gestire la tua macchina Ubuntu da remoto con Webmin.
Abilitare e disabilitare i profili AppArmor
Sebbene tu possa avere più profili caricati sul tuo sistema, ciascun profilo può essere abilitato o disabilitato individualmente. Ad esempio, puoi abilitare il profilo rsyslogd menzionato in precedenza. Segui le istruzioni qui sotto per sapere come fare.
Apri un terminale e inserisci:
sudo apt install apparmor-utilsQuesto installerà gli strumenti necessari per eseguire i comandi successivi in questo tutorial. Per abilitare il profilo, digita:
sudo aa-enforce /etc/apparmor.d/usr.sbin.rsyslogdPer disabilitarlo di nuovo:
sudo ln -s /etc/apparmor.d/usr.sbin.rsyslogd /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.rsyslogdCome appare un profilo AppArmor?
Sebbene i profili AppArmor possano sembrare software complessi, in realtà sono solo file di testo semplici con percorsi di file che indicano quali cartelle e directory l’applicazione può accedere. Puoi facilmente fare doppio clic su qualsiasi profilo nella cartella “/etc/apparmor.d” per aprirlo nel tuo editor di testo.
Il profilo Rsyslogd apparirà come l’immagine qui sotto.

Creare i propri profili per limitare le applicazioni
Ubuntu già fa un buon lavoro per proteggerti, ma se desideri limitare un’applicazione personalizzata che non è protetta da Ubuntu, puoi creare il tuo profilo AppArmor per limitare l’applicazione. Questo è particolarmente utile su un server dove le applicazioni potrebbero essere in esecuzione in background.
Nota: prima di creare i tuoi profili, è meglio dare un’occhiata alla libreria di profili AppArmor esistenti per controllare se il profilo per la tua applicazione è disponibile. Puoi anche installare apparmor-profiles per ottenere un elenco aggiuntivo di profili.
Esegui il seguente comando per avviare il profiling:
sudo aa-genprof /path/to/application/path/to/application è il percorso del file dell’applicazione che desideri profilare. La cartella predefinita delle applicazioni è “/usr/bin”, ma potrebbe essere diversa a seconda dell’applicazione e del metodo di installazione, come “/snap/bin”.

Lasciando il terminale in esecuzione, avvia l’applicazione che intendi profilare. In questo esempio, sto usando Krita. Utilizza l’applicazione come faresti di solito.
Per ogni azione che esegui nell’applicazione, torna al terminale e premi Maiusc + S per farle eseguire la scansione delle modifiche.

Da qui, puoi vedere il percorso che l’applicazione sta accedendo e la gravità dell’azione. Scegli di “Consentire (A)” o “Negare (D)” l’azione.
Continua a farlo per il resto delle azioni eseguite sull’applicazione. Per ottenere i migliori risultati, è meglio pianificare la tua lista di azioni prima di iniziare il profiling.
Infine, quando hai finito, premi Maiusc + F per terminare il profiling e Maiusc + S per salvare il profilo.
Una volta creato, il profilo sarà salvato nella cartella “/etc/apparmor.d” e verrà caricato in modalità Applicazione.
Modificare i profili
Per modificare il tuo nuovo profilo creato, usa il seguente comando:
sudo aa-logprof /etc/apparmor.d/In questo caso, dovrebbe essere il nome del nuovo profilo che è stato creato quando hai usato in precedenza il comando aa-genprof.
AppArmor scannerà le voci di log e ti permetterà di apportare modifiche al profilo.
Fermare e riavviare AppArmor
Se, per qualche motivo, hai bisogno di fermare AppArmor, puoi farlo facilmente con:
sudo service apparmor stopPuoi confermare che è stato fermato controllando lo stato con questo comando:
systemctl status apparmor
E per avviare di nuovo AppArmor:
sudo service apparmor restartSe controlli nuovamente lo stato, vedrai una luce verde che indica che AppArmor è in esecuzione.

Se stai gestendo il tuo server, controlla questi suggerimenti per mettere in sicurezza il tuo server Linux.
Domande Frequenti
Perché AppArmor disabilita rsyslog di default?
rsyslog è un software configurabile che gestisce il logging del sistema, compreso il ricevimento, la trasformazione e la consegna dei messaggi di log a diverse destinazioni. Il suo profilo AppArmor, “usr.sbin.rsyslogd”, è incluso ma disabilitato per impostazione predefinita.
Secondo l’ingegnere di Canonical Jamie Strandboge, questo accade perché rsyslog è così altamente configurabile che il profilo potrebbe non funzionare sempre correttamente.
Qual è la differenza tra le versioni di AppArmor 2 e 3?
AppArmor 3.x è l’ultima versione di AppArmor ed è stata rilasciata il 1 ottobre 2020, ed è una grande espansione. AppArmor 2.x è molto vecchio, essendo stato rilasciato intorno al 2007. Sembra che non ci sarà più alcuno sviluppo attivo sulla serie 2.x. L’ultima versione, 2.13.6, è stata rilasciata nel dicembre 2020, e AppArmor 2.14 è elencato come “annullato” sul sito di sviluppo. AppArmor 3.0.7 è stato rilasciato il 9 agosto 2022.
Se ho AppArmor, ho comunque bisogno di un antivirus?
Sì, hai ancora bisogno di un programma antivirus anche se hai AppArmor in esecuzione. I due eseguono operazioni completamente diverse e si completano a vicenda. È bene avere un antivirus su Ubuntu, anche se i sistemi Linux sono meno bersagliati dai creatori di malware.
Cosa sono i blob binari e perché rappresentano un rischio per la sicurezza? Scopri la risposta e come Linux-Libre può offrirti una protezione migliore rispetto al semplice Linux.
Tutti gli screenshot di Brandon Li.