Código arbitrário

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Question book.svg
Esta página ou secção não cita fontes confiáveis e independentes, o que compromete sua credibilidade (desde maio de 2014). Por favor, adicione referências e insira-as corretamente no texto ou no rodapé. Conteúdo sem fontes poderá ser removido.
Encontre fontes: Google (notícias, livros e acadêmico)

Em segurança de computadores , "execução arbitrária de código" é usado para descrever a capacidade de um invasor execute qualquer comando de escolha do atacante em uma máquina de destino ou num processo de destino. É comumente usado em vulnerabilidade de execução de código arbitrário para descrever um bug de software que dá a um invasor uma maneira de executar código arbitrário. Um programa que é projetado para explorar uma vulnerabilidade tal é chamado de execução de código arbitrário explorar . A maioria dessas vulnerabilidades permite a execução de código de máquina e a maioria dos exploits injeta e executa shellcode para dar a um invasor uma maneira fácil de executar comandos arbitrários manualmente.

Embora a execução de código arbitrário seja mais frequentemente usada para injetar código em um sistema em funcionamento, o processo também foi demonstrado por entusiastas de codificação para permitir que o usuário escreva código próprio em linguagens como montagem , usando o próprio sistema para criar e ativar o código. Produzidos. Em particular, um usuário conseguiu codificar e criar uma versão primitiva do jogo Pong em uma cópia do Super Mario World usando a execução de código arbitrário. 

É o efeito mais poderoso que um bug pode ter, porque permite que um invasor assuma completamente o processo vulnerável. A partir daí, o atacante pode assumir o controle total sobre a máquina em que o processo está sendo executado. As vulnerabilidades de execução de código arbitrário são comumente exploradas por malware para serem executadas em um computador sem o consentimento do proprietário ou por um proprietário para executar o software homebrew em um dispositivo sem o consentimento do fabricante.

Execução de código arbitrário é comumente obtida através de controle sobre o ponteiro de instrução (como um salto ou um ramo ) de um processo em execução . O ponteiro de instrução aponta para a próxima instrução no processo que será executado. O controle sobre o valor do ponteiro de instrução, portanto, dá controle sobre qual instrução é executada em seguida. Para executar código arbitrário, muitas explorações injetam código no processo (por exemplo, enviando entrada para ele que é armazenado em um buffer de entrada na RAM ) e usam uma vulnerabilidade para alterar o ponteiro de instrução para que ele aponte para o código injetado. O código injetado será executado automaticamente. Esse tipo de ataque explora o fato de que a maioria dos computadores não faz uma distinção geral entre código e dados, de modo que o código mal-intencionado pode ser camuflado como dados de entrada inofensivos. Muitos CPUs mais recentes têm mecanismos para tornar isso mais difícil, como um bit não-executar .

Uma vez que o invasor pode executar código arbitrário diretamente no sistema operacional, muitas vezes há uma tentativa de um exploit de escalonamento de privilégios para obter controle adicional. Isso pode envolver o próprio kernel ou uma conta como Administrador, SISTEMA ou raiz. Com ou sem esse controle aprimorado, os exploits têm o potencial de causar sérios danos ou transformar o computador em um zumbi - mas o escalonamento de privilégios ajuda a ocultar o ataque do administrador legítimo do sistema. Uma execução arbitrária de código remoto com vulnerabilidade de escalonamento de privilégios em software amplamente implantado é, portanto, o sub-tipo de vulnerabilidade mais poderoso de todos eles. Se os bugs deste tipo tornam-se conhecidos, correções são geralmente disponibilizadas dentro de algumas horas.

Muitos wordpress ou outros sites do CMS são vulneráveis ​​a ataques de injeção de código remotos. A vulnerabilidade geralmente é introduzida por plugins de terceiros.

Ícone de esboço Este artigo sobre Informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.