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
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.
- Como funcionam segurança e usabilidade no desenvolvimento remoto de software?
- Por que as empresas devem prestar atenção ao desenvolvimento seguro de softwares
- Ransomware segue como a maior ameaça digital no mês de maio
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.”
É 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 Industry – Data 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.
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.
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.