retornar retornar
Descodificação de ameaças cibernéticas  para 2023

POR:
Federico Pacheco
(I+D+i Manager)

COMPARTILHAR

Twitter Facebook Linkedin

O grande simulador (resposta a incidentes)

Introdução


O software para exercícios de simulação de resposta a incidentes não é tão comum no mercado. Não tanto devido à sua complexidade em comparação com outros tipos de software, mas porque é útil para algo muito específico, que é normalmente fornecido por grandes empresas globais de serviços de consultoria. No entanto, um projecto de menor escala poderia permitir a realização de exercícios de painel de instrumentos de forma prática e sem ter de prescindir das funcionalidades fornecidas por ferramentas comerciais ou privadas, considerando que as plataformas de interacção modernas só são acessíveis para utilização em grandes empresas e agências governamentais.

Desenho de um primeiro protótipo


Para se poder criar uma plataforma, é preciso primeiro compreender as principais funcionalidades a esperar:

  • Possibilidade de definir papéis para diferentes equipas.
  • Canais de recepção de eventos para os participantes.
  • Canais para os participantes formularem acções.
  • Carregamento de cenários com eventos correspondentes.
  • A ligação entre a base de dados de cenários e o canal de recepção.
  • A apresentação dos eventos de forma sincronizada e em momentos pré-definidos.
  • A formulação de inquéritos durante o exercício para gerar estatísticas.

Uma abordagem simples é realizar a interacção numa plataforma comummente utilizada, tal como Slack ou Discord, que são semelhantes em muitos aspectos. Uma análise exaustiva das características, funções e modos de licenciamento, orientada para um protótipo, leva a uma preferência pela Discord, dadas as suas funções granulares de atribuição de funções, chat de texto, salas de voz e vídeo, categorias e canais, e uma API livremente disponível com uma grande comunidade de programadores e exemplos existentes.



Outra decisão de concepção é o formato de armazenamento de cenários, que suporta consultas remotas, e uma linguagem de programação adequada para cumprir as funções acima mencionadas, que neste caso foi Python. Relativamente ao armazenamento dos cenários, foi seleccionado um formato de folha de cálculo (tipo Excel), que pode ser facilmente transformado em outros formatos orientados para a consulta de dados. Esta decisão deve-se ao facto de o desenho dos cenários estar tipicamente reflectido numa folha de cálculo conhecida como MSEL (Master Scenario Events List) onde todos os elementos que constituem a base dos eventos que serão injectados como peças de informação durante o exercício (injecções) são detalhados e organizados em ordem cronológica. Assim, cada coluna representa um elemento que é definido na fase de concepção do exercício.

Quanto ao mecanismo que permite retirar a informação de cada evento e atribuí-la a cada equipa (canal), foi desenvolvido um guião (bot) e para facilitar a interacção, a folha de cálculo MSEL em formato xlsx foi convertida num ficheiro em formato JSON, o que simplifica as consultas. O bot foi preparado para ser executado num sistema de nuvem com a última versão do Python, que pode ligar e aceder ao servidor Discord em questão para realizar injecções de eventos (injecções). Uma vez activado, o bot é controlado a partir da plataforma Discord pelos utilizadores autorizados a geri-lo (facilitadores) utilizando os comandos programados para o efeito: ping, para verificar a ligação; iniciar, para iniciar o fluxo de eventos; e retomar, para retomar ou iniciar a partir de um determinado ponto. Para resolver a linha temporal definida, o bot calcula o tempo entre eventos em vez de observar o tempo em tempo real. Antes de correr, o bot é pré-configurado com nomenclatura de canais de acordo com os requisitos de cada utilização.

Este projecto foi nomeado BORIS (Bot for Security Incident Response Orchestration) e foi disponibilizado publicamente para download a partir de um repositório online na plataforma colaborativa de desenvolvimento e controlo de versões GitHub.

O baptismo do fogo


Embora exercícios deste tipo sejam típicos das grandes corporações, nada impede a criação de versões que possam ser levadas para a sala de aula, com as correspondentes adaptações. Por esta razão, a BORIS foi proposta para o desenvolvimento de simulações adaptadas a cursos universitários ou programas de formação profissional que incluam gestão da segurança da informação, resiliência e continuidade empresarial, e resposta a incidentes, de tal forma que as técnicas e boas práticas possam ser exercidas, e permitam aos estudantes experimentar situações semelhantes às que encontrariam no mundo real. Os inquéritos pós-exercício durante um período de um ano mostraram resultados muito positivos em relação à capacidade do modo de aprendizagem permitido por este tipo de prática.

Foi então decidido alargar os limites das aplicações típicas da BORIS a este tipo de exercício, a organizações e empresas de média dimensão que, dada a dimensão das suas operações, não são as que tipicamente teriam tais serviços disponíveis, e provavelmente não teriam todo o pessoal com os conhecimentos internos para os desenvolver. Tal como acima referido, as simulações em ambiente de trabalho eram tradicionalmente associadas a grandes empresas e agências governamentais, devido à sua dimensão, número de áreas, pessoal, e capacidade económica para contratar um serviço ou conhecimento interno para o produzir. Os exercícios com diferentes empresas de média dimensão deram resultados muito bons, e os inquéritos subsequentes mostraram dados muito positivos em termos da experiência da simulação do cenário, em relação aos casos reais.



A BORIS evolui


O desempenho esperado da BORIS, tanto a nível educativo como comercial, levou à necessidade de crescimento que não poderia ter sido realizado apenas com um guião Python. Depois recebemos feedback de antigos estudantes, colegas, profissionais e clientes empresariais sobre possíveis características da ferramenta, e descobrimos que a característica mais solicitada era a possibilidade de interacção com outras plataformas, ou seja, incluindo a possibilidade do bot interagir com diferentes plataformas de comunicação, tais como Slack, Telegramas, Whatsapp, Equipas Microsoft.

Dado que as APIs de cada plataforma de comunicações são diferentes, começámos por programar um bot diferente para poder interagir com cada uma, o que transformou o projecto num conjunto de bots em vez de uma ferramenta que podia resolver interacções com diferentes sistemas. Este problema levou à concepção de uma estrutura que poderia fornecer uma arquitectura geral para interagir com cada plataforma de forma modular, com a possibilidade de incluir tantos módulos adicionais quantos as plataformas de comunicação existentes. A estrutura do quadro é mostrada abaixo. framework is shown below.



Estrutura do quadro

Desta forma, foi criada uma estrutura modular que tem no seu núcleo a orquestração de eventos armazenados numa base de dados principal (MSEL) juntamente com uma série de regras definidas para cada exercício (opcional) e uma configuração que permite a definição dos parâmetros técnicos da plataforma utilizada, tais como fichas de acesso. Este MSEL é construído para cada exercício com base numa história, que por sua vez se baseia em definições de sector ou indústria, e no tipo de incidente de base escolhido. O orquestrador comunica com o módulo específico da plataforma e isto permite que os eventos sejam apresentados nos canais de entrada apropriados para cada um, de acordo com a configuração do seu módulo.

O projecto passou então de ser um único bot Python para uma estrutura, razão pela qual foi redefinido como T3SF (Technical TableTop Exercise Simulation Framework). Para a documentação do projecto, foi utilizada a plataforma de alojamento gratuito de documentação de software de código aberto Read the Docs, que produz documentação escrita com o gerador Sphinx. Da mesma forma, o código fonte do quadro é publicado para uso livre e gratuito sob a licença GPLv3 num repositório na plataforma GitHub. https://github.com/Base4Security/T3SF.



O quadro descrito, e com todas as suas características funcionais, foi utilizado em diferentes exercícios subsequentes em empresas e organizações, com resultados satisfatórios, e está constantemente a ser melhorado com a correcção de falhas e a adição de funcionalidades tais como decisões pré-estabelecidas em determinados eventos, ou o fluxo variável do exercício de acordo com as acções e respostas dos participantes.

Conclusões


Os exercícios de simulação de resposta a incidentes de cibersegurança provaram ser uma ferramenta experimental para ajudar a melhorar as capacidades de reacção a eventos adversos, através de ensaios especialmente concebidos para salientar pontos específicos desejados com base nos processos e procedimentos de uma organização. A aplicação em ambientes educativos provou ser útil ao expor os estudantes a situações fictícias sem a necessidade de as ter experimentado previamente em ambientes operacionais ou de trabalho, enriquecendo assim a experiência dos participantes.

A inclusão de plataformas de software para este tipo de testes dá maior realismo aos ambientes simulados, ao mesmo tempo que permite expandir os cenários fictícios e aumentar os exercícios em si. Ao desenvolver uma ferramenta livre e aberta para este fim, esta possibilidade está aberta a todos os ambientes, educacionais ou profissionais, de modo a que as limitações do software comercial, cujos custos são proibitivos para a maioria dos ambientes, possam ser evitadas. Desta forma, o resultado do processo de inovação aplicado à cibersegurança resultou numa solução livre e aberta que qualquer organização pode utilizar para exercer as suas capacidades de resposta a incidentes.