Malicious Code: O que é e como se proteger?
Malicious Code ou Código malicioso é o termo usado para descrever qualquer código em qualquer parte de um sistema de software ou script que tenha a intenção de causar efeitos indesejados, violações de segurança ou danos a um sistema. O código mal-intencionado é uma ameaça à segurança de aplicativos que não pode ser controlada de forma eficiente apenas pelo software antivírus convencional. O código malicioso descreve uma ampla categoria de termos de segurança do sistema que inclui scripts de ataque, vírus, worms, cavalos de Tróia, backdoors e conteúdo ativo malicioso.
O código malicioso também pode incluir bombas-relógio, constantes e credenciais criptográficas codificadas, vazamento deliberado de informações e dados, rootkits e técnicas de antidepuração. Essas ameaças de código mal-intencionado direcionadas estão ocultas no software e mascaram sua presença para evitar a detecção pelas tecnologias de segurança tradicionais.
Uma vez dentro de seu ambiente, o código malicioso pode entrar nas unidades de rede e se propagar. O código mal-intencionado também pode causar sobrecarga na rede e no servidor de e-mail enviando mensagens de e-mail, roubando dados e senhas, excluindo arquivos de documentos, arquivos de e-mail ou senhas e até mesmo reformatando discos rígidos.
Como funciona um código malicioso?
Qualquer componente programado de um sistema de computador pode ser manipulado por um código mal-intencionado. Componentes de grande escala, como a infraestrutura de rede de computadores, e componentes menores, como aplicativos móveis ou de desktop, são alvos comuns. Os serviços da Web, como sites e servidores on-line, também podem ser alvos. O código mal-intencionado pode infectar qualquer dispositivo que utilize um computador para operar, como, por exemplo:
- Dispositivos de computador tradicionais – desktops, laptops, telefones celulares, tablets.
- Dispositivos de IoT – dispositivos domésticos inteligentes, sistemas de infoentretenimento no veículo (IVI).
- Dispositivos de rede de computadores – modems, roteadores, servidores.
Os invasores usam scripts e programas mal-intencionados para violar partes confiáveis dos sistemas de computador. A partir desse ponto, eles pretendem realizar uma ou mais das seguintes ações:
- Expor os usuários a códigos maliciosos, para infectá-los e disseminá-los.
- Acessar informações privadas nos sistemas violados.
- Monitorar o uso de um sistema violado.
- Invadir mais profundamente um sistema.
O código malicioso é criado e usado em algumas fases distintas. O código malicioso com script pode precisar de interação humana ou de outras ações do computador para acionar o próximo evento em cada estágio. Notavelmente, alguns códigos podem até operar de forma totalmente autônoma.
A maioria dos códigos maliciosos segue essa estrutura:
Sondagem e investigação de vulnerabilidades.
- Programar escrevendo código para explorar vulnerabilidades.
- Expor sistemas de computador a códigos maliciosos.
- Executar o código por meio de um programa relacionado ou por conta própria.
A sondagem e a programação são a fase de configuração de um ataque. Antes que um invasor possa violar um sistema, ele precisa primeiro ter as ferramentas para invadir. Ele precisará criar o código se ele ainda não existir, mas também poderá usar ou modificar o código malicioso existente para preparar o ataque.
O resultado da criação de scripts mal-intencionados é um aplicativo autoexecutável que pode se ativar e assumir várias formas. Alguns deles podem incluir macros e scripts em JavaScript, controles ActiveX, uso indevido de Powershell, conteúdo enviado por push, plug-ins, linguagens de script ou outras linguagens de programação criadas para aprimorar páginas da Web e e-mails.
A exposição de sistemas de computador pode ocorrer por meio de portas de interface direta, como USB, ou conexões de rede on-line, como celular e Wi-Fi. Para que a exposição seja bem-sucedida, basta que o código malicioso chegue ao computador.
A exposição em ataques generalizados depende de canais de alto contato, como sites populares e spam de e-mail, enquanto esforços mais direcionados usam métodos de engenharia social, como spear phishing.
Alguns esforços internos podem até mesmo plantar códigos mal-intencionados em uma rede privada, como uma intranet corporativa, por meio de uma conexão direta de unidade USB em um computador local de usuário final.
A execução ocorre quando um sistema exposto é compatível com o código malicioso. Quando um dispositivo ou sistema visado é exposto a um código malicioso, o ataque resultante pode incluir tentativas não autorizadas de qualquer um dos seguintes itens:
- Modificar dados – criptografia não permitida, enfraquecimento da segurança, etc.
- Excluir ou corromper dados – servidores de sites, etc.
- Obter dados – credenciais de conta, informações pessoais etc.
- Acesso a sistemas restritos – redes privadas, contas de e-mail, etc.
Como o código malicioso o se espalha?
O código malicioso pode ser usado para violar sistemas por conta própria, permitir atividades mal-intencionadas secundárias ou replicar e se espalhar. Em qualquer caso, o código original deve passar de um dispositivo para outro.
Essas ameaças podem se espalhar por praticamente qualquer canal de comunicação que transmita dados. Geralmente, os vetores de propagação incluem:
- Redes on-line – intranets, compartilhamento de arquivos P2P, sites públicos da Internet, etc.
- Comunicações sociais – e-mail, SMS, conteúdo push, aplicativos de mensagens móveis, etc.
- Conectividade sem fio – Bluetooth, etc.
- Interfaces diretas de dispositivos – USB, etc.
Visitar sites infectados ou clicar em um link ou anexo de e-mail incorreto são portas de entrada padrão para que códigos mal-intencionados entrem sorrateiramente em seu sistema. No entanto, essa ameaça pode entrar tanto por fontes legítimas quanto por fontes explicitamente mal-intencionadas. Qualquer coisa, desde estações de recarga USB públicas até ferramentas de atualização de software exploradas, tem sido usada indevidamente para esses fins.
O “empacotamento” do código mal-intencionado nem sempre é óbvio, mas as conexões de dados públicas e qualquer serviço de mensagens são os caminhos mais importantes a serem observados. Downloads e links de URL são frequentemente usados pelos invasores para incorporar códigos perigosos.
Executar ações – replicar-se, espalhar código malicioso, controle remoto de dispositivos, etc.
Tipos de códigos maliciosos
Muitos tipos de códigos mal-intencionados podem danificar seu computador, encontrando pontos de entrada que levam aos seus preciosos dados. Entre a lista cada vez maior, aqui estão alguns culpados comuns.
Vírus
Os vírus são códigos maliciosos autorreplicantes que se anexam a programas habilitados para macro para serem executados. Esses arquivos viajam por meio de documentos e outros downloads de arquivos, permitindo que o vírus se infiltre em seu dispositivo. Uma vez executado, o vírus pode se autopropagar e se espalhar pelo sistema e pelas redes conectadas.
Worms
Os worms também são códigos autorreplicantes e de propagação automática, como os vírus, mas não exigem nenhuma ação adicional para isso. Uma vez que um worm de computador chega ao seu dispositivo, essas ameaças mal-intencionadas podem ser executadas inteiramente por conta própria, sem nenhuma assistência de um programa executado pelo usuário.
Cavalos de Troia
Os cavalos de Troia são arquivos de engodo que carregam cargas de código mal-intencionado, exigindo que o usuário use o arquivo ou o programa para ser executado. Essas ameaças não podem se autorreplicar ou se espalhar de forma autônoma. Entretanto, sua carga maliciosa pode conter vírus, worms ou qualquer outro código.
Scripting entre sites (XSS)
Os scripts entre sites interferem na navegação do usuário na Web, injetando comandos mal-intencionados nos aplicativos da Web que ele pode usar. Isso geralmente altera o conteúdo da Web, intercepta informações confidenciais ou transmite uma infecção ao próprio dispositivo do usuário.
Ataques de backdoor
O acesso ao backdoor do aplicativo pode ser codificado para dar a um criminoso cibernético acesso remoto ao sistema comprometido. Além de expor dados confidenciais, como informações privadas da empresa, um backdoor pode permitir que um invasor se torne uma ameaça persistente avançada (APT).
Os criminosos cibernéticos podem então se mover lateralmente por meio de seu nível de acesso recém-obtido, apagar os dados de um computador ou até mesmo instalar spyware. Essas ameaças podem atingir um alto nível: O U.S. Government Accountability Office (Escritório de Prestação de Contas do Governo dos EUA) chegou a alertar sobre a ameaça do código malicioso contra a segurança nacional.
Exemplos de ataques de código malicioso
O código malicioso pode se apresentar de várias formas e já foi muito ativo no passado. Entre os exemplos desses ataques, aqui estão alguns dos mais conhecidos:
Trojan Emotet
Aparecendo pela primeira vez em 2014, o trojan Emotet evoluiu de suas raízes de malware para se tornar um spam de e-mail carregado com código mal-intencionado. Os atacantes usam táticas de phishing, como linhas de assunto de e-mail urgentes (ex.: “Payment Needed”) para enganar os usuários e fazer downloads.
Uma vez em um dispositivo, o Emotet é conhecido por executar scripts que transmitem vírus, instalam malware de comando e controle (C&C) para recrutamento de botnets e muito mais. Essa ameaça teve uma pequena pausa em 2018 antes de retornar e se tornar uma ameaça de malware de SMS no processo.
Worm Stuxnet
Desde 2010, o worm de computador Stuxnet e seus sucessores têm como alvo a infraestrutura nacional. Seu primeiro ataque documentado envolveu instalações nucleares iranianas por meio de uma unidade flash USB, destruindo equipamentos essenciais. Desde então, o Stuxnet foi descontinuado, mas seu código-fonte foi usado para criar ataques semelhantes altamente direcionados até 2018.
Como se proteger contra ataques de código malicioso?
Para a maioria das ameaças mal-intencionadas, o software antivírus com atualizações automáticas, recursos de remoção de malware e segurança de navegação na Web é a melhor defesa. Entretanto, a prevenção de códigos mal-intencionados pode não ser possível com o software antivírus por si só.
O antivírus normalmente previne e remove vírus e outras formas de malware – ou software mal-intencionado – é uma subcategoria de código mal-intencionado. A categoria mais ampla de código mal-intencionado inclui scripts de sites que podem explorar vulnerabilidades para carregar malware. Por definição, nem toda proteção antivírus pode tratar determinadas infecções ou ações causadas por código mal-intencionado.
Embora o antivírus ainda seja essencial para a defesa e a remoção proativa de infecções, aqui estão algumas maneiras valiosas de se proteger:
- Instale um software anti-scripting para evitar que o JavaScript e os códigos relacionados sejam executados sem autorização.
- Tenha cuidado com links e anexos. Qualquer mensagem que contenha links de URL ou anexos, seja por e-mail ou mensagem de texto, pode ser um vetor para códigos mal-intencionados.
- Ative o bloqueador de pop-ups do seu navegador para evitar que os scripts apresentem conteúdo mal-intencionado em janelas indesejadas do navegador.
- Evite usar contas de nível administrativo para uso diário. Geralmente, são necessárias permissões de alto nível para executar scripts e programas automaticamente.
- Utilize backups de dados para proteger arquivos e documentos insubstituíveis.
- Tenha cuidado ao usar qualquer conexão de dados pública. As conexões USB são geralmente ignoradas, mas podem facilmente abrigar códigos maliciosos. O Wi-Fi público também é uma ameaça comum que os invasores podem usar para distribuir códigos mal-intencionados.
- Use um firewall configurado corretamente para bloquear conexões não autorizadas. Se um código mal-intencionado se infiltrar em seu computador e se conectar externamente para solicitar cargas de malware, um firewall poderá ajudar a impedir isso.
- Certifique-se de que seu firewall esteja configurado para bloquear por padrão e colocar na lista de permissões todas as conexões esperadas e confiáveis.
Fonte

Douglas Bernardini
Cybersecurity Specialist & Cloud Computing Expert with +10 years experience in IT infrastructure.
Specialist delivering assets for development teams in Google Cloud Platform (GCP) and Amazon web services (AWS)
Hands-on cloud security enterprise architect, with experience in SIEM/SOC, IAM, cryptography, pentest, network topologies, operating systems, databases, and applications.
Experience in DevSecOps analysis to discover vulnerabilities in software, identifying CI/CD risks gaps and recommending secure-coding process (S-SDLC).