MoniOptimiza: Uma Ferramenta para Monitoramento e
Otimização de Federações de Identidades
Ricardo Macedo1 , Leonardo Melniski1 ,
Eduardo Feitosa2 , Aldri Santos1 , Michele Nogueira1
1
2
Universidade Federal do Paraná (UFPR) – Curitiba – PR – Brasil
Universidade Federal do Amazonas (UFAM) – Manaus – AM – Brasil
{rmacedo,lem09,aldri,michele}@inf.ufpr.br, [email protected]
Abstract. Identity federation model is a promising solution to manage users in
large scale systems. However, denial-of-service attacks can make IdPs operations unavailable, compromising legitimate users from the federation. This paper proposes MoniOptimiza, a monitoring and optimization tool to mitigate the
overloads effects in identity providers. MoniOptimiza detects under and overloaded identity providers and optimizes the system forming clusters with the underloaded identity providers balancing the load in order to mitigate the effects
of overloads. Experimental evaluation conducted under a local identity federation show that MoniOptimiza reduces the response time of requests clustering
identity providers in overloaded situations.
Resumo. O modelo de gestão de identidades federadas consiste em uma alternativa promissora para administrar usuários em sistemas de larga escala. No
entanto, os ataques de negação de serviço podem indisponibilizar as operações
prestadas pelos provedores de identidades (IdPs), prejudicando usuários legítimos da federação. Este trabalho propõe MoniOptimiza, uma ferramenta de
monitoramento e otimização para mitigar os efeitos de sobrecargas em IdPs.
MoniOptimiza detecta IdPs sobrecarregados e ociosos e otimiza o sistema formando clusters com os IdPs ociosos e distribuíndo a carga entre os mesmos
para diminuir os efeitos das sobrecargas. Uma avaliação experimental conduzida em uma federação local mostra que a ferramenta MoniOptimiza reduz o
tempo de resposta das requisições ao formar agrupamentos de IdPs em situações de sobrecarga.
1. Introdução
Estima-se uma explosão no número de dispositivos conectados à Internet resultando em
um crescimento ainda maior no número de identidades. A Cisco Systems prevê que o
número de dispositivos portáteis conectados excederá o número de pessoas no planeta
nos próximos anos e que em 2018 existirão em média 1,4 dispositivos móveis por pessoa.
Uma das consequências desta explosão consiste na demanda de pelo menos uma identidade (ID) para cada dispositivo, sendo esta a representação digital de uma entidade real,
tal como uma pessoa ou dispositivo [Torres et al. 2013]. As IDs desempenham um papel
fundamental nesse cenário ao possibilitar a aplicação de medidas de gerenciamento na
prestação de serviços disponibilizados em sistemas distribuídos, tais como nuvens computacionais ou Internet das coisas [Macedo et al. 2014].
Diante deste contexto de crescimento exponencial do número de IDs, as federações de identidades são uma estratégia promissora para administrar um grande número
de IDs. Sendo um ambiente cooperativo, uma federação é formada pela integração de
diversos domínios governados por autoridades distribuídas, onde cada domínio possui
gerenciamento local. Além das IDs, os principais componentes de uma federação consistem nos provedores de identidades (Identity Provider - IdP) e o provedores de serviço
(Service Provider - SP). Os SPs são responsáveis por disponibilizar serviços específicos
para os usuários de forma controlada a partir das IDs [Nogueira et al. 2011]. Os IdPs
consistem nas autoridades distribuídas que administram IDs de seu respectivo domínio
através de um conjunto de operações, onde se destacam, a verificação da autenticidade
das IDs (autenticação) e a disponibilização de informações sobre as IDs para suportar o
controle de autorizações (controle baseado em atributos).
No entanto, IdPs são disponibilizados na Internet, tornando-se propensos a ataques de negação de serviço distribuídos (DDoS, do inglês Distributed Denial of Service) [Lonea et al. 2013]. Os IdPs possuem recursos de processamento e memória limitados, podendo ser esgotados frente a uma grande quantidade de requisições. Os ataques
DDoS têm como objetivo indisponibilizar as operações de um sistema ao disparar um
grande volume de requisições maliciosas, forçando o sistema vítima a consumir todos
os recursos de memória e processamento [Carlson 2014]. Casos reais de DDoS foram
relatados mesmo em nuvens computacionais [Lonea et al. 2013, Shah et al. 2013], enfatizando a periculosidade dos mesmos. Em federações de identidades, os ataques DDoS
podem resultar na indisponibilidade das operações de autenticação de usuários legítimos
e congestionar o tráfego de dados para IdPs, impactando indiretamente no provimento de
serviços. Neste contexto, as abordagens de mitigação tornam-se promissoras para minimizar os efeitos desses ataques [Fu et al. 2012].
Este trabalho apresenta MoniOptimiza, uma ferramenta de monitoramento e otimização para mitigar os efeitos de sobrecargas em IdPs. A ferramenta executa sequencialmente três módulos: Monitoramento, Otimização e Agrupamento. O módulo de Monitoramento detecta IdPs sobrecarregados na federação pela verificação da taxa de utilização
de memória e processamento. O módulo de Otimização identifica o menor grupo de IdPs
ociosos para mitigar os efeitos da sobrecarga com base nos dados de monitoramento. O
módulo de Agrupamento aplica a configuração indicada pelo módulo anterior para agrupar os IdPs.
A avaliação de desempenho por experimentação em uma federação local mostra
os benefícios da ferramenta MoniOptimiza. O cenário de avaliação consite de três IdPs,
dois SPs e um serviço de descobrimento. A ferramenta Apache Benchmark foi empregada para geração de sobrecarga nos IdPs, de modo a ativar a ferramenta proposta. As
métricas empregadas na avaliação são a Taxa de Utilização de CPU (TUC) e o Número de
Requisições Atendidas por milissegundo (NRA). Os resultados comparando um cenário
onde os IdPs utilizam o MoniOptimiza com um cenário sem o uso da ferramenta mostram uma diminuição da TUC do IdP sobrecarregado e reduzem o tempo de resposta das
requisições.
O trabalho está organizado como segue. A Seção 2 descreve os trabalhos relacionados. A Seção 3 detalha a ferramenta proposta. A Seção 4 descreve a análise de
desempenho da proposta. A Seção 5 apresenta as conclusões.
2. Trabalhos Relacionados
A ferramenta Monit [M/Monit 2015] monitora recursos gerais do sistema operacional,
processos, daemons específicos e características destes processos, tais como a quantidade de memória e ciclos de CPU. A Universidade Católica de Leuven disponibiliza um
guia de utilização desta ferramenta para monitoramento de IdPs do arcabouço Shibboleth [Leuven 2015]. Na Monit, cada recurso monitorado é representado como uma variável, podendo ser disparados scripts em resposta a determinados eventos. Todavia, não
foram encontradas extensões para a Monit específicas para federações de identidades capazes de reagir ou diminuir os efeitos identificados no monitoramento.
A versão 3 do arcabouço para gerenciamento de identidades Shibboleth disponibiliza a funcionalidade de agrupamento de IdPs. Esta funcionalidade é disponibilizada
como um plugin do arcabouço denominado IdP-Memcached. Para utilização deste plugin
os agrupamentos devem ser manualmente configurados e cada membro do agrupamento
deve ter a mesma base de dados de usuários. No uso convencional desta abordagem,
utiliza-se um portal de autenticação capaz de realizar o balanceamento de carga entre as
réplicas, redirecionando as requisições para as réplicas de IdPs menos sobrecarregadas.
No entanto, esta é uma abordagem financeiramente cara, pois exige a aquisição de equipamentos extras, os quais também terão uma capacidade de recursos fisicamente delimitada.
Em [Macedo et al. 2015a, Macedo et al. 2015b], o esquema SAMOS foi proposto
para mitigação os efeitos de sobrecargas em federações de identidades através da reorganização de IdPs. O esquema é composto por três procedimentos: Pré-reorganização,
Otimização e Utilização. A Pré-reorganização computa os benefícios possíveis de reorganizar os IdPs. A Otimização maximiza os benefícios computados para encontrar uma
solução para a reorganização. A Utilização emprega a solução encontrada na federação.
O principal benefício do esquema SAMOS é minimizar os danos das sobrecargas utilizando os IdPs operacionais e ociosos da federação. Entretanto, apenas resultados de
simulações baseadas em traços foram apresentados até o momento.
Este trabalho apresenta a ferramenta MoniOptimiza, uma ferramenta para monitorar e otimizar federações de identidades. A MoniOptimiza é projetada para atuar em
resposta a variáveis monitoradas pela ferramenta Monit. Além disso, esta ferramenta emprega os procedimentos do esquema SAMOS para mitigar os efeitos das sobrecargas e
estende as funcionalidades do plugin IdP Memcached StorageService para formar agrupamentos de IdPs capazes de suprir a sobrecargas em IdPs no arcabouço Shibboleth, implementando os conceitos apresentados por [Macedo et al. 2015a] em um arcabouço real
para gerenciamento de identidades.
3. Uma ferramenta para Monitoramento e Otimização de Federações
Este trabalho apresenta MoniOptimiza, uma ferramenta de monitoramento e otimização
dos IdPs de uma federação de identidades para mitigar os efeitos de sobrecargas ocasionadas por ataques DDoS. A ferramenta foi projetada para executar sequencialmente três
módulos: Monitoramento, Otimização e Agrupamento. O Monitoramento encontra IdPs
sobrecarregados na federação através da verificação da taxa de utilização dos recursos
de memória e processamento. A Otimização identifica o menor grupo de IdPs ociosos
para suprir os efeitos da sobrecarga usando os dados de monitoramento. O Agrupamento
aplica a solução encontrada pelo módulo anterior, configurando de maneira transparente
as ferramentas tradicionais utilizadas para agrupar IdPs. A Figura 1 ilustra a arquitetura
da ferramenta MoniOptimiza.
Agrupamento
Otimização
Monitoramento
Processamento/
Memória
Compartilhamento
de memória
Coleta Dados de
Monitoramento
Balanceamento
de carga
Identifica
Agrupamentos
Parâmetros
de
Funcionamento
• Lista de IdPs da federação
• Limite para utilização de recursos
• Parâmetros usados na otimização
Arquivo de Configuração
Figura 1. Arquitetura da Ferramenta MoniOptimiza
Conforme ilustrado na Figura 1, a MoniOptimiza foi projetada como um arcabouço que combina em seus módulos as funcionalidades de ferramentas consolidadas para
gestão/monitoramento de federações de identidades com técnicas de otimização previamente discutidas de maneira teórica na literatura. O módulo de Monitoramento emprega
os procedimentos da ferramenta Monit. O módulo de Agrupamento usa as funcionalidades
do servidor Web Apache e do arcabouço Shibboleth para balancear a carga e compartilhar
os dados de memória entre os IdPs membros do mesmo grupo. O módulo de otimização emprega o algoritmo genético proposto em [Macedo et al. 2015b] como um método
heurístico para identificar os agrupamentos de IdPs usando os dados de monitoramento
coletados da federação. As seções seguintes detalham o funcionamento de cada módulo.
3.1. Monitoramento e Coleta de Dados
A ferramenta MoniOptimiza foi projetada para ser instalada e configurada em todos os
IdPs de uma federação de identidades, proporcionando o monitoramento/gestão automáticos em caso de sobrecargas geradas por ataque de negação de serviço. A Figura 2 ilustra
a relação entre o módulo de Monitoramento e o componente Coleta de Dados do módulo
de Otimização frente uma situação de sobrecarga gerada por um ataque DDoS.
No instante 1, o atacante realiza o ataque DDoS. Estudos prévios mostram que ao
disparar um grande volume de requisições maliciosas, os ataques DDoS forçam o sistema
vítima a consumir todos os recursos de memória e processamento, gerando indisponibilidades nas operações prestadas por este sistema [Carlson 2014]. Nestas situações, o módulo de Monitoramento identifica uma sobrecarga de processamento/memória no IdP alvo
do ataque. Para isso, o módulo observa o limite de utilização dos recursos de memória e
processamento previamente estabelecidos pelo administrador no arquivo de configuração
da ferramenta. Em consequência deste evento o módulo de Otimização demanda a coleta
de dados dos demais IdPs da federação para identificar uma solução de agrupamento.
A Monit é uma ferramenta de código fonte aberto, mas a funcionalidade de compartilhamento de dados de monitoramento exige a aquisição de uma licença de uso. No
instante 2 o IdP alvo do ataque requisita os dados de monitoramento para os demais IdPs
1. Ataque DDoS
4. Dados de
Monitoramento
Atacante
3. Resposta de dados
de monitoramento
2. Requisição de dados
de monitoramento
CPU
Identifica
Agrupamentos
Serviço
Web
Monitoramento
Memória
IdP1
IdPn
IdP2
Figura 2. Procedimentos da Coleta de Informações
da federação. A resposta desta requisição ocorre no instante 3. A fim de utilizar os
benefícios da Monit, minimizando os investimentos em licença de software, a ferramenta
MoniOptimiza implementa a coleta dados de monitoramento como um serviço Web, agregando uma harmonia com as tecnologias que suportam o funcionamento do IdP. O principal pré-requisito para implantação de um serviço Web consiste em servidor Web para
armazená-lo, sendo este um dos pré-requisitos para utilização de um IdP. Desta forma, ao
utilizar a tecnologia de serviços Web, não se torna necessária a configuração de regras de
firewall no IdP, facilitando a utilização da ferramenta MoniOptimiza.
A troca dos dados de monitoramento identificado como em situação de sobrecarga
e os demais IdPs ocorre no instante 3. O serviço Web possui acesso de leitura no arquivo
de configuração da ferramenta MoniOptimiza para se comunicar com todos os IdPs da
federação. Frente a situações de sobrecargas, o IdP sobrecarregado demanda aos demais
IdPs a taxa de utilização dos recursos de memória e processamento. Para isso, uma requisição usando o protocolo Simple Object Access Protocol (SOAP) é enviada para cada
serviço web dos IdPs membros da federação. O serviço web verifica a taxa de processamento e memória ociosos e retorna estes dados para o IdP requisitante. No instante 4,
os dados de monitoramento coletados são utilizados pelo componente Identifica Agrupamento do módulo de Otimização.
3.2. Identificação e Formação de Agrupamentos
A relação entre o componente Identifica Agrupamento do módulo de Otimização e o módulo Agrupamento é apresentada na Figura 3, ilustrando que o primeiro encontra uma
solução para suprir o efeito da sobrecarga e o segundo aplica essa configuração na federação de identidades. O componente Identifica Agrupamento do módulo de Otimização
busca o número máximo de agrupamentos capazes de suportar a sobrecarga gerada pelo
ataque DDoS (Instante 1 da Figura 3). A solução mais trivial para este problema consiste
em formar um único agrupamento com todos os IdPs. Esta alternativa é recomendável
quando os membros de um agrupamento estão conectados por uma rede local de alta
velocidade, todavia, quando os membros do agrupamento estão geograficamente distribuídos e se comunicam através da Internet, a criação de sub-agrupamentos com poucos
nós facilita o gerenciamento da comunicação entre os membros [Aron et al. 2000].
Encontrar o número máximo de agrupamentos capazes de suportar uma sobrecarga consiste em um problema de otimização multiobjetivo: minimizar o número de
membros de um agrupamento e maximizar o número total de agrupamentos. Problemas desta natureza são normalmente difíceis de resolver computacionalmente, pois ne-
cessitam comparar todas as combinações possíveis para encontrar uma solução ótima e
frente a um grande número de elementos pode consumir um tempo de execução não polinomial. Os algoritmos genéticos (AGs) surgem como uma solução heurística capaz
de prover boas soluções para problemas de otimização em tempo aceitável ao imitar o
processo de seleção natural [Goldberg 1989]. Os experimentos conduzidos por Handl e
Knowles revelam benefícios ao utilizar a computação evolucionária para encontrar agrupamentos considerando multiobjetivos [Handl and Knowles 2007]. Seguindo esta linha
de pesquisa, o componente Identifica Agrupamento utiliza o algoritmo genético proposto
em [Macedo et al. 2015b], apresentado no Algoritmo 1.
1. Entrada: Dados
de monitoramento
2. Saída: Solução
de agrupamento
Algoritmo
Genético
Identifica Agrupamentos
3. Exemplo de
agrupamento
Usuários
Requisições
Alvo da sobrecarga
Agrupamentos
IdP1
Balanceamento de Carga/
Compartilhamento de Memória
IdP2
IdP3
...
IdPn
Figura 3. Procedimentos para Agrupamento
A entrada para este algoritmo consiste em dados de monitoramento coletados dos
IdPs e parâmetros definidos pelos usuários. Cada elemento do vetor v agrega a capacidade
disponível dos IdPs operacionais e capacity expressa o dano causado pelo ataque DDoS.
O tamanho da população (TP) e número da geração (NG) são parâmetros definidos que
ajudam o algoritmo na busca de uma solução, impactando no tempo de execução. A saída
do AG consiste em um conjunto de agrupamentos de IdPs capazes de suprir os efeitos do
ataque DDoS representado através de um conjunto de subconjuntos.
Algoritmo 1 Encontra o número máximo de Agrupamentos de IdPs
Entrada: Vetor v, capacidade, T P S, N G
Saída: Matriz P (1)
1: Seja P (g) a população de soluções na geração g
2: g ← 0
3: inicie P (g)
4: avalie P (g)
5: classifique P (g) pela função de aptidão
6: enquanto solução não encontrada and N G < maxGen faça
7:
g ←g+1
8:
mantenha P (1)
9:
realize operadores genéticos em P (g)
10:
avalie P (g)
11:
classifique P (g) pela função de aptidão
12: fim enquanto
Na linha 3, inicie P (g) gera soluções aleatórias seguindo como restrição a não repetição de elementos em um mesmo agrupamento, ajudando o algoritmo a convergir mais
rapidamente para uma solução ótima. A Figura 4 ilustra uma instância simples do problema, uma possível solução e a representação desta solução através de um cromossomo
binário. A instância do problema representa uma situação com cinco IdPs com suas respectivas capacidades (1, 1, 2, 3, 2) através do vetor v. Considerando os índices de v, uma
solução ótima para este problema é combinar (0, 2)(1, 4)(3), pois as somas dos elementos
destes índices é igual a 3 e todos os elementos de v estão representados em S.
Figura 4. Instância do Problema, Solução e Representação do Cromossomo
Nas linhas 4 e 10, as soluções são avaliadas através da função de aptidão f (x) =
cr1(x) + cr2(x) + cr3(x), onde cr1 avalia a eficiência dos agrupamentos encontrados na
solução x suportarem os efeitos do ataque. cr2 verifica se os agrupamentos podem ser
fragmentados, favorecendo a criação de um número máximo de soluções e cr3 promove
soluções com o maior número de agrupamentos capazes de suportar os efeitos do ataque
DDoS. O resultado desta função consiste em um valor para classificar as soluções, possibilitando o descarte das soluções menos aptas (linhas 5 e 11). O AG evita que a melhor
solução encontrada se perca através das gerações. Para isto, o indivíduo mais apto da
geração anterior é mantido na primeira posição da nova geração (ver linha 8), esta técnica
é referenciada na literatura de AG como elitismo.
Uma matriz de incidência representa as soluções através de cromossomos binários, possibilitando a execução de operadores genéticos (linha 9). Esta matriz tem o número de colunas igual ao tamanho do vetor v e o número de linhas igual ao tamanho
do vetor de uma solução. Cada linha representa um agrupamento de IdPs, quando o elemento está presente no agrupamento, a coluna equivalente ao índice da sua posição é igual
a 1, caso contrário 0. A representação da solução através de cromossomos possibilita a
execução das operações genéticas de cruzamento e mutação, possibilitando o processo
evolutivo das soluções.
Para realizar o cruzamento três soluções aleatórias da população são escolhidas
para realização de um torneio. O resultado deste torneio consiste na classificação das
duas soluções com maior valor da função de aptidão, as quais são selecionadas para a
operação de reprodução. A Figura 5 ilustra a operação de cruzamento. Primeiro, um valor
aleatório entre 0 e o número de IdPs é selecionado através de uma taxa de cruzamento.
Este número é usado para selecionar partes dos cromossomos das soluções pais, gerando
duas cabeças e duas caldas. Onde, Filho 1, consiste na combinação da cabeça de Pai 1
e calda de Pai 2 e Filho 2 é o resultado da combinação inversa. Após o cruzamento, a
taxa de mutação é observada para decidir se as soluções filhas sofrerão mutações, o que
garante a geração de novas soluções. Quando uma solução sofre uma mutação, dois IdPs
de diferentes agrupamentos são trocados, gerando uma nova solução.
Duas são as condições de parada do AG, quando o processo evolutivo encontra
uma solução ótima, ou o número máximo de gerações é alcançado. A situação ideal consiste quando o AG encontra uma solução ótima, mas quando esta não for encontrada ou
Figura 5. Exemplo da Operação de Cruzamento
não existir, a solução classificada com o maior valor em sua função de aptidão é retornada
(instante 2 da Figura 3). Usando essa solução, o módulo Agrupamento usa as funcionalidades do servidor Web Apache e do arcabouço Shibboleth para balancear a carga e
compartilhar os dados de memória entre os IdPs membros do mesmo grupo, formando
um agrupamento semelhante ao ilustrado no instante 3 da Figura 3, permitindo que o IdP
alvo da sobrecarga reencaminhe as requisições de entrada para os demais membros do
agrupamento, minimizando os efeitos da sobrecarga.
4. Análise de Desempenho
Esta seção apresenta a análise experimental da ferramenta MoniOptimiza sobre a capacidade em prover melhor resiliência dos IdPs, utilizando os recursos de hardware da federação de forma otimizada em situações de sobrecarga. A Seção 4.2 descreve os parâmetros
do sistema e da carga. A Seção 4.3 detalha como os experimentos foram executados. Na
Seção 4.4 são apresentados os resultados da análise.
4.1. Métricas Utilizadas
As métricas utilizadas na análise de desempenho foram a Taxa de Utilização de CPU
(TUC) e o Número de Requisições Atendidas por milissegundo (NRA). A taxa de utilização de CPU possibilita a análise da utilização do processamento dos IdPs da federação.
O número de requisições atendidas por milissegundo reflete a perspectiva dos usuários
frente a utilização da ferramenta proposta. A taxa de utilização de CPU mensura demanda da utilização da CPU para processar instruções de processos existentes em um
sistema operacional. O comando top do Sistema Operacional GNU/Linux foi configurado para capturar e armazenar as informações de processamento dos IdPs, permitindo a
análise desta métrica [Zahda 2015]. O número de requisições atendidas por milissegundo
foi obtida em nosso ambiente através da ferramenta Apache Benchmark1 .
4.2. Parâmetros do Ambiente e da Carga
A avaliação de desempenho foi conduzida em uma federação de identidades composta
por três IdPs, dois SPs e um Embedded Discovery Service (EDS). O ambiente local foi
construído usando as máquinas virtuais disponibilizadas pelo Laboratório de Gestão de
Identidades (GId Lab) da RNP. Foram utilizados IdPs da versão 3 equipados com a ferramenta MoniOptimiza. A federação foi configurada de modo a permitir que ao acessar um
SP, o EDS apresentasse como opção de autenticação qualquer um dos três IdPs.
A federação contou com três servidores para armazenar as máquinas virtuais disponibilizadas. Uma infraestrutura de rede local cabeada foi utilizada para prover a comunicação entre os servidores. Cada servidor possuía a mesma configuração de hardware,
1
http://httpd.apache.org/docs/2.2/programs/ab.html
conforme apresenta a Tabela 1(a). Duas máquinas virtuais foram alocadas para servidor,
dois deles com um IdP e um SP e um terceiro com um EDS e um IdP. Foi escolhido um
número maior de IdPs para o ambiente de modo a proporcionar condições mais favoráveis
para avaliação da ferramenta MoniOptimiza. A Tabela 1(b) ilustra a alocação de máquinas
virtuais, servidores e componentes da federação.
(a) Configuração dos Servidores
Parâmetro
Valor
CPU
Intel Core i5
(b) Alocação dos Servidores
Servidor
Máquina Virtual
Serviço
VM 1
IdP
Servidor 1
Memória
4 GB
VM 2
SP
Sistema Operacional
Ubuntu 14.04
VM 1
IdP
VM 2
SP
Servidor 2
VM 1
IdP
VM 2
EDS
Máquina Física
Geração de carga
Servidor 3
Servidor 4
Tabela 1. Parâmetros do Ambiente Computational
Um quarto servidor foi utilizado para geração de sobrecarga de requisições em
IdPs. Neste servidor foi configurada a ferramenta Apache Benchmark. Esta ferramenta
consiste em uma alternativa para quantificar o número de requisições que um servidor
Web é capaz de atender. Em nosso experimento esta ferramenta foi configurada para
gerar requisições para o serviço de provimento de informações de status do IdP, causando
uma sobrecarga de processamento para ativar a ferramenta MoniOptimiza. Os parâmetros
configurados para geração de sobrecarga são apresentados na Tabela 2(a).
(b) MoniOptimiza
(a) Apache Benchmark
Parâmetro
Valor
Parâmetro
Valor
Número Total de Requisições
250000
Taxa de Cruzamento
0.9
Número de Requisições Múltiplas
50
Taxa de Mutação
0.01
Tempo Máximo de Sobrecarga
300 segundos
Capacidade
20000
Endereço
https://idp2v3.fedexpresso.edu.br/idp/status
Número de Gerações
100
Tamanho da População
300
Tabela 2. Parâmetros das Ferramentas
4.3. Execução dos Experimentos
Para avaliar a capacidade da ferramenta MoniOptimiza em minimizar os efeitos das sobrecargas em IdPs foram criados dois cenários. O primeiro cenário foi projetado para
analisar o comportamento da sobrecarga de um IdP sem a utilização da ferramenta proposta e o segundo para apresentar os benefícios da utilização da ferramenta proposta. Em
ambos os cenários a ferramenta Apache Benchmark foi configurada com os parâmetros
da Tabela 2(a) e no segundo cenário a ferramenta MoniOptimiza foi configurada com os
parâmetros apresentados na Tabela 2(b).
Os valores adotados para a taxa de cruzamento (TC) e taxa de mutação (TM) são
recomendados pela literatura de algoritmos genéticos. O Número de Gerações (NG) utilizado foi 100 e o Tamanho da População (TP) empregado foi 300. A capacidade utilizada
foi 20000, para induz o algoritmo genético a gerar um único agrupamento no cenário de
avaliação. Os parâmetros configurados na ferramenta Apache Benchmark foram escolhidos para gerar uma quantidade significativa de requisições.
A configuração padrão da ferramenta Monit foi alterada para identificar a sobrecarga dos processos do usuário. Por padrão a ferramenta Monit monitora os processos
internos executados pelo kernel do sistema operacional. Uma sobrecarga de requisições
em um IdP afeta os processos iniciados pelos usuários do sistema, tal como o servidor
Web Tomcat ou Apache. Para ativar a ferramenta proposta em resposta a sobrecarga de
processos executados pelos usuários, o arquivo monitrc foi configurado para monitorar a
variável cpu usage (user). O percentual de utilização de CPU usado para inicializar a ferramenta MoniOptimiza foi 50%, evitando que uma sobrecarga acarretasse na falha do IdP
alvo da sobrecarga. Essa configuração permitiu o monitoramento da utilização de CPU
mais condizente com as necessidades do IdP.
Para balancear a carga entre os IdPs utilizamos o módulo mod_proxy_balancer
do servidor Web Apache. Escolhemos essa ferramenta, pois as máquinas virtuais configuradas com a versão 3 do Shibboleth disponibilizadas pelo GID Lab são nativamente
configuradas com servidor Apache, de forma que nosso trabalho foi apenas agregar esse
módulo. O método escolhido para o balanceamento de carga foi o byrequest, com opção
status+H para o IdP sobrecarregado e com a configuração loadfactor=10 habilitada para
os IDPs que são utilizados para balancear a carga. Essa configuração permite que o IdP
sobrecarregado processe as requisições apenas quando os demais membros do agrupamento estejam indisponíveis.
O compartilhamento de memória entre os membros do agrupamento foi realizado através da configuração do plugin IdP Memcached StorageService para evitar reautenticações inesperadas em caso de falha de um membro do agrupamento. Na versão
3 do IdP Shibboleth, quando um cliente se autentica em um IdP, são armazenados dados
de sessão de login do cliente no navegador e esses dados são instanciados na memória do
servidor IdP. Estas informações armazenadas em memória servem para validar os dados
armazenados no navegador do usuário. Quando uma sessão expira, o IdP solicita uma
nova autenticação. Para evitar que os dados de sessão armazenados em memória de IdP
se percam em caso de falha ou sobrecarga, a versão 3 do IdP compartilha esses dados
entre todos os membros do agrupamento.
4.4. Resultados
Esta seção apresenta os resultados da análise de desempenho. A Figura 6 apresenta os
resultados obtidos da comparação da métrica NRA, onde observa-se que a ferramenta
MoniOptimiza reduziu o NRA do IdP sobrecarregado. Os resultados do primeiro cenário
mostram que antes da implantação da ferramenta proposta, o NRA aumentou proporcionalmente ao número de requisições geradas pela ferramenta Apache Benchmark. Com
a utilização da ferramenta MoniOptimiza o NRA aumentou até consumir 50% de CPU,
após esse limite a ferramenta proposta foi iniciada, diminuindo o NRA. Esse resultado
mostra que no cenário avaliado, a ferramenta proposta melhorou o tempo de resposta do
IdP, o que poderia impactar na experiência/satisfação dos usuários e serviços da federação. A Figura 7 mostra que a MoniOptimiza processou um número maior de requisições
no mesmo intervalo de tempo que a abordagem da literatura, mas teve um grande número
Total de Requisições
Tempo de Resposta (ms)
30000
3000 Abordagem Existente
Abordagem Proposta
2500
2000
1500
1000
500
0
0
5000
10000
15000
20000
25000
Requisições Processadas
Requisições Falhas
25000
25177
21781
20000
15000
12908
10000
5000
0
5
Abordagem Existente
Abordagem Proposta
Requisições
Figura 6. Tempo das Requisições
Figura 7. Número de Requisições
Figura 8. Abordagem Existente
Figura 9. Abordagem Proposta
de requisições falhas em decorrência da reinicialização do servidor Web para implantar o
balanceamento de carga.
As Figuras 8 e 9 mostram que a ferramenta MoniOptimiza minimiza os efeitos
de sobrecargas empregando os recursos de hardware existentes na federação de maneira
mais eficiente. A Figura 8 mostra que as requisições geradas pela ferramenta Apache Benchmark consumiram aproximadamente 90% do processamento, enquanto os outros dois
IdPs possuíam processamento ocioso. A Figura 9 mostra que o emprego da ferramenta
proposta utilizou os IdPs ociosos para balancear a sobrecarga, diminuindo levemente a
sobrecarga do IdP alvo. Esse resultado mostra que a utilização da ferramenta proposta é
capaz de diminuir os efeitos negativos da sobrecarga usando recursos de hardware existentes na federação, podendo servir como uma alternativa em momentos onde as estratégias
criadas pelos administradores dos domínios locais forem insuficientes.
5. Conclusão
Este trabalho apresentou MoniOptimiza, uma ferramenta de monitoramento e otimização
dos provedores de identidades para mitigar os efeitos de sobrecargas ocasionadas por ataques DDoS. A ferramenta foi avaliada experimentalmente conduzida em uma federação
local. Os resultados mostram que a ferramenta proposta diminui o número de requisições
atendidas de um IdP sobrecarregado e emprega de maneira mais eficiente o hardware da
federação para diminuir os efeitos da sobrecarga. Em trabalhos futuros a ferramenta será
investigada de forma a incluir maneiras de reduzir o número de requisições falhas e será
conduzida uma avaliação no GID Lab da RNP, com um número maior de IdPs geograficamente distribuídos.
Referências
Aron, M., Druschel, P., and Zwaenepoel, W. (2000). Cluster reserves: A mechanism for
resource management in cluster-based network servers. In Proceedings of the 2000
ACM SIGMETRICS International Conference on Measurement and Modeling of Computer Systems, pages 90–101, New York, NY, USA. ACM.
Carlson, F. R. (2014). Security analysis of cloud computing. CoRR, abs/1404.6849.
Fu, Z., Papatriantafilou, M., and Tsigas, P. (2012). Mitigating distributed denial of service
attacks in multiparty applications in the presence of clock drifts. IEEE Transactions
on Dependable and Secure Computing, 9(3):401–413.
Goldberg, D. E. (1989). Genetic Algorithms in Search, Optimization and Machine Learning. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1st edition.
Handl, J. and Knowles, J. (2007). An evolutionary approach to multiobjective clustering.
Evolutionary Computation, IEEE Transactions on, 11(1):56–76.
Leuven (2015).
Guide: Local monitoring of a shibboleth identity provider.
https://shib.kuleuven.be/docs/idp/2.x/install-idp-2.
1-rhel-monitoring.html. Último Acesso: Junho de 2015.
Lonea, A., Tianfield, H., and Popescu, D. (2013). Identity management for cloud computing. In Balas, V. E., Fodor, J., and Várkonyi-Kóczy, A. R., editors, New Concepts and
Applications in Soft Computing, volume 417 of Studies in Computational Intelligence,
pages 175–199. Springer Berlin Heidelberg.
Macedo, R. T., Ghamri-Doudane, Y., and Nogueira, M. (2015a). Mitigating dos attacks
in identity management systems through reorganizations. Latin American Network
Operations and Management Symposium.
Macedo, R. T., Melniski, L., Santos, A., Ghamri-Doudane, Y., and Nogueira, M. (2015b).
Mitigando ataques ddos por reorganizações em agrupamentos de idp. Anais Simpósio
Brasileiro de Segurança da Informação e de Sistemas Computacionais.
Macedo, R. T., Santos, A. L., Guedes, A. L. P., Nogueira, M., and Ghamari-Doudane
(2014). Um modelo de falhas em cascata para sistemas globais de gerenciamento de
identidades. Anais do XIX Workshop de Gerência e Operação de Redes e Serviços.
M/Monit (2015). M/monit: Proactive monitoring of unix systems, network and cloud services. http://mmonit.com/monit/#about. Último Acesso: Junho de 2015.
Nogueira, M., Santos, A., Torres, J., Zanella, A., and Danielewicz, Y. (2011). Gerência
de identidade na internet do futuro. Minicurso Apresentado no Simpósio Brasileiro de
Redes de Computadores e Sistemas Distribuídos-SBRC, pages 1–6.
Shah, H., Anandane, S. S., and Shrikanth (2013). Security issues on cloud computing.
CoRR, abs/1308.5996.
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.
Zahda, S. (2015). How to extract values from top and plot them. https://www.
howtoforge.com/extract-values-from-top-and-plot-them. Último Acesso: Agosto de 2015.
Download

MoniOptimiza: Uma Ferramenta para Monitoramento e Otimização