Código HTML do Conteúdo

Post: Novo método de utensílios de flipswitch supera as defesas do kernel Linux


<div> <div> <p>Surgiu um novo m&eacute;todo de enigma rootkit dublado Flipswitch, contornando as mais recentes salvaguardas do Linux 6.9 Kernel e reacendendo preocupa&ccedil;&otilde;es sobre o compromisso no n&iacute;vel do kernel. </p> <p>Manipulando o c&oacute;digo da m&aacute;quina do novo despachante syscall, em vez do depreciado <code>sys_call_table</code>. <code>kill</code> e <code>getdents64</code>.</p> <p>Durante anos, ra&iacute;zes linux como diamorfina e pumakit explorou o <code>sys_call_table</code>-Uma variedade simples de ponteiros de fun&ccedil;&atilde;o-para redirecionar syscalls atrav&eacute;s de fun&ccedil;&otilde;es controladas por atacantes. </p> <p>Ao desativar a prote&ccedil;&atilde;o de grava&ccedil;&atilde;o e substituir entradas espec&iacute;ficas, um advers&aacute;rio pode ocultar arquivos maliciosos de <code>ls</code> Sa&iacute;das ou tentativas de termina&ccedil;&atilde;o do processo de frustra&ccedil;&atilde;o. </p> <p>O <a href="https://www.elastic.co/security-labs/flipswitch-linux-rootkit" rel="noreferrer noopener nofollow" target="_blank">liberar</a> do Linux Kernel 6.9, no entanto, deu um golpe fatal a essa abordagem: o kernel substituiu a pesquisa de matriz direta</p> <pre>c<code><em>// Pre-6.9: Direct array lookup</em> sys_call_table[__NR_kill](regs); </code></pre> <p>com um <code>switch</code>-Despacho de estatura dentro <code>x64_sys_call</code>ignorando efetivamente quaisquer modifica&ccedil;&otilde;es para <code>sys_call_table</code> Para o manuseio real do syscall.</p> <h2 id="flipswitch-rediscovering-the-hook"><strong>Flipswitch: redescobrindo o gancho</strong></h2> <p>O principal insight de Flipswitch &eacute; que a l&oacute;gica original do syscall ainda existe em forma compilada por tr&aacute;s do <code>switch</code> declara&ccedil;&atilde;o. </p> <p>Em vez de adulterar com <code>sys_call_table</code>Flipswitch localiza e remende o n&iacute;vel da m&aacute;quina <code>call</code> instru&ccedil;&atilde;o interior <code>x64_sys_call</code> Isso chama a fun&ccedil;&atilde;o Syscall alvo. Este processo se desenrola em quatro etapas:</p> <ol> <li><strong>Descubra o endere&ccedil;o de fun&ccedil;&atilde;o original</strong><br />Embora o <code>sys_call_table</code> N&atilde;o governa mais o despacho, ele ainda mant&eacute;m indica&ccedil;&otilde;es v&aacute;lidas para compatibilidade. Lendo uma entrada como <code>sys_call_table[__NR_kill]</code>Flipswitch obt&eacute;m o endere&ccedil;o do original <code>sys_kill</code> rotina.</li> <li><strong>Localizar <code>kallsyms_lookup_name</code></strong><br />Para encontrar s&iacute;mbolos do kernel programaticamente, o flipswitch usa um kprobe em um s&iacute;mbolo conhecido, extraindo o endere&ccedil;o de <code>kallsyms_lookup_name</code>. Isso permite a pesquisa de qualquer ponteiro de fun&ccedil;&atilde;o Syscall exportado, ignorando as restri&ccedil;&otilde;es de exporta&ccedil;&otilde;es diretas.</li> <li><strong>Digitalize a instru&ccedil;&atilde;o de chamada exclusiva</strong><br />O <code>x64_sys_call</code> O c&oacute;digo da m&aacute;quina da fun&ccedil;&atilde;o &eacute; pesquisado byte por byte para o c&oacute;digo de op&ccedil;&atilde;o de um bytes <code>0xe8</code> seguido pelo deslocamento relativo de 4 bytes precisos que se destina <code>sys_kill</code>. Esta assinatura singular identifica as instru&ccedil;&otilde;es exatas para sequestrar.</li> <li><strong>Patch o despachante</strong><br />Operando no anel 0, o flipswitch desativa a prote&ccedil;&atilde;o de grava&ccedil;&atilde;o da CPU limpando o bit WP no CR0. Em seguida, substitui o deslocamento de 4 bytes do identificado <code>call</code> instru&ccedil;&atilde;o para apontar para um malicioso <code>fake_kill</code> manipulador. Ap&oacute;s a descarga do m&oacute;dulo, as prote&ccedil;&otilde;es s&atilde;o reativadas e o deslocamento original restaurado, deixando evid&ecirc;ncias forenses m&iacute;nimas.</li> </ol> <h2 id="implications-and-defensive-strategies"><strong>Implica&ccedil;&otilde;es e estrat&eacute;gias defensivas</strong></h2> <p>O flipswitch ressalta a persistente din&acirc;mica de gato e rato entre o endurecimento do kernel e a inova&ccedil;&atilde;o advers&aacute;ria. Enquanto os desenvolvedores do Linux continuam fortalecendo a despacho do Syscall, os atacantes se adaptam ao direcionar a pr&oacute;pria l&oacute;gica de despacho compilado. Mitiga&ccedil;&otilde;es podem incluir:</p> <ul> <li><strong>Verifica&ccedil;&atilde;o de integridade de tempo de execu&ccedil;&atilde;o</strong>: Hash periodicamente e validando o c&oacute;digo da m&aacute;quina de <code>x64_sys_call</code> Para detectar modifica&ccedil;&otilde;es n&atilde;o autorizadas.</li> <li><strong>Restri&ccedil;&otilde;es aprimoradas de KProbe</strong>: Limitar ou auditar ainda mais o uso de KProbes para localizar endere&ccedil;os de s&iacute;mbolos cr&iacute;ticos.</li> <li><strong>Integridade do fluxo de controle (CFI)</strong>: Empregando t&eacute;cnicas de CFI dentro do kernel para aplicar que todas as chamadas indiretas correspondem a metas leg&iacute;timas.</li> </ul> <h2 id="detecting-flipswitch-with-yara"><strong>Detectando flipswitch com yara</strong></h2> <p>Manter a visibilidade no fluxo de controle do kernel e alavancar a detec&ccedil;&atilde;o baseada em assinatura ser&aacute; essencial para ficar &agrave; frente na batalha em andamento por <a href="https://gbhackers.com/linux-kernel-netfilter-flaw/" rel="noreferrer noopener" target="_blank">Linux Kernel</a> integridade.</p> <p>A detec&ccedil;&atilde;o de rootkits no n&iacute;vel do kernel permanece desafiadora devido &agrave; sua opera&ccedil;&atilde;o furtiva e na mem&oacute;ria. Para ajudar os defensores, a Elastic Security publicou uma regra Yara visando o flipswitch<a href="https://gbhackers.com/poc-exploit-cve-2020-0601/" rel="noreferrer noopener" target="_blank"> prova de conceito</a>. A regra digitaliza os padr&otilde;es exclusivos de c&oacute;digo de m&aacute;quina introduzidos durante o processo de patch:</p> <pre>text<code>rule Linux_Rootkit_Flipswitch_821f3c9e { meta: author = "Elastic Security" description = "Detect FlipSwitch rootkit PoC" os = "Linux" arch = "x86" strings: $all_a = { FF FF 48 89 45 E8 F0 80 ?? ?? ?? } $main_b = { 41 54 53 E8 ?? ?? ?? ?? 48 C7 C7 ?? ?? ?? ?? } condition: #all_a &gt;= 2 and 1 of ($main_b) } </code></pre> <p>Ao implantar essa regra em ferramentas de varredura de mem&oacute;ria ou plataformas de prote&ccedil;&atilde;o de terminais, as equipes de seguran&ccedil;a podem sinalizar a presen&ccedil;a do despachante corrigido da Flipswitch e responder antes que ocorram danos significativos.</p> <p>&Agrave; medida que as defesas do kernel evoluem, pesquisas como o FlipSwitch destacam a necessidade cr&iacute;tica de prote&ccedil;&otilde;es em camadas e monitoramento proativo. </p> <p><strong>Siga -nos<a href="https://news.google.com/publications/CAAqKAgKIiJDQklTRXdnTWFnOEtEV2RpYUdGamEyVnljeTVqYjIwb0FBUAE?hl=en-IN&amp;gl=IN&amp;ceid=IN%3Aen" rel="noreferrer noopener" target="_blank">Google News</a>Assim,<a href="https://www.linkedin.com/company/cyber-threat-intel/" rel="noreferrer noopener" target="_blank">LinkedIn</a>e<a href="https://x.com/The_Cyber_News" rel="noreferrer noopener" target="_blank">X</a>Para obter atualiza&ccedil;&otilde;es instant&acirc;neas e definir GBH como uma fonte preferida em<a href="https://www.google.com/preferences/source?q=https://gbhackers.com/" rel="noreferrer noopener" target="_blank">Google</a>.</strong></p> </div></div>