Condividi tramite


Barra dei bug di sicurezza SDL (esempio)

Nota: questo documento di esempio è solo a scopo illustrativo. Il contenuto presentato di seguito illustra i criteri di base da considerare durante la creazione di processi di sicurezza. Non è un elenco completo di attività o criteri e non deve essere considerato come tale.

Fare riferimento alle definizioni dei termini in questa sezione.

Server

Fare riferimento alla Denial of Service Matrix per avere una panoramica completa degli scenari di DoS dei server.

La barra del server in genere non è appropriata quando l'interazione dell'utente fa parte del processo di sfruttamento. Se una vulnerabilità critica esiste solo nei prodotti server e viene sfruttata in modo che richiede l'interazione dell'utente e comporta la compromissione del server, la gravità può essere ridotta da Critico a Importante in conformità con la definizione di NEAT/data sull'ampia interazione utente presentata all'inizio del pivot di gravità del client.

Server

Critico

Riepilogo del server: worm di rete o casi inevitabili in cui il server è "di proprietà".

  • Elevazione dei privilegi: possibilità di eseguire codice arbitrario o ottenere più privilegi rispetto a quelli autorizzati

    • Utente anonimo remoto

      • Esempi:

        • Accesso non autorizzato al file system: scrittura arbitraria nel file system

        • Esecuzione di codice arbitrario

        • SQL injection (che consente l'esecuzione del codice)

    • Tutte le violazioni di accesso in scrittura (AV), gli AV in lettura sfruttabili o gli overflow integer in codice chiamabile in remoto

Importante

Riepilogo del server: scenari critici non predefiniti o casi in cui esistono mitigazioni che consentono di evitare scenari critici.

  • Denial of Service: deve essere "facile da sfruttare" inviando una piccola quantità di dati o attraverso altri metodi rapidi.

    • Anonimo

      • Attacco DoS persistente

        • Esempi:

          • L'invio di un singolo pacchetto TCP dannoso genera un BSoD (Blue Screen of Death)

          • Invio di un numero ridotto di pacchetti che causano un errore del servizio

      • DoS temporanei con amplificazione

        • Esempi:

          • Invio di un numero ridotto di pacchetti che causa l'inutilizzabilità del sistema per un periodo di tempo

          • Un server Web (ad esempio IIS) inattivo per un minuto o più

          • Un singolo client remoto che utilizza tutte le risorse disponibili (sessioni, memoria) in un server stabilendo le sessioni e mantenendole aperte

    • Autenticato

      • DoS persistente rispetto a un asset di valore elevato

        • Esempio:

          • Invio di un numero ridotto di pacchetti che causano un errore del servizio per un asset di valore elevato nei ruoli del server (server di certificati, server Kerberos, controller di dominio), ad esempio quando un utente autenticato dal dominio può eseguire un DoS in un controller di dominio

  • Elevazione dei privilegi: possibilità di eseguire codice arbitrario o di ottenere più privilegi di quanto previsto

    • Utente autenticato remoto

    • Utente autenticato locale (Terminal Server)

      • Esempi:

        • Accesso non autorizzato al file system: scrittura arbitraria nel file system

        • Esecuzione di codice arbitrario

    • Tutti gli AV di scrittura, gli AV di lettura sfruttabili o gli overflow di interi nel codice a cui è possibile accedere da utenti autenticati remoti o locali che non sono amministratori. Gli scenari da amministratore non presentano problemi di sicurezza per definizione, ma rimangono comunque questioni di affidabilità.

  • Divulgazione di informazioni (mirata)

    • Casi in cui l'autore dell'attacco può individuare e leggere informazioni da qualsiasi posizione del sistema, incluse le informazioni di sistema che non sono state progettate o progettate per essere esposte

      • Esempi:

        • Divulgazione di informazioni personali

          • Divulgazione di informazioni personali (indirizzi di posta elettronica, numeri di telefono, informazioni sulla carta di credito)

          • L'utente malintenzionato può raccogliere informazioni personali senza il consenso dell'utente o in modo non protetto

  • Spoofing (falsificazione dell'identità)

    • Un'entità (computer, server, utente, processo) è in grado di mascherarsi da unaentità specifica (utente o computer) di propria scelta.

      • Esempi:

        • Il server Web usa l'autenticazione del certificato client (SSL) in modo non corretto per consentire a un utente malintenzionato di essere identificato come qualsiasi utente di propria scelta

        • Il nuovo protocollo è progettato per fornire l'autenticazione client remota, ma esiste un difetto nel protocollo che consente a un utente remoto malintenzionato di essere visto come un utente diverso della propria scelta

  • Manomissione

    • Modifica di tutti i dati "asset di valore elevato" in uno scenario comune o predefinito in cui la modifica persiste dopo il riavvio del software interessato

    • Modifica permanente o persistente di dati utente o di sistema usati in uno scenario comune o predefinito

      • Esempi:

        • Modifica dei file di dati o dei database dell'applicazione in uno scenario comune o predefinito, ad esempio l'inserimento SQL autenticato

        • Avvelenamento della cache proxy in uno scenario tipico o predefinito

        • Modifica delle impostazioni del sistema operativo o dell'applicazione senza il consenso dell'utente in uno scenario comune o predefinito

  • Funzionalità di sicurezza: interruzione o esclusione di qualsiasi funzionalità di sicurezza fornita.
    Si noti che una vulnerabilità in una funzionalità di sicurezza è valutata "Importante" per impostazione predefinita, ma la classificazione può essere modificata in base ad altre considerazioni, come documentato nella barra dei bug SDL.

    • Esempi:

      • Disabilitazione o bypass di un firewall senza informare gli utenti o ottenere il consenso

      • Riconfigurare un firewall e consentire le connessioni ad altri processi

Moderato
  • Negazione del servizio

    • Anonimo

      • DoS temporaneo senza amplificazione in un'installazione predefinita/comune.

        • Esempio:

          • Più client remoti che usano tutte le risorse disponibili (sessioni, memoria) in un server stabilendo sessioni e mantenendole aperte

    • Autenticato

      • Denial of Service persistente

        • Esempio:

          • L'utente connesso a Exchange può inviare un determinato messaggio di posta elettronica e causare l'arresto anomalo di Exchange Server, e l'arresto non è dovuto a una violazione di accesso in scrittura, a una violazione di accesso in lettura sfruttabile, o a un overflow intero.

      • DoS temporanei con amplificazione in un'installazione predefinita/comune

        • Esempio:

          • L'utente ordinario di SQL Server esegue una stored procedure installata da alcuni prodotti e utilizza il 100% della CPU per alcuni minuti

  • Divulgazione di informazioni (mirato)

    • Casi in cui l'utente malintenzionato può leggere facilmente informazioni sul sistema da posizioni specifiche, incluse le informazioni di sistema, che non sono state progettate/progettate per essere esposte.

      • Esempio:

        • Divulgazione mirata di dati anonimi

        • Divulgazione mirata dell'esistenza di un file

        • Divulgazione mirata di un numero di versione del file

  • Spoofing (falsificazione di identità)

    • Un'entità (computer, server, utente, processo) è in grado di mascherare come un'entità casuale diversa che non può essere selezionata in modo specifico.

      • Esempio:

        • Il client si autentica correttamente al server, ma il server restituisce una sessione di un altro utente casuale che è connesso al server contemporaneamente.

  • Manomissione

    • Modifica permanente o persistente di qualsiasi dati utente o di sistema in uno scenario specifico

      • Esempi:

        • Modifica di file di dati o database dell'applicazione in uno scenario specifico

        • Avvelenamento della cache proxy in uno scenario specifico

        • Modifica delle impostazioni del sistema operativo o dell'applicazione senza il consenso dell'utente in uno scenario specifico

    • Modifica temporanea dei dati in uno scenario comune o predefinito che non persiste dopo il riavvio del sistema operativo/applicazione/sessione

  • Garanzie di sicurezza:

    • Una garanzia di sicurezza è una funzionalità di sicurezza o un'altra funzionalità/funzione del prodotto che i clienti si aspettano di offrire protezione della sicurezza. Le comunicazioni hanno inviato messaggi (in modo esplicito o implicito) che i clienti possono affidarsi all'integrità della funzionalità ed è ciò che lo rende una garanzia di sicurezza. I bollettini sulla sicurezza verranno rilasciati per una carenza in una garanzia di sicurezza che compromette la fiducia o l'affidabilità del cliente.

      • Esempi:

        • I processi in esecuzione con privilegi "utente" normali non possono ottenere privilegi di "amministratore", a meno che non siano state fornite password/credenziali di amministratore tramite metodi intenzionalmente autorizzati.

        • JavaScript basato su Internet in esecuzione in Internet Explorer non può controllare nulla del sistema operativo host, a meno che l'utente non abbia modificato in modo esplicito le impostazioni di sicurezza predefinite.

Basso
  • Divulgazione di informazioni (non mirata)

    • Informazioni sul runtime

      • Esempio:

        • Perdita casuale della memoria heap

  • Manomissione

    • Modifica temporanea dei dati in uno scenario specifico che non persiste dopo il riavvio del sistema operativo/applicazione

Cliente

Un'azione utente estesa è definita come:

  • L'"interazione dell'utente" può verificarsi solo in uno scenario basato su client.

  • Le azioni utente normali e semplici, ad esempio l'anteprima della posta, la visualizzazione di cartelle locali o condivisioni file, non sono un'interazione utente estesa.

  • "Esteso" include gli utenti che passano manualmente a un sito Web specifico (ad esempio, digitando un URL) o facendo clic su una decisione sì/no.

  • "Non esteso" include gli utenti che fanno clic sui collegamenti di posta elettronica.

  • Qualificatore NEAT (si applica solo agli avvisi). Dimostrabilmente, l'UX è:

    • Necessary (Bisogna davvero chiedere all'utente di prendere una decisione?)

    • Explained (l'esperienza utente presenta tutte le informazioni necessarie all'utente per prendere questa decisione?)

    • Unelemento utilizzabile (è disponibile un set di passaggi che gli utenti possono prendere per prendere decisioni valide sia in scenari benigni che dannosi?)

    • Tested (L'avviso è stato esaminato da più persone per assicurarsi che le persone comprendano come rispondere all'avviso?)

  • Chiarimento: Si noti che l'effetto di un'ampia interazione utente non è una riduzione del livello di gravità, ma è stata e rimane una riduzione della gravità in certe circostanze in cui la frase "ampia interazione utente" appare nella barra dei bug. Lo scopo è quello di aiutare i clienti a distinguere gli attacchi a diffusione rapida e wormable da quelli, in cui l'utente interagisce, l'attacco viene rallentato. Questa barra dei bug non consente di ridurre l'elevazione di privilegio sotto il livello "Importante" a causa dell'interazione dell'utente.

Cliente

Critico

Riepilogo cliente:

  • Worm di rete o scenari comuni di navigazione/uso inevitabili in cui il client è "compromesso" senza avvisi o richieste.

  • Elevazione dei privilegi (remoto): possibilità di eseguire codice arbitrario o di ottenere più privilegi di quanto previsto

    • Esempi:

      • Accesso non autorizzato al file system: scrittura nel file system

      • Esecuzione di codice arbitrario senza un'azione estesa dell'utente

      • Tutti gli AV di scrittura, gli AV di lettura sfruttabili, gli stack overflow o gli overflow interi nel codice chiamabile a distanza (senza un'azione utente estesa)

Importante

Riepilogo cliente

  • Scenari comuni di esplorazione/uso in cui il client è sotto controllo con avvisi o prompt, o tramite estese azioni senza richieste. Si noti che questo non discrimina la qualità/usabilità di un prompt e la probabilità che un utente possa fare clic su di esso, ma solo che esiste un qualche tipo di prompt.

  • Aumento dei privilegi (remoto)

    • Esecuzione di codice arbitrario con un'azione utente estesa

      • Tutti gli AV di scrittura, gli AV in lettura sfruttabili o gli overflow integer nel codice chiamabile remoto (con un'azione utente estesa)

  • Elevazione dei privilegi (locale)

    • L'utente con privilegi limitati locali può elevarsi a un altro utente, amministratore o sistema locale.

      • Tutti gli AV di scrittura, gli AV in lettura sfruttabili o gli overflow integer nel codice chiamabile locale

  • Divulgazione di informazioni (mirata)

    • Casi in cui l'utente malintenzionato può individuare e leggere informazioni sul sistema, incluse le informazioni di sistema che non sono state progettate o progettate per essere esposte.

    • Esempio:

      • Accesso non autorizzato al file system: lettura dal file system

      • Divulgazione di informazioni personali

        • Divulgazione di informazioni personali (indirizzi di posta elettronica, numeri di telefono)

      • Scenari di connessione del telefono alla rete centrale

  • Negazione del servizio

    • Il danneggiamento del sistema DoS richiede la riinstallazione di componenti e/o di sistema.

      • Esempio:

        • La visita di una pagina Web causa il danneggiamento del Registro di sistema che rende il computer non avviabile

    • Attacco DoS mordi e fuggi

      • Criteri:

        • DoS di sistema non autenticato

        • Esposizione predefinita

        • Nessuna funzionalità di sicurezza predefinita o mitigazioni dei limiti (firewall)

        • Nessuna interazione dell'utente

        • Nessuna verifica e tracciabilità delle punizioni

        • Esempio:

          • Attacco DoS o SMS tramite Bluetooth in un telefono cellulare

  • Spoofing (manipolazione digitale)

    • Possibilità per l'utente malintenzionato di presentare un'interfaccia utente diversa da ma visivamente identica all'interfaccia utente su cui gli utenti devono affidarsi per prendere decisioni di attendibilità valide in uno scenario predefinito/comune. Una decisione di trust viene definita come ogni volta che l'utente esegue un'azione credendo che alcune informazioni vengano presentate da una particolare entità, ovvero il sistema o un'origine locale o remota specifica.

      • Esempi:

        • Visualizzazione di un URL diverso nella barra degli indirizzi del browser dall'URL del sito effettivamente visualizzato dal browser in uno scenario predefinito/comune

        • Visualizzazione di una finestra sulla barra degli indirizzi del browser identica a una barra degli indirizzi, ma visualizza i dati falsi in uno scenario predefinito/comune

        • Visualizzazione di un nome di file diverso in "Vuoi eseguire questo programma?" finestra di dialogo rispetto a quella del file che verrà effettivamente caricato in uno scenario predefinito/comune

        • Visualizzare un prompt di accesso "falso" per raccogliere le credenziali dell'utente o dell'account

  • Manomissione

    • Modifica permanente dei dati o dei dati utente usati per prendere decisioni di attendibilità in uno scenario comune o predefinito che persiste dopo il riavvio del sistema operativo/applicazione.

      • Esempi:

        • Avvelenamento da cache del Web browser

        • Modifica delle impostazioni significative del sistema operativo o dell'applicazione senza il consenso dell'utente

        • Modifica dei dati utente

  • Funzionalità di sicurezza: interruzione o esclusione di qualsiasi funzionalità di sicurezza fornita

    • Esempi:

      • Disabilitazione o bypass di un firewall per informare l'utente o ottenere il consenso

      • Riconfigurare un firewall e consentire la connessione ad altri processi

      • Uso della crittografia debole o mantenimento delle chiavi archiviate in testo normale

      • Bypass di AccessCheck

      • Bypass di Bitlocker; ad esempio non crittografando parte dell'unità

      • Bypass syskey, un modo per decodificare il syskey senza la password

Moderato
  • Negazione del servizio

    • Il DoS permanente richiede un riavvio freddo o provoca una schermata blu/un bug check.

      • Esempio:

        • Aprire un documento di Word fa sì che la macchina mostri una schermata blu/controllo delle anomalie.

  • Divulgazione di informazioni (mirata)

    • Casi in cui l'attaccante può leggere informazioni sul sistema da posizioni note, incluse le informazioni di sistema che non sono state destinate o progettate per essere esposte.

      • Esempi:

        • Verifica mirata dell'esistenza del file

        • Numero di versione del file di destinazione

  • Spoofing

    • Possibilità per un attaccante di presentare un'interfaccia utente diversa ma visivamente identica a quella di cui gli utenti sono abituati a fidarsi in uno scenario specifico. "Abituato a considerare attendibile" è definito come qualsiasi cosa con cui un utente ha comunemente familiarità attraverso la normale interazione con il sistema operativo o l'applicazione, ma in genere non considera come una "decisione di fiducia".

      • Esempi:

        • Avvelenamento da cache del Web browser

        • Modifica delle impostazioni significative del sistema operativo o dell'applicazione senza il consenso dell'utente

        • Modifica dei dati utente

Basso
  • Interruzione del servizio

    • Il DoS temporaneo richiede il riavvio dell'applicazione.

      • Esempio:

        • L'apertura di un documento HTML causa l'arresto anomalo di Internet Explorer

  • Spoofing (manipolazione)

    • Possibilità per l'utente malintenzionato di presentare un'interfaccia utente diversa da ma visivamente identica all'interfaccia utente che è una singola parte di uno scenario di attacco più grande.

      • Esempio:

        • L'utente deve passare a un sito Web "dannoso", fare clic su un pulsante nella finestra di dialogo con spoofing ed è quindi soggetto a una vulnerabilità basata su un altro bug del browser

  • Manomissione

    • Modifica temporanea di tutti i dati che non vengono mantenuti dopo il riavvio del sistema operativo o dell'applicazione.

    • Divulgazione di informazioni (non mirato)

      • Esempio:

        • Perdita casuale di memoria dell'heap

Definizione dei termini

autenticato
Qualsiasi attacco che deve includere l'autenticazione da parte della rete. Ciò implica che la registrazione di qualche tipo deve potersi verificare affinché l'attaccante possa essere identificato.

anonimo
Qualsiasi attacco che non deve eseguire l'autenticazione per completare.

client
Software eseguito localmente in un singolo computer o software che accede alle risorse condivise fornite da un server in rete.

predefinito/comune
Tutte le funzionalità attive predefinite o che raggiungono più del 10% degli utenti.

scenario
Tutte le funzionalità che richiedono una personalizzazione o casi d'uso speciali per abilitare, raggiungendo meno del 10% degli utenti.

server
Computer configurato per eseguire il software che attende e soddisfa le richieste dei processi client eseguiti in altri computer.

Critico
Una vulnerabilità di sicurezza che verrebbe valutata come con il più alto potenziale di danno.

Importante
Una vulnerabilità di sicurezza che verrebbe valutata come avente un significativo potenziale di danni, ma inferiore a critica.

Moderato
Una vulnerabilità di sicurezza che verrebbe valutata come un potenziale moderato per danni, ma minore di Importante.

Basso
Una vulnerabilità di sicurezza che verrebbe valutata come con un basso potenziale di danni.

divulgazione di informazioni mirate
Possibilità di selezionare intenzionalmente (destinazione) le informazioni desiderate.

DoS temporaneo
Un DoS temporaneo è una situazione in cui vengono soddisfatti i criteri seguenti:

  • L'obiettivo non può eseguire operazioni normali a causa di un attacco.

  • La risposta a un attacco è approssimativamente la stessa grandezza della dimensione dell'attacco.

  • Il bersaglio torna al normale livello di funzionalità poco dopo che l'attacco è terminato. La definizione esatta di "a breve" deve essere valutata per ogni prodotto.

Ad esempio, un server non risponde mentre un utente malintenzionato invia costantemente un flusso di pacchetti in una rete e il server torna normale pochi secondi dopo l'arresto del flusso di pacchetti.

DoS temporaneo con amplificazione

Un DoS temporaneo con amplificazione è una situazione in cui vengono soddisfatti i criteri seguenti:

  • L'obiettivo non può eseguire operazioni normali a causa di un attacco.

  • La risposta a un attacco è di dimensioni superiori alle dimensioni dell'attacco.

  • La destinazione torna al livello normale di funzionalità al termine dell'attacco, ma richiede tempo (forse alcuni minuti).

Ad esempio, se è possibile inviare un pacchetto dannoso di 10 byte e causare una risposta di 2048 KB sulla rete, si sta attaccando con un DoS la larghezza di banda amplificando il nostro sforzo di attacco.

DoS permanente

Un DoS permanente è uno che richiede a un amministratore di avviare, riavviare o reinstallare tutte o parti del sistema. Qualsiasi vulnerabilità che riavvia automaticamente il sistema è anche un DoS permanente.

Matrice della negazione del servizio (Server)

Attacco autenticato e anonimo Confronto tra impostazioni predefinite/comuni e scenario DoS temporaneo e Permanente Valutazione
Autenticato Impostazione predefinita/comune Permanente Moderato
Autenticato Impostazione predefinita/comune DoS temporanei con amplificazione Moderato
Autenticato Impostazione predefinita/comune Negazione temporanea del servizio Basso
Autenticato Scenario Permanente Moderato
Autenticato Scenario DoS temporanei con amplificazione Basso
Autenticato Scenario Interruzione temporanea del servizio Basso
Anonimo Impostazione predefinita/comune Permanente Importante
Anonimo Impostazione predefinita/comune DoS temporanei con amplificazione Importante
Anonimo Impostazione predefinita/comune Denial of Service temporaneo Moderato
Anonimo Scenario Permanente Importante
Anonimo Scenario DoS temporanei con amplificazione Importante
Anonimo Scenario DoS temporaneo Basso

Dichiarazione di non responsabilità sul contenuto

Questa documentazione non è un riferimento completo sulle procedure SDL in Microsoft. Il lavoro aggiuntivo di verifica può essere eseguito dai team di prodotto a propria discrezione (ma non necessariamente documentato). Di conseguenza, questo esempio non deve essere considerato come il processo esatto seguito da Microsoft per proteggere tutti i prodotti.

Questa documentazione viene fornita "così come è". Le informazioni e le indicazioni riportate nel presente documento, inclusi URL e altri riferimenti a siti Web Internet, sono soggette a modifica senza preavviso. L'utente si assume tutti i rischi derivanti dal loro utilizzo.

Questa documentazione non fornisce diritti legali a alcuna proprietà intellettuale in alcun prodotto Microsoft. È consentito copiare e utilizzare il presente documento solo a scopo di riferimento interno.

© 2018 Microsoft Corporation. Tutti i diritti sono riservati.

Concesso in licenza inCreative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported