Collecter les journaux Juniper Junos
Ce document explique comment collecter les journaux Juniper Junos à l'aide d'un redirecteur Google Security Operations.
Pour en savoir plus, consultez Ingestion de données dans Google Security Operations.
Un libellé d'ingestion identifie l'analyseur qui normalise les données de journaux brutes au format UDM structuré. Les informations de ce document s'appliquent au parseur avec le libellé d'ingestion JUNIPER_JUNOS
.
Configurer la journalisation structurée pour un appareil Juniper Networks SRX
Le format de journal structuré extrait des informations des messages de journal. Le format du journal est conforme au protocole Syslog.
- Connectez-vous à la CLI Juniper SRX à l'aide de SSH et de son adresse IP de gestion.
- Saisissez
CLI
à l'invite du shell, puis appuyez sur Entrée. - Saisissez
configure
, puis appuyez sur Entrée pour accéder au mode de configuration de l'appareil. - Saisissez les coordonnées ou le point de référence du client.
Pour mapper les champs au compte utilisateur, exécutez les commandes suivantes :
set system syslog host FORWARDER_IP_ADDRESS any info set system syslog host FORWARDER_IP_ADDRESS structured-data
Remplacez
FORWARDER_IP_ADDRESS
par l'adresse IP du redirecteur Google Security Operations.Pour activer la journalisation structurée pour les journaux de sécurité, utilisez les commandes suivantes :
set security log mode stream set security log source-address SRC_IP_ADDRESS set security log stream SYSLOG_STREAM_NAME host FORWARDER_IP_ADDRESS set security log stream SYSLOG_STREAM_NAME format sd-syslog
Remplacez les éléments suivants :
SRC_IP_ADDRESS
: adresse IP de l'appareil Juniper SRX.SYSLOG_STREAM_NAME
: nom attribué au serveur syslog.FORWARDER_IP_ADDRESS
: adresse IP du redirecteur Google Security Operations.
Assurez-vous que la journalisation est activée pour toutes les règles de sécurité. Pour activer la journalisation, exécutez les commandes suivantes :
set security policies from-zone <zone-name1> to-zone <zone-name2> policy <policy-name> then log session-close set security policies from-zone <zone-name1> to-zone <zone-name2> policy <policy-name> then log session-init
Configurez le nom d'hôte sur l'appareil à l'aide de la commande suivante :
set system host-name HOSTNAME
Remplacez
HOSTNAME
par l'équipement Juniper Networks SRX attribué.Saisissez
commit
pour enregistrer les commandes exécutées dans la configuration.
Configurer le redirecteur Google Security Operations et Syslog pour ingérer les journaux Juniper Junos
- Sélectionnez Paramètres SIEM > Transmetteurs.
- Cliquez sur Ajouter un nouveau transfert.
- Saisissez un nom unique dans le champ Nom du transitaire.
- Cliquez sur Envoyer, puis sur Confirmer. Le redirecteur est ajouté et la fenêtre Ajouter une configuration de collecteur s'affiche.
- Dans le champ Nom du collecteur, saisissez un nom unique pour le collecteur.
- Sélectionnez Juniper Junos comme type de journal.
- Sélectionnez Syslog comme type de collecteur.
- Configurez les paramètres d'entrée suivants :
- Protocole : spécifiez le protocole UDP.
- Adresse : spécifiez l'adresse IP ou le nom d'hôte de la cible où réside le collecteur et où il écoute les données syslog.
- Port : spécifiez le port cible sur lequel le collecteur réside et écoute les données syslog.
- Cliquez sur Envoyer.
Pour en savoir plus sur les redirecteurs Google Security Operations, consultez la documentation sur les redirecteurs Google Security Operations. Pour en savoir plus sur les exigences de chaque type de redirecteur, consultez Configuration des redirecteurs par type. Si vous rencontrez des problèmes lors de la création de redirecteurs, contactez l'assistance Google Security Operations.
Référence du mappage de champs
Cet analyseur extrait les champs des messages syslog Juniper JUNOS, en gérant les formats avec et sans paires clé-valeur. Il utilise des modèles Grok pour faire correspondre différentes structures de messages, y compris les journaux de pare-feu, l'activité SSH et les exécutions de commandes, puis mappe les champs extraits à l'UDM. L'analyseur gère également les journaux au format CEF à l'aide d'un fichier d'inclusion et effectue des actions spécifiques en fonction du contenu du message, comme la fusion des adresses IP et des noms d'utilisateur dans les champs UDM appropriés.
Table de mappage UDM
Champ de journal | Mappage UDM | Logique |
---|---|---|
DPT |
target.port |
Port de destination de la connexion réseau, converti en entier. |
DST |
target.ip |
Adresse IP de destination de la connexion réseau. |
FLAG |
additional.fields{}.key : "FLAG", additional.fields{}.value.string_value : valeur de FLAG |
Option TCP associée à la connexion réseau. |
ID |
additional.fields{}.key : "ID", additional.fields{}.value.string_value : valeur de ID |
Champ d'identification de l'adresse IP. |
IN |
additional.fields{}.key : "IN", additional.fields{}.value.string_value : valeur de IN |
Interface réseau entrante. |
LEN |
additional.fields{}.key : "LEN", additional.fields{}.value.string_value : valeur de LEN |
Longueur du paquet IP. |
MAC |
principal.mac |
Adresse MAC extraite du champ MAC . |
OUT |
additional.fields{}.key : "OUT", additional.fields{}.value.string_value : valeur de OUT |
Interface réseau sortante. |
PREC |
additional.fields{}.key : "PREC", additional.fields{}.value.string_value : valeur de PREC |
Champ "Précédence" dans l'en-tête IP. |
PROTO |
network.ip_protocol |
Protocole IP utilisé dans la connexion réseau. |
RES |
additional.fields{}.key : "RES", additional.fields{}.value.string_value : valeur de RES |
Champ réservé dans l'en-tête TCP. |
SPT |
principal.port |
Port source de la connexion réseau, converti en entier. |
SRC |
principal.ip |
Adresse IP source de la connexion réseau. |
TOS |
additional.fields{}.key : "TOS", additional.fields{}.value.string_value : valeur de TOS |
Champ "Type de service" dans l'en-tête IP. |
TTL |
network.dns.additional.ttl |
Valeur Time To Live, convertie en entier non signé. |
URGP |
additional.fields{}.key : "URGP", additional.fields{}.value.string_value : valeur de URGP |
Champ de pointeur urgent dans l'en-tête TCP. |
WINDOW |
additional.fields{}.key : "WINDOW_SIZE", additional.fields{}.value.string_value : valeur de WINDOW |
Taille de la fenêtre TCP. |
action |
security_result.action |
Action effectuée par le pare-feu, extraite du message CEF. |
agt |
observer.ip |
Adresse IP de l'agent. |
amac |
target.mac |
Adresse MAC de la cible, convertie en minuscules et dont les traits d'union sont remplacés par des deux-points. |
app |
target.application |
Application concernée par l'événement. |
artz |
observer.zone |
Fuseau horaire de l'observateur. |
atz |
target.location.country_or_region |
Fuseau horaire cible. |
categoryBehavior |
additional.fields{}.key : "Comportement de catégorie", additional.fields{}.value.string_value : valeur de categoryBehavior sans les barres obliques |
Comportement de la catégorie. |
categoryDeviceGroup |
additional.fields{}.key : "Category Device Group", additional.fields{}.value.string_value : valeur de categoryDeviceGroup sans les barres obliques |
Groupe d'appareils de catégorie. |
categoryObject |
additional.fields{}.key : "Objet de catégorie", additional.fields{}.value.string_value : valeur de categoryObject sans les barres obliques |
Objet de catégorie. |
categoryOutcome |
additional.fields{}.key : "Category Outcome", additional.fields{}.value.string_value : valeur de categoryOutcome sans les barres obliques |
Résultat pour la catégorie. |
categorySignificance |
additional.fields{}.key : "category Significance", additional.fields{}.value.string_value : valeur de categorySignificance |
Importance de la catégorie. |
command |
target.process.command_line |
La commande exécutée. |
cs1Label |
additional.fields{}.key : cs1Label , additional.fields{}.value.string_value : valeur du champ CEF correspondant |
Libellé et valeur du champ de chaîne personnalisée 1 du message CEF. |
cs2Label |
additional.fields{}.key : cs2Label , additional.fields{}.value.string_value : valeur du champ CEF correspondant |
Libellé et valeur du champ de chaîne personnalisée 2 du message CEF. |
cs3Label |
additional.fields{}.key : cs3Label , additional.fields{}.value.string_value : valeur du champ CEF correspondant |
Libellé et valeur du champ de chaîne personnalisé 3 du message CEF. |
cs4Label |
additional.fields{}.key : cs4Label , additional.fields{}.value.string_value : valeur du champ CEF correspondant |
Libellé et valeur du champ de chaîne personnalisé 4 du message CEF. |
cs5Label |
additional.fields{}.key : cs5Label , additional.fields{}.value.string_value : valeur du champ CEF correspondant |
Libellé et valeur du champ de chaîne personnalisée 5 du message CEF. |
cs6Label |
additional.fields{}.key : cs6Label , additional.fields{}.value.string_value : valeur du champ CEF correspondant |
Libellé et valeur du champ de chaîne personnalisé 6 du message CEF. |
dhost |
target.hostname |
Nom d'hôte de destination. |
deviceCustomString1 |
additional.fields{}.key : cs1Label , additional.fields{}.value.string_value : valeur de deviceCustomString1 |
Chaîne personnalisée de l'appareil 1. |
deviceCustomString2 |
additional.fields{}.key : cs2Label , additional.fields{}.value.string_value : valeur de deviceCustomString2 |
Chaîne personnalisée de l'appareil 2. |
deviceCustomString3 |
additional.fields{}.key : cs3Label , additional.fields{}.value.string_value : valeur de deviceCustomString3 |
Chaîne personnalisée de l'appareil 3. |
deviceCustomString4 |
additional.fields{}.key : cs4Label , additional.fields{}.value.string_value : valeur de deviceCustomString4 |
Chaîne personnalisée de l'appareil 4. |
deviceCustomString5 |
additional.fields{}.key : cs5Label , additional.fields{}.value.string_value : valeur de deviceCustomString5 |
Chaîne personnalisée de l'appareil 5. |
deviceCustomString6 |
additional.fields{}.key : cs6Label , additional.fields{}.value.string_value : valeur de deviceCustomString6 |
Chaîne personnalisée de l'appareil 6. |
deviceDirection |
network.direction |
Sens du trafic réseau. |
deviceEventClassId |
additional.fields{}.key : "eventId", additional.fields{}.value.string_value : valeur de deviceEventClassId |
ID de la classe d'événement de l'appareil. |
deviceFacility |
observer.product.subproduct |
L'établissement de l'appareil. |
deviceProcessName |
about.process.command_line |
Nom du processus de l'appareil. |
deviceSeverity |
security_result.severity |
Gravité de l'appareil. |
deviceTimeZone |
observer.zone |
Fuseau horaire de l'appareil. |
deviceVendor |
metadata.vendor_name |
Fournisseur de l'appareil. |
deviceVersion |
metadata.product_version |
Version de l'appareil. |
dpt |
target.port |
Port de destination. |
dst |
target.ip |
Adresse IP de destination. |
duser |
target.user.user_display_name |
L'utilisateur de destination. |
eventId |
additional.fields{}.key : "eventId", additional.fields{}.value.string_value : valeur de eventId |
ID de l'événement. |
event_time |
metadata.event_timestamp |
Heure à laquelle l'événement s'est produit, analysée à partir du message. |
firewall_action |
security_result.action_details |
Action de pare-feu effectuée. |
host |
principal.hostname , intermediary.hostname |
Nom d'hôte de l'appareil qui génère le journal. Utilisé à la fois pour le principal et l'intermédiaire dans différents cas. |
msg |
security_result.summary |
Message associé à l'événement, utilisé comme résumé du résultat de sécurité. |
name |
metadata.product_event_type |
Nom de l'événement. |
process_name |
additional.fields{}.key : "process_name", additional.fields{}.value.string_value : valeur de process_name |
Nom du processus. |
p_id |
target.process.pid |
ID du processus, converti en chaîne. |
sha256 |
principal.process.file.sha256 |
Hachage SHA256 d'un fichier, extrait des informations de clé SSH2. |
shost |
principal.hostname |
Nom d'hôte source. |
source_address |
principal.ip |
Adresse IP source. |
source_port |
principal.port |
Port source, converti en entier. |
src |
principal.ip |
Adresse IP source. |
src_ip |
principal.ip |
Adresse IP source. |
src_port |
principal.port |
Port source, converti en entier. |
ssh2 |
security_result.detection_fields{}.key : "ssh2", security_result.detection_fields{}.value : valeur de ssh2 |
Informations sur la clé SSH2. |
subtype |
metadata.product_event_type |
Sous-type de l'événement. |
task_summary |
security_result.description |
Résumé de la tâche, utilisé comme description du résultat de sécurité. |
timestamp |
metadata.event_timestamp |
Horodatage de l'événement. |
user |
target.user.userid |
Utilisateur associé à l'événement. |
username |
principal.user.userid |
Nom d'utilisateur associé à l'événement. |
user_name |
principal.user.userid |
Nom d'utilisateur. |
metadata.vendor_name |
Codé en dur sur "Juniper Firewall". Codé en dur sur "Juniper Firewall". Codé en dur sur "JUNIPER_JUNOS". Déterminé par la logique de l'analyseur en fonction du contenu du journal. La valeur par défaut est "STATUS_UPDATE" s'il ne s'agit pas d'un message CEF et qu'aucun autre type d'événement spécifique n'est identifié. Définissez-le sur "NETWORK_HTTP" pour les messages CEF. Si aucun champ desc n'est présent, ce champ est renseigné avec le message_description extrait du message de journal brut. |
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.