Hackers abusam de chamadas Python Eval/Exec para executar código malicioso

Os atores de ameaças estão abusando cada vez mais de funções de avaliação e execução nativas para ocultar e executar cargas úteis maliciosas em pacotes de aparência inocente no Pypi.

Pesquisadores de segurança avisar Que, embora as bibliotecas de análise estática tais Ashexoracan detectem muitas técnicas de ofuscação, os invasores continuam inovando maneiras de reduzir o código prejudicial dos scanners simples.

Ataques da cadeia de suprimentos direcionaram pacotes de Python, com mais de 100 incidentes relatados no Pypi nos últimos cinco anos.

Em um cenário típico, um adversário carrega uma biblioteca de trojanizada que mantém sua funcionalidade anunciada, mas injeta rotinas maliciosas ocultas.

O trecho malicioso mais simples parece inócuo:

python# Naïve abuse of exec and eval
exec("print('Hello from malicious code!')")
result = eval("2 + 2")

Quando o pacote é importado pelos usuários, essas rotinas podem roubar credenciais, gerar backdoors ou baixar adicionais malware– Tudo sem alertar os usuários finais.

A maioria das ferramentas de segurança sinaliza qualquer uso direto das funções de avaliação ou execução do Python para revisão manual. Para ignorar essas heurísticas, os atacantes empregam uma variedade de truques de ofuscação:

Ao substituir as letras latinas por caracteres unicode visualmente semelhantes, o nome da função se torna irreconhecível aos scanners básicos.

Essa substituição simples derrota o padrão ingênuo correspondente sem alterar o comportamento subjacente.

Importar ou aliasing O módulo Buildins ofusca referências diretas. Um invasor pode atribuir o espaço para nome do Builtins a um nome de variável curto e invocar a função de execução por meio desse alias, ignorando as pesquisas por nomes explícitos de módulos.

Usando rotinas de pesquisa de atributo dinâmico, os atacantes montam os nomes de funções no tempo de execução. Eles podem cortar, unir, reverter ou concatenar fragmentos de string para reconstruir o nome da função de execução, tornando-o invisível para as heurísticas estáticas de busca de string.

Em vez de uma declaração de importação direta, os atores de ameaças costumam aproveitar a função de importação de Underscore Double-Underscore do Python ou a estrutura do Importlib.

Eles também podem acessar o espaço para nome do Builtins através do cache do System Modules ou do mapeamento global de namespace, impedindo que os scanners simples reconhecessem um construto de importação típico.

Ao compilar um snippet de código em um objeto de código executável e, em seguida, instantá -lo como uma função, os adversários evitam as chamadas diretas para as funções de avaliação ou execução.

Essa técnica pode ser mais ofuscada, ocultando a chamada compilada por trás das operações dinâmicas de string.

Além da função, chama a ofuscação, os atores maliciosos geralmente codificam ou comprimem suas cargas úteis – usando base64, rot13, zlib, ou Python’s MARSACIMENTO – Então decodifique e execute -os em tempo de execução.

Essa ocultação em camadas faz a detecção por meio de análise de árvores de sintaxe abstrata simples ou correspondência de padrões incompleta.

Ferramentas de análise estática como o Operações de String de Exoravelas e sinalizam chamadas de execução reais com alta confiança.

No entanto, os métodos estáticos por si só podem perder novas técnicas de ofuscação, enquanto a caixa de areia dinâmica pode ter efeitos colaterais intensivos em recursos e riscos.

O aprendizado de máquina e os grandes detectores baseados em modelos de linguagem oferecem cobertura adicional, mas sofrem de falsos positivos, falsos negativos e custos de dimensionamento.

Os especialistas em segurança recomendam a Adefense-in-DePtheProach: Combine analisadores estáticos robustos, instrumentação dinâmica leve, modelos direcionados de aprendizado de máquina e revisão humana.

Somente as técnicas de detecção de camadas e mantendo o monitoramento proativo das organizações PYPI podem permanecer à frente das ameaças da cadeia de suprimentos cada vez mais sofisticadas.

Encontre esta notícia interessante! Siga -nosGoogle NewsAssim,LinkedIneXPara obter atualizações instantâneas!