Blog
La sicurezza dei dati in SAP – una introduzione
- 27/11/2021
- Scritto da: Grazia Livia Masulli
- Categoria: Introduzione a SAP ERP
La gestione della sicurezza informatica in SAP è un campo vastissimo.
È composta da tre macro aree:
La sicurezza dell’applicazione (ossia del gestionale stesso). Si tratta del modo in cui vengono gestiti gli utenti ed i loro ruoli autorizzativi per evitare accessi non autorizzati ai dati.
La sicurezza dell’infrastruttura. Si tratta del modo in cui i dati vengono conservati (ad esempio se sono criptati o meno) e trasmessi (usando metodi crittografici).
La sicurezza dei programmi sviluppati. Si tratta del modo in cui vengono scritti programmi in ABAP sviluppati “ad hoc” (ossia, specifici della società). Questi programmi possono infatti introdurre delle vulnerabilità nel sistema.
Vediamole più nel dettaglio.
La gestione della sicurezza dei dati nel gestionale è necessaria per proteggere dati sensibili come possono essere ad esempio i dati relativi al personale (gli stipendi ed altre informazioni personali), le distinte base dei nostri prodotti o gli elenchi di fornitori e clienti.
Sono necessari vari interventi: dalla formazione del personale (che deve sapere quali sono i comportamenti che mettono a rischio i dati, come ad esempio condividere la propria password) ad una gestione intelligente delle utenze.
Il sistema deve cioè essere sviluppato pensando al “ciclo vitale” del personale, dal momento in cui viene assunto alla cessazione del rapporto di lavoro passando per eventuali cambi delle mansioni da svolgere.
Devono essere costituiti vari ruoli lavorativi (“job roles” o “business roles”) che coprano le varie attività dei dipendenti.
L’idea è che un dipendente potrà accedere o meno ad alcuni tipi di dati in funzione del ruolo che ha nell’impresa: ad esempio è naturale che chi lavora nell’ufficio del personale (Risorse Umane) sia autorizzato a vedere le condizioni contrattuali dei vari dipendenti. Tuttavia la stessa persona non dovrebbe poter accedere a informazioni su clienti, contratti in essere, documentazione di ingegneria, etc.
Questi ruoli non devono essere ritagliati sul profilo di una specifica persona ma essere generici.
È opportuno limitare al massimo il numero dei ruoli, cercando di evitare sovrapposizioni. Per una società di 1000 persone potrebbe essere sensato ad esempio lavorare con circa 100 ruoli differenti.
È importante definire questi ruoli pensando alla segregazione dei ruoli (in inglese, Separation of duties o Segregation of Duties – “SoD”).
Si tratta dell’idea che i compiti critici per la vita dell’impresa (come la gestione degli acquisti o l’assunzione di nuovo personale) debbano essere gestiti da più persone per limitare il rischio di furti, sabotaggi, frodi o anche semplicemente di errori.
Ad esempio in SAP un ordine di acquisto (Purchase Order) viene richiesto da un manager che gestisce un centro di costo. Spesso questo ordine di acquisto deve essere approvato dal diretto superiore della persona che fa la richiesta, e successivamente dal dipartimento di Procurement.
In questo articolo troverete altre informazioni su Autorizzazioni e Ruoli in SAP.
Per ciò che riguarda la sicurezza dell’infrastruttura alcuni elementi chiave sono l’utilizzo di protocolli sicuri per il trasporto dei dati (SSL) con utilizzo di chiavi pubbliche e private per la gestione dei certificati. Il database HANA permette inoltre di criptare i dati sul disco (e se necessario anche i log e le copie di backup).
Importante anche accennare alla possibilità di proteggere i dati con tecniche di mascheramento (“Masking”) o rimescolamento (“Scrambling”).
Nel caso del mascheramento le informazioni non sono modificate nel database ma vengono anonimizzati (“mascherati”) quando vengono presentati all’utente finale. In questo caso i dati nel database non vengono toccati (e rimangono visibili agli utenti con le autorizzazioni necessari). Gli utenti senza le autorizzazioni necessarie vedrebbero quindi dei dati fittizi – preservando la confidenzialità delle informazioni. SAP offre un prodotto specifico per ottenere questo risultato: Field Masking for SAP GUI.
Con lo Scrambling modifichiamo invece i dati direttamente nel database. Evidentemente non potremo utilizzare questa soluzione nei sistemi in produzione, mentre potrebbe interessarci per lavorare su copie del sistema per lo sviluppo o il controllo qualità. Una applicazione possibile per questa tecnica sarebbe ad esempio il caso in cui esternalizziamo lo sviluppo di applicativi specifici per la nostra impresa e dobbiamo condividere la base dati con sviluppatori esterni. Se non vogliamo condividere i dati veri potremmo condividere con loro dei dati “rimescolati”.
Per ciò che riguarda la sicurezza dei programmi sviluppati in ABAP SAP offre diversi metodi per verificare la sicurezza del software sviluppato internamente o esternamente – ad esempio l’ ABAP Test Cockpit, uno strumento pensato per verificare la qualità del codice che verifica ad esempio la sintassi, la sua sicurezza ed il rispetto delle convenzioni sui nomi.
Un’altra soluzione è l’analizzatore della vulnerabilità del codice (“Code Vulnerability Analyzer”, o SAP CVA), un componente aggiuntivo di SAP NetWeaver che ricerca rischi potenziali come nomi utenti “hard coded” o situazioni che possono causare una “SQL injection” (una tecnica che permette di inserire del codice SQL ad esempio per alterare elementi del database o scaricare informazioni.