2010-08-25 13 views
6

Microsoft ha rilasciato Security Advisory (2269637) Insecure Library Loading Could Allow Remote Code Execution.Impatto dell'advisory Microsoft sulla sicurezza (2269637) sulla codifica .NET

La nota fa riferimento a uno strumento che aiuterà a rilevare questo problema e le linee guida di programmazione su Dynamic-Link Library Security.

Come si traducono queste linee guida nello sviluppo .NET? Presumo che questo influisce solo su Platform Invoke.

Rimane il modo consigliato di importare librerie di sistema?

DllImport("user32.dll")] 
+1

+1 ottima domanda. – rook

risposta

6

DLL di sistema come user32.dll sono sicuri perché they're in the KnownDLLs list in the registry. Se si tenta di caricare una DLL denominata "user32", Windows è hardcoded per prendere la copia ufficiale dalla directory system32.

+0

Right ... ma l'applicazione è il gestore designato per specifiche estensioni di file? Come stai scrivendo un lettore di film? Perché se non lo sei, allora non puoi controllare la directory di lavoro corrente e non c'è un attacco. Dovresti davvero leggere un attacco prima di postare, sono sicuro al 90% che la sua app non sia influenzata e che ci sia 1 e solo 1 modo per saperlo con certezza. – rook

4

Da quella pagina:

Microsoft ha rilasciato una guida per gli sviluppatori in questo articolo di MSDN, Dynamic-Link Library Security, su come utilizzare correttamente le interfacce di programmazione delle applicazioni disponibili per prevenire questa classe di vulnerabilità.

e

Questo problema riguarda solo le applicazioni che non caricano le librerie esterne in modo sicuro. Microsoft ha precedentemente pubblicato le linee guida per gli sviluppatori nell'articolo MSDN, Dynamic-Link Library Security, che raccomandano metodi alternativi per caricare librerie che sono sicure contro questi attacchi.

Si collega alla stessa pagina della domanda, quindi se si seguono le linee guida delineate in quella pagina la propria applicazione deve essere protetta. Le note sulla modalità di ricerca sicura dei processi e l'ordine delle directory di ricerca sembrano essere particolarmente rilevanti.

+0

Ma come si applicano quelli al suo esempio User32.dll? La modalità di ricerca sicura non è per processo, è per sessione e non è davvero tua con cui giocare. La DLL viene caricata dal sistema prima di ottenere il controllo in modo che anche il percorso di ricerca sia fuori dalle tue mani. Come manifest? Vuoi veramente aggiungere tutte le DLL di sistema al tuo manifest? Qual è il modo corretto per specificare la directory di sistema nel manifest? – Rup

+0

@Rup - Vedi la risposta di @Tim Robinson. Non penso di poter aggiungere altro. – ChrisF

2

Installa l'applicazione ed esegui H.D. Moore's tool. H.D. Moore ha scoperto questo modello di attacco.

Se la tua applicazione non è responsabile per l'esecuzione automatica di un'estensione di file, allora sei non vulnerabile. Scommetto che se esegui questo strumento la tua app non comparirà nell'elenco delle applicazioni vulnerabili.

+0

Grazie per questa utile raccomandazione! –

Problemi correlati