O que é security by design e como aplicar?
O security by design surgiu com a proposta de projetar a segurança de uma aplicação antes dela entrar em operação. O que acontece hoje, por exemplo, é o uso do pentest (teste de penetração) em softwares que já estão operando, na intenção de identificar uma vulnerabilidade. Contudo, uma abordagem mais proativa ajuda a construir um software seguro desde as suas etapas iniciais de desenvolvimento.
Mais do que minimizar o risco de ataques cibernéticos externos, o security by design ajuda também em relação aos acessos não autorizados. Este é um risco que as empresas estão suscetíveis, seja pela inadvertência ou má índole de um colaborador interno. Quer saber mais sobre o termo e como começar a aplicá-lo no negócio? Então, continue a leitura até o final!
O que é security by design?
O security by design consiste em tornar uma aplicação segura desde as suas etapas iniciais de desenvolvimento. Na prática, significa fazer inserções no código-fonte que reduzam o risco de invasões ou acessos não autorizados, por meio de algum mecanismo de autenticação.
O conceito de security by design passou a ser mais empregado não somente por causa dos riscos de invasões aos sistemas da empresa, mas também em virtude da LGPD, ou Lei Geral de Proteção de Dados. Depois que esta legislação entrou em vigor, passou-se a ter muito mais cuidado com a segurança de dados em posse das empresas, dada a possibilidade de multa em caso de alguma infração.
Como funciona?
Uma das formas de aplicar o security by design é por meio dos testes de software. Via de regra, este procedimento só é feito nos estágios finais de desenvolvimento, sendo testados vários pontos além da segurança, como a integridade e o estresse, que é quando a aplicação deve apresentar um bom desempenho, mesmo com um pico de acessos simultâneos.
Mais adiante no texto, falaremos de outras práticas de suma importância no security by design, como a modelagem de ameaças. Contudo, é preciso destacar os 10 princípios que regem prover essa segurança desde o início de um projeto. São eles:
- Minimizar a superfície de ataque: basicamente, a ideia é aplicar restrições referentes às funções que os usuários de um sistema específico têm acesso, pois isso, segundo o security by design, ajuda a diminuir vulnerabilidades e, por consequência, ameaças de segurança;
- Estabelecimento de padrões: a verificação do acesso ao banco de dados e a filtragem de campos de entrada do sistema são algumas práticas ligadas a este princípio, sendo este relacionado ao melhor entendimento sobre como lidar com a segurança de uma aplicação;
- Princípio do menor privilégio: parecido com o primeiro princípio, o menor privilégio consiste em considerar todo usuário de sistema um mero convidado, sendo um mecanismo que dê a ele o mínimo de permissões e direitos, inclusive com um limite de tempo;
- Princípio da defesa em profundidade: o foco deste princípio está na proteção, detecção e reação a invasões de sistema. Firewalls e antivírus, por exemplo, são usados para este fim, bem como soluções de segurança específicas;
- Falhar com segurança: este princípio foca em dois possíveis erros, que são as exceções no processamento de um controle de segurança e a exceção não relacionada a um controle de segurança. A ideia é evitar posturas anormais do sistema e que venham a comprometer sua segurança, de modo que uma operação específica seja permitida, proibida ou seja lançada uma exceção;
- Não confiar nos serviços: não somente ameaças externas são perigosas, mas também as internas. Isso significa que as empresas precisam obter a confiança máxima, por exemplo, de um sistema, antes dele ser incorporado à rede da companhia. A criação de uma identidade única e o desenvolvimento de processos de autenticação são algumas práticas em um modelo de confiança zero;
- Segregação de funções: também diz respeito ao controle de acesso de usuários internos, tendo em vista a sua função e atividade na empresa. Nesse sentido, são criadas, entre outras coisas, regras de segregação de funções aplicáveis ao ambiente e matriz de risco;
- Evitar a segurança por obscuridade: às vezes, o desenvolvedor codifica o software secretamente, acreditando que as suas vulnerabilidades jamais serão encontradas. Visando eliminar essa prática, o security by design adota senhas fortes, treinamento das equipes, princípio do mínimo privilégio e softwares de backup e proteção;
- Manter a segurança simples: dependendo da circunstância, o uso de muitas ferramentas no security by design pode gerar mais burocracia do que segurança aos sistemas e endpoints. A automatização de processos é uma forma que pode ser bastante efetiva nesse sentido, ajudando a TI a cumprir o objetivo pelo uso do security by design;
- Segurança no processo de manutenção do software: consiste em conhecer a fundo as vulnerabilidades de sistema. Sem um bom controle e um bom processo, é possível que apareçam novos problemas, mesmo depois que os problemas antigos foram resolvidos.
Quais os seus pilares?
Certamente, você entendeu que o security by design é uma abordagem mais proativa do que reativa. Dito isso, podemos também entendê-lo além de testes e controles de acesso, mas como uma auditoria de segurança. A seguir, vamos apresentar os 4 pilares do security by design. Acompanhe!
1. Análise de requisitos
O security by design tem uma forte relação com a nuvem do tipo pública, sendo um conceito que foi difundido pela AWS, a cloud pública da Amazon. Dito isso, além dos requisitos, é de suma importância estar a par de políticas e documentos de controles de segurança provenientes da AWS.
2. Criação de um ambiente seguro na nuvem
Um ambiente seguro na nuvem é consequência direta de uma boa análise de requisitos, que é a primeira fase e pilar do security by design. Algumas configurações que precisam ser feitas envolvem a permissão para recursos e os requisitos de criptografia.
3. Uso de modelos
Esta etapa e pilar do security by design requer o uso do AWS Service Catalog, que contribui para as empresas criar e administrar catálogos de serviços de TI, incluindo, por exemplo:
- softwares;
- servidores;
- imagens de máquinas virtuais;
- bancos de dados.
Dessa forma, quando alguém na empresa vai implantar um serviço, ele precisa estar de acordo com o AWS Service Catalog. Vale ainda destacar que a gestão de tais serviços é centralizada, sendo, portanto, um importante aliado na garantia da governança de TI.
4. Validação do ambiente seguro
Uma vez em conformidade com o AWS Service Catalog, os serviços de TI podem ser validados e ficarem sujeitos aos processos de auditoria. Mais do que segurança, o ambiente na nuvem opera de modo automatizado, reduzindo a participação humana em procedimentos repetitivos e sujeitos a erros, como a verificação manual das identidades de usuários.
Como aplicar?
Agora que você conhece os princípios e pilares do security by design, vamos agora focar no que é preciso para adotá-lo na TI da empresa. Uma das formas de implementação é a modelagem de ameaças, que pode ser considerada uma nova etapa do desenvolvimento de software. Esta consiste em fazer um estudo de tudo aquilo que pode, no futuro, representar um risco à segurança de um sistema.
Requisito e arquitetura de segurança
Além da modelagem de ameaças, é crucial o requisito de segurança. Dessa forma, é possível que um software seja desenvolvido ou mantido de modo seguro, conseguindo, por exemplo, não sucumbir perante uma invasão externa. Importante destacar que isso vai muito além de um código-fonte bem desenvolvido — as políticas e pessoas envolvidas também são fundamentais no security by design. Alguns requisitos cruciais são:
- integridade: o objetivo é evitar que ocorram mudanças não autorizadas no sistema;
- confidencialidade: durante o ciclo de vida de um dado esses requisitos são especificados, tendo em vista todas as etapas, desde a coleta até a eliminação;
- autenticação: quando um usuário vai acessar o sistema, ele deve ter as credenciais para isso, para evitar uma falha de integridade, conforme citado há pouco.
Outro ponto a ser destacado é a arquitetura de segurança. Além de alterações não autorizadas, é preciso ter mecanismos robustos contra fraudes e desastres, sendo também preciso atender à legislação e regulamentações específicas da área de TI.
Segurança como parte do desenvolvimento
O security by design preza também pela boa usabilidade e escalabilidade de um software. Em outras palavras, por mais que o foco seja a segurança, ela é considerada uma parte do desenvolvimento, sendo que um exemplo prático disso é o Microsoft Security Development Lifecycle. Basicamente, ele é um modelo empregado por desenvolvedores, incluindo, ao longo de um projeto, requisitos ligados à privacidade e segurança. Além disso, ele é aplicável, por exemplo, às equipes ágeis e projetos de Inteligência Artificial e IoT.
Quais as vantagens do security by design?
Com base em tudo o que foi apresentado aqui, as principais vantagens do security by design são:
- maior proatividade na hora de identificar vulnerabilidades;
- proteção dos endpoints, que são os dispositivos da empresa conectados à rede;
- conformidade com a LGPD.
O security by design, como vimos, tem o objetivo de tornar um software seguro desde as etapas iniciais do seu desenvolvimento. Processos, ferramentas, controles, políticas e pessoas são fundamentais nesse sentido, à medida que atuam de forma coordenada ao longo de um projeto.
O que achou deste artigo sobre security by design? Aproveite a visita ao blog e compartilhe-o nas redes sociais!