Domanda

Quali sono le caratteristiche chiave devo considerare se voglio creare una prova di frode e semplice sistema di non ripudio? Per questa domanda, io sono principalmente concentrato sulla integrità delle righe del database. Questa non è una domanda autorizzazione di protezione.

Utilizzo di un database di calcio come un esempio, alcuni dei principali caratteristiche che vorrei realizzare sono:

  1. Impedire DBA di modificare i dati di riga utilizzando SQL tradizionale. Ad esempio, se la riga database è già memorizzato 2: 1 come risultato, se DBA cambiato il risultato di 2: 3, si dovrebbe essere in grado di rilevare la modifica. Tutte le modifiche devono essere effettuate tramite l'applicazione principale.

  2. impedire la copia di una riga dei dati da un'altra riga dalla base alle modifiche di backend. Dovremmo essere in grado di rilevare i cambiamenti di frode.

Ci sono altri problemi o caratteristiche che dovrebbero prendere in considerazione di fare il mio sistema a prova di più la frode? Quali sono le migliori pratiche che dovrei essere a conoscenza? Tutti gli indicatori sarebbero apprezzate.

Molte grazie in anticipo.

È stato utile?

Soluzione

Crea una colonna che è una firma crittografica delle altre colonne. Fino a quando l'ID è incluso nel calcolo della firma, non si poteva copiare una fila perché l'ID cambierebbe. Non ci sono modifiche potrebbero essere effettuate senza ricalcolare l'hash, quindi il cambiamento del DBA sarebbe rilevabile anche.

Questo non affrontare il problema della DBA rimozione le righe, si badi bene - che convalida solo che ogni singola riga è andato attraverso la logica di business adeguato. Si potrebbe potenzialmente includere una firma per l'intera tabella, ma che comincia a diventare piuttosto pesante!

Naturalmente, ad un certo punto hai bisogno di un segreto - la parte privata della chiave di firma. Il tuo codice avrà bisogno di accedere a quel ... e chi scrive che il codice potrebbero includere una porta sul retro per e-mail se stessi la chiave privata ecc Prima o poi si deve fiducia qualcuno , Io sospetto. (Si potrebbe applicare firme multiple, naturalmente, da diverse squadre -. Così le squadre avrebbero dovuto collude per forgiare nulla)

Altri suggerimenti

Per essere perfettamente schietto:. Stai perdendo il tuo tempo

DBA hanno l'equivalente di accesso root al vostro database. In caso contrario, si sta andando ad essere piuttosto inefficace. Gli stessi problemi sorgono con gli amministratori di sistema e in fondo tutto ciò che si può fare è poco più di un placebo nel migliore dei casi. L'unica cosa che si può fare su un malintenzionato con quel livello di accesso non è dare loro l'accesso per cominciare.

Il meglio che puoi fare è fare un piccolo di più con la creazione di un audit trail. Entra quando gli utenti log-in, log out, che cosa fanno, quali eventi le risponde di sistema per e così via. Il valore unico vero di questo è in grado di (si spera) ricostruire quello che è successo, se si decide di andare manualmente dentro e sguardo in un secondo momento.

Per quanto riguarda cambiare il risultato di una partita di calcio, chiedetevi come probabile che sia che accada. Naturalmente in realtà non cambia il risultato della partita di calcio. E 'sufficiente modificare come è stato registrato. Chi ha visto o partecipato sarà a conoscenza del risultato effettivo in modo che valore c'è in una persona che cambia sul sistema?

In società, l'errore e la malizia e gestito da processi di riconciliazione. Un agente di borsa avrà una squadra che esegue i report su ciò che è sul sistema e confrontarlo con le transazioni bancarie in realtà fatto. Eventuali discrepanze vengono bandiera rossa. Così si potrebbe cambiare il vostro equilibrio sul sistema, ma sarà ottenere il backup.

L'altra parte di questo puzzle è che le restrizioni sulle attività DBA non sarà effettivamente risolvere il problema. Gli sviluppatori di applicazioni possono rilasciare codice arbitrario. Anche se è rivisto il sistema può ancora abbattere a ingegneri di compilazione o di una persona con accesso a livello di root per l'ambiente di produzione la compilazione di una versione modificata e funzionante che.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top