By zerum
Criado:
26 nov, 2019
4 anos atrás
Data da última atualização: 21/03/2023
TAGS:
Veja a diferença entre flows e transações, e os dados de rede que cada tecnologia é capaz de disponibilizar para ferramentas de análise.
Redes de computadores nos conectam a nossos celulares, computadores, televisores e até mesmo dispositivos como geladeiras, termostatos e campainhas de casa. Fato é que um volume imenso de informações é trafegado por essas redes, a todo tempo. Esses dados também são conhecidos como Wire Data – ou seja, dados do fio/rede – e podem ser investigados de diversas maneiras, daí a importância de se compreender a diferença entre flows e transações.
Neste artigo, vamos abordar e comparar as duas tecnologias: Network Flows e Network Transactions.
Segundo o Internet Engineering Task Force (IETF), “flow é uma sequencia de pacotes enviados por uma aplicação para outra aplicação que os recebe”. Um flow representa o tráfego que aconteceu entre duas aplicações diferentes, em um determinado período. Fornece informações com foco em entrega de tráfego, em nível de IP, sem se preocupar com o payload (o conteúdo da transação em si) dos pacotes. Duas formas bastante comuns de coleta de informações de flow são o Netflow da Cisco e o IPFIX, definido na RFC 3917.
Como exemplo, estes são valores coletadas pelo NetFlow v.5:
Esse tipo de informação é especialmente útil para se identificar o uso de recursos em rede e também para corrigir falhas com QoS (Quality of Service). Porém, não é possível se investigar falhas mais avançadas, relacionadas ao conteúdo de payload, apenas com o uso de flows.
Na Zerum construímos um sistema de extração de dados de Wire Data que traz muito mais informações que as apresentadas por flows. Internamente, nós o chamamos de Zerum WirETL. O WirETL identifica cada transação em nível de aplicação extraindo metadados de performance de cada uma delas, de forma individual e em tempo real. Ou seja, cada GET/POST de transações web em HTTP (que podem ser descriptografadas, se fornecidas as chaves), requisições e respostas em DNS, banco de dados Oracle, compartilhamentos de arquivo em SMB, e muitos outros protocolos, são decodificados. Assim, trabalhando com o conceito de transação (network transaction), provemos um nível de visibilidade extremo.
O nível de detalhamento é uma das principais diferenças entre flows e transações, mas há outras, como:
Diversos dados são coletados e publicados pelo Zerum Valk, para cada transação HTTP. Veja abaixo alguns dos campos/valores extraídos pelo Zerum WirETL:
request | Resposta recebida na transação |
request_content.type | Formato do conteúdo enviado na requisição |
request_message.body | Conteúdo do corpo da requisição |
request_message.cache_control | Indica o controle sobre o conteúdo ser cacheado |
request_message.connection | Indica o controle sobre a vida da conexão (keep alive) |
request_message.content_length | Tamanho da mensagem do request |
request_message.content_type | Conteúdo enviado na requisição e sua codificação |
request_message.cookies | Nome do cookie usado na requisição |
request_message.host | Host utilizado |
request_message.method | Método utilizado pela requisição |
request_message.referer | URL completa enviada pela requisição |
request_message.timestamp | Timestamp de início do request |
request_message.user_agent | User agent utilizado pelo cliente |
request_message.x_forwarded_for | IP de origem da transação registrado no header |
response | Resposta recebida na transação |
response_message.body | Conteúdo do corpo da resposta |
response_message.cache_control | Controle sobre o conteúdo de resposta a ser cacheado |
response_message.calculated_content_length | Tamanho calculado da mensagem de resposta |
response_message.connection | Indica a manutenção da conexão de resposta (keep-Alive) |
response_message.content_encoding | Indica se o conteúdo de resposta está usando compresão |
response_message.content_length | Tamanho total da mensagem de resposta |
response_message.content_type | Formato do conteúdo na mensagem de resposta |
response_message.date | Data e hora na mensagem de resposta |
response_message.e_tag | Uso do web cache de forma seletiva e otimizada |
response_message.keep_alive | Tempo de vida do keep-alive |
response_message.last_modified | Última atualização do conteúdo de resposta |
response_message.reason_phrase | Mensagem de reação da resposta |
response_message.server | Nome do tipo do servidor web |
response_message.set_cookies | Indica se cookie foi enviado juntamente com a resposta |
response_message.status_code | Código de resposta da solicitação do cliente |
response_message.timestamp | Timestamp do início da resposta |
response_message.transfer_encoding | Codificação utilizada na resposta para o usuário |
retransmission_count | Total de retransmissões que ocorreram no destino e na origem |
retransmission_dst | Total de retransmissões que ocorreram no destino |
retransmission_src | Total de retransmissões que ocorreram na origem |
server_connection_time | Tempo total de conexão entre o cliente e o servidor |
server_processing_time | Tempo total de processamento do servidor |
data_transfer_time | Tempo total da transferência de dados |
transaction_time | Tempo total da transação |
E muitos outros…
Nos produtos Zerum Valk e Zerum Lynx a análise de Wire Data é feita com flows E transações. Essa combinação é útil para se analisar operações e segurança em um nível bastante avançado, jogando uma luz sobre algo que muitas vezes é tão volumoso e rápido que pouco se conhece – como encontrar uma agulha no palheiro.
As informações de flows e transações são extraídas em tempo real, juntamente com metadados que enriquecem análises de performance e segurança – e são armazenadas – permitindo que sejam exploradas de forma intuitiva e/ou utilizadas na construção de alarmes com a utilização dos algoritmos de aprendizado inteligente. Com isso temos detalhes de transações em nível de aplicação que ajudam a otimizar não apenas operações, mas também estratégias de produtos e processos industriais.
A Zerum é uma empresa de Data Science líder em inovação que fornece visibilidade e entendimento em tempo real sobre fluxos de dados complexos. Nossos produtos, serviços e tecnologias ajudam grandes organizações a reduzir gargalos operacionais, combater ameaças cibernéticas avançadas, detectar fraudes e manter comunidades seguras.
Para saber mais, entre em contato.