©2022 - Todos os Direitos Reservados

Os princípios e abordagens do Security by Design

Os princípios e abordagens do Security by Design

A tecnologia está integrada a todas as facetas das atividades cotidianas, especialmente no contexto organizacional, avançando continuamente e proporcionando novas possibilidades para a gestão, execução e aprimoramento de processos e procedimentos.

No entanto, quanto mais os recursos tecnológicos evoluem, maiores são as chances de violações cibernéticas. Por isso, o security by design tende a ser um dos pontos centrais nos processos de design e desenvolvimento de produtos tecnológicos atualmente.

A ideia é que as empresas de tecnologia construam seus produtos e sistemas de modo a evitar a necessidade constante de atualizações e controle de danos por parte de seus clientes.

Ou seja, o security by design torna as tecnologias mais resilientes, facilitando a mitigação de danos em casos de ataques cibernéticos e invasões.

A proposta é incorporar a preocupação com a segurança cibernética no próprio processo de concepção e desenvolvimento das soluções, antes mesmo da implementação técnica.

Produtos que seguem os princípios do security by design têm a segurança dos clientes como objetivo central, não apenas como característica técnica.

Esses princípios relacionam-se à redução das chances de os clientes serem vítimas de incidentes decorrentes, por exemplo, de configurações incorretas, atualizações insuficientemente ágeis, entre outros problemas comuns.

O que é security by design?

A expressão “security by design” pode ser traduzida como “segurança desde a concepção” e corresponde à ideia de que os produtos tecnológicos devem ser projetados já pensando na segurança da informação como um de seus pilares fundamentais.

Produtos construídos seguindo os princípios do security by design possuem proteções embutidas contra ações maliciosas de atores cibernéticos.

Nesse contexto, as empresas de tecnologia devem realizar uma avaliação de riscos para identificar e mapear as principais ameaças cibernéticas aos seus sistemas críticos.

Em seguida, precisam incorporar medidas de proteção já nos projetos iniciais, de modo a enfrentar o cenário de ameaças em constante evolução.

Boas práticas de desenvolvimento de software e a adoção de camadas múltiplas de defesa, ou “defesa em profundidade”, também são recomendadas para evitar violações.

As empresas devem ainda utilizar modelos personalizados de ameaças durante o desenvolvimento, a fim de endereçar riscos potenciais.

Isso significa que é primordial adotar uma abordagem abrangente de segurança para produtos e plataformas.

O security by design não corresponde a acrescentar recursos de segurança posteriormente. Requer investimento em segurança em todas as camadas de um projeto.

Isso demanda forte liderança das empresas, que devem priorizar a segurança além de um recurso técnico. É fundamental estabelecer colaboração entre líderes e equipes técnicas desde o início.

Esse trabalho conjunto possibilita o direcionamento estratégico, incluindo ações invisíveis ao cliente, como migração para linguagens mais seguras.

É crucial priorizar recursos e ferramentas que protejam o cliente, não funcionalidades que ampliem a superfície de ataque.

Não há solução única contra a ameaça persistente de cibercriminosos. Produtos desenvolvidos com security by design ainda têm vulnerabilidades.

Porém, comumente, um conjunto amplo de vulnerabilidades decorre de um subconjunto pequeno de problemas. Assim, as empresas podem criar planos para alinhar produtos existentes ao security by design, focando desvios em casos excepcionais.

Apesar de aumentar custos de desenvolvimento, investir em security by design pode melhorar drasticamente a segurança dos clientes e reduzir riscos de comprometimento. Isso gera maior valor e melhora a reputação da marca. Além disso, reduz custos de manutenção e correção no longo prazo.

Os princípios do security by design

Uma abordagem de desenvolvimento estruturada no security by design deve seguir alguns princípios fundamentais. 

Falaremos, em seguida, sobre os princípios listados pela OWASP (Open Web Application Security Project), uma fundação sem fins lucrativos que busca proporcionar a melhoria e segurança dos softwares. 

Redução da superfície de ataque 

É possível reduzir as vulnerabilidades a partir da restrição das funções que os grupos de usuários têm permissão para acessar. 

As ferramentas de proteção já desenvolvidas podem se integrar a um ecossistema de monitoramento que permite as correções em tempo real.

Definição de padrões 

Os padrões são importantíssimos para entender as implicações ligadas à segurança em cada etapa do desenvolvimento de um sistema.

A integração entre as equipes de desenvolvimento e segurança possibilita o estabelecimento de soluções mais resilientes a partir de orientações padronizadas.

Entre as possíveis orientações podem estar incluídas:

  • A verificação do acesso ao banco de dados;
  • A filtragem dos campos de entrada do sistema;
  • A codificação de respostas;
  • O monitoramento do tráfego de informações sigilosas;
  • A definição de senhas fortes. 

Adoção do princípio do menor privilégio

Segundo o princípio do menor privilégio, o usuário deve contar apenas com as permissões mínimas definidas para realizar suas tarefas

Assim, a segurança da informação e a privacidade são priorizadas, ao contrário do que ocorre quando há uma expansão desnecessária das permissões concedidas a um usuário.

Algumas das medidas que você pode adotar para colocar em prática o princípio do menor privilégio são as seguintes:

  • Pensar em todos os usuários do sistema como convidados;
  • Definir tudo o que é proibido, para que fique claro também o que é permitido;
  • Fornecer apenas as permissões básicas a cada usuário para a realização de suas tarefas;
  • Estabelecer em quais os pontos do sistema tudo será proibido para determinados usuários.

Adoção do princípio da defesa em profundidade

O princípio da defesa em profundidade é um conjunto de práticas relacionadas à proteção, percepção e reação contra as invasões.

Ele prevê a utilização de práticas diferentes e complementares para o estabelecimento de múltiplas camadas de proteção que dificultam as ações mal-intencionadas. 

Manutenção da segurança nos casos de falha

Como sabemos, a utilização do security by design não elimina totalmente as possibilidades de erros dos softwares. 

Os erros vão continuar acontecendo, mas é preciso errar de forma segura para que as falhas não se tornem ameaças à segurança do sistema.

Quando a segurança é considerada desde o princípio do desenvolvimento de um software, ele conta com três possibilidades dentro da ativação dos mecanismos de segurança: a permissão da operação, a proibição da operação ou o lançamento de uma exceção

As exceções precisam ser lançadas de forma cautelosa para evitar o acesso não autorizado a informações sensíveis. 

Não confiabilidade dos serviços

Este princípio corresponde à adoção do modelo Zero Trust (que já explicamos aqui no blog), segundo o qual as organizações não devem confiar por padrão em nenhum usuário, dispositivo ou sistema.

Isso significa que todas as conexões devem ser verificadas antes que o acesso à sua rede seja liberado. 

Para que o modelo de confiança zero seja seguido, é importante conhecer a infraestrutura da empresa, definir uma identidade forte de usuário, utilizar bons processos de autenticação, monitorar os dispositivos e serviços, elaborar políticas condizentes com o valor dos serviços e controlar os acessos.

Desmembramento de funções

Esse princípio está ligado a outros citados acima e equivale ao controle de acesso aos sistemas com base na função de cada usuário

Assim, é preciso definir um perfil para cada função, para que os privilégios de acesso sejam devidamente gerenciados.

Dessa forma, será possível estabelecer agrupamentos de acessos para obter uma visão panorâmica e controlar os acessos de maneira segura.

Abandono da ideia de segurança por obscuridade

A segurança por obscuridade ocorre quando os desenvolvedores realizam as codificações dos sistemas de forma secreta, defendendo a ideia de que ninguém conseguirá encontrar vulnerabilidades no software.

Nesses casos, o sistema é considerado seguro devido à obscuridade da codificação e não por aderir à segurança como princípio do desenvolvimento em todas as suas etapas.

Cria-se, assim, uma dependência do sigilo para a implementação do projeto, o que torna essa técnica inadequada.

Manutenção da simplicidade dos recursos de segurança

Os princípios do security by design despertam o desejo de utilizar todas as ferramentas e controles disponíveis em benefício da segurança. 

No entanto, pode ser que alguns desses recursos não acrescentem, de fato, maior segurança aos processos, ou seja, é preciso tomar cuidado para não tornar os processos mais burocráticos sem que a segurança seja realmente incrementada. 

A utilização de muitas ferramentas pode gerar brechas de segurança, ao invés de evitá-las.

Nesse sentido, a construção de políticas e processos ligados à segurança e o engajamento dos colaboradores podem evitar a utilização de ferramentas desnecessárias. 

Garantia da segurança no processo de manutenção do sistema

As vulnerabilidades de um software encontradas durante o desenvolvimento devem ser estudadas de maneira estrutural.

Dessa maneira, será possível saber se algum outro componente pode sofrer as consequências impostas pela mesma vulnerabilidade.

Em outras palavras, é importante definir um controle com etapas padronizadas para a execução de correções, criando um processo contínuo de gestão de vulnerabilidades. 

Recomendações para a implementação do security by design

Para manter o foco estratégico na priorização da segurança do software, os desenvolvedores de tecnologia devem seguir três pré-requisitos básicos.

Primeiramente, o ônus da segurança não deve recair apenas sobre o cliente, pois o desenvolvedor do software deve se apropriar dos resultados de segurança da compra de seus clientes para evoluir seus produtos.

Em segundo lugar, o desenvolvedor deve adotar radicalmente a  transparência e a responsabilidade, fornecendo produtos seguros e protegidos e criando um diferencial competitivo por conta do security by design. 

Isso pode incluir o compartilhamento de informações aprendidas com as implantações de seus clientes, como a adoção de mecanismos de autenticação fortes por padrão. 

A postura também deve incluir um forte compromisso para garantir alertas de vulnerabilidade.

Em terceiro lugar, é importante construir uma estrutura organizacional e uma liderança focada com vistas ao atingimento desses objetivos. 

O compromisso dos fornecedores de software com a priorização do security by design como elemento crítico de desenvolvimento de produtos requer o estabelecimento de parcerias com os clientes para compreender, entre outras coisas:

  • A orientação do cenário de implantação do produto junto com o modelo de ameaças personalizado;
  • A implementação proposta para controles de segurança para alinhar com os princípios estabelecidos;
  • As estratégias de alocação de recursos adaptadas ao tamanho da empresa e à capacidade de substituir práticas de desenvolvimento não alinhadas ao security by design;
  • A necessidade de manter uma linha de comunicação aberta para feedback interno e externo em relação aos problemas de segurança do produto. A segurança do software deve ser enfatizada em fóruns internos e no marketing externo;
  • As medições de eficácia nas implantações do cliente, com informações sobre onde os investimentos em security by design estão ajudando a diminuir o ritmo dos patches de segurança.

Para habilitar esses princípios, os desenvolvedores devem considerar várias táticas operacionais para evoluir seus processos de desenvolvimento.

Você pode, por exemplo, convocar reuniões de rotina para enfatizar a importância do security by design dentro da organização. 

Também é importante a adoção de políticas e procedimentos para recompensar as equipes de produção que desenvolvem produtos aderentes a esses princípios.

Busque operar sempre em torno da importância da segurança de software para o sucesso dos negócios. É preciso garantir uma segurança de produto robusta e uma avaliação independente para suas soluções.

Use um modelo de ameaça personalizado durante o desenvolvimento para priorizar os produtos mais críticos e de alto impacto. Os modelos de ameaças consideram o caso de uso específico de um produto e permitem o desenvolvimento de equipes para fortificá-lo.

Finalmente, a liderança sênior deve responsabilizar as equipes pela entrega de produtos seguros como um elemento-chave da excelência e qualidade.

Para colocar essa abordagem em prática e utilizar uma estratégia de desenvolvimento baseada no security by design, você pode contar com a EcoTrust, uma plataforma de segurança cibernética com diversas funcionalidades ligadas à antecipação de ameaças.

A EcoTrust utiliza a abordagem da Inteligência em Riscos Cibernéticos na prevenção aos incidentes.

Que tal agendar uma demonstração para começar imediatamente a colocar em prática os princípios do security by design? Basta clicar aqui. Até o próximo artigo.