Qualche suggerimento durante il test di un driver sandboxing?

4

Sto facendo test di penetrazione di un driver sandboxing e sto cercando di rompere la sandbox. È implementato come un driver in modalità kernel. Un processo sandbox avrà:

  • Una lista bianca di posizioni del disco per le operazioni di lettura
  • Una lista bianca di posizioni del disco per le operazioni di scrittura
  • Una lista bianca di indirizzi IP / porte per le connessioni in uscita
  • Dovrebbe solo consentire l'apertura di connessioni TCP.

    Esistono scenari specifici che posso testare? Ci sono delle librerie open source là fuori per testare un ambiente sandboxed? Sarebbe bello se qualcuno potesse condividere la loro precedente esperienza con questo tipo di test.
    Grazie in anticipo!

    Nota: ho bisogno di testare per Windows Server 2008 R2 a 64 bit.

        
    posta prthrokz 07.01.2013 - 18:37
    fonte

    1 risposta

    6

    Ci sono due approcci, il quantitativo e il qualitativo.

    Il quantitativo consiste nel confondere l'input con il driver sandboxing. Utilizza un framework fuzzing come Peach, Sulley o altro per eseguire il fuzz in input e cerca crash o operazioni sui file fuori dalla sandbox.

    L'approccio qualitativo implica il reverse engineering e la comprensione del meccanismo di sandboxing. Quindi prova a combinare questa comprensione con le diverse funzionalità fornite da Windows e diversi livelli di privilegi che potrebbero avere altri componenti. La sandbox potrebbe limitare le operazioni di file e rete ma limiterà l'iniezione in un processo diverso?

    Idee dello scenario:

    • Manipolazione di altri processi e del sistema per scrivere all'esterno della sandbox
    • Uso delle routine di sistema native NtWriteFile e ZwWriteFile
    • Caricamento driver e scrittura su dispositivi come \Device\Harddisk4\Partition2\mydir\myfile.txt , \DosDevices\c:\path_to_file.txt , \Device\Tcp
    • Caricamento di DLL con rundll32.exe
    • Meccanismi di aggancio sgancianti o confusi
    • Uso di collegamenti simbolici per confondere la sandbox
    • Uso di flussi di dati alternativi fileinsandbox.txt:fileoutsidesandbox.txt
    • Esecuzione di directory traversali path\in\sandbox\..\..\..\outside.txt
    • Utilizzo di variabili di ambiente come %SystemRoot% , %WinDir% , %TEMP%
    risposta data 08.01.2013 - 01:02
    fonte

    Leggi altre domande sui tag