Domanda

Ci sono un sacco di profiler e statica del codice analizzatori là fuori per C # assemblee.

Basta chiedersi se ci sono metodi per prevenire oggetto di analisi, perché mi fa sentire un po 'nervoso quando viene spogliato.

Ho cercato in tutto l'Internet e StackOverflow. Ci sembra nessuno per la mia meraviglia.

Quello che ho sono solo alcuni titoli ancora più spaventoso come questi (mi dispiace, nuovo utente non possono inserire collegamenti ipertestuali, si prega di google):

"Montaggio Manipolazione e C # / VB.NET Codice Injection"

"Come iniettare un assembly .NET Managed (DLL) in un altro processo"

È solo a me essere troppo preoccupato o che cosa?

A proposito, con C #, stiamo costruendo un nuovo client WinForm per i clienti di una banca di fare transazioni online. Non dovremmo fare questo nel modo winform o dovremmo usare un'altra lingua come Delphi, C ++? Attualmente abbiamo un client WinForm costruita con C ++ Builder.

È stato utile?

Soluzione

Quasi qualsiasi applicazione può essere "analizzato e iniettato". Alcuni più di altri. È per questo che mai fidarsi di input dell'utente. Convalidare pienamente le richieste del vostro utente sul lato server, facendo in modo che non sei vulnerabile a tamponare il superamento, SQL injection e altri vettori di attacco.

obfuscators possono fare assembly .NET più difficile da analizzare. Utilizzando una chiave sicura per con nome assembly possono rendere molto più difficile di modificare il codice. Ma, come ogni altra cosa nel mondo digitale, qualcuno in grado di sfruttare una vulnerabilità e andare in giro tutto ciò garanzie si mette a posto.

Altri suggerimenti

Se per analizzato vuoi dire che qualcuno la decompilazione del codice e guardarla, poi il Dotfucstor fornito con VS Pro e, soprattutto, è una semplice (gratuito) strumento per aiutare qui. V'è una funzionalità più completa (ma pagato) versione che può fare di più.

Per evitare che qualcuno manomettere le assmebliles distribuiti, utilizzare Nomi forti .

Dove c'è una volontà, c'è un modo, che si tratti di codice gestito o di montaggio nativo. La chiave è quello di mantenere le informazioni importanti sul lato server e mantenere il controllo di questo.

La prima cosa è necessario decidere contro di ciò che si sta cercando di proteggere? Obfuscators sono utili solo per proteggere algoritmi "salsa segreta", ma l'attaccante può semplicemente estrarre il codice e usarlo come black-box. Nel 99% dei casi sono obfuscators spreco di denaro. Se l'attaccante ha accesso fisico non c'è molto che si può fare.

Se l'utente finale è in esecuzione con privilegi di amministrazione allora saranno in grado di collegare un debugger, e modificare il codice, compresi i dettagli di account di destinazione. La mia banca accogliente locale mi ha dato un lettore di chip & pin che devo digitare le ultime n cifre del conto di destinazione, che si hash / cripta con Chip della mia carta di credito; quindi inserisco il codice dal dispositivo in applicazione web della banca, che può verificare al termine della banca pure. Questo mitiga "man in the middle" attacchi di tipo ...

La sicurezza è possibile solo su sistemi di controllare fisicamente l'accesso a, e anche allora non garantiti, semplicemente realizzabile. È necessario assumere qualsiasi codice non in esecuzione su un sistema che controlli può e saranno compromessi. Come detto Rowland Shaw, la migliore scommessa per un istituto finanziario è una sorta di token fisico che aggiunge effettivamente un unico componente collegato a tutte le operazioni che non possono essere (facilmente) noti prima del tempo da un attaccante che opera da un sistema compromesso. Anche allora si dovrebbe essere consapevoli del fatto che se il computer degli utenti è stata compromessa e si registra con il suo gettone al sicuro da quel punto in avanti fino a quando la sessione termina l'attaccante è libero di svolgere tutte le azioni che l'utente ha il permesso di, ma almeno in questo caso l'utente è più probabile notare l'attività fraudolenta.

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