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