Strategia di sicurezza WPF - Progettazione della sicurezza
Trustworthy Computing è un'iniziativa Microsoft per garantire la produzione di codice sicuro. Un elemento chiave dell'iniziativa Trustworthy Computing è microsoft Security Development Lifecycle (SDL). SDL è una pratica di progettazione usata insieme ai processi di progettazione standard per facilitare la distribuzione di codice sicuro. SDL è costituito da dieci fasi che combinano procedure consigliate con formalizzazione, verificabilità e struttura aggiuntiva, tra cui:
Analisi della progettazione della sicurezza
Controlli qualitativi basati su strumenti
Test di penetrazione
Revisione finale della sicurezza
Gestione della sicurezza del prodotto post-rilascio
Specifiche di WPF
Il team di progettazione WPF applica ed estende l'SDL, la combinazione dei quali include i seguenti aspetti chiave:
Strumenti di analisi e modifica della sicurezza
Modellazione delle minacce
La modellazione delle minacce è un componente principale di SDL e viene usata per profilare un sistema per determinare potenziali vulnerabilità di sicurezza. Una volta identificate le vulnerabilità, la modellazione delle minacce garantisce anche che siano presenti mitigazioni appropriate.
A livello generale, la modellazione delle minacce prevede i passaggi chiave seguenti usando un negozio di alimentari come esempio:
Identificazione degli asset. Le risorse di un negozio di alimentari possono includere dipendenti, una cassaforte, casse e inventario.
Enumerazione dei punti di ingresso. I punti di ingresso di un negozio di alimentari possono includere le porte anteriori e posteriore, le finestre, il molo di caricamento e le unità di aria condizionata.
Investigare gli Attacchi contro i Beni usando Punti di Ingresso. Un possibile attacco potrebbe colpire un negozio di alimentari sicuro asset attraverso il aria condizionata punto di ingresso; l'unità di condizionamento dell'aria potrebbe essere sscredata per consentire la sicurezza di essere tirato attraverso di esso e fuori dal negozio.
La modellazione delle minacce viene applicata in WPF e include quanto segue:
Come il parser XAML legge i file, esegue il mapping del testo alle classi del modello a oggetti corrispondenti e crea il codice effettivo.
Come viene creato un handle di finestra (hWnd), invia messaggi e viene usato per il rendering del contenuto di una finestra.
Come il data binding ottiene le risorse e interagisce con il sistema.
Questi modelli di minaccia sono importanti per identificare i requisiti di progettazione della sicurezza e le mitigazioni delle minacce durante il processo di sviluppo.
Strumenti di analisi e modifica della fonte
Oltre agli elementi di revisione manuale del codice di sicurezza di SDL, il team WPF usa diversi strumenti per l'analisi dell'origine e le modifiche associate per ridurre le vulnerabilità di sicurezza. Viene utilizzata una vasta gamma di strumenti di origine, tra cui i seguenti:
FXCop: trova problemi di sicurezza comuni nel codice gestito che vanno dalle regole di ereditarietà all'utilizzo della sicurezza dell'accesso al codice per l'interoperabilità sicura con codice non gestito. Vedere FXCop.
Prefisso/Prefast: trova vulnerabilità di sicurezza e problemi di sicurezza comuni nel codice unmanaged, ad esempio sovraccarichi di buffer, problematiche con le stringhe di formattazione e controllo degli errori.
API escluse: cerca il codice sorgente per identificare l'utilizzo accidentale di funzioni note per causare problemi di sicurezza, ad esempio
strcpy
. Una volta identificate, queste funzioni vengono sostituite con alternative più sicure.
Tecniche di test
WPF usa un'ampia gamma di tecniche di test di sicurezza che includono:
Whitebox Testing: i tester visualizzano il codice sorgente e quindi compilano i test di exploit.
Blackbox Testing: i tester provano a trovare exploit di sicurezza esaminando l'API e le funzionalità e quindi provano ad attaccare il prodotto.
Problemi di sicurezza ricorrenti da altri prodotti: ove rilevanti, i problemi di sicurezza dei prodotti correlati vengono testati. Ad esempio, le varianti appropriate di circa sessanta problemi di sicurezza per Internet Explorer sono state identificate e tentate per l'applicabilità a WPF.
Tools-Based test di penetrazione tramitefuzzing di file: il fuzzing dei file è lo sfruttamento dell'intervallo di input di un lettore di file attraverso un'ampia gamma di input. Un esempio in WPF in cui viene usata questa tecnica consiste nel verificare la presenza di errori nel codice di decodifica dell'immagine.
Gestione del codice critico
Per le applicazioni browser XAML (XBAP), WPF crea una sandbox di sicurezza usando il supporto di .NET Framework per contrassegnare e tenere traccia del codice critico per la sicurezza che eleva i privilegi (vedere metodologia di Security-Critical in strategia di sicurezza WPF - Sicurezza della piattaforma). Considerati i requisiti di qualità elevata per il codice critico per la sicurezza, tale codice riceve un livello aggiuntivo di controllo di gestione del codice sorgente e controllo di sicurezza. Circa 5% a 10% di WPF sono costituiti da codice critico per la sicurezza, esaminato dal team di revisione dedicato. Il codice sorgente e il processo di check-in vengono gestiti monitorando il codice critico per la sicurezza e mappando ogni entità critica (ad esempio un metodo che contiene codice critico) al suo stato di approvazione. Lo stato di approvazione include i nomi di uno o più revisori. Ogni build giornaliera di WPF confronta il codice critico con quello nelle build precedenti per verificare la presenza di modifiche non approvati. Se un tecnico modifica il codice critico senza approvazione del team di revisione, viene identificato e risolto immediatamente. Questo processo consente l'applicazione e la manutenzione di un livello particolarmente elevato di controllo sul codice sandbox WPF.
Avvertimento
I file XBAP richiedono il funzionamento di browser legacy, ad esempio Internet Explorer e versioni precedenti di Firefox. Questi browser meno recenti sono in genere non supportati in Windows 10 e Windows 11. I browser moderni non supportano più la tecnologia necessaria per le app XBAP a causa di rischi per la sicurezza. I plug-in che abilitano XBAP non sono più supportati. Per altre informazioni, vedere domande frequenti sulle applicazioni ospitate dal browser WPF (XBAP).
Vedere anche
- Sicurezza
- Sicurezza a Fede Parziale WPF
- Strategia di sicurezza WPF - Sicurezza della piattaforma
- Sicurezza in .NET
.NET Desktop feedback