5 vulnerabilidades comuns que impactam a segurança de dados

Muito tem se falado sobre segurança de dados e transformação digital, mas antes de mais nada, devemos falar em desenvolvimento seguro de software, onde tudo começa, objetivando a proteção contra a introdução acidental de vulnerabilidades de segurança nos sistemas.

Defeitos, bugs e falhas lógicas são consistentemente a principal causa de vulnerabilidades de softwares comumente exploradas. Por meio da análise de milhares de vulnerabilidades relatadas, os profissionais de segurança descobriram que a maioria das vulnerabilidades se origina de erros comuns de programação.

Ao identificar as práticas de codificação inseguras que levam a esses erros e instruir os desenvolvedores sobre alternativas seguras, as organizações podem adotar medidas proativas para ajudar a reduzir ou eliminar significativamente as vulnerabilidades no software antes da implantação.

Analisando código-fonte para evitar falha na segurança de dados

Dada a gravidade deste cenário, tanto as empresas mais desenvolvidas quanto os países como Brasil e até a União Europeia, estão se movimentando para criar regras específicas e capacitar cada vez mais seus profissionais de desenvolvimento focado na área de segurança.

A LGPD, Lei de Proteção de Dados brasileira, tem regras específicas que garante maior controle dos cidadãos sobre suas informações pessoais, exigindo consentimento explícito para coleta e uso dos dados e obriga a oferta de opções para o usuário visualizar, corrigir e excluir esses dados.

Outro ponto importante é a criação da figura do encarregado pelo tratamento de dados pessoais que deverá orientar os funcionários e os contratados da entidade a respeito das práticas a serem tomadas em relação à proteção de dados pessoais visando a garantia da segurança dos dados, impedindo acessos não autorizados e qualquer forma de vazamento.

Durante meus últimos 10 anos de trabalho encontrei diversas falhas de desenvolvimento e codificação absurdas que deixaram os muitos dados sensíveis corporativos expostos a ataques de hackers.

Abaixo listo os 5 erros mais graves que impactam diretamente a segurança de dados com dicas de como evita-los e diversos insights.

Se você trabalha em qualquer área de desenvolvimento de software, deve ler cuidadosamente cada um dos itens abaixo:

1. Falha ao Controlar Geração de Código (também conhecida como ‘Code Injection’)

Embora seja difícil negar a sensualidade do código gerado dinamicamente, os invasores acham isso igualmente atraente. Ele se torna uma séria vulnerabilidade quando seu código é chamado diretamente por pessoas não autorizadas, se entradas externas podem afetar qual código é executado ou se essas entradas são alimentadas diretamente no próprio código

2. Uso inadequado da Criptografia

Criptografia Grow-Your-Own é uma visão bem-vinda para os atacantes. A criptografia é difícil. Se matemáticos brilhantes e cientistas da computação em todo o mundo não conseguem acertar – e estão regularmente desatualizando suas próprias técnicas – então você também não pode.

A codificação de uma conta secreta e senha em seu software é extremamente conveniente – para engenheiros reversos qualificados. Se a senha for a mesma em todo o seu software, todos os clientes ficarão vulneráveis ​​quando essa senha for inevitavelmente conhecida. E porque é hard-coded, é uma dor enorme para consertar.

3. Validação de entrada incorreta também afeta a segurança de dados

Certifique-se de que sua entrada seja válida. Se você está esperando um número, não deve conter letras. Nem o preço de um carro novo deve ser em dólar. A validação de entrada incorreta pode levar a vulnerabilidades quando os invasores podem modificar suas entradas de maneiras inesperadas.

Muitas das vulnerabilidades mais comuns que impactam a segurança de dados de hoje podem ser eliminadas, ou pelo menos reduzidas, com validação de entrada restrita.

4. Codificação imprópria e consultas de banco estruturadas inadequadas (também conhecido como SQL injection)

A codificação de saída insuficiente está na raiz da maioria dos ataques baseados em injeção. Um invasor pode modificar os comandos que você pretende enviar para outros componentes, levando possivelmente a um comprometimento completo de seu aplicativo – sem mencionar a exposição dos outros componentes a explorações que o invasor não conseguiria iniciar diretamente. Quando o programa gera saídas para outros componentes na forma de mensagens estruturadas, como consultas ou solicitações, separe as informações de controle e os metadados dos dados reais.

Se os invasores puderem influenciar o SQL que você envia ao banco de dados, eles poderão modificar as consultas para roubar, corromper ou alterar os dados subjacentes, afetando a segurança de dados. Se você usar consultas SQL em controles de segurança, como a autenticação, os invasores poderão alterar a lógica dessas consultas para ignorar a segurança.

5. Controle de acesso inadequado (Autorização)

Se você não garantir que os usuários do seu software estejam fazendo apenas o que eles têm permissão, os invasores tentarão explorar sua autorização inadequada e exercer essa funcionalidade não autorizada.

Seu software pode precisar de privilégios especiais para executar determinadas operações; empunhar esses privilégios por mais tempo que o necessário é arriscado. Ao executar com privilégios extras, seu aplicativo tem acesso a recursos que o usuário do aplicativo não pode alcançar diretamente. Sempre que você inicia um programa separado com privilégios elevados, os invasores podem potencialmente explorar esses privilégios.

Essa lista de erros durante o desenvolvimento de software atende ao mesmo propósito de aumentar a conscientização das pessoas envolvidas nesse processo. Uma grande parte do sucesso é reconhecer os erros mais comuns e os modos de falha. Assim, você pode – pelo menos em teoria – perceber quais deles você está cometendo.

Discorda de algo ou quer ajudar a complementar o conteúdo? Deixe seu comentário abaixo!

Alcyon Junior

Mais artigos deste autor »

Alcyon Junior é Head of Security na RD Station, Palestrante Internacional, Escritor, Professor, Instrutor credenciado pela EXIN e PodCaster do SecurityCast.

Possui três graduações em Tecnologia de Informação, com ênfase em redes de computador. Especialista em Redes de Computador pela CISCO e MBA em Governança de TI. Mestre em Gestão do Conhecimento e da Tecnologia da Informação com ênfase em Segurança Cibernética pela Universidade Católica de Brasília. Doutorando em Engenharia Elétrica com ênfase em Segurança da Informação e Comunicações na Universidade de Brasília (UnB)

Certificações Internacionais: CompTIA Security+ ce Certification, Ethical Hacking Foundation (EHF), Information Security Based on ISO/IEC 27002 (ISFS), ITIL® Foundation Certificate in IT Service Management (ITILF), Cisco Networking Academy Program (CNAP), McAfee Vulnerability Manager (MVM) e Linux Server Professional (LPIC-1).


2 Comentários

Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!