GNU/Linux >> Znalost Linux >  >> Linux

Jak nastavit monitorování integrity souborů (FIM) pomocí osquery v systému Linux

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

  1. Nainstalujte osquery na server Linux
  2. Povolit spotřebu Syslog pro osquery
  3. Základní konfigurace osquery
  4. Nakonfigurujte osquery monitorování integrity souborů
  5. 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.


Linux
  1. Co je NFS a jak jej nainstalovat na Linux

  2. Jak rozdělit iso nebo soubor pomocí příkazu „split“ v Linuxu

  3. Jak nainstalovat soubor .dsc na linux

  1. Jak vytvořit soubor v Linuxu pomocí terminálu/příkazového řádku

  2. Jak nastavit souborový server vsftpd FTP na Redhat 7 Linux

  3. Jak nainstalovat Go na Debian 10 Linux

  1. Jak rozšířit odkládací prostor pomocí odkládacího souboru v Linuxu

  2. Jak monitorovat váš Linux Server pomocí osquery

  3. Jak sdílet soubory lokálně v Linuxu pomocí NitroShare