Le applicazioni software che vengono eseguite in ambienti Microsoft Windows possono iniettare codice in un processo che non è il loro. Anche se questo comportamento è simile a quello di malware, è anche un meccanismo integrato per Microsoft Windows. Questo meccanismo consente agli sviluppatori di software di fornire un'esperienza di elaborazione più ricca per l'utente.
Sono state rilevate numerose applicazioni software con motivi legittimi per caricare le dll nei nostri processi. Anche se cerchiamo di bloccare questi tentativi di caricamento delle DLL, le limitazioni tecniche permettono a volte di avere successo. È quindi necessaria una risposta alternativa per consentire all'ENS di continuare a funzionare normalmente. Questa situazione porta all'utilità MfeSysPrep.exe . Il MfeSysPrep.exe è disponibile tramite assistenza tecnica e può essere utilizzato come strumento di individuazione degli iniettori dll. Questa utilità è consigliata per ogni ambiente che avverte i sintomi causati dalla presenza di dll di terze parti nei nostri processi. Include inoltre le DLL di terze parti descritte nelle istruzioni relative ai problemi riportati di seguito.
Sfondo:
Il nostro software considera le DLL di terze parti che si sono iniettate nei nostri processi non affidabili. In altre parole:
Il codice non è stato scritto.
Non sappiamo cosa fa il loro codice o cosa può fare.
Non sappiamo se può essere mai compromesso e utilizzato maliziosamente.
Ciò che sappiamo è che qualsiasi lavoro svolto dalle funzioni DLL di quella terza parte sembra provenire dal processo iniettato. Quindi, se c'è un'attività dannosa, sembra che il nostro software esegua operazioni dannose. La possibilità di iniezioni di DLL di terze parti nei nostri processi non è accettabile. Abbiamo adottato misure che utilizzano la tecnologia di protezione dell'accesso (AP), nota anche come controllo arbitrario degli accessi, per proteggersi contro le iniezioni di DLL di terze parti. È stato inoltre implementato un Framework di convalida e protezione dell'affidabilità (VTP). Questo framework protegge dagli scenari in cui è possibile che si sia verificata un'iniezione.
Modalità di utilizzo di VTP:
Il servizio MFEVTPS.exe VTP è un servizio critico che esegue ispezioni delle dll e dei processi in esecuzione, inclusi i processi, che interagiscono con il nostro codice, per verificare che tali oggetti siano affidabili. Il servizio dipende dal Microsoft servizio di crittografia ( CryptSvc ), dalle API relative all'affidabilità e dallo stato dell'archivio dei certificati e dai file di catalogo. Se tali dipendenze sono in uno stato errato, il servizio potrebbe non funzionare correttamente.
Un controllo di convalida si verifica quando il nostro codice deve assicurarsi che il processo o l'oggetto in azione sia affidabile o entrambi.
Quando i processi vengono inizializzati, il servizio VTP viene utilizzato per convalidare il caricamento del codice affidabile. Viene utilizzato AP or AAC per garantire che vengano caricate solo le dll affidabili.
Come sopra indicato, solo il codice e il codice Microsoft sono implicitamente affidabili.
Caching
The MFEVTPS.exe memorizza nella cache i risultati di un controllo di convalida per migliorare le prestazioni dei controlli di convalida futuri.
La cache viene sempre esaminata prima quando si esegue un controllo di convalida.
Se un controllo di convalida restituisce "non affidabile," tale oggetto viene memorizzato nella cache come non affidabile. Se un oggetto viene memorizzato nella cache in modo errato non affidabile, solo un cache reimpostato può correggerlo.
La cache viene reimpostato solo quando si esegue l'avvio in modalità provvisoria, ma non in modalità provvisoria con la rete o eseguendo il comando VTPInfo.exe /ResetVTPCache . È inoltre possibile reimpostare la cache tramite il file DAT, quando necessario. Immediatamente dopo la cache reimpostazione, un utente potrebbe avvertire un breve periodo di rallentamento delle prestazioni.
Errori di affidabilità
Un errore di affidabilità vede un controllo di convalida che si traduce in "" non affidabili quando il risultato previsto viene "affidabile."
Esempi:
Una terza parte inietta il nostro processo. Non si considera affidabile la terza parte, pertanto il processo non riesce a eseguire un controllo di convalida.
Un file con firma di Microsoft catalogo contiene informazioni di firma non valide. Pertanto, non è possibile verificarlo e il processo non riesce a caricarlo.
Un file dll valido viene memorizzato nella cache come "non affidabile" in modo errato e i tentativi successivi di caricarlo vengono negati.
Tutti questi esempi possono causare il mancato funzionamento del processo interessato, ad esempio non caricare correttamente o non eseguire correttamente i propri compiti previsti. Questi errori si verificano a causa del proprio meccanismo di sicurezza (AAC) che nega l'accesso a codice non affidabile.
Modalità di utilizzo di AP o AAC:
AAC sostituito AP. Questa tecnologia opera dal kernel Windows. Può bloccare l'accesso agli oggetti, ad esempio gli oggetti di rete, di file, di registro e di processo. La funzionalità dispone di un set di regole per determinare cosa bloccare e cosa consentire. Le regole descrivono "" errate o "comportamenti" non sicuri che devono essere bloccati o negati. Molte delle regole sono sotto il vostro controllo, esposte nelle policy dell'interfaccia utente o di ePolicy Orchestrator (ePO). Alcune regole che non sono ancora esposte sono ancora attive. Consideriamo queste regole cruciali per lo stato operativo del prodotto. Le regole che esponiamo per te possono essere:
Attivata o disattivata.
Impostare su segnala solo.
Modificato per aggiungere altri processi da proteggere o proteggere da, o da escludere in modo da non bloccare più un determinato processo da violare la regola.
È possibile creare le proprie regole di blocco dei comportamenti, rendendo questa funzionalità uno degli strumenti più potenti a disposizione per proteggere l'ambiente.
Per riepilogare il funzionamento di AAC, viene visualizzata un'operazione che sta tentando di eseguire, viene eseguita una procedura e viene richiesto quanto segue:
Qual è il nome del processo?
Quale oggetto è l'accesso al processo?
Qual è il processo che tenta di eseguire l'oggetto?
L'operazione è consentita, sì o no?
"Nessun" significa che lo blocchiamo. Se è attivata l'opzione "rapporto", viene eseguita la registrazione e si invia un evento al server ePO. "Sì" significa che l'azione è consentita.
Le nostre regole private includono più criteri, ad esempio i seguenti:
Chi ha scritto questo codice? L'acquisizione di queste informazioni comporta la ricerca della firma digitale.
Ci fidiamo del certificato digitale di quel fornitore? Ci fidiamo solo della nostra e Microsoft per impostazione predefinita.
I criteri aggiunti offrono maggiore sicurezza. Al contrario, come spiegato sopra, se un controllo di convalida non riesce o produce un risultato "non affidabile", le nostre protezioni potrebbero bloccare i processi di accesso agli oggetti. Come indicato nell'istruzione in background riportata sopra, questo risultato è previsto.
Problema
1
Un processo di terze parti viene bloccato dall'accesso ai file o ai processi protetti. Il processo di terze parti riceve il codice di errore 5, che indica ACCESS_DENIED. Questo comportamento è previsto e non implica un problema con il software.
Un processo di terze parti che carica le dll viene bloccato dall'accesso ad altri processi, file o cartelle. Ad esempio, Microsoft Outlook, che carica le DLL di hook della modalità utente di prevenzione exploit di ENS, viene bloccato quando si tenta di accedere ad altri processi.
Problema
2
Un processo non viene avviato correttamente. Ad esempio, non è possibile avviare la console ENS nonostante i registri di installazione che indicano un esito positivo.
Un processo è in esecuzione, ma funziona solo in parte. Ad esempio, ENS viene caricato correttamente, ma indica che altri servizi non sono in esecuzione correttamente. Tuttavia, il servizio applicabile è in esecuzione.
L'installazione di un prodotto non riesce e tenta di eseguire il rollback, che potrebbe anche non riuscire, lasciando tracce di un tentativo di installazione non riuscito.
Un processo viene bloccato dall'accesso ad altri file o cartelle appartenenti a un prodotto diverso. Ad esempio, McScript_InUse.exe, che appartiene alla McAfee Agent, è bloccata dall'accesso alle cartelle ENS.
Causa
A un livello elevato, la causa è la seguente.
Elabora le DLL di caricamento, che contengono codice eseguito. Tutto questo lavoro viene eseguito dal processo utilizzando i thread. Una DLL di terze parti è quella che non viene creata tramite un fornitore, che in questo caso è US o Microsoft. Quando il processo carica una DLL di terze parti, tale processo viene "iniettato" dalla DLL di terze parti, il che implica che ora contiene funzioni di terze parti e può eseguire il codice di terze parti. Il risultato è che il processo può ora eseguire operazioni che non è mai previsto. Non c'è neanche la consapevolezza di cosa potrebbero essere queste azioni perché non è il nostro codice. Tuttavia, il codice di terze parti è attivo e risiede all'interno del nostro processo.
Nota: Molti fornitori di applicazioni di terze parti scrivono software legittimo che applica l'iniezione di DLL come mezzo per facilitare la loro funzione di prodotto. Esistono molti esempi, ma questi nomi sono di alcuni vendor le cui applicazioni sono comunemente rilevate nello spazio aziendale: Citrix, Avecto, Lumenion, Beyond Trust e NVIDIA.
Soluzione
1
ENS dispone di un processo denominato MFECanary.exe che viene eseguito come processo MFEEsp.exe figlio e acquisisce i dettagli del certificato digitale per qualsiasi DLL che tenta di inserirla. Le informazioni vengono inviate a ePO tramite un evento agent, che viene elaborato presso il server ePO. Viene quindi popolato nell'ENS In comune policy.
Quando si vede che i certificati sono popolati nella In comune ENS policy, si tratta di un'indicazione del software non affidabile di terze parti presente nell'ambiente. Questo software sta tentando attivamente di caricare le dll nei nostri processi. Se riescono, la loro presenza all'interno dei nostri processi porta alle dichiarazioni di problemi sopra descritte.
Dall'ENS In comune policy, una casella di controllo consente all'amministratore di controllare se i sistemi client si considerano affidabili o non si fidano del certificato di terze parti. Lo stesso policy consente di aggiungere manualmente i certificati per essere considerati affidabili, utilizzando il certificato esportato ( .cer ) della DLL di iniezione.
Per i sistemi con VSE, non esiste alcun metodo automatico per considerare affidabile una DLL che si sta iniettando. Ma, a partire dal rilascio di VSE 8.8 patch 9, il Policy di protezione dell'accesso per VSE contiene una scheda di esclusione globale per la protezione dell'autodifesa. In questa scheda è possibile escludere i processi che vengono influenzati tramite un'iniezione di DLL di terze parti. Per avere un maggiore controllo sulle applicazioni che introducono nei nostri processi, i clienti vengono esortati a migrare a ENS.
Soluzione
2
Assistenza tecnica assistenza:
Assistenza tecnica può anche aiutare a identificare la terza parte e, in seguito, ad affidare un certificato digitale di terze parti con le DLL di terze parti che si iniettano nei nostri processi. Questo supporto richiede l'apertura di una richiesta di assistenza. Per velocizzare l'elaborazione, i passaggi per raggiungere queste attività sono disponibili in questo articolo.
Contenuti Fare clic per espandere la sezione che si desidera visualizzare:
È disponibile un'utilità da Assistenza tecnica denominata MfeSysPrep.exe . È possibile eseguire MfeSysPrep.exe autonomamente su qualsiasi sistema di destinazione per la scoperta dell'iniettore dll, distribuito tramite strumenti di terze parti o distribuito tramite ePO. Lo strumento scrive un file di registro in locale e invia gli eventi ePO per le dll non affidabili identificate che possono influire sulle funzioni ENS.
Per ciascun iniettore identificato e il relativo certificato digitale, se si ritiene che un certificato specifico sia affidabile, lo strumento aggiorna automaticamente l'ENS in modo da considerare attendibile il certificato. Se lo strumento non rileva le dll non affidabili in circolazione, non è necessaria alcuna ulteriore azione. Per le implicazioni dell'affidabilità di un certificato di terze parti, consultare la sezione "informazioni correlate" di questo articolo.
Per ciascuna dll non affidabile e firmata identificata, le informazioni sul certificato vengono acquisite nel registro e fornite a ePO in un evento. L'ID evento è 1092 o 1095. Per ciascuna dll non affidabile e senza firma identificata, viene registrata una hash SHA-1 e SHA-2 per tale DLL nel registro e fornita a ePO in un evento. Anche in questo caso, l'ID evento è 1092 o 1095.
L'ID evento 1092 indica che viene rilevato un iniettore e non è possibile considerarlo affidabile.
L'ID evento 1095 indica che viene rilevato un iniettore e che è possibile considerarlo automaticamente affidabile.
Tale identificazione è forse l'impegno più difficile dell'intero processo. Il motivo è che il metodo per raccogliere queste informazioni varia in base al fatto che si verifichino sintomi che influiscono sul comportamento del prodotto. Consultare le sezioni seguenti per raccogliere i dati quando non vi sono "sintomi avversi" e "i sintomi negativi."
Nessun sintomo avverso:
Utilizzare Esplora processi, disponibile da Microsoft.
Eseguire lo strumento come amministratore.
Selezionare il processo in cui è presente la DLL di terze parti.
Utilizzare la visualizzazione DLL o premere CTRL + D e identificare la DLL di terze parti, annotando la relativa posizione sul disco. Se sono presenti più percorsi, annotarli tutti.
Utilizzare Esplora risorse per individuare la dll sul disco e accedere alle relative Proprietà.
Per ulteriori informazioni, consultare la sezione recupero del .cer file .
Sintomi avversi:
Quando si verificano i sintomi avversi durante una sessione di Windows, sono disponibili due punti dati da raccogliere. Questi punti dati devono essere idealmente raccolti in parallelo; ovvero, eseguire contemporaneamente entrambi gli strumenti e acquisire il problema una sola volta.
Raccogliere i dati del monitoraggio dei processi:
Utilizzare Process Monitor, disponibile da Microsoft.
Eseguire lo strumento come amministratore.
Avviare il processo che si sta comportando in modo imprevisto.
Dopo aver riprodotto il comportamento anomalo, salvare la Procmon cattura.
IMPORTANTE:Salvare tutti gli eventi e utilizzare il formato nativo PML.
Fornire queste informazioni a Assistenza tecnica per facilitare l'identificazione della DLL di terze parti caricata tramite il processo.
Avviare il processo che si sta comportando in modo imprevisto.
Dopo aver riprodotto il comportamento anomalo, eseguire AMTrace di nuovo, ora fornendo l'opzione di arresto.
Fornire il registro creato per Assistenza tecnica. Il file di registro aiuta a identificare la DLL non affidabile.
Quando i sintomi avversi si verificano solo in Windows avvio/avvio, sono disponibili due punti dati da raccogliere, che possono essere raccolti in serie o in parallelo:
Raccogliere i dati del monitoraggio dei processi:
Utilizzare Process Monitor, disponibile da Microsoft.
Eseguire lo strumento come amministratore.
Nel menu opzioni, fare clic su Attiva registrazione di avvio.
Reimpostazione del cache VTP *.
Riavviare il sistema.
Accedere ed eseguire nuovamente Process Monitor .
Salvare la cattura della registrazione di Procmon avvio.
IMPORTANTE:Salvare tutti gli eventi e utilizzare il formato nativo PML.
Fornire queste informazioni a Assistenza tecnica per facilitare l'identificazione della DLL di terze parti caricata tramite il processo.
Dopo aver riprodotto il comportamento anomalo, eseguire AMTrace di nuovo, ora fornendo l'opzione di arresto.
Fornire il registro creato per Assistenza tecnica. Il file di registro aiuta a identificare la DLL non affidabile.
* Per reimpostare la cache VTP:
Da un prompt dei comandi amministratore, passare a \Program Files\Common Files\McAfee\SystemCore .
Eseguire l' VTPInfo.exe utilità con il parametro /resetvtpcache :
VTPInfo.exe /ResetVTPCache
Ottenere il .cer file:
Questa procedura è necessaria solo se si esegue l'opzione 2 per identificare le dll non affidabili di terze parti. Se si utilizza l'opzione 1, non è necessario ottenere il .cer file.
Per accedere alle proprietà del file EXE o DLL, fare clic con il pulsante destro del mouse e scegliere Proprietà.
Fare clic sulla scheda certificati digitali .
NOTA:Se questa scheda non è presente, il file non è firmato digitalmente e non è possibile considerare affidabile il codice del fornitore. È necessario contattare il fornitore e richiedere che forniscano un codice firmato.
Selezionare un certificato dall'elenco delle firme che si desidera impostare come affidabile.
Fare clic su Dettagli.
Fare clic su Visualizza certificato.
Fare clic sulla scheda Dettagli .
Fare clic su copia nel file.
Nell'esportazione guidata certificati, fare clic su Avanti.
Fare nuovamente clic su Avanti per accettare la creazione di un .cer file.
Specificare il nome e il percorso del file. Ad esempio, C:\Temp\My3rdParty.cer .
Fare clic su Avanti e fine.
Se si utilizza l'opzione 1 sopra e non vengono rilevate altre dll non affidabili, non è necessaria alcuna ulteriore azione.
Per le dll non affidabili e firmate , si prevede che il certificato digitale per tale DLL venga visualizzato nell'ENS in comune Policy. In questo caso, consultare la soluzione 1. Utilizzare le opzioni ENS In comune policy per considerare affidabile il certificato manualmente se una delle seguenti condizioni è vera:
Il certificato non è stato visualizzato in tale policy.
Si desidera che il processo venga spostato in modo più prevedibile, dopo aver ottenuto il ( .cer) file.
IMPORTANTE:Prima di procedere, consultare il "informazioni correlate" sezione del presente articolo per le implicazioni dell'affidabilità di un certificato di terze parti.
Per le dll non affidabili e senza firma , si prevede che il fornitore del software fornisca un codice con firma digitale, in quanto si tratta di uno standard di mercato per l'identificazione del software rilasciato. Nei casi in cui i fornitori non possono o non sono conformi, Assistenza tecnica può aiutarti. È necessario fornire le dll MfeSysPrep.exe senza firma identificate come iniettori e il MfeSysPrep registro che mostra l'iniezione. Utilizzando queste informazioni, si considera l'aggiunta della DLL senza firma all'interno dell' MfeSysPrep Utilità, per aiutarvi a risolvere problemi quali le installazioni ENS a causa della presenza dell'applicazione di terze parti. Non include applicazioni come il software antivirus che svolge la stessa funzione di ENS.
Importante: Prima di poter aggiungere l'affidabilità a una DLL di terze parti, è necessario inviare la DLL a McAfee Labs come esempio per confermare che non è dannoso. Per istruzioni, consultare KB85567-inviare potenziali falsi positivi dal prodotto o da GTI a Labs. Includere le seguenti informazioni quando si inviano tali esempi di DLL:
Produttore del software
Eseguibile o processo padre
Questa applicazione è interna o pubblicamente disponibile?
Breve descrizione della funzione e dello scopo del software, inclusa la DLL inviata
Informazioni correlate
Implicazioni di sicurezza per la fiducia di un certificato digitale di terze parti:
Ci sono implicazioni di sicurezza accettate affidando un certificato di terze parti:
L'utente accetta che qualsiasi codice firmato dal certificato di terze parti sarà considerato affidabile per interagire con i processi, i file, il registro e tutti gli altri oggetti protetti.
L'attività file generata dai processi firmati con il certificato di terze parti potrebbe non essere sottoposta a scansione.
L'utente comprende che qualsiasi prodotto o codice rilasciato dallo stesso fornitore, se utilizza lo stesso certificato digitale, erediterà automaticamente le stesse indennità.
L'utente comprende che qualsiasi prodotto o codice rilasciato dallo stesso fornitore, utilizzando un certificato digitale diverso, deve essere considerato affidabile anche per ottenere gli stessi risultati.
Se si è utenti registrati, digitare l'ID utente e la password, quindi fare clic su accesso.
Se non si è utenti registrati, fare clic su registra e completare i campi per inviare via email i password e le istruzioni.
Dichiarazione di non responsabilità
Il contenuto di questo articolo è stato scritto in inglese. In caso di differenze tra il contenuto in inglese e la traduzione, fare sempre riferimento al contenuto in iglese. Parte del contenuto è stata tradotta con gli strumenti di traduzione automatica di Microsoft.