Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Anàlisi d’HTTP

L’analitzador HTTP reconstrueix parelles de petició/resposta dels fluxos TCP i mesura la latència de resposta.

Correlació de petició/resposta

lippycat segueix les converses HTTP correlacionant peticions amb les seves respostes a la mateixa connexió TCP. Quan la correlació té èxit, el camp RequestResponseTimeMs mostra el temps de resposta del servidor.

Iniciar la captura HTTP:

sudo lc sniff http -i eth0

Filtrar per amfitrió, camí, mètode o codi d’estat:

Filtrar per amfitrió:

sudo lc sniff http -i eth0 --host "*.example.com"

Filtrar per patró de camí:

sudo lc sniff http -i eth0 --path "/api/*"

Capturar només peticions POST i PUT:

sudo lc sniff http -i eth0 --method "POST,PUT"

Capturar només respostes d’error:

sudo lc sniff http -i eth0 --status "4xx,5xx"

Combinar filtres:

sudo lc sniff http -i eth0 --host api.example.com --method POST --status "5xx"

Camps de metadades HTTP

CampDescripcióCamí JSON
MètodeGET, POST, PUT, DELETE, etc..HTTPData.Method
CamíCamí URL.HTTPData.Path
HostCapçalera Host.HTTPData.Host
Codi d’estatEstat de resposta.HTTPData.StatusCode
Content-TypeTipus de contingut de la resposta.HTTPData.ContentType
User-AgentIdentificador del client.HTTPData.UserAgent
Temps de respostaLatència de petició a resposta (ms).HTTPData.RequestResponseTimeMs

Investigacions HTTP habituals

Trobar respostes API lentes:

sudo lc sniff http -i eth0 2>/dev/null | \
  jq -r 'select(.HTTPData.Type == "response" and .HTTPData.RequestResponseTimeMs > 500) |
    [.Timestamp, .HTTPData.Host, .HTTPData.Path,
     (.HTTPData.StatusCode|tostring),
     (.HTTPData.RequestResponseTimeMs|tostring) + "ms"] | @tsv'

Supervisar taxes d’error:

sudo lc sniff http -i eth0 2>/dev/null | \
  jq -r 'select(.HTTPData.Type == "response") |
    (.HTTPData.StatusCode|tostring|.[0:1]) + "xx"' | \
  sort | uniq -c | sort -rn

Anàlisi del tipus de contingut:

sudo lc sniff http -i eth0 2>/dev/null | \
  jq -r 'select(.HTTPData.ContentType != null and .HTTPData.ContentType != "") |
    .HTTPData.ContentType' | \
  sort | uniq -c | sort -rn

Desxifratge HTTPS

Per al trànsit HTTPS, lippycat pot desxifrar dades d’aplicació si proporcioneu un fitxer de registre de claus TLS (SSLKEYLOGFILE):

sudo lc sniff http -i eth0 --tls-keylog /tmp/sslkeys.log

Això requereix que l’aplicació exporti les claus de sessió. Consulteu Seguretat per obtenir detalls sobre la configuració del desxifratge TLS.

Captura del cos

Per defecte, no es captura el contingut del cos HTTP. Activeu-la per inspeccionar el contingut:

sudo lc sniff http -i eth0 --capture-body --max-body-size 65536

Per comparar paraules clau en moltes peticions, utilitzeu el comparador massiu Aho-Corasick:

sudo lc sniff http -i eth0 --capture-body --keywords-file suspicious-terms.txt