O que é Secure By Design?
Secure by Design é um conceito aplicado na área de projetos de tecnologia que significa pensar em segurança desde o início do projeto, aplicando as melhores práticas e prevendo as possibilidades de riscos de segurança da informação desde a definição do escopo.
Com o crescimento da quantidade de dados gerados e transmitido por dispositivos conectados à internet (IOT), o crescimento das aplicações em Cloud e também do trabalho remoto pelos funcionários das empresas, esta abordagem começou a ser bastante utilizada pelas empresas, que começaram a ser mais proativas no assunto do que reativas, onde só tomavam ações relativas à segurança após algum incidente.
Podemos dizer que esta abordagem, da mesma forma que com a qualidade, traz o conceito de shift-left, onde o assunto deve ser abordado desde o levantamento e análise de requisitos para que estes já contemplem as ações necessárias nesses quesitos e o desenvolvimento já inicie com o direcionamento necessário para atender as questões da segurança, uma vez que a correção ou alteração do código se torna mais custosa a cada da evolução do projeto e que com a LGPD (Lei Geral de Proteção de Dados), as empresas também estão suscetíveis a autuações e perda de credibilidade em caso de vazamento de dados.
Benefícios
A aplicação do conceito de Secure By Design descreve as melhores práticas e padrões de segurança aplicados ao design da arquitetura da aplicação, sendo usados como princípios orientadores para o time de desenvolvimento, construindo a segurança desde o início do projeto levando em consideração os pilares da segurança da informação (Disponibilidade, Integridade, Confidencialidade, Autenticidade e Irretratabilidade).
O principal benefício da aplicação do conceito é a antecipação a possíveis vulnerabilidades de segurança fazendo com que o sistema, quando pronto, já esteja preparado para conter possíveis ataques e minimizar o impacto destes.
Além deste benefício, a prática deste conceito pode também trazer outros benefícios, como:
- Economia: Como já exposto, o custo de corrigir erros em um projeto cresce exponencialmente a cada etapa que o projeto avança;
- Resiliência: A segurança implementada por padrão desde o início resulta em um sistema mais resiliente;
- Correção de Vulnerabilidades: Com as práticas do Secure By Design, as falhas de segurança são removidas com mais facilidade e rapidez;
- Adaptação: Com a visão dos erros cometidos anteriormente é mais fácil de adaptar o processo de desenvolvimento para evitar novos erros, seja no mesmo projeto como em projetos futuros
Como aplicar o conceito
Inicialmente é muito importante que a organização e todos os envolvidos no projeto conheça os requisitos e todos os dados que são armazenados pelo sistema, podendo assim classifica-los para saber quais os dados que devem ser protegidos e qual a melhor forma de proteger cada um destes, uma vez que diferentes dados podem ter uma necessidade diferente de controle.
Também é muito importante para a equipe mapear desde o início quais são os pontos e agentes de disrupção, seja por meio de ataques ou até mesmo por comportamento inadequado de usuários confiáveis.
Conhecendo os dados, os riscos e os agentes de disrupção a empresa consegue visualizar qual a melhor forma de trabalhar e quais são as melhores ferramentas e ações que podem ser tomadas para minimizar as possibilidades de fraude e acessos indevidos, já criando o sistema da melhor forma desde o início.
A realização de testes contínuos de segurança desde o início do projeto, adoção de medidas mais seguras de autenticação e a adoção das melhores práticas de programação são também ações que contribuem muito para minimizar as possíveis falhas de segurança.
Confira abaixo os 10 princípios do Secure By Design definidos pela OWASP (Open Worldwide Application Security Project):
- Minimizar a superfície de ataque: principio utilizado para restringir as funções que os usuários têm permissão para acessar, reduzindo as vulnerabilidades;
- Estabelecimento de padrões: Padrões de desenvolvimento ajudam a entender as implicações de segurança das práticas de desenvolvimento e implantação de código.
- Princípio do menor privilégio: Sugere fornecer somente as permissões mínimas necessárias para que um usuário realize suas tarefas;
- Princípio da defesa em profundidade: Conjunto de práticas que se concentram na proteção, detecção e reação de invasões;
- Falhar com segurança: Um software desenvolvido com segurança deve considerar a existência de três resultados possíveis de um mecanismo de segurança: proibir a ação, permitir a operação ou lançar uma exceção. É importante que exceções que ocorram não permitam comportamentos que o sistema normalmente não permitiria;
- Não confie nos serviços: Utilizar modelo de confiança zero, onde as empresas devem sempre partir do princípio de não confiar em ninguém, nenhum outro sistema ou dispositivo por padrão;
- Segregação de funções: Aplicação de controle de acessos baseado no papel, atividade ou na função de um usuário dentro do sistema;
- Evitar a segurança por obscuridade: A técnica de segurança por obscuridade parte do princípio que ninguém conseguirá encontrar as vulnerabilidades escondidas pelos desenvolvedores, porém ela possui dependência direta em relação ao sigilo da implementação do sistema, que muitas vezes pode não ser seguido;
- Manter a segurança simples: A existência de muitas ferramentas de controle pode aumentar as brechas de segurança em vez de eliminá-las.
- Segurança na manutenção dos softwares: É preciso estudar e entender o comportamento da vulnerabilidade de forma estrutural no sistema e verificar se existem outros componentes que podem ser afetados pela mesma vulnerabilidade antes das correções.
Com base nestas informações, podemos ver que é muito importante para qualquer projeto de sistema digital nas empresas comecem sempre com uma análise mais profunda de todos os aspectos do sistema antes do início do desenvolvimento, não somente no que diz respeito à segurança, mas sim em todas as frentes envolvidas no projeto, seja segurança, qualidade, negócios e desenvolvimento. Por isso é muito importante a abordagem do Shift-Left, que traz todas as áreas envolvidas no projeto desde a sua concepção teórica até a implantação final do mesmo.
Gostou do texto? Nos siga para mais conteúdos como esse e aproveite para acessar nossas redes sociais abaixo e conferir nossas publicações diárias!
Linkedin, Instagram, Facebook, Twitter
Conheça nossos serviços em nosso site: www.svlabs.com.br
Lucas Maglio