Lógica nebulosa aplicada a um sistema de detecção de ...cbsf/pub/anais/2012/10001203.pdf · A...

18
Lógica nebulosa aplicada a um sistema de detecção de intrusos para computação em nuvem Carolina Yoshico Ji 1 , Nival Nunes de Almeida 1,2 , Orlando Bernardo Filho 2 1 Universidade do Estado do Rio de Janeiro Programa de Pós-Graduação em Engenharia Eletrônica do Depto. de Eng. Eletrônica e Telecomunicações Rua São Francisco Xavier, 524 – 5º andar - sala 5.025 - Bloco E - Maracanã CEP: 20.559-900 - Rio de Janeiro, RJ E-mail: [email protected], [email protected] 2 Universidade do Estado do Rio de Janeiro Depto. de Eng. de Sistema e Computação Rua São Francisco Xavier, 524 – 5º andar - sala 5.014 - Bloco D - Maracanã 20.559-900 - Rio de Janeiro, RJ E-mail: [email protected] Abstract. O objetivo deste artigo foi propor uma técnica calcada em lógica ne- bulosa para detectar os riscos de ocorrências de intrusos em um sistema de computação em nuvem para sistemas distribuídos. A computação em nuvem é um tema que tem sido bastante abordado e tem alavancado importantes dis- cussões, tanto na comunidade acadêmica quanto em setores profissionais. Em- bora esta tecnologia esteja ganhando mercado, alguns estudiosos ainda encon- tram-se céticos afirmando que é cedo para tirar conclusões. Isto se deve princi- palmente por causa de um fator crítico, que é a segurança dos dados armazena- dos na nuvem. Uma aplicação em nuvem tem sido desenvolvida como estudo de caso para servir de aplicação da técnica de segurança na nuvem aqui apresentada. Foram usados dois sistemas de inferência nebulosos para a análise de possíveis problemas na nuvem. Um deles infere possíveis problemas de rede e o outro infere problemas de segurança. Keywords: Sistemas de Detecção de Intrusos, Computação em Nuvem, Siste- mas Distribuídos, Lógica Nebulosa. 1 Introdução Com o atual nível e necessidade de conectividade, muitas empresas apresentam um número significativo de computadores em seus respectivos parques, podendo chegar à ordem de milhares. Esse aumento da popularidade acerca das redes de computadores

Transcript of Lógica nebulosa aplicada a um sistema de detecção de ...cbsf/pub/anais/2012/10001203.pdf · A...

Lógica nebulosa aplicada a um sistema de detecção de

intrusos para computação em nuvem

Carolina Yoshico Ji1, Nival Nunes de Almeida

1,2, Orlando Bernardo Filho

2

1Universidade do Estado do Rio de Janeiro

Programa de Pós-Graduação em Engenharia Eletrônica

do Depto. de Eng. Eletrônica e Telecomunicações

Rua São Francisco Xavier, 524 – 5º andar - sala 5.025 - Bloco E - Maracanã

CEP: 20.559-900 - Rio de Janeiro, RJ

E-mail: [email protected], [email protected]

2Universidade do Estado do Rio de Janeiro

Depto. de Eng. de Sistema e Computação

Rua São Francisco Xavier, 524 – 5º andar - sala 5.014 - Bloco D - Maracanã

20.559-900 - Rio de Janeiro, RJ

E-mail: [email protected]

Abstract. O objetivo deste artigo foi propor uma técnica calcada em lógica ne-

bulosa para detectar os riscos de ocorrências de intrusos em um sistema de

computação em nuvem para sistemas distribuídos. A computação em nuvem é

um tema que tem sido bastante abordado e tem alavancado importantes dis-

cussões, tanto na comunidade acadêmica quanto em setores profissionais. Em-

bora esta tecnologia esteja ganhando mercado, alguns estudiosos ainda encon-

tram-se céticos afirmando que é cedo para tirar conclusões. Isto se deve princi-

palmente por causa de um fator crítico, que é a segurança dos dados armazena-

dos na nuvem. Uma aplicação em nuvem tem sido desenvolvida como estudo

de caso para servir de aplicação da técnica de segurança na nuvem aqui

apresentada. Foram usados dois sistemas de inferência nebulosos para a análise

de possíveis problemas na nuvem. Um deles infere possíveis problemas de rede

e o outro infere problemas de segurança.

Keywords: Sistemas de Detecção de Intrusos, Computação em Nuvem, Siste-

mas Distribuídos, Lógica Nebulosa.

1 Introdução

Com o atual nível e necessidade de conectividade, muitas empresas apresentam um

número significativo de computadores em seus respectivos parques, podendo chegar à

ordem de milhares. Esse aumento da popularidade acerca das redes de computadores

Lógica nebulosa aplicada a um sistema de detecção de intrusos para computação em

nuvem 1204

acarreta diretamente no aumento da complexidade dos sistemas integrados de gerên-

cia. Isto ocorre porque cada vez mais novos dispositivos são inseridos na rede com a

necessidade de comunicação entre eles, e com isso, a tarefa de gerenciá-la [1] está se

tornando cada vez mais importante e crucial para o seu desempenho.

A computação em nuvem [2] vem auxiliando neste processo da evolução tecnoló-

gica, mas com ela também vieram os problemas de segurança do compartilhamento

de informações. Os recursos são oferecidos como serviços na Internet, onde os usuár-

ios transferem seus dados e aplicações para a nuvem, podendo acessá-los de qualquer

local. Essa tecnologia caracteriza-se por ser redundante e resiliente.

Com o crescimento e complexidade da rede, executar uma verificação de riscos pa-

ra prover segurança aos dados e informações presentes é uma tarefa imprescindível.

Analisar o tráfego da rede, bem como estudar e averiguar seu comportamento [3] são

maneiras de garantir a sua integridade, prevenindo-a de ataques e eventos suspeitos.

Para descobrir se uma rede está desprotegida ou vulnerável a acessos não autorizados,

é necessária a implementação de um sistema de detecção de intrusos (SDI) [4].

A proposta deste artigo é a implementação de um SDI com lógica nebulosa [5] pa-

ra análise de riscos em uma nuvem, capaz de detectar invasões ou comportamentos

maliciosos de acordo com inferências realizadas sobre parâmetros da rede e da aplica-

ção em nuvem. Para a confecção desse SDI, foi necessária a criação das regras onde

foi utilizado o software MatLab [6] para testar o Sistema de Inferência Nebulosa

(SIN) implementado em Java. Foi utilizada ainda, para facilitar o projeto do sistema, a

ferramenta BOUML [7] para a modelagem UML (Unified Modeling Language) [8].

Para criação da rede de computadores presentes nesta simulação, foi utilizado o Vir-

tualBox [9]. Os códigos do sistema foram escritos utilizando a IDE Eclipse e o banco

de dados no HeidiSQL [10].

A lógica nebulosa é uma extensão da lógica clássica e é bastante empregada nas

áreas de controle e tomada de decisões. Foi desenvolvida por Zadeh em 1965, a partir

da generalização da Teoria dos Conjuntos Tradicionais [11] com o intuito de resolver

os paradoxos gerados com a definição das sentenças verdadeiro ou falso da logica

clássica. Ela está maciçamente presente na área de Inteligência Artificial [12]. A lógi-

ca nebulosa engloba valores lógicos intermediários, ou seja, valores cujas premissas

estão situadas entre 0 e 1, de modo a concluir-se que algo é parcialmente verdadeiro

ou parcialmente falso. Essa característica permite que estados indeterminados e im-

precisos sejam tratados e analisados por dispositivos de controle.

De modo geral, a abordagem nebulosa é baseada no princípio de que os elementos

fundamentais no processo cognitivo não são apenas números exatos, podem ser valo-

res aproximados. Em muitos casos, o raciocínio humano não se restringe apenas ao

limite de dois valores, o que faz com que essa lógica desempenhe um importante

papel em vários aspectos do pensamento humano. A chave da construção de sistemas

nebulosos verifica-se nas variáveis linguísticas, permitindo possíveis aplicações em

áreas como análise, reconhecimento de padrões [13], classificação e a já comentada

tomada de decisões. A motivação para sua utilização está na capacidade de concluir e

determinar respostas calcadas em dados ambíguos, incompletos ou até mesmo impre-

cisos.

1205 Carolina Yoshico Ji, Nival Nunes de Almeida, Orlando Bernardo Filho

2 Segurança na Rede

A procura por investimentos em tecnologia da informação tem se tornado cada vez

mais importante e presente no cotidiano de uma organização. É neste âmbito que

ocorre a disseminação das redes de computadores, uma vez que elas são responsáveis

por diminuir não apenas a distância entre os equipamentos, mas ainda o tempo de

resposta às requisições. É ainda em prol da ótima relação custo-benefício que o em-

prego das redes de computadores vem se proliferando de forma bastante exponencial.

Esse aumento da popularidade acerca das redes de computadores acarreta diretamente

no aumento da complexidade dos sistemas integrados de gerência. Isto ocorre porque

cada vez mais, novos dispositivos são inseridos na rede, com a necessidade de co-

municação entre eles e, com isso, a tarefa de gerenciar a rede está se tornando cada

vez mais indispensável e crucial para o seu bom desempenho.

De acordo com Saydam [14], o melhor significado de gerenciamento de rede é de-

finido por:

“Gerenciamento de rede inclui o oferecimento, a integração e a coordenação de

elementos de hardware, software e humanos, para monitorar, testar, consultar, confi-

gurar, analisar, avaliar e controlar os recursos da rede, e de elementos, para satisfa-

zer às exigências operacionais, de desempenho e de qualidade de serviço em tempo

real a um custo razoável".

Em linhas gerais, um serviço de segurança é encarregado de impedir eventos que

possam comprometer a disponibilidade, a escalabilidade, a integridade ou a confiden-

cialidade de um recurso físico ou computacional, por meio do controle, mitigação ou

eliminação de ameaças, riscos e vulnerabilidades. Na implementação de um serviço

de segurança de rede, podem ser usados mecanismos de controle com o intuito de

prevenir, recuperar ou detectar um ataque. Os SDI se enquadram como mecanismos

de controle de detecção de ataques. Esses sistemas têm como funcionalidade detectar

ataques de nós maliciosos e aplicar as contra medidas adequadas a fim de manter a

operacionalidade da rede. Por razões tecnológicas, as necessidades de um SDI no

âmbito das redes de computadores são distintas para a computação em nuvem. O bom

funcionamento de uma rede ou sistema depende das medidas que serão tomadas após

o processo de detecção e análise dos alertas emitidos pelos equipamentos de gerência.

Como já dito, em redes de computadores, a implementação de mecanismos de se-

gurança é uma necessidade latente. Atualmente, não é mais viável pensar em redes de

computadores sem vincular a necessidade da segurança do sistema. No entanto, essa

utilização de um dado mecanismo de segurança deve impactar em uma fatia mínima

dos recursos disponíveis da rede. Esse impacto também deve ser alvo de estudos,

além da própria verificação da eficiência do mecanismo adotado. Da definição segue

que:

“Os Sistemas de Detecção de Intrusos (SDI) são responsáveis por identificar, rela-

tar e combater atividades maliciosas provenientes tanto de elementos externos quanto

de elementos internos ao sistema.“ [15]

Lógica nebulosa aplicada a um sistema de detecção de intrusos para computação em

nuvem 1206

No cenário atual, juntamente com os firewalls, os SDI têm-se tornado um compo-

nente necessário na maioria dos sistemas de segurança de rede. O seu principal ob-

jetivo é identificar potenciais vulnerabilidades, ataques ou riscos nas políticas de se-

gurança [16]. No ano de 1986, Dorothy E. Denning [17] propôs pela primeira vez um

modelo para detectar tentativas de invasão, penetração e outros tipos de abusos duran-

te a utilização do computador conectado à rede. Desde então, inúmeras propostas têm

sido feitas para suprir as necessidades, carências e deficiências dos SDI existentes. No

entanto, esses sistemas carecem de atualização cada vez que um novo ataque é

descoberto e divulgado, dificultando as tarefas do administrador da rede; uma vez

que, além de observar os relatórios dos SDI, é necessário estar em alerta para as atual-

izações de banco de dados.

3 Computação em Nuvem

O emprego da nomenclatura Computação em Nuvem (Cloud Computing) vem se

tornando cada vez mais frequente, com a promessa de tornar-se um paradigma que

transformará o modo atual de desenvolvimento e comercialização dos produtos de

software. Por referir-se a um termo muito recente, apresenta ainda muitas dúvidas e

divergências sobre o seu significado. Apesar de ainda não haver uma definição exata

e consensual acerca do conceito da Computação em Nuvem [18] possui uma

definição interessante e bastante abrangente para esse paradigma, podendo ser utiliza-

da como referência para este artigo:

“Computação em nuvem é um paradigma de computação em larga escala que pos-

sui foco em proporcionar economia de escala, em que um conjunto abstrato, virtuali-

zado, dinamicamente escalável de poder de processamento, armazenamento, plata-

formas e serviços são disponibilizados sob demanda para clientes externos através da

internet".

A computação em nuvem está se tornando uma das palavras chaves da indústria de

Tecnologia da Informação. A nuvem é uma metáfora para a Internet ou infraestrutura

de comunicação entre os componentes arquiteturais, baseada em uma abstração que

oculta a complexidade de infraestrutura. Cada parte dessa infraestrutura é provida

como um serviço e, esses são normalmente alocados em centros de dados, utilizando

hardware compartilhado para computação e armazenamento [19].

A solução da computação em nuvem apresenta custo financeiro reduzido, uma vez

que para os usuários utilizarem os serviços fornecidos pela nuvem, é necessário ape-

nas uma máquina configurada com um sistema operacional (que pode ser otimizado

com configurações mínimas), um navegador (browser) e placa de rede (cabeada ou

sem fio) para o acesso à Internet. Todos os recursos computacionais estão disponíveis

na nuvem, sendo que os usuários não precisam se preocupar com recursos com-

putacionais robustos, acarretando na facilidade de obtenção de baixo custo no valor

das máquinas. A computação em nuvem permite um alto nível de abstração e custom-

ização, já que todo e qualquer hardware pode ser utilizado para realizar alguma tarefa

1207 Carolina Yoshico Ji, Nival Nunes de Almeida, Orlando Bernardo Filho

que seja adequada ao seu poder de processamento. Novos recursos de hardware e

demais dispositivos podem ser adicionados com intuito de aumentar o poder de pro-

cessamento e cooperar com os recursos já existentes.

3.1 Modelos de Serviços

Software como um Serviço (SaaS)

Como já diz o nome, este modelo de computação em nuvem proporciona sistemas de

software com propósitos específicos que estão disponíveis para os usuários através da

utilização de Internet. São acessíveis a partir de vários dispositivos do usuário por

meio de uma interface thin client (ou seja, um cliente configurado com poucos recur-

sos no modelo cliente-servidor), como um navegador web. O fato do software estar

disponível na rede permite que esse possa ser acessado pelos usuários de qualquer

lugar, dispositivo e momento, possibilitando uma maior mobilidade e facilidade na

integração entre unidades de uma mesma empresa ou outros serviços integrados ao

programa.

Isto posto, novos recursos podem ser integrados automaticamente aos sistemas de

software de forma transparente para os usuários, possibilitando uma evolução e atua-

lização dos sistemas.

O SaaS reduz os custos, pois é dispensada a aquisição de licenças de sistemas de

software. Como exemplos de SaaS são destacáveis os serviços de Customer Relation-

ship Management (CRM) da Salesforce [20] e o Google Docs.

Plataforma como um Serviço (PaaS)

A finalidade deste modelo é facilitar o desenvolvimento de aplicações destinadas aos

usuários finais do sistema, desenvolvendo uma plataforma que dinamiza esse proces-

so, conferindo agilidade e praticidade ao mesmo. O PaaS oferece uma infraestrutura

de alto nível de integração para implementar e testar aplicações desenvolvidas na

nuvem. O usuário não possui controle e privilégios administrativos acerca da in-

fraestrutura.

Fornece ainda sistema operacional, linguagens de programação e ambientes de de-

senvolvimento para as aplicações, auxiliando a implementação de software, já que

possui ferramentas de desenvolvimento e colaboração entre desenvolvedores. Permite

aos usuários utilizarem serviços de terceiros, aumentando o uso do escopo de projeto

de suporte onde os usuários se inscrevem para solicitações de serviços de TI (abertura

de tickets ou chamados) ou para resoluções de problemas pela Internet, permitindo o

melhoramento do gerenciamento do trabalho e de governança das responsabilidades

das equipes de TI das empresas. Como exemplos, pode-se citar o Google App Engine

[21] e Aneka [22].

Infraestrutura como um Serviço (IaaS)

Este modelo fornece toda a infraestrutura necessária para a PaaS e o SaaS. A maior

finalidade do IaaS é prover facilidade e acessibilidade ao fornecimento de recursos,

como por exemplo, servidores, rede de computadores, armazenamento e outros recur-

Lógica nebulosa aplicada a um sistema de detecção de intrusos para computação em

nuvem 1208

sos de computação fundamentais para desenvolver um ambiente sob demanda.

Apresenta características típicas, como uma interface única para administração da

infraestrutura, Application Programming Interface (API) para interação com hosts,

switches e outros dispositivos de rede e suporte para a adição de novos equipamentos

de forma simples e transparente. Na maioria dos casos, o usuário não administra ou

controla a infraestrutura da nuvem, no entanto, possui controle sobre os sistemas

operacionais, armazenamento e aplicativos, e, se necessário, seleciona componentes

para integrar a rede, provendo maior segurança, como um firewall.

4 Segurança na Nuvem

Por muito tempo, datacenters e empresas foram construídas e arquitetadas de modo a

garantir fisicamente que um usuário que não tivesse a necessidade de ter contato físi-

co com computadores, servidores e discos, por exemplo, o fizesse. Esse pensamento

tem como alicerce uma regra de segurança sólida que afirma que se um indivíduo

tiver a chance de tocar fisicamente um dispositivo, esse pode ser mais facilmente

corrompido ou danificado. Para muitos estudiosos e profissionais de TI, o pensamento

de hospedar aplicações na nuvem é muito preocupante. Quando as questões de se-

gurança na nuvem são colocadas à prova, é necessário pensar em termos de dois ou

três tipos de ameaças. Primeiramente, é preciso listar as ameaças que correspondem

às ameaças mais comuns para soluções baseadas em nuvem e soluções baseadas em

aplicações que não estejam na nuvem. A segunda lista deve se concentrar em ameaças

específicas para aplicações que rodem na nuvem.

4.1 Vantagens da Estrutura de Segurança na Nuvem

Como os provedores de solução baseados em computação em nuvem espalham e

diluem os custos através de vários clientes, significa que a maioria possui mais di-

nheiro disponível para investir em soluções diferentes, dentre elas, questões de segu-

rança. A lista abaixo ilustra alguns benefícios que as empresas de soluções em nuvem

devem respeitar em relação à segurança [23]:

Implementação imediata de pacotes de correção (patches) nos produtos de

software

Alguns pacotes de correção contêm conformidades específicas de segurança.

Várias empresas de soluções baseadas em nuvem possuem uma equipe dis-

ponível para aplicar e distribuir essas correções. Desse modo, aplicações

baseadas em sistemas na nuvem podem apresentar-se vulneráveis por um

curto período de tempo assim que um novo pacote de correção for lançado.

Redundância de hardware e software

1209 Carolina Yoshico Ji, Nival Nunes de Almeida, Orlando Bernardo Filho

A maioria das soluções possui redundância de recursos de hardware e sof-

tware que podem ser rapidamente distribuídos em uma situação de emergên-

cia.

Oportunidade de respostas a incidentes

Um provedor de solução baseado na nuvem possui especialistas para siste-

mas de monitoramento de intrusos com porcentagem de utilização do sistema

e outros recursos. Desse modo, caso ocorra um incidente de segurança, a re-

sposta da solução baseada em nuvem é mais reativa.

4.2 Desvantagens da estrutura de segurança na nuvem

A computação em nuvem não apresenta apenas vantagens. As desvantagens em

hospedar aplicações e dados na nuvem são citadas abaixo.

País ou jurisdição

Nem sempre é evidente o local de hospedagem dos recursos baseados na nu-

vem. Se a nuvem hospeda seus recursos em um país remoto, diferente da lo-

calização dos clientes, é importante a preocupação com as leis do governo do

país. Se os recursos residem em vários países, questões como jurisdição po-

dem vir à tona em relação às questões legais.

Riscos de múltiplos inquilinos

Algumas soluções baseadas em nuvem utilizam-se da filosofia de múltiplos

inquilinos, o que significa que dois ou mais clientes podem usar os mesmos

recursos, como por exemplo, um banco de dados. Como resultado, um erro

na aplicação pode expor os dados de uma empresa para outra. De mesmo

modo, se um dispositivo é compartilhado, restos de dados de uma empresa

podem ser expostos à outra.

Bloqueio de operadora

Dependendo de como um provedor baseado em nuvem armazena os dados de

uma empresa, pode se tornar difícil para a empresa mudar de operadora no

futuro, em caso de violação de acordo de nível de serviço, contrato ou outro

problema.

Lógica nebulosa aplicada a um sistema de detecção de intrusos para computação em

nuvem 1210

5 Estado da Arte

Ao buscar trabalhos relacionados ao tema do projeto em questão, foram encontrados

dois com o uso de lógica nebulosa para auxiliar na segurança de redes locais sem fio e

um sobre segurança para a computação em nuvem.

O primeiro trabalho [24] trata da avaliação da confiança de nós que ingressam em

uma rede local sem fio. O valor do nó é avaliado, fazendo com que o modelo se

apresente mais estável, adaptativo e robusto, o que consequentemente aumenta a se-

gurança da rede e seu desempenho. A simulação atestou a análise da eficácia da

gestão de confiança do modelo, o qual funciona como uma interface intuitiva e eficaz

no que se refere à ferramenta de análise, avaliação e derivação, podendo fornecer

apoio eficaz para as decisões de confiança e contra-ataques.

No segundo trabalho [25], é apresentado um modelo de confiança baseado em infe-

rência nebulosa para melhorar a segurança de redes ad hoc. Foi utilizada uma carac-

terística importante, que é a incorporação da maioria dos conceitos essenciais para a

confiança, como a subjetividade, imprecisão e incerteza. Simulações provaram que o

modelo proposto não só atinge alta precisão e boa adaptabilidade na avaliação de

confiança, mas também se apresenta robusto contra ataques.

O terceiro trabalho [26] discorre sobre uma arquitetura para realizar a gerência de

identidades em nuvens híbridas. Essa arquitetura permite que outras nuvens privadas

se associem à nuvem pública da plataforma REALcloud. A implementação dessa ar-

quitetura utilizou a infraestrutura do middleware OpenAM. O middleware OpenAM

foi estendido para comportar serviços de autorização à rede interna de recursos. O

aspecto de segurança tratado por esse trabalho foi a questão da autenticação das iden-

tidades participantes da nuvem.

6 Estudo de Caso

Este artigo apresenta o estudo de caso da segurança para sistemas distribuídos no

desenvolvimento de software na nuvem utilizando lógica nebulosa. O modelo adotado

foi o cliente-servidor, onde o gerente comunica-se com os nós clientes. O código foi

implementado em Java e o sistema gerenciador de banco de dados adotado foi o

MySQL.

Uma vez que o estudo de caso em questão consistiu de uma aplicação distribuída

para o desenvolvimento de software, cada nó (cliente) na nuvem seria o responsável

pela criação dos artefatos de uma fase do projeto do software, como, por exemplo, a

fase de análise seria concebida por um desses clientes e sempre que os artefatos dessa

análise estivessem concluídos (diagramas e especificações), eles seriam enviados ao

gestor (servidor). Observe a Figura 1 a seguir que evidencia a arquitetura da aplicação

do estudo de caso.

1211 Carolina Yoshico Ji, Nival Nunes de Almeida, Orlando Bernardo Filho

Fig. 1. Arquitetura do Gestor de Desenvolvimento de Software na Nuvem (gestsoftnuvem).

7 Modelagem e Testes

Para verificação e testes, as regras do projeto foram simuladas no ToolBox Fuzzy do

MatLab, seguindo o método de inferência Mamdani [27]. Foram criados dois Siste-

mas de Inferência Nebulosa (SIN): o SIR (Sistema de Inferência de Rede) e o SIS

(Sistema de Inferência de Segurança).

As três variáveis linguísticas de entrada do SIR são: atraso, número de tentativas e

serviços acessados. O atraso é medido em milissegundos (ms), o número de tentativas

em número de vezes e os acessos aos serviços em número de acessos. A Figura 2

ilustra as três entradas e a saída, cuja resposta representa o Índice de Problema de

Rede (IPR), que apresenta, em porcentagem, os possíveis problemas de rede do siste-

ma.

Fig. 2. Modelagem do SIR.

A Figura 3 apresenta o universo de discurso da variável atraso com termos nebulo-

sos curto, médio e longo.

Lógica nebulosa aplicada a um sistema de detecção de intrusos para computação em

nuvem 1212

Fig. 3. Modelagem do SIR – Atraso.

A Figura 4 apresenta o universo de discurso da variável tentativas com termos ne-

bulosos pouco, médio e muito.

Fig. 4. Modelagem do SIR – Tentativas.

A Figura 5 apresenta o universo de discurso da variável serviços com termos nebu-

losos pouco, médio e muito.

Fig. 5. Modelagem do SIR – Serviços.

1213 Carolina Yoshico Ji, Nival Nunes de Almeida, Orlando Bernardo Filho

A Figura 6 apresenta o universo de discurso da variável Índice de Problemas de

Rede com termos nebulosos sem problema, provável e com problema.

Fig. 6. Modelagem do SIR – Índice de Problema de Rede.

As três variáveis do SIS são: Índice de Problema de Rede (IPR), Artefatos Fora do

Prazo (AFP) e Artefatos com Erro (ACE). O SIS apresenta a relação de dependência

com o SIR, pois a entrada IPR é a saída do SIR. As outras duas entradas AFP e ACE,

são medidas por percentual, em um universo de discurso de 0 a 100%. A Figura 7

ilustra as entradas e saídas do SIS.

Fig. 7. Modelagem do SIS.

As funções de pertinência da variável IPR (agora entrada para o SIS) com termos

nebulosos sem problema, provável e com problema já foram apresentadas na Figura

6. A Figura 8 apresenta, então, o universo de discurso da variável AFP com termos:

poucos, alguns e muitos.

Lógica nebulosa aplicada a um sistema de detecção de intrusos para computação em

nuvem 1214

Fig. 8. Modelagem do SIS – Artefatos Fora do Prazo.

A Figura 9 apresenta o universo de discurso da variável ACE com termos nebulo-

sos poucos, alguns e muitos.

Fig. 9. Modelagem do SIS – Artefatos Com Erro.

A figura 10 apresenta o universo de discurso da variável Índice de Problema de

Segurança com termos: poucos, alguns e muitos.

1215 Carolina Yoshico Ji, Nival Nunes de Almeida, Orlando Bernardo Filho

Fig. 10. Modelagem do SIS – Índice de Problema de Segurança.

As tabelas a seguir apresentam as regras de inferência dos dois sistemas nebulosos

implementados.

Tabela 1. Regras de Inferência Nebulosa do SIR.

Tabela 2. Regras de Inferência Nebulosa do SIS.

Para o projeto do estudo de caso gestsoftnuvem (gestão de software na nuvem), o

cadastro do banco de dados foi feito com o auxílio da ferramenta HeidiSQL que trata-

se de um programa com interface gráfica para o MySQL. A Figura 11 apresenta al-

Lógica nebulosa aplicada a um sistema de detecção de intrusos para computação em

nuvem 1216

guns campos do banco. Foram cadastradas tabelas como equipe, fase e sistema, refe-

rentes aos campos do processo de desenvolvimento de software. Com base nas regras

escritas para simulação no MatLab, foram cadastrados os códigos referentes às variá-

veis linguísticas e seus respectivos valores de intervalos, coeficientes angulares e

lineares das retas de cada regra dos dois SIN.

Tal base de dados com os parâmetros para a criação dos dois SIN foi feita para ser

consultada pela classe defuzzy.java codificada dentro do gestsoftnuvem. A classe

defuzzy.java utiliza o método de defuzzyficação da média aritmética ponderada dos

centróides pela área (fórmula a seguir). O pseudocódigo do método de inferência

implementado pela classe defuzzy.java também é apresentado adiante.

(1)

Fig. 11. Modelo físico do banco de dados do gestsoftnuvem.

Pseudocódigo do Método de Inferência Implementado pela Classe defuzzy.Java

INICIO DA CLASSE INFERÊNCIA

somatorioCentroide = 0, somatorioArea = 0,

centroideRegra = 0, areaRegra = 0

SELECIONAR as Regras QUANDO Sistema = escolhido pelo usuário

PARA cada Regra FAZER

centroideRegra = 0, areaRegra = 0;

Obter o 1º Termo da Regra

mi1 = Avaliar a pertinência do 1º Termo

Obter o 2º Termo da Regra

mi2 = Avaliar a pertinência do 2º Termo

Obter menorMi entre mi1 e mi2

1217 Carolina Yoshico Ji, Nival Nunes de Almeida, Orlando Bernardo Filho

SE menorMi > 0 ENTÃO

Obter termoConsequente da Regra

CalcularCentróideRegra

(termoConsequente, centroideRegra, areaRegra)

somatorioCentroide = somatorioCentroide

+ (centroideRegra * areaRegra);

somatorioArea = somatorioArea + areaRegra;

FIM SE

LOOP

ValorFinal = somatorioCentroide / somatorioArea;

FIM INFERÊNCIA

Para a confecção dos diagramas UML do programa gestsoftnuvem do estudo de ca-

so, foi utilizada a ferramenta BoUML. O programa gestsoftnuvem está sendo desen-

volvido de acordo com a prática de programação em camadas, baseada na arquitetura

Model, View, Controler (MVC). A Figura 12 apresenta o modelo dos pacotes da inter-

face de rede e de usuário, com a definição das classes protocolo, cliente, servidor e

formulario_principal.

Fig. 12. Interface de Rede e de Usuário.

A Figura 13 apresenta o pacote controle o qual possui as classes gestor_soft e mo-

nitor_nodos e a sua integração com o pacote modelo, com o pacote interface_usuario

e interface_rede.

Fig. 133. Controle.

A Figura 14 apresenta o pacote modelo com as classes sistema, fase, equipe, defu-

zzy, defuzzy_bean e calcula_coeficiente. As três primeiras classes tratam das entida-

des da gestão do desenvolvimento de software, enquanto as três últimas classes im-

plementam o processamento dos dois sistemas de inferência nebulosos.

Lógica nebulosa aplicada a um sistema de detecção de intrusos para computação em

nuvem 1218

Fig. 14. Modelo Conceitual.

Uma vez que não foi encontrada uma abordagem para detectar intrusos na compu-

tação em nuvem dentro da pesquisa feita do estado da arte, não será possível compa-

rar o método ora exposto neste artigo com alguma outra técnica. Sendo assim, para

validar tal método apresentado, foi idealizado um experimento com quatro máquinas

virtuais criadas para implantar os sistemas de inferência nebulosos (de rede e de se-

gurança).

As máquinas virtuais conectadas em rede seriam os nós da nuvem do estudo de ca-

so implementado, ou seja, do gestor de desenvolvimento de software na nuvem (ges-

tsoftnuvem). No sentido de observar o comportamento dos sistemas de inferência

nebulosos para constatar a sua eficácia, foram introduzidos erros propositadamente

em uma das máquinas virtuais para causar um mau funcionamento na nuvem.

O primeiro teste foi simplesmente desligar uma das máquinas virtuais, provocando

uma detecção de possível problema na rede, visto que essa máquina desligada ficaria

totalmente sem acesso. Já o segundo teste seria manter as máquinas em funcionamen-

to, porém programando o cliente do gestsoftnuvem de uma delas para enviar um ar-

tefato defeituoso para o gestor.

Em ambos os casos os sistemas de inferência nebulosos apresentaram um resultado

satisfatório, expostos na Tabela 3 a seguir:

Tabela 3. Resultado da execução dos sistemas de inferência nebulosos do gestsoftnuvem.

Teste 1 –– Uma das máquinas virtuais foi desligada

Sistema de Inferência de Rede Sistema de Inferência de Segurança

Entrada Valor Saída Valor Entrada Valor Saída Valor

Atraso 10 Índice de

Problemas

de Rede 83,7

IPR 83,7 Índice de

Problemas

de Segurança 50 Tentativas 10 AFP 100

Serviços 4 ACE 0

Teste 2 –– Valores dos artefatos foram inseridos com erro e fora do prazo no banco de dados do

gestsoftnuvem

Sistema de Inferência de Rede Sistema de Inferência de Segurança

Entrada Valor Saída Valor Entrada Valor Saída Valor

Atraso 2 Índice de

Problemas

de Rede 18,3

IPR 18,3 Índice de

Problemas

de Segurança 81,7 Tentativas 1 AFP 80

Serviços 0 ACE 90

A Tabela 3 mostra os resultados obtidos pelo MatLab no teste 1 onde foram dadas

as entradas de valor 10 para as variáveis Atraso e Tentativas e 4 para a variável Servi-

ços do Sistema de Inferência de Rede (SIR). Tais valores são máximos para todas

1219 Carolina Yoshico Ji, Nival Nunes de Almeida, Orlando Bernardo Filho

essas variáveis, indicando um atraso e número de tentativas de acesso à máquina vir-

tual desligada de 10 vezes os valores normais dessas mesmas variáveis em funciona-

mento normal, além de uma quantidade de 4 serviços sem acesso. O valor da saída

inferido pelo SIR foi de 83,7% evidenciando, como deveria ser, um problema de rede.

A partir desse valor inferido pelo SIR, foram dadas as entradas para testar o Siste-

ma de Inferência de Segurança (SIS). Foi passado o valor de entrada 100 para a

variável AFP (quantidade de artefatos fora do prazo) e 0 para a variável ACE (quan-

tidade de artefatos com erro), pois em função do problema de rede detectado pelo

SIR, nenhum artefato chegou, daí o valor de 100% de artefatos fora do prazo, mas não

há artefatos com erro já que não chegaram os artefatos da máquina virtual que foi

desligada. O valor da saída inferido pelo SIS nesse caso foi de 50% evidenciando uma

dúvida, pois se a máquina está sem acesso pode ter sido causada por um ataque tam-

bém.

No segundo teste, a máquina virtual foi religada e os valores de entrada passados

pelo SIR levaram-no a concluir que não havia problema de rede, pois foi inferida a

saída de 18,3% de Índice de Problemas de Rede. A partir desse resultado do SIR sen-

do passado para o SIS e com mais os valores de 80% e 90% para as variáveis AFP e

ACE, respectivamente, o SIS obteve o valor de saída de 81,7% indicando problema

de segurança, já que não havia problema de rede, mas os artefatos cadastrados no

banco de dados do gestsoftnuvem oriundos da máquina virtual em questão apresenta-

ram problemas.

8 Conclusão

A implementação da lógica nebulosa possibilita o tratamento e manipulação de esta-

dos de incerteza. Neste artigo, foram desenvolvidos dois sistemas de inferência distin-

tos e relacionados, com o objetivo de prover a segurança na computação em nuvem ao

detectar intrusos quando aplicados no desenvolvimento de produtos de software em

uma arquitetura de sistemas distribuídos. Os sistemas de inferência estão aptos a de-

tectar falhas de rede, descartando ou assumindo respostas positivas para problemas de

segurança, gerando índices de porcentagem para problemas de rede e segurança.

As classes em Java já codificadas que implementam os dois sistemas nebulosos fo-

ram testadas e tiveram os seus resultados comparados com as respectivas saídas do

MatLab. A menos de erros de arredondamentos, os resultados foram os mesmos,

atestando, assim, a correção da implementação.

A implementação do gestsoftnuvem prossegue para se avaliar posteriormente a

previsão da detecção de ataques a uma aplicação distribuída.

Este artigo apresentou, portanto, uma técnica original para o monitoramento de

ataques a uma aplicação em nuvem com o desenvolvimento de um estudo de caso

para evidenciar a utilidade da técnica de segurança ora proposta. A aplicação de tal

técnica é importante, pois a maioria dos mecanismos de segurança se concentra ape-

nas no monitoramento dos possíveis problemas em um único host, mas como uma

aplicação em nuvem envolve vários hosts, é necessário um mecanismo de segurança

que verifique todos os nós envolvidos na computação da aplicação em questão.

Lógica nebulosa aplicada a um sistema de detecção de intrusos para computação em

nuvem 1220

Referências

1. Black, T. L. Comparação de Ferramentas de Gerenciamento de Redes. Universidade Fed-

eral do Rio Grande do Sul, 2008.

2. Ruschel, H.; Zanotto, M. S.; Mota, W. C. Computação em Nuvem. 2010.

3. Cardana, J. M. A. Analisador Comportamental de Rede. Universidade de Lisboa, 2006.

4. Ptacek, T. H.; Newsham, T. N. Insertion, Evasion, and Denial of Service: Eluding Network

Intrusion Detection. 1998.

5. Mendel, J. M. Fuzzy Logic Systems for Engineering: A Tutorial. 1995.

6. MATLAB, http://www.mathworks.com/products/matlab

7. BOUML, http://www.bouml.fr

8. UML, http://www.uml.org

9. Virtualbox, https://www.virtualbox.org

10. Heidisql, http://www.heidisql.com

11. Ito, O. T. Análise de Questionários por Lógica Consistente. Universidade Paulista, 2009.

12. Francesci, A. S. M. de; Barreto, J. M.; Roseinberg, M. Desenvolvendo Agentes de Softwa-

re para Gerência de Redes Utilizando Técnicas de Inteligência Artificial, 2002.

13. Mitra, S.; Pal, S. K. Fuzzy sets in pattern recognition and machine intelligence. Fuzzy Sets

and Systems, v. 156, n. 3, pp. 381–386, December 2005.

14. Saydam; Magedanz, T. From Networks and Network Management into Service and Ser-

vice Management. Journal of Networks and System Management, v. 4, n. 4, pp. 345–348,

December 1996.

15. Barbosa, A. S.; Moraes, L. F. M. de. Sistemas de Detecção de Intrusão - Seminários Ravel

- CPS760. 2000.

16. Miller, P.; Inoue, A. Collaborative intrusion detection system. 2003.

17. Denning, D. An Intrusion Detection System. 1986.

18. Foster, I. What is the Grid? A Three Point Checklist. 2002.

19. Buyya, R.; Ranjan, R.; Calheiros, R. N. Modeling and simulation of scalable cloud compu-

ting environments and the cloudsim toolkit: Challenges and opportunities. 2009.

20. Salesforce, http://www.salesforce.com

21. Ciurana., E. Developing with Google App Engine. Apress, Berkely, CA, USA. 2009.

22. Vecchiola, C.; Chu, X.; Buyya., R. Aneka: A Software Platform for .NET-based Cloud

Computing. W. Gentzsch, L. Grandinetti, G. Joubert (Eds.). High Speed and Large Scale

Scienti_c Computing. IOS Press, Amsterdam, Netherlands.

23. Jamsa, D. K. Cloud Computing. [S.l.]: Jones and Bartlett Learning, 2012.

24. Xia, H.; Jia, Z.; Ju, L.; Li, X.; Zhu, Y. Subjective Trust Management Model with Multiple

Decision Factors for MANET based on AHP and Fuzzy Logic Rules. In: IEEE/ACM In-

ternational Conference on Green Computing and Communications, pp. 124–130, IEEE

Computer Society (2011).

25. Zhou, Q.; Li, L.; Wang, S.; Xu, S.; Tan, W. A Novel Approach to Manage Trust in Ad

Hoc Networks. 2007 International Conference on Convergence Information Technology.

University of Electronic Science and Technology of China, pp. 295–300, IEEE Computer

Society (2007).

26. Feliciano, G.; Agostinho, L.; Olivi, L.; Guinarães, E. G.; Cardozo, E. Uma Arquitetura pa-

ra Gerência de Identidades em Nuvens Híbridas in IX Workshop em Clouds, Grids e Apli-

cações, pp. 15–28.

27. Mathworks, http://www.mathworks.com/help/toolbox/fuzzy/fp351dup8.html