As Fraquezas de Software Mais Perigosas de 2021

Views: 364
0 0
Read Time:5 Minute, 45 Second

Saryu Nayyar, CEO da Gurucul, espreita a lista de tipos perigosos de bugs de software da Mitre, destacando que os oldies ainda são as guloseimas para atacantes.

A Mitre Corp. atualizou recentemente sua lista dos 25 bugs de software mais perigosos, e não é surpresa que vários deles estejam nessa lista há anos. A lista Common Weakness Enumeration (CWE) representa vulnerabilidades que são amplamente conhecidas há anos, mas ainda estão sendo codificadas em software e sendo ignoradas por testes. Desenvolvedores e testadores presumivelmente já sabem melhor, mas ainda continuam cometendo os mesmos erros na criação de aplicativos.

Analisaremos as vulnerabilidades que parecem consistentemente fazer parte da lista dos 25 melhores ao longo dos anos. Mas primeiro, como esses erros surgem? Há uma variedade de razões.

Em muitos casos, os desenvolvedores simplesmente não têm segurança no topo de suas mentes, pois estão codificando o aplicativo. Seu principal objetivo é acertar a lógica de negócios.

Nos casos em que um algoritmo específico não parece estar funcionando corretamente, os desenvolvedores são conhecidos por desativar as restrições de segurança até que se comportassem como esperado. Os desenvolvedores perdem a face quando seu aplicativo tem um bug lógico, mas não quando há uma vulnerabilidade de segurança em potencial, porque estes estão amplamente ocultos até serem explorados.

Os testadores têm uma responsabilidade mais direta de garantir que os aplicativos sejam seguros, mas geralmente têm ferramentas e conhecimentos limitados para fazê-lo. Eles estão quase sempre testando código isoladamente, muitas vezes sem banco de dados, APIs ou rede. Sem uma maneira de olhar para a memória, ou criar comandos ilegais, e interpretar os resultados em termos de um ataque, eles são limitados em sua capacidade de identificar vulnerabilidades de segurança.

Há também a percepção primordial dentro dos grupos técnicos de que a segurança é de responsabilidade do grupo de produção de TI, não necessariamente dos desenvolvedores. Afinal, a TI possui ferramentas significativas para definir e gerenciar um perímetro de aplicativos e redes, como firewalls e antimalware, projetado para proteger toda a infraestrutura. O foco na segurança na produção geralmente significa que há menos foco no desenvolvimento e teste.

Tudo faz parte de uma cultura em que as vulnerabilidades de segurança são amplamente ocultas da vista porque normalmente não afetam a função do aplicativo, até que um ataque seja bem-sucedido e os sistemas ou dados sejam perdidos. Embora seja mais eficaz concentrar a atenção na segurança durante todo o ciclo de vida do aplicativo, ainda é fundamental estar vigilante na produção.

Vulnerabilidades Comuns Ainda Estão na Lista

O que se segue tem sido buracos de segurança comuns há décadas, e parece que eles não estão saindo da lista Mitre tão cedo. Eles permitem ataques antigos, mas confiáveis, para uma ampla gama de atacantes em todo o mundo, que frequentemente conseguem invadir sistemas e organizações que os utilizam.

Derrapagens de Buffer/Memória

Manipular memória continua sendo uma das formas mais populares de atacar um sistema. Se um invasor estiver de posse de um endereço de memória específico dentro de um aplicativo executável, ele poderá usá-lo para inserir valores ou comandos que excedam o tamanho desse espaço de memória. Uma vez fora do espaço de memória, os atacantes podem inserir software executável, possibilitando assumir um computador ou aumentar os níveis de permissão.

Existem muitas maneiras de aproveitar as derrapagens de buffer e memória para ataques. Se os desenvolvedores não limitarem os comprimentos de variáveis, uma superação pode permitir que um invasor escreva código malicioso diretamente na memória do aplicativo. No mínimo, é possível usar essa técnica para interferir na execução do aplicativo, fazendo com que ele trave ou retorne resultados incorretos.

Scripting entre Sites (XSS)

Os atacantes podem usar recursos da web para plantar scripts maliciosos. Nesse caso, os atacantes podem fazer upload de scripts em páginas da web desprotegidas do lado do cliente, a serem executadas quando outras pessoas abrirem essa página. Proteger contra isso envolve proibir aplicativos da web de baixar arquivos, e muitos desenvolvedores negligenciam adicionar essa restrição.

Muitas equipes de desenvolvimento continuam permitindo que atacantes baixem scripts em sites de terceiros, e os testadores têm dificuldade em identificar esse tipo de ataque, porque não está claro de onde vêm os scripts maliciosos. O resultado é que aqueles usuários que visitam inocentemente essas páginas da web podem baixar malware em seus sistemas de forma inadvertida e inconsciente.

Injeção de SQL/Comando

Muitos desenvolvedores se concentram em garantir que um aplicativo retorne o resultado desejado acima de tudo. Em alguns aplicativos, uma maneira comum de fazer isso é dar a todas as consultas do usuário acesso administrativo ao banco de dados. Embora isso muitas vezes funcione, tem consequências.

Primeiro, ele abre o acesso administrativo do banco de dados para qualquer usuário do aplicativo. Isso significa que qualquer pessoa que use o aplicativo pode usar comandos SQL para modificar o banco de dados. Usando caracteres de escape SQL, os atacantes podem inserir comandos SQL na interface da web e executá-los pelo banco de dados.

Em segundo lugar, mantém a conexão do banco de dados aberta para todos. Nunca é desconectado após cada uso individual. Isso significa que você não precisa ser um usuário autorizado para encontrar um banco de dados aberto. Isso torna a integridade de seus dados questionável continuamente.

Use Depois de Grátis

Este é outro truque de manipulação de memória. Quando um aplicativo precisa de memória para uma variável, ele aloca programaticamente essa memória ou a plataforma subjacente (JVM ou . Tempo de Execução NET). Quando o aplicativo termina com essa memória, ele ou a plataforma o retornam à lista de memória livre.

Se um invasor conseguiu obter o endereço de memória, ele pode obter acesso à lista de memória livre e inserir software malicioso na memória livre. Da próxima vez que a memória for alocada, ela será alocada com uma carga útil que pode causar danos. Além disso, a memória não é limpa quando é devolvida à lista de memória livre, permitindo que os atacantes leiam o conteúdo dessa memória.

Existem alguns depuradores comerciais que são capazes de analisar um processo em execução e permitir que programadores ou atacantes obtenham informações usando locais de memória. Embora esses tipos de depuradores sejam necessários, qualquer ferramenta que permita que atacantes examinem endereços de memória específicos para determinar seu conteúdo tem o potencial de ser usada como uma ferramenta de hacking.

Outros ataques cibernéticos enchem a placa

A lista Mitre contém outros ataques comuns, incluindo autenticação ausente ou imprópria, permissões incorretas e credenciais desprotegidas.

No entanto, os ataques mais populares ainda permanecem aqueles que existem quase desde os primórdios da internet pública. Até que as equipes de desenvolvimento e teste sejam capazes de internalizar algumas das vulnerabilidades mais significativas nas últimas duas décadas e desenvolver estratégias para combatê-las de forma confiável, conte com firewalls e abordagens de análise de segurança para ser a abordagem mais eficaz para proteger contra vulnerabilidades de software.

FONTE: THREATPOST

POSTS RELACIONADOS