Kubeshark: síťová analýza Kubernetes na úrovni paketů a API
Kubeshark je nástroj pro hloubkové monitorování a analýzu provozu v Kubernetes clusterech, který kombinuje funkce Wiresharku s možnostmi ladění na úrovni síťových paketů (L2–L3) i aplikačních volání (L7). Umožňuje vývojářům a SRE inženýrům vizualizovat interakce mezi pody, sledovat volání Kubernetes API a odhalovat anomálie v reálném čase.
Architektura a princip fungování Kubesharku
Kubeshark využívá eBPF k zachycení síťového provozu přímo v jádře Linuxu bez nutnosti zavádění proxy nebo úprav aplikací. To zajišťuje minimální dopad na výkon clusteru při zachování úplnosti dat. Na rozdíl od nástrojů jako kubectl -v, které ukazují pouze HTTP požadavky na API server, Kubeshark zachycuje celý zásobník: od Ethernet rámců po obsah HTTP/HTTPS zpráv (při dostupnosti TLS klíčů).
Nástroj se nasazuje jako soubor DaemonSet podů, z nichž každý běží na uzlu clusteru a sbírá lokální provoz. Data se agregují do centrálního webového rozhraní dostupného na adrese http://localhost:8899 po spuštění CLI příkazu. Podporuje filtrování podle jmenných prostorů, služeb, URL cest, HTTP metod a dalších parametrů.
Klíčové možnosti pro inženýry
Hlavní hodnota Kubesharku spočívá v kombinaci detailní analýzy a pohodlné vizualizace. Zde jsou hlavní scénáře jeho použití:
- Ladění interakcí mezi službami: sledování všech požadavků mezi mikroslužbami včetně hlaviček, těl a kódů odpovědí.
- Analýza volání Kubernetes API: odhalení častých nebo chybných volání k API serveru (např. pokusy o čtení secretů bez oprávnění).
- Monitorování metadat cloudových poskytovatelů: detekce volání na endpointy jako
/latest/meta-datav AWS EC2, což může signalizovat kompromitaci. - Vytváření PCAP archivů: export zachyceného provozu do standardního formátu pro další analýzu v Wiresharku nebo automatizovaných systémech.
- Integrace se systémy upozornění: nastavení spouštěčů na základě vzorů provozu (např. 403 chyby při přístupu k secretům).
Praktické použití: příklady využití
Pro spuštění Kubesharku stačí provést jeden příkaz:
sh <(curl -Ls https://kubeshark.co/install)
kubeshark tap -A
Příznak -A aktivuje monitorování ve všech jmenných prostorech. Pro omezení rozsahu lze zadat konkrétní jmenný prostor:
kubeshark tap -n production
Po spuštění se otevře webové rozhraní se třemi hlavními zobrazeními:
- Tabulka proudů — seznam všech zachycených spojení s filtrováním podle protokolu, IP, portu, metody a cesty.
- Mapa služeb — grafické zobrazení závislostí mezi službami a pody.
- Detaily požadavku/odpovědi — dešifrování obsahu HTTP provozu včetně hlaviček a těla.
Příklady užitečných filtrů:
http.path == "/latest/meta-data"— odhaluje volání na metadata AWS.k8s.method == "GET" && k8s.resource == "secrets"— ukazuje všechny pokusy o čtení secretů.net.host == "10.0.1.5"— soustředí se na provoz jednoho uzlu.
Srovnání s analogy a omezení
Ačkoli Kubeshark využívá eBPF stejně jako Cilium Tetragon nebo Falco, jeho cíl není detekce hrozeb, ale pochopení chování systému. Nenahrazuje runtime security řešení, ale doplňuje je poskytováním kontextu pro analýzu incidentů.
Omezení:
- Nešifruje TLS provoz bez poskytnutí certifikátů nebo klíčů.
- Při dlouhodobém monitorování vysoce zatížených clusterů může vytvářet značnou zátěž na úložiště.
- Nesleduje systémové volání uvnitř kontejnerů (na rozdíl od Falco).
Přesto zůstává Kubeshark pro úlohy ladění, školení a auditu komunikace jedním z nejeefektivnějších nástrojů v ekosystému Kubernetes.
Co je důležité
- Kubeshark zachycuje provoz na úrovních L2–L7 včetně síťových paketů a HTTP volání.
- Nástroj využívá eBPF k nenásilnému sběru dat bez změn aplikací.
- Podporuje export do PCAP a integraci s externími úložišti (S3 apod.).
- Je optimální pro ladění a analýzu, ale není určen k nahrazení runtime bezpečnostních systémů.
- Vizuální mapa služeb a výkonný systém filtrů urychlují diagnostiku problémů.
— Editorial Team
Zatím žádné komentáře.