A onipresença da IA é um fenômeno que encontramos todos os dias. Basta percorrer a Rota 101 em São Francisco para ver dezenas de outdoors anunciando produtos de IA. Em nosso dia a dia, vemos a IA na medicina, nas compras e até mesmo na lavagem de nossas roupas. Como acontece com qualquer nova tecnologia, existe um lado sinistro, e os criminosos, naturalmente, estão usando a IA para cometer crimes

Na Okta, nosso negócio é combater os cibercriminosos, independentemente de eles utilizarem inteligência artificial ou não. A modelagem de ameaças é uma das técnicas de cibersegurança que utilizamos para fortalecer nossos produtos contra ataques. É um ambiente natural para aplicarmos IA.

Compreendendo a modelagem de ameaças à cibersegurança

A modelagem de ameaças pode parecer algo exótico, mas na verdade é bem simples. Avaliamos os potenciais ataques, sua probabilidade e impacto, e como mitigá-los. É algo que muitos de nós fazemos em outros contextos sem perceber. 

Um exemplo prático de modelagem e mitigação de ameaças.

Recentemente comprei uma nova bicicleta elétrica. Descobrir como evitar que seja roubado é um exercício de modelagem de ameaças. Eu guardo a bicicleta na minha garagem, então esse é um cenário que preciso analisar. Onde moramos, é improvável que um ladrão invada nossa garagem; algo que talvez não fosse verdade se eu morasse em um prédio de apartamentos em uma cidade grande, onde o acesso à garagem poderia ser mais fácil. No entanto, a probabilidade de meus filhos adolescentes deixarem a porta da garagem aberta é muito alta. Para mim, basta usar uma trava em U simples para que um possível ladrão não consiga pegar a bicicleta e sair pedalando. Por outro lado, se eu estiver usando minha bicicleta no centro de São Francisco, talvez queira uma trava resistente a esmerilhadeiras para impedir os ladrões mais agressivos.

A detached bicycle wheel lies on the ground next to a metal bike rack on a paved sidewalk.

Como a Okta aborda a modelagem de ameaças

Na Okta, fazemos o mesmo exercício com o nosso software. Refletimos sobre como um atacante poderia contornar nossas defesas e como podemos fortalecê-las.

Na Okta, temos um processo codificado, mas em constante evolução, para realizar a modelagem de ameaças. Diagramamos como os dados fluem pelo sistema e como os vários componentes interagem. Enumeramos cuidadosamente as possíveis maneiras pelas quais um invasor poderia comprometer nosso sistema e como podemos nos proteger. Após elaborarmos nosso modelo de ameaças, submetemo-lo à revisão interna por pares e especialistas em segurança, assim como fazemos com o código. Acabamos de começar a usar IA como parte do nosso processo de modelagem de ameaças e, abaixo, compartilharei algumas descobertas iniciais.

Utilizando a IA Claude para modelagem de ameaças

O novo recurso de Single Sign-On (SSO) vinculado ao dispositivo da Okta usa uma chave privada específica para assinar uma carga útil enviada ao back-end da Okta. Assinar o payload com essa chave permite que a Okta verifique detalhes específicos sobre a máquina do usuário final.

Solicitei a Claude, da Anthropic, que me ajudasse a construir o modelo de ameaças para a versão macOS do recurso de SSO vinculado ao dispositivo. Elaboramos diversas especificações técnicas para o recurso, incluindo um documento de arquitetura de alto nível, detalhes de implementação para clientes Windows e macOS e um modelo de ameaças para um cliente Windows. 

Elaborando o prompt de IA

Forneci todo esse contexto e usei a seguinte instrução bastante simples:

A pasta recursos contém uma descrição do recurso de tecla especial que estamos desenvolvendo. No diretório de recursos, encontram-se as especificações técnicas do recurso para macOS e Windows. Esse arquivo se chama SpecialKeySpec.pdf. Existe também uma especificação para macOS, chamada macOSSpecialKeySpec.pdf. 

O senhor é um especialista em cibersegurança que irá desenvolver um modelo de ameaças para essa funcionalidade usando a estrutura STRIDE.

Gostaria de obter o seguinte resultado:

* um diagrama de contexto de nível 0 construído usando o formato Mermaid;

* um diagrama de sequência construído usando o formato Mermaid;

* Uma enumeração das ameaças encontradas, com sugestões de mitigação, escritas em formato Markdown.

Analisando os resultados do modelo de ameaças de IA

A modelagem de ameaças pode parecer complexa, mas o uso eficaz de IA reduz a ansiedade que se sente ao encarar um documento vazio do Google Docs. Claude não tinha essa angústia e rapidamente elaborou uma lista de cerca de 20 ameaças. O resultado foi semelhante ao que eu esperaria de um jovem inteligente de 12 anos com interesse em segurança cibernética: muito entusiasmo, algumas boas ideias, mas uma falta geral de nuances.

Pontos fortes: onde a IA se destaca na modelagem de ameaças

Claude se destaca ao dar o pontapé inicial e realizar as tarefas burocráticas.

Claude demonstrou grande habilidade ao escrever os primeiros rascunhos dos diagramas que usamos na modelagem de ameaças. Nós fazemos os diagramas usando a linguagem de marcação Mermaid, e os diagramas Mermaid envolvem uma quantidade considerável de código padrão. Ao usar o Claude para iniciar o processo, o senhor chega a um diagrama funcional mais rapidamente do que se começasse do zero ou mesmo copiasse e colasse um diagrama existente. Em geral, o diagrama de sequência e os diagramas de fluxo de dados estavam razoáveis. Como dediquei pouco tempo à estrutura inicial, tive mais tempo para me concentrar na edição e no aprimoramento dos diagramas, tornando-os mais precisos.

The image shows an abstract flowchart diagram composed of multiple rectangular and circular nodes connected by arrows. Exemplo de um diagrama de fluxo de dados
A technical sequence diagram illustrates interactions between multiple system components arranged in vertical lanes. Exemplo de um diagrama de sequência

Claude fez um bom trabalho ao listar as ameaças relacionadas à violação de nossa chave privada. Claude também fez um bom trabalho ao enumerar os ataques do tipo "man-in-the-middle". Um ataque desse tipo ocorre quando alguém ou algo intercepta o tráfego de internet entre os componentes do seu sistema. 

Por fim, Claude listou vários ataques que poderiam ocorrer se um agente malicioso comprometesse um de nossos componentes de software. Tenho certeza de que não teríamos perdido esses detalhes se tivéssemos começado do zero, mas isso nos poupou muito tempo.

Illustration of a computer network showing two victim laptops connected through a central switch.

Limitações: sugestões de segurança de IA menos úteis

A produção de Claude, no entanto, muitas vezes carecia de nuances. Foram identificadas diversas ameaças relacionadas ao vazamento de dados não confidenciais. Por exemplo, temos um identificador de sessão, que é uma sequência única e nada secreta. Não especificamos isso em nossa solicitação, e Claude repetidamente apontou a divulgação desse identificador como um problema. 

Outras ameaças simplesmente não faziam sentido, e podíamos ignorá-las completamente. Claude nos aconselhou a substituir o HTTPS por XPC, algo que na realidade não é prático. Claude escreveu algumas ameaças sobre divulgação de senhas, mas não há senhas envolvidas no fluxo de dados.

Realizar uma análise de lacunas do modelo de ameaças.

Após passar várias horas editando a lista inicial de ameaças e o conjunto de diagramas de Claude, submeti meu rascunho à nossa oficina de modelagem de ameaças. Lá, modeladores de segurança experientes analisaram criticamente o projeto, fornecendo informações valiosas que incorporei diretamente ao modelo. Em seguida, voltei a falar com Claude e pedi que ele pegasse meu modelo semiacabado e o analisasse em busca de lacunas, usando novamente o modelo de ameaças do Windows como contexto.

Claude, mais uma vez, foi gentilmente prolixo e me deu uma longa lista de possíveis problemas. A maioria não era relevante, mas havia algumas preciosidades. Por exemplo, como havíamos endurecido bem um determinado componente do sistema, eu não havia considerado as ameaças que poderiam ocorrer sem esse endurecimento.

Uma boa regra de modelagem de ameaças é assumir que uma determinada ameaça não possui medidas de mitigação e considerar o resultado. Eu havia ignorado essa regra, mas Claude não. 

Claude forneceu mais algumas informações úteis: uma sobre criptografia na comunicação entre processos e outra sobre sequestro de sessão. Provavelmente, eu acabaria incorporando esses elementos como resultado da comparação com o modelo de ameaças do Windows, mas ter "outro par de olhos" me poupou tempo.

Principais conclusões sobre o uso de IA em fluxos de trabalho de cibersegurança

Existem, naturalmente, riscos ao usar IA para modelagem de ameaças. Para começar, é necessário garantir que as ferramentas de IA não estejam extraindo seus dados. Mesmo que a cadeia de ferramentas de IA esteja protegida de forma que resultados maliciosos não sejam um problema, os resultados podem ser incoerentes. É necessário realizar seu próprio trabalho com a mesma diligência de sempre. É fácil obter alguns bons resultados com IA — um e-mail bem escrito ou uma função bem codificada, por exemplo — e presumir que os resultados serão sempre excelentes. Da mesma forma, Claude não pode ser o único a fazer o brainstorming: o fato de Claude não ter mencionado uma ameaça específica não significa que se possa ignorá-la.

A IA faz um ótimo trabalho para colocar as coisas em movimento. Isso gera uma profusão de ideias. Algumas dessas ideias são úteis para construir o modelo final, algumas levam o modelador de ameaças humano a pensar em outras coisas, e algumas podem ser ignoradas. A IA pode evitar vieses cognitivos, como ignorar certas ameaças porque presumimos que uma parte do sistema é segura.

Na Okta, vemos claramente o valor da IA para a modelagem de ameaças, mas nossos empregos ainda estão seguros (pelo menos como modeladores de ameaças). A Ia permanece firmemente no âmbito de uma ferramenta útil em nosso fluxo de trabalho e não como a força motriz ou proprietária do próprio fluxo de trabalho.

Gostaria de saber como outras equipes estão aplicando essas tecnologias? Descubra como os funcionários da Okta utilizam a IA para impulsionar a inovação.

Continue sua jornada de identidade