GNU/Linux >> Tutoriels Linux >  >> Linux

Comment configurer la surveillance de l'intégrité des fichiers (FIM) à l'aide d'osquery sous Linux

Osquery est une instrumentation, une surveillance et une analyse de système d'exploitation open source. Créé par Facebook, il expose un système d'exploitation sous la forme d'une base de données relationnelle hautes performances qui peut être interrogée à l'aide de requêtes basées sur SQL.

Osquery est un logiciel multiplateforme pouvant être installé sur Linux, Windows, MacOS et FreeBSD. Cela nous permet d'explorer le profil, les performances, les contrôles de sécurité, etc. de tous ces systèmes d'exploitation, à l'aide de requêtes basées sur SQL.

Dans ce didacticiel, nous allons vous montrer comment configurer la surveillance de l'intégrité des fichiers (FIM) à l'aide d'osquery. Nous utiliserons les systèmes d'exploitation Linux Ubuntu 18.04 et CentOS 7.

Prérequis

  • Linux (Ubuntu ou CentOS)
  • Privilèges root
  • Achèvement du premier guide d'osquerie

Ce que nous allons faire

  1. Installer osquery sur le serveur Linux
  2. Activer la consommation Syslog pour osquery
  3. Configuration de base de l'osquerie
  4. Configurer l'osquery de surveillance de l'intégrité des fichiers
  5. Test

Étape 1 - Installer osquery sur le serveur Linux

Osquery fournit son propre référentiel pour toutes les installations de plate-forme, et la première étape que nous allons faire est d'installer le package osquery À PARTIR du référentiel officiel osquery.

Sur Ubuntu

Ajoutez la clé osquery au système.

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

Ajoutez le référentiel osquery et installez le package.

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

Sur CentOS

Ajoutez la clé osquery au système.

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

Ajoutez et activez le référentiel osquery, puis installez le package.

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

Attendez que tous les packages soient installés.

Remarque :

Si vous obtenez l'erreur concernant la commande yum-config-manager.

sudo: yum-config-manager: command not found

Installez le package 'yum-utils'.

yum -y install yum-utils

Étape 2 - Activer la consommation Syslog dans osquery

Osquery fournit des fonctionnalités pour lire ou consommer les journaux système sur Apple MacOS à l'aide du journal système Apple (ASL), et pour Linux, il utilise le journal système.

Dans cette étape, nous allons activer la consommation syslog pour osquery via le rsyslog.

Sur Ubuntu

Installez le package rsyslog à l'aide de la commande apt ci-dessous.

sudo apt install rsyslog -y

Sur CentOS

Installez le package rsyslog à l'aide de la commande yum ci-dessous.

sudo yum install rsyslog -y

Une fois l'installation terminée, accédez au répertoire '/etc/rsyslog.d' et créez un nouveau fichier de configuration osquery.conf.

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

Collez-y la configuration suivante.

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

Enregistrez et quittez.

Étape 3 - Osquery de configuration de base

La configuration par défaut d'osquery est 'osquery.conf', généralement située dans le répertoire '/etc/osquery'. Il existe des exemples de la configuration osquery '/usr/share/osquery/osquery.conf' et un exemple de configuration des packs osquery.

Dans cette étape, nous allons découvrir les composants de configuration osquery, créer la configuration osquery personnalisée, puis déployer osqueryd en tant que service.

La configuration osquery formatée en tant que fichier JSON contient les spécifications de configuration osquery décrites ci-dessous.

  • Options :fait partie de la commande CLI osqueryd et détermine le démarrage et l'initialisation des applications.
  • Planification :définissez le flux des noms de requêtes planifiées vers les détails de la requête.
  • Décorateurs :utilisés pour ajouter des "décorations" supplémentaires aux résultats et aux journaux d'instantanés.
  • Packs :un groupe de requêtes de planification.
  • Plus :Chemin d'accès au fichier, YARA, Prometheus, Vues, ​​EC2, Configuration du chef.

Allez dans le répertoire '/etc/osquery' et créez une nouvelle configuration personnalisée 'osquery.conf'.

cd /etc/osquery/
vim osquery.conf

Collez-y les configurations suivantes.

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

Enregistrez et quittez.

Remarque :

  • Nous utilisons le "système de fichiers" comme plug-ins de configuration et d'enregistrement.
  • Définissez le chemin de l'enregistreur vers le répertoire '/var/log/osquery'.
  • Activez le pip syslog vers le fichier '/var/syslog/syslog_pipe'.
  • Sur le planificateur, nous définissons trois requêtes pour vérifier la crontab, les informations système et la connexion ssh.
  • Activez les packs osquery nommés "osquery-monitoring" et les fichiers de packs situés dans le répertoire "/usr/share/osquery/packs".

Démarrez maintenant le service démon osqueryd et activez-le pour qu'il se lance à chaque démarrage du système.

systemctl start osqueryd
systemctl enable osqueryd

Et redémarrez le service rsyslog.

systemctl restart rsyslog

La requête de configuration de base est terminée.

Étape 4 - Configurer la surveillance de l'intégrité des fichiers (FIM) à l'aide d'osquery

Osquery fournit une surveillance de l'intégrité des fichiers sur Linux et MacOS Darwin en utilisant inotify et FSEvents. Simplement, il surveille et détecte tout changement de fichiers sur le répertoire défini en utilisant le 'file_path', puis stocke toute l'activité dans la table file_events.

Dans cette étape, nous allons configurer osquery pour surveiller les répertoires importants tels que home, le répertoire ssh, etc., tmp et le répertoire racine Web www à l'aide de packs FIM personnalisés.

Allez dans le répertoire '/usr/share/osquery/packs' et créez un nouveau fichier de configuration de packs 'fim.conf'.

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

Collez les configurations ci-dessous.

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

Enregistrez et quittez.

Maintenant, revenez au répertoire de configuration '/etc/osquery' et modifiez le fichier osquery.conf.

cd /etc/osquery/
vim osquery.conf

Ajoutez la configuration des packs de surveillance de l'intégrité des fichiers dans la section "packs".

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

Enregistrez et quittez, puis redémarrez le service osqueryd.

systemctl restart osqueryd


Remarque :

Continuez à vérifier le fichier de configuration JSON à l'aide du linter JSON 'http://jsonlint.com/' et assurez-vous qu'il n'y a pas d'erreur.

Étape 5 - Tester

Nous allons tester les packs File Integrity Monitoring en créant un nouveau fichier sur le répertoire défini 'home' et 'www'.

Allez dans le répertoire '/var/www/' et créez un nouveau fichier nommé 'howtoforge.md'.

cd /var/www/
touch howtoforge.md

Allez dans le répertoire '/home/youruser/' et créez un nouveau fichier nommé 'hakase-labs.md'.

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

Nous allons maintenant vérifier tous les journaux de surveillance à l'aide du mode interactif en temps réel osqueryi et les journaux des résultats d'osquery.

osqueryi

Exécutez la commande osqueryi ci-dessous.

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

Vérifiez maintenant tous les journaux sur les modifications de fichiers dans la table 'file_events'.

Pour les modifications globales.

select * from file_events;

Pour le répertoire 'home'.

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

Pour le répertoire racine Web 'www'.

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

journal des résultats osqueryd

Allez dans le répertoire '/var/log/osquery' et vous obtiendrez le fichier 'osqueryd.results.log'.

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

Filtrez les journaux d'osquery à l'aide de la commande 'grep'.

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

Vous verrez des informations sur ces fichiers ont été créés.

L'installation et la configuration de File Integrity Monitoring (FIM) sur Linux Server Ubuntu et CentOS à l'aide d'osquery ont été effectuées avec succès.


Linux
  1. Comment créer un fichier sous Linux à l'aide d'un terminal/ligne de commande

  2. Comment configurer le serveur de fichiers FTP vsftpd sur Redhat 7 Linux

  3. Qu'est-ce que NFS et comment l'installer sous Linux

  4. Comment diviser un iso ou un fichier à l'aide de la commande 'split' sous Linux

  5. Comment installer un fichier .dsc sous Linux

Comment configurer un serveur multimédia en streaming à l'aide de Jellyfin sous Linux

Comment formater des programmes Shell à l'aide de Shfmt sous Linux

Comment configurer le pare-feu avec UFW sous Linux

Comment configurer le pare-feu avec Gufw sur le bureau Linux

Comment configurer un serveur de fichiers de base à l'aide de simpleHTTPserver

Comment installer l'outil de surveillance du système Gtop sous Linux