# Decodificador de cookie de persistência BIG-IP

> Decodifique um cookie de persistência BIGipServer da F5 no IP e porta do membro do pool, ou gere um cookie a partir de um endereço e porta. Roda inteiramente no seu navegador.

- Tool: https://ronutz.com/pt-BR/tools/f5-bigip-persistence-cookie
- Family: Redes

---

## O que faz

Decodifique o valor de um cookie de persistência `BIGipServer` do F5 BIG-IP no endereço IP e na porta do membro do pool de destino, ou faça o caminho inverso e gere um valor de cookie a partir de um endereço e uma porta. Ela trata as quatro codificações não criptografadas que o BIG-IP usa, e roda inteiramente no seu navegador.

## O que é o cookie, e por que decodificá-lo importa

Quando a persistência por cookie do BIG-IP roda em seu modo de inserção padrão, ela adiciona um cookie chamado `BIGipServer<pool>` cujo valor codifica para qual membro do pool um cliente foi enviado, para que o cliente retorne ao mesmo membro. O problema é que a codificação não é criptografia: em sua forma padrão, o cookie codifica de forma clara o endereço IP interno e a porta do membro do pool. Qualquer um que consiga ver o cookie, o que inclui o cliente e qualquer coisa no caminho, pode decodificá-lo e aprender um pedaço da sua topologia interna. Demonstrar isso é o objetivo desta ferramenta, e ela sinaliza quando um endereço decodificado cai em uma faixa privada RFC 1918, porque é exatamente esse o detalhe interno que você não pretendia publicar.

## As codificações e sua ordem de bytes

A sutileza, e a razão pela qual um decodificador dedicado ajuda, é a ordem dos bytes. Na codificação IPv4 padrão, o endereço é um único número decimal cujos bytes são tomados em little-endian, isto é, invertidos, e a porta é um campo decimal com seus dois bytes trocados. Por exemplo, o endereço `10.1.1.100` codifica para o decimal `1677787402`, e a porta `80` codifica para o valor com bytes trocados `20480`. O BIG-IP define quatro dessas codificações no total, cobrindo IPv4, IPv6 e variantes com route domain, cada uma com sua própria regra, que a ferramenta implementa a partir da própria documentação da F5 (K6917), verificada contra um decodificador de referência conhecido.

## A correção, que esta ferramenta não consegue desfazer

A mitigação é simples e vale dizer: configure a criptografia de cookie no perfil de persistência (F5 K7784). Um cookie de persistência criptografado não carrega nenhum endereço legível, e esta ferramenta não consegue decodificá-lo, por design. Se você consegue decodificar aqui o seu cookie de produção, qualquer outra pessoa também consegue, o que é o sinal para ligar a criptografia.

## Como usar

Cole um valor de cookie `BIGipServer` para decodificar o endereço e a porta do membro, ou informe um endereço e uma porta para produzir um valor de cookie. O cálculo é determinístico e local; nada é enviado a lugar algum.

## Standards and references

- [F5 K6917 - Overview of BIG-IP persistence cookie encoding](https://my.f5.com/manage/s/article/K6917) - the four cookie encodings and their byte-order rules
- [F5 K7784 - Configuring cookie encryption for cookie persistence](https://my.f5.com/manage/s/article/K7784) - the mitigation: encrypting the persistence cookie so it cannot be decoded
- [drwetter/F5-BIGIP-Decoder (reference implementation)](https://github.com/drwetter/F5-BIGIP-Decoder) - battle-tested decode logic for all flavors, cross-checked against this engine
- [RFC 1918 - Address Allocation for Private Internets](https://www.rfc-editor.org/rfc/rfc1918) - the private IPv4 ranges used to flag an internal pool member
- [RFC 5952 - A Recommendation for IPv6 Address Text Representation](https://www.rfc-editor.org/rfc/rfc5952) - canonical IPv6 formatting of a decoded IPv6 pool member

## Related reading

- [As Quatro Codificações de Cookie do BIG-IP, Byte a Byte](https://ronutz.com/pt-BR/learn/bigip-cookie-formats.md): Um passo a passo preciso pelas quatro formas sem criptografia do cookie de persistência do BIG-IP: IPv4 padrão com seus bytes de endereço invertidos e porta com bytes trocados, IPv4 e IPv6 em route domains, e a forma IPv6, cada uma com uma decodificação resolvida.
- [Cookies de Persistência do BIG-IP: O Que São e Por Que Vazam](https://ronutz.com/pt-BR/learn/f5-bigip-persistence-cookies.md): Por que um F5 BIG-IP insere um cookie BIGipServer, o que a persistência por cookie faz, o que o valor do cookie realmente codifica e por que a forma padrão, sem criptografia, entrega um endereço interno e uma porta a qualquer um que leia a resposta.
- [Fechando o Vazamento: Criptografia de Cookie no BIG-IP](https://ronutz.com/pt-BR/learn/bigip-cookie-encryption.md): Como impedir que um cookie de persistência do BIG-IP divulgue endereços internos criptografando-o, como fica o valor criptografado, as opções relacionadas de hash e nome de cookie, e os compromissos de cada uma.
- [Métodos e configurações de persistência por cookie no BIG-IP](https://ronutz.com/pt-BR/learn/bigip-cookie-persistence-methods.md): Além do que um cookie de persistência do BIG-IP contém, há a questão de como ele chega lá. O BIG-IP oferece quatro métodos de cookie, insert, rewrite, passive e hash, e um conjunto de opções de profile para o nome, o tempo de vida e as flags de segurança do cookie. Elas decidem o comportamento operacional do cookie, separado do seu valor codificado.
- [O Que um Cookie do BIG-IP Conta a um Atacante](https://ronutz.com/pt-BR/learn/bigip-cookie-disclosure.md): O cookie de persistência é um caso clássico de divulgação de informação: revela endereços IP internos, portas, tamanho do pool e route domains a qualquer cliente. Por que isso importa para reconhecimento, como scanners coletam o cookie e como pensar sobre o risco.
