Tipos comuns de vulnerabilidades de segurança e formas de corrigi-las
Publicados: 2022-07-11Uma vulnerabilidade no Exchange Server da Microsoft contribuiu para uma grande série de ataques cibernéticos que afetam mais de 60.000 empresas privadas nos EUA. E apenas um mês antes, uma empresa aeroespacial, a Bombardier, teve os dados de seus funcionários e fornecedores violados devido a falhas em seu aplicativo de transferência de arquivos de terceiros.
Existem muitos tipos de vulnerabilidades de segurança que podem colocar seu sistema de TI no radar dos hackers. De más práticas de codificação a componentes externos defeituosos, não importa qual seja o motivo, muitas empresas acabam sendo expostas. Para mitigar esse problema, as empresas se beneficiam de serviços de teste e controle de qualidade para avaliar seus próprios softwares e redes e avaliar os riscos de segurança de componentes de fornecedores externos.
Então, quais tipos de vulnerabilidade de segurança podem estar expondo seu sistema a ameaças cibernéticas neste exato momento? Como as vulnerabilidades aparecem? E como podemos mitigá-los?
O que é uma vulnerabilidade de software e de onde ela se origina?
Uma vulnerabilidade de segurança é uma característica não intencional do sistema ou componente que aumenta o risco de uma invasão ou perda de dados, seja por exposição acidental, ataque intencional ou conflitos com novos componentes. Essa vulnerabilidade pode ser uma falha de design, um bug de implementação, uma configuração incorreta, etc.
Antes de prosseguirmos, vamos esclarecer a diferença entre uma vulnerabilidade, uma exploração e uma ameaça.
- Existe uma vulnerabilidade no sistema sem nenhum esforço de terceiros
- Uma exploração é a maneira como os invasores usam uma fraqueza do sistema existente para montar um ataque
- Uma ameaça é o incidente real quando uma ou várias explorações usam uma vulnerabilidade para penetrar em um sistema
Os especialistas em segurança podem eliminar vulnerabilidades na descoberta usando patches de software, substituição de hardware e reconfiguração do sistema. Treinar os usuários finais em práticas de segurança e manter todos os componentes atualizados também evitará e minimizará vulnerabilidades. Além disso, as equipes de segurança precisam ter em mente que, à medida que os sistemas evoluem, surgem novos pontos fracos. Portanto, as empresas precisam verificar seu software, hardware e redes sistematicamente em busca de vulnerabilidades emergentes e corrigi-las antes que sejam descobertas e exploradas.
Novas vulnerabilidades de segurança continuam surgindo rapidamente, pois o National Vulnerability Database (NVD) do governo dos EUA publicou mais de 8.000 novas entradas no primeiro trimestre de 2022. Com esse ritmo acelerado, muitas empresas não conseguem acompanhar e deixar fraquezas abertas por anos, expondo suas sistemas. Um estudo de vulnerabilidades de software revelou que 75% dos ataques montados em 2020 exploraram exposições com pelo menos dois anos, enquanto 18% se basearam em fraquezas relatadas em 2013!
Como as vulnerabilidades de segurança entram em software e redes?
De acordo com a pesquisa, 75% dos aplicativos desenvolvidos por fornecedores de software não estão em conformidade com os 10 principais padrões do Open Web Application Security Project (OWASP). Esses padrões estão disponíveis publicamente. Então, por que tantos ainda não conseguem produzir um aplicativo seguro? Aqui estão os principais motivos:
Código de terceiros vulnerável e outros componentes. É uma prática comum reutilizar componentes de terceiros, pois isso acelera significativamente o processo de desenvolvimento. No entanto, os usuários tendem a ignorar a segurança dessas partes e geralmente as implantam sem uma avaliação completa. O mesmo se aplica a copiar e colar código de fontes, como Stack Overflow, sem avaliar sua segurança.
Práticas de codificação inseguras. Estudos recentes mostram que a segurança nem está no radar da maioria dos desenvolvedores. Em um experimento explorando a atitude de 1.200 desenvolvedores, os pesquisadores concluíram que apenas 14% veem a segurança como prioridade ao escrever código. Além disso, observe que muitas organizações exigem que seus desenvolvedores produzam código rapidamente em prazos apertados, o que simplesmente não deixa espaço para uma avaliação de segurança completa e resulta em vulnerabilidades de código.
Cenário de ataques cibernéticos em rápida mudança. Os invasores estão constantemente descobrindo novas maneiras de violar a segurança dos aplicativos. Assim, partes que antes eram consideradas imunes podem se tornar vulneráveis hoje. Se a equipe de TI não avaliar sistematicamente aplicativos e redes em busca de vulnerabilidades e não mantiver todos os softwares atualizados, é apenas uma questão de tempo até que os pontos fracos comecem a surgir.
Classificação de tipos de vulnerabilidade de segurança
Existem duas plataformas, OWASP e CWE, que oferecem uma lista de vulnerabilidades de segurança confiável e detalhada. Eles atualizam suas listagens para incluir quaisquer fraquezas emergentes. Ambos os recursos podem ser usados para educar programadores, testadores e engenheiros.
OWASP é uma comunidade global sem fins lucrativos e publica regularmente a lista das 10 principais vulnerabilidades de software da OWASP. A Common Weakness Enumeration (CWE) é uma composição de vulnerabilidades de software e hardware também desenvolvida por uma comunidade dedicada e inclui 25 entradas.
Aqui estão 18 das vulnerabilidades de segurança mais proeminentes que queremos destacar neste artigo, classificadas por domínio. Eles podem se manifestar em qualquer sistema de TI, como nuvem, configurações baseadas em IoT e aplicativos móveis.
1. Falta de práticas de criptografia fortes
Embora a criptografia não impeça um ataque cibernético, é essencial garantir que os dados confidenciais permaneçam seguros, mesmo que sua plataforma de armazenamento seja violada. Os invasores não podem fazer uso indevido de dados criptografados até decodificá-los, o que dá tempo para a empresa violada tomar as medidas necessárias, como notificar as partes afetadas e preparar contramedidas de roubo de identidade.
Pesquisas mostram que muitas empresas não têm planos imediatos de criptografar dados em pen drives, laptops e desktops. E por falar em regulamentos de proteção de dados, o GDPR não exige explicitamente a criptografia, mas a descreve como “medidas técnicas e organizacionais apropriadas” para a segurança dos dados.
Em seu relatório Custo de uma violação de dados, a IBM apontou que a criptografia é um dos fatores mais impactantes que podem reduzir o custo médio das violações de dados.
2. Exposição a dados confidenciais
Os dados podem ser expostos devido a erro humano quando um funcionário negligente os carrega em um banco de dados público ou em um site. Mas esse tipo de vulnerabilidade de segurança também pode ser suportado por processos internos que realmente permitem que um funcionário não autorizado obtenha acesso e manipule dados confidenciais.
A Egress, uma empresa de segurança cibernética, realizou uma pesquisa revelando que 83% das organizações dos EUA expuseram acidentalmente dados confidenciais por e-mail, compartilhamento de arquivos, software de colaboração e aplicativos de mensagens.
3. Proteção insuficiente da camada de transporte
Esse tipo de vulnerabilidade lida com a troca de informações entre o aplicativo cliente e o servidor. Essas informações podem conter dados confidenciais, incluindo credenciais do usuário e detalhes do cartão de crédito. Quando o transporte de dados não é seguro, a comunicação pode ser interceptada e os invasores podem obter acesso aos dados e decifrar a criptografia se forem usados algoritmos fracos.
4. Componentes do sistema mal configurados e interações arriscadas
A configuração incorreta de componentes e interações entre eles é outro problema de segurança que encontramos com frequência. Por exemplo, ao configurar um sistema de TI, o administrador esquece de substituir as configurações padrão do fabricante e desabilitar as listagens de diretórios, deixando o sistema exposto. Outro exemplo é esquecer de restringir o acesso a dispositivos externos.
Falando em interações, é aconselhável que os aplicativos adotem uma abordagem de confiança zero e vejam todas as entradas como arriscadas antes que sejam verificadas e comprovadas como legítimas. Isso ajudará a evitar ataques, como scripts entre sites, nos quais os invasores infundem um aplicativo com dados não confiáveis.
Esse aspecto é particularmente relevante para soluções baseadas em nuvem. Uma pesquisa relatou que as configurações incorretas do servidor contribuíram para 200 violações na nuvem em dois anos. Outro estudo mostra que cerca de 70% das violações de segurança na nuvem começam com uma arquitetura defeituosa. Por exemplo, um bucket de armazenamento da AWS mal configurado expôs 750.000 aplicativos de certidão de nascimento nos EUA em 2019.
5. Controle fraco do lado do servidor
Esse tipo de vulnerabilidade de segurança representa tudo o que pode dar errado no lado do servidor, desde autenticação ruim até configurações incorretas de segurança que permitem ataques, como falsificação de solicitação entre sites, em que o navegador de alguns usuários emite ações não autorizadas para o servidor sem o conhecimento desse usuário.
Por exemplo, uma configuração incorreta em um servidor de banco de dados pode fazer com que os dados se tornem acessíveis por meio de uma pesquisa básica na web. E se contiver credenciais de administrador, os invasores poderão obter acesso ao restante do sistema.
6. Execução remota de código
Isso significa que as vulnerabilidades de segurança de software apresentadas pelo seu sistema permitem que invasores executem códigos maliciosos pela Internet em seus dispositivos. Por exemplo, quando um funcionário clica em um link de e-mail em um site de terceiros, o hacker por trás dessa configuração injeta malware no computador da vítima e assume o controle a partir daí. O forasteiro pode acessar dados confidenciais ou bloquear a máquina e exigir resgate.
7. Vulnerabilidades conhecidas baseadas em SO
Cada sistema operacional tem sua lista de vulnerabilidades de software. Algumas listas são publicadas online para que todos vejam. Por exemplo, aqui está a lista dos 10 principais pontos fracos do sistema operacional Windows 10 e aqui está a lista correspondente para o OS X. Cabe às equipes de segurança revisar esses pontos e abordá-los para minimizar as possibilidades de ataques.
8. Executando scripts sem verificação de vírus
Este é um tipo de vulnerabilidade de segurança comum que está presente em determinados navegadores da web. Por exemplo, o Safari permite a execução de scripts “confiáveis” sem permissão explícita do usuário. Os hackers tendem a explorar essa fraqueza tentando executar um código malicioso que pode ser confundido com um script “seguro”. Felizmente, muitas vezes é possível desativar esse “recurso”.
9. Credenciamento fraco
Os invasores podem obter acesso forçando as credenciais dos usuários. Isso é especialmente fácil quando a senha “123456” sozinha é usada por mais de 23 milhões de pessoas. Isso além de senhas, como “admin”, “password” e “qwerty”, que também são comuns e bastante fáceis de hackear.
Esse tipo de vulnerabilidade de software é considerado humano, mas as empresas podem implementar medidas que forçariam os funcionários a escolher opções mais fortes e alterar suas credenciais com bastante frequência. Isso é crucial, dado o papel que o credenciamento fraco desempenha na segurança do sistema. As estatísticas mostram que 80% das violações de segurança foram habilitadas por senhas fracas e que 61% dos usuários tendem a utilizar uma frase de segurança para vários serviços.
10. Usando componentes com vulnerabilidades conhecidas
A implantação de componentes de terceiros, como bibliotecas, APIs, conjuntos de dados e estruturas, pode reduzir significativamente o esforço necessário para manter seu sistema funcionando. Mas também pode introduzir vulnerabilidades. É importante permanecer diligente e avaliar esses componentes para garantir que eles não deixem nenhum backdoor aberto para acessar dados confidenciais.
Mesmo baixar e usar imagens de terceiros pode ser perigoso. Em 2021, 30 imagens do Docker Hub com um volume de download de 20 milhões foram implantadas para espalhar malware de criptomineração.
11. Design inseguro
Esse é um tipo de vulnerabilidade de segurança relativamente novo que apareceu no OWASP em 2021. A organização exige padrões de design seguros, modelagem de ameaças e arquitetura de referência para eliminar os pontos fracos desde o início.
O design seguro é uma metodologia que avalia constantemente as ameaças e garante a robustez do código. Ele encoraja testes sistemáticos contra métodos de ataque conhecidos. Ele vê a segurança como uma parte essencial do desenvolvimento de software, não como um complemento ou um recurso interessante.
12. Bugs de segurança em APIs
As interfaces de programação de aplicativos (APIs) permitem que componentes de software interajam entre si, o que é uma parte essencial de um sistema de TI. No entanto, APIs com medidas de segurança fracas podem abrir várias brechas, como autenticação quebrada e permitir injeção de código e outras práticas maliciosas.
Por exemplo, uma API construída de forma imprudente, que depende do lado do cliente para filtrar informações antes de apresentá-las aos usuários, pode expor dados, tornando-os disponíveis para serem obtidos. Os dados confidenciais devem ser filtrados no lado do servidor. Aqui está outro exemplo desse tipo de vulnerabilidade de segurança: se uma API não restringir o número de solicitações recebidas, ela poderá abrir a oportunidade para ataques de negação de serviços (DoS).
Aqui está a lista OWASP das 10 principais vulnerabilidades de segurança relacionadas à API para sua consideração. APIs inseguras abriram as portas para muitos ataques nos últimos anos. Um exemplo infame vem do LinkedIn, quando um agente malicioso usou a API sem autenticação da plataforma para baixar dados de 700 milhões de usuários. Usando uma violação de API semelhante, um intruso recuperou informações sobre 1,3 milhão de usuários do Clubhouse e as publicou em um fórum de hackers.
13. Autenticação inadequada
Medidas de autenticação fracas permitem que hackers explorem a opção “esqueci a senha” para redefinir contas ou iniciar um ataque de controle de conta. Ajuda o intruso quando a questão de autenticação é algo como a data de nascimento do usuário ou o nome do animal de estimação, pois esta é uma informação publicamente disponível graças às mídias sociais. Seguir um processo de autenticação multifator aumentará a segurança. Infelizmente, a pesquisa mostra que apenas 26% das empresas dos EUA usam esse método de autenticação forte.
14. Monitoramento e logs insuficientes
Os logs armazenam dados sobre eventos do sistema, atividades de rede e ações do usuário. Ao monitorar os logs, as equipes de segurança podem observar todas as atividades que ocorreram recentemente e identificar eventos suspeitos. Se os logs não forem revisados sistematicamente, isso cria uma lacuna de informações em que vulnerabilidades de software e atividades maliciosas permanecem sem serem detectadas.
15. Privilégios de superusuário
Quanto menos dados um usuário puder acessar, menos danos sua conta poderá causar se for comprometida. No entanto, algumas empresas ainda concedem negligentemente privilégios de superusuário à esquerda e à direita e não restringem o acesso dos funcionários ao que eles precisam para cumprir suas tarefas diárias. Se um invasor se apossar de uma conta de nível de administrador, ele poderá desativar o software antivírus e o firewall, instalar aplicativos prejudiciais, apropriar-se de arquivos etc.
De acordo com a pesquisa, 74% das violações de dados começam com o abuso de credenciais privilegiadas.
16. Software desatualizado
A maioria das empresas percebe que uma atualização de software oportuna é a chave para um sistema seguro. No entanto, parece que apenas alguns realmente seguem essa prática. A Cybernews relata um estudo recente que investiga a frequência de atualização de software. Essa pesquisa foi realizada durante um período de 18 meses e descobriu que 95% dos sites examinados realmente rodam em software desatualizado com vulnerabilidades conhecidas. A equipe de pesquisa também descobriu que um produto de software médio está normalmente quatro anos atrasado em relação ao patch mais recente.
Além disso, a Kaspersky determinou que as empresas que executam software desatualizado provavelmente incorrerão em 47% mais custos em caso de violação.
Para dar um exemplo, a cadeia de hotéis Marriott teve 500 milhões de registros de dados comprometidos em uma violação de segurança que resultou de um software sem correção.
17. Vulnerabilidades no código-fonte
Vulnerabilidades de código surgem durante o desenvolvimento de software. Por exemplo, um programa pode transmitir dados confidenciais sem criptografia ou usar uma string aleatória, que na verdade não é aleatória. Esses erros geralmente são detectados durante a fase de teste de software.

De acordo com uma recente pesquisa do Secure Code Warrior, 86% dos desenvolvedores participantes admitiram que não veem a segurança do aplicativo como uma prioridade ao escrever um código, com 36% atribuindo isso a prazos apertados. A pesquisa também revelou que 33% dos entrevistados nem entendem o que torna seu código vulnerável.
18. Injeção de SQL
Esse tipo de vulnerabilidade de segurança é relevante para sites e aplicativos desenvolvidos por Structured Query Language (SQL). Ele permite que o invasor altere instruções SQL fornecidas pelo usuário e engane o interpretador para executar comandos não intencionais e conceder acesso ao banco de dados. Dessa forma, os invasores podem manipular dados confidenciais substituindo/excluindo/modificando campos confidenciais.
Esta é uma vulnerabilidade bastante antiga que representou mais de 65% dos ataques a aplicativos de software já em 2019.
Tipos de vulnerabilidade de segurança específicos do sistema e como evitar essas vulnerabilidades de software
Depois de destacar as vulnerabilidades de segurança comuns, vamos passar para os pontos fracos específicos do aplicativo e do sistema e descobrir como proteger seus sistemas deles.
A nuvem
Há uma extensa lista de possíveis tipos de vulnerabilidade de segurança na nuvem, independentemente de ser Azure, AWS, GCP ou qualquer outro provedor de nuvem. Nosso especialista em nuvem, Alexey Zhadov, divide essas vulnerabilidades por camadas e dá dicas de como preveni-las.
Vulnerabilidades da camada do sistema
Qualquer que seja o serviço de nuvem em que seu software esteja sendo executado, sempre há um sistema operacional sob o capô. Mesmo que você possa acessar apenas um painel de controle para seu recurso. Todo sistema operacional tem seus “buracos” e “backdoors”. Os desenvolvedores de sistemas operacionais procuram constantemente essas fraquezas, tentando cobrir as bases. É por isso que é importante manter seu software atualizado e estar em contato com os mais recentes desenvolvimentos no campo da segurança cibernética sobre problemas conhecidos.
Vulnerabilidades da camada de rede
Cada recurso de nuvem está sendo executado em uma rede de nuvem. E com isso vem a possibilidade de se conectar ao recurso externamente. A equipe de segurança precisa garantir que a configuração da rede seja adequada. Nunca abra portas que você não planeja implantar, use a lista de permissões de IPs que você conhece e redes que devem se conectar à sua solução. Tenha cuidado ao abrir uma conexão direta com portas RDP/SSH de qualquer lugar que não seja IPs conhecidos.
Vulnerabilidades da camada de configuração
A nuvem deve ser configurada adequadamente de acordo com os requisitos e objetivos do usuário, e essa configuração deve ser mantida sempre atualizada. Configure políticas e procedimentos de gerenciamento de configuração e monitore quaisquer atividades suspeitas.
Vulnerabilidades do fator humano
Não se esqueça dos usuários finais e administradores que têm acesso à solução em nuvem. O sequestro de contas é uma das fraquezas mais comuns em qualquer sistema de TI. Se um invasor obtiver acesso às credenciais da conta de alguém, ele poderá entrar e manipular livremente o sistema dentro dos direitos da conta, e ninguém o impedirá até receber uma notificação do usuário hackeado. Aqui está a lista dos tipos mais comuns de vulnerabilidades de segurança em aplicativos em nuvem:
- Redes e firewalls mal configurados
- Armazenamento em nuvem mal configurado
- APIs inseguras
- Gerenciamento de acesso ruim
- Sequestro de conta
- Insiders maliciosos
- Vulnerabilidades do sistema
- Vulnerabilidades de locação compartilhada
- Falta de autenticação multifator para usuários e dispositivos que desejam ingressar na rede
Alexey recomenda algumas regras simples que as empresas podem implementar para proteger seus sistemas em nuvem:
- Mantenha os sistemas operacionais atualizados
- Proteja suas redes
- Use servidores bastion para acessar seu perímetro fechado
- Configurar grupos de segurança de rede e listas de controle de acesso
- Restringir o acesso para portas desnecessárias
- Configure o monitoramento e o registro quando possível
- Implemente o controle de acesso multifator para todos os usuários
- Use firewalls e proteção contra DDoS
- Use ferramentas de nuvem para verificar a conformidade com os padrões de segurança, como a Central de Segurança do Azure
Aplicativos da web
Alexey também avaliou os problemas de segurança de software que assombram os aplicativos da web. Ao explorar essas vulnerabilidades, os invasores podem causar sérios danos ao aplicativo e à organização como um todo. Aqui estão os ataques mais comuns de aplicativos da Web resultantes de vulnerabilidades de segurança de aplicativos da Web:
- injeção SQL
- Script entre sites
- Travessia do caminho
- Execução de comando remoto
Se os cibercriminosos lançarem esses ataques com sucesso, eles podem plantar malware, comprometer contas de usuários, acessar informações restritas e muito mais. Então, como testar software em busca de vulnerabilidades? Alexey recomenda a realização de testes de segurança de aplicativos da Web para avaliar os seguintes parâmetros:
- Validação de entrada. Como o aplicativo processa a entrada e pode detectar e bloquear quaisquer entradas maliciosas?
- Configuração do servidor. Ele usa um método de criptografia forte?
- Gerenciamento de autenticação. Que tipos de autorização são aplicados? Os usuários podem optar por senhas fracas?
- Opções de autorização. O aplicativo pode se proteger contra escalações de privilégios?
- Logíca de negócios. Os usuários podem inserir dados inválidos? Eles podem pular etapas de autenticação? É possível que os usuários danifiquem a integridade do aplicativo e seus dados?
Aplicações Móveis
Ao falar de segurança de aplicativos móveis, não podemos desconsiderar os tipos de vulnerabilidade de segurança apresentados pelo próprio dispositivo além do aplicativo. Alexey Zhadov, nosso especialista em nuvem e dispositivos móveis, também compartilhou problemas comuns que afetam os aplicativos móveis:
- Controle do lado do servidor fraco
- Armazenamento de dados inseguro
- Proteção insuficiente da camada de transporte
- Vazamento de dados não intencional
- Autorização e autenticação ruins
- Criptografia ruim
- Injeção do lado do cliente
- Entradas não confiáveis
- Tratamento de sessão inadequado
- Falta de proteção binária
- Uso inadequado do SO
- Tráfego inseguro e chamadas de API
- Manipulação de código e dispositivos com jailbreak
- Registro e monitoramento inadequados
- Configurações incorretas de segurança
Para proteger aplicativos móveis, Alexey recomenda algumas práticas simples que as empresas podem implementar no design e manutenção de aplicativos:
Avaliação de código de código aberto: a maioria dos aplicativos móveis usa bibliotecas de terceiros de código aberto disponíveis para todos. Isso agiliza o processo de desenvolvimento, mas também abre backdoors para possíveis invasores. Portanto, é obrigatório testar rigorosamente o código de terceiros para vulnerabilidades de segurança de software antes de incorporá-lo ao aplicativo.
Práticas fortes de criptografia: criptografar e descriptografar dados durante a transferência. Com uma forte técnica de criptografia de dados, os dados do aplicativo, como código-fonte, informações do usuário e credenciais de login, o armazenamento do seu aplicativo estará protegido. Depois que os dados forem criptografados, os hackers não poderão interpretá-los, mesmo que tenham acesso ao conteúdo original.
Certificado de assinatura de código: os desenvolvedores podem assinar aplicativos móveis para protegê-los de ataques cibernéticos e ganhar a confiança do usuário. Essa assinatura garante que o código não foi interpretado ou alterado após a assinatura do aplicativo. A equipe de segurança pode encontrar várias opções de certificados de assinatura de código com preços modestos. Essa prática é econômica e confiável.
Proteção de cache de dados: os dados em cache contêm informações recuperadas do aplicativo para ajudar na reabertura mais rápida para melhorar o desempenho do aplicativo. O cache de dados geralmente é armazenado sem medidas de segurança adicionais no dispositivo do usuário. É uma prática mais segura gerar uma senha e bloquear o aplicativo. Além disso, Alexey recomenda que você limpe os dados em cache com frequência e faça login usando uma conexão de rede segura.
Armazenamento seguro de dados: cada aplicativo contém dados que os invasores podem usar indevidamente. Inclui informações dos usuários e do desenvolvedor do aplicativo. Portanto, é essencial armazenar esses dados com segurança em um armazenamento em nuvem seguro, em vez de depender de unidades de armazenamento locais.
Técnicas de autenticação e autorização: É essencial configurar a autenticação multifator para evitar o roubo de dados. Inclui ID de usuário, senha, PIN, OTP, etc. A autorização deve sempre ocorrer no lado do servidor para verificar as funções e permissões dos usuários autenticados.
Limpeza de dados e bloqueio de dispositivos: Este recurso é usado principalmente em aplicativos que contêm dados confidenciais, como informações pessoais, financeiras, de saúde, etc. aplicativo é bloqueado automaticamente. Também proíbe que os usuários escolham um número sequencial para suas senhas em vez de letras maiúsculas, caracteres especiais, alfabetos, números, etc.
Contração de engenharia reversa: os hackers usam engenharia reversa para adulterar a funcionalidade do aplicativo. Ao obter acesso ao código-fonte do aplicativo, os hackers podem contornar o processo de autenticação, falsificar sua localização e roubar os dados. Reforçar a segurança do tempo de execução é fundamental para neutralizar a engenharia reversa. Ele impede que invasores modifiquem as funções internas de um aplicativo alterando sua estrutura de código para afetar o comportamento do aplicativo.
Soluções de IoT
O que torna as soluções de IoT únicas do ponto de vista da segurança é que os recursos de cada dispositivo são restritos por seus requisitos de uso. Não há espaço para implementar nenhum recurso de segurança sofisticado que consuma capacidade extra, memória ou energia, o que torna os dispositivos IoT vulneráveis.
Nosso especialista em IoT, Yahor Paloika, destaca os seguintes tipos de vulnerabilidade de segurança em dispositivos conectados:
- Credenciais codificadas. Os dispositivos IoT vêm com senhas codificadas que os administradores às vezes esquecem de alterar, dando aos hackers a possibilidade de penetrar facilmente no sistema usando essas credenciais conhecidas.
- Redes desprotegidas. Algumas redes não impõem autenticação forte, permitindo que invasores adicionem dispositivos, reconfigurem a configuração para alterar o fluxo de dados, interceptar dados e injetar seus próprios dados para imitar as leituras dos sensores.
- Gerenciamento de atualização fraco. Muitos dispositivos IoT funcionam de forma independente e não dependem de interferência humana para realizar atualizações. Nesse caso, um sistema de gerenciamento de atualizações é responsável por garantir que as atualizações automáticas cheguem por meio de um canal criptografado, sejam originárias de uma fonte verificada e não sejam corrompidas. Se esse sistema for fraco, permitirá que invasores corrompam o software e o firmware atualizados, alterando o comportamento do dispositivo.
- Módulos de código desatualizados. Esquecer de eliminar módulos desatualizados que não são mais usados dá aos hackers tempo suficiente para explorar seus problemas de segurança de software e encontrar brechas para penetrar no sistema. Todos os módulos que não fazem parte da funcionalidade dos dispositivos conectados devem ser removidos.
- Proteção de dados. Todos os dados que circulam dentro da rede IoT devem ser criptografados, e somente usuários autorizados podem ter acesso a eles.
A invasão de sistemas IoT pode ter um efeito devastador. Por exemplo, em um experimento, uma equipe de pesquisadores conseguiu penetrar no software dos dispositivos IoT no Jeep Cherokee e enviar comandos maliciosos pelo sistema de entretenimento do Jeep. Mexeram no ar condicionado, baixaram a temperatura, ligaram os para-brisas e, depois, para horror do motorista, desabilitaram os freios. Por sorte, foi apenas um experimento. Aqui estão algumas dicas que Yahor recomenda para proteger os sistemas IoT:
- Use um protocolo criptográfico de segurança intensiva existente, como Transport Layer Security (TLS), para dar suporte à comunicação em uma rede IoT e compensar a falta de segurança integrada
- Tenha um moderno subsistema integrado de gerenciamento de chaves e certificados, que fornece a criptografia e o nível de segurança necessários. Além disso, Yahor recomenda atualizar chaves e certificados uma vez a cada seis meses pelo menos
- Implemente um sistema de gerenciamento de senhas confiável para gerar senhas fortes e alterá-las sistematicamente
- Implemente um sistema de gerenciamento de atualizações que permita apenas atualizações seguras de uma fonte legítima, bloqueando qualquer tentativa de forçar alterações corrompidas
Soluções de IA
Há um aspecto que diferencia substancialmente as soluções de inteligência artificial (IA) e aprendizado de máquina (ML) do restante dos sistemas mencionados neste artigo – é o fato de que esses modelos são frequentemente treinados para fazer previsões, e esse processo de treinamento apresenta vários tipos de vulnerabilidades de segurança. Nosso especialista em IA, Maksym Bochok, destacou as fraquezas mais populares:
- O invasor pode adulterar o conjunto de dados de treinamento e forçar o modelo a aprender regras falsas e fazer previsões erradas
- Os engenheiros de ML podem optar por modelos pré-treinados existentes que encontram online, e esses modelos já podem ser maliciosos. Por exemplo, eles podem conter o vírus Trojan ou outro malware.
- O intruso pode se apossar do próprio algoritmo e ajustar o código, os pesos e outros parâmetros para modificar o comportamento do modelo.
Além disso, a IA é frequentemente combinada com outras tecnologias, como IoT e nuvem, tornando-a suscetível aos tipos de vulnerabilidade de segurança introduzidos por esses sistemas.
Para proteger os sistemas de IA, nosso especialista recomenda o seguinte:
- Ao usar modelos pré-treinados e conjuntos de dados externos, verifique se eles não contêm malware
- Teste sistematicamente seus algoritmos para a saída desejada para garantir que ninguém tenha adulterado as regras correspondentes ou introduzido viés, etc.
- Monitore os desvios de dados (alterações nos dados de entrada)
- Detecte outliers, pois os invasores podem inserir dados potencialmente perigosos para distorcer o modelo para a saída desejada
- Pesquise possíveis discrepâncias em seu conjunto de dados de treinamento
- Use ferramentas gerais de avaliação de segurança de IA, como Counterfit. Isso ajudará a garantir que os algoritmos sejam confiáveis e robustos.
- Beneficie-se das ferramentas de proteção de dados existentes e proteja os dados confidenciais quando armazenados e usados. Um exemplo é a ferramenta Imperva que pode servir como firewall externo.
Em uma nota final
Se você é um negócio de sucesso, há uma boa chance de que alguém tenha ou esteja tentando invadir seu sistema para pedir resgate ou causar danos à reputação. E como os hackers estão constantemente procurando brechas para explorar, sua equipe de TI está trabalhando para reduzir os riscos. Para garantir que você vença esta corrida, consulte uma empresa de segurança e testes experiente que o ajudará a avaliar o estado do seu sistema e fornecer recomendações sobre como melhorar.
Enquanto isso, para evitar que diferentes tipos de vulnerabilidades de segurança exponham seus aplicativos, preste atenção à configuração do seu sistema, certifique-se de que todos os seus softwares estejam atualizados e treine seus funcionários em práticas seguras.
Tem dúvidas sobre a segurança do seu sistema existente? Ou quer construir um aplicativo com segurança em mente? Deixe a equipe ITRex uma linha! Nossos especialistas em segurança testarão seu hardware e software em busca de vulnerabilidades e sugerirão melhorias.
Originalmente publicado em https://itrexgroup.com em 6 de julho de 2022.
