Controllare la sicurezza sui sistemi IBM i: l'Audit Journal
Sappiamo bene che i sistemi informativi devono essere messi in sicurezza, ma sappiamo anche che essa deve anche essere controllata, per capire se gli strumenti utilizzati sono adeguati e configurati al meglio.
Monitorare la sicurezza significa capire cosa sta avvenendo sui sistemi in ogni momento, sia per ottemperare alle normative e sia (ancora più importante) per essere avvisati il prima possibile nel caso di operazioni errate o fraudolente sui dati di business. Si possono avere i sistemi perfettamente funzionanti e performanti, ma senza un controllo della sicurezza, si rischia comunque il danno grave su ciò che di più prezioso abbiamo in azienda, i dati.
Controllare la sicurezza dei sistemi IBM i: l'Audit Journal
In questo articolo non partiremo con la descrizione di cosa sono i journal all'interno dei sistemi IBM i, ma ci faremo bastare poche considerazioni. I giornali sul sistema as400 si dividono in:
giornali di dati: log che collezionano ciò che avviene sui dati del sistema
giornale di audit: log che colleziona ciò che avviene sul sistema
Come distinguere il giornale di audit dai giornali di dati?
La differenza è molto semplice, il giornale di Audit è unico per una singola partizione e lo si distingue perchè deve essere creato con un nome ben specifico in una libreria ben definita:
QAUDJRN nella libreria QSYS
Non affronteremo qui l'argomento del "come crearlo e attivarlo" ma resteremo in argomento monitoring e vedremo come controllare che esista e che sia configurato al minimo indispensabile
Per farlo ci vengono incontro i servizi SQL che IBM ha reso disponibili fin dalla versione 7.2 del sistema operativo
Controllare, in SQL, se l'audit journal esiste ed è configurato
select journal_name, journal_library, attached_journal_receiver_name, attached_journal_receiver_library,
journal_state,number_journal_receivers,
cast(cast(total_size_journal_receivers as decimal(10,3))/1000/1000 as decimal(10,3)) as GB
from QSYS2.JOURNAL_INFO
where journal_name='QAUDJRN'
Se non trovo record: Audit Journal non esistente
Se trovo un record ma il campo journal_state è diverso da *ACTIVE: Audit Journal esistente ma disattivo
Se c'è almeno un record e il campo journal_state è uguale ad *ACTIVE: Audit Journal esistente e attivo
"Se l'Audit Journal è attivo sono a posto?"
Assolutamente no, l'Audit Journal deve essere configurato per indicare cosa registrare tra le attività che accadono sul sistema. Sono tantissimi gli eventi che l'audit journal può registrare ma è necessario dirglielo altrimenti avrei un log vuoto e quindi inutile
Vediamo le entry type che un Audit Journal può contenere e successivamente vediamo come controllare quali siano già configurate:
https://www.ibm.com/docs/en/i/7.4?topic=actions-security-auditing-journal-entries
Controllare la configurazione dell'Audit Journal
Per farlo si guarda il contenuto di alcuni system values, controllo che noi facciamo sempre in SQL
select system_value_name,current_character_value
from qsys2.SYSTEM_VALUE_INFO
where system_value_name='QAUDCTL' and current_character_value like '%*AUDLVL%'
un esempio:
Se non si ottiene alcun record: Audit Journal non configurato
Se esiste un record, ma il campo current_character_value non contiene il valore *OBJAUD: Audit Journal non configurato
Se esiste il record e il campo current_character_value contiene il valore *OBJAUD, allora passo al controllo successivo
select system_value_name,current_character_value
from qsys2.SYSTEM_VALUE_INFO
where system_value_name in ('QAUDLVL', 'QAUDLVL2')
order by system_value_name
Se non si ottiene alcun record: Audit Journal non configurato
Se il primo record ha il campo current_character_value uguale a *NONE: Audit Journal non configurato
Se nel primo record c'è *AUDLVL2 o altro, allora metto insieme i valori delle due celle current_character_value (escludendo l'eventuale *NONE del secondo record) e passo ai controlli successivi
Se i valori complessivi dei due current_character_value contengono *JOBDTA o *JOBBAS e *JOBCHGUSR, allora nell'Audit Journal vengono registrati gli accessi degli utenti al sistema, sia batch che interattivi
Se i valori complessivi dei due current_character_value contengono *AUTFAIL, allora nell'Audit Journal vengono registrati gli accessi errati al sistema (password sbagliate, utenti disabilitati, utenti inesistenti, ...)
Se i valori complessivi dei due current_character_value contengono *SECVFY o il valore *SECURITY, allora nell'Audit Journal vengono registrati gli accessi con swap del profilo su un altro
Se i valori complessivi dei due current_character_value contengono *SECCFG o il valore *SECURITY, allora nell'Audit Journal vengono registrate le modifiche ai system values del sistema
... e così via, questi li ritengo i valori più importanti ma nell'audit journal possono essere registrate tantissime altre azioni. Per un dettaglio maggiore https://www.ibm.com/docs/en/i/7.4?topic=actions-security-auditing-journal-entries (dal sito IBM)
Come leggere l'audit journal in maniera completa? Sarà argomento di un prossimo articolo... buona sicurezza a tutti 😉
Marco Moret Monitoring Project Manager presso smeup ICS
Puoi trovare l'articolo anche su LinkedIn
Tutti gli articoli
Quando il sistema è ripartito l'ultima volta?
Writers Manager: Controllare e gestire le stampanti con l'SQL
Controllare la sicurezza sui sistemi IBM i: l'Audit Journal
JTOpen per ambienti .Net. La prima connessione JDBC da C#
JTOpen, sviluppare applicazioni in .Net per IBM i
DB2 for i: gestire le date in SQL
Scaricare, installare e utilizzare i driver ODBC per IBM i
Ottenere le info di sistema in SQL
Gestisci, analizza e controlla il sistema IBM i
Scarica, installa e lavora in pochi secondi
IBM i Monitoring Facility - Check è completamente gratuito fino a fine mese