Metodologias de Threat Modelling / Modelação de Ameaças
O grau de granularidade do diagnóstico do risco, que é requerido em situações de desenvolvimento software, pode implicar que além da constatação da fragilidade (vulnerabilidade), se faça também a decomposição do processo de exploração. Nestes casos há que perceber a cadeia de relações entre as acções do agente ameaça (hacker) e os vários componentes do sistema. Identificando, por exemplo, qual o ponto de entrada no sistema (que pode ser o módulo de autenticação), quais as acções desencadeadas pelo agente para aceder, de modo autorizado, ao um outro módulo, e como estas acções incidiram sobre os vários componentes do software em análise.
Uma forma simples de descrever as acções de tentativa de intrusão do agente ameaça é usar um tipo diagrama denominado de attack tree; um modo mais sistemático é usar uma metodologia de modelação de ameaças.
2. Árvores de ataque (attack tree)
Este tipo de diagrama foi popularizado por Schneier (aliás citar o artigo deste autor é uma cânone de qualquer texto com pretensões.… ; -).
A raiz da árvore (de ataque) consiste nos objectivos do ataque. A primeira tarefa é, portanto, identificar qual a finalidade do ataque. As acções do atacante para alcançar essa meta serão os futuros nós da árvore.
A estratégia do atacante pode envolver acções ligadas por ANDs ou ORs. Os ANDs são representados por 2 linhas, e os ORs por uma linha.
Como ilustração de uma árvore de ataque temos a figura em baixo. Um atacante para obter acesso a um eventual servidor ISMSPT terá que sucessivamente executar as acções do primeiro nível (identificar ISMSPT domain name, por exemplo). Cada uma destas acções pode ser conseguida concretizando apenas uma das acções do segundo nível (ligadas por OR´s).
Em suma, as árvores de ataque podem descrever, de forma simples, as técnicas de hacking de sistemas. Este tipo de diagrama é ideal para ilustrar ataques desensacados por hackers ou por softwares que estejam a correr scripts de ataque.
3. Modelação de ameaças
Uma forma mais complexa de descrever riscos é usar uma metodologia de modelação. No mercado, coabitam pelo menos duas: CORAS e a da Microsoft.
3.1 CORAS
O CORAS é uma metodologia de modelação de riscos, que recorre a diversos tipos de diagramas, como o Fault Tree Analysis (FTA), Failure Mode, Effect and Criticality Analysis (FMECA) e Event Tree Analysis (ETA).
Estes diagramas assumem ângulos de análise distintos. O Fault Tree Analysis (FTA) começa por definir um evento não desejado (incidente de segurança) e depois deduz os factores que levaram ao incidente. Por outro lado, o Failure Mode Effect and Criticality Analysis (FMECA) começa por identificar para cada componente do sistema, todas as falhas e consequências possíveis. Posteriormente, estas falhas são classificadas em termos do seu grau de criticidade. Registe-se que estes diagramas são provenientes de áreas tão diversas, como a análise de acidentes aéreos, prevenção de acidentes na indústria química.
Mais sobre o CORAS.
3.2 Microsoft
Esta metodologia é eventualmente a aposta segura. A empresa de software parece ter adoptado o threat modelling. Primeiro, é editado a metodologia em livro, segue-se a ferramenta de desenho (Threat Modeling Tool; versão beta desta ferramenta está disponível) e agora até existe um portal dedicado ao tema e um blog da equipa da Microsoft de Threat Modeling.
A ferramenta citada (freeware, by the way) permite desenhar o processo completo de modelação. Cumulativamente integra-se com o Visio (como se pode visualizar pelas imagens) e gera relatórios.
Um artigo interessante em português sobre modelação de ameaças, aqui.
Labels: Segurança Informática
Data 23.2.06