Modelagem de ameaças

A modelagem de ameaças é um processo dentro do ciclo de vida do desenvolvimento de software seguro que consiste no levantamento de contra-medidas de segurança que resolvem as ameaças ao software.[1] O processo de modelagem de ameaça deve ser aplicado no início do projeto e continuar durante todo o ciclo de vida da aplicação.[2]

O processo de modelagem consiste dos seguintes passos:[2][3]

Identificar os bens

[editar | editar código-fonte]

O primeiro passo consiste em identificar os recursos valiosos a serem protegidos pelo sistema. Esses recursos são itens que o atacante deseja acessar, controlar ou até mesmo destruir. Há três perspectivas muito utilizadas:

  • itens que os atacantes desejam
  • itens que se deseja proteger
  • trampolins para qualquer uma dessas

Normalmente as informações que os atacantes querem são:

  • Número do RG
  • Número CPF
  • Número de cartões de crédito
  • Senhas
  • Login de Acesso

Criar um resumo da arquitetura

[editar | editar código-fonte]

Nesse passo deve-se documentar tudo o que a aplicação faz, os recursos que utiliza e como são acessados, todo o seu funcionamento. Deve-se documentar os seus casos de uso e toda tecnologia implementada e desenvolver diagramas de toda a estrutura da aplicação.

Decompor a aplicação

[editar | editar código-fonte]

Nesse passo a arquitetura da aplicação é decomposta, criando um perfil de segurança para a aplicação. O objetivo do perfil de segurança é dar cobertura às vulnerabilidades no projeto, implementação ou configuração de implantação da aplicação.

Analisa-se pequenas partes da aplicação de modo a identificar limites de confiança, de fluxo de dados, pontos de entradas e saídas. Na identificação do limite de confiança analisa-se se os dados realmente funcionam e se as entradas de usuários são confiáveis. No fluxo de dados observa-se de onde vem os dados e para onde irão. Pontos de entrada e saída incluem a rede principal e projeto de infra-estrutura de rede.

Identificar as ameaças

[editar | editar código-fonte]

Nesse processo descreve-se as ameaças que poderiam afetar a aplicação, tendo em mente os objetivos de um invasor e o conhecimento da arquitetura e das vulnerabilidades potenciais da aplicação.

Documentar as ameaças

[editar | editar código-fonte]

Nesse passo documenta-se cada ameaça usando um modelo comum de ameaça que defina um conjunto principal de atributos para cada ameaça, levando em conta o alvo, as técnicas utilizadas em um ataque e as medidas que resolva os problemas.

Estimar as ameaças

[editar | editar código-fonte]

Estima-se as ameaças para priorizar e tratar primeiro as mais significativas e que representam o maior risco. O processo de estimativa mede a probabilidade da ameaça contra os danos que poderiam ocorrer caso um ataque ocorra. Deve-se prever que certas ameaças não garantem nenhuma ação quando se compara o risco apresentado pela ameaça com os custos resultantes de redução.

O resultado do processo de elaboração de modelos inclui a documentação dos aspectos de segurança da arquitetura da sua aplicação e uma lista de ameaças relacionadas. O modelo de ameaça ajuda a orquestrar os membros da equipe de desenvolvimento e a focar nas mais potentes ameaças.[3]

A elaboração de modelos de ameaças é um processo iterativo. É um documento que se desenvolve e sobre os quais vários membros da equipe podem trabalhar.

O modelo de ameaças pode ser usado pelos seguintes grupos de pessoas:

  • Designers podem usá-lo para proteger escolhas no projeto a respeito das tecnologias e funcionalidade.
  • Desenvolvedores que escrevem códigos podem usá-lo para reduzir os riscos.
  • Os testadores podem escrever casos de teste se a aplicação está vulnerável a ameaças identificadas pelas análises.

A partir do modelo inicial, pode-se criar um relatório mais formal que inclua atributos adicionais, tal como um Bug ID, que pode ser usado para vincular a ameaça em um sistema de rastreamento de bugs.

Referências

  1. «O ciclo de vida do desenvolvimento da segurança de computação confiável». msdn.microsoft.com. Consultado em 22 de setembro de 2016 
  2. a b Barbosa, Eber Donizeti; Reinaldo de Oliveira (13 de fevereiro de 2016). «Desenvolvimento de Software Seguro: Conhecendo e Prevenindo Ataques Sql Injection e Cross-site Scripting(XSS)». Revista T.I.S. 4 (1). ISSN 2316-2872 
  3. a b «Modelagem de Ameaças de Segurança: Elaboração de Modelos de Ameaças». technet.microsoft.com. Consultado em 22 de setembro de 2016 
  • HOWARD, Michael; LIPNER, Steve.The security development lifecycle: SDL, a process for developing demonstrably more secure software (em inglês) Microsoft Press [S.l.] ISBN 0735622140.
  • ELIAS, Wagner; CABRAL, Carlos (org.); CAPRINO, Willian (org.). Trilhas em Segurança da Informação: Caminhos e ideias para a proteção de dados. Brasport [S.l.] 2015-01-08. ISBN 9788574526867.
Ícone de esboço Este artigo sobre informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.