• Nenhum resultado encontrado

Inferência Automática de Protocolos de Rede

N/A
N/A
Protected

Academic year: 2021

Share "Inferência Automática de Protocolos de Rede"

Copied!
93
0
0

Texto

(1)

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE Centro de Ensino Superior do Seridó - CERES

Departamento de Computação de Tecnologia - DCT Bacharelado em Sistemas de Informação

Eduardo Garcia

Inferência Automática de Protocolos de Rede

Orientador: Professor Dr. João Paulo de Souza Medeiros

Brasil

(2)
(3)

Eduardo Garcia

Inferência Automática de Protocolos de Rede

Universidade Federal do Rio Grande do Norte

Orientador: Professor Dr. João Paulo de Souza Medeiros

Brasil

(4)

Universidade Federal do Rio Grande do Norte - UFRN Sistema de Bibliotecas - SISBI

Catalogação de Publicação na Fonte. UFRN - Biblioteca Setorial Profª. Maria Lúcia da Costa Bezerra - - CERES--Caicó

Garcia, Eduardo.

Inferência automática de protocolos de rede / Eduardo Garcia. – Caicó: UFRN, 2016.

84p. ; il.

Monografia (Graduação) - Universidade Federal do Rio Grande do Norte. Centro de Ensino Superior do Seridó - Campus Caicó. Departamento de Computação e Tecnologia. Curso de Bacharelado em Sistemas de Informação Orientador: Dr. João Paulo de Souza Medeiros.

1. Interferência de Protocolo. 2. Redes. 3. Inteligência Artificial. I. Medeiros, João Paulo de Souza. II. Titulo.

CDU 004.8

(5)

Dedico a execução desse trabalho primeiramente ao meu orientador João Paulo. Este trabalho também é dedicado aos meus familiares e amigos, não todos os familiares pois estes são muitos e nem todos tiveram influência no meu trabalho, e nem a todos os amigos

mesmo sendo bem poucos a maioria absoluta teve uma influência dispersível neste. Não dedico esse trabalho a todos os amigos, mas ao Júlio sim, a ele eu dedico esse trabalho

(6)

Agradecimentos

A realização deste trabalho só foi possível graças a certos fatores externos, cuja importância pode ser considerada equivalente, destas deve-se destacar, a paciência inaba-lável do meu orientador. Assim como o apoio das pessoas que me cercam, como familiares, amigos, colegas de trabalho e colegas de laboratório. E claro ao funcionamento, mais ou menos correto e algumas esperado, dessas malditas e frias máquinas estúpidas que nos referimos como ‘computadores’.

(7)
(8)

“Em Night Vale, as lojas de penhores funcionam da seguinte forma:

Primeiro, você precisa de um item para penhorar. Para obtê-lo é necessário deixar passar muito tempo, anos vivendo e existindo, até chegar ao ponto em que você acredita na própria existência daquele objeto, no conceito de propriedade e no fato de que, por mais improváveis que sejam, essas crenças absurdas se alinham de forma a configurar sua posse sobre um item.

Bom trabalho, muito bem. Em segundo lugar, após acreditar que possui um item, você deve chegar ao ponto de precisar mais de dinheiro do que do item. Esse é o passo mais fácil. Basta possuir um item e um corpo com necessidades e esperar.

A única loja de penhores da cidade de Night Vale é gerenciada pela jovem Jackie Fierro. O estabelecimento não tem nome, mas, se precisar dele, saberá onde encontrá-lo. Essa informação chegará de repente, em geral no chuveiro. Você vai cair de quatro, cercado por uma forte escuridão cintilante, a água quente escorrendo pelo corpo, e saberá onde fica a loja de penhores. Vai notar o cheiro de mogo e sabão e sentir uma pontada de pânico ao se dar conta da própria solidão. Será como a maioria dos banhos que já tomou.”

(9)
(10)

Resumo

Engenharia reversa de protocolos de rede é área de pesquisa da segurança de informação. O processo de inferência da estrutura do protocolo, quando executado de forma manual e/ou utilizando a documentação como parâmetro de entrada para programas, tende a ser um processo lento e suscetível a erros. Considerando essa desvantagem, vários autores propuseram otimizações ao processo tendo como objetivo sua automatização. Neste trabalho, são apresentadas diferentes abordagens para o problema. São feitas considerações em relação as vantagens e desvantagens para seleção da abordagem adequada, dados os critérios de generalização e automação. Foram propostos experimentos na intenção de alcançar o objetivo de automatizar esse processo de inferência. Os resultados apresentados consistem na avaliação de duas métricas, sendo elas: (i) taxa de alternância, usada pra identificar campos com comportamento de endereços e (ii) taxa de mutação, usada primariamente para identificar campos com comportamento de checksum. Utilizando outros parâmetros, como tipo de dado por byte, é possível agrupar sequências arbitrárias de bytes de forma que estes remetam à estruturas do protocolo. A partir desses resultados foram criadas representações de máquina de estados capazes de expressar de forma aproximada o formato de mensagem do protocolo.

(11)
(12)

Abstract

Reverse engineering of network protocols is an area of security research. Given the fact that the inferring the structure of a protocol, when done manualy or using the documenatation of the protocol as an input, tend to be time consuming and error prone. Given the disadvantages of the manual executaion of such a process, many authors proposed approachs with the objective of otimization and automation of the process. Some of these approachs will be analyzed, consideradions will be presented under the perspective of advantages and disadvantages of these approachs, one of these will be selected given the perspective of generalization and automation. From that point an implementation of the selected approach is presented which seek to automate the inference of protocol. Based on the results presented which consists in two metrics: mutation rate, used to infer the behaviour of checksums and alternation rate, user to infer the behaviour of adresses; and other paramets like the most recurrent type of possible interpretation of a given byte, with this it’s posssible to group arbtitary streams of bytes in a way that ressemble the structure of the given protocols. From that it’s possible to generate the finite state automata that represente the inferred format of the protocol.

(13)
(14)

Lista de ilustrações

Figura 1 – Representação gráfica do problema proposto. . . 18

Figura 2 – Modelo arquitetural TCP/Ip em quatro camadas. . . 24

Figura 3 – Representação gráfica do autômato finito de 2 estados denominado M1. 26

Figura 4 – Representação gráfica de uma cadeia de Markov de um processo arbritario. 31

Figura 5 – Representação de um modelo escondido de Markov de dois estados para o processo de paridade. . . 32

Figura 6 – Exemplo das diferentes formas de organização de dados em clusters. . . 35

Figura 7 – Matriz para as sequências de caracteres “Sorte” e “Forte” a partir do lgoritmo Needleman-Wunsch. . . 44

Figura 8 – Matriz que apresenta pontuações das sequências de caracteres “Sorte” e “Corte” a partir do algoritmo Smith-Waterman. . . 45

Figura 9 – Modelo arquitetural da implementação proposta. . . 58

Figura 10 – Gráficos que apresentam os resultados das métricas de alternância para os dados agrupados em intervalos 2 bytes (símbolos). . . . 68

Figura 11 – Gráficos que apresentam os resultados das métricas de alternância para os dados agrupados em intervalos 4 bytes (símbolos). . . . 69

Figura 12 – Gráficos que apresentam os resultados das métricas de alternância para os dados agrupados em intervalos 6 bytes (símbolos). . . . 70

Figura 13 – Histograma que apresenta as métricas de taxa de mutação e de alter-nância do protocolo Ehternet . . . 71

Figura 14 – Histograma que apresenta as métricas de taxa de mutação e de alter-nância dos protocolos IPv4 e TCP. . . 73

Figura 15 – Máquina de estados que representa o modelo inferido do protocolo ICMP 77

Figura 16 – Máquina de estados que representa o modelo inferido do protocolo Ethernet . . . 78

Figura 17 – Máquina de estados que representa o modelo inferido do protoclo IPv4 79

Figura 18 – Máquina de estados que representa o modelo inferido do protoclo TCP 80

Figura 19 – Histograma que apresenta as métricas de taxa de mutação e alternância para o protocolos Ethernet com 15 mil pacotes. . . 89

Figura 20 – Histograma que apresenta as métricas de taxa de mutação e alternância para o protocolos IPv4 com 15 mil pacotes. . . 90

Figura 21 – Histograma que apresenta as métricas de taxa de mutação e alternância para o protocolos TCP com 15 mil pacotes. . . 90

(15)
(16)

Lista de tabelas

Tabela 1 – Relação: nome da ferramenta, ano, protocolos avaliados e descrição da

abordagem utilizada. . . 48

Tabela 2 – Resultados dos experimento no Cenário I para o cabeçalho do protocolo ICMP. . . 64

Tabela 3 – Tabela que apresenta o formato original e o formato real do ICMP em relação ao número de byte. . . . 65

Tabela 4 – Resultados dos experimento no Cenário II para o protocolo Ethernet. 66 Tabela 5 – Resultados dos experimento no Cenário II para o protocolo IPv4. . . . 66

Tabela 6 – Resultados dos experimento no Cenário i para o protocolo TCP. . . . . 67

Tabela 7 – Resultado da inferência para o protocolo Ethernet. . . 74

Tabela 8 – Resultado da inferência para o protocolo TCP. . . 74

Tabela 9 – Resultado da inferência para o protocolo IPv4. . . 75

(17)
(18)

Sumário

1 INTRODUÇÃO . . . 17

2 REFERENCIAL TEÓRICO . . . 21

2.1 Tipos da Inferência de Protocolos . . . 21

2.2 Introdução a Redes de Computadores – Protocolos de Rede . . . . 22

2.3 Teoria de Autômatos . . . 25

2.4 Conceitos de Probabilidade . . . 28

2.4.1 Variáveis Aleatórias . . . 29

2.4.2 Processo Estocástico . . . 30

2.4.3 Modelos de Markov . . . 30

2.4.4 Modelos Escondidos de Markov . . . 32

2.4.5 Epsilon-máquinas . . . 33

2.5 Análise de Cluster . . . 33

2.5.1 Diferença Entre Análise de Cluster e Outras Técnicas de Classificação . . . 36

2.5.2 Diferentes Tipos de Clusters . . . 37

2.5.3 Clustering por Médias-k (K-means clustering ) . . . 38

2.5.4 Clustering por Entropia Mínima (Minimum Entropy Clustering ) . . . 39

2.5.5 Método de Agrupamento de Pares sem Peso com Média Aritmética . . . . 40

2.6 Algoritmos de Alinhamento de Sequências . . . 42

2.6.1 Algoritmo Needleman-Wunsch . . . 42

2.6.2 Algoritmo Smith-Waterman . . . 44

3 TRABALHOS RELACIONADOS . . . 47

3.1 Abordagens com enfoque em avaliação dos rastros de rede . . . 49

3.1.1 Análise de Protocolos de Rede utilizando Algoritmos de Bioinformática . . . 49

3.1.2 Ferramenta Automática de Geração de scripts baseado na sintaxe dos protocolos 50 3.1.3 Replicador de Diálogos de Protocolos da Camada Aplicação . . . 51

3.1.4 Ferramenta de Engenharia Reversa Automática de Protocolos Baseada em Cluster e Alinhamento por Tipo . . . 52

3.1.5 Modelos Escondidos de Markov para Aprendizado Automático de Protocolos 53 3.2 Avaliação das abordagens . . . 55

4 METODOLOGIA . . . 57

5 EXPERIMENTOS . . . 59

(19)

5.2 Processamento dos Dados . . . 60

5.2.1 Alinhamento . . . 60

5.2.2 Clustering . . . 60

5.2.3 Alinhamento Múltiplo. . . 61

5.2.4 Consenso de Sequência . . . 61

5.2.5 Heurística de descoberta de campos alternados . . . 62

5.3 Análise dos Dados . . . 63

5.4 Resultados . . . 64 6 CONCLUSÃO . . . 81 6.1 Considerações Finais . . . 81 6.2 Limitações . . . 82 6.3 Trabalhos Futuros . . . 83 REFERÊNCIAS . . . 85

APÊNDICE A – RESULTADO PARA AMOSTRA CONTENDO 15 MIL PACOTES . . . 89

(20)

17

1 Introdução

Sistemas computacionais estão associados a diversas estruturas digitais, que podem ser definidas como elementos que servem a propósitos organizacionais nestes sistemas, tais estruturas podem determinar funções como: comunicação, fluxo de execução, permissão de serviços. Alguns exemplos de estruturas digitais seriam: protocolos de rede, regras de firewall, formatos de arquivos e linguagens de programação.

O entendimento de tais estruturas nos possibilita conhecer a forma como as informações são processadas em um ambiente computacional.

Quanto a forma de funcionamento, estas estruturas podem ser subdivididas em dois grandes grupos: as que funcionam como “caixas brancas” e as que funcionam como “caixas pretas”, o funcionamento do tipo “caixa branca” é aquele onde a forma como as informações são processadas é conhecida pelo observador externo, ou seja, os estados internos dessas estruturas são conhecidos, e dada uma determinada entrada a maneira como esta será processada é explicita, enquanto as estruturas que funcionam como “caixa preta” processam informações sem revelar seus estados internos.

A definição de engenharia reversa adota nesse trabalho é: um método para de-terminar o modelo de uma estrutura que funciona como “caixa preta” assim como os estados internos do sistema no contexto em que este está operando junto a estruturas que funcionam como “caixa preta”.

Existem cenários onde estruturas que funcionam como “caixas pretas” tem um importante papel no funcionamento de sistemas computacionais. No contexto de protocolos de rede isso pode se referir tanto a um protocolo de rede cuja documentação não é aberta, quando no caso de códigos do tipo “malware”, que são códigos cujo objetivo é causar algum mal funcionamento ao sistema alvo.

Tais cenários justificam a utilização prática de ferramentas de engenharia reversa automática de protocolos de rede; dada a necessidade tanto de entender um determinado protocolo para que este possa ser integrado a ferramentas já existentes, quanto para identificar a estrutura de um “malware”. O que possibilita a tomadas medidas com o objetivo de filtrar tais pacotes dentro da rede.

Sendo assim, o problema nesse cenário seria o de que não existe conhecimento prévio, que seja confiável, sobre o protocolo em questão. Nesse canário as abordagens serão avaliadas quanto a sua capacidade de generalização e automação.

Dado que o objetivo principal seria a engenharia reversa de protocolos, com dados obtidos por uma máquina que está passivamente monitorando o tráfego da rede e que

(21)

18 Capítulo 1. Introdução

não tem conhecimento do protocolo, a baixa necessidade de conhecimento a priori e independência de protocolo serão os principais pontos nesta análise.

Um exemplo que caracteriza o problema pode ser colocado da seguinte forma: dado que as máquinas A e B estão se comunicando através da rede, seria uma máquina C capaz de construir um modelo do protocolo usado por A e B baseado apenas nas mensagens trocadas entre elas, assim como ilustrado na Figura 1. Onde as máquinas A e B estão se comunicando através da rede, enquanto uma terceira máquina C, também na rede, intercepta os pacotes utilizados na comunicação com o objetivo de determinar a partir destes qual a estrutura da linguagem utilizada por A e B.

Figura 1 – Representação gráfica do problema proposto, envolvendo as máquinas A e B na rede juntamente com a máquina C, que desconhece o protocolo e está capturando os pacotes trafegados.

Fonte: Produzido pelo autor (2016)

Portanto, apresentar um método que possibilite com que uma determinada máquina gere conhecimento sobre um protocolo, até então desconhecido por ela, baseado apenas nas informações que trafegam na rede, seria a premissa do trabalho. Dado o contexto da aplicação e a limitação proposta, a pesquisa foi pautada pela geração de conhecimento sobre o protocolo dado o mínimo de informação sobre o mesmo. Tais modelos tem como uma de suas principais vantagens a capacidade de adequação aos mais diversos cenários. Como apresentado por (BEDDOE, 2004), a engenharia reversa de protocolo de rede era um processo feito de forma manual utilizando intuição e o auxílio de algumas ferramentas como o tcpdump, que captura o tráfego da rede e possui funcionalidades tanto de exibir estes em ascii, padrão de codificação de caracters na comunicação digital, quanto de escrevê-los em um arquivo de formato específico para ser lido a posteriori.

Esse estudo foi motivado primariamente pela problemática de fazer a engenharia reversa de protocolos a partir dos rastros de rede de forma automática, dado que a

(22)

19

inferência desse processo, quando executada de forma manual, é extremamente tortuosa e sujeita a erros e que a inferência automática, dos modelos do protocolo em suas diversas representações, trazem outras possibilidades de aplicações de segurança como:

1. Mimetismo de protocolo - que é a geração, a partir do modelo inferido de pacotes válidos da rede, de pacotes aceitos por outros dispositivos na rede;

2. Teste Fuzzy de programas por meio da geração aleatória de pacotes do protocolo a fim de descobrir erros a partir de passagem inválida de parâmetros;

3. Detecção Anômala - que é a detecção de anomalias em parâmetros de um protocolo a partir da verificação desses pacotes utilizando como base o modelo inferido; 4. Geração de Tráfego - é a geração de tráfego válido para aplicações de teste, um uso

prático seria no teste de carga de uma rede.

Considerando o problema de geração de conhecimento sobre um protocolo de comunicação, com o mínimo possível de conhecimento a priori sobre este, de forma automática; Tem-se como objetivo geral desse trabalho inferir o modelo de um protocolo a partir de pacotes trafegados na rede. Para alcançar esse objetivo se fazem necessários alguns passos, denominados objetivos específicos, são eles:

1. Avaliar as abordagens quanto à sua adequação em relação à proposta do trabalho; 2. Implementar uma das abordagens que cumpre tal objetivo, assim como mencionado

em 1;

3. Validar a abordagem a partir das amostras dos pacotes capturados.

No Capítulo 2serão apresentados conceitos para fundamentar os experimentos e análises feitos nesse trabalho, nesse sentido, a sequência foi adota seguinte: inicialmente, serão apresentados algumas definições de redes de computadores necessários ao entendi-mento do fenômeno estudado, em seguida será apresentado o conceito de máquinas de estado, conceito necessários à compreensão das propostas, tanto avaliadas no capítulo trabalhos relacionados quanto no experimento proposto e de posteriores definições mate-máticas apresentadas, em seguida será feita uma introdução aos conceitos matemáticos de: probabilidade, variáveis aleatórias, cadeias de Markov, modelos escondidos de Markov, -máquinas (que são um caso específico de modelo escondido de Markov).

Dados tais conceitos matemáticos, será dado um panorama acerca da técnica denominada análise de cluster e serão apresentadas técnicas como: (i) clustering por médias K; (ii) clustering por entropia mínima e (iii)E Método de Agrupamento de Pares sem Peso com Média Aritmética.

Em seguida serão apresentadas técnicas de alinhamento de sequência sendo eles os algoritmos, (i) Needleman-Wunsh e (ii) Smith-Waterman.

No Capítulo 3serão sumarizadas algumas das principais propostas de resolução do problema aqui apresentado em forma de uma tabela contendo os principais pontos de cada

(23)

20 Capítulo 1. Introdução

solução. Além disso, serão apresentadas de forma mais aprofundada algumas das propostas feitas anteriormente, em ordem cronológica, com exceção daquelas que utilizam técnicas de avaliação de traços de execução, as propostas que serão aprofundadas tratam-se daquelas que possuem maior relação com o experimento proposto.

No Capítulo 4 serão abordados os tipos de pesquisa nos quais este trabalho se encaixa, assim como o modelo arquitetural da solução do problema e as fontes utilizadas na pesquisa bibliográficas.

No Capítulo5 trará os conteúdos relacionados aos experimentos, desde a caracteri-zação das amostras, passando pelos processamentos aos quais os dados foram submetidos e definições das métricas observadas até que por fim, sejam apresentados os resultados obtidos pela inferência nos dois cenários dos experimentos.

No Capítulo 6 será feito um apanhado dos objetivos e uma relação entre tais objetivos e os resultados obtidos, serão feitas considerações sobre a abordagem adota para a solução do problema e por fim serão propostos próximos passos para a pesquisa.

(24)

21

2 Referencial Teórico

Nesse capítulo serão apresentados alguns princípios fundamentais de redes de computadores, no objetivo de definir de forma geral o fenômeno estudado na análise dos experimentos; assim como teoria de autômatos para promover um melhor entendimento das representações apresentadas do modelo do protocolo; serão abordados alguns conceitos de probabilidade relacionados direta ou indiretamente com a representação dos modelos do resultado; serão apresentadas técnicas de análise de cluster – que são técnicas aprendizado não supervisionado aplicadas nos experimentos na fase de preprocessamento; Por fim, serão apresentados algoritmos de alinhamento de sequências também aplicados nos experimentos aqui apresentados.

2.1

Tipos da Inferência de Protocolos

Atualmente, as abordagens de inferência de protocolo de rede podem ser subdividi-das entre as que observam os pacotes utilizados na comunicação entre máquinas de uma determinada rede e aquelas que para além disso verificam como determinada implementa-ção desse protocolo processa tais pacotes (WHALEN; BISHOP; CRUTCHFIELD, 2010). Dentre os dois grupos previamente definidos as abordagens que verificam o processamento dos pacotes serão descartadas baseado no pressuposto que a máquina C passivo, isto é um observador que possui acesso apenas ao tráfego da rede, formas mais intrusivas de inferência não se enquadram no objetivo do trabalho.

Dessa forma, será dado enfoque nas abordagens que passivamente observam o tráfego na rede, dentre estas, outra divisão pode ser feita, dessa vez em relação ao objetivo da inferência, que buscam como resultado:

1. O Formato da mensagem do protocolo, que descreve a estrutura da mensagens que compõe o protocolo, e

2. A Máquina de estados do protocolo, que especifica em formato de estados e transições a linguagem do protocolo.

Com base nessas definições, é possível observar que as abordagens apresentadas por (LEITA; MERMOUD; DACIER, 2005) e (WHALEN; BISHOP; CRUTCHFIELD,2010) tem por objetivo inferir a máquina de estados enquanto as abordagens apresentadas em (BEDDOE,2004), (CUI et al., 2006) e (CUI; KANNAN; WANG, 2007), tem por objetivo inferir total ou parcialmente o formato do protocolo. Também é preciso ressaltar que, para inferir a máquina de estados do protocolo a inferência do formato da mensagem é um pré-requisito.

(25)

22 Capítulo 2. Referencial Teórico

2.2

Introdução a Redes de Computadores – Protocolos de Rede

Alguns dos princípios fundamentais das rede de computadores segundo (KUROSE; ROSS, 2010) seriam: protocolos em camadas e modelos de serviços.

Considerando os diversos dispositivos que podem ser conectados a rede como siste-mas finais, estes seriam todo e qualquer dispositivo dotado de poder computacional que tenha acesso a internet, onde podemos incluir desde os dispositivos mais convencional-mente asossiados a internet com computadores pessoais e servidores até dispositivos em desenvolvimento na área de internet das coisas, como a “garrafa de vinho inteligente”, passando pelos dispositivos já inseridos no cotidiano das pessoas como os celulares e tablets, tais sistemas são conectados entre sí por links de comunicação e comutadores de pacotes. A comunicação entre sistemas finais se dá através do envio de dados por meio de pacotes de informação. Os dados que precisam se enviados são segmentados e adicionados de informações dos variados tipos, como endereço do emissor, endereços do destino, tamanho do pacote entre outros; Estes dados adicionais podem ser chamados de metadados, pois referem-se a informações dos próprios dados. Tais pacotes são enviados através da rede ao sistema final que é o endereço de destino dos dados.

Nesse ponto o papel dos comutadores de pacotes é de encaminhar os pacotes que chegam em sua entrada, por meio dos links de comunicação, para a saída que é o destino da mensagem.

Já dentro dessa lógica é possível identificar um dos elementos comuns aos protocolos de rede, que seria o endereço, dado que mensagens precisam ter pelo menos o endereço de destino, e usualmente possuem dois endereços, sendo um do emissor e outro do destino da mensagem. Havendo uma comunicação (uma troca de mensagens) entre o emissor e o destino, os endereços serão os bytes que apresentarem um comportamento de alternância, ou seja, ora um grupo de bytes aparece na posição de emissor ora na posição receptor.

Dentre os metadados, outra estrutura bastante comum dentro de protocolos de rede é o campo do cheksum, o checksum é um campo curto, normalmente expresso em 2 Bytes consecutivos cujo propósito é a detecção de erros que podem ter acontecido durante o envio ou processamento dos pacotes; checksums são portanto calculados com base em parâmetros do pacote no qual estão inseridos, as funções que calculam o valor checksum são denominadas Funções de checksum, boas funções desse tipo idealmente produzem valores distintos e significativamente distantes mesmo que a mudança na entrada seja mínima.

Quando as camadas o modelo arquitetural aqui adotado será o modelo TCP/Ip em quatro camadas assim como em (TECHNOLOGIES,2005), também é necessário apontar que não existe consenso quanto ao número de camadas que compõe o modelo TCP/Ip, dentre as diversas interpretações como número camadas podendo variar entre 3 e 5.

(26)

2.2. Introdução a Redes de Computadores – Protocolos de Rede 23

Esse modelo tem a construção do pacote progressiva quando os dados são passados para as camadas abaixo, quando os dados são enviados cada camada trata todas as informações que recebe do nível acima como dados, concatena seu próprio cabeçalho; esse processo funciona no sistema final destino da mensagem de forma inversa, onde cada camada retira seu cabeçalho até que a na camada de aplicação restem apenas os dados. É possível observar na Figura 2a montagem de um pacote desde a camada de aplicação, até a camada aceso à rede.

(27)

24 Capítulo 2. Referencial Teórico

Figura 2 – Modelo arquitetural TCP/Ip em quatro camadas. Formação do pacote desde os dados a serem enviados, normalmente por protocolos na camda de aplicação, até o produção do pacote em sua forma final a ser enviado para a máquina destino.

Fonte: Adaptado de Kurose 2010

As camadas nesse modelo podem ser descritas da seguinte forma:

(28)

2.3. Teoria de Autômatos 25

dos processos do usuário e transferência de dados. Provê serviços como: transferência de arquivos e tarefas além terminais virtuais. A maior parte dos protocolos aplicação estão associados a um ou mais números de porta ao qual precisam fazer uso para prover determinado serviço.

Camada de Transporte – Tem como principal função gerenciar a entrega de mensa-gens entre os sitemas fim em uma rede, provê, entre outros serviços, controlar o estabeleci-mento e termino de conexões lógicas entre usuários. No modelo TCP/Ip tem-se na camada de transporte existem dois possíveis protocolos, o próprio TCP (Transmission Control Protocol) que garante a transmissão da informação. E o UDP (User Datagram Protocol), que não fornece mecanismos de verificação ponto-a-ponto da mensagem. Enquanto o TCP é útil em operações de transferência de dados que não podem ser interrompidas, ditas atômicas, e.g: aplicações de email, transferência de dados para outras máquinas. O UDP é útil nos envio que não tem tal requisito, e.g: streaming de vídeo em chamadas de videoconferência, onde o importante é a continuidade das mensagens e sua latência e não a garantia de que todas as mensagens foram entregues.

Camada de Rede – Tem como principal função determinar como os dados são transferidos entre sistemas fim; Roteia pacotes de acordo endereços de rede dos sistemas; Provê fluxo e controle de tráfego para evitar escassez dos recursos da rede. O protocolo IP (Internet Protocol é o principal protocolo utilizado no modelo TCP/Ip na camada de rede.

Além do IP existem outros protocolos suplementares nessa camada, como o ICMP, estes podem ter diversas funções, normalmente ligadas a facilitação do processo de roteamento. Camada de Acesso à Rede – Tem como principal função definir os procedimentos para realização da comunicação entre os pontos da rede; Define os meios físicos de envio de dados entre os dispositivos da rede; Provê o serviço de detectar e corrigir erro na transmissão de pacotes.

2.3

Teoria de Autômatos

A Teoria de autômatos pode ser descrita em linhas gerais como o estudo de máquinas abstratas e autômatos, assim como dos problemas podem ser resolvidos por eles. Autômatos podem ser descritos como, modelos abstratos de máquinas que processam uma entrada movendo entre uma série de estados ou configurações. Em cada um desses estados uma função de transição determina a próxima configuração que a máquina irá assumir baseado no estado presente e o símbolo da entrada que está sento processado naquele momento. O tipo de entrada que o autômato pode receber é restrito de acordo com uma série de símbolos aceitos, chamado de alfabeto.

Assim como proposto em (SIPSER,2006) antes de descrever a terotia matemática daquilo que vamos chamar de autômatos finitos, uma noção gráfica representada pela

(29)

26 Capítulo 2. Referencial Teórico

Figura 3 será o ponto de partida.

A representação apresentada na Figura3é o diagrama de estados do autômato M1.

Este diagrama possui 2 estados, nomeados q1 e q2. Um estado inicial q1, que é indicado

por uma seta vinda do nada. O estado final, q2, é indicado pelo círculo duplos. As setas

indo de um estada pra outro ou de um estado para ele mesmo são chamados transições. Figura 3 – Representação gráfica do autômato finito de 2 estados denominado M1.

q1 q2

1 0

0

1

Fonte: Adaptado de Sipser (2006)

Ao receber uma sequência de símbolos do tipo 1101, esse autômato a processa e produz uma saída do tipo, aceito ou rejeito. O processamento de uma entrada qualquer em M1 acontece da seguinte forma: (i) começando no estado inicial de M1; (ii) o autômato

recebe um símbolo da sequência de entrada um por um da esquerda para a direita; (iii) depois que cada símbolo é lido, M1 se move de estado para estado de acordo com a

transição que possui o determinado símbolo como rótulo; (iv) ao ler o último símbolo, M1,

produz uma saída, saída essa que pode ser de aceito somente se M1 estiver no estado final

e de rejeito em qualquer configuração diferente dessa.

Para exemplificar o processamento em M1, suponha uma sequêcia do tipo 1001

como entrada, o processamento seguiria: 1. Começa no estado q1.

2. Lê o símbolo 1, segue a transição de q1 para q2.

3. Lê o simbolo 0, segue a transição de q2 para q1

4. Lê o símbolo 0, segue a transição de q1 para q1

5. Lê o símbolo 1, segue a transição de q1 para q2

6. Saída de aceito pois, ao fim do processamento, M1 está num estado final.

Ao testar variadas sequências de símbolos é possível observar que M1 aceita as

sequências: 0, 01, 11, 0001. De fato, M1 aceita qualquer sequência de composta por 0 e 1

que termine em 1, dado que todas as transições que possuem o número 1 no rótulo levam ao estado final q2 e as transições cujo rótulo é o número 0 levam de volta ao estado inicial

q1. Dessa forma todas as sequências que terminam em 0 serão erjeitadas pela máquina.

Dada a representação gráfica através do diagrama de estados um autômato finito pode ser formalmente definido da seguinte forma: estes são compostos por diversas partes;

(30)

2.3. Teoria de Autômatos 27

(i) possuem um conjunto de estados e (ii) regras para transitar entre esses estados, a depender de qual símbolo foi passado como entrada; (iii) possuem um alfabeto de entrada que determina quais símbolos são permitidos na entrada da máquina; (iv) possuem um estado inicial e (v) um conjunto de estados finais. Portanto, a definição formal seria de que um autômato finito é um lista desses 5 objetos: um conjunto de estados, um alfabeto de entrada, regras de transição, um estado inicial e um conjunto de estados finais.

Nesta definição será usada uma determinada função de transição, que usualmente é representada por δ, para definir as regras de movimentação entre os estados. Se o autômato finito possui uma seta de um determinado estado z para um estado w com um rótulo contendo o símbolo 0, isso significa que, caso o automato esteja no estado z e o símbolo lido for 0 ele deve se mover para o estado w. Tal situação pode ser denotada na forma: δ(z, 0) −→ w.

Dados esses conceitos, eis a definição formal matemática de autômatos finitos. Um autômato finito é uma tupla composta por 5 elementos (Q, Σ, δ, q0, F ), onde:

1. Q é um conjunto finito chamado de estados, 2. Σ é um conjunto finito chamado de alfabeto, 3. δ : Q × Σ −→ Q, é a função de transição, 4. q0 ∈ Q é o estado inicial, e

5. F ⊆ Q é o conjunto de estados finais.

Dada a definição formal matemática de autômato, podemos agora definir o autômato finito M1, de forma que M1 = (Q, Σ, δ, q1, F ), onde:

1. Q = {q1, q2}, 2. Σ = {0, 1}, 3. δ é descrito como: 0 1 q1 q1 q2 q2 q1 q2 4. q1 é o estado inicial, e 5. F = {q2}.

Considerando A como o conjunto de todas as sequências de símbolos que a máquina M aceita, diz-se que A é a linguagem da máquina M, descrita como L(M ) = A. É dito que M reconhece A.

Uma máquina pode aceitar diversas sequências de símbolo, mas sempre reconhece apenas uma linguagem. Se a máquina não aceita nenhuma sequência de símbolo, ela ainda reconhece uma linguagem, nesse caso, a linguagem vazia ∅

(31)

28 Capítulo 2. Referencial Teórico

A = {w|w contém 1 ao final}

Dessa forma L(M1) = A, ou seja, M1 reconhece a linguagem A.

2.4

Conceitos de Probabilidade

É sabido que certos fenômenos possuem determinadas propriedades que se aproxi-mam de um valor médio constante dado que o número de observações desse determinado fenômeno cresça, e que este valor permanece o mesmo em observações futuras. Estabeleci-dos esses pressupostos, é possível afirmar que a teoria de probabilidade tem o propósito de descrever e predizer tais médias em termos de probabilidade de eventos. A probabilidade de um determinado evento A seria aproximadamente P (A):

P (A) ≈ nA

n , (2.1)

dado que o número n de observações suficientemente grande.

Esta é, porém, uma interpretação imprecisa pois os termos “aproximadamente” e “suficientemente grande” não possuem um significado exato, contudo este nível de imprecisão nos dá uma definição em termos gerais suficiente para o entendimento do significado de probabilidade.

Segundo (PAPOULIS; PILLAI, 2002) ao aplicar a teoria de probabilidade a fenô-menos reais deve-se observar e distinguir os seguintes passos:

Passo 1 (físico) - Determina-se por um processo inexato a probabilidade P (Ai) de

um determinado evendo Ai.

Esse processo pode ser baseado na relação apresentada na Equação 2.1 entre a probilidade e a observação: a amostra P (Ai) é igual a taxa de observação nA/n. Esta

também pode ser feita através de “intuição” fazendo uso de certas simetrias: se, de um total de n possíveis resultados, existem nAresultados favoráveis ao evendo A, logo P (A) = nA/n.

Passo 2 (conceitual) - Assume-se que a probabilidade satisfaz certos axiomas, e por dedução determina-se a probabilidade P (Ai) de certo evento Ai a probabilidade P (Bj) de

outros eventos Bj.

Passo 3 (físico) - Faz-se uma predição física baseado no número P (Bj) obtido. Este

passo pode se valer da Equação2.1 aplicada de forma reversa: se fizermos um experimento n vezes e um evento B ocorre nB vezes, logo nB ≈ nP (B).

Se, por exemplo, um dado juto for rolado 1000 vezes, a predição seria de que números pares vão representar 500 ocorrências para esse caso.

(32)

2.4. Conceitos de Probabilidade 29

Ao lidar com teoria de probabilidade é preciso ter atenção na separação entre os dados que são determinados de maneira empírica e os resultados que são deduzidos de maneira lógica.

2.4.1

Variáveis Aleatórias

Uma variável aleatória é um número X(ζ) que está asscoiada a todo resultado ζ de um determinado experimento. Esse número pode representar uma configuração específica de eventos quaisquer aos quais se esteja interessado mensurar, exemplo: a chance da soma dos resultados de dois dados ser 7, o custo de um determinado componente, a tendência de uma determinada ação na bolsa de valores.

Numa definição um pouco mais rigorosa, uma variável aleatória é uma função cujo domínio é o conjunto S de todos os resultados do experimento.

Nesse sentido uma função pode ser f (x) qualquer pode ser definida como: Uma regra de correspondência entre os valores de x e f . Onde os valores da variável independente x do conjunto Sx são alocadas em um eixo x chamado de domínio da função enquanto os

valores da variável dependente f do pertencente ao conjunto Sf alocados em um eixo f

chamado de contradomínio da função. A regra que determina a correspondência entre x e f pode ser das mais diversas, assumindo a forma de uma reta, de uma curva ou de uma fórmula a exemplo, f (x) =x3− 2.

De forma mais geral uma função pode ser definida como: dado dois conjunto de números Sx e Sf. Para cada t ∈ St associa-se um número f (x) pertencente ao conjunto Sf.

Assim o conjunto Sx é o domínio da função e Sf o contradomínio.

Dada essa definição de função podemos apresentar um exemplo de variável aleatória como: dado o lançamento de 3 dados justos, considera-se que valores pares são atribuídos um número positivo +1 e ímpares valores negativos −1, assim:

X(f1) = X(f3) = X(f5) = −1

X(f2) = X(f4) = X(f6) = +1

.

Assim sendo, dado um determinado experimento cujo espaço amostral é S , um subconjunto deste chamado de eventos e uma probabilidade associada a tais eventos. Para cada resultado ζ desse experimento, associa-se um número X(ζ). Dessa forma cria-se uma função X cujo domínio é o conjunto S e o contradomínio um intervalo numérico. Tal função será chamada de variável aleatória dado que esta segue determinadas regras, tais como:

(33)

30 Capítulo 2. Referencial Teórico

2. A probabilidade dos eventos X = +∞ e X = −∞ são iguais a zero.

2.4.2

Processo Estocástico

Dado o conceito de variável aleatória como: X sendo uma regra de acossiação para cada resultado ζ de um determinado experimento S com um número X(ζ). Um processo estocástico X(t) seria uma regra associativa de todo ζ a uma função X(t, ζ). Assim um processo estocástico seria uma família de funções temporais dependentes de um parâmetro ζ ou, de forma equivalente, uma função em t e ζ. Onde o domínio de ζ é o conjunto de todos os resultados experimentais e o domínio de t é o conjunto R dos números reais.

Caso R seja um intervalo de números reais então X(t será uma série temporal contínua. E se R for um conjunto de número inteiros, então X(t) é uma série temporal discreta.

Usualmente ao se referir a um processo estocástico usa-se a notação X(t), ou seja apresenta-se a variável aleatória em função do tempo, omitindo-se o ζ. Dado isso as seguintes interpretações são cabíveis acerca de X(t):

1. X(t) é um conjunto de funções do tipo X(t, ζ). Nesta interpretação, t e ζ são variáveis.

2. X(t) é um única função ou a amostra de determinado processo. Nesse caso, t é uma variável e ζ é fixo.

3. X(t) é uma variável aleatória igual ao estado de um dado processo no instante t. 4. X(t) é um número, no caso onde t e ζ são fixos.

De foma simplificada um processo estocástico discreto é uma sequência ...X1, X2, X3...

de variáveis aleatórias Xn indexadas pelo tempo do tipo: ...t1, t2, t3... Considerando-se o

conjunto de series temporais geradas por um determinado processo tem-se o que se pode chamar de linguagem estocástica onde cada uma destas series ocorre com uma determinado probabilidade.

No contexto dos protocolos de rede o conjunto de caracteres que formam um pacote pode ser interpretado como um série temporal, assim sendo o protocolo de rede em si pode ser tratado como um processo estocástico, transmitindo pacotes na linguagem do protocolo com determinada probabilidade

2.4.3

Modelos de Markov

Dado o conceito de processo estocástico, tem-se que uma cadeia de Markov seria uma forma de representação deste que parte da premisa de que a probabilidade condicional de um estado futuro Xn+1 depende apenas do estado presente Xn assim como apresentado

(34)

2.4. Conceitos de Probabilidade 31

em (NORRIS, 1998) temos que:

P (Xn+1 = x|Xn= xn, . . . , X1 = x1) = P (Xn+1= x|Xn= xn), (2.2)

dado que X1. . . Xn é uma sequência de variáveis aleatórias que representam os estados do

processo ao longo do tempo.

Um processo estocástico qualquer que satisfaça a Equação2.2é chamado de processo de Markov. Assim como exposto por (NORRIS,1998).

Em um processo dito de Markov as transições entre estados são aleatórias, e ocorrem com uma probabilidade representada por meio de uma matriz de transições normalizada T do tipo |X| × |X|. Onde |X| é o número de estados. Dessa forma a probabilidade de haver uma transição do estado i para o estado j é caracterizada por Tij. Como exemplo,

um cadeia de Markov com três estados X = A, B, C tem uma matriz de transição do tipo:

     α 1 − α 0 0 β 1 − β 1 − δ 0 δ      ,

onde α, β, δ ∈ [0, 1] são parâmetros. Essa matriz de transição corresponde graficamente a máquina de estados da Figura 4.

Figura 4 – Representação gráfica de uma cadeia de Markov de um processo arbritario.

A B C 1 − α α 1 − β β 1 − δ δ

Fonte: Adaptado de Norris (1998).

Dadas suas limitações, cadeias de Markov representam apenas um determinado subgrupo de processos estocásticos. Um exemplo típico dessa limitação é o processo de paridade que gera números binários com um número consecutivo de “1” delimitados por “0” onde a quantidade de “1” é sempre par, dessa forma os binários: 0110 e 011110 fariam parte dessa linguagem; mas o binário: 010 não. Tal processo não possui nenhum modelo de

(35)

32 Capítulo 2. Referencial Teórico

Markov de ordem finita que o equivalha como provado em (CRUTCHFIELD; FELDMAN,

2003).

2.4.4

Modelos Escondidos de Markov

Um modelo escondido de Markov é o um tipo de cadeia de Markov onde os estados, denotados como S, não são observadas diretamente mas sim de forma indireta através dos símbolos de mensuração Xn. Onde cada símbolo observado é gerado a partir de uma

transição entre os “estados escondidos” e estes seguem uma determinada distribuição de probabilidade.

Dado que múltiplas transições podem gerar o mesmo símbolo observado, as transi-ções internas e os estados do sistema em questão tipicamente não são revelados diretamente através de observação. Apesar disso assim como exposto em (RABINER, 1989) diversas métricas interessantes podem ser calculadas dada um modelo escondido de Markov.

Entre estas métricas estariam a probabilidade de se observar determinada sequência de caracteres, ou mesmo dada uma sequência de caracteres qual seria o estado escondido com maior probabilidade de gerar esta e finalmente qual transição de estados e probabilidade de missão de símbolo maximiza a probabilidade se gerar uma determinada sequência de caracteres.

Dado que na seção anterior foram introduzidos tanto o processo de partida quanto a limitação das cadeiras de Markov, temos na Figura 5um modelo escondido de Markov que representa tal processo, nesta figura usa-se a virgula como separador decimal.

É perceptível a diferença quanto à capacidade de representação dos modelos, dado que as informações semânticas passam a ser independentes dos estados internos da máquina, desta forma os modelos escondidos de Markov podem representar uma classe mais abrangente de processos estocásticos que as cadeias de Markov.

Figura 5 – Representação de um modelo escondido de Markov de dois estados para o processo de paridade.

A B

1|0, 5 0|0, 5

1|1, 0

(36)

2.5. Análise de Cluster 33

2.4.5

Epsilon-máquinas

É importante salientar que, a Figura 5não é um exemplo de modelo escondido de Markov qualquer, dado a representação do processo de paridade, nesta apresenta-se um modelo como número mínimo de estados. Para além disso, esta é uma representação de uma máquina de estados determinística, dado que os símbolos mensuráveis ocorrem no máximo com uma transição que faz a mudança entre estados. Tais propriedades garantem que mesmo que não haja uma relação de um para um entre os estados internos e os símbolos mensuráveis, existe uma relação de um para um entre “palavras” suficientemente longas e caminhos entre os estados internos da máquina. Dessa forma a informação dos estados internos está presente no processo observado.

Um modelo escondido de Markov com estas propriedades é chamado de -máquina. Uma máquina deste tipo é o preditor ótimo, mínimo de um processo estocástico assim como definido em (CRUTCHFIELD; YOUNG, 1989).

Uma definição mais formal pode ser dada da seguinte forma: uma -máquina consiste em uma série de estados causai S, um alfabeto de mensuração A, e um conjunto de matrizes de transição T(s) : S ∈ A. Existem diversos algoritmos de reconstrução que

podem ser usados para inferência de uma -máquina a partir de series temporais, e estas tem uma alta dependência quanto ao método de reconstrução utilizado. A principal diferença entre os altorítmos de reconstrução se dá pelo fato destes fazerem certos pressupostos em relação ao processo objeto da análise. Dessa forma a escolha do algorítmo de reconstrução é afetada diretamente pela natureza do processo.

O principal motivo para a escolha do uso dessa subclasse específica de modelo escondido de Markov é que, ao contrário dos métodos utilizados para se estimar modelos escondidos de Markov tradicionais, onde o número de estados e transições dever suposto a priori; os algoritmos de reconstrução de -máquinas inferem a arquitetura do modelo de Markov mínimo determinístico diretamente dos dados das series temporais. Esta é a diferença crítica caso o problema em questão necessite ingerir a estrutura intrínseca ao processo ao invés de supor esta antes da análise. E esta seria um vantagem determinante quando se está lidando com engenharia reversa de protocolos, dado que supõe-se que a informação a priori não está disponível.

2.5

Análise de Cluster

Assim como apresentado em (TAN et al.,2006) análise de cluster pode ser definida como uma técnica que divide os dados em grupos (clusters) que podem ser significativos, úteis ou as ambas as coisas. Em certos casos a análise de clusters é apenas ponto de partida para outros propósitos, uma forma de organização ou formatação dos dados para que estes sejam processados através de outras técnicas de análise.

(37)

34 Capítulo 2. Referencial Teórico

A utilização do clustering como forma de entendimento dos dados é concebida por meio de técnicas para a classificação automática dos dados, dessa formando clusters porovados por objetos que compartilham características semelhantes.

Alguns exemplos da análise de cluster utilizada para esse fim podem ser citadas: • Na biologia. Por muito tempo desenvolveu-se um complexo sistema hierárquico de

classificação a fim de agrupar organismos vivos, na biologia esse estudo é chamado de taxinomia. Muitos dos trabalhos recentes em análise de cluster buscou criar formas matemáticas que pudessem agrupar esses organismos de forma automática.

• Em climatologia. Análise de cluster tem sido aplicada para identificar padrões de pressão atmosférica dos polos e regiões oceânicas a fim de prever o clima, dado que essas regiões possuem uma forte influência no comportamento climático a nível global.

• Medicina e psicologia. Condições médicas normalmente possuem diversas variações e a análise de cluster pode ser utilizada para identificar estas diferentes subcategorias. Nesse sentido um exemplo de aplicação é o uso de clustering com o objetivo de identificar os diversos tipos de depressão.

Já a utilização de análise de análise de cluster como forma de organização dos dados se dá pois a análise de cluster provê uma abstração dos objetos que compõe o cluster para um nível mais abranjente de generalização, o nível de categoriação dos clusters em sí.

Normalmente o produto da análise de cluster é utilizada como parâmetro de entrada para outras técnicas de análise ou processamento de dados

Alguns exemplos de aplicação da análise de cluster nesse viés seriam:

• Sumarização (summarization). Diversas ténicas de análise de dados, tais como regressão, tem complexidade em memória da ordem de O(m2) ou maiores (onde m

seria o número de objetos) pode-se considerar portanto que tais técnicas não são aplicáveis a amostras de larga escala. Uma possível solução seria: aplicar o algoritmo em uma amostra reduzida consistindo apenas de clusters. Tal solução alternativa dadas as circunstancias de que os cluster representam os dados de maneira adequada os dados e o tipo da análise seja compatível com essa técnica de redução compressão dos dados. A análise pode obter dados comparáveis àqueles que utilizam como parâmetro a amostra como um todo.

• Encontrar o vizinho mais próximo. O encontro do vizinho mais próximo, em um grafo por exemplo, exije que seja computada a distância de um ponto entre todos os outros par a par. De forema geral clusters podem ser encontrados de forma muito mais eficiente. Considerando que objetos em um mesmo cluster estão relativamente mais próximos, baseado nisso é possível reduzir o número de distâncias que precisam ser computadas para achar o vizinho mais próximo de um objeto. De forma intuitiva,

(38)

2.5. Análise de Cluster 35

se dois clusters estão muito distantes um do outro os objetos que compõem esses clusters provavelmente não serão vizinhos mais próximos. Consequentemente para se encontrar o vizinho mais próximo é necessário apenas computar a distãncias dos objetos em clusters adjacentes.

A análise de cluster pode ser definida como uma técnica que agrupa objetos baseando-se apenas nas informações encontradas nos próprios objetos a serem agrupados e suas relações. Dessa forma a ideia geral por trás da técnica é que objetos dentro de um mesmo grupo sejam similares entre si ou tenham algum tipo de relação ao mesmo tempo que sejam diferentes ou não relacionados com objetos de grupos diferentes.

Figura 6 – Exemplo das diferentes formas de organização de dados em clusters, os diferentes clusters são representados através das diferenças entre os símbolos.

(a) Apresentação de três clusters. Pontos representados pela mesma forma geométrica são dados agrupados em um mesmo cluster

(b) Apresentação de oito clusters. Pontos representados pela mesma forma geométrica e cor de preenchimento são dados agrupados em um mesmo cluster

(c) Apresentação de nove clusters. Pontos representados pela mesma forma geométrica e cor de preenchimento são dados agrupados em um mesmo cluster

(39)

36 Capítulo 2. Referencial Teórico

Na Figura 6 é possível observar que dados os 28 pontos, temos na Figura 6a o primeiro cluster do topo a esquerda com 9 pontos, o segundo com 9 e o terceiro com 10; enquanto na Figura 6b temos na ordem: 6 cluters com 3 pontos e 2 com 5 pontos e na Figura 6c7 clusters com 3 pontos, 1 com 2 pontos e um com 5 pontos.

Na literatura é possível encontrar diversas considerações a respeito da dificuldade de se definir uma noção universal de cluster, tais discussões podem ser verificadas em mais detalhes nos trabalhos (TAN et al., 2006), (EVERITT et al., 2011) e (LI; ZHANG; JIANG, 2004), em dado momento cada um destes apresenta a discussão em relação a dificuldade de se encontrar uma definição generalista o suficiente que contemple todos os tipos de algoritmos utilizados em análise de cluster. Um exemplo clássico desse problema é muito bem ilustrado na Figura6, onde os 28 pontos são organizados inicialmente em 3 clusters na Figura 6a, enquanto em 6b os dados estão divididos em 7 e na Figura 6c é apresentada uma forma razoável de subdivisão dos dados em 9 clusters. Por outro lado a subdivisão na Figura 6bpode ser simplesmente uma característica do tipo de análise realizada, nesse caso visual. Na Figura 6pode-se observar intuitivamente quão imprecisa pode ser definição do que é cluster e como esta definição é dependente tanto da natureza dos dados quanto do resultados desejados pela análise.

2.5.1

Diferença Entre Análise de Cluster e Outras Técnicas de Classificação

De forma geral é possível diferenciar análise de cluster de outros métodos de classi-ficação dado que estes normalmente necessitam de uma amostra previamente catalogada e corretamente classificada dos objetos que se deseja agrupar, onde a partir dessa amostra já classificada derivam-se relações e a partir desse, treinamento, o algoritmo seria então capaz de classificar novos dados segundo as relações inferidas dentro da amostra utilizada como forma de treinamento, tais métodos de classificação seriam considerados técnicas de aprendizado supervisionado, cuja definição é justamente essa, técnicas que se valem de dados previamente classificados para inferir relações pertinentes a amostra e suas características. Enquanto isso técnicas de análise de cluster se valem apenas dos dados sem nenhuma distinção prévia ou classificação a priori e a partir destes descobrem quais possíveis diferenciações podem ser feitas em relação aqueles dados, para que estes sejam então agrupados em um ou mais cluster, a técnica de análise de cluster seria considerada uma técnica de aprendizado não supervisionado, que é definida justamente pode não se valer de amostras classificadas para inferir as relações, derivando relações a partir dos dados e seus atributos apenas.

Como exposto em (TAN et al., 2006) é interessante notar que, mesmo que os termos particionamento de segmentação sejam por vezes usados como sinônimos para clustering, tais termos referem-se a abordagens que fogem do escopo da análise de cluster. A exemplo o termo particionamento, normalmente aplicado na definição de técnicas

(40)

2.5. Análise de Cluster 37

que dividem grafos e subgrafos, tais técnicas não tem uma relação clara com análise de cluster. Enquanto isso segmentação normalmente refere-se a divisão dos dados em grupos através de técnicas simples, por exemplo: em um banco de dados de um empresa clientes podem ser segmentados por gênero, faixa de idade e renda média; tais características básicas e facilmente distinguíveis podem ser utilizadas para a segmentação destes clientes. Entretanto alguns trabalhos realizados em particionamento de dados e segmentação estão sim relacionados com análise de cluster, porém não se pode dizer que tais abordagens estejam contidas nesta, pois fazem parte de um todo que abrange outros diversos conceitos, pode se afirmar portanto que a relação entre elas trata-se apenas de uma interseção.

2.5.2

Diferentes Tipos de Clusters

Existem alguns tipos de noções de cluster que se provam bastante úteis na prática, dado que a análise de cluster busca encontrar grupos de objetos (clusters) úteis ao objetivo da análise dos dados. Em termo de possíveis tipos de cluster, temos:

1. Bem separado (do inglês: “well separated”); Clusters desse tipo se encaixam na definição mais tradicional de cluster, onde todos os objetos dentro de um cluster são muito parecidos entre si na medidade em que são diferentes diferente dos objetos em outros clusters. Essa definição idealizada de cluster pode ser satisfeita somente se os dado apresentam algo como “clusters naturais” um exemplo disso seria os a organização dos dados na Figura 6a, onde a distância entre dois pontos dentro do mesmo grupo é sempre menor que a distãncia entre dois pontos em grupos distintos. 2. Baseado em protótipos (do inglês: “prototype-based”); Seria um tipo de cluster

onde cada elemento é mais próximo de um determinado protótipo, que seria um determinado objeto selecionado para caracterizar um grupo de objetos dados seus atributos, do que do protótipo que caracteriza outros clusters.

3. Baseado em grafos (do inglês: “graph-based”); Se os dados são representados em forma de grafo, onde nós são objetos e os links representam conexões entre esses objetos, então um cluster pode ser definido como um conjunto de componentes conectados. Um exemplo desse tipo de cluster seriam os clusters baseados em contiguidade (do inglês: “contiguity-based clusters”) onde dois objetos estão conectados apenas se estiverem a uma distãncia específica um do outro. Quanto a sua aplicação clusters baseados em grafos são úteis quando os clusters são irregulares e interseccionais, porém este tipo de cluster costuma ser sensível a presença de ruído.

4. Clusters baseados em densidade (do inglês: “density-based clusters”). Por essa defini-ção um cluster seria uma região de alta densidade que é rodeada por uam região de baixa densidade, um exemplo claro deste tipo de definição aplicada seria o da Figura 6c. A utilidade desse tipo de cluster é similar àquela apresentada para clusters baseados em grafos, para dados onde os clusters são irregulares e interseccionais,

(41)

38 Capítulo 2. Referencial Teórico

com a particularidade de que clusters baseados em densidade funcionam bem mesmo na presença de ruído.

5. Cluster Hierárquico (do inglês: “Hierarchical Cluster ”. Os clusters desse tipo são baseados no princípio de construir uma hierarquia entre os dados da amostra. clusters desse tipo podem ser divididos em aglomerativos e divisivos, sendo o primeiro tipo uma estratégia que começa com cada dado em um único cluster e estes são agrupados 2 a dois para formar clusters maiores enquanto o segundo tipo adota uma estratégia de colocar todos os dados em um cluster e dividir os clusters de forma recursiva até que eles tenham um tamanho onde a métrica de erro quadrado seja a desejável.

2.5.3

Clustering por Médias-k (K-means clustering )

Assim como descrito em (TAN et al., 2006), a técnica de clustering por médias-k é simples, e a descrição do algoritmo base para essa técnica pode ser descrita da seguinte forma: primeiro escolhe-se K centroides iniciais, onde K é um parâmetro especificado de acordo com o critério do usuário, esse seria a especificação do número inicial de clusters desejados. Dessa forma, cada ponto será associado ao centroide mais próximo, e cada coleção de pontos associados a um centroide é um cluster. A partir disso, o centroide de cada cluster é então atualizado baseado nos pontos acossiados ao cluster. Os processos de associação e atualização são repetidos até que nenhum ponto mude de cluster, ou de forma equivalente, que os centroides permaneçam os mesmos.

Algoritmo 1 Algorítimo básico de clustering por médias-k.

1 : S e l e c i o n a o s K c e n t r o i d e s i n i c i a i s 2 : r e p i t a

3 : Para K c l u s t e r s a s s o c i e cada ponto ao c e n t r o i d e mais pr ó ximo

4 : Re−compute o c e n t r o i d e de cada c l u s t e r 5 : a t é : Que o s c e n t r o i d e s nã o mudem

Fonte: Adaptado de (TAN et al.,2006).

O algorítimo de clustesring por médias-k pode ser formalmente descrito como no Algorítimo1. Inicialmente são escolhidos pontos aleatórios para serem os centroides iniciais; em seguida os pontos são associados aos centroides; a partir disso os centroides são atualizados e o processo é repetido até que a condição de parada seja satisfeita. Dado que durante esse processo as mudanças de centroides parem de acontecer, então os centroides estarão corretamente idenficados.

Para certas combinações de funções de proximidade o algorítmo sempre converge para uma solução. Dado que a maior convergência acontece nas iterações iniciais, a condição de parada é normalmente substituída por algo mais branda, como por exemplo, “repita até que apenas 1% dos pontos mude de cluster.”

(42)

2.5. Análise de Cluster 39

Para associar um ponto ao centroide mais próximo, se faz necessária uma definição de medida de de proximidade que vai especificar a noção de “mais próximo” para os dados da amostra a ser analisada.

O passo 4 do algoritmo de médias-k foi definido de forma geral, dado que o centroide pode variar de acordo com as medida de proximidade para os dados e o objetivo da análise de cluster. Normalmente o objetivo da análise é expressa em termos de uma função, chamada função objetivo, que vai depender da medida de proximidade dos pontos uns com os outros ou com os centroides.

Dada uma amostra cuja medida de proximidade pode ser expressa por uma distância euclidiana; um exemplo pertinente de função objetivo seria utilizar a soma do erro quadrado. Dessa forma, para mensurar a qualidade da análise. Calcula-se o erro de cada ponto, pode-se por exemplo, obpode-servar a distância entre cada ponto e pode-seu centroide mais próximo, em seguida calcular a soma dos erros quadrados. Dessa forma estabelece-se os critério e que: dados dois conjuntos diferentes de clusters produzidos pelo algoritmo de médias-k, é preferível aquele com o menos erro quadrado, pois estes centroides são uma representação melhor dos pontos nestes clusters.

2.5.4

Clustering por Entropia Mínima (Minimum Entropy Clustering )

Em (LI; ZHANG; JIANG,2004) são demonstradas diversas vantagens dá técnica de Clustering por Entropia Mínima, dentre suas principais características está a alta performance mesmo em face de um número desconhecido de clusters e o fato de ser menos sensível a outleirs em comparação com a maior parte dos métodos clustering. Tais resultados são apresentados no trabalho (LI; ZHANG; JIANG, 2004) utilizando amostras de genes, tanto sintéticas quanto reais.

O problema de clustering também pode ser matematicamente definido assim como apresentado em (LI; ZHANG; JIANG,2004) da seguinte forma: dada uma base de dados do tipo X = {xi|i = 1, ..., n} e um número inteiro m > 1, mapeie X em C = {cj|j = 1, ..., m}

de forma que todo xi seja atribuído a pelo menos um cluster cj, apesar dessa não ser uma

definição formal que contemple todas as estratégias de clustering existentes, a exemplo do clustering hierárquico que não se encaixa nessa definição, esta é adequada ao propósito de ilustrar o problema nos casos avaliados neste trabalho.

Para o melhor entendimento desta proposição de análise de cluster se faz necessária uma breve definição de entropia, que pode ser descrita do ponto de vista de teoria da informação como o número de bits em média necessário para descrever uma variável aleatória. Entropia também é responsável por mensurar a “desordem” de um sistema (LI; ZHANG; JIANG, 2004). A entropia de Shannon para uma determinada variável aleatória

(43)

40 Capítulo 2. Referencial Teórico

X com valores em um conjunto finito X pode ser definida como:

H(X) = n X i=1 p(xi)log2  1 P (xi)  , (2.3)

pode-se observar na equação 2.3que log2 

1

P (xi)



tem o papel de representar a informação. Dado que, se todos os eventos ocorrem com uma probabilidade p, isso significa que existem

1

p eventos. Para dizer que evento ocorreu, se faz necessário utilizar em média log2 1

p bits de

representação.

Dado que os eventos não tenham a mesma probabilidade, assim como provado em (SHANNON,1959), uma sequência de caracteres composta por letras não corelacionadas e probabilidade pi e tamanho n não pode ser comprimida, em média, para um sequência binária menor que nH.

Assim, ao organizar clusters de forma a obter aqueles com a menor entropia possível espera-se obter um bom resultado pois dados no mesmo cluster devem ter alguma propriedade comum, nesse caso em específico, terem um nível de desordem parecido.

Estabelecido o conceito de entropia, pode-se definir a técnica de Clustering por Entropia Mínima como: um critério de cluster que se propõe a minimizar a entropia condicional dos clusters dada uma observação. Em (LI; ZHANG; JIANG, 2004) são apresentados os resultados comparativos entre Clustering por Entropia Mínima e outras comumente aplicadas em análise de gene, como a técnica de cluster por médias-k.

A medição da entropia é realizada através de técnicas probabilísticas a posteriori como critério de clustering, isso se dá pelo fato de que, o conceito no qual o cálculo de entropia é baseado se assemelha ao de dependência probabilística. Ao utilizar o critério de entropia mínima, o problema de clustering pode ser subdividido em dois sub-problemas (i) estimar as probabilidades a posteriori e (ii) minimizar a entropia.

2.5.5

Método de Agrupamento de Pares sem Peso com Média Aritmética

O Método de Agrupamento de Pares sem Peso com Média Aritmética (da sigla em inglês UPGMA) apresentado por (SAITOU; NEI, 1987), constrói uma árvore que reflete a estrutura de uma matriz de dissimilaridades, que são normalmente usadas para otimizar o alinhamento de sequências através da tabela de probabilidades de uma cadeia de markov.

A aplicação de matrizes de dissimilaridades na análise de protocolo se dá na identificação de tipos de dados. Baseado em mutações de tipos que os dados podem apresentar, no caso dos protocolos determinados dados binários podem ser interpretados (mutar) em outros binários ou em códigos ASCII.

As matrizes de dissimilaridades são de tamanho 256 por 256 e contém probabilidade de mutação entre todos os caracteres uma igualdade tem a probabilidade de 1. Outras

Referências

Documentos relacionados

A reabilitação dos cenários compreende uma série de ações de resposta aos desastres, de caráter emergencial, que tem por objetivo iniciar o processo de

costumam ser as mais valorizadas. B) Uma soma de fatores, como fácil acesso à água, possibilidade de utilizar os rios como meio de transporte e o baixo custo imobiliário devido

־ Uma relação de herança surge quando um objecto também é uma instância de uma outra classe mais geral (exemplo: “automóvel é um veículo”). ־ É sempre possível

A Sementinha dormia muito descansada com as suas filhas. Ela aguardava a sua longa viagem pelo mundo. No entanto, sempre vivera junto ao pomar do António Seareiro e até

Jorge, Madalena, Maria, Miranda e Manuel de Sousa, entrando com vários Criados que o seguem, alguns com brandões acesos. Já, sem mais detença! Não apaguem esses brandões;

MADALENA (Repetindo maquinalmente e devagar o que acabava de ler.) – “Naquele engano d’alma ledo e cego / Que a fortuna não deixa durar muito...” Com a paz e a alegria de

Combinaram encontrar-se às 21h

1- A partir de observações e avaliações realizadas no segmento de transportes verificou-se a dificuldade de apropriação dos custos efetivos aos serviços