AGLEA SAP Security Blog

Autorizzazioni SAP, 10 cose da non fare!

Scritto da Massimo Manara | Oct 15, 2019 10:00:00 PM

Esistono molti modi fantasiosi in aggiunta a quello standard SAP di gestire le autorizzazioni.

 

 

Iniziamo con il dire qual è l’unico modo consigliato. Quello dei controlli autorizzativi utilizzando lo statement ABAP AUTHORITY-CHECK.

 

Quali sono altri modi di gestire i controlli autorizzativi in SAP? Ma soprattutto per quale motivo non dovresti usarli?

Tabelle di appoggio che governano chi può fare cosa

Tra le bad practice il metodo sicuramente più utilizzato è quello di creare una tabella custom dove andare ad inserire utenti.

 

Tecnicamente, viene inserito nel codice del programma (collegato alla transazione SAP) un controllo di presenza di un certo utente (spesso in aggiunta a determinati altre condizioni) nella tabella custom definita, affinché sia possibile proseguire.

 

Ma perché non è corretto e quali rischi comporta?

 

  • Ogni sviluppo custom ha un costo (di creazione e soprattutto di gestione)
  • Esiste il modo standard, l’utilizzo dei controlli autorizzativi (Authority-Check) perché non usare quello? Eventualmente definendo un oggetto autorizzativo custom
  • Durante la risoluzione di problematiche non è possibile utilizzare gli strumenti standard di debug o trace autorizzativo in quanto non sono utili
  • Chi conosce quel processo è sicuramente autonomo ma una nuova risorsa che subentra o l’affidamento a terzi di quella gestione potrebbe trovare difficoltà a risalire alla gestione. Soprattutto se esistono molti casi di questo tipo
  • Se cancello una utenza, la tabella di appoggio viene pulita?
  • Se un utente si sposta da una direzione ad un’altra? La sua utenza viene eventualmente rimossa dalla tabella? Oppure rimane comunque inserita?
  • Esiste uno storico della tabella custom usata? Per capire chi ha fatto cosa?
  • La tabella è protetta tramite un gruppo autorizzativo ad hoc?
  • La tabella viene gestita centralmente dall'IT oppure viene delegata la manutenzione direttamente ai reparti di competenza?
    • Ulteriore manutenzione in carico all'IT spesso direttamente ai funzionali applicativi, non al personale Security
    • L'IT potrebbe nel tempo, perdere il controllo di quel processo, se delegato al business
  • Stai pensando ad un sistema di Identity Management o SAP GRC Access Control nel modulo Access Request Management. Questi sistemi non supportano da standard il provisioning di queste ulteriori tabelle custom.

 

Quali sono quindi i vantaggi di utilizzare delle tabelle custom per il controllo autorizzativo?

 

Quanto costa la conversione di questi modelli autorizzativi?

Purtroppo non c'è una risposta univoca, dipende da quanto sono presenti nei processi queste situazioni.

Per pochi casi può essere relativamente semplice, per molti addirittura improponibile.

Utilizzo di ruoli cablati nel codice

Non così frequente ma ancora possibile oggi. L’inserimento nel codice ABAP dei nomi tecnici di oggetti.

Ad esempio: se l’utente ha assegnato in quel momento (magari senza controllare nemmeno la validità dell’attribuzione) un certo ruolo (nome tecnico) allora esegui una certa operazione.

 

  • Non è mai consigliato inserire a livello di codice dei nomi/stringhe
  • In caso di rimozione o renaming del ruolo servirebbe rivedere il codice ABAP sviluppato
  • Anche in questo caso, come nel precedente gli strumenti standard di debug autorizzativo non sarebbero di aiuto.

 

Utilizzo di userid hard coded

Simile al precedente ma questa volta direttamente sulla utenza tecnica. Ovvero se sto usando una certa utenza allora potrò svolgere una certa operazione.

 

Bypass dei controlli autorizzativi

Cosa significa in questo caso? Ecco uno scenario reale.

 

L'utente deve eseguire una certa funzionalità in modalità background. Durante la sottomissione dell'attività il programma sostituisce l'utenza con una tecnica.

 

Il risultato è che viene utilizzata una utenza tecnica per svolgere una certa attività anziché l'utenza di chi ha realmente svolto l'operazione.

 

Nel caso in cui siano registrazioni contabili ad esempio?

 

Come puoi discriminare se si tratta di una azione effettuata realmente da utenze tecniche o da fatta da utenti reali tramite utenza tecnica? Durante un audit potrebbe essere un aspetto molto rilevante.

 

Uno specifico audit a livello di programmi ABAP sviluppati può fare emergere le casistiche sopra.