O que é execução remota de código
Execução remota de código é a capacidade de fazer o alvo executar instruções controladas pelo atacante. O atacante envia uma entrada e o sistema a interpreta como código ou como comando do sistema operacional.
A falha pode existir em uma aplicação, em uma biblioteca ou no próprio interpretador. O efeito depende do privilégio do processo. Um serviço que roda como administrador oferece alcance maior que outro isolado em um usuário restrito.
Caminhos comuns
A injeção de comando acontece quando a entrada do usuário chega a uma chamada de shell sem tratamento. A desserialização insegura reconstrói um objeto a partir de informações controladas e executa parte do processo. Um upload sem validação pode gravar um arquivo executável em um diretório servido pela aplicação.
Falhas de memória, como o uso de uma região já liberada, também podem abrir caminho para execução. Nesses casos, o relatório técnico precisa demonstrar o controle do fluxo, e além do acesso inválido.
A diferença para outras falhas
Uma leitura indevida de arquivo expõe informação, enquanto uma indisponibilidade derruba o serviço. A execução remota permite que o atacante faça o sistema rodar o que ele escolher, o que muda o alcance da resposta.
O aviso do fornecedor deve informar o que a falha permite. Quando o texto fala em execução remota sem autenticação, a urgência aumenta, e a contenção pode incluir o isolamento do serviço até a correção.
O que um aviso precisa esclarecer
Procure a versão afetada, a condição de exploração e o privilégio necessário. Verifique a exigência de autenticação e a dependência de uma configuração específica. Confirme também se existe correção publicada.
A ausência de detalhes técnicos não significa que o problema é menor. Avisos preliminares costumam ser atualizados, e a leitura precisa acompanhar a versão mais recente.
Como reduzir o alcance
Atualize o componente e restrinja o acesso ao serviço. Valide a entrada e evite chamadas de shell com informação vinda do usuário. Aplique o menor privilégio ao processo e separe a aplicação do restante do ambiente.
A validação de entrada e o controle de upload fazem parte da defesa. Para revisar uma aplicação exposta e as permissões do processo, o Desenvolvimento Colaborativo da Dev Side Studio permite examinar a configuração durante a sessão.
Dúvidas frequentes
Perguntas frequentes sobre Execução remota de código
- RCE e invasão são a mesma coisa?
- Não. A RCE descreve a capacidade de executar código no alvo. A invasão é o caminho completo, que pode incluir acesso inicial, elevação de privilégio e movimento entre sistemas.
- Toda falha crítica é RCE?
- Não. Uma nota alta pode vir de leitura de informação, indisponibilidade ou outro efeito. O aviso precisa descrever o que a falha permite.
- Como reduzir o alcance de uma RCE?
- Atualize o componente, restrinja a exposição do serviço e separe privilégios. Isolar a aplicação limita o que o código executado consegue alcançar.
- Um teste em laboratório comprova o alcance?
- Comprova a condição testada naquele ambiente. Versões, configurações e permissões diferentes podem produzir outro resultado.
Para continuar
Recursos relacionados
Documentação
MITRE: CWE-94, injeção de código
Descreve a geração de código a partir de entrada controlada e as recomendações de defesa.
Abrir recursoDocumentação
OWASP Top 10: injeção
Apresenta a categoria, os caminhos comuns e as práticas de prevenção.
Abrir recursoAplicação na formação
Formação DevOps
Reconhecer o alcance de uma RCE muda a prioridade de atualização e de isolamento do servidor.
Conhecer a formação
Fontes consultadas
Referências deste verbete
Este verbete ajudou você?
Obrigado pela resposta. Ela fica salva apenas neste navegador.