La versione breve di questa domanda è: Esiste una correzione o una soluzione per la vulnerabilità di ASP.NET CVE-2008-5100 , che consente agli aggressori di aggirare il controllo della firma digitale dell'assemblaggio?
Darò un po 'di background. Mi scuso in anticipo per la lunghezza; Questo sembra essere un argomento complesso.
Abbiamo eseguito uno scanner di sicurezza contro il nostro sito Web Windows 2008R2 che eseguiva il nostro Applicazione ASP.NET e lo scanner ha affermato che eravamo vulnerabili CVE-2008-5100. Come affermato su mitre.org e molti altri siti web, questo difetto, per la prima volta nel 2008, è composto da:
The strong name (SN) implementation in Microsoft .NET Framework 2.0.50727 relies on the digital signature Public Key Token embedded in the pathname of a DLL file instead of the digital signature of this file itself, which makes it easier for attackers to bypass Global Assembly Cache (GAC) and Code Access Security (CAS) protection mechanisms, aka MSRC ticket MSRC8566gs.
Questo sembra essere un difetto di progettazione imbarazzante nell'implementazione del .NET Framework, che consente a un utente malintenzionato che ha accesso al sistema di destinazione filesystem per sostituire una DLL dannosa che verrà validata in modo inappropriato come la DLL originale della vittima.
Questa vulnerabilità ha un punteggio CVSS di 10.0, che lo rende l'equivalente del peggiore possibile vulnerabilità mai incontrata.
Il software di scansione di sicurezza consigliato: "Aggiorna la versione di ASP.NET". Tuttavia, nella mia ampia ricerca su Google di questo argomento, non ci sono prove di alcuno l'altra versione di ASP.NET è meno vulnerabile. In effetti, visto quanto sia serio questo difetto è presumibilmente, è sorprendente che nessuno dei siti web che monitorano questo difetto è stato aggiornato dal gennaio 2009. L'unica citazione relativamente recente di un difetto come questo che ho potuto trovare è in Il blog di Ian Picknell , in cui descrive un difetto non risolto molto simile .NET Framework 3.5 SP1 (a partire da febbraio 2010). Anche un po 'allarmante è quello Infatti, un venditore di sicurezza ha appena aggiunto questo difetto allo scanner nel gennaio 2013.
Nell'interesse della brevità, eviterò una lunga discussione sui significati delle versioni di ASP.NET. Tuttavia, sembra che lo scanner sia cancellazione dell'intestazione HTTP "X-AspNet-Version: 2.0.50727". La nostra applicazione emette questa intestazione perché è stata compilata con flag di compilazione destinati a .NET Framework 3.0. Infatti, l'applicazione riporta questa versione di ASP.NET anche quando è eseguito su Windows Server 2012. Se ricompiliamo l'app con obiettivo di .NET Framework 4, otteniamo l'intestazione "X-AspNet-Version: 4.0.30319". Probabilmente potremmo ottenere lo scanner per smettere di lamentarci usando questo compilato versione, ma sta davvero cambiando il modo in cui .NET controlla gli assembly in tempo di esecuzione? Sono scettico, ma non riesco a trovare alcuna prova in un modo o nel altro.
Non sono così preoccupato per l'applicazione effettivamente sfruttata, da allora richiede l'accesso in scrittura alle directory di sistema. Sono preoccupato, come il mio gestione, sulle seguenti best practice.
Grazie.