Research Article

Migliorare il rilevamento del malware Android tramite Swarm Intelligence e tecniche di autoencoder applicate all'analisi delle chiamate API

DOI:

10.3791/69398

December 30th, 2025

In This Article

Summary

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

È proposto un framework ibrido per il rilevamento malware per Android, che sfrutta rappresentazioni di caratteristiche apprese e classificatori tradizionali per migliorare la precisione del rilevamento, ridurre l'ingegneria manuale delle funzionalità e contrastare efficacemente le minacce malware in evoluzione.

Abstract

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

L'Intelligence di Sicurezza del Malware consiste nell'analisi delle applicazioni e dei loro metadati per identificare potenziali minacce alla sicurezza. Le chiamate API (Application Programming Interface) rappresentano una preziosa fonte di informazioni per rilevare malware. Ridurre lo spazio delle funzionalità nell'analisi del malware migliora l'efficienza nell'identificazione delle minacce. Questa ricerca mira a identificare le funzionalità più significative delle chiamate API per migliorare la precisione del rilevamento del malware Android. Tre tecniche di ottimizzazione basate sull'intelligenza degli sciami - Ottimizzazione Firefly, Ottimizzazione della Ricerca Cuckoo e Ottimizzazione delle Colonie di Forniche - sono impiegate insieme agli Auto-Encoder per estrarre le caratteristiche più significative. Per valutare questi metodi basati su wrapper ispirati alla natura, vengono utilizzati classificatori di apprendimento automatico popolari, tra cui K-Nearest Neighbor (KNN), Random Forest (RF), Support Vector Machine (SVM), Decision Tree (DT) e Linear Regression (LR). Inoltre, un classificatore neurale artificiale ibrido ha dimostrato di migliorare le prestazioni della categorizzazione dei malware. L'efficacia del metodo suggerito è dimostrata dai risultati sperimentali, che mostrano un'accuratezza del 98,87% utilizzando solo 7 delle 100 funzionalità delle chiamate API.

Introduction

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Il sistema operativo mobile più popolare è Android, basato su Linux e conuna quota di mercato globale del 72,55%. A differenza di altri sistemi operativi soggetti a leggi e diritti d'autore rigorosi, Android è una piattaforma open-source che accoglie contributi da sviluppatori di tutto il mondo. Ma a causa della sua ampia base di utenti, gli attacchi virali lo colpiscono frequentemente. Malware è il termine per software malevolo inteso a compromettere il funzionamento dei sistemi informatici o a sfruttare informazioni private. Il metodo più comune di infiltrazione malware nell'ecosistema Android è tramite il download delle applicazioni. Sebbene le applicazioni ottenute da fonti affidabili siano generalmente sicure, quelle scaricate da piattaforme non verificate o malevole possono contenere software dannoso. I criminali informatici spesso sfruttano vulnerabilità di sicurezza nei dispositivi, distribuendo malware per comprometternel'integrità 2.

Con il continuo aumento del numero di utenti, aumenta anche il volume di dati preziosi accessibili agli attaccanti informatici. Un attaccante può sfruttare questo diffondendo un'applicazione dannosa sui marketplace ufficiali di applicazioni mobili. Una volta che un utente ignaro installa l'app, concede involontariamente all'attaccante l'accesso al proprio dispositivo. Data la crescente diffusione di tali minacce, tecniche avanzate di rilevamento malware sono essenziali per contrastare il vasto numero di applicazionidannose 3,4,5. Sono state sviluppate diverse tecnologie esistenti per prevedere il malware Android 6,7. Tuttavia, questi approcci si basano principalmente sul rilevamento basato su firme, che consiste nell'identificare tracce digitali incorporate nel codice applicativo. Estratte dall'Android Package Kit (APK) del software, queste firme vengono confrontate con un database di pattern ostili noti. Sebbene questo approccio abbia successo nel rilevare malware già segnalato, non è in grado di riconoscere nuove minacce che non sono ancora state aggiunte al database. 8

Man mano che il malware continua a svilupparsi e con la crescente diffusione del malware, è fondamentale sviluppare una soluzione in grado di rilevare con precisione vari tipi di malware, ottimizzando al contempo tempo e risorse computazionali. Per migliorare il rilevamento del malware sugli smartphone Android, è stato fatto molto lavoro. Le tecniche convenzionali di rilevamento basate su firma abbinano la firma di un file APK con firme malevole identificate e memorizzate in un database. Ma questo metodo non funziona per malware che non è ancora stato individuato, il che sottolinea la necessità di sistemi di rilevamento piùsofisticati 10, 11, 12.

L'ipotesi che questo articolo mira a testare è: Identificare chiamate API sospette per migliorare l'accuratezza della classificazione di applicazioni Android benigne e malevole. Sviluppo e implementazione di un modello di classificazione ibrido che integra Auto-Encoder con Reti Neurali Artificiali. Formulare una funzione obiettivo per l'ottimizzazione dell'intelligenza degli sciami, che migliora il processo di apprendimento introducendo penalità per facilitare la scoperta di soluzioni quasi ottimali. Esaminare diverse metriche di performance e selezionare il metodo ottimale per la previsione del malware Android.

Lavori correlati

Un notevole aumento della diversità e del volume di malware è stato il risultato dell'uso diffuso della piattaforma Android, che ha spinto i ricercatori a creare tecniche efficienti di rilevamento e prevenzione 13,14,15. Attraverso ricerche statistiche, Deckard e Rasoolzadegan16 hanno affrontato il problema dei dataset sbilanciati nel rilevamento del malware su Android. Per pre-elaborare e bilanciare i dati, hanno utilizzato la Synthetic Minority Oversampling Technique (SMOTE), sottocampionamento e tecniche di classificazione. Utilizzando classificatori KNN, SVM e Iterative Dichotomiser 3 (ID3), il loro modello di rilevamento ha raggiunto una maggiore accuratezza del 98,69% quando l'approccio SMOTE è stato abbinato al classificatoreKNN 16.

L'uso della frequenza di termini-frequenza inversa del documento (TF-IDF) per l'identificazione del malware Android è stato indagato da Priya eVisalakshi 17 in un altro studio. Hanno creato un correttore di permessi per valutare e valutare i permessi, che sono stati successivamente classificati utilizzando reti neurali artificiali. Questo metodo ha superato i sistemi esistenti con una precisione del 94,22%. Inoltre, per migliorare le prestazioni di classificazione malware di Android, basata sulla regressione lineare, è stato ideato un metodo di selezione delle caratteristiche da Yildiz et al.18. Il loro metodo riduceva il tempo di addestramento e produceva un aumento della precisione del 96,1%. Per aumentare la precisione e l'efficienza nel rilevamento del malware su Android, questa ricerca evidenzia collettivamente l'importanza di affrontare problemi come la selezione delle funzionalità e i dataset sbilanciati.

La selezione di funzionalità ricorsiva (RFS) e un classificatore di ensemble sono stati utilizzati in un modello presentato da Al Sarahh et al.19 per migliorare il rilevamento del malware su Android. In questo metodo, l'algoritmo LightGBM viene utilizzato per classificare le caratteristiche più rilevanti identificate da RFS. I risultati dell'esperimento hanno mostrato che il modello era efficace, con una precisione di classificazione del 99,5%. Per la categorizzazione del malware Android, Ding et al.20 hanno anche suggerito un'architettura di deep learning che utilizza una Convolutional Neural Network (CNN). Nel loro processo, i file bytecode vengono estratti dagli APK Android e convertiti in matrici bytecode bidimensionali. Queste matrici vengono utilizzate per addestrare il modello CNN che, negli esperimenti, ha raggiunto un tasso di accuratezza del 95,1%. Questa ricerca evidenzia come i modelli di deep learning e le tecniche di selezione delle funzionalità possano essere combinati con classificatori di ensemble per aumentare la precisione dei sistemi di rilevamento malware Android.

Utilizzando tecniche di deep learning, Elayan e Mustafa21 hanno superato le carenze dei metodi convenzionali di rilevamento malware nei sistemi Android aggiornati. Hanno superato le tecniche tradizionali utilizzando una Gated Recurrent Unit (GRU) per distinguere tra app malevole e benigne, raggiungendo una precisione del 98,2%. Il Processo di Gerarchia Analitica (AHP) è stato inoltre integrato in una tecnica fuzzy basata sul rischio per la rilevazione di virus mobili, proposta da Arif et al.22. Oltre a identificare il malware, il loro sistema valuta i livelli di rischio e li divide in quattro gruppi: estremamente bassi, bassi, medi e alti. Con questa tecnica accurata, la precisione complessiva era del 90,54%. L'efficacia di sofisticati metodi di machine learning, come i framework fuzzy AHP e i modelli di deep learning basati su GRU, nel migliorare la precisione e la resilienza dei sistemi di rilevamento malware Android è dimostrata da questi studi.

Per superare gli svantaggi degli approcci basati su firme, Mercaldo e Santone23 utilizzarono tecniche di elaborazione del segnale audio per estrarre informazioni numeriche dagli eseguibili applicativi trasformandoli in file audio. Il loro metodo, che utilizzava un classificatore di reti neurali, ha prodotto una precisione di rilevamento del 95,2%. Per superare le difficoltà associate alla laboriosa ingegneria delle caratteristiche, Zhang et al.24 hanno presentato TC-Droid, un framework automatico che utilizza tecniche di classificazione del testo. Con un tasso di accuratezza del 96,6%, questo metodo analizza sequenze di testo provenienti da rapporti di analisi applicativa utilizzando reti neurali convoluzionali.

Con una precisione del 93,4%, Imtiaz et al.25 hanno presentato DeepAMD, una tecnica artificiale basata su reti neurali pensata per la categorizzazione efficace e la rilevazione precoce del malware Android. Firdaus et al.26 hanno creato una tecnica di selezione delle caratteristiche basata sulla ricerca genetica per l'analisi statica nel rilevamento malware su Android. Con un tasso di accuratezza del 95%, gli alberi funzionali hanno superato gli altri classificatori di machine learning nei test. Un metodo di selezione delle caratteristiche chiamato Delta_IDF è stato presentato da Peynirci et al.27. Calcola valori inversi di frequenza di documenti basandosi sulle occorrenze delle stringhe nei file APK. Rispetto ad altri algoritmi, i loro esperimenti hanno prodotto risultati incoraggianti.

Shi et al.28 hanno proposto un quadro ibrido CNN-DNN che dimostrava una forte accuratezza di rilevamento combinando le forze degli strati convoluzionali e densi per l'estrazione e classificazione delle caratteristiche. Analogamente, Shu et al.29 hanno fornito un'indagine completa sui metodi di rilevamento malware basati su Android basati su CNN, evidenziando i loro punti di forza nel catturare dipendenze spaziali all'interno di sequenze API e opcode. Nel contesto dell'Internet delle Cose (IoT), Naeem et al.30 hanno sviluppato un insieme sovrapfigurato di reti convoluzionali profonde per la classificazione dei malware, che ha migliorato la robustezza tra ambienti di minaccia IoT eterogenei. Più recentemente, Shu e Dong31 hanno introdotto LG-PN, un approccio di fusione locale-globale nelle reti prototipiche, per migliorare il rilevamento di malware Android mai visti prima. Sebbene questi metodi abbiano ottenuto un successo notevole, si basano in gran parte su architetture convoluzionali profonde e richiedono risorse computazionali sostanziali. Al contrario, il presente lavoro integra l'intelligenza degli sciami con la selezione delle caratteristiche basata su autoencoder per ridurre la dimensionalità e migliorare l'efficienza, offrendo così un'alternativa complementare e leggera alle soluzioni profonde basate su CNN.

Diversi studi precedenti si sono inoltre concentrati specificamente sul rilevamento malware Android basato su chiamate API, poiché le sequenze API sono forti indicatori comportamentali di attività dannose. Ad esempio, Karbab et al.32 hanno proposto di utilizzare il deep learning su sequenze di chiamate di metodi API per identificare applicazioni malevole, dimostrando che i pattern temporali nell'uso delle API possono distinguere efficacemente il malware dalle app benigne. Analogamente, Muzaffar et al.33 hanno valutato vari modelli di machine learning sulle caratteristiche delle chiamate API e hanno evidenziato l'importanza della selezione e rappresentazione delle caratteristiche nel migliorare le prestazioni di rilevamento. Sebbene questi lavori evidenzino l'utilità delle funzionalità a livello API, la maggior parte si basa su modelli di sequenza profondi o su ingegneria delle caratteristiche artigianale, che può essere costosa dal punto di vista computazionale o meno generalizzabile. Al contrario, questo studio sfrutta algoritmi di intelligenza degli sciami combinati con autoencoder per ridurre automaticamente la dimensionalità delle caratteristiche API e poi impiega un Classificatore Neuronale Artificiale ibrido per migliorare le prestazioni di rilevamento. Questo posiziona il nostro approccio come un'alternativa leggera ma efficace che affronta direttamente le sfide dei dati API ad alta dimensione.

Attraverso l'integrazione delle Reti Neurali Artificiali (ANN), la metodologia suggerita in questo studio mira a migliorare il rilevamento e la categorizzazione del malware Android. Innanzitutto, gli auto-encoder sono utilizzati nelle tecniche di selezione delle caratteristiche basate su wrapper per individuare le caratteristiche più importanti che distinguono le app pericolose da quelle innocue. Per aumentare l'efficacia della classificazione dei malware Android, viene quindi valutato un unico Classificatore Neuronale Artificiale che combina ANNs con classificatori a induzione.

Access restricted. Please log in or start a trial to view this content.

Protocol

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Il metodo di selezione delle funzionalità basato su wrapper, utilizzando auto-encoder, è utilizzato nell'architettura suggerita per il rilevamento malware Android, come mostrato nella Figura 1. Il dataset è suddiviso in sottoinsiemi di addestramento e test 70:30. La classificazione e la selezione delle caratteristiche sono i due principali passaggi nel processo di analisi del malware.

Selezione delle caratteristiche (FS): Questo passaggio consiste nella ricerca iterativa dei migliori sottoinsiemi di caratteristiche (vedi Definizione 1) utilizzando algoritmi basati sull'intelligenza degli sciami, in particolare Cuckoo Search Optimization (CSO), Ant Lion Optimization (ALO) e Firefly Optimization (FO). Dopodiché, gli auto-encoder elaborano le caratteristiche scelte per produrre una rappresentazione compressa dei dati in arrivo. Un approccio di induzione utilizza quindi l'output degli auto-encoder per valutare quanto bene queste caratteristiche differenziano tra app pericolose e innocue. Per consentire una categorizzazione precisa dei casi successivi, l'algoritmo di induzione costruisce un classificatore mappando lo spazio delle caratteristiche a una raccolta di etichette di classe.

Classificazione: Utilizzando il Classificatore Neuronale Artificiale suggerito e i noti metodi di induzione, il set ridotto di funzionalità dalla fase di selezione delle caratteristiche viene valutato in questa fase per vedere quanto efficacemente possa rilevare il malware Android.

Utilizzando approcci sofisticati di classificazione e concentrandosi sulle caratteristiche più informative, questa metodologia mira a migliorare l'accuratezza e l'efficienza del rilevamento malware su Android.

Selezione delle caratteristiche

Un passaggio cruciale nel machine learning è la selezione delle caratteristiche, che consiste nel determinare quali caratteristiche siano più affidabili, pertinenti e non ridondanti per la costruzione del modello. Ridurre i set di funzionalità in modo metodico diventa sempre più cruciale man mano che i dataset continuano a crescere in dimensioni e complessità. L'obiettivo principale della selezione delle funzionalità è massimizzare le prestazioni del modello riducendo al contempo le spese computazionali. Le caratteristiche ripetitive e inutili vengono rimaste, permettendo al processo di concentrarsi sulle variabili più significative per il modello. Invece di dipendere dall'algoritmo di machine learning per identificare caratteristiche significative, i seguenti sono i vantaggi della selezione delle caratteristiche prima dell'addestramento del modello:

Modelli semplificati: Ridurre il numero di variabili di input porta a modelli più semplici, più facili da interpretare e comprendere.

Riduzione della varianza: Concentrandosi sulle caratteristiche essenziali, la selezione delle caratteristiche aiuta a ridurre la varianza del modello, mitigando così l'overfitting e migliorando la generalizzazione ai nuovi dati.

Tempo di allenamento ridotto: Un set di funzionalità più ridotto riduce il carico computazionale, con conseguente addestramento e valutazione del modello più rapidi.

Mitigazione della Maledizione della Dimensionalità: I dati ad alta dimensione possono presentare sfide come maggiore complessità e sovrafitting; La selezione delle caratteristiche affronta questi problemi limitando lo spazio delle feature alle variabili più informative.

Definizione 1 della selezione delle caratteristiche

Pensa a un induttore I e a un dataset D che ha una distribuzione D su uno spazio di istanza etichettato e contiene caratteristiche (x 1,x 2,x 3,... ,x n). Il sottoinsieme di caratteristiche che ottimizza l'accuratezza del classificatore C=I(D) è noto come sottoinsieme ottimale Xopt.

Nella selezione non supervisionata delle caratteristiche, gli approcci basati su wrapper mirano a identificare la combinazione ottimale di funzionalità che migliorano le prestazioni del modello. Aggiungendo o rimuovendo sistematicamente funzionalità, spesso tramite algoritmi avidi, questi metodi valutano vari modelli per selezionare quelle più impattanti per lo sviluppo. Questo processo è raffigurato nella Figura 2.

Per la selezione delle caratteristiche, vengono utilizzati algoritmi di intelligenza di sciame come Firefly Optimization (FO), Cuckoo Search Optimization (CSO) e Ant Lion Optimization (ALO) per superare le tattiche convenzionali e avidi. La funzione obiettivo selezionata nella fase di valutazione della fitness ha un impatto significativo sull'efficacia di questi algoritmi. Sia la quantità di caratteristiche selezionate sia l'errore del modello alla fine di ogni iterazione vengono considerati nella procedura iterativa di selezione delle caratteristiche basata su wrapper, per valutare l'adeguatezza delle caratteristiche selezionate. L'equazione (1) formalizza questa valutazione.

Equazione 3 (1)

La penalità dell'algoritmo di apprendimento per gli errori commessi durante la valutazione della fitness è rappresentata da τ in questa equazione, dove τ ∈ [0,1]. La lunghezza del sottoinsieme delle caratteristiche scelta è indicata dalla variabile l, e il numero totale di caratteristiche è rappresentato dalla variabile u.

Auto-encoder

Le reti neurali specializzate nell'apprendimento di rappresentazioni compresse dei dati di input sono chiamate autoencoder. Un codificatore e un decodificatore sono le due parti principali di essi. Mentre il decodificatore cerca di recuperare l'input originale da questa forma compressa, l'encoder elabora i dati di input e li comprime in una rappresentazione dello spazio latente. L'addestramento dei modelli di machine learning è reso più semplice dalla capacità dell'encoder di estrarre funzionalità preziose dai dati non elaborati una volta addestrato.

L'architettura autoencoder proposta (come mostrato nella Figura 3) presenta un encoder composto da uno strato di input con N nodi, seguito da due livelli nascosti contenenti rispettivamente N*2 e N nodi. Esiste un secondo strato nascosto con N/2 nodi chiamato spazio latente. Con due strati nascosti di nodi [N, N*2], il decodificatore replica questa struttura, terminando con uno strato di output di N nodi.

Ogni livello nascosto è seguito da una normalizzazione batch per accelerare e stabilizzare il processo di addestramento, e tutti i livelli utilizzano la funzione di attivazione LeakyReLU per gestire eventuali problemi di gradiente di nullità. L'equazione (2) fornisce una definizione matematica della funzione di attivazione di LeakyReLU:

Equazione 4 (2)

Dove hθ(x), si ottiene usando l'equazione (3)

Equazione 6(3)

Qui, xi=(x1,x 2,...,xn) rappresenta i valori di ingresso per i nodi, mentre wi=(w1,w 2,...,wn) indica i pesi associati a questi nodi. Durante il processo di apprendimento, i pesi vengono regolati dopo essere stati inizialmente assegnati casualmente all'interno dell'intervallo [0,1]. Per evitare che i parametri passino attraverso l'origine, viene aggiunto un termine di bias a ogni strato. L'equazione (4) definisce la soglia, e se l'output ottenuto dall'equazione (3) la supera, viene attivato un nodo.

Equazione 9 (4)

Ottimizzazione della selezione delle caratteristiche basata su involucro di leone formica (ALWFSO)

Modellando il comportamento predatorio naturale del formicaio, l'Ottimizzatore del Leone Formica (ALO) è stato presentato per la prima volta da Seyed AliMirjalili 34. Questo algoritmo di ottimizzazione identifica efficacemente le soluzioni ottimali indipendentemente dai valori iniziali dei parametri. ALO mostra una convergenza rapida e gestisce efficacemente sia i vincoli interi che quelli discreti. Cattura di prede, creazione di trappole, intrappolamento delle formiche, movimento casuale delle formiche e riparazione delle trappole sono i passaggi che compongono il processo di caccia in ALO.

Nel contesto dell'algoritmo Ant Lion Optimizer (ALO), le formiche rappresentano soluzioni candidate che effettuano ricerche casuali nello spazio delle soluzioni, mentre i formicioni corrispondono alle trappole o alle guide che influenzano i movimenti delle formiche in base ai valori di fitness. Questa doppia popolazione modella il comportamento predatorio naturale dei formicali che catturano le formiche. All'inizio, le popolazioni sia di formiche che di formicioni vengono inizializzate casualmente. I formiche vengono selezionati per ogni formica utilizzando il meccanismo di selezione della ruota della roulette, seguito da un processo di camminata casuale (come mostrato nell'Algoritmo-1). L'equazione (5) descrive quindi come questa camminata viene normalizzata.

Equazione 10 (5)

All'inizio, le popolazioni di formiche e formiche si formano casualmente. Per ogni formica viene scelto un formicaio usando un meccanismo della roulette, permettendo una camminata casuale che viene normalizzata tramite formule predeterminate. Questo processo garantisce che i movimenti delle formiche siano influenzati dalla posizione dei formicali, simulando efficacemente il naturale processo di caccia. La posizione di ciascuna formica viene poi aggiornata in base a questa interazione, guidando la ricerca verso soluzioni ottimali.

Grazie alla sua architettura, l'algoritmo ALO può attraversare efficacemente spazi di ricerca complessi, rendendolo uno strumento potente per risolvere una varietà di problemi di ottimizzazione. L'idoneità di ogni formica viene valutata al termine di ogni ripetizione. Come mostrato nell'Algoritmo-1, il formico viene sostituito con la formica se questa è più adatta rispetto alla sua controparte. In questo caso Equazione 11, indica la posizione della formica iesima all'iterazione t; I è un rapporto; Equazione 13 indica la posizione delj-esimo formico all'iterazione t; Equazione 15 è l'élite per la camminata casuale all'iterazione t, scelta dalla ruota della roulette; e Equazione 16 è la camminata casuale del formico all'iterazione t, che è anch'essa determinata dalla ruota della roulette. Dopo ogni ciclo, la soluzione globalmente ottimale, confermata dal classificatore integrato degli involucri, viene restituita.

Algoritmo 1: ALWFSO
Definisci la funzione obiettivo: f(x):x=(x1,x 2,...,xd)
Inizializzazione casuale della colonia di formiche e formicioni
Calcolo della fitness delle formiche e delle formiche
Scegli i formicli migliori e presumi che siano élite.
Ripeti finché la Condizione di Terminazione non è soddisfatta o f(x):x=(x1,x 2,...,xd)
Per ogni selezione formica-formica: Usa un meccanismo di selezione della ruota della roulette per scegliere probabilisticamente un formicaio che influenzerà il movimento della formica
X(t) = [0,cum_sum(2r(t 1) - 1),cum_sum(2r(t 2) - 1),...,cum_sum(2r(t n)-1)]
Equazione 21
Equazione 22
Fine dell'anello delle formiche
Valutazione della fitness: Ricalcola i valori di fitness di tutte le formiche in base alle loro nuove posizioni.
Sostituisci i formicioni con formiche se le formiche dimostrano una migliore forma fisica
Se un formicaio diventa più adatto, allora
Equazione 23
Fine mentre

Ottimizzazione della selezione delle caratteristiche basata su wrapper di ricerca cuckoo (CSWFSO)

Ispirati dal comportamento parassitario della covata di alcune specie di cuculi, che depositano le uova nei nidi di altri uccelli ospiti, Xin-She Yang e Susah Deb35 hanno creato l'algoritmo Cuckoo Search nel 2009. In questa procedura, ogni cuculo depone un uovo in un nido che viene selezionato a caso. Le generazioni future erediteranno nidi con le uova migliori. La probabilità che un uccello ospite veda un uovo alieno è 0, e ci sono solo un certo numero di nidi ospiti disponibili.

Algoritmo 2: CSWFSO

Definisci la funzione obiettivo: f(x):x = (x1,x 2,...,xd)
Generano casualmente una popolazione iniziale di n nidi ospiti, ciascuno corrispondente a una soluzione candidata xi (i=1,2,3,...,n)
Ripeti finché la condizione di arresto non è soddisfatta o (tPer un cuculo a selezione casuale i, si produce una nuova soluzione candidata usando il volo di Lévy
Equazione 27
Calcolare la fitness della nuova soluzione generata Fi [Per massimizzare, Fi α f(xi)]
Seleziona casualmente un nido ospite j dalla popolazione n
se (Fi >F j) allora j viene sostituito con una nuova soluzione
fine se
Abbandonare una parte delle reti peggiori per una frazione (p a)
I nuovi nidi vengono costruiti in frazione abbandonata (pa) utilizzando Equazione 34
Metti da parte le migliori soluzioni o i nidi.
Classificandoli, scegli il miglior nido o soluzione disponibile in questo momento.
La generazione successiva eredita la soluzione migliore disponibile oggi.
Fine mentre

All'inizio, tutti i nidi vengono inizializzati casualmente. Con il progredire delle iterazioni, ogni cuculo modifica la propria posizione nello spazio delle soluzioni tramite voli di Lévy, come illustrato nell'Algoritmo 2. La dimensione del passo viene regolata di ∝ e un'operazione sigmoid converte i valori continui generati dall'Ottimizzazione della Ricerca Cuckoo (CSO) in un formato binario, come illustrato nelle Equazioni (6) e (7).

Equazione 35 (6)

Equazione 36(7)

Come mostrato nell'Algoritmo 2, dove Equazione 37 e Equazione 38 sono nidi scelti casualmente e δ ∈ [0,1], alla fine di ogni iterazione alcuni nidi vengono abbandonati e aggiornati con nuove soluzioni candidate.

Ispirato dal parassitismo della covata dell'uccello cuculo, l'algoritmo di Ottimizzazione della Ricerca del Cuculo (CSO) si è dimostrato uno strumento utile per compiti di selezione delle caratteristiche35. La tecnica inizia inizializzando una popolazione di nidi, ognuno dei quali rappresenta una possibile soluzione nel contesto della selezione delle caratteristiche CSO basate su wrapper. Viene utilizzata una funzione obiettivo preimpostata per valutare la fitness di questi nidi. Utilizzando valutazioni di fitness, l'algoritmo determina la soluzione ottimale — chiamata global best — a ogni iterazione. Per esplorare meglio lo spazio della soluzione, una parte del nido, rappresentata da piselli, viene eliminata e sostituita con di nuove in conformità con il protocollo CSO. Il classificatore wrapper incorporato conferma che l'algoritmo fornisce la risposta globalmente ottimale dopo che tutte le iterazioni sono terminate.

Ottimizzazione della selezione delle caratteristiche basata su wrapper Firefly (FWFSO)

Algoritmo 3: FWFSO
Definisci la funzione Obiettivo: f(x):x = (x1,x 2,...,xd)
Generare uno sciame iniziale di n lucciole, ciascuno rappresentando una soluzione xi (i = 1,2,3,...,n)
Determinare l'intensità luminosa I di ogni lucciola in base al valore della funzione obiettivo
Definire il coefficiente di assorbimento della luce γ
Ripeti finché la condizione di arresto non è soddisfatta o (t < MaxGeneration)
per ogni lucciola i (∀ i=1,2,3,... ,n)
per ogni lucciola j (∀ j=1,2,3,... ,i)
Ottieni intensità luminose di Ii eI j
sei i <j allora
Equazione 48
     Equazione 49
altrimenti
Sposta casualmente la lucciola i per esplorare lo spazio di ricerca
fine se
L'attrattività diminuisce con la distanza come Equazione 51
Valuta la soluzione aggiornata e regola di conseguenza l'intensità della lucciola
fine per
fine per
Classifica le lucciole in base alle loro intensità luminose e identifica quella con la luminosità più alta come la soluzione migliore attualmente

L'algoritmo di ottimizzazione delle luciole, introdotto da George Lindfield e JohnPenny 36, emula il comportamento naturale delle lucciole per attirare altre. In questo algoritmo, l'attrattiva di una lucciola è direttamente proporzionale alla sua luminosità, mentre la distanza tra due lucciole è inversamente proporzionale alla loro attrattività. Se non ci sono lucciole più luminose nelle vicinanze, una luciola si muoverà casualmente.

Due lucciole sono attratte l'una dall'altra in base alla loro luminosità; una lucciola meno brillante si avvicinerà a una più brillante. Il movimento casuale viene usato quando non c'è una lucciola più luminosa. Conβ 0 che indica bellezza, la distanza r=0 tra due lucciole viene utilizzata per calcolarne l'attrattiva. La separazione rjk tra le lucciole j e k si calcola come segue: Equazione 55 qui, rji e rki osservano le componenti spaziali dellai-esima dimensione per le lucciole jth e kth, rispettivamente, e n rappresenta il numero di dimensioni. Il movimento di una lucciola verso un'altra è governato dal grado di attrazione tra loro: Equazione 60. In questa equazione, rj la posizione attuale di Firefly j, γ è la luce Ranard che è un numero casuale compreso tra 0 e 1, α è il tasso di mutazione e il coefficiente di assorbimento. Se non ci sono più lucciole brillanti, la lucciola si muoverà a caso secondo αα. Dopo ogni iterazione, il classificatore wrapper incorporato valida la soluzione globale minima, che viene poi restituita.

Classificatore

Sia i dataset strutturati che quelli non strutturati possono essere classificati suddividendoli in gruppi o classi discreti. L'obiettivo è utilizzare gli attributi dei nuovi dati per prevedere la loro classe o etichetta. Questa procedura determina la categoria a cui appartengono i dati freschi approssimando una funzione di mappatura dalle variabili di input alle variabili di output discrete.

Foreste Casuali, Alberi Decisionali, K-Vicini Più Stretti, Regressione Logistica e Macchine a Vettori di Supporto sono tra gli algoritmi di induzione o classificazione utilizzati per valutare la soluzione suggerita per il rilevamento malwareAndroid 37. Inoltre, questo lavoro presenta l'Artificial Neuronal Classifier, un rivoluzionario classificatore ibrido che combina algoritmi di induzione convenzionali con Reti Neurali Artificiali.

Classificatore neuronale artificiale

Il progetto suggerito per il classificatore neuronale artificiale (ANC) combina un classificatore a induzione e Reti Neurali Artificiali (ANN), come si vede nella Figura 4. Secondo questa architettura, l'ANN viene insegnata a identificare schemi e correlazioni tra le caratteristiche di input. Il classificatore a induzione utilizza le informazioni apprese dall'ANN per migliorare la precisione nell'identificare software malevolo da software sicuro.

Dopo test approfonditi, l'ANN all'interno dell'ANC fu configurato con tre strati nascosti completamente connessi, ciascuno con M nodi, seguiti da uno strato di input con N nodi. Esiste un livello di uscita che viene collegato al classificatore a induzione dopo un ulteriore livello nascosto completamente connesso con M/2 nodi. L'equazione (8) determina il numero di nodi negli strati nascosti:

Equazione 62 (8)

dove M indica il numero di nodi in uno strato nascosto, N rappresenta il numero di caratteristiche di input, e α è un parametro che varia da 2 a 10. La funzione di attivazione (come mostrato nell'Equazione (9)) svolge un ruolo cruciale nel determinare se un neurone viene attivato, a seconda che l'uscita superi una soglia specificata.

Equazione 64 (9)

Qui, hθ(x) viene calcolato secondo l'Equazione (3). L'ANC utilizza l'ottimizzatore Adam per regolare i pesi della rete e i tassi di apprendimento. In Adam, i tassi di decadimento per la stima Equazione 65 del primo momento e quella del secondo momento Equazione 66 per ogni peso ωij sono indicati rispettivamente da β1 e β2. Sia N il tasso di apprendimento. Le regole di aggiornamento per Adam sono mostrate nelle Equazioni (10) e (11):

Equazione 70 (10)

Equazione 71 (11)

Le stime corrette per bias del primo e secondo momento, Equazione 72 e Equazione 73, sono calcolate usando le Equazioni (12) e (13):

Equazione 74 (12)

Equazione 75 (13)

Questi calcoli garantiscono che l'ottimizzatore mantenga tassi di apprendimento adeguati per ogni peso, facilitando un addestramento efficiente ed efficace dell'ANC.

La regola di aggiornamento del peso per ogni connessione nella rete neurale è definita dall'Equazione (14):

Equazione 76 (14)

Dopo l'aggiornamento dei pesi della rete neurale, le prestazioni vengono valutate utilizzando una funzione di perdita che misura la discrepanza tra i risultati previsti e quelli effettivi. In questo modello, l'Errore Assoluto Medio (MAE), come definito nell'Equazione (15), viene utilizzato a questo scopo:

Equazione 77 (15)

In questo contesto, yi rappresenta l'output effettivo, Equazione 79 indica l'output previsto e n è il numero totale di istanze in output. Dopo che la rete neurale è stata addestrata in un certo numero di epoche, le rappresentazioni apprese dallo spazio delle caratteristiche vengono trasferite al classificatore di induzione per distinguere tra malware e software benigno.

Il proposto Artificial Neuronal Classifier (ANC) funziona come un framework ibrido che combina le capacità di apprendimento delle caratteristiche di una Rete Neurale Artificiale (ANN) con i punti di forza decisionali dei tradizionali classificatori a induzione, come Random Forest e Decision Tree. In questo design, l'ANN elabora prima le caratteristiche selezionate ottenute dall'autoencoder per apprendere pattern complessi e correlazioni tra attributi di input. Le rappresentazioni risultanti apprese vengono poi passate al classificatore di induzione, che esegue la classificazione finale delle applicazioni Android come benigne o malevole. In questo modo, l'ANC agisce come un involucro, migliorando i classificatori convenzionali con profondi incorporamenti di caratteristiche preservandone l'interpretabilità. Questo meccanismo ibrido consente all'ANC di sfruttare sia l'astrazione delle caratteristiche di alto livello dall'ANN sia decisioni robuste da classificatori di machine learning consolidati, con conseguente maggiore accuratezza e generalizzazione nel rilevamento.

Configurazione sperimentale

Un sistema operativo Windows 10 a 64 bit, con processore i5 - 2,30 GHz, 8 GB di RAM e un hard disk da 2 TB, fu utilizzato nell'impianto sperimentale. Python 3.7 fu utilizzato come linguaggio di programmazione, e la piattaforma Jupyter fu impostata per abilitare i pacchetti di machine learning e deep learning.

L'IEEE Dataport forniva i dati delle sequenze di chiamate API dell'esperimento, che includevano 43.876 sequenze - 42.797 delle quali classificate come malware e 1.079 come goodware. Virus Total veniva utilizzato per la verifica, mentre l'ambiente Cuckoo Sandbox veniva usato per la raccolta dei dati. La Tabella 1 fornisce una spiegazione completa delle sequenze di chiamate API.

Access restricted. Please log in or start a trial to view this content.

Results

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Diversi indicatori di prestazione, come Errore Quadratico Medio (MSE), Errore Quadratico Medio Radice (RMSE), Precisione, Richiamo, Punteggio F1 e Accuratezza, sono utilizzati nel sistema di rilevamento malware proposto per Android per valutare l'accuratezza della classificazione. Di seguito è riportata una definizione di queste misure.

Equazione 80

Access restricted. Please log in or start a trial to view this content.

Discussion

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Le minacce malware Android sono in aumento, con gli avversari che impiegano tecniche di evasione sempre più sofisticate. I sistemi e le applicazioni mobili basati su Android svolgono un ruolo cruciale nelle città intelligenti e negli ambienti industriali. Garantire la sicurezza di questi sistemi, in particolare in ambiti così critici, richiede meccanismi robusti di rilevamento malware. Recentemente, la ricerca sul rilevamento del malware basata sul machine learning ha attirato notevole a...

Access restricted. Please log in or start a trial to view this content.

Disclosures

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Nessun conflitto di interesse o influenza esterna ha influenzato i risultati di questo lavoro. Tutti i metodi, risultati e interpretazioni presentati sono originali e imparziali

Acknowledgements

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Vorrei esprimere la mia sincera gratitudine alla mia guida e alla KLU, che hanno sostenuto questo lavoro. La loro guida, il feedback e l'incoraggiamento sono stati preziosi durante tutto lo sviluppo di questo progetto.

Access restricted. Please log in or start a trial to view this content.

Materials

List of materials used in this article
NameCompanyCatalog NumberComments
Anaconda NavigatorAnaconda, Inc.Navigator-2023
Google ColabGoogle LLCN/A
Jupyter NotebookProgetto JupyterN/A
PythonPython Software Foundation>=3,9
PyTorchRicerca su Facebook AI>=2.0
Scikit-learnGuidati dalla comunità>=1.0
TensorFlowGoogle Brain>=2,8
Sistema operativo WindowsMicrosoft Corporation11

References

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,
  1. Stat Counter. Mobile operating systems' market share worldwide. , https://gs.statcounter.com/os-market-share/mobile/worldwide (2025).
  2. Daj, A. C., Mateescu, A., Endre-Laszlo, A., Baciu, A., Flondor, E. Malicious-google-play-apps-bypassed-android-security. , https://www.bitdefender.com/en-us/blog/labs/malicious-google-play-apps-bypassed-android-security (2025).
  3. Han, Q., Subrahmanian, V. S., Xiong, Y. Android Malware Detection via (Somewhat). IEEE Trans Inf Forensics Secur. 15, 3511-3525 (2020).
  4. De Lorenzo, A., Martinelli, F., Medvet, E., Mercaldo, F., Santone, A. Visualizing the outcome of dynamic analysis of Android malware with VizMal. J Info Security Appl. 50, 102423(2020).
  5. Xu, J., Li, Y., Deng, R., Xu, K. SDAC: A Slow-Aging Solution for Android Malware Detection Using Semantic Distance Based API Clustering. IEEE Trans Dependable Secure Comput. , 1-15 (2020).
  6. Mahindru, A., Sangal, A. L. A feature selection technique to detect malware from Android using Machine Learning Techniques. Multimed Tools Appl. 80 (9), 13271-13323 (2021).
  7. Hasan, H., Ladani, B. T., Zamani, B. MEGDroid: A model-driven event generation framework for dynamic android malware. Info Soft Tech. 135, 106569(2021).
  8. Premkumar, G., Santhosh, C. Automated Android Malware Detection Using Artificial Intelligence and Machine Learning. Int J Res Publicat Rev. 5 (4), 1950-1954 (2024).
  9. Liu, X., Du, X., Lei, Q., Liu, K. Multifamily Classification of Android Malware With a Fuzzy Strategy to Resist Polymorphic Familial Variants. IEEE Access. 8, 156900-156914 (2020).
  10. Detection of Malware under Android Mobile Application. Hani, S. I., Sahib, N. M. 3rdInt Conf Eng Tech Appl, , 179-184 (2020).
  11. Jiang, J., et al. Android Malware Family Classification Based on Sensitive Opcode. IEEE Symp Comp Comm (ISCC). , 1-7 (2019).
  12. Xiong, P., Wang, X., Niu, W., Zhu, T., Li, G. Android malware detection with contrasting permission patterns. China Comm. 11 (8), 1-14 (2014).
  13. Daoudi, N., Allix, K., Bissyandé, T. F., Klein, J. Lessons Learnt on Reproducibility in Machine Learning Based Android Malware Detection. Emp Soft Eng. 26, 74(2021).
  14. Qaisar, Z. H., Li, R. Multimodal information fusion for android malware detection using lazy learning. Multimed Tools Appl. 81, 12077-12091 (2021).
  15. Rathore, H., Sahay, S. K., Nikam, P., Sewak, M. Robust android malware detection system against adversarial attacks using q-learning. Info Sys Front. 23, 867-882 (2021).
  16. Dehkordy, D. T., Rasoolzadegan, A. A new machine learning-based method for android malware detection on imbalanced dataset. Multimed Tools Appl. 80, 24533-24554 (2021).
  17. Dharmalingam, V. P., Palanisamy, V. A novel permission ranking system for android malware detection-the permission grader. J Ambient Intell Humanized Comput. 12, 5071-5081 (2021).
  18. Yildiz, O., Doğru, I. A. Permission-based Android malware detection system using feature selection based on genetic algorithm. Int J Soft Eng Knowledge Eng. 29 (2), 245-262 (2019).
  19. Sarah, N. A., Rifat, F. Y., Hossain Md, S., Narman, H. S. An Efficient Android Malware Prediction Using Ensemble machine learning algorithm. Procedia Comp Sci. 191, 184-191 (2021).
  20. Ding, Y., Zhang, X., Hu, J., Xu, W. Android malware detection method based on bytecode Image. J Ambient Intell Humanized Comp. 14, 6401-6410 (2020).
  21. Elayan, O. N., Mustafa, A. M. Android Malware Detection Using Deep Learning. Procedia Comp Sci. 184, 847-852 (2021).
  22. Arif, J. M., et al. Android mobile malware detection using fuzzy AHP. J Info Secur Appl. 61, 102929(2021).
  23. Mercaldo, F., Santone, A. Audio signal processing for Android malware detection and family identification. J Comp Virol Hacking Techs. 17, 139-152 (2021).
  24. Zhang, N., Tan, Y., Yang, C., Li, Y. Deep learning feature exploration for Android malware detection. Appl Soft Comp. 102, 1568-4946 (2021).
  25. Imtiaz, S. I., et al. DeepAMD: Detection and identification of Android malware using high-efficient Deep Artificial Neural Network. Future Generat Comp Syst. 115, 844-856 (2021).
  26. Firdaus, A., Anuar, N. B., Karim, A., Razak, M. F. A. Discovering optimal features using static analysis and a genetic search-based method for Android malware detection. Front Info Technol Elect Eng. 19, 712-736 (2018).
  27. Peynirci, G., Eminağaoğlu, M., Karabulut, K. Feature Selection for Malware Detection on the Android Platform Based on Differences of IDF Values. J Comp Sci Technol. 35 (4), 946-962 (2020).
  28. Dong, S., Shu, L., Nie, S. Android malware detection method based on CNN and DNN bybrid mechanism. IEEE Transact Ind Info. 20 (5), 7744-7753 (2024).
  29. Shu, L., Dong, S., Su, H., Huang, J. Android malware detection methods based on convolutional neural network: A survey. IEEE Trans Emerging Top Comp Intell. 7 (5), 1330-1350 (2023).
  30. Naeem, H., Cheng, X., Ullah, F., Jabbar, S., Dong, S. A deep convolutional neural network stacked ensemble for malware threat classification in internet of things. J Circuits Sys Comp. 31 (17), 2250302(2022).
  31. Shu, L., Dong, S. Enhanced unknown Android Malware Detection using LG-PN: A local-global fusion approach in prototypical networks. J Info Security Appl. 91, 104062(2025).
  32. Karbab, E. B., Debbabi, M., Derhab, A., Mouheb, D. Android Malware Detection using Deep Learning on API Method Sequences. arXiv. , (2017).
  33. Android Malware Detection Using API Calls: A Comparison of Feature Selection and Machine Learning Models. Muzaffar, A., Ragab Hassan, H., Lones, M. A., Zantout, H. Proc Int Conf Appl Cyber Security (ACS), , 3-12 (2021).
  34. Mirjalili, S. The Ant Lion Optimizer. Adv Eng Sof. 83, 80-98 (2015).
  35. Yang, X. Y., Deb, S. Cuckoo Search via Lévy flights. arXiv. , (2009).
  36. Yang, X. S. Nature-Inspired Optimization Algorithms. , Academic Press. (2017).
  37. Gerard, A. Detecting malicious content from extracted API call sequence by applying deep learning and machine learning algorithm. , National College of Ireland. Ireland. (2020).

Access restricted. Please log in or start a trial to view this content.

Reprints and Permissions

Request permission to reuse the text or figures of this JoVE article

Request Permission

Tags

Android Malware DetectionSwarm IntelligenceAPI Call AnalysisAutoencoder TechniquesFeature SelectionFirefly OptimizationCuckoo Search OptimizationAnt Colony OptimizationMachine Learning ClassifiersNeural Network Classifier

Related Articles