Comment envoyer des logs vers une plateforme SIEM externe
Cette page décrit des procédures pour envoyer des logs vers une plateforme externe de gestion des informations et événements de sécurité (SIEM). Cette procédure s'applique aux déploiements sur site de la solution. Pour les déploiements SaaS, contactez OKIOK si vous avez besoin d'accéder aux journaux d'audit.
Le portail S-Filer utilise Log4J comme framework de journalisation, ce qui offre la flexibilité d'envoyer des logs vers des plateformes SIEM via différentes méthodes.
Avertissement
La modification de la configuration de Log4J est prise en charge par OKIOK, mais ne fait pas partie de la procédure d'installation standard. Il peut être nécessaire de réappliquer ces modifications après une mise à niveau.
Vue d'ensemble
Il existe deux approches principales pour envoyer des logs vers une plateforme SIEM externe :
- Intégration syslog directe : Utiliser un appendeur syslog pour envoyer des logs directement à un SIEM qui agit comme serveur syslog (ou syslog-ng).
- Intégration basée sur les fichiers : Configurer Log4J pour écrire des logs au format JSONL (JSON Lines), puis utiliser l'agent natif du SIEM (Logstash, Vector, etc.) pour lire les fichiers de logs et les envoyer au SIEM.
Méthode 1 : Intégration syslog directe
Cette méthode envoie des logs directement du portail S-Filer vers votre plateforme SIEM en utilisant le protocole syslog. C'est l'approche la plus simple lorsque votre SIEM prend en charge la réception syslog.
Pour des instructions détaillées sur la configuration de l'appendeur syslog, consultez le guide Comment envoyer des audits vers syslog.
Avantages de l'intégration syslog directe
- Livraison de logs en temps réel
- Aucun stockage de fichiers intermédiaire requis
- Latence plus faible
- Architecture plus simple
Considérations
- Nécessite une connectivité réseau entre le portail S-Filer et le SIEM
- Peut nécessiter la configuration de règles de pare-feu
- Le SIEM doit prendre en charge la réception syslog (UDP, TCP ou TLS sur TCP)
Méthode 2 : Intégration basée sur les fichiers avec des agents SIEM
Cette méthode implique deux étapes :
- Configurer Log4J pour écrire des logs au format JSONL dans des fichiers
- Déployer un agent SIEM (Logstash, Vector, Filebeat, etc.) pour lire ces fichiers et les transférer vers votre plateforme SIEM
Avantages de l'intégration basée sur les fichiers
- Fonctionne avec tout SIEM qui prend en charge la collecte de logs basée sur les fichiers
- Peut mettre en mémoire tampon les logs si le SIEM est temporairement indisponible
- Permet la transformation et l'enrichissement des logs avant l'envoi
- Plus flexible pour les architectures SIEM complexes
Étape 1 : Configurer la journalisation JSONL
Configurez Log4J pour écrire les logs d'audit au format JSONL. Le format JSONL stocke un objet JSON par ligne, ce qui facilite l'analyse par les agents de collecte de logs.
Voici un exemple de configuration qui écrit les logs d'audit dans un fichier JSONL :
<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorinterval="30" status="info" strict="true">
<Appenders>
<RollingFile name="audit-jsonl" fileName="logs/audit.jsonl" filePattern="logs/audit-%d{yyyy-MM-dd}.jsonl">
<JsonTemplateLayout eventTemplateUri="classpath:sfiler-ecs-layout.json"/>
<Policies>
<SizeBasedTriggeringPolicy size="256MB"/>
</Policies>
<DefaultRolloverStrategy max="10"/>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="AUDIT" level="INFO">
<appender-ref ref="audit-jsonl"/>
</Logger>
</Loggers>
</Configuration>Cette configuration :
- Écrit les logs d'audit dans
logs/audit.jsonl - Fait tourner les fichiers quotidiennement ou lorsqu'ils atteignent 256MB
- Conserve jusqu'à 10 fichiers archivés
- Utilise le format ECS (Elastic Common Schema) pour la journalisation structurée
Pour plus d'informations sur l'utilisation du format de journalisation ECS, consultez le guide Journalisation ECS.
Étape 2 : Configurer l'agent SIEM
Après avoir configuré la journalisation JSONL, déployez et configurez un agent SIEM pour lire les fichiers de logs et les transférer vers votre plateforme SIEM.
Exemple : Configuration Logstash
Si vous utilisez Logstash comme agent SIEM, voici un exemple de configuration :
input {
file {
path => "/path/to/sfiler/logs/audit.jsonl"
start_position => "beginning"
codec => "json"
sincedb_path => "/var/lib/logstash/sincedb/audit"
}
}
filter {
# Ajoutez ici toutes les transformations ou enrichissements
# Par exemple, analyser les horodatages, ajouter des champs, etc.
date {
match => [ "timestamp", "ISO8601" ]
}
}
output {
# Exemple : Envoyer vers Elasticsearch
elasticsearch {
hosts => ["https://your-elasticsearch-host:9200"]
index => "sfiler-audit-%{+YYYY.MM.dd}"
user => "elastic"
password => "your-password"
}
# Ou envoyer vers d'autres plateformes SIEM
# Exemple : Splunk
# http {
# url => "https://your-splunk-host:8088/services/collector"
# http_method => "post"
# headers => {
# "Authorization" => "Splunk your-token"
# }
# }
}Exemple : Configuration Vector
Si vous utilisez Vector comme agent SIEM, voici un exemple de configuration :
[sources.sfiler_audit]
type = "file"
include = ["/path/to/sfiler/logs/audit*.jsonl"]
read_from = "beginning"
[transforms.parse_json]
type = "remap"
inputs = ["sfiler_audit"]
source = '''
. = parse_json!(.message)
'''
[sinks.siem_output]
type = "elasticsearch"
inputs = ["parse_json"]
endpoint = "https://your-elasticsearch-host:9200"
index = "sfiler-audit-%Y.%m.%d"
auth.strategy = "basic"
auth.user = "elastic"
auth.password = "your-password"Exemple : Configuration Filebeat
Si vous utilisez Filebeat, voici un exemple de configuration :
filebeat.inputs:
- type: log
enabled: true
paths:
- /path/to/sfiler/logs/audit*.jsonl
json.keys_under_root: true
json.add_error_key: true
output.elasticsearch:
hosts: ["https://your-elasticsearch-host:9200"]
index: "sfiler-audit-%{+yyyy.MM.dd}"
username: "elastic"
password: "your-password"Emplacement des fichiers de logs
Par défaut, les fichiers de logs sont écrits dans le répertoire logs/ relatif à l'installation du portail S-Filer. Le chemin exact dépend de votre déploiement :
- Installation autonome : Généralement
$SFILER_HOME/logs/ - Installation Docker : Vérifiez la configuration du montage de volume
- Installation en service : Vérifiez le répertoire de travail du service
Assurez-vous que l'agent SIEM a un accès en lecture au répertoire des fichiers de logs.
Gestion de la rotation des logs
Le portail S-Filer fait tourner les fichiers de logs en fonction de la taille et de la date. Les agents SIEM doivent être configurés pour :
- Surveiller le modèle de fichier de logs (par exemple,
audit*.jsonl) pour récupérer les fichiers tournés - Gérer la rotation des fichiers de manière gracieuse sans perdre d'entrées de logs
- Suivre la position de lecture pour éviter de relire les anciens logs (en utilisant sincedb ou des mécanismes similaires)
Choisir la bonne méthode
Choisissez la méthode qui correspond le mieux à votre infrastructure :
Utilisez la Méthode 1 (Syslog direct) si :
- Votre SIEM prend en charge la réception syslog
- Vous voulez une livraison de logs en temps réel
- Vous préférez une architecture plus simple sans agents intermédiaires
Utilisez la Méthode 2 (Basée sur les fichiers avec agents) si :
- Votre SIEM nécessite des formats ou protocoles de logs spécifiques
- Vous devez transformer ou enrichir les logs avant l'envoi
- Vous voulez mettre en mémoire tampon les logs pour la fiabilité
- Vous utilisez un SIEM qui ne prend pas en charge le syslog direct
Informations contextuelles
La solution fournit des informations contextuelles pour les audits. Celles-ci peuvent être utilisées dans le formatage des logs :
| Nom | Paramètre de layout | Exemple |
|---|---|---|
| Message d'audit | %m | Échec de la validation MFA pour 'jsmith'. |
| Identifiant du thread | %t | pool-1-thread-3 |
| Date et heure | %d | Voir la doc Log4J pour les formats |
| Autres standards Log4J | %p, %c, etc. | Voir Log4J pour les détails. |
| Nom de compte | %X{MDC_USER} | jsmith |
| IP de l'utilisateur | %X{MDC_REMOTE_IP} | 172.134.23.46 |
| Composant S-Filer | %X{MDC_COMPONENT} | sfiler-gw-1 |
Audits à journaliser
Consultez la page Référence des audits pour la liste de tous les audits pris en charge dans le portail S-Filer.
Références
- Comment envoyer des audits vers syslog - Guide de configuration syslog détaillé
- Log4j2 RollingFile Appender
- Log4j2 Syslog Appender
- Elastic Common Schema (ECS)
