Segurança de Aplicação

Design segundo SAMM – Arquitetura Segura em Segurança de Aplicações

“The security architecture practice focuses on managing architectural risks for the software solution”. Antes de falamos sobre uma arquitetura segura, precisamos rever um conceito muito importante pois isso determina muito do nosso entendimento. Afinal, o que é Arquitetura de Software?

Você também pode ouvir esse conteúdo:

Se buscarmos sobre esses termos na internet, não vai ser difícil acharmos vários artigos explicando o seu conceito principal. Mas vamos resumir, deixar mais simples. Vamos lá?

Arquitetura de software é trabalhar com os fundamentos de um software, é olhar para os conceitos básicos e fundamentais da construção de uma aplicação. Precisamos entender quais são os elementos do software, como eles se conectam e trocam informações. Então, arquitetura é entender como o software é estruturado, como ele é construído e como os seus componentes internos se comunicam entre si e com o exterior.

Bom, entendemos o que é Arquitetura de Software, agora vamos seguir para entender sobre como ter uma arquitetura segura de software.

Arquitetura Segura de Software

Construir uma aplicação segura não é apenas escrever código. Construir uma aplicação segura também envolve o entendimento dos cenários onde está aplicação estará inserida bem como a quais riscos está aplicação deve ser preparar.

Já vimos isso em outros artigos, e mais especificamente quando falamos de Modelagem de Ameaças, acredito que vale a leitura.

Olhar para a arquitetura de uma aplicação é o mesmo que olhar para a forma como construimos uma casa, pensamos primeiro nas suas bases e como estas devem ser adequadas aos eventos que está casa estará exposta. Assim é uma aplicação, as bases devem ser sólidas.

Um dos primeiros pontos que devemos ter atenção é como essa construção é documentada, não há como se avaliar uma arquitetura sem que esta esteja documentada. Essa documentação pode ser com um diagrama de alto nível, demonstrando como os componentes se conectam, o que trocam de informações e como estão informações vão trafegar.

Lembre-se, no final do dia, o que queremos proteger é o dado. Então faz total sentido que você entenda o fluxo desse dado dentro da sua aplicação.

Vamos entender como o OWASP SAMM vê a arquiteutra de software e como ele pode nos ajudar a melhorar o nosso modelo.

Dois fluxos de atuação

Como já falamos, e reforçado pelo SAMM a arquitetura de software olha para o conjunto de componentes que foram selecionados para compor a fundação da aplicação mas, com um olhar mais de segurança. E como qualquer área do SAMM, nos traz 2 fluxos de atuação.

O primeiro fluxo nos mostra a necessidade de termos como foco o design da arquitetura, e nos mostra que esse aspecto pode ter um impacto muito grande na postura de segurança do software, bem como as melhores práticas de design podem influenciar de forma geral a aplicação.

O segundo fluxo trata mais diretamente da gestão da tecnologia envolvida na construção da aplicação. Olhar para a tecnologia e para os frameworks que são utilizados neste processo de contrução é importante e, em conjunto com os outros aspectos do software, vai entregar segurança.

Seguindo com o entendimento de um processo de design seguro de uma aplicação, precisamos entender que há diversos pontos a serem entendidos e endereçados. Como já falamos antes, a arquitetura trata sobre os fundamentos da construção.

Por isso, um dos pontos mais básicos quando olhamos para arquitetura segura no SAMM é saber se há nos primeiros estágios de construção de uma aplicação a preocupação com a segurança.

Muitas vezes pensamos em processos e atividades muito complexas e difíceis de serem mensuradas. Mas os estágios mais básicos de arquitetura segura começam realmente com o básico, como, por exemplo, entender se o time de desenvolvimento possui um conhecimento que permita que ele possa entender e ajudar na construção segura da aplicação.

Caso esse time não tenha esse conhecimento, precisamos contruir esse conhecimento. Aqui podemos fazer um link direto ao que nos traz a área de Educação e Guias do SAMM.

Da mesma forma, temos padrões definidos para a adoção de componentes de segurança, validamos estes componentes? São pontos importantes e que devem estar na lista de qualquer arquiteto de software.

Se olharmos de uma forma mais madura de um processo, também devemos nos perguntar como controlamos o processo de construção da aplicação e como validamos a utilização de componentes de segurança.

Podemos ainda olhar com mais atenção e entender se o que já fizemos sobre arquitetura evolui, se é revisado. Não podemos entender que uma vez feita a arquitetura que foi criada não deve mais ser olhada ou mesmo avaliada.

Encarando mudanças

O software muda, os cenários a que esta aplicação esta inserida mudam e precisamos reavaliar como a arquitetura, que agora serve de referência se comporta dentro destas novas mudanças.

De forma geral, o que podemos aprender neste breve artigo é que olhar para a arquitetura de uma aplicação é olhar para seus componetes mais básicos, é entender seu funcionamento e o cenários que ela estará insirida, como isso em mente o pensamento de segurança ele surge e flui de maneira mais prática pois agora temos o conhecimento necessário para buscar entregar uma aplicação mais segura.

Espero que de alguma forma tenha ajudado a trazer para você a importância de olhar para a arquitetura de software de uma forma diferente, tendo mais foco nas questões de segurança da sua aplicação.

Nova call to action

Série artigos SAMM:

  1. Governança segundo SAMM: Estratégias e Métricas em Segurança de Aplicações
  2. Governança segundo SAMM: Políticas e Conformidades em Segurança de Aplicações
  3. Governança segundo SAMM:  Educação e Orientação em Segurança de Aplicações
  4. Design segundo SAMM: Modelagem de Ameaças em Segurança de Aplicações
  5. Design segundo SAMM: Requisitos de Segurança em Segurança de Aplicações
  6. Design segundo SAMM: Arquitetura Segura em Segurança de Aplicações
  7. Implementação segundo SAMM: Build Seguro em Segurança de Aplicações
  8. Implementação segundo SAMM: Deploy Seguro em Segurança de Aplicações
  9. Implementação segundo SAMM: Gestão de Defeitos em Segurança de Aplicações
  10. Verificação segundo SAMM: Análise de Arquitetura em Segurança de Aplicações
  11. Verificação segundo SAMM: Testes Orientados a Requisitos em Segurança de Aplicações
  12. Verificação segundo SAMM: Testes de Segurança em Segurança de Aplicações
  13. Operações segundo SAMM: Gestão de Incidentes em Segurança de Aplicações
  14. Operações segundo SAMM: Gestão de Ambientes  em Segurança de Aplicações
  15. Operações segundo SAMM: Gestão Operacional em Segurança de Aplicações
About author

Articles

Mais de 15 anos de experiência em segurança da informação e aplicações, graduado em processamento de dados, trabalhei como professor universitário e participei ativamente como instrutor de treinamento para mais de 6000 desenvolvedores em equipes de TI. Sou pai de duas meninas e trader nas horas vagas.
Related posts
Segurança de Aplicação

Implementando uma CI/CD Pipeline: Garantindo a Qualidade e a Segurança do Software

A princípio, no atual cenário de desenvolvimento de software, a velocidade e a qualidade na…
Read more
Segurança de Aplicação

Gerenciamento de Riscos de Segurança: Melhores Práticas e Processos

A princípio, o gerenciamento de riscos de segurança é um processo estratégico que envolve…
Read more
Code FightersSegurança de Aplicação

Como integrar o Semgrep no CI/CD e enviar os resultados para a Conviso Platform

Atualmente, é uma prática muito comum integrar verificações de segurança durante a fase de…
Read more

Deixe um comentário