Installerar Osquery i Ubuntu
Osquery paket är inte tillgängliga i standard Ubuntu-arkivet, så innan vi installerar det måste vi lägga till Osquery apt repository genom att köra följande kommando i terminalen.
[e-postskyddad]: ~ $ echo "deb [arch = amd64] https: // pkg.osquery.io / deb deb main "|sudo tee / etc / apt / sources.lista.d / osquery.lista
Nu importerar vi signeringsnyckeln genom att köra följande kommando i terminalen.
[e-postskyddad]: ~ $ sudo apt-key adv --keyserver keyerver.ubuntu.com--recv-nycklar 1484120AC4E9F8A1A577AEEE97A80C63C9D8B80B
Efter att ha importerat signeringsnyckeln, uppdatera nu ditt system genom att köra följande kommando i terminalen.
[e-postskyddad]: ~ $ sudo apt-get-uppdateringInstallera nu Osquery genom att köra följande kommando
[e-postskyddad]: ~ $ sudo apt-get install osqueryEfter installationen Osquery, nu måste vi kontrollera om den har installerats korrekt genom att köra följande kommando
[e-postskyddad]: ~ $ osqueryi --versionOm det ger följande utdata är det korrekt installerat
Använda Osquery
Nu efter installationen är vi redo att använda Osquery. Kör följande kommando för att gå till interaktiv skalprompt
[e-postskyddad]: ~ $ osqueryi
Få hjälp
Nu kan vi köra SQL-baserade frågor för att få data från operativsystemet. Vi kan få hjälp om Osquery genom att köra följande kommando i det interaktiva skalet.
osquery> .hjälp
Få alla bord
Som nämnts tidigare, Osquery exponerar data från operativsystemet som en relationsdatabas så att den har all data i form av tabeller. Vi kan få alla tabeller genom att köra följande kommando i det interaktiva skalet
osquery> .tabeller
Som vi kan se att genom att köra kommandot ovan kan vi få en massa tabeller. Nu kan vi få data från dessa tabeller genom att köra SQL-baserade frågor.
Listningsinformation om alla användare
Vi kan se all information om användare genom att köra följande kommando i det interaktiva skalet
osquery> VÄLJ * FRÅN användare;Ovanstående kommando visar gid, uid, beskrivning etc. av alla användare
Vi kan också extrahera endast relevanta data om användare, till exempel vill vi bara se användarna och inte annan information om användare. Kör följande kommando i det interaktiva skalet för att få användarnamnen
osquery> VÄLJ användarnamn FRA användare;Ovanstående kommando visar alla användare i ditt system
På samma sätt kan vi få användarnamn tillsammans med den katalog där användaren finns genom att köra följande kommando.
osquery> VÄLJ användarnamn, katalog från användare;
På samma sätt kan vi fråga så många fält som vi vill genom att köra liknande kommandon.
Vi kan också få all information från specifika användare. Till exempel vill vi få all information om rotanvändaren. Vi kan få all information om rotanvändaren genom att köra följande kommando.
osquery> VÄLJ * FRÅN användare VAR användarnamn = "root";
Vi kan också få specifik data från specifika fält (kolumner). Till exempel vill vi hämta grupp-id och användarnamn för rotanvändaren. Kör följande kommando för att få dessa data.
osquery> VÄLJ användarnamn, gid FRA användare VAR användarnamn = ”root”
På det här sättet kan vi fråga allt vi vill från en tabell.
Listar alla processer
Vi kan lista de fem första processerna som körs i ubuntu genom att köra följande kommando i det interaktiva skalet
osquery> VÄLJ * FRÅN processer GRÄNS 5;
Eftersom det finns många processer som körs i systemet så har vi endast visat fem processer med hjälp av LIMIT nyckelord.
Vi kan hitta process-id för en specifik process, till exempel vill vi hitta process-id för mongodb så att vi kör följande kommando i det interaktiva skalet
osquery> VÄLJ pid FRÅN processer WHERE name = "mongod";
Hitta version av Ubuntu
Vi kan hitta versionen av vårt Ubuntu-system genom att köra följande kommando i det interaktiva skalet
osquery> VÄLJ * FRÅN os_version;Det visar oss versionen av vårt operativsystem
Kontroll av nätverksgränssnitt och IP-adresser
Vi kan kontrollera IP-adressen, nätmask för nätverksgränssnitt genom att köra följande fråga i det interaktiva skalet.
osquery> VÄLJ gränssnitt, adress, mask FRÅN gränssnittsadresserVAR gränssnittet INTE Gillar '% lo%';
Kontrollera inloggade användare
Vi kan också kontrollera inloggade användare på ditt system genom att fråga data från tabellen 'login_in_users'. Kör följande kommando för att hitta inloggade användare.
osquery> VÄLJ användare, värd, tid FRÅN inloggade_in_användare VAR tty INTE LIKE '-';
Kontrollerar systemminnet
Vi kan också kontrollera totalt minne, ledigt minne cachat minne osv. genom att köra något SQL-baserat kommando i det interaktiva skalet. För att kontrollera totalt minne kör du följande kommando. Detta ger oss totalt minne av systemet i byte.
osquery> SELECT memory_total FROM memory_info;
För att kontrollera ledigt minne i ditt system, kör följande fråga i det interaktiva skalet
osquery> VÄLJ minne_fritt FRÅN minne_info;När vi kör ovanstående kommando ger det oss ledigt minne tillgängligt i vårt system
Vi kan också kontrollera det cachade minnet i systemet med hjälp av memory_info-tabellen genom att köra följande fråga.
osquery> välj cachat från memory_info;
Listar grupperna
Vi kan hitta alla grupper i ditt system genom att köra följande fråga i det interaktiva skalet
osquery> VÄLJ * FRÅN grupper;
Visar lyssningsportar
Vi kan visa alla lyssningsportar i vårt system genom att köra följande kommando i det interaktiva skalet
osquery> VÄLJ * FRÅN lyssnande_portar;
Vi kan också kontrollera om en port lyssnar eller inte genom att köra följande kommando i det interaktiva skalet
osquery> VÄLJ port, adress FRÅN lyssningsportar VAR port = 27017;Detta ger oss utdata som visas i följande bild
Slutsats
Osquery är ett mycket användbart programverktyg för att hitta någon form av information om ditt system. Om du redan är medveten om SQL-baserade frågor är det väldigt enkelt att använda för dig eller om du inte känner till SQL-baserade frågor så har jag försökt mitt bästa för att visa dig några större frågor som är användbara för att hitta data. Du kan hitta vilken typ av data som helst från vilken tabell som helst genom att köra liknande frågor.