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