Home
» LINUX
»
Come configurare i profili AppArmor per le applicazioni personalizzate su SUSE SLES 15
Come configurare i profili AppArmor per le applicazioni personalizzate su SUSE SLES 15
Nota sulla versione, verificata il 6 ottobre 2026: questa procedura si applica a SUSE Linux Enterprise Server (SLES) 15 SP7 e ai sistemi SLE 15 compatibili che utilizzano AppArmor. SUSE documenta che AppArmor è installato ed eseguito di default su SLES 15 SP7. SUSE Linux 16.0 rimuove AppArmor e utilizza SELinux al suo posto, quindi non applicare i comandi seguenti alla versione 16.0; fare riferimento alla guida comparativa di SUSE Linux 16.0 e alla documentazione di SELinux per tale versione.
AppArmor è un modulo di sicurezza per Linux che limita l'accesso di un programma alle risorse. Un profilo è la policy associata a un eseguibile: può consentire o negare l'accesso a file, funzionalità e altre risorse. Questa guida ti accompagnerà dalla verifica della piattaforma all'implementazione di un profilo testato, con una fase di apprendimento graduale per ridurre al minimo il rischio di malfunzionamenti imprevisti nell'applicazione personalizzata.
Cosa bisogna preparare prima di creare un profilo?
Se l'applicazione è importante, utilizza una finestra di test o di manutenzione. È necessario un account amministratore con i privilegi di amministratore sudo, il percorso effettivo del file eseguibile dell'applicazione e un elenco delle normali attività che essa svolge. Includi le attività in background, l'avvio e l'arresto, il ricaricamento della configurazione, i caricamenti o le esportazioni, le attività pianificate e qualsiasi funzione connessa alla rete. Un profilo appreso da un singolo avvio non può dedurre funzionalità che non vengono mai utilizzate.
È fondamentale sapere dove l'applicazione legge e scrive i dati, quale account la esegue e se avvia processi di supporto. Quando possibile, evitare di eseguire test su dati di produzione sensibili. Registrare lo stato attuale del servizio e conservare una copia di qualsiasi profilo esistente prima di apportare modifiche.
Come si fa a verificare che AppArmor sia disponibile in questa versione di SUSE?
Innanzitutto, verifica la versione del sistema operativo e lo stato attuale di AppArmor:
cat /etc/os-release
sudo aa-status
Innanzitutto, verifica la versione di SUSE; il comando mostrato legge il file di identificazione del sistema operativo.Utilizza il comando aa-status per verificare se AppArmor è attivo e quali profili sono caricati.
Verificare che il sistema riporti SLES 15 SP7 o un'altra versione la cui documentazione supporti AppArmor. Su SLES 15 SP7, la guida SUSE afferma che AppArmor è installato ed eseguito per impostazione predefinita. Se non è presente, SUSE documenta l'installazione con sudo zypper in -t pattern apparmor. Se il servizio è installato ma non in esecuzione, esaminare i criteri di avvio del sistema e lo stato del servizio prima di abilitarlo; non disabilitare il modulo di sicurezza per aggirare un problema dell'applicazione. Consultare la guida introduttiva ad AppArmor per SLES 15 SP7 e la guida agli strumenti da riga di comando di AppArmor per SLES 15 SP7 per dettagli specifici della versione.
Come si identifica il file eseguibile che AppArmor dovrebbe analizzare?
I profili AppArmor sono associati ai percorsi dei programmi, quindi identifica l'eseguibile effettivo anziché presumere che il comando digitato dall'utente sia il binario. Per un comando disponibile tramite il percorso della shell, esegui:
command -v myapp
Sostituisci "myapp" con il comando dell'applicazione e verifica il percorso dell'eseguibile risolto prima di eseguire la profilazione.
Per un servizio, esamina la definizione dell'unità e i dettagli del processo utilizzando gli strumenti disponibili sul tuo sistema. Uno script di avvio, un collegamento simbolico o un interprete potrebbero portare a un eseguibile diverso da quello previsto. Risolvi un percorso noto con readlink -f /path/to/myappdove appropriato. Sostituisci il percorso assoluto verificato in ogni comando seguente; /usr/local/bin/myappè solo un esempio.
Prima di creare un profilo, verifica se ne esiste già uno in /etc/apparmor.d. SUSE memorizza i profili in questa posizione e il nome del file solitamente sostituisce le barre nel percorso dell'eseguibile con dei punti. Ad esempio, /usr/local/bin/myappcorrisponde a un nome file come usr.local.bin.myapp. Non sovrascrivere un profilo esistente del fornitore o gestito localmente senza averlo prima esaminato. SUSE elenca anche profili aggiuntivi in /usr/share/apparmor/extra-profiles; un profilo adatto può fornire un punto di partenza, ma deve comunque essere esaminato per la tua applicazione e la tua release ( documentazione del repository dei profili SUSE ).
Come si genera un profilo iniziale in modo sicuro?
Eseguire lo strumento di generazione del profilo come amministratore, utilizzando il percorso completo del file eseguibile:
sudo aa-genprof /usr/local/bin/myapp
Avvia aa-genprof con il percorso eseguibile verificato; il percorso qui riportato è solo un esempio da sostituire.
aa-genprofCrea un profilo iniziale e imposta il programma in modalità di segnalazione durante l'esecuzione. La modalità di segnalazione registra le violazioni delle policy ma non blocca l'operazione negata, consentendo di osservare il comportamento prima dell'applicazione delle restrizioni. Segui le istruzioni dello strumento; dopo aver eseguito l'applicazione, utilizza l'opzione di scansione per esaminare gli eventi registrati. SUSE descrive questo processo come iterativo, non come una garanzia che il profilo suggerito automaticamente sia completo.
Quali azioni dovresti testare e dove riscontri i rifiuti?
Mentre il profilo è in modalità di segnalazione, utilizza l'applicazione come farebbe un normale operatore. Testa i flussi di lavoro ordinari e le attività meno frequenti ma supportate, tra cui letture, scritture, caricamenti, generazione di report, riavvii dei servizi e processi ausiliari. Mantieni il test realistico: un programma potrebbe utilizzare file o processi secondari diversi per un'esportazione rispetto alla schermata iniziale.
Esamina i messaggi del kernel e il registro di controllo per individuare gli eventi di AppArmor:
sudo journalctl -k | grep -i apparmor
Dopo aver eseguito il programma, esaminare i messaggi del kernel per individuare eventuali eventi di AppArmor; questo comando visualizza le voci corrispondenti, se presenti.
A seconda della configurazione di registrazione del sistema, SUSE fa riferimento anche a /var/log/audit/audit.log, journalctl | grep -i apparmor, e dmesg -T. Una corrispondenza mancante in una vista del log non dimostra che il profilo sia corretto: verifica che l'applicazione sia stata eseguita e controlla il servizio di logging e altre posizioni di log documentate. Non considerare un profilo generato come testato solo perché l'applicazione si avvia una volta.
Come si dovrebbe rivedere e perfezionare il profilo?
Come utente root, utilizza i seguenti comandi aa-logprofper elaborare gli eventi registrati e rispondere alle richieste:
sudo aa-logprof
Utilizza aa-logprof per esaminare gli accessi osservati e decidere quali rientrano nelle policy dell'applicazione.
Per ogni evento, chiedetevi se l'accesso è necessario per un'attività applicativa documentata. Consentite solo il percorso, la modalità di accesso o la funzionalità strettamente necessari al programma. La lettura di un file di configurazione potrebbe essere prevista; una scrittura non pianificata in una directory non correlata potrebbe segnalare un errore o un componente separato che necessita di indagine. Regole troppo ampie indeboliscono il contenimento, mentre regole troppo restrittive possono compromettere attività valide.
Non accettare automaticamente ogni richiesta né concedere l'accesso illimitato a tutti i file.
Evitate caratteri jolly generici e funzionalità non necessarie; preferite un percorso preciso e le autorizzazioni minime indispensabili.
Ripetere il ciclo di carico di lavoro e revisione dei log dopo le modifiche al profilo. Includere operazioni di servizio separate e attività in background.
Limita le modifiche all'applicazione di destinazione; evita di apportare modifiche al profilo non correlate solo per eliminare il rumore di fondo.
Il profilo rappresenta un limite di controllo degli accessi, pertanto una richiesta di autorizzazione dovrebbe essere risposta in base al comportamento dell'applicazione e ai requisiti operativi, non semplicemente perché è apparsa in un log. La guida agli strumenti da riga di comando di SUSE SLES 15 SP7 AppArmor spiega gli strumenti da riga di comando e i collegamenti di riferimento del supporto di SUSE AppArmor alle pagine man pertinenti, tra cui aa-genprof, aa-logprof, e apparmor_parser.
Quando è opportuno attivare la modalità di applicazione del profilo?
Passare all'applicazione delle policy solo dopo che i flussi di lavoro rappresentativi hanno avuto successo e dopo aver esaminato gli eventi legittimi. Applicare il profilo dell'applicazione, ricaricare il set di profili di AppArmor e riavviare l'applicazione o il servizio in modo che il processo in esecuzione utilizzi la policy aggiornata:
Applica le restrizioni al profilo di destinazione, quindi ricarica AppArmor; sostituisci il percorso di esempio con l'eseguibile verificato.
SUSE fa notare che il ricaricamento rilegge i profili /etc/apparmor.d; potrebbe essere necessario riavviare un programma già in esecuzione prima che il profilo aggiornato abbia effetto. Coordinare il riavvio con il responsabile del servizio e utilizzare il comando di gestione del servizio corretto per l'applicazione. Quindi ripetere i flussi di lavoro chiave sotto applicazione, anziché presumere che il successo in modalità reclamo dimostri che funzioneranno senza modifiche.
Come si verifica il risultato e come si recupera da una regressione?
Verifica lo stato del profilo e cerca eventuali nuovi rifiuti dopo il test:
Verifica il profilo caricato e rivedi i nuovi messaggi di AppArmor dopo aver testato l'applicazione in modalità di applicazione forzata.
Verificare che il profilo desiderato sia caricato e in modalità di applicazione, che il servizio rimanga integro e che ogni attività richiesta funzioni correttamente. Se l'applicazione blocca un'operazione legittima, raccogliere l'evento pertinente, verificare se l'accesso è effettivamente necessario e restringere il profilo. Per una diagnosi breve e controllata, sudo aa-complain /usr/local/bin/myappè possibile impostare il profilo del programma in modalità di segnalazione; esaminare, aggiornare e testare nuovamente prima di riattivarlo con aa-enforce. Ricaricare e riavviare secondo necessità. Evitare di disattivare AppArmor a livello globale o di concedere autorizzazioni generiche come soluzione rapida.
Quali sono gli errori più comuni da evitare?
Utilizzo di istruzioni di rilascio errate: il flusso di lavoro qui descritto è per SLES 15 AppArmor. SUSE Linux 16.0 utilizza invece SELinux, secondo la guida comparativa di SUSE.
Eseguire la profilazione di un wrapper anziché del programma reale: verificare l'eseguibile che viene effettivamente eseguito, soprattutto per servizi e script.
Apprendimento insufficiente: le funzionalità non testate non generano accessi osservati, pertanto un profilo incompleto potrebbe fallire in seguito.
Approvazione delle richieste senza contesto: ogni autorizzazione aggiunta dovrebbe essere funzionale a un'attività richiesta dall'applicazione.
Dimenticare il riavvio: ricaricare i profili, quindi riavviare un'applicazione in esecuzione quando necessario in modo che il processo adotti i criteri.
Modifica senza possibilità di ripristino: esegui il backup dei profili gestiti localmente e tieni traccia delle modifiche nel sistema di controllo versione o nel processo di gestione della configurazione del tuo sistema.
Questi riferimenti sono stati verificati il 6 ottobre 2026. I comandi e i dettagli dei pacchetti possono variare a seconda della versione del prodotto; si consiglia di consultare la documentazione relativa al service pack SLES installato prima di apportare modifiche.