Segurança de Aplicação

Secure by Design em ASPM – Entenda como as ferramentas se integram nesse processo

Em um momento onde continuamos a ver problemas de vazamentos de dados e vulnerabilidades em aplicações serem cada vez mais impactantes a negócios e empresas, precisamos olhar mais uma vez para os conceitos básicos e entender se estamos extraindo o melhor deles, e se conseguimos ainda mais uma visão de como está a maturidade de nossa aplicação. Neste artigo vamos trabalhar um pouco com os conceitos de Secure by Design em ASPM e como as plataformas de ASPM estão influenciando na postura de segurança das aplicações.

Sendo assim, olhar para o processo de desenvolvimento e entender alguns conceitos básicos é um passo importante para que times de desenvolvimento possam cada vez mais construir códigos melhores.

Secure by Design – Modelagem de Ameaças

Sempre que falamos sobre segurança de aplicações é importante, sempre que possível, olharmos para os conceitos básicos e fundamentais para o desenvolvimento. Um destes fundamentos é o de Secure by Design, e entendo que vale para este artigo revermos quais os principais pontos que podemos aprender. 

Nesse sentido, o ponto mais importante e básico quando falamos de Secure by Design é entendermos que o objetivo primário é que o pensamento de segurança seja colocado em todo o processo de desenvolvimento de aplicações, começando mesmo bem do início do processo. Com essa visão, o que se espera é criar um software mais resiliente e seguro, reduzindo a possibilidade de ser afetado por vulnerabilidades.

Um dos primeiros conceitos que podemos extrair é o de Modelagem de Ameaças, e já falamos sobre esse tema algumas vezes no nosso blog, vale a leitura. Mas vamos novamente colocar aqui alguns pontos sobre modelagem e como ela impacta no processo de desenvolvimento.

Conceitualmente o processo de executar uma modelagem de ameaças deve ser realizado nas fases iniciais da aplicação, ainda quando estamos desenhando a solução e isso ajuda os times de desenvolvimento a identificar cenários onde a aplicação pode estar exposta a ameaças. Conseguindo desenhar estes cenários e entender quais seriam estas possíveis ameaças, conseguimos identificar requisitos, neste caso de segurança, que vão ser importantes para a codificação correta da aplicação. 

Secure by Design – Testes de Segurança

Outro conceito importante dentro de Secure by Design é o de testes de segurança. Dentro do processo de desenvolvimento testes devem ser realizados de forma contínua e ao longo de todo o ciclo de desenvolvimento, esse ponto é importante para a construção de uma aplicação segura. O objetivo básico desses testes é o de garantir a construção segura do código.

Do mesmo modo, testes nas aplicações podem e devem ser realizados de forma manual, é um modelo mais eficiente para se identificar vulnerabilidades ou mesmo melhorias no código. Isso não quer dizer que testes utilizando ferramentas não sejam adequados, muito pelo contrário as ferramentas vão oferecer a possibilidade de escalar toda a estrutura de testes, garantindo assim a eficácia do processo de testes.

Secure by Design – Treinamento e Conscientização.

Outro conceito importante que quero trazer aqui, e que já falamos em alguns outros artigos aqui no blog, é sobre treinamentos e conscientização. Sim, isso é um conceito de Secure by Design e você já vai entender o porquê. 

Já falamos que os times de desenvolvimento precisam usar as melhores práticas de mercado para o desenvolvimento de suas aplicações, também já falamos que precisamos estar atentos e informados das novas técnicas tanto de codificação quanto de exploração, e isso pode ser um dos grandes diferenciais entre um time reativo e um time proativo no desenvolvimento de software. 

Além disso, garantir aos times de desenvolvimento a possibilidade de aprender e entender o que pode ser melhorado no código é um dos investimentos mais importantes que um gestor de times de desenvolvimento pode ter, isso poderá garantir melhores resultados, e se alinhado com outras iniciativas, pode ser um ponto de virada para muitos times.

Poderíamos ficar aqui um tempo falando mais sobre outros conceitos presentes no tópico de Secure by Design, mas quero ficar com estes três e depois mostrar como ele pode e é integrado ao conceito de ASPM, que vamos ver logo a seguir.

ASPM: O que é e o que não é.

Primordialmente, vamos entender o que não é ASPM. Acredito que assim ficará mais simples o entendimento do conceito. 

Quando falamos de ASPM não falamos de uma ferramenta ou mesmo de um produto. ASPM não pode ser confundido com um produto está muito além disso e pensar desta forma, além de ser errado, é bem simplista do ponto de vista de maturidade de desenvolvimento seguro.

Também, ASPM não é uma metodologia, nem mesmo um conjunto de práticas. ASPM não pode ser confundido com uma metodologia que deve ser aplicada a uma estrutura ou um processo para estruturar de uma forma entendida como adequada. Não é isso.

Bem, tiramos do caminho dois grandes pontos que são considerados hoje como ASPM, mas afinal de contas, o que é ASPM?

ASPM: O que é e como isso impacta no desenvolvimento de software?

Sobre tudo, se entendemos os pontos anteriores, vamos focar no que realmente é o ASPM, ou Application Security Posture Management.

ASPM é um conceito que plataformas e ferramentas utilizam para estruturar e organizar a postura de segurança de aplicações. Seguindo este princípio, podemos olhar para ferramentas e entender se o que elas nos entregam é uma visão.

ASPM Gartner

O Gartner, em seu artigo chamado “Innovation Insight for Application Security Posture Management” nos trás uma documentação rica em detalhes que nos ajudam a entender o que vem a ser e como trabalham ferramentas ou plataformas que usam os conceitos de ASPM.

Como podemos ver, Orquestrar, Correlacionar, Priorizar e Selecionar além de Gestão de Riscos são pontos que fazem parte de uma ferramenta ASPM. Mas aqui é importante deixarmos claro alguns pontos que podem confundir. 

Contudo, pela sua capacidade integradora, ferramentas ASPM podem ser usadas como ferramentas que ajudam a orquestrar ferramentas de testes por todo o ciclo de desenvolvimento. Também ajudam no correlacionamento dos resultados de testes, por exemplo. 

Aqui o termo “correlacionar” não pode ser entendido como alinhar logs e aponta sequência de ações, como por exemplo ferramentas de SIEM fazem, aqui o termo correlacionar tem como finalidade entender de forma inteligente que eventos identificados em várias fontes pode ser o mesmo. 

Vamos a um cenário. Uma mesma vulnerabilidade foi identificada em dois momento diferentes, por fontes diferentes, ferramentas de ASPM devem ser inteligentes o suficiente para mostrar que está é a mesma vulnerabilidade, apenas identificada em fontes diferentes.

Todavia, ajudar e estruturar a possibilidade de priorizar e selecionar componentes ou vulnerabilidades mais críticas é também uma das características de tais ferramentas, e isso permite que vulnerabilidades sejam tratadas de forma adequada e no momento adequado dentro do processo de gestão de vulnerabilidades.

Isso liga com a última parte que é permitir gerir os riscos identificados de forma correta, atribuindo a criticidade adequada.

Esse tipo de visão é o que torna as ferramentas de ASPM uma ferramenta muito importante dentro do contexto de segurança de aplicações.

Qual o papel de ferramentas ASPM para Secure by Design?

Para trazer este entendimento, vou mostrar como nossa plataforma integra estes conceitos, mas para não ser muito extenso vou buscar mostrar alguns conceitos sendo trabalhados dentro da plataforma.

De antemão, o primeiro ponto que quero tratar é a possibilidade de garantir aos times a possibilidade de construir um conjunto de requisitos baseados em um resultado de modelagem. Como falamos, a Modelagem de Ameaças vai proporcionar aos desenvolvedores a possibilidade de, ao identificar cenários de ameaça, escolher requisitos que possam mitigar estas ameaças.

modelagem de ameaças na conviso platform

Em nosso módulo de Secure by Design é possível aos times estruturarem um projeto de Modelagem de Ameaças, usando como base a estrutura de cenários de ataques já bem conhecida do CAPEC, o que facilita e muito a construção de cenários que podem afetar a aplicação sendo modelada. 

Neste sentido, sendo estes cenários já criados, e os requisitos identificados, a própria plataforma já gera um estrutura, que internamente chamamos de Requirements, que servirá de base para que os times de desenvolvimento possam planejar a implementação dos requisitos de forma prática e estruturada.

Um segundo ponto muito importante em ferramentas ASPM é permitir aos times a manutenção e aquisição de conhecimento. Nossa plataforma proporciona isso por meio de nosso módulo de People and Culture. O módulo permite ao desenvolvedor a possibilidade de praticar seus conhecimentos em situações que podem ajudar a entender uma vulnerabilidade e a como esta pode ser resolvida. 

people and culture conviso platform

O que é importante aqui é entender que o módulo não tem como finalidade entregar aos times de desenvolvimento uma ferramenta de CTF (Capture the Flag) é muito mais do que isso. Esse módulo tem como objetivo proporcionar de forma prática e ativa a aquisição de conhecimento.

Centralizar informações e permitir sua visualização facilitada é outra característica de ferramentas ASPM, aqui temos um exemplo disso. 

Essa facilidade permite a todos os envolvidos no processo de gestão de vulnerabilidades o entendimento de um cenário de vulnerabilidades de um ativo ou mesmo de um escopo.

A possibilidade de integrarmos várias ferramentas de testes nos permitem manter o fluxo de contínuo testes de códigos, além de entregar aos analistas que farão testes de code review, informações importantes sobre a possibilidade de existência de vulnerabilidades em partes específicas do código. Com estas informações, é possível aos analistas realizarem uma análise de código muito mais focada e com a possibilidade de resultados mais eficientes.

Em conclusão, sabemos  que existem outros conceitos de Secure by Design que não falamos aqui, mas quero apenas mostrar que ferramentas de ASPM devem facilitar aos times de desenvolvimento a criação de aplicações mais seguras, e que conceitos e boas de desenvolvimento podem, e devem, ser integradas à novas plataformas que tem como objetivo facilitar a atuação do desenvolvedor.

E você o que acha importante em ferramentas ASPM? 

Nova call to action
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

Nova CVE-2023-4314 identificada em plugin do WordPress

Neste artigo, vamos analisar um estudo de caso de uma CVE encontrada em um plugin do WordPress…
Read more
Segurança de Aplicação

Mitigação de Vulnerabilidades: Elevando a Segurança no Desenvolvimento de Software

No cenário digital em constante evolução, a importância da segurança de software não pode ser…
Read more
Segurança de Aplicação

A Importância da Supply Chain para a Segurança das Aplicações

Para iniciar, quando pensamos em desenvolvimento de software, geralmente associamos essa área a…
Read more

Deixe um comentário