For å holde denne opplæringen kortfattet, vil vi ikke dykke dypt inn i "hva" og "hvordan" av elgstabelen. I stedet vil vi raskt og enkelt diskutere hvordan du bruker det med Osquery. Vi vil også anta at du har en arbeidskunnskap om SQL-den medfølgende guiden til tross for).
Hva er osquery?
Osquery er utviklet av Facebook, og er et tverrplattform, open source-verktøy som brukes til å spørre og overvåke systemer ved hjelp av SQL-baserte spørsmål.
Osquery kan samhandle med systemet og samle detaljert informasjon som minnebruk, løpeprosesser, lastede kjernemoduler, maskinvarehendelser, nettverkstilkoblinger osv. Verktøyet kjører på alle systemer, inkludert Windows, Linux, Mac og BSD.
Ved hjelp av Osquery kan du lage SQL -spørsmål som viser informasjon om systemet og bruke denne informasjonen til å overvåke og analysere dataene som er samlet inn.
Hvordan installere Osquery på Debian Systems
Det er veldig enkelt å installere Osquery på Debian Systems, og selv om det ikke er tilgjengelig i de viktigste Debian Repos, er det ganske greit å legge til det.
La oss se på den første metoden du kan bruke til å installere Osquery på Debian:
Det første og enkleste trinnet er å laste ned Deb -installasjonsprogrammet fra hovedsiden:
https: // pkg.Osquery.IO/Deb/Osquery_4.6.0-1.Linux_AMD64.Deb
wget https: // pkg.Osquery.IO/Deb/Osquery_4.6.0-1.Linux_AMD64.Deb
sudo dpkg -i osquery_4.6.0-1.Linux_AMD64.Deb
Vi anbefaler metoden ovenfor da Deb -pakkene har veldig få avhengigheter av de fleste Debian -distribusjoner. Imidlertid, hvis du ønsker å legge til APT, bruk neste metode.
Skriv inn følgende kommandoer for å installere Osquery fra depotene.
Eksport Osquery_Key = 1484120AC4E9F8A1A577AEEE97A80C63C9D8B80B
sudo apt-key adv-keyServer hkp: // keyserver.Ubuntu.com: 80--Recv-Keys $ osquery_key
sudo add-apt-repository 'Deb [arch = amd64] https: // pkg.Osquery.IO/Deb Main '
sudo apt-get oppdatering
sudo apt-get installer osquery
Hvordan bruke Osquery på Debian 10
Før vi dykker dypt inn i å bygge automatiserte skript og jobbe med Elk Stack, la oss diskutere litt enkel osquery -bruk på det lokale systemet.
Osquery har tre hovedkomponenter du kan bruke til å samhandle med API.
Osquery: Den første komponenten er Osqueryi, en interaktiv skalløkt. Osqueryi-modus er helt frittstående og krever ikke samhandling med Osquery-Osquery-demonen. Ved hjelp av Osqueryi -modus kan du interaktivt utføre SQL -spørsmål og utforske det nåværende systemet som ligner på et SQL -skall.
MERK: Osquery respekterer brukerområder, og hvis du kjører skallet som en vanlig brukermodus, vil du ikke ha tilgang til privilegerte tabeller.
OSQUERYD: Den andre komponenten er Osqueryd, Osquery Daemon pleide å planlegge spørsmål og registrere tilstandsendringer i bakgrunnen. Daemon fungerer ved å samle spørringsresultater utført over en spesifikk tidsramme og genererer logger som brukes til å sammenligne endringer i hver spørring.
Osqueryctl: Den tredje komponenten er Osqueryctl, et hjelperskript som brukes til å teste distribusjonskonfigurasjon. Du kan også bruke den som Osquery Service Manager, slik at du kan starte og stoppe tjenesten.
Ut av boksen er Osquery ikke annet enn et enkelt verktøy for å spørre om informasjon om systemet. Men når du kombinerer spørsmålene for å bygge godt sorterte og aggregerte data, blir det mer enn et spørringsverktøy.
For å få Rollin ', la oss starte med det grunnleggende for å forstå hvordan det fungerer:
Det første trinnet er å få hjelp med kommandoen:
sudo osqueryd -hjelp
Denne kommandoen vil vise Osquery Daemon -hjelpen, med en liste over argumenter du kan bruke i skallet.
Den neste, og den enkleste måten å samhandle med Osquery, er å bruke Osqueryi -økten. Hvis du for eksempel utfører kommandoen Osqueryi uten argument, vil du slippe inn i et SQL-lignende skall:
sudo osqueryi
Inne i Osqueryi -skallet kan du utføre kommandoer og SQL -syntaks for å velge spesifikk informasjon om systemet.
For å se hjelpemodus inne i Osqueryi -skallet, bruk kommandoen:
osquery> .hjelp
Å utføre denne kommandoen skal vise hjelp angående Osquery -økten.
Siden Osquery er en relasjonsdatabasemapper for systemet ditt, har den en liste over tabeller du kan bruke til å velge informasjon fra å bruke SQLite -spørsmål.
MERK: Osquery-spørsmål er sqlite-baserte. Du kan henvise til dokumentasjonen hvis Osquery ikke gir nok informasjon:
https: // www.sqlite.org/indeks.html
Inne i Osqueryi -skallet, bruk kommandoen:
osquery> .bord
Denne kommandoen viser tilgjengelige tabeller som inneholder systeminformasjon.
Derfra kan du velge informasjon fra tilgjengelige skjemaer. Se for eksempel informasjonen om DNS -oppløsere.
Velg * fra DNS_RESOLVERS;
Avhengig av skjemaet du sprer, vil du få en båtbelastning med informasjon og kan trenge å bruke en kombinasjon av SQL -spørsmål for å gi mening om det.
Du kan lære mer om osquery -tabeller og skjemaer fra følgende ressurs:
En grunnleggende SQL -guide
Osquery fungerer ved å bruke SQLite Syntax -spørsmål for å samle informasjon om et system. Jeg aner ikke hvorfor Facebook valgte denne ruten, men den fungerer.
Denne enkle opplæringen vil diskutere grunnleggende SQLite for å forklare hvordan du kan bruke den til å samhandle med Osquery.
MERK: Dette er på ingen måte ment å være en guide for SQL eller beslektede språk. For mer språkspesifikke guider, se den primære dokumentasjonen.
Velge spesifikke oppføringer fra en tabell
Ved hjelp av grunnleggende SQLite -syntaks kan vi velge spesifikk informasjon fra en tabell ved hjelp av SELECT -setningen som vist:
Velg PID, navn, sti fra prosesser;
Legge til SQL -funksjoner
Osquery støtter også SQL -funksjoner, slik at du kan utføre forskjellige handlinger med data samlet fra spørsmålene.
For eksempel kan tellefunksjonen tillate deg å se antall brukere i systemet ditt.
Velg Count (*) fra brukere;
Denne kommandoen vil returnere det totale antallet brukere i systemet.
Evnen for Osquery til å bruke SQL-syntaks er en enorm fordel som kan hjelpe deg med å bygge komplekse datasett som kan gi deg en mer dyptgående analyse av et system. Det skaper også en bro som SQL -utviklere som bruker motorer som PostgreSQL, MySQL og andre kan bruke til å tilpasse seg med letthet.
https: // osquery.LEDTHEDOCS.io/en/stabil/introduksjon/sql/
Et morsomt sideprosjekt
Når du utforsker Osquery videre og eksperimenterer med det, vil du oppdage at det er et omfattende og kraftig verktøy som gjør det enkelt å lage prosjekter som er spesielt innstilt for å overvåke systemene dine.
På grunn av denne opplæringens omfang, og for å unngå forvirrende nybegynnere, vil vi ikke fordype oss i komplekse prosjekter. Det som er nevnt, her er noen verktøy du kan bygge ved hjelp av Osquery:
https: // osquery.LEDTHEDOCS.io/en/stabil/distribusjon/log-aggregering/
https: // www.elastisk.CO/Guide/EN/Beats/FileBeat/7.10/FileBeat-Module-Osquery.html
https: // github.com/fleetdm/flåte
Konklusjon
I denne opplæringen så vi på det grunnleggende om Osquery, inkludert hvordan du bruker det til å samle inn systeminformasjon.
Selv om den ikke er omfattende, hadde denne guiden til hensikt å gi deg en rask og grei introduksjon til Osquery; På ingen måte var det en referanseguide.
Bruk gjerne andre ressurser for å få en dypere forståelse av de forskjellige konseptene vi har diskutert i denne opplæringen.