Le opzioni del compilatore sono rilevanti per la sicurezza C #? Se sì, quali opzioni?

4

È normale elencare alcune opzioni del compilatore extra-safe per prevenire attacchi su C e C ++. Tuttavia, non ho trovato raccomandazioni simili per C #. Le opzioni del compilatore semplicemente non sono rilevanti per la sicurezza C #? O ci sono alcune opzioni che potrebbero migliorare la sicurezza dell'eseguibile?

Inoltre: ho potuto vedere come questo potrebbe essere migliore su Stack Overflow. Commentami se pensi che sia così.

    
posta baordog 16.03.2015 - 03:26
fonte

2 risposte

2

Prima di tutto, C # e .NET non possono creare build deterministici . Consulta la risposta ufficiale qui .

Pubblica la compilazione per nascondere il codice o crittografarlo .

I file PDB significano che il tuo exe può essere sottoposto a debug. Segui queste indicazioni per impedire la creazione di PDB in modalità di rilascio.

Si noti che la distribuzione in Release è diversa dal debug e che i debugger di esecuzione possono avere difficoltà a leggerlo (una buona cosa)

Considera di firmare il tuo codice con Authenticode

Potresti caricare solo assiemi con nome strong

    
risposta data 16.03.2015 - 05:12
fonte
0

Vi è uno sforzo per consentire a C # di produrre build deterministici con Roslyn. Ciò ti consente di verificare che la sorgente corrisponda al binario.

Anche se non ci sono ancora, puoi vedere i progressi nel link

Perché è così importante?

The ability to identically reproduce builds is of increasing importance and visibility following concerns that arose from the disclosure of global surveillance activity, and the integrity of both the sources and compilers used to create distributable binaries.

Deterministic builds will allow any user to confirm that the binaries distributed in a package repository are built from an unaltered source package, free of any interference at build time.

(preso in prestito da Debian)

    
risposta data 03.07.2015 - 09:12
fonte

Leggi altre domande sui tag