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]
Passos
[editar | editar código-fonte]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.
Resultado
[editar | editar código-fonte]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
- ↑ «O ciclo de vida do desenvolvimento da segurança de computação confiável». msdn.microsoft.com. Consultado em 22 de setembro de 2016
- ↑ 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
- ↑ 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
Bibliografia
[editar | editar código-fonte]- 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.