Come configurare smartphone e PC. Portale informativo
  • casa
  • Windows Phone
  • Proteggere e hackerare i database di Access. Per rimuovere la password del database

Proteggere e hackerare i database di Access. Per rimuovere la password del database

Un file di database di Microsoft Access, come altri documenti di Office, può essere protetto con una password per l'apertura. Copia il file BDTur_firm.mdb con cui abbiamo lavorato nel primo capitolo, chiamalo "BD_withPassword.mdb". Per impostare una password, dobbiamo aprire il database nella cosiddetta modalità esclusiva per utente singolo. Il fatto è che la possibilità di impostare una password quando più utenti lavorano contemporaneamente 1 Microsoft Office Access 2003 supporta 255 utenti simultanei. porterebbe a errori, quindi MS Access non lo fornisce. Avvia il programma, nel menu principale vai su "File \ Apri", vai alla directory richiesta, seleziona il file, dall'elenco a discesa dei valori del pulsante "Apri", seleziona "Esclusivamente" (Fig. 3.6):

Viene visualizzata la finestra del database. Nel menu principale, andare su "Assistenza \ Protezione \ Imposta password database", nella finestra "Imposta password database", inserire la password "12345" e confermarla (Fig. 3.7).


Riso. 3.7.

Ora, ogni volta che apri questo file su qualsiasi computer, dovrai inserire la password specificata (Fig. 3.8).


Riso. 3.8.

Per modificare la password, dobbiamo eliminare quella esistente e quindi impostarne una nuova. Riaprire il database in modalità esclusiva, nel menu principale andare su "Assistenza\Protezione\Elimina password database". Nella finestra che appare, inserisci la password corrente, dopo aver fatto clic sul pulsante "OK" verrà eliminata. Per inserire un nuovo valore, vai nuovamente alla voce di menu "Imposta password database", questa volta inserisci una password più complessa "q1w2e3r4t5y6u7i8o9p0".

La protezione di un file con una password è estremamente insicura e non può essere utilizzata nelle applicazioni del mondo reale. La password è chiara e molto facile da violare. Ci sono molte utilità su Internet per questo, come Access Password Recovery Genie (http://www.lenosoft.com). Dopo aver avviato questo programma, selezionare il file MS Access, la cui password deve essere selezionata e la password appare immediatamente nella finestra principale (Fig. 3.9).


Riso. 3.9.

Successivamente, dovremo inserire nuovamente la password: per non perdere tempo, imposta nuovamente il suo valore uguale a "12345". Passiamo ora alla connessione al file di database dalle applicazioni. Certo, ora dubiterai che l'impostazione di una password possa essere utilizzata come misura di sicurezza, ma in ogni caso, dobbiamo imparare a connetterci anche a un database così "inaffidabile". Crea un nuovo progetto Windows e chiamalo "VisualBD_withPassword". Dalla finestra Casella degli strumenti, trascina il controllo DataGrid sul form, imposta la sua proprietà Dock su "Riempi". Vai alla scheda Dati, fai doppio clic sull'oggetto OleDbDataAdapter. Nella procedura guidata che appare, configurare la connessione al file BD_withPassword.mdb. Ora viene visualizzato un messaggio di errore nella finestra "Proprietà connessione dati" durante il controllo della connessione (Fig. 3.10):


Riso. 3.10.

In base al testo dell'errore, è naturale deselezionare la casella "Password vuota" e inserire "12345" nel campo della password. Ma anche questa volta si verifica l'errore 2 Assicurati inoltre che il file del database non sia aperto in Microsoft Access stesso.(fig. 3.11):


Riso. 3.11.

Il punto è che l'interfaccia della scheda "Connessione" è destinata all'inserimento dei parametri dell'account per la protezione a livello di utente. Lo vedremo di seguito. Anche qui impostiamo la casella di controllo "Svuota password" e andiamo alla scheda "Tutti". Fare doppio clic sulla proprietà Jet OLEDB: Password Database (oppure, evidenziandola, cliccare sul pulsante "Cambia valore"), nella finestra "Cambia valore proprietà" che compare, inserire la password "12345" (Fig. 3.12) .


Riso. 3.12.

Vai alla scheda "Connessione" - finalmente siamo riusciti ad accedere al database (Fig. 3.13).


Riso. 3.13.

Premere il pulsante "OK" per chiudere la finestra "Proprietà connessione dati", nei passaggi successivi della "Configurazione guidata adattatore dati" configuriamo l'estrazione di tutti i record dalla tabella "Turisti". Nell'ultimo passaggio della procedura guidata - includendo la password nella stringa di connessione - selezionare il pulsante "Includi password"; esamineremo la riga generata dal wizard (Figura 3.14):


Riso. 3.14.

Nel pannello del componente del modulo, seleziona l'oggetto DataAdapter, vai alla sua finestra Proprietà e fai clic sul collegamento Genera set di dati. Lasciamo il nome predefinito dell'oggetto DataSet. Nel costruttore del form, compilare l'oggetto DataSet e definire anche l'origine dati per l'elemento DataGrid:

public Form1 () (InitializeComponent (); oleDbDataAdapter1.Fill (dataSet11); dataGrid1.DataSource = dataSet11.Tables.DefaultView;)

Qui stiamo specificando l'indice (uguale a zero) dell'unica tabella nel DataSet.

Lanciamo l'applicazione. Il modulo visualizza i dati del database (

L'uso diffuso di ms Access ha dato origine a tutta una classe di programmi che consentono di scoprire le password "dimenticate" dei database. Non so chi sia stato il primo, ma si assomigliano come gemelli.

test

Tutti i programmi considerati in questa recensione possono gestire password come "may". Ma non tutti ti consentono di scoprire password non standard. I risultati del test sono presentati nella tabella. Puoi leggere di più sui metodi di sicurezza nell'articolo Protezione e compromissione dei database di Access. Qui si può notare che è diventato un leader. Il file del database di Access, protetto da una password di 20 caratteri non stampabili e da un titolo di un'altra versione, è rimasto inaccessibile. Sfortunatamente, solo la password è rimasta inespugnabile, non il database. consente di ripristinare il contenuto delle tabelle e ricrea quasi completamente il file, comprese tabelle, query, moduli, macro, report e codice del modulo. Le versioni registrate dei programmi hanno preso parte ai test.

Consente di aprire le password del database di Access. Inoltre, è possibile eliminare o sostituire la password per i database di Access 97.

L'unico programma che genera una password in forma esadecimale, che permette di vedere le password utilizzando caratteri non stampabili. Lo pensavo, ma in realtà una stringa viene tradotta in forma esadecimale e, di conseguenza, non ha senso. I database Access 97 con password di 20 caratteri sono considerati danneggiati e non danno alcun risultato.

AOPR consente di definire password per molte applicazioni MS. Per quanto riguarda il database Access, sa determinare:

  • Password del database
  • Proprietario del database - nome utente (utente) e suo identificatore (ID)
  • Informazioni sui proprietari degli oggetti del database
Aprendo il file del gruppo di lavoro in AOPR, puoi vedere:
  • Nomi utente e loro password
  • Appartenenza di utenti a gruppi

Il programma determina le password per i database di formato 97 - 2000 - 2003. Per i database di Access 97, è possibile modificare ed eliminare le password.

Va notato che il programma non è meta nel suo sviluppo. Gli algoritmi per la determinazione delle password sono in fase di miglioramento. Se nella versione precedente (AOXPPR) per Access 97 - solo i primi 14 caratteri e se incontra caratteri non stampabili, si dice che il file è danneggiato. Access 2k: legge normalmente tutti i 20 caratteri, ma fornisce punti interrogativi su Unicode. Nella versione descritta, tutte le password sono normalmente definite e i caratteri non stampabili vengono normalmente copiati negli appunti.

Questo è un insieme di utilità che ti consentono di scoprire le password per un numero molto elevato di applicazioni. Il programma Office Key funziona con il database di Access. Consente di definire le password per il database, i gruppi, gli utenti e le relative password utilizzando il file del gruppo di lavoro. Un'altra utility di questo produttore, Access Key, ha funzioni simili. La dimensione dell'archivio è di 662 KB. È un prodotto autonomo e non fa parte del kit Passware.

Il programma non consente di scoprire gli identificatori (ID) degli utenti, il proprietario del database e dei suoi oggetti. Quindi, in termini di capacità, è inferiore. Tuttavia, ha superato bene i test. Copia la vera password negli appunti, non i punti interrogativi. Normalmente determina le password quando si sostituisce una sequenza di 40 byte, tipica delle diverse versioni del database. L'unico errore nel file Access 97 con caratteri non stampabili.

Il programma consente di definire la password del database, il proprietario del database - il suo nome e identificatore. Dal file dei gruppi di lavoro determina i nomi degli utenti e le loro password. Funziona con il database ms Access 2.0 - 2003

Il modo più semplice per proteggersi è impostare una password per aprire il database (.mdb). Una volta impostata una password, ogni volta che si apre il database, apparirà una finestra di dialogo che richiede la password. Solo gli utenti che inseriscono la password corretta potranno aprire il database. Questo metodo è abbastanza sicuro (Microsoft Access crittografa la password, quindi non è possibile accedervi quando si legge direttamente il file del database), ma funziona solo quando si apre il database. Una volta aperto il database, tutti gli oggetti sono disponibili per l'utente (fino a quando non vengono definiti gli altri tipi di sicurezza, descritti più avanti in questa sezione). Per un database condiviso da un piccolo gruppo di utenti o su un computer autonomo, in genere è sufficiente impostare una password.

Per impostare una password

  1. Apri il file del database in modalità esclusiva. Per questo
  • In un'app Access, esegui il comando File / Apri.
  • Seleziona il file della banca dati.
  • Nel pulsante Apri, seleziona la modalità Esclusiva.
  1. Esegui il comando nel menu Servizio/Sicurezza/Imposta password database.
  2. Imposta una password e confermala.

Per rimuovere la password del database

  1. Apri il file in modalità esclusiva
  2. Esegui il comando Servizio/Protezione/Elimina password database.

Nota! Non utilizzare una password del database se si intende eseguire la replica del database. I database replicati non possono essere sincronizzati se è impostata una password del database.

Protezione dell'applicazione

È possibile proteggere la propria applicazione da danni accidentali o intenzionali da parte degli utenti finali nascondendo gli oggetti del database nella finestra del database. Utilizzare le opzioni di avvio dell'applicazione per controllare l'aspetto e il comportamento di un'applicazione e per proteggere i menu e le barre dei comandi.

Nascondere gli oggetti

  1. Nella finestra principale del database, seleziona l'oggetto che vuoi nascondere.
  2. Fare clic sul pulsante Proprietà sulla barra degli strumenti - si aprirà la finestra delle proprietà dell'oggetto selezionato.
  3. Selezionare la casella nascosto e premere il pulsante ok..
  4. Per mostrare tutti gli oggetti nascosti, seleziona il comando Opzioni sul menu Servizio, apri la scheda Visualizzazione e spunta la casella oggetti nascosti... Le icone degli oggetti nascosti avranno un contrasto basso.
  5. Per visualizzare nuovamente gli oggetti nascosti, ripeti i passaggi 1-3, ma nel passaggio 3 deseleziona la casella nascosto.

Nascondere tabelle e relazioni nello schema dei dati

  1. Apri lo schema dei dati ( Servizio / Schema di dati).
  2. Fare clic con il pulsante destro del mouse sull'oggetto (immagine tabella) e selezionare il comando Nascondi la tabella.

Protezione degli oggetti del database a livello di utente

Il modo più flessibile e comune per proteggere un database è chiamato sicurezza a livello di utente. Questo metodo di protezione è simile a quello utilizzato sulla maggior parte dei sistemi in rete. I due motivi principali per l'utilizzo della sicurezza a livello di utente sono:

  • protezione dell'applicazione da danni dovuti a modifiche involontarie da parte degli utenti di tabelle, query, moduli, report e macro da cui dipende l'applicazione;
  • protezione delle informazioni riservate nel database.

All'avvio di Microsoft Access, l'utente deve identificarsi e immettere una password. All'interno di un file del gruppo di lavoro, gli utenti vengono identificati come membri del gruppo. Microsoft Access crea due gruppi per impostazione predefinita: Administrators (il gruppo Admins) e Users (il gruppo Users). È consentita anche la definizione di altri gruppi.

Sebbene sia difficile impostare la sicurezza a livello di utente per la maggior parte dei database, la procedura guidata di sicurezza può aiutarti a proteggere rapidamente e facilmente il tuo database di Access. Inoltre, utilizzando schemi di protezione comuni, la procedura guidata consente di ridurre o addirittura eliminare la necessità di utilizzare il comando Protezione dal menu Strumenti.

Dopo aver eseguito la procedura guidata per la protezione, è possibile assegnare e rimuovere le autorizzazioni dell'account utente e di gruppo in un gruppo di lavoro per il database e le relative tabelle, query, moduli, report e macro esistenti. È inoltre possibile impostare le autorizzazioni di accesso predefinite assegnate agli oggetti di database appena creati.

A gruppi e utenti vengono concesse autorizzazioni di accesso che determinano la loro capacità di accedere a ciascun oggetto nel database. Ad esempio, i membri del gruppo Utenti possono disporre delle autorizzazioni per visualizzare, immettere o modificare i dati nella tabella Clienti, ma non potranno modificare la struttura di tale tabella. Al gruppo "Utenti" può essere consentito solo di visualizzare i dati nella tabella contenente le informazioni sugli ordini e non avere accesso alla tabella "Paghe". I membri del gruppo Admins dispongono delle autorizzazioni per tutti gli oggetti nel database. Puoi impostare una struttura di gestione più ramificata creando i tuoi account di gruppo, concedendo a questi gruppi le autorizzazioni appropriate e aggiungendo utenti ai gruppi.

Se il gruppo di amministratori e il gruppo di utenti sono sufficienti per il sistema di protezione, non è necessario creare gruppi. Puoi utilizzare i gruppi standard "Amministratori" e "Utenti". In questo caso, è necessario assegnare le autorizzazioni di accesso appropriate al gruppo standard "Utenti" e aggiungere ulteriori amministratori al gruppo standard "Amministratori". Ogni nuovo utente viene automaticamente aggiunto al gruppo "Utenti". Le autorizzazioni di accesso tipiche per il gruppo Utenti potrebbero includere Lettura dati e Aggiorna dati per tabelle e query e Apri/Esegui per moduli e report.

Se è richiesta una struttura di gestione più ramificata per diversi gruppi di utenti, è possibile creare nuovi gruppi, assegnare diversi insiemi di autorizzazioni di accesso ai gruppi e aggiungere nuovi utenti ai gruppi corrispondenti. Per semplificare la gestione dei permessi di accesso, si consiglia di assegnare i permessi di accesso solo ai gruppi (non ai singoli utenti) e quindi aggiungere gli utenti ai gruppi appropriati

Nota.

Per ulteriori informazioni sulla sicurezza di Microsoft Access, vedere Guida del programmatore di Microsoft Office 2000 / Visual Basic.

Passaggi della procedura guidata di protezione

  1. Crea un file del gruppo di lavoro.
  2. Viene impostato il nome del file (di default Secured.Mdw), il codice (di default viene generato casualmente).
  3. Gli oggetti del database da proteggere sono contrassegnati (per impostazione predefinita, tutti gli oggetti sono protetti). Per rimuovere la protezione di un oggetto, deseleziona la casella di controllo corrispondente.
  4. Vengono assegnati tipi di gruppi con diversi livelli di accesso e relativi codici (per impostazione predefinita, vengono generati casualmente). I tipi di gruppi da includere nel file sono contrassegnati da una casella di controllo.
  5. È possibile impostare alcune (ma non tutte) autorizzazioni per il gruppo Users, che è incluso per impostazione predefinita in ogni file del gruppo di lavoro.
  6. Gli utenti vengono aggiunti al file del gruppo di lavoro: nome, password, codice (per impostazione predefinita, viene generato in modo casuale).
  7. Ciascuno degli utenti assegnati è incluso in un determinato gruppo con il livello di accesso corrispondente.
  8. Specifica il nome della copia di backup (non protetta) del database.

Protezione in un ambiente multiutente

La sicurezza del database in un ambiente multiutente ha tre aspetti.

Il primo è impedire agli utenti di replicare il database. La replica del database consente all'utente di eseguire una copia di un database condiviso, nonché di aggiungere campi e altre modifiche al database corrente.

In secondo luogo, il divieto di impostare e modificare la password del database. Se viene impostata una password sul database comune, nessun altro, non conoscendo la password, sarà in grado di aprire il database.

Terzo, protegge dalle modifiche alle opzioni di avvio che definiscono proprietà come menu personalizzati, barre degli strumenti personalizzate e modulo di avvio.

Se il database condiviso non dispone della protezione a livello di utente, non è possibile impedire agli utenti di apportare tali modifiche. La procedura guidata di protezione imposta la sicurezza a livello di utente per il database, che consente di controllare l'accesso a strumenti specifici e determinare come possono essere utilizzati gli oggetti del database. Quando si imposta la sicurezza a livello di utente, l'utente o il gruppo per replicare il database, impostare la password del database e modificare le opzioni di avvio deve disporre della stessa autorizzazione di accesso dell'amministratore. Dopo aver eseguito la Protezione guidata, solo i membri del gruppo Admins del gruppo di lavoro corrente dispongono dei privilegi di amministratore.

Se la sicurezza a livello di utente è già in atto e l'utente o il gruppo ha attualmente l'autorizzazione per accedere al database che corrisponde all'autorità dell'amministratore, la rimozione dell'autorizzazione impedirà all'utente o al gruppo di apportare modifiche. È possibile assegnare l'autorizzazione di accesso appropriata a un utente oa un gruppo per consentirgli di eseguire queste attività. Non è possibile controllare in modo indipendente la disponibilità di ciascuna attività.

Configurazione dei parametri di avvio per Access DBMS

È possibile designare il modulo che verrà visualizzato all'apertura del database, vietare o abilitare la personalizzazione delle barre degli strumenti o l'uso dei menu contestuali e impostare alcuni altri parametri di avvio.

  1. Nel menu Strumenti, seleziona Opzioni di avvio.
  2. Seleziona le opzioni che desideri o inserisci i valori che desideri.

    Nota.

    Non dovresti combinare l'impostazione nei parametri di avvio del modulo che si apre all'avvio dell'applicazione e la macro autoexec per aprire il modulo all'avvio.

Selezione delle opzioni nella finestra di dialogo Opzioni di avvio

  1. Le opzioni di avvio si applicano al database Microsoft Access o al progetto Microsoft Access corrente.
  2. Quando si seleziona un'opzione nella finestra di dialogo Opzioni di avvio, il valore del database di Access o della proprietà del progetto di Access associato all'opzione viene impostato automaticamente. Fare clic sul pulsante per visualizzare un elenco di queste proprietà.
  3. Le proprietà che corrispondono alle opzioni di avvio non sovrascrivono le impostazioni delle proprietà per una particolare barra degli strumenti, barra dei menu, menu di scelta rapida, modulo o report. Ad esempio, le opzioni della barra dei menu e del menu di scelta rapida nella finestra di dialogo Opzioni di avvio non sovrascrivono i valori delle proprietà per moduli o report specifici che dispongono di una barra dei menu o di un menu di scelta rapida personalizzati. Quando si apre una maschera o un report, Microsoft Access pertanto visualizza la barra di menu personalizzata collegata a quella maschera o report anziché la barra di menu globale specificata nella finestra di dialogo Opzioni di esecuzione.
  4. Puoi usare la finestra di dialogo Opzioni di avvio al posto o in aggiunta a una macro autoexec ... macro autoexec viene eseguito dopo che i parametri di avvio hanno effetto, quindi nella macro autoexec non includere macro che possono modificare i parametri di avvio. Ad esempio, se viene specificato un modulo nella casella Output modulo/pagina della finestra di dialogo Opzioni di avvio e una macro autoexec Quando viene chiamato il comando macro Apri Form, prima verrà aperto il modulo specificato nella finestra di dialogo Opzioni di avvio, seguito immediatamente dal modulo specificato nel comando macro ApriForm.
  5. In Access, se per il database è definita la sicurezza a livello di utente, è possibile impedire agli utenti di modificare le impostazioni nella finestra di dialogo Opzioni di avvio. Per fare ciò, assicurarsi che gli utenti non possano ottenere i diritti di amministratore per accedere al database.
  6. È possibile ignorare le impostazioni dell'opzione di avvio tenendo premuto il tasto MAIUSC durante l'apertura del database.

Lavorare con diverse versioni di Access

A volte un utente crea un database in una versione di Access e quindi diventa necessario visualizzarlo in un'altra versione di Access (creata in precedenza o creata in seguito).

Nel fare ciò, considera quanto segue:

Per poter modificare il database, è necessario convertire il file nella versione richiesta del DBMS di Access.

Conversione di un database in una versione precedente del database di Access (downgrade)

  1. Esegui comando Servizio / Utilità / Converti database / nella versione precedente di Access.
  2. Durante la fase di conversione, ti verrà chiesto di inserire un nome per il nuovo database.

Conversione di un database in una nuova versione (aggiornamento)

  1. Nella fase di apertura, apparirà un messaggio che ti chiederà di selezionare una delle opzioni
  • Converti database
  • Aperto solo per visione.
  1. Selezionare il pulsante di opzione Converti database e specificare un nuovo nome per il database e una cartella.

I file creati in Access 2000 vengono aperti in Access 2003 per la visualizzazione e la modifica.

Viene definita una password dell'account utente per impedire a un utente di connettersi con l'account di un altro utente. MS Access predefinito assegna un account utente amministratore ed eventuali nuovi account utente creati nel gruppo di lavoro, password vuote.

Attenzione! Se la password viene smarrita o dimenticata, sarà impossibile recuperarla. Pertanto, dovresti conservarlo in un luogo sicuro. Per accedere al database, un utente che ha perso la password deve contattare amministratore(membro del gruppo Amministratori il gruppo di lavoro in cui sono stati creati l'account e la password) per rimuovere la password.

Per Crea una password l'utente ha bisogno di:

1. Avviare MS Access utilizzando il gruppo di lavoro in cui è archiviato l'account utente e accedere utilizzando l'account per il quale è necessario creare o modificare una password.

2. Aprire il database.

3. In una scheda in un gruppo Amministratore selezionare squadra

4. Sulla scheda cambia la password lasciare il campo Password attuale vuoto se l'account non aveva precedentemente una password. Altrimenti, inserisci nel campo Password attuale vecchia password.

5. Presentare nuova password in campo nuova password.

6. Rientra nuova password in campo Conferma e premere il pulsante ok(fig.11.18).

Rimozione della password di un account utente

Per completare questa procedura, è necessario accedere al database utilizzando l'account di un membro del gruppo Amministratori.

1. Avvia MS Access usando file del gruppo di lavoro dove è memorizzato l'account utente.

2. Aprire il database.

3. Sulla scheda Lavorare con i database nella barra multifunzione in un gruppo Amministratore selezionare squadra Utenti e permessi - Utenti e gruppi….

4. Sulla scheda Utenti inserisci il nome dell'account utente nel campo Nome.

5. Premere il pulsante Rimuovi password(fig. 11.19).

6. Ripetere i passaggi 4 e 5 per rimuovere altre password, quindi premere il pulsante ok.



Permessi di accesso

permessi- un insieme di attributi che determinano i diritti dell'utente sui dati o sugli oggetti nel database.

Ci sono due tipi permessi di accesso:

1. Esplicito - se sono assegnati direttamente a un account utente. Tali autorizzazioni non influiscono sulle autorizzazioni di altri utenti.

2. Implicito - permessi di accesso assegnati all'account di gruppo. Un utente incluso in un tale gruppo ottiene tutte le autorizzazioni concesse al gruppo. La rimozione di un utente da questo gruppo rimuove tutte le autorizzazioni assegnate a quel gruppo.

Quando un utente tenta di eseguire qualsiasi operazione su un oggetto di database protetto, le sue autorizzazioni correnti sono determinate da una combinazione di autorizzazioni di accesso esplicite e implicite. A livello di utente agisci sempre restrizioni minime di imposto permessi espliciti per l'utente e per tutti i gruppi a cui questo utente appartiene. Pertanto, il modo più semplice per gestire un gruppo di lavoro consiste nel creare nuovi gruppi e definire i permessi di accesso per quei gruppi, non per i singoli utenti. È quindi possibile modificare le autorizzazioni per i singoli utenti aggiungendo utenti ai gruppi o rimuovendoli dai gruppi. Inoltre, se è necessario concedere nuove autorizzazioni, queste vengono concesse a tutti i membri del gruppo contemporaneamente in un'unica operazione.

Modificare i permessi di altri utenti sui singoli oggetti del database possono i seguenti utenti:

Membri del gruppo Amministratori definito in file del gruppo di lavoro che è stato utilizzato per creare un database specifico;

· proprietario oggetto;

· qualunque utente che ha ricevuto su questo oggetto permessi di amministratore.

In alcuni casi, gli utenti che non dispongono dell'autorizzazione per eseguire alcuna azione hanno la possibilità di assegnarle a se stessi. Questa situazione si verifica per un utente che è un membro del gruppo. Amministratori o proprietario oggetto.

La persona che ha creato la tabella, la query, il modulo, il report o la macro è proprietario di questo oggetto. Inoltre, un gruppo di utenti che possono modificare le autorizzazioni nel database può anche modificare il proprietario degli oggetti o ricreare questi oggetti, che è un modo alternativo per modificare il proprietario degli oggetti. Per creare nuovamente un oggetto è sufficiente importare o esportare questo oggetto in un altro database o fare una copia dell'oggetto. Questa tecnica è il modo più semplice per modificare il proprietario degli oggetti, incluso l'intero database.

Gli amministratori e i proprietari sono essenziali perché vengono loro concessi permessi che non possono essere revocati.

1. Amministratori(membri del gruppo Amministratori) può sempre ottenere tutte le autorizzazioni sugli oggetti creati nel gruppo di lavoro.

2. Conti che sono proprietari tabelle, query, moduli, report o macro possono sempre ottenere tutte le autorizzazioni per accedere a questi oggetti.

3. Un conto che è proprietario DB, può sempre aprire DB.

Dal momento che gli account utente amministratore sono esattamente gli stessi per tutte le istanze di MS Access, il primo passo nell'organizzazione del sistema di protezione è definire gli account amministratore e proprietario(o un singolo account che sia sia amministratore che proprietario). Dopodiché, dovresti eliminare l'account utente amministratore dal gruppo Amministratori... In caso contrario, qualsiasi utente di Microsoft Access sarà in grado di connettersi al gruppo di lavoro utilizzando un account amministratore e prendi tutti i permessi per accedere a tabelle, query, moduli, report e macro di gruppi di lavoro.

Nel gruppo Amministratoriè tuttavia consentito aggiungere un numero arbitrario di account il proprietario del database può esserci un solo account: quello che era attivo quando è stato creato il database o quello che era attivo quando i diritti di proprietario sono stati trasferiti creando un nuovo database e importandovi tutti gli oggetti dal database originale. Tuttavia, gli account di gruppo possono possedere tabelle, query, moduli, report e macro di database.

Solo gli account utente possono essere utilizzati per accedere a MS Access; non puoi accedere con un account di gruppo.

Gli account creati per gli utenti del database devono essere salvati nel file del gruppo di lavoro a cui gli utenti si uniranno per lavorare con il database. Se viene utilizzato un file del gruppo di lavoro diverso per creare il database, è necessario modificarlo prima di creare gli account.

Necessità di creare password univoche per gli account amministratore e utenti... Un utente che si connette utilizzando un account amministratore sarà sempre in grado di ottenere tutte le autorizzazioni per accedere a tutte le tabelle, query, moduli, report e macro creati nel gruppo di lavoro. Un utente che si connette utilizzando un account proprietario sarà sempre in grado di ottenere tutte le autorizzazioni per accedere agli oggetti appartenenti a questo proprietario.

Dopo aver creato account utente e di gruppo, è possibile visualizzare e stampare i relativi diagrammi. MS Access stampa un report Workgroup Accounts che mostra i gruppi a cui appartiene ogni utente e tutti gli utenti in ciascun gruppo.

"Protezione del database" qui indica un modo per impedire l'accesso non autorizzato alle informazioni memorizzate nelle tabelle. La protezione del codice sorgente per moduli e moduli non è coperta.

La rilevanza di questo argomento è estremamente alta. Lo si può giudicare dal primo posto nella classifica (18mila visite) dell'articolo scritto da Yuri Sherman. Mi sono persino imbattuto in un libro di 500 pagine interamente dedicato alla protezione dell'accesso: Garry Robinson "Real World Microsoft Access Database Protection and Security.

Metodi di protezione standard

Protezione con password del database

Questo metodo di protezione consente di impostare una password per l'apertura del database per tutti gli utenti. Per crearlo è necessario aprire il file del database in modalità "esclusiva" e selezionare la voce di menu Servizio/Protezione/Imposta password database. Per lavorare con un database di questo tipo in MS Access, dovrai inserire una password. Ecco un esempio di come lavorare con un file DB utilizzando DAO o ADO.

Test secondario pubblico DAO ()
Dim mWS come DAO.Workspace
Dim mDB come DAO.Database
Imposta mWS = DBEngine.Workspaces (0)

("C: \ a97.mdb", Vero, Vero, "; pwd = 123")
Fine sotto

Pubblico Sub TestADO ()

CnDB.Open "Fornitore = Microsoft.Jet.OLEDB.4.0" & _
"; Origine dati = C: \ a97.mdb" & _
"; Jet OLEDB: Password database = 123"
Fine sotto

Questo è il modo più inaffidabile per proteggere i database. Esistono un discreto numero di utilità di mappatura delle password gratuite e a pagamento. È disponibile anche il codice sorgente per VB che consente di leggere tale password. In altre cose, non tutto è così male. Una volta mi sono imbattuto in una modifica originale di questo metodo di protezione, che verrà discusso di seguito.

Protezione con password dell'utente

Questo metodo consente di introdurre un ulteriore livello di restrizioni relative al funzionamento del database di Access. Si basa sulla creazione di un file del gruppo di lavoro, che definisce nomi utente, password e diritti per lavorare con vari oggetti del database.

La sequenza di azioni per creare un file protetto:

  • Crea un nuovo file del gruppo di lavoro.
    Per fare ciò, in Access 97-2000, viene avviato il programma WRKGADM.EXE e in Access 2003, è necessario selezionare la voce di menu "Servizio / Protezione / Amministratore gruppo di lavoro". Nell'amministratore, premere il pulsante "Crea", specificare il nome, l'organizzazione e il codice del gruppo. Indichiamo il nome e la posizione del file creato. Per esempio:
    Nome: nome_test
    Organizzazione: ~
    Codice gruppo di lavoro: linea di 20 simboli.
    File del gruppo di lavoro: C: \ test \ gr.mdw
  • Crea un collegamento per avviare ms Access utilizzando il file mdw generato. Il collegamento deve contenere la riga: [percorso a MSACCESS.EXE] / WrkGrp [percorso al file mdw]. Ad esempio: "C:\Programmi\MSOffice2003\OFFICE11\MSACCESS.EXE"/WrkGrp C:\test\gr.mdw
  • Dopo aver avviato Access utilizzando questo collegamento, è necessario aprire la voce di menu "Servizio / Protezione / Utenti e gruppi". Nella finestra di dialogo che si apre, devi creare un nuovo utente e aggiungerlo al gruppo "Amministratori". Ad esempio, "test_User" è stato creato con il codice "987654321"
  • Ora devi aprire Access per conto dell'utente creato. Per fare ciò, aggiungi la riga: / user [nome utente] al collegamento creato. Ad esempio: "C:\Programmi\MSOffice2003\OFFICE11\MSACCESS.EXE"/WrkGrp C:\test\gr.mdw/User test_User
  • Avvia Access utilizzando questa scorciatoia. Ora l'utente creato deve assegnare una password. Questo viene fatto nella stessa finestra di dialogo "Utenti e gruppi". Supponiamo che all'utente "test_User" sia assegnata la password "test_Password". Successivamente, è necessario creare un nuovo database. In questo caso, il proprietario di questo database, così come tutti gli oggetti creati o importati (tabelle, query, ecc.) sarà l'utente il cui nome è stato specificato nel collegamento.
  • Dopo aver creato il database, è consigliabile eliminare "Admin" dal gruppo "Admins" e togliere al gruppo "Users" i diritti sugli oggetti del database e aprire il database.
  • Aggiungi il nome del database protetto al collegamento. Ad esempio: "C:\Programmi\MSOffice2003\OFFICE11\MSACCESS.EXE" C:\test\db2k_test.mdb/WrkGrp C:\test\gr.mdw/User test_User/pwd test_Password

Ecco un esempio di apertura di un database protetto dall'utente utilizzando DAO o ADO

Test secondario pubblico DAO ()
Dim mWS come DAO.Workspace
Dim mDB come DAO.Database
DBEngine.SystemDB = "C:\test\gr.mdw"
Imposta mWS = DBEngine.CreateWorkspace _
("", "utente_prova", "Password_prova", dbUseJet)
Imposta mDB = mWS.OpenDatabase _
("C: \ test \ a97.mdb", Vero)
Fine sotto

Pubblico Sub TestADO ()
Dim CnDB come nuovo ADODB.Connection
CnDB.Open "Fornitore = Microsoft.Jet.OLEDB.4.0;" & _
"Origine dati = C: \ test \ a97.mdb;" & _
"Jet OLEDB: database di sistema = C: \ test \ gr.mdw;" & _
"ID utente = utente_prova;" & _
"Password = password_prova;"
Fine sotto

Rimozione di tale protezione.
Crea un nuovo database. Nel collegamento, scrivi il percorso di questo database, il file MDW del database protetto, il nome e la password del proprietario. Apri un nuovo database usando questa scorciatoia. Importa le tabelle da Protected in esso, quindi cambia il proprietario per tutti gli oggetti del database in Admin. Per conoscere il nome e la password del proprietario del database, è possibile utilizzare programmi specializzati descritti nella panoramica delle password di accesso. Se manca il file del gruppo di lavoro, puoi ripristinarlo. Per fare ciò, è necessario scoprire i nomi e gli identificatori dei proprietari degli oggetti del database. Queste informazioni sono contenute nel file di database e possono essere recuperate utilizzando programmi come AOPR. Utilizzando questi dati, viene creato un nuovo file. (la sequenza è descritta sopra)

Non è affatto necessario utilizzare programmi che consentono di determinare il database o la password dell'utente. Spesso i programmatori non si preoccupano affatto di nascondere la password nel testo del programma. Dopo aver avviato il programma che lavora con il database protetto, è necessario aprire la memoria virtuale di questa applicazione nell'editor esadecimale WinHex. Ricerca di stringhe Unicode "ID utente ="; "Password ="; "Database Password =" o "pwd =" puoi trovare il nome utente, la sua password e la password del database.


Puoi ignorare completamente la presenza di protezione. Per fare ciò, è necessario utilizzare AccessRecovery, che crea un nuovo file senza protezione e trasferisce ad esso tabelle, query, moduli, macro, report e codice del modulo.

Metodi di protezione non standard

Modificare l'estensione del file

Un modo abbastanza semplice per fuorviare è modificare l'estensione del file di database. Vedendo un'estensione sconosciuta, non tutti cercheranno di capire la natura di questo file. Inoltre, diventa possibile associare questa estensione al tuo programma, in modo che quando fai clic sul file, venga avviata la tua applicazione e non Access. Si consiglia di aprire tale file con accesso esclusivo, poiché in questo caso il file ldb non verrà creato.

Protezione tramite password del database contenente caratteri non stampabili

Innanzitutto, questo metodo ha lo scopo di contrastare la determinazione delle password utilizzando programmi speciali. Una base con tale protezione ha rovinato bene il mio disordine. Ora rovinerò l'umore dei suoi autori raccontando questa protezione. Il metodo si basa sul fatto che la password per i database in formato Access 2000 e 2002-2003 è una stringa di testo in formato Unicode. Tuttavia, non ci sono restrizioni sul suo contenuto. Il modo standard per impostare e utilizzare una password del database consiste nell'inserirla dalla tastiera in una finestra di dialogo. Se la stringa della password contiene caratteri non stampabili, non verranno visualizzati correttamente dal programma che apre le password del database. D'altra parte, questa password non può essere inserita nella finestra di dialogo quando si apre il database in MS Access.
Ma non mi sono nemmeno dimenticato di Access 97. Il fatto è che la specifica del database e l'aiuto di DAO 3.60 indicano che il numero massimo di caratteri in una password è 14. Ma in realtà possono essere 20. Allo stesso tempo, Access 97 stesso non consente stringhe di password che superano i 14 caratteri . La specifica di Access 2003 dice anche circa 14 caratteri, ma il programma accetta tutti e 20. È anche possibile utilizzare caratteri non stampabili, il che lascia la maggior parte dei programmi di cracking delle password in uno stato di stupore.

Per impostare tale password, sarà necessario utilizzare un programma che utilizzi il metodo CompactDatabase delle librerie ADOX o DAO.

Protezione dagli hacker.

  • Innanzitutto, puoi utilizzare AccessRecovery.
  • In secondo luogo, puoi provare a determinare la password del database utilizzando programmi speciali. Una panoramica delle password di accesso fornisce una tabella riepilogativa delle loro capacità.
  • Terzo, puoi scoprire la password analizzando il codice del programma nel debugger. Qualunque sia la password, viene comunque passata come stringa di testo nel metodo di apertura del database. Con una certa esperienza, questo non è un compito molto difficile. Quando ho incontrato per la prima volta tale protezione, sono riuscito a trovare la password utilizzando il debugger OllyDbg, trovando il luogo in cui è stato creato ADODB.Connection
  • Puoi scoprire o modificare la password del database senza ricorrere all'aiuto di programmi speciali. In Access 97, la password si ottiene eseguendo l'XORing della password con una sequenza di 20 byte. I valori di questi byte possono essere ottenuti da qualsiasi file mdb non protetto da password. A partire da Access 2k, grazie all'utilizzo di Unicode, vengono allocati 40 byte per memorizzare 20 caratteri di una password. In fase di crittografia viene utilizzata anche l'addizione tramite XOR, ma per ottenere una sequenza di byte corrispondente ad una password vuota è necessario creare un file con la data del database in esame. I byte ottenuti possono essere inseriti nel file in esame e la password azzerata, oppure possono essere aggiunti con byte simili del file in esame e si può ottenere il valore della password.

Questo documento non prende in considerazione possibili manipolazioni con i file del gruppo di lavoro. Sicuramente ci sono modi per proteggere le password in esse memorizzate da programmi troppo curiosi, ma tutto questo perde di significato quando si utilizza AccessRecovery, che non si accorge affatto della protezione.

Protezione dalla modifica dei file

Il metodo di protezione si basa sulla modifica dei primi byte del file. Pertanto, prima di aprire il database, l'intestazione corretta memorizzata nel programma viene scritta nel suo file e, dopo la chiusura, viene restituita quella sbagliata. Quando si tenta di aprire un file db utilizzando ms Access, viene visualizzato un messaggio di errore. Non è male combinare questo metodo con la modifica dell'estensione del file. Ad esempio, puoi prendere l'intestazione di un file dbf e scriverla all'inizio del file mdb. Quindi, cambia l'estensione del file in dbf e goditi il ​​risultato. Il database può ora essere aperto in Excel, Access o un altro programma che consente di leggere i file dbf. Ecco un esempio di tale conversione:

"modifica dell'intestazione del file DB
"Es: Chiama BaseProtect (" C: \ 01.mdb ", True)

Public Sub BaseProtect (sPath As String, bLock As Boolean)
Dim iFn As Integer
iFn = FreeFile ()
Apri sPath per l'accesso binario Scrivi come #iFn
Metti #iFn, 5, CStr (IIf (blocco, _
"ProtectDataBase", "DB Jet standard"))
Chiudi #iFn
Fine sotto

Il metodo non è abbastanza efficace, poiché un programma che lavora con un database può essere interrotto artificialmente e sul disco rimarrà un database non protetto. Pertanto, vale la pena usarlo solo in combinazione con altri metodi.

Protezione modificando la versione del database

Questo metodo è un ulteriore sviluppo dell'idea di modificare l'intestazione del file per contrastare i programmi che leggono le password. Il metodo si basa sul fatto che per lavorare con i database Access 97 e 2k, i programmi utilizzano algoritmi diversi per leggere la password e allo stesso tempo cercano di determinare in modo indipendente la versione del file mdb.

Per determinare la versione, è possibile utilizzare una sequenza di 40 byte, a partire da 122 dall'inizio del file. Se inseriamo questa sequenza da Access 2k nel database di Access 97, otterremo un risultato interessante. Ms Access, ADO e DAO funzionano bene con questo file e la maggior parte dei programmi di cracking delle password cadono in questo trucco. Un risultato simile può essere ottenuto quando si innesta una sequenza di byte da Access 97 a Access 2k

Accedi all'intestazione del file 2k
un frammento della password del database è evidenziato in verde
blu - un frammento caratteristico della versione del database
Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F

00000000 00 01 00 00 53 74 61 6E 64 61 72 64 20 4A 65 74
00000010 20 44 42 00 01 00 00 00 B5 6E 03 62 60 09 C2 55
00000020 E9 A9 67 72 40 3F 00 9C 7E 9F 90 FF 85 9A 31 C5
00000030 79 BA ED 30 BC DF CC 9D 63 D9 E4 C3 9F 46 FB 8A
00000040 BC 4E 9B 6D EC 37 40 D2 9C FA DB C8 28 E6 0E 20
00000050 8A 60 49 02 7B 36 E8 E4 DF B1 6A 62 13 43 D2 39
00000060 B1 33 29 F7 79 5B 8F 23 7C 2A 4F E9 7C 99 08 1F
00000070 98 FD DC 75 0C FF D8 FD 82 66 5F 95 F8 D0 89 24
00000080 85 67 C6 1F 27 44 D2 EE CF 65 ED FF 07 C7 46 A1
00000090 78 16 0C ED E9 2D 62 D4 54 06 00 00 34 2E 30 00

Protezione chiave elettronica

Questa è un'altra conferma che i metodi di protezione standard, anche di fornitori di terze parti, sono vulnerabili. Stiamo parlando di chiavi HASP. Utilizzando l'utility HASP Envelope, è possibile crittografare un file (in questo caso, un database) e consentire l'accesso ad esso solo da un'applicazione protetta. Viene utilizzato il meccanismo della crittografia "trasparente". All'avvio del sistema operativo, viene avviato un processo che monitora tutte le chiamate al file di database protetto. Se questa chiamata proviene da un'applicazione normale, ad esempio da ms Access, il file viene letto e viene visualizzato un messaggio sul "formato di database non riconoscibile". Ma se l'applicazione specificata durante la crittografia funziona con il file, i dati vengono trasmessi ad esso in forma decrittografata. Di conseguenza, il programma stesso non è a conoscenza della presenza di protezione. Sì, la complessità del cracking di un database di questo tipo aumenta in modo significativo. Ma allo stesso tempo, bisogna ricordare che a corredo dell'applicazione deve essere fornita una chiave elettronica, al prezzo di N c.u. e che la velocità di accesso ai dati si riduce di due o tre volte.

Protezione dagli hacker.

Sono stati trovati due modi per ottenere il pieno controllo del database.

  • Innanzitutto, il codice del programma era vulnerabile. L'accesso al database è stato effettuato tramite query. Fin dall'inizio, è stata trovata una richiesta nel debugger che viene chiamata in risposta al clic di un pulsante nel programma. Inoltre, questa richiesta è stata sostituita con il testo di una richiesta per creare una tabella in un altro database. Dopo aver premuto il pulsante, la query ha selezionato i dati della tabella dal database protetto e li ha salvati in un altro file.
  • In secondo luogo, è stato scritto un programma che, utilizzando un hook, ha iniettato il suo codice nello spazio degli indirizzi di un processo protetto da HASP e un file di database è stato semplicemente copiato per suo conto.

Crittografia dei valori della tabella

Questo metodo non è male. In ogni caso, c'è una vera speranza di salvare qualcosa. Tuttavia, ci sono una serie di limitazioni. Prima di visualizzare i dati, è necessario decifrarli. Non è possibile cercare parte di una stringa in un campo crittografato. L'algoritmo di crittografia e la chiave sono contenuti nel programma, il che significa che esiste una potenziale vulnerabilità. In questo caso, l'affidabilità dipende dalla resistenza al cracking del programma che lavora con il database. Puoi unire l'utile al dilettevole: non crittografare, ma comprimere il contenuto dei campi memo. Gestire l'algoritmo di compressione nel codice del programma è noioso.

Conclusione

Prima di sollevare la domanda su come proteggere il database, dovresti pensare alla sua necessità. Non fare affidamento su metodi standard, ma non è un motivo per smettere di usare Access. Uno specialista hackererà qualsiasi cosa, ma puoi renderlo non così facile.

L'articolo seguente descrive la crittografia del database trasparente di Access, che presenta numerosi vantaggi rispetto ai metodi esistenti.

Principali articoli correlati