• Nenhum resultado encontrado

Algoritmo Smith-Waterman

2.6 Algoritmos de Alinhamento de Sequências

2.6.2 Algoritmo Smith-Waterman

O funcionamento do algoritmo Smith-Waterman como primeiro apresentado no trabalho (SMITH; WATERMAN, 1981), compartilha algumas características com o al- goritmo Needleman-Wunsch como a estratégia de comparar as sequências de caracteres utilizando uma matriz, marcando suas similaridades, e pesando as diferenças. A maior diferença sendo que este observa trechos das sequências ao invés de levar em consideração toda a sequência, o algoritmo Smith-Waterman compara todos os possíveis segmentos para assim otimizar a medida de similaridade.

Outra característica do algoritmo em questão é que a solução apresentada por ele é sempre a solução ótima, ou seja, existe uma garantia de que o melhor alinhamento local dados os critérios de similaridade adotados. A matriz que representa as similaridades é feita do tipo Mi+1,j+1 onde i e j seriam os tamanhos das sequências a serem alinhadas.

A partir da pontuação inicial 0 onde se encontra a intersecção dos dois pontos vazios, a partir do 0 na diagonal superior esquerda o algoritmo segue para baixo e para direita em busca de maximizar os acertos no caminho. Assim temos na Figura 8a e na Figura 8b

representações, respectivamente, da computação das similaridades onde é atribuído o valor 1 onde os caracters são iguais e a descoberta do caminho utilizando as propriedades do algoritmo Smith-Waterman.

2.6. Algoritmos de Alinhamento de Sequências 45

Figura 8 – Matriz que apresenta pontuações das sequências de caracteres “Sorte” e “Corte”, pontuadas com valor 1 onde os símbolos são iguais e matriz que computa as similaridades pontuada para o algoritmo Smith-Waterman.

S O R T E − 0 0 0 0 0 0 C 0 0 0 0 0 0 O 0 0 1 0 0 0 R 0 0 0 1 0 0 T 0 0 0 0 1 0 E 0 0 0 0 0 1 (a) − S O R T E − 0 0 0 0 0 0 C 0 0 0 0 0 0 O 0 0 1 1 1 1 R 0 1 1 2 0 0 T 0 2 2 2 3 3 E 3 3 3 3 3 4 (b)

47

3 Trabalhos Relacionados

Na literatura de inferência de protocolo de rede é possível fazer uma divisão primária entre (i) as abordagens que analisam os rastros da rede para construir o modelo do protocolo e (ii) aquelas que para além disso também analisam a forma como os pacotes são processados dada uma determinada implementação do protocolo. Ambos os tipos de abordagens tem seus pontos fortes e fracos.

Como exposto em (CABALLERO et al., 2007) abordagens baseada na análise do rastros de rede são limitadas pela falta de informação semântica nos pacotes, neste mesmo trabalho também é apontada a existência de uma rica variedade de informações sobre o formato do protocolo presente na forma como uma implementação do protocolo processa os dados recebidos. Explorando esse ponto, diversos trabalhos focam suas abordagens em monitoramento de execução para obter como resultado, modelos mais robustos que descrevam de maneira mais acurada o formato do protocolo. Dessa forma, fica claro que trabalhos com foco em monitoramento de execução tem mais informações que podem ser utilizadas na construção do modelo. Estes baseiam-se porém, em técnicas relativamente mais intrusivas, no sentido de que é imprescindível para a construção do modelo que a máquina que realiza a inferência esteja executando uma aplicação que utilize o protocolo a ser inferido. Tal requisito claramente fere a premissa do presente trabalho e por esse motivo abordagens baseadas em tais técnicas serão desconsideradas como opção viável.

Propostas que avaliam somente os rastros de rede são abundantes na literatura, inclusive o primeiro trabalho nesse campo de estudo data de 2004, trata-se de um relatório técnico (BEDDOE, 2004) neste trabalho Beddoe aponta as íntimas relações entre a avaliação de pacotes e análise de expressão de gene, este trabalho se utiliza de diversos métodos e técnicas comumente aplicadas nesse campo da bioinformática para implementar o que ele clama ter sido “o primeiro sistema automatizado para engenharia reversa de protocolo de rede”, desde o trabalho de Beddoe diversas abordagens surgiram nessa linha, alguns utilizando arquiteturas similares a empregada por ele, por vezes modificando-se os algoritmos envolvidos em busca de otimizar a performance.

Como exposto no trabalho (WHALEN; BISHOP; CRUTCHFIELD,2010) outra contribuição relevante foi feita por Cui em 2007 no trabalho (CUI; KANNAN; WANG,

2007), onde este analisa as dificuldades de se encontrar parâmetros robustos para o alinhamento em sequência de pacotes, anteriormente proposto como solução por Beddoe, e como esse tipo de alinhamento mostrava-se problemático ao lidar com campos do tipo length em mensagens do mesmo formato. Em resposta a essas dificuldades este apresenta um tipo de novo tipo algoritmo de alinhamento nomeado type-based alignment que infere a

48 Capítulo 3. Trabalhos Relacionados

semântica dos diferentes campos, e depois utiliza essa semântica para agrupar mensagens do mesmo formato.

Tabela 1 – Relação: nome da ferramenta, ano, protocolos avaliados e descrição da aborda- gem utilizada. Das abordagens que avaliam apenas tráfego de rede e apresentam seus resultados tanto em forma de máquinas de estado finitas quando em outros formatos.

Ferramenta Ano Protocolos Avaliados Abordagem

PIP 2004 HTTP, ICMP

Alinhamento de mensagens e detecção de palavras-chave. Faz uso de algoritmos como Needleman-Wunsch e análise de cluster (método UPGMA); (BEDDOE,2004).

Scriptgen 2005 N/A Abordagem baseada unicamente na organização dos dados clustesr; (LEITA; MERMOUD; DACIER,2005).

Roleplayer 2006 N/A Organização dos dados em clusters e inferência de máquina de estados simplificada; (CUI et al.,2006).

Discoverer 2007 HTTP, RPC, CIFS/SMB

Uma abordagem de 3 fazes, apresenta os algoritmo de alinhamento baseado em tipo. As três fases da abordagem são: Tokenização das mensagens; Cluster recursivo para identificar fronteiras e União de clustesrs similares; (CUI; KANNAN; WANG,2007).

Abordagem Baseada Modelos Escondidos de Mrkov

2010 ICMP, MODBUS, HTTP

Abordagem baseda em 3 fazes: identificar e separar dados do cabeçalho; organizar os dados em Cluster a partir da entropia; Inferir máquina de estados que representa o protocolo para cada cluster;

(WHALEN; BISHOP; CRUTCHFIELD,2010).

Biprominer 2011 Xunlei, QQLive, SopCast

Uma abordagem baseada em 3 fazes: Apreender palavras chave que distinguem o formato; Categorizar o dados e

determinar as transições de palavras chave; (WANG et al.,2011)

Revex 2011 DNS, NetBIOS,

FTP

Faz uso de um algoritmo de reconhecimento de linguagem ideal para protocolos baseados em texto;

(ANTUNES; NEVES; VERISSIMO,2011)

Veritas 2011 SMTP, PPLIVE, XUNLEI

Geração de máquinas de estados probabilísticas sobre o protocolo: Identificar palavras chave; organizar mensagem em clustres e determinar probabilidade das transições entre mensagens dentro do cluster; (WANG et al.,2011);

ProDecoder 2012 SMB, SMTP

Abordagem baseado em duas fazes: Utiliza as estratégias em Bipominer e inclui o algoritmo Needleman-Wunsch como método de alinhamento; (WANG et al.,2012)

AutoReEngine 2013 HTTP, POP3, SMTP, FTP

Abordagem baseada em duas fazes: extração de palavras chave usando símbolos estatisticamente mais prováveis e uso de análise da posição das palavras chave para inferência de formato; (LUO; YU,2013)

Adaptado de (NARAYAN; SHUKLA; CLANCY,2015)

Documentos relacionados