Um Modelo de Falhas em Cascata para Sistemas
Transcrição
Um Modelo de Falhas em Cascata para Sistemas
Anais do XIX Workshop de Gerência e Operação de Redes e Serviços– WGRS 2014 Um Modelo de Falhas em Cascata para Sistemas Globais de Gerenciamento de Identidades Ricardo Macedo1 , Aldri Santos1 , André Luiz Pires Guedes1 , Michele Nogueira1 , Yacine Ghamri-Doudane2 1 2 Universidade Federal do Paraná – Curitiba – PR – Brasil University of La Rochelle – La Rochelle CEDEX 1 – France {rtmacedo,aldri,andre,michele}@inf.ufpr.br, [email protected] Abstract. The increasing number of portable devices requires a global identity management system. However, these systems are cascading failures prone, that is, failures arosed by the coordinated exploitation of common vulnerabilities among identities providers to manipulate the authentication operations. Although there are theoretical models to analyze cascading failures resulted from nodes overload, cascading failures effects from the coordinated exploitation of vulnerabilities in authentication operations remains no investigated. This paper presents an analytical cascading failure model for identity management systems, enabling the investigation these failures. Results from a case study indicate that failure dissemination in biggest sets of identities providers can compromise a identity management system in about 100%. Resumo. A explosão do número de dispositivos portáteis conectados tem demandado sistemas de gerenciamento de identidades globais. Entretanto, esses sistemas são propensos a falhas em cascata, as quais são oriundas da exploração coordenada de vulnerabilidades em comum entre provedores de identidades para manipular as operações de autenticação. Apesar de existirem modelos teóricos para analisar falhas em cascata resultantes da sobrecarga da capacidade de nós, o efeito de falhas em cascata decorrente da exploração de vulnerabilidades nas operações de autenticações em sistemas de gerenciamento de identidades permanece em sua maioria desconhecidos. Este trabalho apresenta um modelo analítico de falhas em cascata para sistemas de gerenciamento de identidades, possibilitando a investigação dessas falhas. Resultados de um estudo de caso indicam que a disseminação de falhas nos conjuntos maiores de provedores de identidades pode comprometer até 100% do sistema. 1. Introdução Atualmente, a explosão do número de dispositivos portáteis conectados tem demandado um Sistema de Gerenciamento de Identidades (SGI) global. Recentemente, a Cisco Systems, empresa líder no oferecimento de soluções para redes e comunicações, previu que no final de 2014 o número de dispositivos portáteis conectados excederá o número de pessoas no planeta e que em 2018 existirão em média 1.4 dispositivos móveis por pessoa [Cisco 2014]. Uma das consequências desta explosão será 105 Anais do XIX Workshop de Gerência e Operação de Redes e Serviços– WGRS 2014 que cada dispositivo demandará pelos menos uma identidade (ID) para prestar e consumir serviços disponibilizados em sistemas distribuídos, tais como nuvens, arquiteturas orientadas a serviços (Service-oriented Architectures - SOA) ou Internet das coisas [Lampropoulos and Denazis 2011, Lynch 2011, Angulo and Wästlund 2013]. Neste cenário, será necessário um SGI capaz de garantir as operações de autenticação, gestão de autorizações e controle de acesso em escala global. No entanto, em um SGI há a possibilidade de uma falha em cascata. Uma falha em cascata consiste em um tipo de falha capaz de ser disseminada através da interdependência de elementos de um sistema [Crucitti et al. 2004]. Nos SGIs uma falha em cascata surge em decorrência de um ataque coordenado visando explorar as vulnerabilidades em comum entre provedores de identidades para manipular grande parte das respostas das autenticações com intuito de personificar IDs [Camp 2010, Wang et al. 2012, Bertino 2012]. A ocorrência desse tipo de falha gera um estado de caos no SGI, pois a garantia das operações de autenticação, gestão de autorizações e controle de acesso é comprometida nos provedores de serviço. Atualmente, um método eficaz para eliminar os efeitos de uma falha em cascata é desconhecido. Na literatura, a caracterização de falhas surge como o passo inicial para criação de medidas de contenção e mitigação de falhas em cascata [Kinney et al. 2005]. Nas redes de distribuição de energia elétrica e na Internet a ocorrência de colapsos de funcionamento impulsionou a consolidação de modelos teóricos que permitem a análise do efeito das falhas em cascata nesses sistemas [Motter and Lai 2002, Crucitti et al. 2004, Havlin et al. 2010]. Todavia, esses modelos assumem como premissa que uma falha em cascata ocorre em virtude da sobrecarga da capacidade dos nós. Em um SGI essa premissa não é válida, pois uma falha em cascata dá-se em função da exploração coordenada de vulnerabilidades em comum entre provedores de identidades para manipular as respostas de autenticações e não em decorrência da sobrecarga de nós, impedindo a mera utilização dos modelos existentes. Consequentemente, os efeitos de uma falha em cascata dessa natureza permanecem desconhecidos nos SGIs, reforçando a necessidade de meios para analisá-los. Este trabalho apresenta um modelo analítico de falhas em cascata em SGIs, possibilitando a investigação dessas falhas nesse tipo de sistema. A abstração do SGI é realizada através de um grafo. Os vértices desse grafo são particionados em três conjuntos, representando as entidades do sistema, como as IDs, os provedores de identidades e os provedores de serviços. As arestas representam a interdependência entre os elementos do SGI, descrevendo os diferentes tipos de relações entre estes tipos de entidades. A disseminação da falha em cascata oriunda da exploração de vulnerabilidades no processo de autenticação entre provedores de identidades é representada através de um caminho entre esses provedores. A falha em cascata é demonstrada através de uma prova por indução no número de provedores de identidades presentes neste caminho. Um estudo de caso do modelo envolvendo dados reais do sistema Shibboleth da Universidade de Buffalo mostra que as falhas em cascata podem resultar em danos catastróficos. A presença de vulnerabilidades em comum entre os provedores de identidades é caracterizada pelo modelo proposto através da variação de probabilidades da distribuição binomial, resultando em diferentes conjuntos de vértices conectados entre si. Uma análise do efeito da falha em cascata no maior conjunto de provedores de identidades em 106 Anais do XIX Workshop de Gerência e Operação de Redes e Serviços– WGRS 2014 detrimento de conjuntos de tamanho aleatório é realizada através da métrica Impacto da Falha em Cascata (IFC). O IFC é obtido através da divisão do número de provedores de identidades falhos pelo número total de provedores de identidades. Os resultados indicam que o IFC nos conjuntos maiores atinge 100% dos provedores de identidades com probabilidade de presença de vulnerabilidades de 0.45 e que em conjuntos de tamanho aleatório o IFC chega a atingir 70% dos provedores de identidades. Esse resultado mostra que mesmo com baixa probabilidade de vulnerabilidade entre provedores de identidades os efeitos de uma falha em cascata em um SGI global são catastróficos. O restante do trabalho está organizado como segue. Na Seção 2 são apresentados os trabalhos relacionados. A Seção 3 detalha o modelo de falhas em cascata para SGIs. A Seção 4 explica um estudo de caso envolvendo dados reais de gerenciamento de identidades coletadas do sistema Shibboleth. Na Seção 5 são apresentadas as conclusões. 2. Trabalhos Relacionados Na literatura, existem diversas iniciativas para caracterizar falhas em sistemas distribuídos, destacando-se a forte análise do comportamento das falhas em cascata. A título de exemplo, um modelo temporal para caracterizar falhas intermitentes em dispositivos elétricos foi proposto [Correcher et al. 2012]. Além disso, também as falhas leves de datacenters foram caracterizadas visando incrementar a disponibilidade dos serviços prestados [Sankar and Gurumurthi 2013]. Atualmente, a presença de colapsos de funcionamento em diversos sistemas de larga escala, tais como a Internet e os sistemas Smart Grid, impulsionou investigações para caracterizar falhas em cascata. Em [Huang et al. 2013] um modelo para caracterizar falhas em cascata em Smart Grid foi apresentado. Nele, a caracterização de falhas considera a relação entre a rede de distribuição de energia e a rede de comunicação. Assumiu-se que a falha em uma dessas redes implica diretamente na outra. Outra premissa consiste na existência de interdependência entre as redes resultantes de uma relação de um para muitos, pois cada nó obtém energia de uma estação de abastecimento específica. Os autores advogam a capacidade de caracterizar de modo prático falhas em cascata em Smart Grids, mas salientam as limitações do modelo. O trabalho de [Wang et al. 2014] apresentou um modelo empregando grafos dinâmicos para caracterizar falhas em cascata e seus comportamentos na Internet. O diferencial desse modelo foi assumir diferentes tipos de vértices para representar os hosts e roteadores da Internet. Essa abordagem possibilitou uma análise mais criteriosa da falha em cascata e seus efeitos. A caracterização dessas falhas foi realizada assumindo que as falhas em cascatas são disparadas por ataques intencionais a uma única aresta, representando a conexão entre os vértices do grafo. Apesar da existência de modelos para caracterizar falhas em cascata em vários sistemas, nos SGIs esses modelos representam apenas falhas em cascata oriunda da sobrecarga dos serviços prestados. Na literatura há diversos modelos consolidados para caracterizar falhas em cascata [Motter and Lai 2002, Crucitti et al. 2004, Havlin et al. 2010]. Entre esses modelos, uma característica em comum é que o efeito em cascata é desencadeado através da sobrecarga dos nós ativos. Em um SGI esses modelos representam apenas falhas em cascata oriundas da sobrecarga dos serviços prestados, enquanto que os efeitos das falhas em cascatas em função da exploração de vulnerabilidades em comum 107 Anais do XIX Workshop de Gerência e Operação de Redes e Serviços– WGRS 2014 no processo de autenticação entre provedores de identidades continuam desconhecidos. Este trabalho apresenta um modelo analítico de falhas em cascata para SGIs. O principal diferencial deste modelo consiste em tratar de falhas em função da exploração de vulnerabilidades no processo de autenticação de provedores de identidades. Assim como modelos de falhas em cascata em Smart Grids, assumimos como premissa a interdependência entre elementos do sistema. No SGI, a interdependência ocorre entre diferentes federações, indicando que a falha em uma federação implicará em falhas em outras federações. Além disso, tal como na caracterização de falhas em cascata na Internet, usamos diferentes tipos de vértices para diferentes elementos do SGI. Em nosso modelo usamos três diferentes tipos de vértices para representar as IDs, provedores de identidades e provedores de serviços de um SGI. 3. Modelo de Falhas em Cascata para Sistemas de Gerenciamento de Identidades Esta seção detalha o modelo proposto para representar falhas em cascata em um SGI. A subseção 3.1 detalha a modelagem do SGI através de um grafo. A subseção 3.2 descreve o comportamento do sistema através da teoria dos conjuntos; e a subseção 3.3 demonstra o efeito de falhas em cascata por meio de uma prova por indução. 3.1. Modelo do Sistema de Gerenciamento de Identidades Os principais conceitos envolvidos em um SGI consistem na entidade, ID, identificador e credencial. Uma entidade pode ser uma pessoa, um serviço de rede ou um dispositivo [Torres et al. 2013]. Uma ID consiste na representação digital de uma entidade em interações eletrônicas [Phiri and Agbinya 2006]. Uma entidade pode assumir várias identidades com diferentes objetivos, por exemplo, em um sistema um usuário pode ter uma conta de usuário comum e outra como super usuário. O identificador consiste em um índice único usado para referenciar uma ID no SGI. Uma credencial trata-se de informações confidenciais das IDs usadas para provar sua autenticidade em um SGI, podendo ser uma senha ou informações biométricas [Smedinghoff 2012]. A Figura 1 demonstra a relação entre entidade, ID, identificador e credencial. Figura 1. Relação entre Entidade, Identidade, Identificador e Credencial Na Figura 1, é ilustrado que uma entidade pode ter várias identidades e que cada identidade possui um identificador único e uma credencial. Os conceitos de identificador e credencial podem parecer confusos, mas a principal diferença entre eles é o fato de que um identificador deve ser único em um SGI e a credencial não. No SGI, os provedores de identidades consistem nas entidades responsáveis por controlar as credenciais das 108 Anais do XIX Workshop de Gerência e Operação de Redes e Serviços– WGRS 2014 IDs e prover serviços de autenticação. As entidades incumbidas de disponibilizar serviços especificamente para as IDs consistem nos provedores de identidades. Uma federação é um ambiente cooperativo formado pela união de um conjunto de domínios, onde cada domínio agrega diferentes IDs, provedores de identidades e provedores de serviços [Cao and Yang 2010]. Para fins de modelagem, o SGI é considerado como um ambiente cooperativo formado pela associação de diversas federações. As principais operações de um SGI consistem na identificação, autenticação, autorização e auditoria. A identificação consiste na operação inicial de reconhecimento de uma ID no SGI com base em seu identificador, esta operação não apresenta validação. A autenticação consiste no ato de verificação da legitimidade de uma ID por meio da verificação de credenciais. A autorização compreende a concessão de privilégios a uma ID após autenticação. A auditoria consiste no registro das ações realizadas por uma entidade em um SGI. Essas operações são críticas para o funcionamento correto de um SGI. O modelo proposto contempla a exploração de vulnerabilidades nas operações de autenticação, pois o comprometimento dessa operação pode implicar em falhas nos processos de autorização e de auditoria. Com este objetivo um SGI é representado por um grafo direcionado G = (V, E), sendo V composto por vértices provenientes do particionamento de três conjuntos de vértices, A, B e C. Esses conjuntos caracterizam respectivamente as IDs, os provedores de identidades e os provedores de serviços do sistema, logo o conjunto de vértices de G é a união dos conjuntos A, B e C. As arestas de G são representadas pelos conjuntos E1, E2, E3, E4, E5, onde E1 = {(a, b)|a ∈ A, b ∈ B}, E2 = {(b, c)|b ∈ B, c ∈ C}, podendo também existir arestas entre os elementos de cada conjunto, E3 = {(a1 , a2 )|a1 ∈ A, a2 ∈ 5 S A}, E4 = {(b1 , b2 )|b1 ∈ B, b2 ∈ B}, E5 = {(c1 , c2 )|c1 ∈ C, c2 ∈ C}, logo E = Ei . i=1 Cada conjunto de arestas representa um tipo específico de Relação (Re). O conjunto de arestas E1 representa quais provedores de identidades b ∈ B uma ID a ∈ A pode usar para se autenticar. E2 descreve quais provedores de serviço c ∈ C confiam nas autenticações de um provedor de identidades b ∈ B. E3 retrata a composição de IDs parciais de um usuário. E4 expõe a relação dos provedores de identidades que apresentam propriedades em comum. E5 representa a composição de provedores de serviços, ou seja, situações onde serviços podem ser consumidos por outros serviços, tal como ocorre em SOAs. Em outras palavras, em G qualquer tipo de relação pode existir, exceto as associações de IDs com provedores de serviços, pois essa relação não é fiel a forma como os recursos são compartilhados em um SGI. As direções das arestas em G representam as características do SGI. As arestas entre os conjuntos seguem a direção A → B → C. A direção A → B representa a associação das IDs com seus respectivos provedores de identidades. B → C indica de quais provedores de identidades os provedores de serviços aceitam autenticações. Dentro de cada conjunto (A, B, C) existem arestas com direção dupla. A análise vai usar a direção das arestas, mas no caso destas, se coloca direção dupla justamente porque as direções não importam para caracterizar as falhas em cascata. Além disso, o grafo G não considera peso nas arestas, retratando a indiferença de qual provedor de identidades irá autenticar uma ID, contanto que o provedor de serviços desejado aceite essa autenticação. Como também, através da perspectiva do provedor de serviços, é indiferente qual provedor de 109 Anais do XIX Workshop de Gerência e Operação de Redes e Serviços– WGRS 2014 identidades que ele confia autenticou uma ID. A Figura 2 ilustra um exemplo de grafo G. Figura 2. Exemplo de Grafo de um Sistema Gerenciamento de Identidades Global Na Figura 2, os vértices de cor branca representam IDs (conjunto A), os de cor cinza representam os provedores de identidades do conjunto B e os de cor preta, os provedores de serviços do conjunto C. As arestas de G apresentam a direção A → B → C e não possuem peso. Também se observa que G é conexo, pois não existem vértices sem arestas. Além disso, nota-se que podem existir ciclos em G entre elementos do mesmo conjunto. Sendo Cn um ciclo onde n vértices são adjacentes, o centro do grafo apresenta um C4 entre elementos de C, representado uma composição de quatro provedores de serviço. Logo abaixo do C4, um C5 entre elementos do conjunto B é encontrado, caracterizando cinco provedores de identidades com vulnerabilidades em comum no mecanismo de autenticação. A esquerda do centro do grafo, um C6 entre os elementos de A, descrevendo a composição de uma ID através de seis identidades parciais. 3.2. Modelo de Falhas em Cascata Nesta subseção o modelo de falhas em cascata para um SGI global é descrito usando a teoria dos conjuntos. Na sequência, o modelo de autenticação e da falha em um único nó é apresentado. Considere o particionamento de três conjuntos não vazios de vértices A, B e C de um grafo G, onde V = A ∪ B ∪ C. Seja C 0 o conjunto de subconjuntos de C, ou seja, C 0 = 2|C| , logo os elementos de C 0 representam todas as combinações possíveis dos elementos de C. Em outras palavras, cada elemento de C 0 é um subconjunto de provedores de serviço que confiam na autenticação de uma ID a ∈ A por um provedor de identidades b ∈ B. Como não existem arestas entre o conjunto de vértices A e C, podemos denotar o conjunto A como o domínio de uma função e B como seu contra domínio formado pelas arestas que saem de A para B. Da mesma forma, o conjunto B como domínio de uma função e C 0 como seu contradomínio. Seja f : A → B a função bijetora que descreve as arestas do conjunto A para B e g : B → C 0 a função sobrejetora que descreve as arestas do conjunto B para C 0 . Onde, 110 Anais do XIX Workshop de Gerência e Operação de Redes e Serviços– WGRS 2014 A é o domínio da função f , B é o contra domínio e a imagem é o subconjunto de B. Considerando a função g, o conjunto B é o domínio e C é o contra domínio e a imagem é o subconjunto de C. A Figura 3 ilustra a relação entre esses conjuntos. A Figura 3 ilustra a relação entre esses conjuntos. Figura 3. Modelo de representação das arestas entre os conjuntos de vértices Com base nas funções f e g uma função para autenticação é modelada. Seja auth : A × B × C → {verdadeiro, f also} a função bijetora de autenticação cujo retorno é um valor booleano verdadeiro ou falso. Dessa forma, seja a uma ID do SGI, a função auth(a) descreve uma requisição de acesso da ID a ∈ A para um provedor de identidades b ∈ B para acessar um provedor de serviços c ∈ C. Se as credenciais apresentadas para a ID a forem verdadeiras, esta será autenticada com sucesso e auth(a) retornará verdadeiro, caso contrário retornará f also. Seja b ∈ B o provedor de identidades escolhido pelo usuário para autenticar a ID a, logo a função g(b) pode ser usada para extrair a quantidade de provedor de serviços que auth nos proporcionará acesso, o resultado desta função será um valor de no mínimo um e no máximo |C|. Tendo definido a função de autenticação, o modelo da falha em um único nó do SGI é apresentado. Assumimos uma falha como a exploração de uma vulnerabilidade no processo de autenticação de um provedor de identidades que resulta na violação das medidas de monitoramento e controle das IDs. O modelo da falha é realizado provando o seguinte lema. Lema 1 Se existe uma vulnerabilidade vul em um provedor de identidades b ∈ B que quando explorada possibilita burlar as credenciais de uma ID, então existem falhas de autorização em no mínimo um e no máximo |C| provedores de serviços c ∈ C. Prova. Direta. Seja vul uma vulnerabilidade de um provedor de identidades b ∈ B, de modo que vul possibilita manipular a resposta da função auth retornando verdadeiro para um atacante que objetiva passar-se indevidamente por uma ID a ∈ A. Seja f ault a função que representa esta falha de segurança no SGI. Logo, podemos denotar f ault como uma função composta f (g(x)), onde f ault(a) = f ◦ g(a) = f (g(a)). Como auth, possibilita acesso para no mínimo um e no máximo |C| provedor de serviços, logo, se auth for manipulada por um atacante, o número de provedores de serviços afetados por essa falha também será no mínimo um e no máximo |C|. Portanto, se existe uma vulnerabilidade vul em um provedor de identidades b ∈ B que se explorada possibilita burlar as credenciais de uma ID, então existem falhas de autorização em no mínimo um e no máximo |C| provedores de serviços c ∈ C. 3.3. Prova por Indução da Falha em Cascata Esta subseção demonstra como ocorre a falha em cascata em um SGI. Através do Lema 1 provamos que quando um atacante obtém sucesso ao explorar uma vulnerabilidade vul de 111 Anais do XIX Workshop de Gerência e Operação de Redes e Serviços– WGRS 2014 um provedor de identidades que o possibilita burlar uma credencial de uma ID qualquer, automaticamente todos os provedores de serviços que confiam na autenticação deste provedor de identidades concederão acesso indevido ao atacante para a ID com a autenticação burlada. Agora, a ocorrência da falha em cascata em um SGI é demonstrada através de uma prova por indução. Este tipo de prova oferece iteratividade, pois através dela podemos representar os estágios da disseminação da falha de segurança e seus efeitos. A ideia base desta prova consiste em mostrar a existência de um caminho entre os provedores de identidades que apresentam a mesma vulnerabilidade. Prova. Por indução no número de provedores de identidades compondo um caminho entre esses provedores com a mesma vulnerabilidade. Hipótese. Existe um caminho entre os provedores de identidades que representa o efeito de uma falha em cascata. Base. Queremos demonstrar o efeito de uma falha em cascata quando o caminho entre os provedores de identidades tem apenas dois vértices. Seja b1 ∈ B o provedor de identidades cuja a vulnerabilidade vul foi explorada para burlar o acesso da ID a ∈ B. Seja b2 ∈ B o provedor de identidades adjacente à b1 . Seja E4 o conjunto de arestas que representa a relação dos provedores de identidades com propriedades em comum. Logo, as arestas incidentes à b1 ∈ E4 descrevem quais provedores de identidades a vulnerabilidade vul pode ser explorada. Logo, exitem dois vértices b1 , b2 conectados por arestas pertencentes à E4. Seja um caminho em um grafo uma sequência de vértices, onde cada vértice apresenta uma aresta para o próximo vértice da sequência. Logo, existe um caminho P a somente com dois elementos do conjunto de vértices B, onde b1 é o vértice inicial e b2 o elemento final. Este caminho representa por quais vértices a falha em cascata pode ser disseminada pelo SGI. Considerando o Lema 1, a falha de cada provedores de identidades deste caminho afetará no mínimo um e no máximo |C| provedores de serviços. Passo. Queremos provar que existe um caminho com i + 1 provedores de identidades que representam uma falha em cascata em um SGI. Suponha a existência de i provedores de identidades em um caminho P a. Logo, existe um caminho P a = {b1 , b2 ..., bi }, onde cada provedor de identidades possui a vulnerabilidade vul. Logo, aplicando o Lema 1, existe um caminho P a = {b1 , b2 ..., bi+1 }. Portanto, sabemos que cada um destes vértices pode comprometer no mínimo um e no máximo |C| provedores de serviço. Note que através do modelo de falha em cascata proposto, o funcionamento do provedor de identidades sob ataque não é falha em decorrência da sobrecarga, pois para autenticações de IDs legítimas, o SGI funcionará normalmente, inclusive com provedores de identidades falhos. Neste ponto o modelo proposto se diferencia dos modelos de falha em cascata da literatura, pois a disseminação da falha não ocorre com base na sobrecarga dos nós e sim na exploração de vulnerabilidades presentes em um conjunto de provedores de identidades. 112 Anais do XIX Workshop de Gerência e Operação de Redes e Serviços– WGRS 2014 4. Estudo de Caso Esta seção descreve um estudo de caso aplicando o modelo proposto. A Subseção 4.1 detalha informações da base de dados coletada de um SGI. A Subseção 4.2 apresenta a abstração do sistema através do modelo proposto. A Subseção 4.3 explica a análise do efeito da falha em cascata na abstração do SGI. 4.1. Descrição da Base de Dados Shibboleth O estudo de caso é realizado sobre dados coletados do sistema Shibboleth. O Shibboleth consiste no framework de gerenciamento de identidades federado mais utilizado no meio acadêmico para Web Single Sign-on [Watt et al. 2011]. A técnica de Single Sign-on permite que uma autenticação bem sucedida em um provedor de identidades de um domínio seja aceita em outros domínios da federação, sem a exigência de novas autenticações a cada nova sessão e minimizando a necessidade do usuário memorizar um grande número de senhas. Esta solução federada vem sendo projetada para suprir a necessidade de garantir o acesso seguro a recursos compartilhados entre diferentes domínios de maneira descentralizada. Uma base de dados composta por logs de autenticação de um sistema Shibboleth real foi empregada para criação de um cenário de análise. Os dados foram coletados pelo SGI da Universidade de Buffalo, localizada em Nova York. O período de coleta compreendeu os meses de Abril de 2009 até Setembro de 2013. Os logs de autenticação são categorizados por mês e ano representando as autenticações por domínio e por serviço. Esses dados utilizados podem ser encontrados no sítio Web da Universidade de Buffalo [UBI ]. As autenticações por domínio contabilizam as requisições de autenticação originadas por navegadores do domínio interno da rede. As autenticações por serviço contabilizam e categorizam as requisições pelo serviço Web destino. Ao todo, 110 arquivos categorizados por mês são extraídos. Para cada mês são obtidos dois arquivos, um contendo as requisições de autorização por domínio e outro com as requisições de autenticação por serviço. Para evitar a análise de uma grande quantidade de dados, um arquivo com maior representatividade para análise foi escolhido, sem a perda de generalidade. Desta forma, são escolhidos os dados de autenticação de um mês com maior número de provedores de identidades, provedores de serviços e o mais recente possível. Com base nestes critérios, o mês de Setembro de 2013 foi selecionado para análise. Neste mês a infra-estrutura de gerenciamento de identidades analisada conta com seis provedores de identidades s e dez principais provedores de serviços, totalizando mais de dois milhões de autorizações. 4.2. Abstração do sistema Shibboleth Através do Modelo Proposto A abordagem utilizada para representar o sistema Shibboleth através do grafo proposto como modelo consiste em separar os provedores de serviços, os provedores de identidades e as IDs em diferentes conjuntos de vértices e em seguida relacioná-los. Denotamos uma instância desse grafo como H = (V, E), onde V é o particionamento de três conjuntos de vértices, A, B e C, caracterizando IDs, provedores de identidades e provedores de serviços, respectivamente, logo V = A ∪ B ∪ C, conforme definido no modelo. Com base nas informações disponibilizadas não foi possível extrair o número exato de IDs para o conjunto A, pois somente as requisições originadas por cada domínio foram disponibilizadas. Isto impossibilitou a identificação da existência de ciclos 113 Anais do XIX Workshop de Gerência e Operação de Redes e Serviços– WGRS 2014 entre IDs e das associações entre IDs e provedores de identidades. Entretanto, entendese que esse fato não compromete os objetivos da análise, pois podemos considerar as IDs como um único conjunto e investigar a disseminação da falha entre os provedores de identidades. Com esse fim o vértice denominado identidades foi criado. Para definição dos conjuntos B e C foi possível extrair o número exato de elementos. O conjunto B, responsável por agregar os provedores de identidades, apresenta seis elementos, sendo eles: download.acsu.buffalo.edu, myub.buffalo.edu, ublearns.buffalo.edu, ubsis.buffalo.edu, myaccount.myubcard.com e ubmail.buffalo.edu. Enquanto que o conjunto C, incumbido de representar os provedores de serviços, totaliza dez elementos, sendo eles: messagesystems.com, rr.com, optonline.net, level3.net, pavlovmedia.com, mycingular.net, verizon.net, com.sg, myvzw.com e buffalo.edu. A Figura 4 ilustra o grafo H. Figura 4. Grafo do Sistema de Gerenciamento de Identidades Shibboleth Na Figura 4, os vértices de cor branca, cinza e preta, representam respectivamente os conjuntos A, B e C pertencentes a H e suas respectivas arestas. O único vértice branco da figura foi usado para representar o conjunto identidades que agrega todas as IDs do SGI. Os vértices de cor preta representam seis provedores de identidades da Universidade de Buffalo, constituindo o conjunto B. Aqueles de cor cinza representam os provedores de identidades e consequentemente o conjunto C. O conjunto de arestas E1 é representado pelas linhas do conjunto A para cada elemento do conjunto B. O conjunto de arestas E2 é caracterizado pelas linhas contínuas que partem de cada elemento do conjunto B para todos os elementos do conjunto C. Os conjuntos de arestas E3, E4 e E5 não foram representadas nesta figura, pois os dados analisados não descreviam essas relações. Mais detalhes sobre o conjunto de arestas E4 são descritos na Subseção 4.3. Tendo definido o grafo a ocorrência da falha em cascata neste sistema é analisada. Considere que os seis provedores de identidades do grafo H apresentam uma vulnerabilidade vul em comum. Dessa forma, existe um caminho P a contendo os seis provedores de identidades pertencentes ao conjunto de vértices B que demonstra uma possível sequência de falhas decorrentes da exploração de vul. Tendo como base o Lema 1, então cada um destes provedores de identidades afetará no mínimo um e no máximo |C| provedores de serviços c ∈ C. Como todos os provedores de identidades foram afetados, logo |C| provedores de serviços serão comprometidos. Dessa forma, P a representa o caminho de 114 Anais do XIX Workshop de Gerência e Operação de Redes e Serviços– WGRS 2014 uma falha em cascata no sistema Web Single Sign-on Shibboleth utilizado como estudo de caso, embasando a aplicabilidade do modelo neste sistema. É possível perceber que ao realizar essa demonstração da falha em cascata tevese o cuidado para não realizá-la de maneira exaustiva e repetitiva. Outra questão que pode chamar atenção é que o estudo de caso apresentado baseia-se em dados coletados de apenas uma federação de identidades, mas o modelo proposto visa representar um SGI composto por diversas federações. Essa decisão é justificada pela capacidade do modelo proposto em representar tanto federações, quanto um SGI composto por diversas federações. O modelo proposto representa as entidades do SGI e as relações entre essas entidades, não distinguindo a qual federação a entidade pertence. 4.3. Análise do Efeito da Falha em Cascata Esta subseção apresenta a análise da falha em cascata no SGI Shibboleth da Universidade de Buffalo. A análise do efeito da falha em cascata compõe três etapas. A primeira etapa consiste em representar o subgrafo de provedores de identidades através de uma matriz de adjacência. A segunda aplica diferentes probabilidades da distribuição binomial para variar a presença de vulnerabilidades em comum nos mecanismos de autenticação destes provedores de identidades. A terceira mensura o efeito da disseminação de falhas nas componentes conexas através da definição da métrica impacto da falha em cascata. Seja H 0 o subgrafo com seis vértices que descreve as relações entre os provedores de identidades do grafo H e M como a matriz de adjacência para representá-lo, logo M (H 0 ) = M6,6 . Para denotar o conjunto de arestas E4, responsáveis por descrever vulnerabilidades em comum entre mecanismos de autorização de provedores de identidades, é necessário que as entradas mi,j da matriz M contenham 1 se mi,j e mj, i são adjacentes e 0 caso contrário. A Figura 5 apresenta a matriz de adjacência M . índices 1 2 M6,6 = 3 4 5 6 1 2 3 4 5 6 m1,1 m2,1 m3,1 m4,1 m5,1 m6,1 m1,2 m2,2 m3,2 m4,2 m5,2 m6,2 m1,3 m2,3 m3,3 m4,3 m5,3 m6,3 m1,4 m2,4 m3,4 m4,4 m5,4 m6,4 m1,5 m2,5 m3,5 m4,5 m5,5 m6,5 m1,6 m2,6 m3,6 m4,6 m5,6 m6,6 Figura 5. Matriz de Adjacência M Na Figura 5, os índices de 1 à 6 representam os vértices que especificam mecanismos de autenticação dos provedores de identidades do subgrafo H 0 . O conjunto de elementos em vermelho (estilo de fonte em negrito) representa o triângulo superior da matriz. O conjunto de elementos em azul (estilo normal de fonte) caracteriza o triângulo inferior. Enquanto que o conjunto de elementos em verde (estilo de fonte em itálico) descreve a diagonal principal. A diagonal principal da matriz m é preenchida com zeros, indicando a inexistência de arestas de um vértice para si mesmo. Os valores do triângulo superior e inferior variam entre zero e um de forma simétrica ao longo da diagonal principal para compor o conjunto de arestas E4. A garantia da simetria da matriz ao longo 115 Anais do XIX Workshop de Gerência e Operação de Redes e Serviços– WGRS 2014 da diagonal principal é garantida através da soma da matriz com a diagonal principal e o triângulo inferior mais sua transposta, ou seja, M = T (M ). A distribuição binomial é aplicada com diferentes probabilidades para obtenção dos valores da matriz de adjacência, gerando um espaço amostral da presença de vulnerabilidades. Para representar as arestas entre os seis vértices são necessários quinze valores distribuídos de forma simétrica entre o triângulo superior e inferior, variando entre zero e um. O total de combinações de zeros e uns para quinze valores é igual a 215 , resultando em 32768 combinações. Considerando a presença de um grande número de provedores de identidades em um SGI global, percebe-se que analisar todas as possibilidades pode ser uma tarefa exaustiva, justificando a análise de amostras. Ao todo dez variações de probabilidades são analisadas, para cada uma delas 35 amostras foram colhidas. O intervalo de variação de probabilidade para caracterizar a presença de vulnerabilidades em comum entre os mecanismos de autenticação do SGI Shibboleth compreende os valores 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45 e 0.5. Como resultado da aplicação destes valores na matriz de adjacência, cada amostra do subgrafo H 0 apresenta n componentes conexas de provedores de identidades. A análise para mensurar o impacto da falha em cascata dá-se através da comparação da disseminação de falhas nas componentes conexas gigante em detrimento às componentes conexas aleatórias. Assumimos que a descoberta de uma vulnerabilidade de uma componente conexa sempre será disseminada para todos os demais provedores de identidades. Além disso, definimos como provedores de identidades falhos aqueles que tiveram as vulnerabilidades de seus mecanismos de autenticação exploradas. Para menP IF surar o efeito da falha em cascata a métrica IF C, denotada pela equação IF C = N , NT P I é definida. Onde NPIF consiste no número de provedores de identidades falhos e NTPI representa o número total de provedores de identidades. Os resultados da análise mostram que uma falha em cascata em um SGI real pode resultar em danos catastróficos. A comparação entre a disseminação de falhas na Componente Conexa Gigante (CCG) e em Componente Conexa Aleatória (CCA) aponta que a disseminação de falhas na componente conexa gigante são mais prejudiciais. No entanto, mesmo a disseminação de falhas em componentes conexas de tamanho aleatório pode comprometer um SGI em cerca de 70%. A Figura 6 ilustra esses resultados. Impacto da Falha em Cascata (%) 100 90 CCG CCA 80 70 60 50 40 30 20 10 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 Probabilidade de Vulnerabilidade 0.45 0.5 Figura 6. Comparação da Disseminação de Falhas na CCG e em CCAs 116 Anais do XIX Workshop de Gerência e Operação de Redes e Serviços– WGRS 2014 Na Figura 6 é ilustrada a média da comparação da disseminação de falhas na CCG em detrimento a CCA de provedores de identidades do SGI Shibboleth da Universidade de Buffalo com intervalo de confiança de 95%. A análise deste gráfico aponta que o IFC na maior componente conexa apresenta um crescimento exponencial próximo a 100% dos provedores de identidades com 0.45 de probabilidade da presença de vulnerabilidades. Em contraste, o ápice do IFC nas componentes conexas aleatórias compreendeu um valor inferior a 70% de provedores de identidades com 0.4 de probabilidade da presença de vulnerabilidade. Esse resultado mostra que mesmo com baixa probabilidade de vulnerabilidade entre provedores de identidades os efeitos de uma falha em cascata em um SGI global são catastróficos. 5. Conclusões Este trabalho apresentou um modelo analítico de falhas em cascata em um SGI e analisar seu efeito. O SGI foi modelado através de um grafo e seus comportamentos com a teoria dos conjuntos. A disseminação da falha em cascata foi representada através de um caminho entre provedores de identidades com vulnerabilidades em comum no processo de autenticação. Um estudo de caso foi realizado para demonstrar a aplicabilidade do modelo proposto considerando dados reais de gerenciamento de identidades coletados do Web Single Sign-On Shibboleth da Universidade de Buffalo. No estudo de caso, a presença de vulnerabilidades em comum entre os provedores de identidades foi caracterizada através de variações de probabilidades da distribuição binomial, resultando em diferentes conjuntos de vértices conectados entre si. Os resultados indicam que a disseminação de falhas com probabilidade de vulnerabilidades de 0.45 nos conjuntos maiores impacta em 100% dos provedores de identidades e a disseminação de falhas em conjuntos de tamanho aleatório pode comprometer até 70% desses provedores. Referências UB Identity Management and Authentication Metrics. https://ubidm.buffalo. edu/stats/. Último Acesso em Outubro de 2013. Angulo, J. and Wästlund, E. (2013). Identity management through “profiles”: Prototyping an online information segregation service. In Kurosu, M., editor, Human-Computer Interaction. Users and Contexts of Use, volume 8006 of Lecture Notes in Computer Science, pages 10–19. Springer Berlin Heidelberg. Bertino, E. (2012). Trusted identities in cyberspace. IEEE Internet Computing, 16(1):3–6. Camp, J. (2010). Identity management’s misaligned incentives. IEEE Security Privacy, 8(6):90 –94. Cao, Y. and Yang, L. (2010). A survey of identity management technology. In IEEE International Conference on Information Theory and Information Security (ICITIS), 2010, pages 287 –293. Cisco (2014). Cisco Visual Networking Index. http://www.cisco. com/c/en/us/solutions/collateral/service-provider/ visual-networking-index-vni/white_paper_c11-520862.pdf. Último Acesso em Fevereiro de 2014. 117 Anais do XIX Workshop de Gerência e Operação de Redes e Serviços– WGRS 2014 Correcher, A., Garcia, E., Morant, F., Quiles, E., and Rodriguez, L. (2012). Intermittent failure dynamics characterization. IEEE Transactions on Reliability, 61(3):649–658. Crucitti, P., Latora, V., and Marchiori, M. (2004). Model for cascading failures in complex networks. Phys Rev E Stat Nonlin Soft Matter Phys, 69(4 Pt 2):045104. Havlin, S., Araujo, N. A. M., Buldyrev, S. V., Dias, C. S., Parshani, R., Paul, G., and Stanley, H. E. (2010). Catastrophic cascade of failures in interdependent networks. Nature. Huang, Z., Wang, C., Ruj, S., Stojmenovic, M., and Nayak, A. (2013). Modeling cascading failures in smart power grid using interdependent complex networks and percolation theory. In IEEE Conference on Industrial Electronics and Applications, pages 1023–1028. Kinney, R., Crucitti, P., Albert, R., and Latora, V. (2005). Modeling cascading failures in the north american power grid. The European Physical Journal B - Condensed Matter and Complex Systems, 46(1):101–107. Lampropoulos, K. and Denazis, S. G. (2011). Identity management directions in future internet. IEEE Communications Magazine, 49(12):74–83. Lynch, L. (2011). Inside the identity management game. IEEE Internet Computing, 15(5):78–82. Motter, A. E. and Lai, Y.-C. (2002). Cascade-based attacks on complex networks. Phys. Rev. E, 66:065102. Phiri, J. and Agbinya, J. (2006). Modelling and information fusion in digital identity management systems. In Networking, International Conference on Systems and International Conference on Mobile Communications and Learning Technologies, page 181. Sankar, S. and Gurumurthi, S. (2013). Soft failures in large datacenters. IEEE Computer Architecture Letters, 99(RapidPosts):1. Smedinghoff, T. J. (2012). Solving the legal challenges of trustworthy online identity. Computer Law & Security Review, 28(5):532 – 541. Torres, J., Nogueira, M., and Pujolle, G. (2013). A survey on identity management for the future network. IEEE Communications and Surveys Tutorials, 15(2):787–802. Wang, J., Jiang, C., and Qian, J. (2014). Robustness of internet under targeted attack: A cascading failure perspective. Journal of Network and Computer Applications, 40(0):97 – 104. Wang, R., Chen, S., and Wang, X. (2012). Signing me onto your accounts through facebook and google: A traffic-guided security study of commercially deployed singlesign-on web services. In IEEE Symposium on Security and Privacy, pages 365 –379. Watt, J., Sinnott, R., Inman, G., and Chadwick, D. (2011). Federated authentication and authorisation in the social science domain. In International Conference on Availability, Reliability and Security, pages 541 –548. 118