GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengatur Pemantauan Integritas File (FIM) menggunakan osquery di Linux

Osquery adalah instrumentasi, pemantauan, dan analitik sistem operasi open source. Dibuat oleh Facebook, ini memperlihatkan sistem operasi sebagai database relasional berkinerja tinggi yang dapat dikueri menggunakan kueri berbasis SQL.

Osquery adalah software multi-platform, dapat diinstal di Linux, Windows, MacOS, dan FreeBSD. Ini memungkinkan kita untuk menjelajahi semua profil sistem operasi tersebut, kinerja, pemeriksaan keamanan, dll, menggunakan kueri berbasis SQL.

Dalam tutorial ini, kami akan menunjukkan cara men-setup File Integrity Monitoring (FIM) menggunakan osquery. Kami akan menggunakan sistem operasi Linux Ubuntu 18.04 dan CentOS 7.

Prasyarat

  • Linux (Ubuntu atau CentOS)
  • Hak istimewa root
  • Panduan osquery pertama yang telah diselesaikan

Apa yang akan kami lakukan

  1. Instal osquery di Server Linux
  2. Aktifkan Konsumsi Syslog untuk osquery
  3. Konfigurasi osquery Dasar
  4. Mengonfigurasi osquery Pemantauan Integritas File
  5. Pengujian

Langkah 1 - Instal osquery di Server Linux

Osquery menyediakan repositorinya sendiri untuk semua instalasi platform, dan langkah pertama yang akan kita lakukan adalah menginstal paket osquery DARI repositori resmi osquery.

Di Ubuntu

Tambahkan kunci osquery ke sistem.

export OSQUERY_KEY=1484120AC4E9F8A1A577AEEE97A80C63C9D8B80B
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $OSQUERY_KEY

Tambahkan repositori osquery dan instal paketnya.

sudo add-apt-repository 'deb [arch=amd64] https://pkg.osquery.io/deb deb main'
sudo apt install osquery -y

Di CentOS

Tambahkan kunci osquery ke sistem.

curl -L https://pkg.osquery.io/rpm/GPG | sudo tee /etc/pki/rpm-gpg/RPM-GPG-KEY-osquery

Tambahkan dan aktifkan repositori osquery, dan instal paketnya.

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

Tunggu hingga semua paket terinstal.

Catatan:

Jika Anda mendapatkan kesalahan tentang perintah yum-config-manager.

sudo: yum-config-manager: command not found

Instal paket 'yum-utils'.

yum -y install yum-utils

Langkah 2 - Aktifkan Konsumsi Syslog di osquery

Osquery menyediakan fitur untuk membaca atau menggunakan log sistem pada Apple MacOS menggunakan Apple System Log (ASL), dan untuk Linux menggunakan syslog.

Pada langkah ini, kita akan mengaktifkan konsumsi syslog untuk osquery melalui rsyslog.

Di Ubuntu

Instal paket rsyslog menggunakan perintah apt di bawah ini.

sudo apt install rsyslog -y

Di CentOS

Instal paket rsyslog menggunakan perintah yum di bawah ini.

sudo yum install rsyslog -y

Setelah instalasi selesai, masuk ke direktori '/etc/rsyslog.d' dan buat file konfigurasi baru osquery.conf.

cd /etc/rsyslog.d/
vim osquery.conf

Tempelkan konfigurasi berikut di sana.

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")

Simpan dan keluar.

Langkah 3 - Konfigurasi Dasar osquery

konfigurasi default osquery adalah 'osquery.conf', biasanya terletak di direktori '/etc/osquery'. Ada contoh konfigurasi osquery '/usr/share/osquery/osquery.conf' dan contoh konfigurasi paket osquery.

Pada langkah ini, kita akan mempelajari tentang komponen konfigurasi osquery, membuat konfigurasi osquery kustom, dan kemudian menerapkan osqueryd sebagai layanan.

konfigurasi osquery yang diformat sebagai file JSON berisi spesifikasi konfigurasi osquery yang dijelaskan di bawah ini.

  • Opsi:bagian dari perintah osqueryd CLI dan menentukan aplikasi mulai dan inisialisasi.
  • Jadwal:Tentukan aliran nama kueri terjadwal ke detail kueri.
  • Dekorator:Digunakan untuk menambahkan "dekorasi" tambahan ke log hasil dan cuplikan.
  • Paket:sekelompok kueri jadwal.
  • Lainnya:Jalur File, YARA, Prometheus, Tampilan, EC2, Konfigurasi Chef.

Buka direktori '/etc/osquery' dan buat konfigurasi kustom baru 'osquery.conf'.

cd /etc/osquery/
vim osquery.conf

Tempelkan konfigurasi berikut di sana.

{
    "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"
    }
}

Simpan dan keluar.

Catatan:

  • Kami menggunakan 'filesystem' sebagai plugin config dan logger.
  • Tentukan jalur logger ke direktori '/var/log/osquery'.
  • Aktifkan pip syslog ke file '/var/syslog/syslog_pipe'.
  • Pada penjadwal, kami mendefinisikan tiga kueri untuk memeriksa crontab, info sistem, dan login ssh.
  • Aktifkan paket osquery bernama 'osquery-monitoring', dan paket file yang terletak di direktori '/usr/share/osquery/packs'.

Sekarang jalankan layanan daemon osqueryd dan aktifkan untuk diluncurkan setiap kali sistem boot.

systemctl start osqueryd
systemctl enable osqueryd

Dan restart layanan rsyslog.

systemctl restart rsyslog

osquery konfigurasi dasar telah selesai.

Langkah 4 - Konfigurasi Pemantauan Integritas File (FIM) Menggunakan osquery

Osquery menyediakan Pemantauan Integritas File di Linux dan MacOS Darwin menggunakan inotify dan FSEvents. Sederhananya, ini memantau dan mendeteksi setiap perubahan file pada direktori yang ditentukan menggunakan 'file_path' dan kemudian menyimpan semua aktivitas ke tabel file_events.

Pada langkah ini, kita akan mengkonfigurasi osquery untuk memantau direktori penting seperti home, direktori ssh, dll, tmp, dan direktori root web www menggunakan paket FIM khusus.

Buka direktori '/usr/share/osquery/packs' dan buat file konfigurasi paket baru 'fim.conf'.

cd /usr/share/osquery/packs
vim fim.conf

Tempelkan konfigurasi di bawah.

{
  "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/%%"
      ]
  }
}

Simpan dan keluar.

Sekarang kembali ke direktori konfigurasi '/etc/osquery' dan edit file osquery.conf.

cd /etc/osquery/
vim osquery.conf

Tambahkan konfigurasi paket Pemantauan Integritas File di dalam bagian 'paket'.

    "packs": {
        "osquery-monitoring": "/usr/share/osquery/packs/osquery-monitoring.conf",
        "fim": "/usr/share/osquery/packs/fim.conf"
    }

Simpan dan keluar, lalu mulai ulang layanan osqueryd.

systemctl restart osqueryd


Catatan:

Cek terus file konfigurasi JSON menggunakan linter JSON 'http://jsonlint.com/' dan pastikan tidak ada error.

Langkah 5 - Pengujian

Kami akan menguji paket Pemantauan Integritas File dengan membuat file baru di direktori 'home' dan 'www' yang ditentukan.

Buka direktori '/var/www/' dan buat file baru bernama 'howtoforge.md'.

cd /var/www/
touch howtoforge.md

Buka direktori '/home/youruser/' dan buat file baru bernama 'hakase-labs.md'.

cd /home/vagrant/
touch hakase-labs.md

Sekarang kita akan memeriksa semua pemantauan log menggunakan mode interaktif real-time osqueryi dan log hasil osquery.

osqueryi

Jalankan perintah osqueryi di bawah ini.

osqueryi --config-path /etc/osquery/osquery.conf

Sekarang periksa semua log tentang perubahan file di tabel 'file_events'.

Untuk perubahan global.

select * from file_events;

Untuk direktori 'home'.

select target_path, category, action, atime, ctime, mtime from file_events WHERE category="home";

Untuk direktori root web 'www'.

select target_path, category, action, atime, ctime, mtime from file_events WHERE category="www";

log hasil osqueryd

Masuk ke direktori '/var/log/osquery' dan Anda akan mendapatkan file 'osqueryd.results.log'.

cd /var/log/osquery/
ls -lah osqueryd.results.log

Filter log osquery menggunakan perintah 'grep'.

grep -rin howtoforge.md osqueryd.results.log
grep -rin hakase-labs.md osqueryd.results.log

Anda akan melihat info tentang file yang telah dibuat.

Instalasi dan konfigurasi File Integrity Monitoring (FIM) di Linux Server Ubuntu dan CentOS menggunakan osquery telah berhasil diselesaikan.


Linux
  1. Apa itu NFS dan bagaimana cara menginstalnya di Linux

  2. Cara membagi iso atau file menggunakan perintah 'split' di Linux

  3. Cara menginstal file .dsc di linux

  1. Cara Membuat File di Linux Menggunakan Terminal/Command Line

  2. Cara setup vsftpd FTP file Server di Redhat 7 Linux

  3. Cara Menginstal Go di Debian 10 Linux

  1. Cara Memperpanjang Ruang Swap menggunakan file Swap di Linux

  2. Cara Memantau Server Linux Anda menggunakan osquery

  3. Cara berbagi file secara lokal di Linux dengan menggunakan NitroShare