osquery-defense-kit

ODK is uniek omdat de queries zijn ontworpen om onderdeel te zijn van een productie-pipeline voor detectie en respons. De detectie-queries zijn zo geformuleerd dat ze bij normaal verwacht gedrag nul rijen retourneren; op deze manier kunnen ze worden geconfigureerd om waarschuwingen (alerts) te genereren zodra er wél rijen worden teruggegeven.

Momenteel zijn deze queries voornamelijk ontworpen voor uitvoering op POSIX-platforms (Linux & macOS). Pull requests om de ondersteuning voor andere platforms te verbeteren zijn zeer welkom.

Vereisten

  • osquery v5.7.0 of hoger
  • macOS of Linux
  • Voor lokale ontwikkeling is daarnaast Go v1.20+ nodig voor osqtool

Gebruik

Lokale detectie

Voer make detect uit voor detectie op een specifiek moment. Let op: dit detecteert minder dan een productie-installatie, omdat er geen toegang is tot historische gebeurtenissen.

Productiedetectie

Download een uitgebracht query-pakket naar een geschikte locatie en verwijs naar deze bestanden in het packs gedeelte van het osquery.conf bestand.

Lokale dataverzameling voor Incident Response (IR)

Voer make collect uit. Dit is bijzonder nuttig voor analyse van situaties vóór en ná een incident.

Lokale generatie van pakketten

Voer make packs uit. Voor meer controle kunt u osqtool direct aanroepen om standaardintervallen te overschrijven of bepaalde controles uit te sluiten.

Lokale verificatietests

Voer make verify uit.

Bestandsorganisatie

  • detection/ – Queries voor dreigingsdetectie, geoptimaliseerd voor het genereren van waarschuwingen. Deze zijn verder onderverdeeld op basis van MITRE ATT&CK tactiekcategorieën.
  • policy/ – Queries voor beveiligingsbeleid, geoptimaliseerd voor het genereren van waarschuwingen.
  • incident_response/ – Dataverzameling ter ondersteuning bij het reageren op mogelijke dreigingen. Geoptimaliseerd voor periodieke bewijsvoering.

Bij release worden de queries verpakt in het osquery query pack-formaat. Zie 'Lokale generatie van pakketten' voor informatie over hoe u zelf pakketten kunt genereren.

Casestudies

Linux: Shikitega (september 2022)

Referentie: https://cybersecurity.att.com/blogs/labs-research/shikitega-new-stealthy-malware-targeting-linux

Hieronder volgt een gedeeltelijke lijst van queries die een waarschuwing zouden hebben afgegeven:

  • Initial Dropper Execution, gedetecteerd door:
  • execution/tiny-executable-events.sql
  • execution/tiny-executable.sql
  • Next Stage Dropper Execution, gedetecteerd door:
  • execution/tiny-executable-events.sql
  • execution/tiny-executable.sql
  • execution/unexpected-shell-parents.sql
  • Escalation Prep, gedetecteerd door:
  • execution/sketchy-fetchers.sql
  • execution/sketchy-fetcher-events.sql
  • c2/unexpected-talkers-linux.sql
  • c2/exotic-command-events.sql
  • c2/exotic-cmdline.sql
  • Escalation Tool Execution, gedetecteerd door:
  • execution/unexpected-executable-permissions.sql
  • execution/unexpected-executable-directory-linux.sql
  • execution/unexpected-tmp-executables.sql
  • c2/exotic-command-events.sql
  • c2/exotic-cmdline.sql
  • initial_access/unexpected-shell-parents.sql
  • evasion/missing-from-disk-linux.sql
  • Privilege Escalation, gedetecteerd door:
  • privesc/unexpected-setxid-process.sql
  • privesc/unexpected-privilege-escalation.sql
  • privesc/events/unexpected-privilege-escalation-events.sql
  • evasion/namepathmismatch.sql
  • Persistence, gedetecteerd door:
  • persistence/unexpected-cron-entries.sql
  • execution/unexpected-executable-directory-linux.sql

macOS: CloudMensis (april 2022)

Referentie: https://www.welivesecurity.com/2022/07/19/i-see-what-you-did-there-look-cloudmensis-macos-spyware/

Hieronder volgt een gedeeltelijke lijst van fasen die door specifieke queries gedetecteerd zouden zijn:

  • Initial Dropper Execution, gedetecteerd door:
  • c2/unexpected-talkers-macos.sql
  • Second Stage Execution, gedetecteerd door:
  • execution/unexpected-executable-directory-macos.sql
  • persistence/unexpected-launch-daemon-macos.sql
  • execution/unexpected-mounts.sql
  • TCC Bypass, gedetecteerd door:
  • evasion/unexpected-env-values.sql
  • Spy Agent Execution, gedetecteerd door:
  • c2/unexpected-talkers-macos.sql
  • execution/exotic-command-events.sql
  • execution/unexpected-executable-directory-macos.sql

Beleid

Bijdragen

Hulp is gewenst! Nieuwe queries worden ondersteund, mits ze eenvoudig kunnen worden bijgewerkt om vals-positieven aan te pakken. Gebruikers kunnen uitzonderingen voor vals-positieven indienen voor bekende softwarepakketten, maar kunnen worden gevraagd om bewijs voor het gedrag te leveren.

Platformondersteuning

Hoewel de focus oorspronkelijk lag op Linux en macOS, ondersteunen we de toevoeging van queries voor elk platform dat door osquery wordt ondersteund. Met name voor Windows: Chainguard beschikt zelf over geen Windows-machines, maar als u Windows-queries heeft die nuttig zijn en passen bij onze filosofie, nemen we deze graag in behandeling.

Vals-positieven

We streven ernaar om reële vals-positieven uit onze detectie-queries te sluiten. Het beheren van vals-positieven is makkelijker gezegd dan gedaan; pull requests zijn daarom welkom.

CPU-belasting

In totaal mogen queries niet meer dan 2% van de totale kloktijd per dag verbruiken op een geïmplementeerd systeem.

Intervallen

De intervallen voor implementatie worden automatisch bepaald op basis van de tags die worden ondersteund door osqtool, welke we gebruiken voor de assemblage van pakketten.