AGLEA SAP Security Blog

SE16 in SAP

Scritto da Massimo Manara | Jan 26, 2021 11:00:00 PM

Per alcuni SE16 potrebbe essere una sigla assolutamente sconosciuta. Per altri il "pane quotidiano". Si tratta di una transazione SAP molto conosciuta agli amministratori. E spesso non solo loro purtroppo.

 

 

Ma a cosa serve? Quante versioni ne esistono? Come utilizzarla e quali sono i rischi connessi?

 

Ne parliamo in questo articolo!

A cosa serve?

È una transazione che permette di avere accesso diretto, in lettura (ma può essere in alcuni casi usata anche per modificare dati), a tutte le tabelle SAP che compongono il database.

 

In altre parole, con questa transazione è possibile avere accesso a qualsiasi dato salvato in un sistema SAP. Chiaramente tutti i sistemi SAP basati su ABAP (es. Success Factors o SAP Cloud Platform, non rientrano in questo caso)

 

Ma quali dati ad esempio?

  • Elenco materiali, con costi e qualsiasi altro dato
  • Distinte base in ogni loro aspetto
  • Anagrafiche clienti e fornitori in ogni loro aspetto
  • Cedolini e dati personali (nel caso di sistemi SAP HR)
  • e qualsiasi altra informazione

 

Pur essendo una transazione in sola lettura può rappresentare un problema di riservatezza dei dati nel caso sia rilasciata in maniera non "ragionata". Esistono diversi modi per rilasciarla riducendo le criticità tuttavia, se possibile è sempre meglio evitare.

 

Quante versioni ne esistono?

Diciamo che nel tempo ci sono state diverse evoluzioni per questa transazione. All'inizio esisteva solamente la SE16, poi ne sono state create diverse versioni migliorate e con molte funzionalità aggiuntive ad esempio la SE16N.

 

Non dobbiamo dimenticare che non esistono solo le transazioni SE16 like, ma esistono diverse ulteriori transazioni come SE11 o SE17 ma anche molte altre che permettono di vedere il contenuto delle tabelle SAP.

 

Ecco un elenco non esaustivo delle principali SE16*

 

SE16 Data Browser

SE16H General Table Display

SE16N General Table Display

SE16N_ROLE General Table Display

SE16RFCDESSECU Data Browser RFCDESSECU

SE16S General Table and Value Search

SE16SL Field-Based Table and Value Search

SE16S_CUST Customizing: Tables and Value Search

SE16T Access Search Functions

SE16T000 Data Browser T000

SE16TXCOMSECU Data Browser TXCOMSECU

SE16USR40 Data Browser USR40

SE16USRACL Data Browser USRACL

SE16USRACLEXT Data Browser USRACLEXT

SE16V_T599R Data Browser V_T599R

SE16W3TREES Data Browser W3TREES

SE16WWWFUNC Data Browser WWWFUNC

SE16WWWREPS Data Browser WWWREPS

SE16_AGR_DEFINE Technical View for AGR_DEFINE

SE16_ANEA Data Browser ANEA

SE16_ANEK Data Browser ANEK

SE16_ANEP Data Browser ANEP

SE16_ANLA Data Browser ANLA

SE16_ANLC Data Browser ANLC

SE16_ANLP Data Browser ANLP

SE16_ANLZ Data Browser ANLZ

SE16_BKPF Data Browser BKPF

SE16_BSEG Data Browser BSEG

SE16_BSEG_ADD Data Browser BSEG_ADD

SE16_BSID Data Browser BSID

SE16_BSIK Data Browser BSIK

SE16_BSIS Data Browser BSIS

SE16_ECMCA Data Browser Journal Entries

SE16_ECMCT Data Browser Totals Records

SE16_KNA1 Data Browser KNA1

SE16_KNB1 Data Browser KNB1

SE16_LFA1 Data Browser LFA1

SE16_LFB1 Data Browser LFB1

SE16_MARA Data Browser MARA

SE16_MARC Data Browser MARC

SE16_RFCDESSECU Data Browser RFCDESSECU

SE16_SKA1 Data Browser SKA1

SE16_SKB1 Data Browser SKB1

SE16_T000 Data Browser T000

SE16_T807R Data Browser T807R

SE16_TCJ_CHECK_STACK Data Browser TCJ_CHECK_STACKS

SE16_TCJ_CPD Data Browser TCJ_CPD

SE16_TCJ_C_JOURNALS Data Browser TCJ_C_JOURNALS

SE16_TCJ_DOCUMENTS Data Browser TCJ_DOCUMENTS

SE16_TCJ_POSITIONS Data Browser TCJ_POSITIONS

SE16_TCJ_WTAX_ITEMS Data Browser TCJ_WTAX_ITEMS

SE16_TXCOMSECU Data Browser TXCOMSECU

SE16_USR40 Data Browser USR40

SE16_USRACL Data Browser USRACL

SE16_USRACLEXT Data Browser USRACLEXT

SE16_V_T599R Data Browser V_T599R

SE16_W3TREES Data Browser W3TREES

SE16_WWWFUNC Data Browser WWWFUNC

SE16_WWWREPS Data Browser WWWREPS

 

Ma esistono anche ulteriori transazioni meno note e con naming diversa che permettono di vedere le tabelle, ad esempio la RSSG_BROWSER.

 

 

Utile in alcuni contesti la transazione SE16T che permette di cercare in in base a descrizione le tabelle o transazioni. Vedi "Find Transactions" e "Find Tables"

 

 
Così come la SE16SL che permette di effettuare una ricerca per contenuto
 

 

SE16N back door

A volte viene sollevata la seguente osservazione: "tanto è in sola visualizzazione, possiamo rilasciarla".

 

Nella maggior parte dei casi è vero, si tratta di una transazione in sola visualizzazione. Tuttavia, può non essere così e dipende dalle autorizzazioni dell'utente e dalla configurazione del sistema.

 

Premesso che anche la sola visualizzazione è critica (soprattutto nel contesto di policy interne e GDPR per quanto riguarda il trattamento dei dati personali).

 

Subito dopo il rilascio da parte di SAP della transazione SE16N era stata inserita da SAP una "backdoor" chiamata &sap_edit, dopo la diffusione in rete di questa backdoor la SAP ha deciso di bloccarla.

 

 

Tramite il programma RKSE16N_EDIT è possibile tuttavia decidere se questa funzionalità debba essere attiva o meno.

 

 

Attenzione non solo le transazioni sono critiche ma anche l'esecuzione dei programmi o function associati alle transazioni SE16* es. RK_SE16N o RSDU_CALL_SE16

 

Perché può essere critica?

Lo abbiamo già citato sopra. SAP permette di effettuare la segregazione dei dati andando a rilasciare agli utenti le transazioni specifiche per ogni attività di business. Un utente può quindi avere un insieme di queste transazioni che gli permettono di svolgere il proprio lavoro. In base alla responsabilità definite.

 

Rilasciando la SE16* è come aprire una porta speciale che consente di arrivare a dati non formalmente rilasciati dal perimetro delle transazioni assegnate a questo utente. Di fatto bypassando la segregazione transazionale prevista da SAP.

 

Inoltre, se l'utente possiede autorizzazioni di debug (oggetto autorizzativo S_DEVELOP in modifica) è possibile effettuare modifiche.

 

P.S. Le modifiche fatte tramite SE16N si possono vedere nelle tabelle SE16N_CD_KEY e SE16N_CD_DATA. Attenzione anche queste tabelle possono essere modificate

 

SE16N_EMERGENCY

Cosa fare se qualcuno deve svolgere delle modifiche di emergenza tramite questa transazione in produzione. In questo caso la nota OSS seguente può essere utile 2911103 - SE16N: Alternative edit mode SE16N_EMERGENCY.

 

Di default la transazione viene bloccata al primo utilizzo. Poi si sblocca solo su specifica richiesta e si ri-blocca tramite la transazione SM01_CUS. tracciando quanto viene fatto.

 

1) Sblocco della transazione, da parte di un amministratore

 

 

2) Utilizzo della transazione, con dettaglio delle modifiche fatte es. Ticket XYZ

 

 

3) Documentazione delle modifiche fatte

 

 

Ma quali le mitigazioni per rilasciare SE16?

Esistono delle soluzioni alternative per rilasciarla.

 

Ci sono utenti che devono poter accedere a delle tabelle specifiche. In questo caso, se il numero di tabelle non è elevatissimo, è possibile definire delle transazioni chiamate parametriche (tramite la transazione SE93, vedi immagine sotto)

 

 

che permettono di sfruttare la SE16 per leggere direttamente una specifica tabella (senza dare la possibilità di inserirla all'utente), saltando quindi la schermata iniziale.

 

 

Nel caso in cui il numero di transazioni da rilasciare sia estremamente elevato possono esserci due scenari a mio avviso:

  1. Perché l'utente deve accedere a così tante tabelle direttamente?
    1. Perché non utilizza le transazioni standard SAP
    2. Se deve visualizzare parti di configurazione del sistema, esiste anche il sistema di QAS eventualmente
  2. Definire una transazione custom che permetta di selezionare le tabelle da poter visualizzare. In questo caso con una sola transazione rilasciata e sviluppata è possibile rilasciare le tabelle da visualizzare. Non la suggerisco tuttavia (anche se realizzata in alcuni contesti).

Ma se proprio devi rilasciarla come puoi circoscrivere l'accesso?

Puoi:

  1. utilizzare gli oggetti autorizzativi che SAP mette a disposizione per proteggere l'accesso alle tabelle. Leggi qui il post dedicato agli oggetti autorizzativi specifici.
  2. usare la funzionalità vista sopra della SE16N_EMERGENCY se già presente
  3. in ogni caso conviene attivare il security audit log in particolare gli eventi seguenti (potrai vedere chi ha usato una transazione critica e su quali tabelle). Attenzione se attivi i log poi devono essere controllati ed usati. L'alternativa è quella di utilizzare il componente Emergency Access Management (per automatizzare la gestione del provisioning di queste abilitazioni e la gestione dei log)
    1. DU9 - Generic table access using transactions es. SE16, SE16N, SM30, SM31, SM34, o SQV (OSS note 2041892)
    2. CUZ - Generic table access by RFC to &A with activity &B

 

Attenzione quindi alle richieste durante la manutenzione del sistema (AMS) che potrebbero arrivare. Meglio pensarci due volte prima di rilasciarla.