Taggat med: sysdig

Threat Hunting med osquery

Osquery är ett open-source projekt från Facebook som släpptes under år 2014. Osquery är ett verktyg för att ställa SQL-liknande frågor mot servrar och klienter. Detta är bra för att hålla koll på vad som händer i infrastrukturen. Ett axplock med några av de frågeställningar som osquery kan svara på:

  • Vilka processer körs på våra klienter?
  • Vilka TCP och UDP-portar lyssnar våra servrar på?
  • Vilka USB-minnen har varit anslutna till våra system?
  • Finns filen med namn eller checksumman XX någonstans?
  • Vilka processer kommunicerar ut på nätverket?

Osquery stödjer Windows, Linux, FreeBSD samt macOS. Dock kan funktionaliteten skilja sig mellan olika operativsystem.

Exempel på SQL-fråga som ställs via osqueryui:

I sin grundinstallation är osquery relativt avskalat och saknar mycket av den funktionalitet som man kan få med ett kommersiellt verktyg som kommer färdigt med avancerade rapporteringsfunktioner och signaturer. Därför kan du bygga stödfunktioner själv till osquery eller använda något av det som finns tillgängligt såsom Kolide, Doorman eller Uptycs som ser till att SQL-frågor kan ställas över nätverket. Loggningen från osquery kan med fördel hällas in i ELK-stacken eller Splunk.

När det gäller mallar för osquery för att titta på avvikelser eller anomalier så kan jag rekommendera Palantirs osquery-configuration, så kallade query packs.

Här är en skärmdump som visar på att jag 5 st query packs installerade i Kolide Fleet med fokus på Windows:

Det query pack som heter windows-attacks har 15 st SQL-frågor som går var 60:de sekund på 3 st klienter. Rapporter på utfall hamnar hamnar i filen osquery_result centralt på servern som kör Kolide Fleet, och filen ser ut ungefär enligt följande:

Och vill vi titta på hur just den SQL-frågan som genererade ovan JSON-loggrad så tittar vi bara på windows-pack/os-version som ser ut enligt följande:

SELECT * FROM os_version;

Eftersom action är added så är det första gången denna SQL-fråga kördes. Men du behöver inte köra frågor regelbundet utan kan även ställa vissa typer av realtidsfrågor beroende på operativsystem, se stödet i denna tabell (längst uppe i högra hörnet ser du en OS-symbol för varje tabell).

Fördelar med osquery 👍

Osquery gör att du kan inventera hela din infrastruktur och söka rätt på hot, så kallad Threat Hunting. Nästan allt är öppen källkod med bra licenser och gör det enkelt för organisationer med resurser att anpassa osquery till sina behov. För realtidsövervakning skulle jag dock komplettera med sysdig eller sysmon.

Du har även full insyn i samtliga regler och varför dessa larmar , vilket kan vara ett problem med många antivirus-mjukvaror då dessa ofta är stängda.

Nackdelar med osquery 👎

Du måste göra mycket själv och bör ha en god kännedom gällande open-source utveckling. Majoriteten av alla frågor är så kallade poll-baserade och gör att en angripare kan flyga under radarn. Precis som många andra skyddsfunktioner så kan en angripare stänga ner eller modifiera osquery.

Sammanfattning

Jobbar du med cybersäkerhet och inte har tittat på osquery efter att ha läst detta gör du tjänstefel. Undersök och labba själv på egen kammare med exempelvis DetectionLab.

Jag är även rätt säker på att osquery är en av de få säkerhetsrelaterade mjukvaror som snurrar på Mark Zuckerbergs Macbook.

Även kan Wazuh v3.5.0, uppföljaren till OSSEC kan stödja osquery sedan fem dagar tillbaka.

Stöd gärna mitt bloggande via Patreon.