o conceito de ataque RCE (Execução Remota de código).

o que é um ataque RCE (Execução Remota de código)? A Execução Remota de código é usada para expor uma forma de vulnerabilidade que pode ser explorada quando a entrada do Usuário é injetada em um arquivo ou string e todo o pacote é executado no analisador da linguagem de programação. Este não é o tipo de comportamento exibido pelo desenvolvedor do aplicativo da web. Um ataque de Execução Remota de código pode levar a um ataque em grande escala que comprometeria um aplicativo da web inteiro e o servidor da web. Você também deve observar que praticamente todas as linguagens de programação têm diferentes funções de avaliação de código. Uma avaliação de código também pode ocorrer se você permitir que as entradas do usuário tenham acesso a funções que estão avaliando o código na mesma linguagem de programação. Esse tipo de medida pode ser propositalmente implementado para obter acesso às funções matemáticas da linguagem de programação ou por acidente porque a entrada controlada pelo Usuário é projetada pelo desenvolvedor para estar dentro de qualquer uma dessas funções. Não é aconselhável realizar esta linha de ação. Muitas pessoas acham malicioso até mesmo usar a avaliação de código.

Exemplo de Código

Vamos dar uma olhada em um exemplo de um código de avaliação de ataque.

pode parecer uma ideia melhor ter nomes de variáveis gerados dinamicamente para cada usuário e armazenar sua data de registro. Este é um exemplo de como você pode fazê-lo feito em PHP

eval("$$user = '$regdate');As long as the username is controlled by the user's input, an attacker may create a name like this:x = 'y';phpinfo();//

O código PHP que é gerada seria semelhante a este:

$x = 'y';phpinfo();// = 2016';

agora Você pode ver que a variável é conhecida como x, mas tem o valor de y. Quando o invasor pode atribuir outro valor para a variável, ele será capaz de criar um novo comando usando um ponto-e-vírgula (;). Agora ele pode preencher o resto da corda. Dessa forma, ele não receberá nenhum erro de sintaxe em seu trabalho. Assim que ele executa este código, a saída do phpinfo seria exibida na página. Você deve sempre lembrar que é possível em PHP e outras linguagens com recursos que podem avaliar a entrada.

organizar a Execução Remota de código por origem

a maioria dos pontos fracos distintos do RCE é devido a certas causas básicas que podem ser seguidas de volta ao seu ponto de partida. O agrupamento de Execução Remota de código por início é examinado da seguinte forma.

execução dinâmica de código

a execução dinâmica de código é, por todas as contas, o motivo básico mais amplamente reconhecido que solicita um ataque de execução de código. Muitos dialetos de programação são planejados a tal ponto que podem produzir código com outro código e executá-lo imediatamente. Essa ideia é incrível que lida com vários problemas complexos. Seja como for, um agressor malévolo pode controlar essa ideia para adquirir acesso e capacidades RCE.

Normalmente, o código produzido rapidamente depende de determinada entrada do cliente. Normalmente, o código incorpora as informações que foram lembradas por uma estrutura específica. Quando um agressor maligno entende que a poderosa era do Código utilizará certas informações, ele pode criar um código substancial como um tipo de Acesso para separar o aplicativo. Se as contribuições dos clientes não forem examinadas, o código será executado em seu objetivo.

no momento em que você escolhe olhar com cuidado, a execução dinâmica de código é responsável por dois tipos de ataques baseados em RCE; imediato e tortuoso.

Direct

ao gerenciar uma ilustração da execução direta de tributo exclusivo, o agressor percebe que seu feedback seria utilizado para produzir código.

indireto

de forma aberrante, está preocupado com a poderosa idade do código com entradas do cliente. A entrada do cliente está normalmente sujeita a pelo menos uma camada. Uma parte das camadas pode ser responsável por alterar a contribuição antes que ela termine com a idade do código dinâmico. Além disso, a idade do código dinâmico pode ser um impacto subsequente e não a utilização imediata das informações. Essa é a razão pela qual pode não estar claro para o cliente que está fornecendo as informações que serão preenchidas como um bloco de estrutura em uma sucata de código que seria executada distantemente. A desserialização é um guia incrível para descrever a circunstância presente. Nenhuma era de código poderosa deve ocorrer durante a desserialização. Intermitentemente, esta é a situação que acontece quando o objeto serializado contém campos de informações brutas ou objetos de uma classificação comparável. As coisas ficam mais confusas quando os elementos do artigo são serializados. A desserialização também incorporaria algum grau de idade de código dinâmico.

pode parecer que dialetos poderosos são os únicos influenciados pela serialização do trabalho. Desde que isso seja verdade, a questão seria muito restrita. Seja como for, essa situação também é muito útil em dialetos estáticos. É mais difícil de realizar com a linguagem estática, mas certamente não é viável.

intermitentemente, a execução dessa ideia gerencia capacidades intermediárias produzidas pela desserialização. Objetos de idade em tempo de execução são concebíveis apenas com idade de código dinâmico. Isso implica que, se a informação que será desserializada for feita em uma solicitação feita de forma distante, um agressor malévolo poderia comandá-la e ajustá-la. Todos os bits de código planejados também podem estar familiarizados com a poderosa era do código para executar a capacidade quando ela é incorporada como um pedaço da desserialização.

Segurança Da Memória

mais uma razão básica para ataques RCE identifica com segurança de memória ou segurança API. O bem-estar da memória alude à contra-ação do Código, desde chegar a partes fundamentais da memória que ele não instalou. É comum esperar que a falta de segurança da memória resulte em acesso não autorizado à informação. Em qualquer caso, a estrutura de trabalho e o equipamento dependem da memória para armazenar o código executável. Os metadados que se identificam com a execução do código são mantidos na memória. Acessar esta parte da memória pode solicitar ACE e RCE. Dessa forma, Quais são algumas das razões para problemas de bem-estar da memória?

as imperfeições do plano do produto

imperfeições na configuração do produto são um tipo de fraqueza no bem-estar da memória que acontece quando há um erro de planejamento em uma parte oculta específica. Intermitentemente, a parte deficiente pode ser um compilador, tradutor, máquina virtual ou até mesmo a parte ou biblioteca da estrutura de trabalho. Existem várias manchas nesta classe. Uma parte da incorporação;

Buffer Overflow

Buffer overflow aludido adicionalmente como buffer overread, pode ser utilizado para aludir a um método básico e famoso que é utilizado para quebrar o bem-estar da memória. Este ataque aproveita um defeito de plano específico ou um bug para manter contato com as células de memória que estão situadas em direção ao acabamento da almofada de memória. O suporte seria obtido de uma chamada autêntica para a API pública. No entanto, cradle apenas alude a uma ameaça local de partida é utilizado para registrar os locais de memória reais de um determinado artigo ou contador de programa. Sua separação do berço é notável ou pode, sem dúvida, ser especulada. Investigar o código sempre que tornado acessível ou solucionar problemas de toda a execução do programa em tempo de execução pode acabar sendo útil para um agressor que precisa olhar para posições relativas.

isso implica que uma inundação de berço permitiria que a memória indisponível em algum grau fosse alterada. O berço pode ser encontrado no espaço de localização de mais uma máquina e será alterado chamando uma API distante. Isso fará a admissão na memória da máquina remota. Existem inúmeras abordagens para utilizar este tipo de acesso em fazer um RCE double-dealing. Há uma suspeita geral de que, supondo que haja uma fraqueza de inundação de Almofada, um ataque baseado em RCE não está fora das cartas. Isso implica que os proprietários de código são invocados para corrigir prontamente suas inundações de apoio antes que um ataque RCE aconteça.

falhas de Design de equipamentos

ataques de bem-estar de memória também podem ser devido a manchas de configuração de equipamentos. Eles não são tão normais quanto ataques de programação e são muito mais difíceis de reconhecer. No entanto, esse tipo de agressão afeta enormemente a estrutura.

impactos da vulnerabilidade de avaliação remota de código

um invasor que pode executar um ataque remoto baseado em código em um sistema com sucesso seria capaz de executar outros comandos aproveitando a linguagem de programação ou o servidor web. Em muitas linguagens de programação, o invasor seria capaz de comandar o sistema para escrever, ler ou excluir arquivos. Pode até ser possível conectar-se a diferentes bancos de dados com o sistema atacado.

por que os atacantes lançam ataques RCE?

embora não haja nenhuma razão particular pela qual os atacantes optem por utilizar a exploração RCE para atacar um aplicativo da web, não há nenhuma razão particular. É que alguns mal-intencionados acham fácil aproveitar essa execução de código para obter acesso aos seus sistemas.

Como Você Impede Ataques De Execução Remota De Código?

para começar, você deve evitar o uso de entrada do usuário dentro do Código avaliado. A melhor opção nessa situação seria evitar completamente o uso de funções como eval. É considerada uma forma de má prática e pode ser facilmente evitada. Também é recomendável que você nunca deixe um usuário editar o conteúdo dos arquivos que podem ter sido analisados pela linguagem de programação em questão. Muitas vezes, isso inclui permitir que um usuário crie o nome e as extensões de arquivo que deseja carregar ou criar no aplicativo da web.

estas são algumas das coisas que você não deve fazer para evitar ataques baseados em RCE. Eles incluem:

  • higienização da entrada do Usuário. Muitas vezes, isso é difícil de conseguir porque há uma grande quantidade de desvios e restrições pré-instalados.
  • deixe um usuário decidir ou criar a extensão ou o conteúdo dos arquivos a serem usados no servidor da web. Ele / ela tem que usar muitas práticas seguras ao lidar com uploads de arquivos ou arriscar informações vitais caindo nas mãos erradas.
  • passar qualquer entrada controlada pelo usuário em callbacks do sistema ou funções de avaliação
  • Lista negra ativamente quaisquer caracteres especiais ou nomes de funções. Isso deve ser evitado, assim como higienizar a entrada do Usuário. Mas é incrivelmente difícil de implementar.

Deixe uma resposta

O seu endereço de email não será publicado.