Neste post será abordada a sobre a metodologia Secure Tropos, uma extensão a metodologia Tropos, para modelagem de Sistemas de Software Orientado a Agentes com avaliação direcionada requisitos de segurança de software. A metodologia Secure Tropos é parte de um projeto da Universidade de Brighton, na área de avaliação de Requisitos de Software relacionados a segurança.

Secure Tropos consiste em uma metodologia com o objetivo de modelar e analisar os requisitos de software relacionados à segurança ao lado de requisitos funcionais. A metodologia fornece um processo para a análise de requisitos que impulsione os projetistas de sistemas na aquisição de requisitos até a sua verificação, dando suporte a modelagem de Requisitos Não Funcionais relacionados à segurança de software em Sistemas Multiagentes.

Metodologia Secure Tropos

A metodologia Secure Tropos baseia-se no princípio de que a segurança deve ser analisada e considerada desde as fases iniciais do processo de desenvolvimento de sistemas de software e não adicionado como uma reflexão tardia. Como tal, o método fornece uma linguagem de modelagem, um processo da área de segurança e um conjunto de algoritmos para suportar a análise e a consideração de segurança desde as fases iniciais do processo de desenvolvimento. A metodologia Secure Tropos consiste de um conjunto de conceitos de Requisitos da Engenharia de Domínio e, em particular, Engenharia de Requisitos Orientada a Objetivos, como ator, objetivo, plano e dependência enriquecido com conceitos de engenharia de segurança, como a restrição de segurança, objetivos de segurança e ataques. O processo em Seguro Tropos é uma das análises das necessidades de segurança das partes interessadas e do sistema em termos de restrições de segurança, impostas às partes interessadas e do sistema, identificando os objetivos de segurança que garantam a satisfação dessas restrições de segurança, atribuindo mecanismos e recursos de segurança para o sistema ajudando a agregar satisfação aos objetivos de segurança.

Secure Tropos é baseado no conceito de Restrições de Segurança que, no contexto da Engenharia de Software, é geralmente definida como algo que pode influenciar a análise e o projeto de um sistema de software em desenvolvimento, restringindo algumas soluções alternativas de concepção, por entrar em conflito com alguns dos requisitos do sistema, ou por refinamento de alguns dos objetivos do sistema. Em outras palavras, as restrições podem representar um conjunto de restrições que não permitem ações específicas a serem tomadas ou prevenir que certos objetivos sejam alcançados. Muitas vezes, as restrições são integradas na especificação por descrições textuais existentes. No entanto, esta abordagem pode levar a mal entendimento e uma definição pouco clara de uma restrição e seu papel no processo de desenvolvimento. Consequentemente, isso resulta em erros logo no início das fases do processo de desenvolvimento que se propagam para as fases posteriores do processo de desenvolvimento que causam muitos problemas quando descoberto; se eles são descobertos. Portanto, são definidas restrições na segurança, como um conceito descrito separadamente.

Para poder mapear e tratar e tratar requisitos relacionados a segurança do software foi introduzido o conceito de Restrições de Segurança que foi definido dentro do contexto do Secure Tropos como: uma condição de segurança imposta a um Ator que restringe cumprimento de metas de um outro ator, execução de planos ou disponibilidade de recursos; contudo Restrições de Segurança estão fora do controle de um Ator. Um Ator representa uma entidade que tem intenções e objetivos estratégicos dentro do sistema de software ou no seu ambiente organizacional. No interior de uma rede de atores, que normalmente é o caso em grandes sistemas de software com várias partes interessadas, um Ator pode depender de um outro ator para um objetivo, um plano ou um recurso. Um Objetivo/Meta representa uma condição de melhoramento no mundo em que o ator habita e ele persegue para cumprir. Em outras palavras, os objetivos representam os interesses estratégicos do ator. Um Objetivo de Segurança representa um objetivo que é atribuído a um ator e indica um curso de ação que o ator precisa seguir para satisfazer uma ou mais Restrições de Segurança. A satisfação de uma ou mais restrições de segurança por um Objetivo de Segurança é definido através de um Relacionamento de Satisfação. Um Plano representa, em um nível abstrato, uma maneira de fazer alguma coisa. O cumprimento de um Plano pode ser um meio para satisfazer um Objetivo. Como tal, diferentes planos (alternativas), que os atores poderiam empregar para atingir seus objetivos, são modelados permitindo que os engenheiros de software raciocinem sobre as diferentes maneiras que os atores podem alcançar seus objetivos e decidir a melhor maneira possível. Um Mecanismo de Segurança representa um mecanismo de sistema que suporta a satisfação de um Objetivo de Segurança. Um Recurso representa uma entidade física ou de informação que um dos agentes requer para fazer uso. A principal preocupação quando se trata de recursos é saber se o recurso está disponível e quem é responsável pela sua entrega. Uma Segurança de Recurso representa um recurso físico ou de informação que precisa ser protegido, por exemplo, uma ficha de cuidados de saúde. Para apoiar a análise e avaliação da solução de segurança desenvolvido, a metodologia suporta a modelagem de Ataques à Segurança. Um Ataque é uma ação que pode causar uma potencial violação de segurança no sistema. No contexto de um Ataque, um invasor representa um Ator malicioso que tem interesse para atacar o sistema. Como descrito acima, o Ator tem intencionalidade e objetivos estratégicos dentro do sistema. No caso de um Atacante, a intencionalidade e objetivos estratégicos estão relacionados com a quebra de segurança de um sistema e identificação e execução de objetivos maliciosos. Para apoiar a modelagem de dependências entre atores para um Objetivo de Segurança, Mecanismo de Segurança e/ou Segurança de Recurso, Secure Tropos introduz a ideia de Dependência de Segurança.

A Dependência de Segurança introduz uma ou mais restrições de segurança que devem ser cumpridas para que a dependência seja válida.

As etapas de processo de desenvolvimento na metodologia Secure Tropos são:

  • Modelagem de Atores;
  • Modelagem de dependências;
  • Identificação de Restrições de Segurança;
  • Delegação de Restrições de Segurança e Objetivos;
  • Modelagem de Objetivos;
  • Modelagem de Restrições de Segurança;
  • Modelagem de Entidades de Segurança;
  • Análise de Ameaças;
  • Análise de Vulnerabilidades;
  • Modelagem de Atacantes;
  • Seleção de Provedor de Nuvem.

Além destes processos de modelagem, existe também as visões. A metodologia é composta de cinco visões:

  • Visão Organizacional;
  • Visão dos Requisitos de Segurança;
  • Visão de Componentes de Segurança;
  • Visão de Ataques à Segurança;
  • Visão de Análise de Nuvem.

Em cada uma dessas visões existem os componentes e relacionamentos utilizados para modelagem na ferramenta. Nas Tabelas 1 a 3 serão descritas as visões, seus componentes e suas utilidades em cada visão: existem componentes que são utilizados em várias visões, mas com a mesma utilidade e que, por isto, serão descritos somente na sua visão de origem e nas demais visões que são utilizados serão simplesmente citados.

Visão Organizacional

Componentes

Atores, Organização, Objetivos

Enlaces de Relacionamentos

Enlace de Dependência

ator

Atores são entidades ativas que realizam ações para atingir metas. Refere-se genericamente a qualquer unidade para a qual dependências intencionais podem ser atribuídas. Um ator interage com outros atores, não só por meio de ações ou fluxos de informação, mas também se relacionam entre si em nível intencional. Atores dependem uns dos outros para alcançar metas, realizar tarefas, e fornece recursos. Embora cada ator tem objetivos estratégicos a prosseguir, eles são alcançados através de uma rede de dependências intencionais.

organização

Organização mostra os limites da organização em que o sistema em desenvolvimento vai operar.

objetivo

Objetivo é uma condição a serem alcançadas. Um ator pode escolher livremente várias formas diferentes para alcançar um objetivo. Representa desejos ou intenções de um ator, os detalhes de como o objetivo deverá ser satisfeito si dá pela descrição das tarefas.

ligação

Utilizado para ligar os atores entre seus objetivos.

Tabela 1. Descrição dos elementos da Visão Organizacional.

Um elemento importante que não é descrito como componente gráfico na Visão Organizacional da Tabela 1 é a Fronteira do Ator. O usuário de escolher se o Ator deve ser exibido, com ou sem um limite. A fronteira é um quadro em torno de todos os objetos no modelo, que pertencem diretamente ao respectivo Ator. Fronteira do Ator indica limites intencionais de um determinado Ator. Todos os elementos dentro de um limite para um Ator são explicitamente desejados por esse Ator. Para atingir estes elementos, muitas vezes, um Ator deve depender das intenções dos outros Atores, representados por Enlaces de Dependência através das Fronteiras do Ator. Por sua vez, um Ator é dependido de satisfazer certos elementos, representados por um Enlace de Dependência no sentido oposto.

Visão de Requisitos de Segurança

Componentes

Ator, Objetivo, MetaObjetivo, Plano, Recurso, Restrição de Segurança, Objetivo de Segurança, Mecanismo de Segurança, Ameaça.

Enlaces de Relacionamentos

Enlace Meio-Fim, Enlace de Decomposição, Enlace de Contribuição, Enlace de Dependência, Enlace de Restrição, Enlace de Satisfação, Enlace de Implementação, Enlace de Impacto, Enlace de Mitigação, Enlace de Proteção.

metaobjetivo

MetaObjetivo é um Objetivo onde não se tem descrições clara de como cumpri-lo.

plano

Plano é o caminho para alcançar um objetivo.

recurso

Recurso é uma entidade de informação ou uma entidade física.

restrição

Restrição de segurança é uma restrição à função de um ator.

objetivo de segurança

Objetivo de Segurança é um objetivo que um Ator quer atingir, a fim de satisfazer uma restrição de segurança.

mecanismo de segurança

Mecanismo de Segurança representa um mecanismo de sistema que suporta a satisfação de um Objetivo de Segurança.

ameaça

Ameaça representa uma circunstância que tem o potencial de provocar danos no sistema.

enlace meio-fim

O Enlace Meio-Fim mostra uma forma particular (normalmente um Plano) para alcançar um objetivo. Ele fornece uma compreensão "por que" um ator iria se envolver em alguns Planos, atingir um objetivo, precisa de um recurso ou quer um MetaObjetivo. Isso indica uma relação entre uma extremidade e o meio para a alcançar. Os "Meios" são expressos sob a forma de um Plano, uma vez que o conceito de Plano incorpora como fazer alguma coisa, com o "Fim" expresso como um Objetivo. Na notação gráfica, os pontos de ponta de seta de os meios para o fim.

enlace de decomposição

Um Enlace de Decomposição mostra como um elemento intencional (tipicamente um Plano) é decomposto em sub elementos, que podem incluir Objetivos, Planos, Recursos e MetaObjetivos. Ele fornece uma descrição hierárquica de elementos intencionais que compõem uma rotina. Um elemento do tipo Plano está ligado a seus nós componentes por ligações de decomposição.

enlace de contribuição

Um Enlace de Contribuição mostra uma contribuição no sentido de satisfazer um MetaObjetivo, normalmente a partir de um Plano ou de outro MetaObjetivo. Qualquer uma destas ligações de contribuição pode ser utilizada para ligar qualquer um dos elementos para um MetaObjetivo para modelar o caminho de qualquer um destes elementos contribuir para a satisfação ou cumprimento de um MetaObjetivo.

enlace de restrição

Um Enlace de Restrição mostra as limitações de segurança para o cumprimento de um Objetivo.

enlace de satisfação

Um Enlace de Satisfação mostra a Restrição de Segurança que se satisfaz Objetivos de Segurança.

enlace de implementação

Um Enlace de Implementação mostra qual Mecanismo de Segurança será executado para cumprir o Objetivo de Segurança.

enlace de impacto

Um Enlace de Impacto mostra quando uma Ameaça afeta um cumprimento de um Objetivo.

enlace de mitigação

Um Enlace de Mitigação mostra a ligação de um Mecanismo de Segurança para mitigação de uma Ameaça.

enlace de proteção

Um Enlace de Proteção mostra o Recurso que um Mecanismo de Segurança está protegendo.

Tabela 2. Descrição dos elementos da Visão de Requisitos de Segurança.

Visão de Ataques à Segurança

Componentes

Ator, Objetivo, MetaObjetivo, Plano, Recurso, Restrição de Segurança, Objetivo de Segurança, Mecanismo de Segurança, Ameaça, Vulnerabilidade, Método de Ataque.

Enlaces de Relacionamentos

Enlace de Proteção, Enlace de Ataque, Enlace de Decomposição.

atacante

Um Atacante é um Ator malicioso que tenta pôr em perigo a segurança do sistema por meio de ataques aos seus Recursos, Objetivos e Planos.

vunerabilidade

A Vulnerabilidade é uma fraqueza do sistema ou da organização.

método de ataque

Um Método de Ataque é um método através do qual se realiza uma Ameaça.

enlace de ataque

Um Enlace de Ataque mostra a Vulnerabilidade que um Método de Ataque está explorando ao sistema.

Tabela 3. Descrição dos elementos da Visão Ataques à Segurança.

As outras duas visões não serão descritas neste post, pois fazem uso dos elementos aqui citados de uma forma mais detalhada.

Ferramenta Case e Instalação

Atualmente a ferramenta CASE para suporte a metodologia Secure Tropos é a SecTro2 versão 2.0 disponível somente para a plataforma Windows. O único pré-requisito para instalação da ferramenta é a instalação de Banco de Dados para armazenamento dos projetos. Existem dois tipos de instalação: instalação para o Windows XP e instalação para Windows 7 e 8. Ambas serão descritas a seguir.

Instalação no Windows XP

Para instalação do SecTro2 no Windows XP é necessária a instalação Microsoft SQL Server Desktop Engine (MSDE), uma versão reduzida do banco de dados Microsoft SQL Server. Clique para executar a aplicação de nome “setup.exe” para iniciar o processo de instalação e aguarde até que o processo de instalação esteja completo e tenha finalizado, como mostra a Figura 1.

Diretório da aplicação MSDE

Figura 1. Diretório da aplicação MSDE.

Após isto, vá para o pacote de instalação do SecTro2 e localize a aplicação chamada “setup_sectro2.exe” e execute para iniciar o processo de instalação (Figura 2). As próximas imagensa seguir ilustram as etapas do processo de instalação.

Diretório da aplicação de instalação do SecTro2

Figura 2. Diretório da aplicação de instalação do SecTro2.

A etapa a seguir é para customização da instalação, onde você deve informar o nome da conta do usuário logado no computador e se este computador pertence a alguma organização. Escolha o nome do usuário, organização e selecione uma das duas opções de instalação. A primeira opção é para instalação da aplicação para todas as contas de usuário presentes no Windows e a segunda opção faz instalação da aplicação somente para o usuário corrente e que está logado.

A próxima etapa será escolher como a aplicação será instalada, ou seja quais recursos de aplicação serão instalados. A Figura 3 ilustra os dois recursos que são o modo de instalação da aplicação e os pacotes de linguagens: como pode ser observado só existe um pacote de linguagem que é para o idioma Inglês; consequentemente só existe um modo de instalação que é o Standalone. O modo de instalação do tipo Standalone é que a aplicação só será instalada no computador corrente, ou seja, não se trata de um software em cuja instalação precisa ser realizada em vários computadores. Mantenha selecionada as duas opções e não esqueça de marcar a opção para criação do banco de dados no ato da instalação “Install SecTro2 database now”, pois senão você terá de fazer isto manualmente. Marcando está opção no ato da instalação da ferramenta, automaticamente é criado um esquema de banco de dados que é utilizada pela ferramenta salvar configurações de projetos e da própria ferramenta em si. Escolha o idioma que é utilizada pela interface, onde são oferecidas quatro opções para atender usuários do sistema em regiões ocidentais e orientais dos continentes. Após todas as configurações necessárias prossiga com o processo de instalação onde na próxima etapa é pedido ao usuário para confirmar as configurações e prosseguir com o processo de instalação.

Ilustração da etapa de customização da instalação

Figura 3. Ilustração da etapa de customização da instalação.

Os próximos passos serão o processo de instalação da ferramenta SecTro2. Será criado o esquema de banco de dados e pede autorização do usuário para clicar no botão “OK”. Em seguida o processo é finalizado.

Instalação no Windows 7/8

Para instalação do SecTro2 no Windows 7/8 é necessária a configuração e instalação do banco de dados Microsoft SQL Server Express. O banco de dados já vem incluído no pacote de instalação do SecTro2 localizado na pasta “SQLExpress”, como mostra a Figura 4.

Ilustração do pacote de instalação SecTro2.

Figura 4. Ilustração do pacote de instalação SecTro2.

Dentro da pasta "SQLExpress" localize a aplicação "sqlexpress.exe" e execute-a. Antes da instalação aparece uma janela de mensagem intitulada “Program Compatibility Assistant” (Assistente de Compatibilidade de Programa) aparece pedindo para concordar com possíveis problemas de compatibilidade quanto a instalação do Microsoft SQL Server Express que será instalado no computador o Windows 8/7. Selecione a segunda opção “Run the program without getting help” (Executar o programa, sem a obtenção de ajuda).

Quando iniciar a instalação, selecione "New installation or add features to an existing installation" (Nova instalação ou adicionar recursos a uma instalação existente) na janela do centro de instalação quando de uma nova instalação do Microsoft SQL Server. Na próxima etapa, ler e concordar com os termos de licença, clique no botão "Next".

O próximo passo de instalação consiste em selecionar quais recursos serão instalados na máquina. Este processo não requer qualquer modificação dos parâmetros de instalação mencionados na Figura 5, ou seja, marque todas as caixas de seleção. Certifique-se de que todas as caixas estão selecionadas nas "Features:" e clique em "Next". No próximo passo da instalação, selecione "Default Instance" para instalação de instância padrão do banco de dados e clique no botão “Next”. A instalação customizada que é a segunda opção é indicada para usuários de banco de dados avançados e que não será objeto de descrição aqui neste post. Para mais informações sobre instalação da ferramenta com configurações avançadas de banco de dados, entrar em contato com os autores da ferramenta no site do projeto informado acima. Lembre-se do nome da instancia que está sendo criada, pois ela será solicitada quando for ser instalado o SecTro2.

Ilustração da seleção das Features

Figura 5. Ilustração da seleção das Features.

Normalmente, nada tem que ser mudado na etapa "Server Configuration" (Configuração de Servidor), onde o usuário deverá selecionar a primeira opção (SQL Server Database Engine) que consiste em usar o Microsoft SQL Server como servidor de gerenciamento de banco de dados. Na etapa de "Database Engine Configuration" (Configuração de Banco de Dados), selecione "Mixed Mode" (Modo Misto), que consiste em fazer com que tanto o usuário possa logar manualmente no banco de dados quanto aplicações peçam autorização ao Windows para se autenticar no banco de dados; e crie uma senha para autenticação. É importante lembrar dessa senha, pois ela será necessária durante o processo de instalação do SecTro2. Depois de digitar a senha duas vezes, clique em "Next".

Desmarque a caixa de seleção no caso de ser selecionado na etapa de "Error Reporting" (Reportar Erro); se você selecionar esta opção caso exista algum erro de instalação do SQL Server este erro será reportado a Microsoft, e clique em "Next". A instalação do banco de dados será iniciada. Após a instalação do banco de dados, uma janela de relatório será aberta. Se tudo ocorreu bem, clique em "Close" para fechar a janela de instalação do banco de dados. Caso algum erro tenha aparecido durante o processo de instalação, verifique manualmente que tipo de erro ocorreu para correção, pois a instalação do SecTro2 depende da instalação do SQL Server. É recomendável que consulte fóruns da Microsoft para ajuda na correção dos erros.

A próxima etapa é a instalação da ferramenta SecTro2. Os passos de configuração e instalação são semelhantes ao que ocorre no Windows XP, com o acréscimo da etapa de escolha da instância que foi criada no processo de instalação do SQL Server e autenticação no esquema de banco de dados. Escolha a mesma instância e senha criados na etapa de instalação do banco de dados SQL Express. As demais etapas serão a criação do esquema de banco de dados e autenticação no banco de dados SQL Server. Com isto é finalizado o processo de configuração e instalação da ferramenta SecTro2.

Espero que tenham gostado e até o próximo post pessoal.