Dicas básicas para a proteção de dados durante o desenvolvimento de softwares

Dicas básicas para a proteção de dados durante o desenvolvimento de softwares

Por Roseli Andrion | Editado por Claudio Yuge | 21 de Junho de 2021 às 19h00
Montagem Canaltech

Um ambiente de desenvolvimento de software deve ser seguro. Afinal, com o compartilhamento de informação na internet e entre dispositivos cada vez mais frequente no cotidiano, zelar pela segurança da informação das aplicações é fundamental — basta lembrar que o ataque a computadores, tablets e smartphones é cada vez mais comum.

Isso pode parecer óbvio, mas nem sempre todas as medidas necessárias são adotadas na criação dessas ferramentas. Isso naturalmente pode comprometer o resultado — mesmo nos programas mais simples.

Por isso, a segurança digital deve estar presente desde a elaboração do software até depois de sua implementação: essa é a melhor forma de garantir que o usuário terá um programa protegido. “Essa preocupação é necessária porque a desenvolvedora pode ser uma potencial porta de entrada para criminosos em larga escala”, diz Daniel Barbosa, especialista em segurança da informação e pesquisador da ESET Brasil. “Então, é essencial que elas tenham a consciência da necessidade do desenvolvimento seguro.”

Quer ficar por dentro das melhores notícias de tecnologia do dia? Acesse e se inscreva no nosso novo canal no youtube, o Canaltech News. Todos os dias um resumo das principais notícias do mundo tech para você!

Imagem: Reprodução/Elements/wutzkoh

É preciso lembrar que quanto mais se cuida da segurança da informação durante a criação de aplicações, mais confiável é o produto final. E, em mercados cada vez mais competitivos, a segurança de um programa pode ser responsável por seu sucesso. “Os aspectos relacionados à segurança no desenvolvimento são obrigatórios. Não é uma lista para verificar o que a empresa tem, são pontos que necessariamente precisam fazer parte do ambiente de criação de software.” Quando uma solução é confiável, o ativo mais importante do mundo digital, a informação, fica resguardado.

A qualidade de um sistema pode ser medida de diferentes maneiras. Entre as características de uma boa ferramenta, é possível citar: estabilidade, confiabilidade, baixo nível de falhas e atualizações constantes. A definição de melhores práticas a serem seguidas pela equipe de desenvolvimento vai garantir a elaboração de soluções mais seguras. Confira os pontos a serem considerados.

Transferência e armazenamento de dados

Esse aspecto é crucial. A troca de informações pode ser mais confiável quando feita com certificado do tipo PCI–DSS (Payment Card IndustryData Security Standard, o padrão de segurança de dados usado na indústria de pagamento por cartão). Com ele, a confidencialidade da operação é feita com métodos sofisticados de criptografia.

Rotinas de verificação de pacotes de dados podem ajudar a aumentar a integridade e a autenticidade das informações. Dessa forma, tanto o remetente quando o destinatário ficam seguros de que a conexão usada no processo é 100% segura e de que a captura e o roubo de dados sensíveis serão evitados.

Imagem: Reprodução/Elements/Rawpixel

Além disso, o uso da nuvem precisa ser feito de forma adequada. Quando for necessário usar um drive para a transferência de arquivos, é importante que ele seja da empresa, com autenticação adequada e VPN estabelecida. “Um drive do Google, do Dropbox ou do Mega não é inseguro, mas certamente não é a melhor opção”, lembra Barbosa. “Como são gratuitos, o usuário fica à mercê dos termos de uso. Eles podem dizer, por exemplo, que os dados que trafegam naquele ambiente podem ser usados pelo provedor.”

Ambiente de desenvolvimento seguro

Além da segurança digital do ambiente, é importante ter um local sem vulnerabilidades físicas. O acesso às áreas destinadas à criação de sistemas deve ser controlado. Além disso, os servidores devem ser mantidos isolados para prevenir que sejam usados por pessoal não autorizado.

Durante a pandemia, com muitos desenvolvedores trabalhando em casa, é essencial proteger o ambiente doméstico. “Pelo menos o computador usado pelo profissional precisa ter antivírus, criptografia e comunicação protegida”, diz Barbosa. “Nos escritórios, a proteção física evita o roubo de equipamentos e informações: podem ser câmeras, cabos para prender o notebook na estação de trabalho, criptografia para impedir o acesso ao conteúdo do disco rígido e outros recursos que ajudem a evitar a perda de material.”

Técnicas seguras de criação

Independentemente do método de trabalho escolhido pela equipe (como metodologias ágeis ou tradicionais), ele deve ser adaptado para que a segurança seja reforçada. Assim, sempre que verificar um código, o engenheiro de software precisa buscar possíveis falhas que possam comprometer a segurança digital.

A mesma atenção deve ser dada ao tamanho das memórias e das coleções de software para não comprometer a experiência do usuário. Além disso, durante o desenvolvimento, erros devem ser identificados e solucionados rapidamente.

É muito importante, ainda, se atentar às técnicas de validação de entrada e de saída, ao tratamento de variáveis e à criptografia. “Os códigos devem ser concebidos com isso em mente para que as interações, com o usuário ou com a rede, não aconteçam de forma inadequada nem levem à exposição de informações ou deem acesso a algo que não deveriam”, destaca Barbosa. “Quando esses pontos não são contemplados, pode haver vulnerabilidades.”

O especialista explica que um dos erros mais comuns é o não tratamento de entrada ou de saída. “Se a interação do usuário com o software não está configurada adequadamente, pode permitir uma entrada diferente da esperada, que será usada para sobrescrever parte do código. Isso pode, eventualmente, fazer a aplicação executar uma função criada pelo criminoso.”

Revisão de brechas no código

Como tentativas de roubo de dados são cada vez mais comuns, é preciso investir em prevenção. Isso inclui a revisão do código, que pode ser feita de forma automatizada ou pela equipe de segurança digital da empresa, o uso de modelos de ameaça para guiar os desenvolvedores e a execução de ataques tradicionais para verificar a confiabilidade do sistema.

Imagem: Reprodução/Elements/martinholverda

Uso de indicadores de desempenho

Indicadores-chave de desempenho (Key Performance Indicators – KPIs) são usados para avaliar a atuação da equipe durante o projeto. Com eles, os profissionais podem compreender seu progresso no aprendizado de novas técnicas. Já para o gerente, os KPIs são uma forma de medir o conhecimento e o desempenho dos colaboradores.

No segmento de segurança digital, os indicadores permitem definir padrões de proteção. Assim, é possível procurar novos métodos para evitar as ameaças mais comuns, como vírus e injeções de SQL. “Os desenvolvedores devem ser capacitados e estar cientes da necessidade do desenvolvimento seguro”, reforça Barbosa.

Definição de ciclo de desenvolvimento seguro

O ciclo de desenvolvimento seguro (Security Development Lifecycle – SDL) envolve o uso de diversos produtos e atividades, como a verificação dos processos da empresa, para criar sistemas seguros. O SDL tem sete etapas:

  • Treinamento: todos os integrantes da equipe devem ser treinados sobre os princípios e as tendências mais modernos de segurança e privacidade.
  • Requerimentos: é fundamental que os recursos que permitem garantir a segurança e a privacidade do usuário estejam presentes. Além disso, é crucial ter um sistema de rastreamento de falhas para a resolução rápida de problemas.
  • Design: é usado para analisar a superfície de ataque da aplicação e criar um modelo com as principais ameaças.
  • Implementação: o código deve ser criado com técnicas de programação defensiva e padrões que reduzem a chance de haver vulnerabilidades.
  • Verificação: é a etapa de teste, verificação do código e inspeção da documentação. Pode ser feita com o uso de ferramentas automatizadas ou por profissionais externos.
  • Lançamento: é importante preparar a equipe de suporte para resolver problemas. Os responsáveis por incidentes mais sérios devem estar preparados para minimizar os danos da forma mais rápida possível.
  • Resposta: falhas encontradas após a distribuição do sistema devem ser identificadas e resolvidas.

Barbosa destaca, ainda, que é importante acompanhar entidades que definem padrões de segurança, como a Mitre Corporation e o Projeto Aberto de Segurança de Aplicações Web (Open Web Application Security Project – Owasp). Elas servem como guia para a programação segura.

Gostou dessa matéria?

Inscreva seu email no Canaltech para receber atualizações diárias com as últimas notícias do mundo da tecnologia.