Come rimuovere o rendere anonimi i nomi dei file e il percorso memorizzati nell'output di .NET exe compilato?

5

Quando si verifica un'eccezione in un'applicazione .NET, l'output dell'eccezione include anche il percorso e il nome file del file di codice che risiede sul computer dello sviluppatore. Questo condivide alcune informazioni utili nel debug, ma può anche presentare un problema di sicurezza come mostrato nell'esempio seguente:

Nell'immaginesopraladirectoryD:\talksprovienedallamacchinadeglisviluppatorienondaquelladell'utentefinale.

SupponiamodiavereunfiledisoluzionediVisualStudioconunfilePFXconlapartepassworddelnome:

Example:d:\mysecretproject\ObscureFOSSproject\Signer-PW-Is-test123.pfx

Ovviamentetest123nonèlaverapasswordpfx,masefosseunapasswordpiùsensibilecheèstatautilizzataperaltriscopi(adesempiol'amministratoredeldominio).

Domanda:

Doveècontenutaquestastringa"Signer-PW-Is-test123.pfx" nella DLL .NET o exe?

È memorizzato nel file OBJ?

Come posso eliminare questi dati, o rendere anonime le informazioni in modo da non divulgare ciò che non è necessario, ma consentire comunque agli ingegneri di eseguire il debug dell'applicazione.

    
posta random65537 22.06.2012 - 16:43
fonte

2 risposte

2

Sono un po 'confuso su come hai questa configurazione.

Che cosa ti fa pensare che il percorso del file sia memorizzato in entrambi gli assiemi? Stai usando quel PFX per firmare gli assembly? In tal caso, c'è un puntatore negli attributi dell'assieme.

Non c'è modo di oscurare il nome del file a quel livello perché il compilatore deve conoscere il percorso completo. Potresti eseguirlo attraverso il software di offuscamento, ma ciò potrebbe comunque portare alla presenza della stringa.

Un'altra opzione è assicurarsi di compilare in RELEASE in modo che i bit di debug non vengano aggiunti. Questo rimuoverà i file pdb e rimuoverà la maggior parte delle voci sui percorsi dei file di codice.

L'unica altra opzione consiste nel compilare la cosa da un percorso non sensibile, ad esempio d: \ builds \ 1, e rimuovere tutte le informazioni sensibili dai percorsi dei file. In poche parole: non memorizzare la password nel nome file.

    
risposta data 22.06.2012 - 19:58
fonte
-1

È necessario implementare la gestione delle eccezioni. Per tutte le chiamate di sistema e API, consultare la documentazione per un elenco di eccezioni che il metodo potrebbe generare. Quindi, considera correttamente tali eccezioni e non avrai problemi come questi.

    
risposta data 23.06.2012 - 02:09
fonte

Leggi altre domande sui tag