Prevenção contra perda de dados para desenvolvedores
24 de maio de 2023
0 minutos de leituraUma violação de segurança na forma de um vazamento de dados pode causar danos caros à reputação de uma empresa. Mas o que é exatamente uma violação de dados? A Comissão Europeia divide as violações de dados em três categorias distintas: violações de confidencialidade, de integridade e de disponibilidade:
Uma violação de confidencialidade ocorre quando há divulgação ou acesso não autorizado ou acidental a dados pessoais.
Uma violação de integridade ocorre quando há alteração não autorizada ou acidental de dados pessoais.
Uma violação de disponibilidade ocorre quando há perda ou destruição acidental ou não autorizada do acesso a dados pessoais.
Neste artigo, você vai entender melhor o que é uma violação de dados e como evitar esse tipo de incidente ao projetar e desenvolver seu software.
O que é perda de dados?
Antes de aprender como evitar a perda de dados, é importante definir o que ela realmente significa, já que pode ocorrer de várias formas, como em um ataque de ransomware ou de hackers.
O ransomware pode ocorrer quando uma empresa baixa um malware que criptografa seus dados e os torna inacessíveis, a menos que uma quantia alta seja paga ao hacker para descriptografá-los. O hacker também pode ameaçar publicar esses dados se o valor não for pago, causando uma violação de confidencialidade.
Como um vazamento de dados pode acontecer
Há casos em que uma violação de dados não é causada por um concorrente ou por alguém que busca obter ganhos financeiros prejudicando uma empresa. Por exemplo, ela também pode ocorrer por erro humano. Segundo o site GRC eLearning, 82% de todas as violações de dados envolvem um fator humano — ou seja, uma ação manual foi a causa inicial da violação. Mesmo sem intenção maliciosa, ainda pode haver perda de dados se um funcionário perder um dispositivo físico, como um notebook corporativo. Por isso, treinamentos são essenciais em todas as empresas para reduzir esse tipo de situação.
De acordo com a legislação europeia, podem ser aplicadas multas astronômicas de até € 20 milhões ou 4% do faturamento, prevalecendo o valor mais alto. A Tessain publicou um artigo que documenta as maiores multas por violação de dados aplicadas neste ano. A Amazon está no topo da lista, com impressionantes € 746 milhões (US$ 877 milhões), seguida pelo WhatsApp, multado em € 225 milhões (US$ 255 milhões).
Sensibilidade dos dados e gravidade da perda
A gravidade de cada violação de dados também é determinada pelo tipo de dado vazado ou perdido. Isso inclui dados pessoais, como informações biométricas, de saúde, genéticas, políticas e religiosas. Por exemplo, se uma empresa usa leitores de impressão digital para controlar a entrada e a saída dos funcionários, essas impressões digitais serão armazenadas nos servidores da empresa. Se a empresa sofrer um ataque e os dados armazenados nos servidores forem parar nas mãos de terceiros mal-intencionados, os dados biométricos de todos os funcionários ficarão em risco. Quanto mais sensíveis forem os dados vazados, maior será a multa.
Como evitar a perda de dados
Com o aumento do volume de dados e das multas para empresas que sofrem perdas, essa preocupação só tende a crescer. Veja como você pode evitar a perda e o vazamento de dados — ou, pelo menos, reduzir esses riscos durante o desenvolvimento de software.
Escolha a arquitetura certa
Evitar o vazamento de dados exige muito mais do que implementar boas políticas de segurança. É preciso escolher a arquitetura certa para minimizar a perda de dados. As empresas podem adotar uma abordagem de design orientado a domínio (DDD), que permite separar adequadamente os componentes do sistema.
Separar a camada de apresentação da lógica de negócios e das entidades de domínio facilita o baixo acoplamento e a alta coesão. Você pode fazer isso usando objetos de transferência de dados (DTOs), que transportam dados entre processos e minimizam o número de chamadas de métodos entre cliente e servidor.
Como a maioria das transferências de dados envolve comunicação remota, recuperar informações costuma exigir várias solicitações. Por exemplo, um aplicativo cliente pode fazer as seguintes chamadas remotas ao servidor para recuperar o nome de alguém:

Como você pode ver, são necessárias várias chamadas remotas para obter todas as informações desejadas. No entanto, você pode usar um DTO para armazenar os diferentes valores e enviá-lo como resposta à solicitação do cliente. Assim, o cliente pode interagir localmente com o DTO e recuperar os valores conforme necessário. Esse método economiza várias chamadas remotas e minimiza a exposição de dados na rede:

Identifique os dados confidenciais
Proteger dados confidenciais deve ser uma prioridade desde o início do ciclo de vida de desenvolvimento de software (SDLC). É preciso planejar adequadamente como armazenar dados financeiros, objetivos de negócios, registros de saúde etc.
Um ponto importante é como manter a informação de identificação pessoal (PII). Todo dado que identifica uma pessoa de forma única, dentro ou fora da empresa, é considerado PII. As leis sobre o armazenamento e o uso de PII variam entre regiões, mas qualquer perda ou vazamento desses dados pode gerar multas pesadas e prejudicar sua reputação.
Uma boa prática é coletar o mínimo possível de dados. Se seu aplicativo não precisa de certos dados, não os colete. Menos dados significam menos tempo gasto protegendo-os e, no mínimo, violações menos graves. Técnicas de ofuscação, como mascaramento de dados, também podem ajudar.
Criptografe e aplique hash aos dados
A criptografia é um dos métodos mais antigos de proteção de informações confidenciais. Você pode proteger dados em trânsito e em repouso com diferentes técnicas de criptografia. Se você usa tabelas SQL para armazenar grandes volumes de dados, considere métodos de criptografia transparente de dados. O governo dos Estados Unidos recomenda o algoritmo Advanced Encryption Standard (AES) para proteger todos os dados armazenados.
Ao desenvolver seu aplicativo, priorize a transferência de dados por canais seguros. Os dados em trânsito devem usar o protocolo Transport Layer Security (TLS) para evitar espionagem e adulteração. Você também deve restringir o uso de serviços públicos na transferência de dados corporativos.
Use ferramentas de gerenciamento de segredos
Aplicativos modernos lidam com muitos segredos de configuração, como credenciais de acesso a bancos de dados, chaves de criptografia de API e variáveis de ambiente. É preciso planejar adequadamente como protegê-los. Uma ferramenta robusta de gerenciamento de segredos, como o HashiCorp Vault, oferece uma forma segura de armazená-los.
Ao escolher uma ferramenta desse tipo, porém, procure uma que facilite ao máximo a recuperação dos valores. Armazenar dados confidenciais dessa forma reduz o tamanho dos arquivos de configuração e minimiza o risco de vazamentos por meio de repositórios.
Restrições de acesso
Estabelecer restrições de acesso pode ajudar a evitar possíveis vazamentos e perdas de dados. Isso significa conceder acesso apenas a quem precisa dele. É evidente que funcionários iniciantes não devem ter os mesmos privilégios de visualização que pessoas em cargos de CEO. Esse modelo costuma ser chamado de controle de acesso baseado em função (RBAC): cada funcionário acessa apenas as informações necessárias para suas tarefas diárias, e o acesso ao restante da rede é restrito.
Privilégio mínimo
O princípio do privilégio mínimo concede apenas o nível mínimo de acesso necessário para que cada pessoa realize seu trabalho. Essa é considerada uma das formas mais eficazes de evitar vazamentos de dados, pois centraliza o gerenciamento dos acessos de todos os funcionários. Ao limitar o acesso de superusuários e administradores, se as credenciais de um funcionário vazarem ou forem acessadas por alguém de fora da empresa, o risco de vazamento de dados confidenciais será menor, já que o acesso desse funcionário é limitado.
Há algumas etapas importantes para implementar o princípio do privilégio mínimo com sucesso. É necessário criar e gerenciar um cofre digital com os acessos e as permissões de cada usuário, além de auditar todos os funcionários da empresa, especialmente as contas privilegiadas. Também é importante tomar precauções para proteger senhas, chaves SSH e endpoints.
Autenticação de dois fatores
Outra prática comum que ajuda a evitar vazamentos de dados é a autenticação de dois fatores. Ela pode ajudar a evitar ataques de força bruta e até mesmo proteger contra situações em que senhas fracas seriam a única barreira entre um invasor e grandes volumes de dados.
Armazenamento de dados (na nuvem ou local)
Os dados podem ser armazenados na nuvem, usando serviços como Microsoft Azure e Amazon Web Services (AWS), ou nas instalações da empresa, em servidores físicos. Adotar os procedimentos certos, tanto técnicos quanto organizacionais — como usar criptografia, definir diferentes permissões de usuário e evitar o envio de dados confidenciais — pode ajudar a evitar uma violação de dados.
Antes de implementar esses procedimentos, porém, é preciso considerar o princípio de privacidade desde a concepção, que empresas como a Snyk adotam por meio de diversos padrões aplicados em toda a organização. Algumas empresas optam por armazenar os dados localmente, mantendo offline os dados altamente confidenciais e acessíveis somente quando necessário.
Privacidade desde a concepção
O termo privacidade desde a concepção significa considerar a privacidade desde o início do desenvolvimento de software, seja ao trabalhar em uma correção ou em um projeto totalmente novo. Existem vários guias e certificações que as empresas podem buscar para garantir que estão fazendo o máximo para evitar ataques e vazamentos de dados. Por exemplo, você pode obter a certificação ISO 27001, uma norma que protege todas as informações presentes na nuvem, em formulários (digitais e em papel) e em formato digital em máquinas virtuais ou dispositivos corporativos.
Software de prevenção contra perda de dados
Muitas empresas usam softwares de segurança para evitar a perda e o vazamento de dados. A maioria dos softwares de proteção contra perda de dados, como BetterCloud e Symantec, se concentra em bloquear ações — muitas vezes, impedindo que usuários realizem ações por meio de dispositivos de armazenamento USB ou baixem malware por acidente. Outras empresas usam firewalls para proteger todo o ecossistema tecnológico, criptografam todos os repositórios para evitar vazamentos mal-intencionados ou adotam a autenticação de dois fatores para que os funcionários acessem suas contas de trabalho. Todas essas medidas ajudam a controlar o risco de compartilhamento de dados e informações confidenciais ou críticas fora do ambiente da empresa.
Como reduzir a gravidade de um vazamento de dados
As empresas costumam reduzir a quantidade de dados armazenados para minimizar a gravidade de possíveis vazamentos. O artigo 5(1)(c) do Regulamento Geral sobre a Proteção de Dados (GDPR) da União Europeia determina a adoção de procedimentos de minimização de dados, como a exclusão automática de dados antigos. Por exemplo, se a empresa XYZ Ltd. tiver clientes que não foram mantidos e não voltaram por, digamos, dez anos, todos os dados desses clientes podem e devem ser apagados.
Como a Snyk combate a perda de dados
Snyk é uma plataforma segura para desenvolvedores que se integra diretamente às ferramentas de desenvolvimento e oferece a segurança de que uma empresa precisa em toda a pilha tecnológica e ao longo de todo o ciclo de desenvolvimento, aplicando o conceito de privacidade desde a concepção apresentado anteriormente. A Snyk adota uma abordagem que prioriza os desenvolvedores: integra-se diretamente ao pipeline de trabalho para adicionar segurança desde a camada mais básica do desenvolvimento, onde o código é criado e mantido regularmente. Assim, o código é desenvolvido com segurança desde o início, e todo o ambiente também fica protegido com o uso do Snyk Container, que permite empacotar suas aplicações e detecta vulnerabilidades nelas.
O envio de todos os commits pelo Snyk Cloud adiciona outra camada de segurança ao que já foi apresentado. Com integrações com Amazon Web Services (AWS), Azure, Google Cloud, Terraform, AWS CloudFormation, Kubernetes, Docker e Open Policy Agent (OPA), são criados snapshots periodicamente para evitar a perda de dados e garantir que sua implementação esteja atualizada com as políticas mais recentes. A sincronização automática mantém tudo alinhado aos padrões mais atuais.
Ao implementar código open source, a Snyk verifica e monitora possíveis vulnerabilidades em cada etapa do pipeline e do processo de gerenciamento de releases. Com relatórios em tempo real e históricos, a Snyk consegue detectar vulnerabilidades e riscos de segurança desde a instalação inicial do código open source, durante sua execução e também na etapa de implantação.
Reduza o risco de vazamento de dados
Violações de dados comprometem suas informações e podem trazer consequências graves, como prejuízos financeiros, roubo de identidade, constrangimento, danos à reputação e quebra de contratos. Os vazamentos podem ter consequências ainda mais sérias, incluindo morte. Adotar os procedimentos adequados, incluindo as normas ISO 27000, o controle de acesso baseado em funções (RBAC) e a privacidade desde a concepção, ajuda você e sua empresa a evitar um evento catastrófico.
Você também pode usar ferramentas de empresas como a Snyk para proteger sua empresa, seus funcionários e as famílias deles. A Snyk oferece vários produtos que ajudam a evitar a perda de dados, independentemente do pipeline de dados ou da infraestrutura que você usa. Experimente a Snyk grátis hoje mesmo!
Adorado por desenvolvedores. Confiável para a segurança.
As ferramentas da Snyk, pensadas para desenvolvedores, oferecem segurança integrada e automatizada para atender às suas necessidades de governança e conformidade.
