De osquery-defense-kit (ODK) is een collectie van meer dan 250 queries die specifiek zijn ontworpen voor gebruik in productie-pipelines voor detectie en respons. De kit is primair gericht op Linux en macOS, maar staat open voor uitbreiding naar andere platformen zoals Windows.
Belangrijkste kenmerken:
- Detectie-aanpak: De queries zijn zo geformuleerd dat ze bij normaal gedrag nul rijen retourneren, waardoor elke resultaat direct een waarschuwing (alert) kan triggeren.
- Organisatie: De kit is onderverdeeld in
detection (gebaseerd op MITRE ATT&CK tactieken), policy (beveiligingsbeleid) en incident_response (dataverzameling voor bewijsvoering).
- Praktische toepassing: Aan de hand van casestudies (zoals de malware Shikitega en CloudMensis) wordt aangetoond welke specifieke queries effectief zijn in het detecteren van verschillende fasen van een aanval.
- Beleid: Er wordt strikt toegezien op het minimaliseren van vals-positieven en een maximale CPU-belasting van 2% per dag.
Voor gebruik is osquery v5.7.0 of hoger vereist; voor lokale ontwikkeling is daarnaast Go v1.20+ nodig.
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.
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.