Historicamente, a segurança da informação foi tratada como uma etapa final no desenvolvimento de sistemas, um “porteiro” que verificava o software apenas antes da entrada em produção. No entanto, com a velocidade exigida pelas metodologias ágeis e a sofisticação das ameaças cibernéticas, essa abordagem reativa tornou-se obsoleta e perigosa.
O conceito de security by design (segurança desde o projeto) não é apenas uma recomendação teórica, mas uma necessidade econômica e estrutural. Este artigo discute a importância de integrar a segurança em todas as fases da construção de software, transformando-a de gargalo em requisito de qualidade.
A premissa central da segurança moderna no desenvolvimento é o movimento conhecido como Shift-Left, que propõe mover os testes de segurança para o início do ciclo de vida (para a “esquerda” na linha do tempo do projeto). Segundo Anderson (2008), corrigir uma falha de segurança na fase de design custa exponencialmente menos do que remediar a mesma vulnerabilidade após o sistema estar em operação. Quando a segurança é negligenciada em prol da velocidade, acumula-se um “débito técnico de segurança” que, invariavelmente, resulta em vazamentos de dados ou indisponibilidade de serviço.
O desenvolvedor contemporâneo deve compreender que a codificação segura vai além da implementação de criptografia. Envolve a mitigação proativa das vulnerabilidades listadas no OWASP Top 10, como injeção de SQL e Cross-Site Scripting (XSS).
A adoção da cultura DevSecOps integra as equipes de desenvolvimento, segurança e operações, automatizando verificações de segurança (Sast/Dast) dentro da própria esteira de Integração Contínua (CI/CD). Isso garante que o código inseguro seja barrado antes mesmo de ser compilado.
Pfleeger e Pfleeger (2012) ressaltam que a segurança é um problema de sistemas, não apenas de ferramentas. Isso significa que a engenharia de requisitos deve explicitar restrições de segurança, como autenticação robusta e controle de acesso granular, com o mesmo rigor dado às funcionalidades de negócio. Ignorar a modelagem de ameaças na concepção da arquitetura é construir um castelo sobre a areia.
Podemos ver que a segurança no desenvolvimento de software não é responsabilidade exclusiva de especialistas em cibersegurança, mas uma competência intrínseca de todo engenheiro de software. A barreira entre “funcionalidade” e “segurança” deve deixar de existir. Um software inseguro é, por definição, um software sem qualidade.
Para o mercado e a academia, o desafio reside na formação de profissionais que escrevam código defensivo, entendendo que a proteção dos dados do usuário é o alicerce da confiança na economia digital.
REFERÊNCIAS BIBLIOGRÁFICAS
ANDERSON, R. Security Engineering: A Guide to Building Dependable Distributed Systems. 2. ed. Indianapolis: Wiley, 2008.
PFLEEGER, C. P.; PFLEEGER, S. L. Security in Computing. 4. ed. Upper Saddle River: Prentice Hall, 2006. (Edição consultada: 2012).
Prof. Me. Paulo César Monteiro Nunes
Docente do Curso de Engenharia de Software do Centro Universitário Ateneu.
Mestre em Computação Aplicada, especialista em Análise de Dados, em Segurança da Informação e em Educação a Distância e graduado em Pedagogia e Sistemas de Informação.
Saiba mais sobre o Curso de Engenharia de Software da UniAteneu.