CH718171A2 - Sistemi e metodi per impedire inserimenti di processi dannosi nei software. - Google Patents

Sistemi e metodi per impedire inserimenti di processi dannosi nei software. Download PDF

Info

Publication number
CH718171A2
CH718171A2 CH70712/21A CH0707122021A CH718171A2 CH 718171 A2 CH718171 A2 CH 718171A2 CH 70712/21 A CH70712/21 A CH 70712/21A CH 0707122021 A CH0707122021 A CH 0707122021A CH 718171 A2 CH718171 A2 CH 718171A2
Authority
CH
Switzerland
Prior art keywords
active process
active
malicious
command
memory
Prior art date
Application number
CH70712/21A
Other languages
English (en)
Inventor
Protasov Stanislav
Beloussov Serguei
Strogov Vladimir
Original Assignee
Acronis Int Gmbh
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Acronis Int Gmbh filed Critical Acronis Int Gmbh
Publication of CH718171A2 publication Critical patent/CH718171A2/it

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

L'invenzione concerne sistemi e metodi volti a impedire inserimenti dannosi. In un esempio, un metodo include il monitoraggio dei processi attivi che sono in esecuzione in modalità sospesa. Per ogni processo attivo monitorato, il metodo include l'inserimento di una libreria di collegamento dinamico (dynamic link library - DLL) nel processo attivo per associare un'interfaccia di programmazione dell'applicazione (application programming interface - API) di un'applicazione corrispondente al processo attivo, in cui la DLL viene inserita per tenere traccia di comandi di sospensione e di ripresa del processo attivo. Il metodo include il monitoraggio degli input e degli output dei file dell'applicazione per rilevare anomalie mentre il processo attivo si trova in modalità sospesa e il momento in cui il comando per la ripresa del processo attivo viene rilevato tramite la DLL, determinando, in base al monitoraggio, se un processo dannoso è inserito o meno nel processo attivo. Il metodo include l'autorizzazione del processo sospeso a riprendere l'esecuzione in risposta alla determinazione del fatto che nessun processo dannoso è inserito nel processo attivo.

Description

CAMPO TECNICO
[0001] La presente esposizione si riferisce al campo della protezione dei software da utenti malintenzionati (ad es. tramite inserimento di malware generici o di un ransomware).
STATO DELL'ARTE
[0002] Attualmente, gli utenti si affidano a reti di comunicazione per accedere a vari tipi di servizi. Ad esempio, i dispositivi endpoint utente, come telefoni, computer ecc., sono utilizzati ovunque per accedere a servizi voce e dati. Per supportare questi servizi, i provider di servizi di comunicazione cercano di assicurare che i software applicativi utilizzati per accedere a servizi provenga da una fonte attendibile e non contenga processi dannosi.
[0003] In alcuni scenari, un processo dannoso potrebbe essere inserito in un software normalmente considerato sicuro. Ad esempio, supponiamo che il sistema operativo (OS) del dispositivo endpoint utente (ad es. Microsoft Windows) possa avviare/attivare un processo in una modalità di esecuzione o in una modalità sospesa. La modalità sospesa viene utilizzata dai sistemi operativi per conservare memoria ad accesso casuale (Random Access Memory - RAM) ponendo applicazioni in uno stato pronto anziché in uno stato di esecuzione o in uno stato terminato. Ad esempio, l'efficienza della RAM può essere migliorata ponendo un processo in modalità sospesa mentre si attende un input dell'utente. Quando il processo di un'applicazione viene avviato in modalità sospesa, un utente malintenzionato potrebbe inserire un processo dannoso nel processo che era precedentemente considerato affidabile, senza perciò essere rilevato.
SOMMARIO
[0004] La presente invenzione si riferisce al campo della sicurezza di rete, più nello specifico a sistemi e metodi per impedire inserimenti di processi dannosi nei software, ad es. impedire che un processo dannoso venga inserito in processi affidabili.
[0005] In alcuni esempi, le tecniche qui descritte si riferiscono a un metodo per impedire inserimenti di processi dannosi, il quale metodo include: il monitoraggio, tramite un driver di filtro di una modalità kernel di un sistema operativo, dei processi attivi che stanno funzionando in modalità sospesa; e per ogni processo attivo monitorato, tramite un driver di filtro della modalità kernel: l'inserimento di una libreria di collegamento dinamico (dynamic link library - DLL) nel processo attivo per associare un'interfaccia di programmazione dell'applicazione (application programming interface - API) di un'applicazione corrispondente al processo attivo, in cui la DLL viene inserita per tenere traccia dei comandi di sospensione e di ripresa del processo attivo; monitoraggio degli input e degli output dei file dell'applicazione per rilevare anomalie mentre il processo attivo si trova in modalità sospesa; quando un comando per riprendere il processo attivo viene rilevato mediante la DLL, determinazione, in base al monitoraggio, del fatto che un processo dannoso sia inserito nel processo attivo; e autorizzazione del processo sospeso a riprendere l'esecuzione in risposta alla determinazione del fatto che nessun processo dannoso è inserito nel processo attivo.
[0006] In alcuni esempi, le tecniche qui descritte si riferiscono a un metodo, in cui il monitoraggio degli input e degli output dei file include almeno la determinazione del momento in cui un'operazione di scrittura viene eseguita nella memoria.
[0007] In alcuni esempi, le tecniche qui descritte si riferiscono a un metodo, in cui il monitoraggio degli input e degli output dei file include almeno la determinazione del momento in cui uno spazio degli indirizzi di un file viene alterato.
[0008] In alcuni esempi, le tecniche qui descritte si riferiscono a un metodo, che comprende inoltre: la registrazione delle modifiche apportate alla memoria o allo spazio degli indirizzi in un archivio speciale; quando il comando per la ripresa del processo attivo viene rilevato, il trasferimento delle modifiche registrate a un analizzatore; e la ricezione dei risultati di un'analisi dall'analizzatore indicanti se le modifiche sono associate o meno al processo dannoso.
[0009] In alcuni esempi, le tecniche qui descritte si riferiscono a un metodo che include inoltre: l'aggiornamento delle regole utilizzate per determinare se il processo dannoso è inserito o meno nel processo attivo in base ai risultati ricevuti dell'analisi.
[0010] In alcuni esempi, le tecniche qui descritte si riferiscono a un metodo, in cui il comando per riprendere il processo attivo include una funzione kernel che viene utilizzata come comando interno nel sistema operativo.
[0011] In alcuni esempi, le tecniche qui descritte si riferiscono a un metodo, che include inoltre: il bloccaggio della ripresa del processo attivo quando una scrittura nella memoria si è verificata tra la sospensione del processo attivo e la ricezione di un comando per la ripresa del processo attivo; oppure il bloccaggio della ripresa del processo attivo quando uno spazio degli indirizzi di un file viene sostituito tra la sospensione del processo attivo e la ricezione del comando per la ripresa del processo attivo.
[0012] Si noti che i metodi sopra descritti possono essere implementati in un sistema comprendente un processore hardware. In alternativa, i metodi possono essere implementati utilizzando istruzioni informatiche eseguibili di un supporto informatico non transitorio.
[0013] In alcuni esempi, le tecniche qui descritte si riferiscono a un sistema di un dispositivo che impedisce inserimenti di processi dannosi, tra cui: un processore hardware accoppiato in modo comunicativo alla memoria e configurato per eseguire un driver di filtro e un sistema operativo (OS) azionabile in una modalità utente e una modalità kernel; il quale driver di filtro della modalità kernel è configurato per: monitorare processi attivi che sono in esecuzione in modalità sospesa; e per ciascun processo attivo monitorato: inserire una libreria di collegamento dinamico (dynamic link library - DLL) nel processo attivo per associare un'interfaccia di programmazione dell'applicazione (application programming interface - API) di un'applicazione corrispondente al processo attivo, in cui la DLL viene inserita per tenere traccia dei comandi di sospensione e di ripresa del processo attivo; monitorare gli input e gli output dei file dell'applicazione per rilevare anomalie mentre il processo attivo si trova in modalità sospesa; quando un comando per riprendere il processo attivo viene rilevato tramite la DLL, determinare, in base al monitoraggio, se un processo dannoso è inserito nel processo attivo; e consentire al processo sospeso di riprendere l'esecuzione in risposta alla determinazione del fatto che nessun processo dannoso è inserito nel processo attivo.
[0014] Il riepilogo semplificato dei sistemi e dei metodi di cui sopra serve a consentire una comprensione basilare della presente invenzione. Questo riepilogo non è una sintesi esaustiva di tutte le realizzazioni contemplate dell'invenzione e non intende né identificare elementi chiave o critici di tutte le realizzazioni né delineare la portata di alcune o di tutte le realizzazioni della presente invenzione. Il suo unico scopo è presentare una o più realizzazioni dell'invenzione in forma semplificata come preludio alla descrizione più dettagliata dell'invenzione di seguito riportata. A completamento di quanto precede, una o più forme di realizzazione della presente invenzione includono le funzionalità descritte ed evidenziate in modo esemplare nelle rivendicazioni.
BREVE DESCRIZIONE DEI DISEGNI
[0015] I disegni accompagnatori, che sono incorporati e costituiscono parte di questa specifica, illustrano uno o più esempi dell'invenzione e, insieme alla descrizione dettagliata, servono a spiegarne i principi e le implementazioni.
[0016] La Fig. 1 è un diagramma a blocchi che illustra un sistema esemplificativo per impedire inserimenti di processi dannosi.
[0017] La Fig. 2 è un diagramma a blocchi che illustra un dispositivo endpoint utente esemplificativo utilizzato per impedire inserimenti di processi dannosi.
[0018] La Fig. 3 è un diagramma di flusso che illustra un metodo esemplificativo di un metodo per impedire inserimenti di processi dannosi.
[0019] La Fig. 4 presenta un esempio di un sistema informatico generico su cui possono essere implementati sistemi e metodi qui divulgati.
DESCRIZIONE DETTAGLIATA
[0020] Vengono qui divulgati esempi di un sistema, un metodo e un programma informatico per impedire inserimenti di processi dannosi. Coloro che hanno un'ordinaria competenza nell'arte si renderanno conto che la seguente descrizione è puramente illustrativa e non intende essere in alcun modo limitativa. Altri esempi si riveleranno immediatamente a chi è competente nell'arte che si avvarrà di questa esposizione. Si farà ora riferimento in dettaglio alle implementazioni delle realizzazioni esemplificative come illustrato nei disegni accompagnatori. Gli stessi indicatori di riferimento saranno utilizzati, nei limiti del possibile, in tutti i disegni e nella seguente descrizione per riferirsi agli stessi elementi o ad elementi simili.
[0021] L'inserimento di un processo dannoso in un processo sospeso rappresenta una minaccia per la sicurezza ad alto rischio poiché potrebbe non essere rilevato. In un esempio, l'inserimento del processo dannoso potrebbe essere eseguito tramite un metodo di memoria di scrittura per sostituire il contenuto sicuro con contenuto dannoso. In un altro esempio, l'inserimento di un processo dannoso potrebbe essere eseguito sostituendo lo spazio degli indirizzi di un file. A prescindere dal metodo utilizzato per inserire il processo dannoso, l'attacco si verifica quando viene ripresa l'esecuzione del processo. La verifica del fatto che il processo sia affidabile avviene prima che il processo venga posto in modalità sospesa. Pertanto, il processo continua a essere considerato un processo affidabile quando viene ripresa l'esecuzione, consentendo in tal modo all'attacco di avvenire in tempo reale senza essere rilevato. Il tipo di attacco viene spesso rilevato solo post-factum utilizzando metodi forensi digitali.
[0022] Pertanto, sussiste la necessità di un metodo e un sistema più efficienti per il rilevamento di processi dannosi in tempo reale. Il rilevamento in tempo reale consentirebbe al sistema di raccogliere esempi di malware per l'analisi e rafforzerebbe la verifica dell'attendibilità del software.
[0023] In un esempio, un sistema per impedire inserimenti di processi dannosi in conformità agli insegnamenti della presente esposizione include dispositivi del mondo reale, sistemi, componenti e gruppi di componenti realizzati con l'utilizzo di hardware quali microcircuiti integrati (application-specific integrated circuit, ASIC) o matrici di porte programmabili sul campo (field-programmable gate arrays - FPGA), oppure, ad esempio, sotto forma di una combinazione di software e di hardware, quali un sistema di microprocessori e un set di istruzioni di programma e anche su chip neurosinaptici. La funzionalità di tali moduli di sistema può essere realizzata esclusivamente tramite hardware e anche sotto forma di una combinazione, in cui parte della funzionalità dei moduli di sistema è realizzata tramite software e parte tramite hardware. In determinati esempi, alcuni dei moduli o tutti i moduli possono essere eseguiti sul processore di un computer generico (come quello illustrato nella Fig. 4). Inoltre, componenti del sistema possono essere realizzati all'interno di un singolo dispositivo informatico oppure essere distribuiti tra più dispositivi informatici interconnessi.
[0024] La Fig. 1 è un diagramma a blocchi che illustra un sistema esemplificativo 100 per impedire inserimenti di processi dannosi. Il sistema 100 include un dispositivo endpoint utente 101 che accede a servizi tramite una rete 140 e un dispositivo 109 utilizzato per lanciare un attacco.
[0025] Il dispositivo 109 è un dispositivo rappresentativo che può essere utilizzato da un soggetto (fisico o giuridico) ai fini del lancio di un'attività dannosa su dispositivi endpoint utente o su server nella rete 140. La rete 140 può includere qualsiasi numero di reti di comunicazione wireless o cablate, Internet ecc.
[0026] In un esempio, il metodo della presente esposizione, volto a impedire inserimenti di processi dannosi, viene implementato in un dispositivo endpoint utente (ad es. il dispositivo endpoint utente 101).
[0027] La Fig. 2 è un diagramma a blocchi che illustra un dispositivo endpoint utente esemplificativo 200 utilizzato per impedire inserimenti di processi dannosi.
[0028] Il sistema operativo (OS) del dispositivo endpoint utente supporta in genere due modalità: modalità utente e modalità kernel. Quando il dispositivo viene acceso, il sistema operativo si avvia in modalità kernel. Una volta caricato il sistema operativo, le applicazioni utente funzionano in modalità utente. Le istruzioni privilegiate possono essere eseguite solo in modalità kernel. Ad esempio, le istruzioni di interruzione, la gestione di ingressi/uscite, la gestione della memoria, la programmazione della CPU ecc. vengono eseguite in modalità kernel. Quando il sistema operativo sta eseguendo un'applicazione utente, il sistema si trova in modalità utente.
[0029] Una transizione alla modalità kernel si verifica quando l'applicazione invia una richiesta relativa ad esecuzioni che richiedono accesso privilegiato. Al completamento, il sistema operativo torna in modalità utente. Ad esempio, supponiamo che si verifichi una chiamata di sistema, per un'applicazione utente 201. A questo punto, avviene la transizione del sistema operativo alla modalità kernel poiché l'esecuzione richiede l'accesso privilegiato. Una volta terminata l'esecuzione della chiamata di sistema, segue la transizione di nuovo alla modalità utente.
[0030] Un'applicazione utente 201 può essere richiamata da un utente del dispositivo endpoint per avviare un'applicazione. L'applicazione utente 201, mentre è in esecuzione in modalità utente, può richiedere un'operazione eseguibile solo in modalità kernel. Il sistema operativo passa quindi dalla modalità utente alla modalità kernel. Ad esempio, operazioni che accedono al processore 221 (ad es. programmazione), alla memoria 222 (ad es. mappatura), ai moduli I/O 223 (ad es. porte di accesso/interfacce), a regole dei file 211, a chiavi di registro 212 (ad es. modifica delle chiavi di registro), a regole di processo 213 (ad es. modifica di processi o aggiunta di processi) e simili vengono eseguite quando il sistema operativo si trova in modalità kernel.
[0031] Un driver della modalità kernel 219 rileva operazioni a cui si registra per richiamate delle notifiche di processo (ad es. per richiamata di creazione del processo). Quando un processo di un'applicazione (ad es. l'applicazione utente 201) entra in modalità sospesa, il driver della modalità kernel 219 richiama il metodo della presente esposizione per monitorare i processi dell'applicazione. Il driver di filtro 220 viene utilizzato per monitorare tutti i processi attivi che sono in esecuzione in modalità sospesa e per controllare se la ripresa del processo è consentita o meno, ad esempio, in base al fatto che un processo dannoso sia inserito o meno durante l'intervallo di tempo in cui il processo era in esecuzione in modalità sospesa. Ad esempio, l'applicazione utente 201 può essere un'applicazione sottoposta a hollowing (ovvero un'applicazione in cui è inserito un malware). Quando il processo dell'applicazione utente viene modificato aggiungendo un altro processo o sostituendo un processo, l'applicazione impattata può essere denominata „applicazione sottoposta a hollowing“. L'applicazione sottoposta a hollowing può perciò includere ransomware, un malware generico ecc. Il metodo della presente esposizione identifica applicazioni sottoposte a hollowing con l'ausilio di funzionalità dei driver della modalità kernel del dispositivo endpoint utente.
[0032] Per impedire che processi dannosi vengano inseriti in processi sospesi, il metodo della presente esposizione permette ai processi sospesi di passare alla modalità di esecuzione solo dopo aver determinato se il processo è rimasto affidabile o meno durante l'intervallo di tempo in cui il processo era in modalità sospesa. Pertanto, in un esempio, il metodo della presente esposizione impedisce l'inserimento di un processo dannoso tramite il driver di filtro 220 della modalità kernel. Il driver di filtro 220 monitora i processi attivi che sono in esecuzione in modalità sospesa (ad es. il processo sospeso 202). Per ogni processo attivo monitorato, il driver di filtro 220 inserisce una libreria di collegamento dinamico (DLL) nel processo attivo (ad es. il processo sospeso 202) per associare una API dell'applicazione 201 corrispondente al processo attivo. La DLL viene inserita per tenere traccia dei comandi per la sospensione e la ripresa del processo sospeso 202. Il driver di filtro 220 monitora gli input e gli output dei file dell'applicazione 201 mentre il processo attivo rimane in modalità sospesa per rilevare anomalie (ad es. modifiche avvenute nell'applicazione 201). In risposta al rilevamento, tramite l'inserimento della DLL, di un comando per la ripresa del processo sospeso 202, il driver di filtro 220 analizza gli input e gli output di file monitorati e determina se un processo dannoso è stato inserito in un processo sospetto 202 mentre è rimasto sospeso. Il driver di filtro 220 abilita l'esecuzione del comando e pertanto abilita la ripresa del processo in risposta alla determinazione del fatto che nessun processo dannoso è stato inserito nel processo sospeso 202.
[0033] La Fig. 3 è un diagramma di flusso che illustra un metodo esemplificativo 300 di un sistema per impedire inserimenti di processi dannosi.
[0034] Nella fase 310, il metodo 300, tramite un driver di filtro della modalità kernel, determina quando un processo di un'applicazione inizia a funzionare in modalità sospesa. Ad esempio, il sistema operativo determina che l'applicazione 201 ha atteso un input per almeno un periodo di tempo di soglia (ad es. 5 secondi). Il sistema operativo riassegna RAM ponendo i processi associati all'applicazione 201 in modalità sospesa (ad es. processo sospeso 202). Il driver di filtro 220 rileva la riassegnazione di memoria e determina che il processo attivo è ora in esecuzione in modalità sospesa. Nella fase 315, il metodo 300, tramite il driver di filtro della modalità kernel, monitora i processi attivi in esecuzione in modalità sospesa. Ogni processo in modalità sospesa viene monitorato indipendentemente dagli altri processi.
[0035] Nella fase 320, per ogni processo monitorato, il driver di filtro 220 della modalità kernel, inserisce una libreria di collegamento dinamico (DLL) nel processo per associare l'API dell'applicazione corrispondente. Ad esempio, il driver di filtro 220 può eseguire un inserimento della DLL nel processo sospeso 202 per tenere traccia dei comandi di sospensione e ripresa del processo 202. Pertanto, il comportamento del flusso di chiamate API viene modificato in modo che le informazioni relative alle chiamate API possano essere catturate.
[0036] Nella fase 325, per ogni processo monitorato, il driver di filtro 220 monitora gli input e gli output di file dell'applicazione 201 per identificare anomalie. Ad esempio, il driver di filtro 220 può monitorare le interazioni dell'applicazione 201 per determinare quando sono presenti operazioni I/O nella memoria. Ad esempio, il monitoraggio può identificare input e output per la modifica dello spazio degli indirizzi del processo sospeso 202. Mentre il processo sospeso 202 rimane sospeso, non dovrebbero verificarsi modifiche all'applicazione 201. Le operazioni I/O associate all'applicazione 201 sono probabili segni di manomissione. Pertanto, in un esempio, il monitoraggio degli input e degli output di file include almeno la determinazione del momento in cui un'operazione di scrittura viene eseguita nella memoria 222. Più nello specifico, l'operazione di scrittura cambierà un attributo dell'applicazione 201. Ad esempio, un file in una directory associata all'applicazione 201 può essere cancellato o modificato. In un altro esempio, un nuovo file può essere scritto nella directory associata all'applicazione 201.
[0037] In un esempio, il monitoraggio degli input e degli output di file include almeno la determinazione del momento in cui uno spazio degli indirizzi di un file dell'applicazione 201 viene alterato. Ad esempio, il malware può inserire un codice che sostituisce porzioni del processo o modifica lo spazio degli indirizzi del processo.
[0038] Nella fase 330, per ogni processo monitorato, il metodo 300 determina se viene ricevuto o meno un comando per la ripresa del processo. Ad esempio, il driver di filtro della modalità kernel può determinare, per ogni processo in esecuzione in modalità sospesa, quando viene ricevuto un comando per la ripresa dell'esecuzione. Quando viene ricevuto un comando per la ripresa del processo, il metodo procede alla fase 335. Diversamente, il metodo procede alla fase 315. In un esempio, il comando per la ripresa del processo comprende una funzione kernel (ad es. NtResumeProcess()), che viene utilizzata come comando interno nel sistema operativo.
[0039] Nella fase 335, tramite il driver di filtro della modalità kernel, il metodo 300 analizza gli input e gli output dei file monitorati e determina se un processo dannoso è inserito o meno nel processo. Quando non viene inserito nessun processo dannoso, il metodo procede alla fase 340. Diversamente, il metodo procede alla fase 350.
[0040] Nella fase 340, il metodo 300 consente al processo sospeso di riprendere l'esecuzione. In altri termini, il processo esce dalla modalità sospesa ed entra nella modalità di esecuzione o nello stato di esecuzione. In altre parole, il processo è consentito solo quando non è inserito nessun processo dannoso nel processo. Il metodo procede pertanto alla fase 315. Nella fase 350, il metodo 300 blocca il processo impedendone la ripresa. Il metodo procede pertanto alla fase 315.
[0041] In un esempio, il driver di filtro 220 può bloccare la ripresa del processo quando si è verificata una scrittura nella memoria tra la sospensione del processo e la ricezione del comando per la ripresa del processo. In un altro esempio, il driver di filtro 220 può bloccare la ripresa del processo quando uno spazio degli indirizzi di un file viene sostituito tra la sospensione del processo e la ricezione del comando per la ripresa del processo.
[0042] Supponiamo che l'applicazione 201 sia configurata per identificare testo all'interno di un'immagine di input e per emettere un file di testo con le parole nel testo identificato. Il processo associato all'applicazione 201 può entrare in modalità sospesa se non viene fornita un'immagine di input per un periodo di tempo di soglia. Mentre il processo rimane in modalità sospesa, un'entità dannosa può tentare di inserire un codice nell'applicazione 201 che invia il file di testo di output al dispositivo endpoint 109, introducendo pertanto un problema di privacy. Se l'entità dannosa ha successo (ad es. uno script dell'applicazione 201, che gestisce la posizione in cui il file di testo di output viene inviato, viene modificato come descritto in precedenza), quando il processo rientra in uno stato di esecuzione, la successiva immagine fornita farà in modo che il testo di uscita venga inviato al dispositivo endpoint 109. Il driver di filtro 220 rileva la modifica del file associato all'applicazione 201 mentre il processo sospeso 202 è in modalità sospesa e blocca il processo sospeso impedendone la ripresa (ad es. l'ingresso in uno stato di esecuzione).
[0043] In alcuni esempi, il driver di filtro 220 può generare ulteriormente un avviso sul dispositivo endpoint utente 101 indicante che un processo potenzialmente dannoso è stato inserito nel processo sospeso 202. L'avviso può richiedere la conferma da un utente amministrativo del dispositivo endpoint utente 101 per confermare se il processo potenzialmente dannoso è effettivamente dannoso. In riferimento all'esempio fornito in precedenza, l'avviso può indicare che è stata apportata una modifica all'applicazione 201 ed è stato introdotto un processo che invia il file di testo di output a un indirizzo IP non identificato (ad es. un indirizzo IP del dispositivo endpoint 109).
[0044] In un esempio, il driver di filtro 220 può inoltre registrare modifiche apportate alla memoria o allo spazio degli indirizzi associati all'applicazione 201 in un archivio speciale (ad es. in un servizio isolato nella rete 140). Quando il comando per la ripresa del processo viene rilevato, il driver di filtro 220 può trasferire le modifiche registrate a un analizzatore. Ad esempio, l'analizzatore può essere un'applicazione thick client che esegue la funzionalità descritta del driver di filtro 220. Il driver di filtro 220 sul dispositivo endpoint utente 101 può essere un'applicazione thin client. Pertanto, il rilevamento locale dei cambiamenti di stato del processo può essere eseguito dall'applicazione thin client e l'analisi delle modifiche per rilevare anomalie può essere eseguita dall'applicazione thick client. Il thin client del driver di filtro 220 può quindi ricevere risultati di un'analisi dall'analizzatore indicanti se le modifiche sono associate o meno a un processo dannoso.
[0045] In un esempio, l'analizzatore viene implementato nello stesso dispositivo endpoint utente. In un altro esempio, l'analizzatore viene implementato su una rete basata su cloud ed è accessibile on demand dal dispositivo endpoint utente. Ad esempio, un provider di servizi di rete può fornire un servizio che raccoglie informazioni su processi sospetti da vari dispositivi endpoint utente, analizzare l'impatto del processo sospetto per valutare un grado di pericolosità e fornire un verdetto al dispositivo endpoint utente. Il dispositivo endpoint utente può in tal caso consentire al processo di uscire dalla modalità sospesa alla conferma che il processo inserito non è dannoso.
[0046] In un esempio, il driver di filtro 220 può aggiornare le regole utilizzate per determinare se è inserito o meno un processo dannoso nel processo in base ai risultati ricevuti dell'analisi. In riferimento all'esempio relativo alla generazione di file di testo, il driver di filtro 220 può avviare una regola di file, una regola di registro e/o una regola di processo che afferma che le modifiche dei file, del registro e/o del processo, rispettivamente, apportate da un'entità con l'indirizzo IP non identificato debbano essere bloccate a prescindere dallo stato del processo. In altre parole, l'indirizzo IP può essere riportato in una blacklist.
[0047] Come descritto in precedenza, la presente esposizione descrive sistemi e metodi che impediscono inserimenti di processi da parte di un software dannoso. Un vantaggio del metodo della presente esposizione è il fatto che il dispositivo endpoint utente è protetto dall'hollowing di processo da parte del malware.
[0048] La Fig. 4 è un diagramma a blocchi che illustra un sistema informatico 20 su cui possono essere implementati sistemi e metodi volti a impedire inserimenti di processi dannosi. Il sistema informatico 20 può essere sotto forma di più dispositivi informatici o sotto forma di un unico dispositivo informatico, ad esempio un computer da tavolo, un notebook, un laptop, un dispositivo informatico mobile, uno smartphone, un tablet, un server, un computer centrale, un dispositivo integrato e altre forme di dispositivi informatici.
[0049] Come mostrato, il sistema informatico 20 comprende un'unità di elaborazione centrale (CPU) 21, una memoria di sistema 22 e un bus di sistema 23 che collega i vari componenti del sistema, inclusa la memoria associata all'unità di elaborazione centrale 21. Il bus di sistema 23 può comprendere una memoria del bus o un controller di memoria del bus, un bus periferico e un bus locale in grado di interagire con qualsiasi altra architettura di bus. Esempi di bus possono includere PCI, ISA, PCI-Express, HyperTransport™, InfiniBand™, Serial ATA, I<2>C e altre interconnessioni adeguate. L'unità di elaborazione centrale 21 (detta anche processore) può comprendere un singolo o una serie di processori con uno o più core. Il processore 21 può eseguire uno o più codici informatici eseguibili che implementano le tecniche della presente esposizione. La memoria di sistema 22 può essere qualunque memoria per la memorizzazione dei dati qui utilizzati e/o programmi informatici eseguibili dal processore 21. La memoria di sistema 22 può includere una memoria volatile come una memoria ad accesso casuale (RAM) 25 e una memoria non volatile come una memoria di sola lettura (ROM) 24, una memoria flash, ecc. o una combinazione di queste. Il sistema di base di input/output (BIOS) 26 può memorizzare le procedure di base per il trasferimento di informazioni tra elementi del sistema informatico 20, come quelle al momento del caricamento del sistema operativo con l'uso della ROM 24.
[0050] Il sistema informatico 20 può comprendere uno o più dispositivi di archiviazione come uno o più dispositivi di archiviazione rimovibili 27, uno o più dispositivi di archiviazione non rimovibili 28, o una combinazione di questi. Uno o più dispositivi di archiviazione rimovibili 27 e dispositivi di archiviazione non rimovibili 28 sono collegati al bus di sistema 23 tramite un'interfaccia di archiviazione 32. In un esempio, i dispositivi di archiviazione e i corrispondenti supporti di archiviazione informatici sono moduli indipendenti dalla potenza per la memorizzazione di istruzioni, strutture di dati, moduli di programma e altri dati del sistema informatico 20. La memoria di sistema 22, i dispositivi di archiviazione rimovibili 27 e i dispositivi di archiviazione non rimovibili 28 possono utilizzare una varietà di supporti di archiviazione informatici. Esempi di supporti di archiviazione informatici includono la memoria a bordo macchina come cache, SRAM, DRAM, RAM a zero condensatori, RAM a doppio transistor, eDRAM, EDO RAM, DDR RAM, EEPROM, NRAM, RRAM, SONOS, PRAM; memoria flash o altre tecnologie di memoria come nelle unità a stato solido (SSD) o unità flash; memorizzazione su cassette magnetiche, nastri magnetici e dischi magnetici come, ad esempio, in unità disco rigido o floppy disk; memorizzazione ottica come, ad esempio, in compact disk (CD-ROM) o dischi digitali versatili (DVD); e qualsiasi altro supporto che può essere utilizzato per memorizzare i dati desiderati e che possa essere accessibile dal sistema informatico 20.
[0051] La memoria di sistema 22, i dispositivi di archiviazione rimovibili 27 e i dispositivi di archiviazione non rimovibili 28 del sistema informatico 20 possono essere utilizzati per memorizzare un sistema operativo 35, applicazioni aggiuntive di programmi 37, altri moduli di programma 38 e dati di programma 39. Il sistema informatico 20 può includere un'interfaccia periferica 46 per la comunicazione dei dati provenienti dai dispositivi di input 40, come tastiera, mouse, stilo, controller di gioco, dispositivo a comandi vocali, dispositivo a comandi tattili o altri dispositivi periferici, come stampante o scanner tramite una o più porte I/O, come una porta seriale, una porta parallela, un bus seriale universale (USB), o un'altra interfaccia periferica. Un dispositivo di visualizzazione 47, come uno o più monitor, proiettori o display integrati, può anche essere collegato al bus di sistema 23 attraverso un'interfaccia di uscita 48, come un adattatore video. Oltre ai dispositivi di visualizzazione 47, il sistema informatico 20 può essere dotato di altri dispositivi periferici di uscita (non mostrati), come altoparlanti e altri dispositivi audiovisivi.
[0052] Il sistema informatico 20 può funzionare in un ambiente di rete utilizzando una connessione di rete a uno o più computer remoti 49. Il computer remoto (o i computer) 49 può essere costituito da postazioni di lavoro locali o server che comprendono la maggior parte o tutti gli elementi menzionati sopra nella descrizione della natura di un sistema informatico 20. Nella rete informatica possono essere presenti anche altri dispositivi, quali, ma non solo, router, stazioni di rete, dispositivi peer o altri nodi di rete. Il sistema informatico 20 può comprendere una o più interfacce di rete 51 o adattatori di rete per comunicare con i computer remoti 49 attraverso una o più reti, quali una rete informatica locale (LAN) 50, una rete informatica ad ampio raggio (WAN), una rete intranet e Internet. Esempi di interfaccia di rete 51 possono includere un'interfaccia Ethernet, un'interfaccia Frame Relay, un'interfaccia SONET e interfacce wireless.
[0053] Realizzazioni della presente invenzione possono essere un sistema, un metodo e/o un prodotto di un programma informatico. Il prodotto del programma informatico può includere un supporto di archiviazione informatico (o supporti) con istruzioni per programmi informatici per far sì che un processore esegua realizzazioni della presente esposizione.
[0054] Il supporto di archiviazione informatico può essere un dispositivo tangibile in grado di conservare e memorizzare il codice del programma sotto forma di istruzioni o strutture di dati accessibili da un processore di un dispositivo informatico, come il sistema informatico 20. Il supporto di archiviazione informatico può essere un dispositivo di archiviazione elettronica, un dispositivo di archiviazione magnetica, un dispositivo di archiviazione ottica, un dispositivo di archiviazione elettromagnetica, un dispositivo di archiviazione a semiconduttori o qualunque combinazione appropriata di questi. A titolo di esempio, tale supporto di archiviazione informatico può comprendere una memoria ad accesso casuale (RAM), una memoria a sola lettura (ROM), una EEPROM, una memoria a sola lettura di un compact disc portatile (CD-ROM), un disco digitale versatile (DVD), una memoria flash, un disco rigido, un dischetto portatile, un memory stick, un floppy disk, o anche un dispositivo codificato meccanicamente come schede perforate o strutture in rilievo in un solco con istruzioni registrate. Come utilizzato nel presente, un supporto di archiviazione informatico non è da intendersi come segnali transitori di per sé, come onde radio o altre onde elettromagnetiche che si propagano liberamente, onde elettromagnetiche che si propagano attraverso una guida d'onda o mezzi di trasmissione, o segnali elettrici trasmessi attraverso un filo.
[0055] Le istruzioni di programmi informatici descritte nel presente documento possono essere scaricate sui rispettivi dispositivi informatici da un supporto di archiviazione informatico o su un computer esterno o un dispositivo di archiviazione esterno attraverso una rete, ad esempio Internet, una rete locale, una rete ad ampio raggio e/o una rete wireless. La rete può comprendere cavi di trasmissione in rame, fibre ottiche di trasmissione, trasmissione senza fili, router, firewall, switch, computer gateway e/o edge server. Un'interfaccia di rete di ogni dispositivo informatico riceve dalla rete istruzioni di programmi informatici e inoltra le istruzioni di programmi informatici per l'archiviazione in un supporto di archiviazione informatico all'interno del rispettivo dispositivo informatico.
[0056] Le istruzioni di programmi informatici per l'esecuzione delle operazioni della presente esposizione possono essere istruzioni di assemblaggio, insiemi di istruzioni (ISA), istruzioni per macchine, istruzioni dipendenti dalla macchina, microcodici, istruzioni firmware, dati di impostazione dello stato, oppure codici sorgente o codici oggetto scritti in qualunque combinazione di uno o più linguaggi di programmazione, compreso un linguaggio di programmazione orientato agli oggetti e linguaggi di programmazione procedurali convenzionali. Le istruzioni di programmi informatici possono essere eseguite interamente sul computer dell'utente, in parte sul computer dell'utente, come pacchetto software indipendente, in parte sul computer dell'utente e in parte su un computer remoto o interamente sul computer o server remoto. In quest'ultimo caso, il computer remoto può essere collegato al computer dell'utente attraverso qualunque tipo di rete, compresa una rete LAN o WAN, oppure la connessione può essere effettuata a un computer esterno (ad esempio, attraverso Internet). In alcuni esempi, i circuiti elettronici che comprendono, ad esempio, circuiti a logica programmabile, gate array programmabili sul campo (FPGA), o array a logica programmabile (PLA) possono eseguire le istruzioni di programmi informatici utilizzando le informazioni di stato delle istruzioni di programmi informatici per personalizzare i circuiti elettronici, al fine di eseguire realizzazioni della presente esposizione.
[0057] In vari esempi, i sistemi e i metodi descritti nella presente esposizione possono essere trattati in termini di moduli. Il termine „modulo“ qui utilizzato si riferisce a un dispositivo, componente o disposizione di componenti reale, implementato tramite un hardware, come ad esempio tramite un circuito integrato specifico di un'applicazione (ASIC) o FPGA, o come una combinazione di hardware e software, come ad esempio tramite un sistema a microprocessore e un insieme di istruzioni per implementare le funzionalità del modulo, che (mentre viene eseguito) trasforma il sistema a microprocessore in un dispositivo speciale. Un modulo può anche essere implementato come una combinazione dei due, con alcune funzioni facilitate solo dall'hardware e altre funzioni facilitate da una combinazione di hardware e software. In alcune implementazioni, almeno una parte e, in alcuni casi tutte, di un modulo può essere eseguita sul processore di un sistema informatico (come quello descritto in dettaglio nella suddetta Fig. 4). Di conseguenza, ogni modulo può essere realizzato in una varietà di configurazioni adatte e non deve essere limitato ad una particolare implementazione qui esemplificata.
[0058] Per motivi di chiarezza, non tutte le caratteristiche di routine delle realizzazioni sono qui riportate. Sarebbe auspicabile che nello sviluppo di qualsiasi implementazione effettiva della presente esposizione venissero prese numerose decisioni specifiche dell'implementazione al fine di raggiungere gli obiettivi specifici dello sviluppatore e questi obiettivi specifici variano a seconda delle diverse implementazioni e dei diversi sviluppatori. Resta inteso che un tale sforzo di sviluppo può essere complesso e richiederebbe molto tempo, ma sarebbe comunque un'impresa facile per coloro che hanno un'ordinaria competenza nell'arte che si avvantaggiano di questa esposizione.
[0059] Inoltre, è da intendersi che la fraseologia o la terminologia qui utilizzata ha lo scopo di descrizione e non di restrizione, cosicché la terminologia o la fraseologia della presente specifica deve essere interpretata da chi è competente nell'arte alla luce degli insegnamenti e degli orientamenti qui presentati, in combinazione con le conoscenze di chi è competente nell'arte o nelle arti pertinenti. Inoltre, a nessun termine della specifica o delle rivendicazioni deve essere attribuito un significato non comune o speciale, a meno che non sia esplicitamente indicato come tale.
[0060] I vari esempi qui illustrati comprendono gli equivalenti noti, presenti e futuri, dei moduli noti cui si fa riferimento a titolo illustrativo. Inoltre, mentre gli esempi e le applicazioni sono stati mostrati e descritti, è evidente a chi è competente nell'arte e che si avvale della presente esposizione che molte più modifiche di quelle sopra menzionate sono possibili senza discostarsi dai concetti dell'invenzione qui esposti.

Claims (14)

1. Un metodo per impedire inserimenti di processi dannosi, il quale metodo comprende: il monitoraggio, tramite un driver di filtro di una modalità kernel di un sistema operativo, dei processi attivi che sono in esecuzione in modalità sospesa; e per ogni processo attivo monitorato, tramite un driver di filtro della modalità kernel: l'inserimento di una libreria di collegamento dinamico (dynamic link library - DLL) nel processo attivo per associare un'interfaccia di programmazione dell'applicazione (application programming interface - API) di un'applicazione corrispondente al processo attivo, in cui la DLL viene inserita per tenere traccia di comandi di sospensione e di ripresa del processo attivo; il monitoraggio degli input e degli output dei file dell'applicazione per rilevare anomalie mentre il processo attivo si trova in modalità sospesa; quando viene rilevato un comando per la ripresa del processo attivo tramite la DLL, la determinazione, in base al monitoraggio, del fatto che un processo dannoso sia inserito o meno nel processo attivo; e l'autorizzazione del processo sospeso a riprendere l'esecuzione in risposta alla determinazione del fatto che nessun processo dannoso è inserito nel processo attivo.
2. Il metodo secondo la rivendicazione 1, in cui il monitoraggio degli input e degli output dei file include almeno la determinazione del momento in cui un'operazione di scrittura viene eseguita nella memoria.
3. Il metodo secondo una delle rivendicazioni da 1 a 2, in cui il monitoraggio degli input e degli output dei file include almeno la determinazione del momento in cui uno spazio degli indirizzi di un file viene alterato.
4. Il metodo secondo una delle rivendicazioni da 1 a 3, comprendente inoltre: la registrazione delle modifiche apportate alla memoria o allo spazio degli indirizzi in un archivio speciale; quando viene rilevato il comando per la ripresa del processo, il trasferimento delle modifiche registrate a un analizzatore; e la ricezione dei risultati di un'analisi dall'analizzatore indicanti se le modifiche sono associate o meno al processo dannoso.
5. Il metodo secondo la rivendicazione 4, comprendente inoltre: l'aggiornamento delle regole utilizzate per determinare se il processo dannoso è inserito o meno nel processo attivo in base ai risultati ricevuti dell'analisi.
6. Il metodo secondo una delle rivendicazioni da 1 a 5, in cui il comando per la ripresa del processo attivo comprende una funzione kernel che viene utilizzata come comando interno nel sistema operativo.
7. Il metodo secondo una delle rivendicazioni da 1 a 6, comprendente inoltre: il bloccaggio della ripresa del processo attivo quando si è verificata una scrittura nella memoria tra la sospensione del processo attivo e la ricezione del comando per la ripresa del processo attivo; oppure il bloccaggio della ripresa del processo attivo quando uno spazio degli indirizzi di un file viene sostituito tra la sospensione del processo e la ricezione del comando per la ripresa del processo attivo.
8. Un sistema di un dispositivo per impedire inserimenti di processi dannosi, che comprende: una memoria; un processore hardware accoppiato in modo comunicativo alla memoria e configurato per eseguire un sistema operativo (OS) azionabile in una modalità utente e una modalità kernel; e un driver di filtro della modalità kernel, eseguito dal processore hardware, configurato per: monitorare processi attivi che sono in esecuzione in modalità sospesa; e per ogni processo attivo monitorato: inserire una libreria di collegamento dinamico (dynamic link library - DLL) nel processo attivo per associare un'interfaccia di programmazione dell'applicazione (application programming interface - API) di un'applicazione corrispondente al processo attivo, in cui la DLL viene inserita per tenere traccia di comandi di sospensione e di ripresa del processo attivo; monitorare gli input e gli output dei file dell'applicazione per rilevare anomalie mentre il processo attivo si trova in modalità sospesa; quando viene rilevato un comando per la ripresa del processo attivo tramite la DLL, determinare, in base al monitoraggio, il fatto che un processo dannoso sia inserito o meno nel processo attivo; e consentire al processo sospeso di riprendere l'esecuzione in risposta alla determinazione del fatto che nessun processo dannoso è inserito nel processo attivo.
9. Il sistema secondo la rivendicazione 8, in cui il monitoraggio degli input e degli output dei file include almeno la determinazione del momento in cui un'operazione di scrittura viene eseguita nella memoria.
10. Il sistema secondo una delle rivendicazioni da 8 a 9, in cui il monitoraggio degli input e degli output dei file include almeno la determinazione del momento in cui uno spazio degli indirizzi di un file viene alterato.
11. Il sistema secondo una delle rivendicazioni da 8 a 10, in cui il driver di filtro è inoltre configurato per: registrare le modifiche apportate alla memoria o allo spazio degli indirizzi in un archivio speciale; quando viene rilevato il comando per la ripresa del processo attivo, trasferire le modifiche registrate a un analizzatore; e ricevere i risultati di un'analisi dall'analizzatore indicanti se le modifiche sono associate o meno al processo dannoso.
12. Il sistema secondo la rivendicazione 11, in cui il driver di filtro è inoltre configurato per: aggiornare le regole utilizzate per determinare se il processo dannoso è inserito o meno nel processo attivo in base ai risultati ricevuti dell'analisi.
13. Il sistema secondo una delle rivendicazioni da 8 a 12, in cui il comando per la ripresa del processo attivo comprende una funzione kernel che viene utilizzata come comando interno nel sistema operativo.
14. Il sistema secondo una delle rivendicazioni da 8 a 13, in cui il driver di filtro è inoltre configurato per: bloccare la ripresa del processo attivo quando si è verificata una scrittura nella memoria tra la sospensione del processo attivo e la ricezione del comando per la ripresa del processo attivo; oppure bloccare la ripresa del processo attivo quando uno spazio degli indirizzi di un file viene sostituito tra la sospensione del processo attivo e la ricezione del comando per la ripresa del processo attivo.
CH70712/21A 2020-12-30 2021-12-14 Sistemi e metodi per impedire inserimenti di processi dannosi nei software. CH718171A2 (it)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202063132043P 2020-12-30 2020-12-30
US17/542,556 US11874920B2 (en) 2020-12-30 2021-12-06 Systems and methods for preventing injections of malicious processes in software

Publications (1)

Publication Number Publication Date
CH718171A2 true CH718171A2 (it) 2022-06-30

Family

ID=78844594

Family Applications (1)

Application Number Title Priority Date Filing Date
CH70712/21A CH718171A2 (it) 2020-12-30 2021-12-14 Sistemi e metodi per impedire inserimenti di processi dannosi nei software.

Country Status (4)

Country Link
US (1) US11874920B2 (it)
EP (1) EP4024248B1 (it)
JP (1) JP7353346B2 (it)
CH (1) CH718171A2 (it)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230013844A1 (en) * 2021-07-09 2023-01-19 New Millennium Technologies Llc System and method for securing keyboard input to a computing device

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006101549A2 (en) * 2004-12-03 2006-09-28 Whitecell Software, Inc. Secure system for allowing the execution of authorized computer program code
US7647636B2 (en) * 2005-08-24 2010-01-12 Microsoft Corporation Generic RootKit detector
US8769268B2 (en) * 2007-07-20 2014-07-01 Check Point Software Technologies, Inc. System and methods providing secure workspace sessions
US8560295B1 (en) * 2011-02-15 2013-10-15 Xilinx, Inc. Suspension of procedures in simulation of an HDL specification
US9298910B2 (en) * 2011-06-08 2016-03-29 Mcafee, Inc. System and method for virtual partition monitoring
CN103632088A (zh) * 2012-08-28 2014-03-12 阿里巴巴集团控股有限公司 一种木马检测方法及装置
US9483642B2 (en) * 2012-10-30 2016-11-01 Gabriel Kedma Runtime detection of self-replicating malware
US9767283B2 (en) * 2014-06-27 2017-09-19 Mcafee, Inc. System and method to mitigate malicious calls
CN104715209B (zh) * 2015-04-03 2017-08-01 山东华软金盾软件股份有限公司 一种外发文档加密保护方法
US10083296B2 (en) * 2015-06-27 2018-09-25 Mcafee, Llc Detection of malicious thread suspension
WO2017100364A1 (en) * 2015-12-07 2017-06-15 Prismo Systems Inc. Systems and methods for detecting and responding to security threats using application execution and connection lineage tracing
US10169586B2 (en) * 2016-12-31 2019-01-01 Fortinet, Inc. Ransomware detection and damage mitigation
KR101781780B1 (ko) * 2017-03-03 2017-10-23 국방과학연구소 다중 서버, 다중 브라우저 기반의 고속 악성 웹 사이트 탐지 시스템 및 방법
US10546120B2 (en) * 2017-09-25 2020-01-28 AO Kaspersky Lab System and method of forming a log in a virtual machine for conducting an antivirus scan of a file
US11494491B2 (en) * 2018-03-16 2022-11-08 Acronis International Gmbh Systems and methods for protecting against malware code injections in trusted processes by a multi-target injector

Also Published As

Publication number Publication date
US11874920B2 (en) 2024-01-16
JP2022104878A (ja) 2022-07-12
EP4024248C0 (en) 2023-07-19
EP4024248A1 (en) 2022-07-06
US20220207139A1 (en) 2022-06-30
JP7353346B2 (ja) 2023-09-29
EP4024248B1 (en) 2023-07-19

Similar Documents

Publication Publication Date Title
US10176329B2 (en) Systems and methods for detecting unknown vulnerabilities in computing processes
US10019581B2 (en) Identifying stored security vulnerabilities in computer software applications
JP5777810B2 (ja) セキュアホスト実行アーキテクチャ
US10528723B2 (en) Systems and methods for generating policies for an application using a virtualized environment
US20160323307A1 (en) Systems and methods for evaluating content provided to users via user interfaces
US11762987B2 (en) Systems and methods for hardening security systems using data randomization
US20190215333A1 (en) Persistent cross-site scripting vulnerability detection
CN110659478A (zh) 在隔离的环境中检测阻止分析的恶意文件的方法
CH718171A2 (it) Sistemi e metodi per impedire inserimenti di processi dannosi nei software.
JP7404223B2 (ja) 不正なメモリダンプ改変を防ぐシステムおよび方法
CH716699A2 (it) Sistemi e metodi per contrastare la rimozione di informazioni di scienza digitale forense da parte di software dannosi.
US20220382855A1 (en) System and method for building a security monitor
EP4095726A1 (en) System and method for building a security monitor in a microkernel
US20180089439A1 (en) Detection of ipc-based mobile vulnerabilities due to insufficient caller permissions
US20240028713A1 (en) Trust-based workspace instantiation
US11968220B2 (en) Systems and methods for performing failover during a cyberattack
Lidén Martinsson Cyber security in IoT communication development
CH719295A2 (it) Sistemi e metodi per proteggere i dati durante la sincronizzazione.
EP3588346A1 (en) Method of detecting malicious files resisting analysis in an isolated environment
Xing et al. VirtAPCA: An Active and Passive Coexistence Attack Model on Xen
Antukh BLACKBERRY Z10 RESEARCH PRIMER