La mia domanda riguarda gli standard best practice / industriali per impedire agli utenti e agli amministratori non autorizzati di accedere direttamente alla console del database e aggiornare le informazioni sensibili come informazioni finanziarie / saldi, ecc. anziché utilizzare il software che altrimenti convalida le azioni dell'utente .
Chiedo questo perché il software che mantengo ha un meccanismo anti-manomissione rudimentale. Un set di campi da ciascuna tabella viene verificato prima dell'inserimento o dell'aggiornamento e la firma risultante viene archiviata in ciascun record. Quando il record viene successivamente caricato dal database, la firma viene ricalcolata e confrontata con la firma precedentemente mantenuta nel database. Se le firme sono diverse, viene generato un allarme.
Ci sono alcune sfide con questo approccio, ad esempio nel caso in cui i nuovi campi debbano essere aggiunti alla firma, questo rende tutte le firme esistenti obsolete. Pertanto, entrambi devono essere migrati o in qualche modo versione. La migrazione di milioni di record non è un'opzione. Immagino per me, è un caso che il meccanismo debba essere rielaborato per codificare l'identificativo della versione nella firma. Inoltre questo approccio non catturerà i record cancellati. Il più grande difetto con questo approccio è che un utente con un bilancio elevato iniziale (stato di registrazione ideale) potrebbe effettuare transazioni e sostituire il suo record allo stato iniziale ideale dopo ogni transazione. Nessun allarme verrebbe generato poiché la firma non tiene conto degli stati dei record precedenti.
Ho trovato tanti buchi con il concetto e l'implementazione di questo meccanismo che mi ha fatto riflettere, come fa il resto del mondo a gestirlo? Banche? Compagnie di assicurazione? Istituzioni finanziarie?
Immagino che mantenere l'accesso a ssh e database al lock-down sia del tutto sufficiente.
Essenzialmente la mia domanda è: ho ragione nel dire che questa soluzione sa di ingegneria, o è la base del suono dell'idea?