Mais Considerações sobre Modelagem de Ameaças

Neste post, eu gostaria de retomar a discussão sobre modelagem de ameaças iniciada por Marco Carnut no post sobre vulnerabilidades e fechaduras.

As fases da modelagem

A atividade de modelagem de ameaças é composta, basicamente, de quatro fases: definição de escopo, listagem de ameaças, investigação, e se possível, aumento do escopo.

A definição do escopo é importante para manter o levantamento das ameaças focado a um determinado componente do sistema sendo modelado. Mas como decidir qual será o escopo inicial da modelagem? Bem, decompor o sistema em seus pontos de entrada, fluxos de dados, áreas de fronteira (quando há integração com outros sistemas) pode ajudar nessa decisão. Decompor o sistema baseando-se em áreas tradicionais e conhecidas de vulnerabilidade também pode ser útil. No nosso sistema-exemplo, o escopo é bastante claro: uma fechadura. Nem mais, nem menos.

O leitor talvez considere este escopo como restrito demais, ou simples demais. Mas a ideia, neste primeiro momento, é justamente essa: manter a discussão num nível bem simples, para focar no propósito da modelagem de ameaças. Além disso, lembre-se que vamos aumentar o escopo de nossa análise, em algum momento.

A próxima fase é a listagem das ameaças, propriamente dita. Aqui, fazemos uso de nossa intuição e experiência em relação ao sistema, levantando as possíveis ameaças ao nosso sistema. O mais importante (e mais difícil) nessa fase, é que devemos nos concentrar apenas na listagem de ameaças. Não investigamos, muito menos mitigamos as ameaças nessa fase. O objetivo dessa restrição é gerar uma lista bem abrangente das ameaças, lembrando-se sempre do escopo definido! Algumas possíveis ameaças à nossa fechadura, poderiam ser:

  • falta de energia: a interrupção do fornecimento de energia elétrica compromete a fechadura
  • um chute: a fechadura pode ceder ante um chute bem dado
  • roubo/furto da chave: um eventual roubo ou furto da chave compromete a segurança
  • cartão de crédito: a inserção de algo fino e rígido na lingueta da fechadura pode comprometê-la
  • fogo: a fechadura pode ser derretida se for exposta a uma temperatura alta o suficitente (ou se for exposta a uma determinada temperatura pelo tempo suficiente)
  • empurrão: a fechadura pode ceder se alguém tentar forçá-la

Observe que todas as ameaças listadas acima estão no âmbito da fechadura, seguindo fielmente o escopo definido. Observe também que o tamanho da lista vai variar dependendo do tempo alocado, da quantidade de pessoas envolvidas, e da experiência delas com o sistema. Observe ainda que à medida que a lista cresce, algumas ameaças poderão parecer absurdas e sem propósito. Mas isso não importa. O importante nesta fase é ter a maior abrangência possível. Em questão de modelagem, é sempre melhor pecar por excesso que por falta!

Na fase de investigação, quantificamos e medimos as ameaças levantadas na fase anterior. É quando deixamos a intuição de lado, e damos às ameaças um enfoque um pouco mais profundo e racional. Podemos descobrir, por exemplo, que determinadas ameaças não fazem tanto sentido assim, mas que permanecerão registradas, pois uma futura modificação no sistema pode torná-las relevantes. É quando tentamos também medir certas grandezas envolvidas com determinadas ameaças, para traduzi-las em números. Voltando ao caso da fechadura:

  • Falta de energia pode ser descartada no caso de uma fechadura mecânica, mas precisa ser levada em consideração no caso de uma fechadura elétrica.
  • Talvez seja necessário verificar com o seu fabricante o quanto ela é resistente ao fogo, se esta for uma ameaça a ser considerada.
  • Ainda no que diz respeito ao fogo, pode haver a necessidade de se dividi-lo em duas categorias: acidental e criminoso.
  • Em relação ao chute e ao empurrão, pode-se fazer justamente o contrário, considerar ambas as ameaças como uma só. Note que elas são, em última instância, a aplicação de uma força física sobre a fechadura.
  • Uma vez que se considere as ameaças acima numa só, é interessante medir a força máxima à qual a fechadura resiste.

Por fim, havendo tempo, recursos (e disposição dos modeladores), aumentamos o escopo do sistema e reiniciamos todo o processo de modelagem, listando e investigando ameaças a esse novo sistema. Nossa fechadura, por exemplo, seria considerada a partir de agora parte de um sistema maior, por exemplo, fechadura e porta. Nesta fase, pode-se descobrir que a fechadura é bem resistente para os nossos propósitos, mas que a porta não é. Ou, pior, que a fechadura e a porta são resistentes, mas que uma parede de gesso pode colocar tudo a perder.

Definição

A separação da modelagem de ameaças nestas quatro fases nos dá, de maneira bem intuitiva, uma definição mais precisa da atividade, que é também a Definição Operacional Tempest de Modelagem de Ameaças:

"Modelagem de ameaças é uma listagem, tão abrangente quanto possível, de itens repetivelmente mensuráveis aos quais o sistema resiste e não resiste, dentro do escopo definido."

Algumas características da modelagem de ameaças

Modelagem de ameaças não é algo novo, muito menos se originou de algum trabalho acadêmico. Ela teve origem a partir do momento em que o ser humano começou a pensar em segurança, seja para melhorá-la, seja para subvertê-la. A diferença é que nos dias atuais, a demanda pela modelagem de ameaças tem crescido cada vez mais, o que por sua vez tem demandado uma certa formalização da atividade (conceitualização, definição de papéis, geração de artefatos, etc).

O principal objetivo de uma modelagem de ameaças é nos orientar quanto a como prevenir ataques a sistemas, prever desastres, equilibrar prevenção versus reação versus custos. Ela é bastante conhecida e aplicada com seriedade no projeto de sistemas críticos, como projetos de aviões, e de usinas nucleares. Você pode ver os resultados de algumas modelagens de ameaças no seu dia-a-dia, ao folhear o a seção de "precauções" nos manuais eletrodomésticos, nos avisos de capacidade máxima dos elevadores, nas bulas de remédios, e nas faixas amarelas das estações de metrô.

A despeito desses objetivos, no nosso exemplo aqui não chegamos a tratar da mitigação das ameaças levantadas na modelagem da fechadura. Esse é um dos pontos controversos da modelagem. Na área de segurança da informação, há profissionais que defendem que essa atividade deve apenas contemplar listagem e investigação de ameaças; e há outro time que defende a mitigação delas dentro da modelagem. Na Tempest, trabalhamos de acordo com primeiro time, por duas razões. Primeiro, porque focando na listagem e investigação, podemos obter uma listagem abrangente de ameaças. E segundo, porque a maneira pela qual as ameaças são mitigadas é algo cultural, varia de empresa para empresa, e depende muito também do sistema modelado.

Com esse exemplo, tentei mostrar que modelagem de ameaças não é algo conceitualmente difícil. Em casos simples e pequenos, realmente não é; mas em sistemas grandes e complexos, é um exercício intelecutal considerável, que precisa ser atacado de forma rigorosa e sistemática, requerendo um time multidisciplinar para atacá-lo.

Considerações finais

Este pretende ser o primeiro de uma série de artigos sobre modelagem da ameaças. Nos próximos, escrevei sobre uso da modelagem de ameaças no desenvolvimento de software. Serão mencionados alguns softwares, livros, e jogos (sim, jogos!) que auxiliam no aprendizado e na execução de modelagens de ameaças.

Comentários
Aceita-se formatação à la TWiki. HTML e scripts são filtrados. Máximo 15KiB.

 
Enviando... por favor aguarde...
Comentário enviado com suceso -- obrigado.
Ele aparecerá quando os moderadores o aprovarem.
Houve uma falha no envio do formulário!
Deixei uma nota para os admins verificarem o problema.
Perdoe-nos o transtorno. Por favor tente novamente mais tarde.