Osquery je nástroj pro instrumentaci, monitorování a analýzu operačního systému s otevřeným zdrojovým kódem. Vytvořil ji Facebook a odhaluje operační systém jako vysoce výkonnou relační databázi, kterou lze dotazovat pomocí dotazů založených na SQL.
Osquery je multiplatformní software, lze jej nainstalovat na Linux, Windows, MacOS a FreeBSD. Umožňuje nám prozkoumat profil, výkon, bezpečnostní kontrolu atd. všech těchto operačních systémů pomocí dotazů založených na SQL.
V tomto tutoriálu vám ukážeme, jak nastavit sledování integrity souborů (FIM) pomocí osquery. Budeme používat operační systémy Linux Ubuntu 18.04 a CentOS 7.
Předpoklady
- Linux (Ubuntu nebo CentOS)
- Oprávnění uživatele root
- Dokončený první průvodce osquery
Co uděláme
- Nainstalujte osquery na server Linux
- Povolit spotřebu Syslog pro osquery
- Základní konfigurace osquery
- Nakonfigurujte osquery monitorování integrity souborů
- Testování
Krok 1 – Instalace osquery na Linux Server
Osquery poskytuje své vlastní úložiště pro instalaci všech platforem a prvním krokem, který uděláme, je instalace balíčku osquery Z oficiálního úložiště osquery.
Na Ubuntu
Přidejte klíč osquery do systému.
export OSQUERY_KEY=1484120AC4E9F8A1A577AEEE97A80C63C9D8B80B
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $OSQUERY_KEY
Přidejte úložiště osquery a nainstalujte balíček.
sudo add-apt-repository 'deb [arch=amd64] https://pkg.osquery.io/deb deb main'
sudo apt install osquery -y
V systému CentOS
Přidejte klíč osquery do systému.
curl -L https://pkg.osquery.io/rpm/GPG | sudo tee /etc/pki/rpm-gpg/RPM-GPG-KEY-osquery
Přidejte a povolte úložiště osquery a nainstalujte balíček.
sudo yum-config-manager --add-repo https://pkg.osquery.io/rpm/osquery-s3-rpm.repo
sudo yum-config-manager --enable osquery-s3-rpm
sudo yum install osquery -y
Počkejte, až se nainstalují všechny balíčky.
Poznámka:
Pokud se zobrazí chyba o příkazu yum-config-manager.
sudo: yum-config-manager: command not found
Nainstalujte balíček 'yum-utils'.
yum -y install yum-utils
Krok 2 – Povolení spotřeby Syslog v osquery
Osquery poskytuje funkce pro čtení nebo používání systémových protokolů na Apple MacOS pomocí Apple System Log (ASL) a pro Linux používá syslog.
V tomto kroku povolíme spotřebu syslog pro osquery prostřednictvím rsyslog.
Na Ubuntu
Nainstalujte balíček rsyslog pomocí příkazu apt níže.
sudo apt install rsyslog -y
V systému CentOS
Nainstalujte balíček rsyslog pomocí příkazu yum níže.
sudo yum install rsyslog -y
Po dokončení instalace přejděte do adresáře '/etc/rsyslog.d' a vytvořte nový konfigurační soubor osquery.conf.
cd /etc/rsyslog.d/
vim osquery.conf
Zde vložte následující konfiguraci.
template( name="OsqueryCsvFormat" type="string" string="%timestamp:::date-rfc3339,csv%,%hostname:::csv%,%syslogseverity:::csv%,%syslogfacility-text:::csv%,%syslogtag:::csv%,%msg:::csv%\n" ) *.* action(type="ompipe" Pipe="/var/osquery/syslog_pipe" template="OsqueryCsvFormat")
Uložte a ukončete.
Krok 3 – Základní konfigurační osquery
Výchozí konfigurace osquery je 'osquery.conf', obvykle umístěná v adresáři '/etc/osquery'. Jsou zde ukázky konfigurace osquery '/usr/share/osquery/osquery.conf' a ukázka konfigurace osquery packů.
V tomto kroku se seznámíme s komponentami konfigurace osquery, vytvoříme vlastní konfiguraci osquery a poté nasadíme osqueryd jako službu.
Konfigurace osquery naformátovaná jako soubor JSON obsahuje specifikace konfigurace osquery popsané níže.
- Možnosti:součást příkazu osqueryd CLI, která určuje spouštění a inicializaci aplikací.
- Plán:Definujte tok názvů naplánovaných dotazů k podrobnostem dotazu.
- Dekorátory:Používá se k přidávání dalších „ozdob“ k výsledkům a protokolům snímků.
- Balíčky:skupina plánovacích dotazů.
- Více:Cesta k souboru, YARA, Prometheus, Zobrazení, EC2, Konfigurace šéfkuchaře.
Přejděte do adresáře '/etc/osquery' a vytvořte novou vlastní konfiguraci 'osquery.conf'.
cd /etc/osquery/
vim osquery.conf
Zde vložte následující konfigurace.
{ "options": { "config_plugin": "filesystem", "logger_plugin": "filesystem", "logger_path": "/var/log/osquery", "disable_logging": "false", "log_result_events": "true", "schedule_splay_percent": "10", "pidfile": "/var/osquery/osquery.pidfile", "events_expiry": "3600", "database_path": "/var/osquery/osquery.db", "verbose": "false", "worker_threads": "2", "enable_monitor": "true", "disable_events": "false", "disable_audit": "false", "audit_allow_config": "true", "host_identifier": "hakase-labs", "enable_syslog": "true", "syslog_pipe_path": "/var/osquery/syslog_pipe", "force": "true", "audit_allow_sockets": "true", "schedule_default_interval": "3600" }, "schedule": { "crontab": { "query": "SELECT * FROM crontab;", "interval": 300 }, "system_info": { "query": "SELECT hostname, cpu_brand, physical_memory FROM system_info;", "interval": 3600 }, "ssh_login": { "query": "SELECT username, time, host FROM last WHERE type=7", "interval": 360 } }, "decorators": { "load": [ "SELECT uuid AS host_uuid FROM system_info;", "SELECT user AS username FROM logged_in_users ORDER BY time DESC LIMIT 1;" ] }, "packs": { "osquery-monitoring": "/usr/share/osquery/packs/osquery-monitoring.conf" } }
Uložte a ukončete.
Poznámka:
- Používáme 'souborový systém' jako zásuvný modul pro konfiguraci a protokolování.
- Definujte cestu loggeru k adresáři '/var/log/osquery'.
- Povolte pip syslog do souboru '/var/syslog/syslog_pipe'.
- V plánovači definujeme tři dotazy pro kontrolu crontab, systémových informací a přihlášení ssh.
- Povolte balíčky osquery s názvem 'osquery-monitoring' a soubory balíčků umístěné v adresáři '/usr/share/osquery/packs'.
Nyní spusťte službu démona osqueryd a povolte její spuštění při každém spuštění systému.
systemctl start osqueryd
systemctl enable osqueryd
A restartujte službu rsyslog.
systemctl restart rsyslog
Základní konfigurační osquery byla dokončena.
Krok 4 – Konfigurace monitorování integrity souborů (FIM) pomocí osquery
Osquery poskytuje monitorování integrity souborů na Linuxu a MacOS Darwin pomocí inotify a FSEvents. Jednoduše monitoruje a detekuje jakékoli změny souborů v definovaném adresáři pomocí 'file_path' a poté ukládá veškerou aktivitu do tabulky file_events.
V tomto kroku nakonfigurujeme osquery pro sledování důležitých adresářů, jako je domovský adresář, adresář ssh atd., tmp a kořenový adresář www webu pomocí vlastních balíčků FIM.
Přejděte do adresáře '/usr/share/osquery/packs' a vytvořte nový konfigurační soubor balíčků 'fim.conf'.
cd /usr/share/osquery/packs
vim fim.conf
Vložte konfigurace níže.
{ "queries": { "file_events": { "query": "SELECT * FROM file_events;", "removed": false, "interval": 300 } }, "file_paths": { "homes": [ "/root/.ssh/%%", "/home/%/.ssh/%%" ], "etc": [ "/etc/%%" ], "home": [ "/home/%%" ], "tmp": [ "/tmp/%%" ], "www": [ "/var/www/%%" ] } }
Uložte a ukončete.
Nyní zpět do konfiguračního adresáře '/etc/osquery' a upravte soubor osquery.conf.
cd /etc/osquery/
vim osquery.conf
Přidejte konfiguraci balíčků pro monitorování integrity souborů do sekce 'balíčky'.
"packs": { "osquery-monitoring": "/usr/share/osquery/packs/osquery-monitoring.conf", "fim": "/usr/share/osquery/packs/fim.conf" }
Uložte a ukončete, poté restartujte službu osqueryd.
systemctl restart osqueryd
Poznámka:
Pokračujte v kontrole konfiguračního souboru JSON pomocí linteru JSON 'http://jsonlint.com/' a ujistěte se, že nedošlo k chybě.
Krok 5 – Testování
Balíčky File Integrity Monitoring otestujeme vytvořením nového souboru v definovaném adresáři 'home' a 'www'.
Přejděte do adresáře '/var/www/' a vytvořte nový soubor s názvem 'howtoforge.md'.
cd /var/www/
touch howtoforge.md
Přejděte do adresáře '/home/youruser/' a vytvořte nový soubor s názvem 'hakase-labs.md'.
cd /home/vagrant/
touch hakase-labs.md
Nyní zkontrolujeme monitorování všech protokolů pomocí interaktivního režimu osqueryi v reálném čase a protokolů výsledků osquery.
osqueryi
Spusťte níže uvedený příkaz osqueryi.
osqueryi --config-path /etc/osquery/osquery.conf
Nyní zkontrolujte všechny protokoly o změnách souborů v tabulce 'file_events'.
Pro globální změny.
select * from file_events;
Pro 'domovský' adresář.
select target_path, category, action, atime, ctime, mtime from file_events WHERE category="home";
Pro webový kořenový adresář 'www'.
select target_path, category, action, atime, ctime, mtime from file_events WHERE category="www";
protokol výsledků osqueryd
Přejděte do adresáře '/var/log/osquery' a získáte soubor 'osqueryd.results.log'.
cd /var/log/osquery/
ls -lah osqueryd.results.log
Filtrujte protokoly osquery pomocí příkazu 'grep'.
grep -rin howtoforge.md osqueryd.results.log
grep -rin hakase-labs.md osqueryd.results.log
Uvidíte, že informace o tomto souboru byly vytvořeny.
Instalace a konfigurace File Integrity Monitoring (FIM) na Linux Server Ubuntu a CentOS pomocí osquery byla úspěšně dokončena.