Il team con cui lavoro gestisce una grande quantità di sondaggi tra i consumatori e i dati delle metriche interne dell'azienda. In primo luogo i dati sono memorizzati in un database e utilizziamo varie piattaforme e per lavorare con tali dati, incluso MS Excel.
Il mio peer ha sviluppato una suite di file Excel / VBA per prendere i dati grezzi che riceviamo e caricarli in un database. Sfortunatamente, dopo una revisione del codice, abbiamo identificato che la password del database era visualizzata nel codice VBA, in testo semplice, in diverse posizioni per file. Essendo in una grande organizzazione aziendale abbiamo avuto una serie di dubbi sul fatto che quei file siano disponibili a qualcosa di più del nostro team e che la password del database sia stata compromessa.
Il problema è che ritengo che la soluzione sia altrettanto grave, se non peggiore del problema originale. Le password in chiaro sono state rimosse dal codice di tutti i file VBA e è stato creato un file ausiliario di supporto che richiede all'utente di autenticarsi tramite il sistema LDAP delle organizzazioni prima di accedere alla password del database. Essendo un linguaggio di scripting (ed essendo Excel), ritengo che non ci siano in realtà precauzioni adeguate per proteggere la password degli utenti nel file helper. Sento che ora invece di compromettere l'accesso a un singolo database, stiamo potenzialmente compromettendo l'accesso agli accessi di chiunque usi questi file.
Per essere onesti, il mio peer ha implementato una serie di tecniche di sicurezza per la protezione dei dati nel file di supporto. Sento che ognuno può essere facilmente aggirato:
- blocco del codice VBA [ ricerca google per il ripristino della password vba ]
- utilizzando una casella di immissione della password "mascherata" personalizzata [la casella della password potrebbe essere mascherata, ma è ancora passata fuori dalla scatola in testo semplice]
- in realtà non memorizza la password dell'utente nel file stesso (la trasmette direttamente alla chiamata LDAP) [un'istruzione break point o
stop
può rivelare facilmente il contenuto di ciò che è stato passato] - impostazione dei fogli su
VeryHidden
per impedire l'accesso diretto [aggiungi.zip
al nome file e TUTTI i dati in TUTTI i fogli di lavoro sono accessibili]
Poiché non sono uno che si lamenta senza una soluzione in mente, la nostra organizzazione utilizza già Active Directory / LDAP per l'autenticazione nelle nostre singole macchine. Il mio pensiero è che controllare l'utente che ha effettuato l'accesso (non un utente completo / password, solo l'utente) contro una lista bianca di utenti sul database dovrebbe essere un'alternativa sufficiente per l'autenticazione.
Quindi la mia domanda ...
Sono troppo paranoico per questo? C'è un'altra soluzione più appropriata? Sto respingendo abbastanza duramente questa correzione e volevo solo un controllo di sanità mentale prima di iniziare a coinvolgere gli altri in un'altra soluzione.