$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
O método de seleção de características baseado em wrappers, usando auto-encoders, é usado na arquitetura sugerida para detecção de malware Android, conforme mostrado na Figura 1. O conjunto de dados é dividido em subconjuntos 70:30 de treinamento e teste. Classificação e seleção de características são as duas principais etapas no processo de análise de malware.
Seleção de recursos (FS): Esta etapa consiste em buscar iterativamente os melhores subconjuntos de características (veja Definição 1) usando algoritmos baseados em inteligência de enxame, notadamente Otimização de Busca Cuckoo (CSO), Otimização de Leão Formiga (ALO) e Otimização Firefly (FO). Depois disso, os auto-codificadores processam as características escolhidas para produzir uma representação comprimida dos dados recebidos. Uma abordagem de indução então usa a saída dos auto-codificadores para avaliar o quão bem esses recursos diferenciam entre apps perigosos e benignos. Para permitir a categorização precisa dos casos subsequentes, o algoritmo de indução constrói um classificador mapeando o espaço de características para uma coleção de rótulos de classe.
Classificação: Utilizando o Classificador Neuronal Artificial sugerido e métodos de indução bem conhecidos, o conjunto reduzido de recursos da fase de seleção de características é avaliado nesta fase para ver quão eficazmente ele pode detectar malware Android.
Ao utilizar abordagens sofisticadas de classificação e focar nas características mais informativas, essa metodologia busca melhorar a precisão e a eficiência da detecção de malware no Android.
Seleção de recursos
Uma etapa crucial no aprendizado de máquina é a seleção de características, que envolve determinar quais características são mais confiáveis, pertinentes e não redundantes para a construção de modelos. Reduzir conjuntos de recursos de forma metódica torna-se mais crucial à medida que os conjuntos de dados continuam a crescer em tamanho e complexidade. O principal objetivo da seleção de recursos é maximizar o desempenho do modelo enquanto reduz os custos computacionais. Recursos repetitivos e desnecessários são removidos, permitindo que o processo se concentre nas variáveis mais significativas para o modelo. Em vez de depender do algoritmo de aprendizado de máquina para identificar características significativas, os seguintes são os benefícios da seleção de características antes do treinamento do modelo:
Modelos simplificados: Reduzir o número de variáveis de entrada leva a modelos mais diretos, mais fáceis de interpretar e compreender.
Redução da variância: Ao focar em características essenciais, a seleção de características ajuda a diminuir a variância do modelo, mitigando assim o sobreajuste e aprimorando a generalização para novos dados.
Redução do tempo de treinamento: Um conjunto de recursos menor reduz a carga computacional, resultando em treinamento e avaliação de modelos mais rápidos.
Mitigação da Maldição da Dimensionalidade: Dados de alta dimensão podem apresentar desafios como aumento da complexidade e superajuste; a seleção de características resolve essas questões limitando o espaço de características às variáveis mais informativas.
Definição 1 de seleção de características
Pense em um indutor I e um conjunto de dados D que tem uma distribuição D sobre um espaço de instância rotulado e contém características (x 1,x 2,x 3,... ,x n). O subconjunto de características que otimiza a precisão do classificador C=I(D) é conhecido como subconjunto ótimo de características Xopt.
Na seleção de características não supervisionada, abordagens baseadas em wrappers visam identificar a combinação ótima de características que melhoram o desempenho do modelo. Ao adicionar ou remover sistematicamente funcionalidades, muitas vezes por meio de algoritmos gulosos, esses métodos avaliam vários modelos para selecionar as características mais impactantes para o desenvolvimento do modelo. Esse processo é representado na Figura 2.
Para seleção de características, algoritmos de inteligência de enxame como Otimização Firefly (FO), Otimização de Busca de Cuco (CSO) e Otimização de Leão Formiga (ALO) são usados para superar táticas gananciosas convencionais. A função objetivo selecionada na etapa de avaliação da aptidão tem um impacto significativo na eficácia desses algoritmos. Tanto a quantidade de características escolhidas quanto o erro do modelo ao final de cada iteração são levados em conta no procedimento iterativo de seleção de características baseado em wrappers para avaliar a adequação das características selecionadas. A equação (1) formaliza essa avaliação.
(1)
A penalidade do algoritmo de aprendizado para erros cometidos durante a avaliação de aptidão é representada por τ nessa equação, onde τ ∈ [0,1]. O comprimento do subconjunto de características escolhido é denotado pela variável l, e o número total de características é representado pela variável u.
Codificadores automáticos
Redes neurais especializadas em aprender representações comprimidas de dados de entrada são chamadas de autoencoders. Um codificador e um decodificador são as duas partes principais deles. Enquanto o decodificador tenta recuperar a entrada original dessa forma comprimida, o codificador processa os dados de entrada e os comprime em uma representação no espaço latente. O treinamento de modelos de aprendizado de máquina é facilitado pela capacidade do codificador de extrair recursos valiosos de dados não processados após o treinamento.
A arquitetura proposta de autoencoder (conforme mostrado na Figura 3) apresenta um codificador composto por uma camada de entrada com N nós, seguida por duas camadas ocultas contendo N*2 e N nós, respectivamente. Existe uma segunda camada oculta com N/2 nós chamada espaço latente. Com duas camadas ocultas de [N, N*2] nós, o decodificador replica essa estrutura, terminando com uma camada de saída de N nós.
Cada camada oculta é seguida por normalização em lote para acelerar e estabilizar o processo de treinamento, e todas as camadas utilizam a função de ativação LeakyReLU para lidar com possíveis problemas de gradiente nulo. A equação (2) fornece uma definição matemática da função de ativação do LeakyReLU:
(2)
Onde hθ(x), é obtido usando a Equação (3)
(3)
Aqui, xi=(x1,x 2,...,xn) representa os valores de entrada para os nós, enquanto wi=(w1,w 2,...,wn) denota os pesos associados a esses nós. Durante o processo de aprendizado, os pesos são ajustados após serem inicialmente alocados aleatoriamente dentro da faixa [0,1]. Para evitar que os parâmetros passem pela origem, um termo de viés é adicionado em cada camada. A Equação (4) define o limiar, e se a saída obtida da Equação (3) o ultrapassar, um nó é acionado.
(4)
Otimização de seleção de características baseada em envolvimento de leão formiga (ALWFSO)
Modelando o comportamento predatório natural do formigueiro, o Otimizador de Leão Formiga (ALO) foi apresentado pela primeira vez por Seyed AliMirjalili 34. Esse algoritmo de otimização identifica eficientemente soluções ótimas, independentemente dos valores iniciais dos parâmetros. ALO apresenta convergência rápida e gerencia efetivamente tanto restrições inteiras quanto discretas. Captura de presas, criação de armadilhas, aprisionamento de formigas, movimento aleatório de formigas e reparo de armadilhas são as etapas que compõem o processo de caça em ALO.
No contexto do algoritmo Ant Lion Optimizer (ALO), formigas representam soluções candidatas realizando buscas aleatórias no espaço de soluções, enquanto formigas correspondem às armadilhas ou guias que influenciam os movimentos das formigas com base nos valores de aptidão física. Essa população dupla modela o comportamento predatório natural das formigas que capturam formigas. No início, as populações tanto de formigas quanto de antlions são inicializadas aleatoriamente. Formigas são selecionadas para cada formiga usando o mecanismo de seleção da roleta, seguido por um processo de caminhada aleatória (como mostrado no Algoritmo-1). A equação (5) então descreve como essa caminhada é normalizada.
(5)
No início, populações de formigas e formigas são criadas aleatoriamente. Um formiga é escolhido para cada formiga usando um mecanismo de roleta, permitindo uma caminhada aleatória que é normalizada usando fórmulas predeterminadas. Esse processo garante que os movimentos das formigas sejam influenciados pelas posições dos formigueiros, simulando efetivamente o processo natural de caça. A posição de cada formiga é então atualizada com base nessa interação, guiando a busca para soluções ótimas.
Devido à sua arquitetura, o algoritmo ALO pode percorrer efetivamente espaços de busca complexos, tornando-se uma ferramenta poderosa para resolver uma variedade de problemas de otimização. A aptidão de cada formiga é avaliada ao final de cada repetição. Como mostrado no Algoritmo-1, o formigão é substituído pela formiga se ela for mais adequada que sua contraparte. Neste caso
, indica a localização da formiga iésima na iteração t; I é uma proporção;
indica a localizaçãodo formigão j na iteração t;
é a elite para a caminhada aleatória na iteração t, que é escolhida pela roleta; e
é a caminhada aleatória do formiga no Iteração T, que também é determinada pela roleta. Após cada ciclo, a solução globalmente ótima, confirmada pelo classificador integrado de wrappers, é devolvida.
Algoritmo 1: ALWFSO
Defina função objetivo: f(x):x=(x1,x 2,...,xd)
Inicialização aleatória da colônia de formigas e formiguadas
Cálculo de Aptidão das Formigas e dos Formigueiros
Escolha os melhores formigueiros e assuma que eles são de elite.
Repita até que a condição de término seja cumprida ou f(x):x=(x1,x 2,...,x d)
Para cada seleção formiga-formiga: Use um mecanismo de Seleção da Roda da Roleta para escolher probabilisticamente um formigão que influenciará o movimento da formiga
X(t) = [0,cum_sum(2r(t 1) - 1),cum_sum(2r(t 2) - 1),...,cum_sum(2r(t n)-1)]


Fim do laço da formiga
Avaliação de Aptidão Física: Recalcule os valores de aptidão de todas as formigas com base em suas novas posições.
Substitua formigas por formigas se as formigas demonstrarem aptidão superior
Se um formigueiro se torna mais apto, então

Fim enquanto
Otimização de seleção de características baseada em wrappers de busca cuco (CSWFSO)
Inspirados pelo comportamento parasitista da ninhada de algumas espécies de cucos, que depositam seus ovos nos ninhos de outras aves hospedeiras, Xin-She Yang e SusahDeb 35 criaram o algoritmo Cuckoo Search em 2009. Nesse procedimento, todo cuco põe um ovo em um ninho que é selecionado aleatoriamente. As gerações futuras herdarão ninhos com os melhores ovos. A probabilidade de uma ave hospedeira avistar um ovo alienígena é zero, e há apenas um certo número de ninhos de hospedeiros acessíveis.
Algoritmo 2: CSWFSO
Defina função objetivo: f(x):x = (x1,x 2,...,xd)
Gerar aleatoriamente uma população inicial de n ninhos de hospedeiros, cada um correspondendo a uma solução candidata xi (i=1,2,3,...,n)
Repita até que a condição de parada seja satisfeita ou (tPara um cuco i selecionado aleatoriamente, produza uma nova solução candidata usando voo de Lévy

Calcule a aptidão da solução recém-gerada Fi [Para maximizar, Fi α f(xi)]
Selecione aleatoriamente um ninho de hospedeiro j da população n
se (Fi >F j) então j é substituído por uma nova solução
fim se
Abandone parte das redes piores por fração (p a)
Novos ninhos são construídos em fração abandonada (pa) usando 
Reserve as melhores soluções ou ninhos.
Ao classificá-los, escolha o melhor ninho ou solução disponível no momento.
A geração seguinte herda a melhor solução disponível atualmente.
Fim enquanto
No início, todos os ninhos são inicializados aleatoriamente. À medida que as iterações avançam, cada cuco modifica sua posição dentro do espaço de soluções por meio de voos de Lévy, conforme descrito no Algoritmo 2. O tamanho do passo é ajustado por ∝, e uma operação sigmoide converte os valores contínuos gerados pela Otimização de Busca Cuckoo (CSO) em um formato binário, conforme mostrado nas Equações (6) e (7).
(6)
(7)
Como mostrado no Algoritmo 2, onde
e
são ninhos escolhidos aleatoriamente e δ ∈ [0,1], ao final de cada iteração, alguns ninhos são abandonados e atualizados com novas soluções candidatas.
Inspirado pelo parasitismo da cria do pássaro cuco, o algoritmo de Otimização de Busca para Cuco (CSO) provou ser uma ferramenta útil para tarefas de seleção de características35. A técnica começa inicializando uma população de ninhos, cada um dos quais representa uma possível solução no contexto da seleção de características CSO baseada em wrappers. Uma função objetivo pré-definida é usada para avaliar a aptidão desses ninhos. Usando avaliações de aptidão física, o algoritmo determina a solução ótima — chamada de melhor global — a cada iteração. Para explorar melhor o espaço de solução, uma parte do ninho, representada por ervilha, é retirada e substituída por novas de acordo com o protocolo CSO. O classificador de wrapper embutido confirma que o algoritmo fornece a resposta globalmente ótima após todas as iterações serem concluídas.
Otimização de seleção de características baseada em wrapper Firefly (FWFSO)
Algoritmo 3: FWFSO
Defina a função objetivo: f(x):x = (x1,x 2,...,xd)
Gerar um enxame inicial de n vaga-lumes, cada um representando uma solução xi (i = 1,2,3,...,n)
Determine a intensidade luminosa I de cada vaga-lume com base no valor da função objetivo
Defina o coeficiente de absorção de luz γ
Repita até que a condição de parada seja cumprida ou (t < MaxGeneration)
Para cada vagalume i (∀ i=1,2,3,... ,n)
para cada vaga-lume j (∀ j=1,2,3,... ,i)
Obtenha intensidades de luz de Ii eI j
seeu < j então


senão
Mova aleatoriamente o vaga-lume i para explorar o espaço de busca
fim se
A atratividade diminui com a distância à medida que 
Avalie a solução atualizada e ajuste a intensidade do vaga-lume de acordo
fim para
fim para
Classifique os vagalumes com base em suas intensidades de luz e identifique aquele com maior brilho como a melhor solução atual
O algoritmo de Otimização de Vaga-lumes, introduzido por George Lindfield e JohnPenny 36, emula o comportamento natural dos vaga-lumes para atrair outros. Neste algoritmo, a atratividade de um vaga-lume é diretamente proporcional ao seu brilho, enquanto a distância entre dois vaga-lumes é inversamente proporcional à sua atratividade. Se não houver vaga-lumes mais brilhantes por perto, um vaga-lume se move aleatoriamente.
Dois vaga-lumes são atraídos um pelo outro com base em seu brilho; Um vaga-lume menos brilhante vai se aproximar de um mais brilhante. Movimento aleatório é usado quando não há vaga-lume mais brilhante. Com β0 denotando beleza, a distância r=0 entre dois vaga-lumes é usada para calcular sua atratividade. A separação rjk entre vaga-lumes j e k é calculada da seguinte forma:
Aqui, rji e rki observam os componentes espaciais dai-ésima dimensão para vaga-lumes jth e kth, respectivamente, e n representa o número de dimensões. O movimento de um vaga-lume em direção a outro é governado pelo grau de atração entre eles:
. Nesta equação, rj é a posição atual do vagalume j, γ é a luz Ranard é um número aleatório entre 0 e 1, α é a taxa de mutação e o coeficiente de absorção. Se não houver mais vaga-lumes brilhantes, o vaga-lume se moverá aleatoriamente de acordo com αα. Após cada iteração, o classificador de wrapper embutido valida a solução mínima global, que é então retornada.
Classificador
Tanto conjuntos de dados estruturados quanto não estruturados podem ser classificados dividindo-os em grupos ou classes discretos. O objetivo é usar os atributos dos novos pontos de dados para prever sua classe ou etiqueta. Esse procedimento determina a categoria à qual os dados frescos pertencem aproximando uma função de mapeamento das variáveis de entrada para as variáveis discretas de saída.
Florestas Aleatórias, Árvores de Decisão, K-Vizinhos Mais Próximos, Regressão Logística e Máquinas Vetoriais de Suporte estão entre os algoritmos de indução ou classificação usados para avaliar a solução sugerida de detecção de malwarepara Android 37. Além disso, este trabalho apresenta o Artificial Neuronal Classifier, um classificador híbrido revolucionário que combina algoritmos convencionais de indução com Redes Neurais Artificiais.
Classificador neuronal artificial
O design sugerido de Classificador Neuronal Artificial (ANC) combina um classificador de indução e Redes Neurais Artificiais (ANN), como visto na Figura 4. De acordo com essa arquitetura, o RNA é ensinado a identificar padrões e correlações entre as características de entrada. O classificador de indução utiliza as informações que a RNA aprendeu para melhorar a precisão na identificação de softwares maliciosos de softwares seguros.
Após testes extensivos, o ANN dentro do ANC foi configurado com três camadas ocultas totalmente conectadas, cada uma com M nós, seguindo uma camada de entrada com N nós. Há uma camada de saída que é conectada ao classificador de indução após uma camada oculta totalmente conectada com M/2 nós. A equação (8) determina o número de nós nas camadas ocultas:
(8)
onde M denota o número de nós em uma camada oculta, N representa o número de características de entrada, e α é um parâmetro que varia entre 2 e 10. A função de ativação (conforme mostrado na Equação (9)) desempenha um papel crucial na determinação de se um neurônio é ativado, dependendo de a saída ultrapassar um limiar especificado.
(9)
Aqui, hθ(x) é calculado conforme a Equação (3). O ANC utiliza o otimizador Adam para ajustar pesos de rede e taxas de aprendizado. Em Adam, as taxas de decaimento para a estimativa
do primeiro momento e da estimativa do segundo momento
para cada peso ωij são denotadas por β1 e β2, respectivamente. Seja N a taxa de aprendizado. As regras de atualização para Adão são mostradas nas Equações (10) e (11):
(10)
(11)
As estimativas corrigidas pelo viés do primeiro e segundo momento,
e
, são calculadas como usando as Equações (12) e (13):
(12)
(13)
Esses cálculos garantem que o otimizador mantenha taxas de aprendizado adequadas para cada peso, facilitando o treinamento eficiente e eficaz do ANC.
A regra de atualização de peso para cada conexão na rede neural é definida pela Equação (14):
(14)
Após atualizar os pesos da rede neural, o desempenho é avaliado usando uma função de perda que mede a discrepância entre as saídas previstas e reais. Neste modelo, o Erro Absoluto Médio (MAE), conforme definido na Equação (15), é empregado para esse propósito:
(15)
Nesse contexto, yi representa a saída real,
denota a saída prevista, e n é o número total de instâncias de saída. Após a rede neural ser treinada ao longo de um número definido de épocas, as representações aprendidas do espaço de características são transferidas para o classificador de indução para distinguir entre malware e software benigno.
O proposto Classificador Neuronal Artificial (ANC) funciona como uma estrutura híbrida que combina as capacidades de aprendizado de características de uma Rede Neural Artificial (RNA) com as forças de tomada de decisão dos classificadores de indução tradicionais, como Random Forest e Decision Tree. Neste projeto, o RNA primeiro processa as características selecionadas obtidas do autocodificador para aprender padrões complexos e correlações entre atributos de entrada. As representações resultantes aprendidas são então encaminhadas para o classificador de indução, que realiza a classificação final dos aplicativos Android como benignos ou maliciosos. Dessa forma, o ANC atua como um wrapper, aprimorando classificadores convencionais com embeddings profundos de características, preservando sua interpretabilidade. Esse mecanismo híbrido permite que o ANC aproveite tanto a abstração de características de alto nível do ANN quanto a tomada de decisão robusta de classificadores de aprendizado de máquina estabelecidos, resultando em maior precisão e generalização na detecção.
Configuração experimental
Um sistema operacional Windows 10 de 64 bits, com processador i5 - 2,30 GHz, 8 GB de RAM e um disco rígido de 2 TB, foi usado na configuração experimental. Python 3.7 foi usado como linguagem de programação, e a plataforma Jupyter foi configurada para permitir pacotes de aprendizado de máquina e deep learning.
O IEEE Dataport forneceu os dados de sequência de chamadas de API do experimento, que incluíam 43.876 sequências – 42.797 das quais foram classificadas como malware e 1.079 como goodware. O Virus Total foi usado para verificação, e o ambiente Cuckoo Sandbox foi usado para coleta de dados. A Tabela 1 fornece uma explicação abrangente das sequências de chamadas da API.