[LINUX] Importez audit.log dans Splunk et vérifiez le comportement lorsque Splunk est démarré pour la première fois.

introduction

Lorsque vous démarrez Splunk Enterprise pour la première fois, divers messages de traitement sont affichés à l'écran.

Exemple de premier message de démarrage (cliquez pour agrandir)
# /opt/splunk/bin/splunk start --accept-license --seed-passwd password

This appears to be your first time running this version of Splunk.
Copying '/opt/splunk/etc/openldap/ldap.conf.default' to '/opt/splunk/etc/openldap/ldap.conf'.
Generating RSA private key, 2048 bit long modulus
.................................+++++
...........................+++++
e is 65537 (0x10001)
writing RSA key

Generating RSA private key, 2048 bit long modulus
.............................................................................+++++
.................................................................+++++
e is 65537 (0x10001)
writing RSA key

Moving '/opt/splunk/share/splunk/search_mrsparkle/modules.new' to '/opt/splunk/share/splunk/search_mrsparkle/modules'.

Splunk> See your world.  Maybe wish you hadn't.

Checking prerequisites...
	Checking http port [8000]: open
	Checking mgmt port [8089]: open
	Checking appserver port [127.0.0.1:8065]: open
	Checking kvstore port [8191]: open
	Checking configuration... Done.
		Creating: /opt/splunk/var/lib/splunk
		Creating: /opt/splunk/var/run/splunk
		Creating: /opt/splunk/var/run/splunk/appserver/i18n
		Creating: /opt/splunk/var/run/splunk/appserver/modules/static/css
		Creating: /opt/splunk/var/run/splunk/upload
		Creating: /opt/splunk/var/run/splunk/search_telemetry
		Creating: /opt/splunk/var/spool/splunk
		Creating: /opt/splunk/var/spool/dirmoncache
		Creating: /opt/splunk/var/lib/splunk/authDb
		Creating: /opt/splunk/var/lib/splunk/hashDb
New certs have been generated in '/opt/splunk/etc/auth'.
	Checking critical directories...	Done
	Checking indexes...
		Validated: _audit _internal _introspection _metrics _telemetry _thefishbucket history main summary
	Done
	Checking filesystem compatibility...  Done
	Checking conf files for problems...
	Done
	Checking default conf files for edits...
	Validating installed files against hashes from '/opt/splunk/splunk-8.0.2.1-f002026bad55-linux-2.6-x86_64-manifest'
	All installed files intact.
	Done
All preliminary checks passed.

Starting splunk server daemon (splunkd)...  
Generating a RSA private key
...............................................+++++
...............+++++
writing new private key to 'privKeySecure.pem'
-----
Signature ok
subject=/CN=aio/O=SplunkUser
Getting CA Private Key
writing RSA key
Done
 [  OK  ]

Waiting for web server at http://127.0.0.1:8000 to be available.... Done


If you get stuck, we're here to help.  
Look for answers here: http://docs.splunk.com

The Splunk web interface is at http://aio:8000

À en juger par le contenu du message, il semble que vous créez un fichier. Alors qu'est-ce qui sera créé cette fois lors de la première startup? J'ai étudié cela avec Splunk.

Environnement au moment de l'enquête

OS: Amazon Linux 2 (4.14.171-136.231.amzn2.x86_64) Version Splunk: 8.0.2.1 Chemin d'installation de Splunk ($ SPLUNK_HOME): / opt / splunk

1. Installation de Splunk Enterprise

Installez Splunk. Je vais omettre la procédure détaillée, mais cette fois je vais l'installer avec le fichier tgz.

Entreprise Splunk/opt/Installer dans le répertoire


tar fvxz /tmp/splunk-8.0.2.1-f002026bad55-Linux-x86_64.tgz -C /opt/

2. Paramètres de sortie du journal d'audit

Modifiez les paramètres du système d'exploitation pour afficher les informations de modification du répertoire de paramètres Splunk dans le journal d'audit.

Configurer le journal d'audit(Changement temporaire)


#Ajouter un répertoire audité
auditctl -w /opt/splunk/etc/ -p wa -k etc_changes
#Confirmez que les paramètres ont été ajoutés
auditctl -l
#OK si le résultat de la commande est sorti."No rules"S'affiche, veuillez vérifier si les paramètres sont corrects.

3. Démarrez Splunk Enterprise

Démarrez Splunk Enterprise.

Démarrez Splunk Enterprise


/opt/splunk/bin/splunk start --accept-license --seed-passwd password

4. Vérifiez la sortie du journal d'audit

Vérifiez si les informations de modification du répertoire cible d'audit définies à l'étape 2 sont sorties dans le journal.

Vérifiez si les informations de modification du répertoire audité sont sorties dans le journal


grep /opt/splunk/etc/ /var/log/audit/audit.log | tail
#C'est OK si un ou plusieurs journaux sont générés.

5. Capturer le journal d'audit

Configurez le journal d'audit pour qu'il soit inclus de manière permanente dans Splunk.

Configuré pour capturer les journaux d'audit en permanence


/opt/splunk/bin/splunk add monitor /var/log/audit/audit.log -auth admin:password

6. Confirmation du résultat de l'importation

Après avoir défini les paramètres ci-dessus, le journal d'audit doit avoir été importé dans Splunk, alors connectez-vous à Splunk Enterprise et vérifiez le résultat de l'importation avec l'instruction de recherche.

Rechercher les journaux d'audit


sourcetype="linux_audit" type="PATH" nametype!="PARENT"
| rex field=name "^(?<directory>.*\/)?(?<file>.*)"
| eval directory=if(len(mode)==6,directory+file,directory),file=if(len(mode)==6,"",file)
| table _time,msg,nametype,mode,directory,file
| sort msg

Explication du texte de recherche

Ligne 1 ... Recherche d'événements ** dans le journal d'audit où le champ de type est PATH et le champ de type de nom n'est pas PARENT **. Lignes 2 et 3 ... Le nom du répertoire et le nom du fichier sont définis dans les nouveaux champs (répertoire, fichier) à partir des informations de chemin enregistrées dans le champ de nom. 4ème ligne ・ ・ ・ Seuls les champs nécessaires à la visualisation sont formatés et affichés à partir des résultats de la recherche. 5ème ligne: étant donné que l'horodatage et les informations d'ID sont enregistrés dans le champ msg, ils sont triés et affichés dans l'ordre du champ msg.

7. Résultat

Voici quelques extraits des résultats de la recherche dans cet environnement. <détails> <résumé> Cliquez pour développer et afficher. </ résumé> image.png image.png image.png image.png

8. Analyse

Après avoir analysé les résultats de la recherche, il a été constaté que Splunk exécutait le processus de création de fichier / répertoire dans le répertoire / opt / splunk / etc / dans l'ordre suivant lors de son premier démarrage.

Seq Fichier Remarques
1 /opt/splunk/etc/splunk-launch.conf splunk-lanch.conf.Créé en copiant par défaut.
2 /opt/splunk/etc/licenses/download-trial/enttrial.lic Fichier de licence d'essai./opt/splunk/splunk-enttrial.Créé en copiant depuis lic.
3 /opt/splunk/etc/auth/splunk.secret Informations sensibles stockées dans le fichier de configuration de Splunk(Mot de passe etc.)Chiffrement/Fichier clé utilisé pour le décryptage.
4 /opt/splunk/etc/system/local/user-seed.conf Fichier de configuration de l'utilisateur et du mot de passe de gestion initiale(Version 7.1 ou version ultérieure)Dans le traitement ultérieur/opt/splunk/etc/Il sera supprimé une fois le mot de passe créé.
5 /opt/splunk/etc/system/local/inputs.conf La valeur par défaut est définie lorsque le champ hôte n'est pas spécifié dans les paramètres de capture de données.
6 /opt/splunk/etc/system/local/server.conf
7 /opt/splunk/etc/system/local/migration.conf
8 /opt/splunk/etc/openldap/ldap.conf ldap.conf.Créé en copiant par défaut.
9 /opt/splunk/etc/auth/audit/private.pem
10 /opt/splunk/etc/auth/audit/public.pem
11 /opt/splunk/etc/auth/distServerKeys/private.pem Clé privée utilisée pour la communication de recherche distribuée.
12 /opt/splunk/etc/auth/distServerKeys/trusted.pem Clé publique utilisée pour la communication de recherche distribuée.
13 /opt/splunk/etc/auth/ca.pem Certificat CA racine. Californie.pem.Créé en copiant par défaut.
14 /opt/splunk/etc/auth/cacert.pem Certificat CA racine. cacert.pem.Créé en copiant par défaut. Le contenu du certificat est ca.Identique à pem, mais la clé privée avec la phrase de passe est ajoutée dans le fichier.
15 /opt/splunk/etc/myinstall/splunkd.xml
16 /opt/splunk/etc/users/users.ini
17 /opt/splunk/etc/auth/serverkey.pem SplunkCryptage des communications internesLa clé privée requise pour créer le certificat de serveur utilisé dans.Supprimé lors du premier processus de démarrage initial.
18 /opt/splunk/etc/auth/serverreq.pem SplunkCryptage des communications internesCSR qui demande à l'autorité de certification racine de créer un certificat de serveur à utiliser dans.Supprimé lors du processus de démarrage initial.
19 /opt/splunk/etc/auth/servercert.pem SplunkCryptage des communications internesCertificat de serveur utilisé dans. Émis par l'autorité de certification racine appartenant à Splunk lui-même.Supprimé lors du processus de démarrage initial.
20 /opt/splunk/etc/auth/server.pem SplunkCryptage des communications internesCertificat de serveur utilisé dans.**Ce certificat de serveur est valide pendant 3 ans à compter du premier démarrage et le CN est toujours défini sur SplunkServerDefaultCert.**En plus du certificat de serveur, la clé privée du serveur et les informations sur le certificat de l'autorité de certification racine sont ajoutées à ce fichier.
21 privKeySecure.pem Splunk**Communication cryptée sur écran Web(https)**La clé privée requise pour créer le certificat de serveur utilisé dans.Supprimé lors du processus de démarrage initial.
22 req.pem Splunk**Communication cryptée sur écran Web(https)**CSR qui demande à l'autorité de certification de créer un certificat de serveur à utiliser dans.Supprimé lors du processus de démarrage initial.
23 /opt/splunk/etc/auth/splunkweb/cert.pem Splunk**Communication cryptée sur écran Web(https)**Certificat de serveur utilisé dans. Émis par l'autorité de certification racine appartenant à Splunk lui-même.Ce certificat de serveur est valide pendant 3 ans à compter du premier démarrage et le CN est défini sur le nom d'hôte du serveur.
24 ca.srl Un fichier contenant le numéro de série du certificat de serveur émis par l'autorité de certification racine.
25 /opt/splunk/etc/auth/splunkweb/privkey.pem Splunk**Communication cryptée sur écran Web(https)**La clé privée du certificat de serveur utilisé dans.
26 /opt/splunk/etc/instance.cfg Identifiant unique Splunk(GUID)Le fichier dans lequel est enregistré.
27 /opt/splunk/etc/passwd Informations de l'utilisateur. Au premier démarrage, seul l'utilisateur administrateur est enregistré.
28 /opt/splunk/etc/apps/learned/metadata/local.meta
29 /opt/splunk/etc/apps/learned/local/props.conf

De côté

La raison de cette fois était de voir "Comment le certificat de serveur utilisé par défaut dans le processus de communication chiffrée de Splunk est créé lorsque Splunk est démarré pour la première fois", mais par conséquent, d'autres fichiers de paramètres J'ai pu comprendre le déroulement du processus de création. Je souhaite également organiser et publier l'enquête sur le certificat par défaut.

Merci d'avoir lu jusqu'ici.

Suite

J'ai écrit une suite. Importez audit.log dans Splunk et vérifiez le comportement lors de la première connexion à Splunkweb

référence

6.6. À propos du fichier journal AUDIT Ceci est le manuel officiel de Redhat, mais il contient les informations de spécification du journal d'audit. Cependant, bien qu'Amazon Linux2 soit basé sur Rhel7, il semble que le format du journal (champ) soit légèrement ajusté.

Détecter la falsification de fichier Linux avec auditd

What is the splunk.secret file, and is it possible to change it? Qu'est-ce que «splunk.secret»? Ceci est le site officiel de la communauté QA de Spunk concernant la question.

Recommended Posts

Importez audit.log dans Splunk et vérifiez le comportement lorsque Splunk est démarré pour la première fois.
Impressions et mémorandum lors de la première utilisation de VScode
Pour le moment, importez-les dans jupyter
Ce que je suis entré dans Python pour la première fois
Premier Kaggle (kaggle ①)
Kaguru pour la première fois
Qu'est-ce qu'un chien? Django - Essayez d'utiliser Form pour la première fois Volume de transmission POST
Vérifiez le comportement lors de l'attribution de Python
Comportement lorsque 0, 1, False, True est utilisé pour la clé dict
Différences que les ingénieurs C # ont ressenties lors de l'apprentissage de Python pour la première fois
Voir python pour la première fois
Démarrez Django pour la première fois
Une note utile lors de l'utilisation de Python après une longue période
J'ai essayé tensorflow pour la première fois
MongoDB avec Python pour la première fois
Essayons Linux pour la première fois
[Pour les débutants] Comportement inattendu si "\" est inclus lors de la définition du chemin en Python
Affichons un template simple idéal pour le premier Django
Comment utiliser MkDocs pour la première fois
J'ai essayé la programmation python pour la première fois.
J'ai essayé Mind Meld pour la première fois
virtualenv Pour le moment, c'est tout!
Essayez de publier sur Qiita pour la première fois
Vérifiez le temps de traitement et le nombre d'appels pour chaque processus avec python (cProfile)
J'ai essayé Python sur Mac pour la première fois.
[Python] Mesure et affiche le temps nécessaire au traitement
Enregistrer une tâche dans cron pour la première fois
J'ai essayé python pour la première fois avec heroku
Pour la première fois, j'ai découvert Unix (Linux).
Incorporation dans datetime lorsque seule l'heure est connue
Créer une liste lorsque la nomenclature est pour une certaine période de temps
AI Gaming Je l'ai essayé pour la première fois
Vérifiez quel est le code de caractère pour tous les fichiers sous le répertoire Python et sortie