
No domínio da cibersegurança, identificar e caracterizar com precisão servidores web é crucial para detecção de ameaças, avaliação de vulnerabilidades e mapeamento de rede. Apresentamos o HTTP-Basma, um novo algoritmo de fingerprinting ativo que revela perfis exclusivos de servidor por meio de uma abordagem em múltiplas camadas.
O HTTP-Basma está disponível em https://httpbasma.netomize.ca/
No domínio da cibersegurança, identificar e caracterizar com precisão servidores web é crucial para a deteção de ameaças, avaliação de vulnerabilidades e mapeamento de redes. Apresentamos o HTTP-Basma, um novo algoritmo de fingerprinting ativo que revela perfis únicos de servidores através de uma abordagem multicamada, abordando assim este desafio.
Principais Características: Pedidos Elaborados, Respostas Reveladoras: O HTTP-Basma envia 8 sondas HTTP meticulosamente concebidas, suscitando respostas distintas que refletem as configurações do servidor. Hashing Duplo para Versatilidade. O algoritmo gera dois hashes:
Agrupamento e Caça: Estes hashes permitem o agrupamento de servidores, a identificação de servidores únicos e semelhantes, e a perseguição de agentes maliciosos com maior confiança.
Design Modular para Expansão: A arquitetura do algoritmo fomenta a adição de novas variantes de hashing, incentivando a colaboração e a adaptabilidade.
Neste artigo, começamos por analisar trabalhos notáveis existentes sobre fingerprinting HTTP e, em seguida, exploramos a funcionalidade, o design, a arquitetura e os resultados do algoritmo. Adicionalmente, apresentaremos descobertas convincentes da análise dos 1 milhão de websites Majestic mais populares, incluindo a identificação e o agrupamento de servidores HTTP C&C para várias famílias de malware.
A ideia central do algoritmo do HTTP-Basma centra-se no envio de 8 pedidos HTTP especialmente concebidos com requisitos variados para suscitar respostas diferentes do servidor. Uma vez obtida a resposta do servidor, a linha de estado HTTP é dissecada cirurgicamente em todos os seus elementos e codificada de forma otimizada. Adicionalmente, determinados cabeçalhos da resposta do servidor são também verificados para codificação.
Os pedidos que envia são destes tipos:
Após cada pedido, a resposta do servidor é analisada para extrair cabeçalhos específicos e os seus valores. Estes dados extraídos passam por processamento adicional, incluindo dissecação e codificação, para gerar uma fingerprint reversível.
Os detalhes técnicos completos de como o algoritmo funciona estão no artigo em anexo.
Esta filosofia de design modular trata a fingerprint de cada pedido como um bloco de construção, permitindo uma refatoração elegante, com a possibilidade de adicionar e subtrair a fingerprint de qualquer pedido.
Exemplo de fingerprints:
- verbosus fp: 011420958a0014514bd5221420958a221420958a221420958a2200001420958a22000000001f
- pacto fp: 02464ae8b7d86f82c9918e2c2b9d6b91
- note: false-positive rate (72/986,910)
- verbosus fp: 01142494d60914514bd522142494d6221420958a701420958a220000140e04922032c37f1609
- pacto fp: 020769322f3d94ac2f258ddf5ce08502
- note-1: false-positive rate 0
- note-2: tevedadav.site/43.209.165.126:443 (TLS)
- sample-(sha-256): 9aa1dec8dd12f8adc7fc1274e1958f3613450109ee8b4ec6442a0fcf06df0972
- verbosus fp: 01140a85e40014512f3612140a85e422140a85e422140a85e4220000140a85e4220000000001
- pacto fp: 0207292309a7a7e798e417d69df5f2a5
- note: false-positive rate (73/986,910)
- verbosus fp: 01140a85e4001320958a22142494d62214254c5e2214254c5e22080014254c5e220000000000
- pacto fp: 0202be780e1eaae0eaa6184e20c909b6
- note: false-positive rate (4/986,910)
- verbosus fp: 01140a85e4011320958a22142494d67214254c5e2214254c5e22080014254c5e220000000000
- pacto fp: 02cc5be6d05192e17de041538508bc22
- note: false-positive rate (38/986,910)
- verbosus fp: 01140a85e40914514bd522140a85e4721420958a701420958a220800140a85e4720000001609
- pacto fp: 0221b4e46bbd0e5c037f5a852ca3fdc0
- note: false-positive rate (6/986,910)
HTTP-Basma é uma ferramenta em C++ que desenvolvi para demonstrar a praticidade e a viabilidade deste algoritmo. Ela utiliza a biblioteca do Chilkat para todas as interações de socket HTTP e faz uso de outras classes de suporte dentro da biblioteca. Além disso, a ferramenta inclui um recurso de demangler que pode dissecar e reverter o fuzzy-hash verbosus, gerando um objeto JSON abrangente, e uma função de comparação que exibe as diferenças entre duas impressões digitais verbosus.
Esteja ciente de que parte da saída da ferramenta pode usar números de sonda ligeiramente diferentes, mas a ordem subjacente permanece consistente: P1->P1, P2->P2, P3->P3, P4->P4, P->P5, P6->P6F, P7->P6L, P8->P7a.
Usage:
HTTP-Basma [OPTION...]