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
| Camp | Descripció | Camí JSON |
|---|---|---|
| Mètode | GET, POST, PUT, DELETE, etc. | .HTTPData.Method |
| Camí | Camí URL | .HTTPData.Path |
| Host | Capçalera Host | .HTTPData.Host |
| Codi d’estat | Estat de resposta | .HTTPData.StatusCode |
| Content-Type | Tipus de contingut de la resposta | .HTTPData.ContentType |
| User-Agent | Identificador del client | .HTTPData.UserAgent |
| Temps de resposta | Latè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