NDIS Driver Filter VS API Hooking

1

Ho visto molti sviluppatori chiedere "Come intercettare i pacchetti HTTP in / out", "Come modificarli al volo". La risposta più "pulita" che ho visto è quella di creare un filtro del driver in modalità kernel da zero (TDI per XP e precedenti Winx9 o NDIS per sistemi NT).

Un altro modo è utilizzare un driver in modalità utente come Windivert , anche Komodia ha un'ottima soluzione (senza scrivere alcun codice singolo).

L'idea alla base di questa introduzione è che voglio solo sapere API Hooking può essere considerato un'alternativa alla scrittura di tutto il filtro del conducente? scrivere un driver da zero non è un compito facile, perché non semplicemente agganciare HttpSendRequest o qualsiasi altra API utilizzata dal browser? Ci sono molte librerie libere / commerciali per farlo in modo sicuro (es: EasyHook, Mhook, Nektra ..).

Non sono il primo a chiederlo, c'è già Sockscap che usa Hook (iniezione DLL) per cambiare il comportamento in altre applicazioni e impone loro di usare un proxy Socks, anche Form grabbing attack ' usato da keylogger ..

    
posta Marwen Trabelsi 07.04.2013 - 20:23
fonte

2 risposte

1

A seconda delle esigenze (in particolare per voler filtrare i pacchetti e bloccare i siti) l'opzione più pulita non è sicuramente quella di tentare di eseguire i propri strumenti di sicurezza. Utilizzare invece uno strumento appositamente creato per il lavoro che consente di inserire un lavoro a livello di rete completamente fuori dalla portata del client. L'installazione, la configurazione e la manutenzione sono molto più semplici rispetto alla codifica dei tuoi filtri e alla loro distribuzione e gestione.

Squid ha una serie di modi per fare ciò che vuoi fare (inclusa la riscrittura delle intestazioni HTTP e anche del contenuto html). Se necessario, può essere installato "in modo trasparente" su una rete per garantire che nessuno possa aggirarlo anche se è consapevole che è presente. Può anche funzionare con SSL, se necessario.

Ha anche altri aspetti positivi che includono elenchi di server proxy noti che vengono regolarmente aggiornati per impedire alle persone che li utilizzano di aggirare i filtri.

    
risposta data 01.11.2013 - 11:44
fonte
-4

Nella maggior parte dei casi, l'utilizzo di un hook API è abbastanza buono. Ma per le chiamate socket, l'hook dell'API wininet non è sufficiente per creare un filtro di rete praticabile.

Credo che la tecnica dell'amo API possa essere utilizzata per creare un wrapper pass-thru. Ma è difficile darti un campione a causa della complessità che comporta. Ad esempio, è necessario considerare l'iniezione di DLL, l'iniezione di codice, ecc ...

    
risposta data 01.11.2013 - 07:57
fonte

Leggi altre domande sui tag