
Playbook Ansible automatisant le script de détection Log4j de Red Hat pour analyser les hôtes Linux pour la vulnérabilité CVE-2021-44228 (Log4Shell) avec vérification GPG.
Playbook Ansible pour vérifier les hôtes Linux cibles à l'aide du script officiel de détection Log4j de Red Hat pour Log4Shell (CVE-2021-44228).
Détecteur Red Hat version 1.3 du 2022-01-10.
Le résultat est enregistré dans un fichier txt sous detector_dir (défaut : /opt/cve-2021-44228/).
Le code est également disponible en tant que rôle Ansible Galaxy lucab85.ansible_role_log4shell```bash ansible-galaxy install lucab85.ansible_role_log4shell
## Comment exécuter le playbook Ansible
Les variables par défaut analysent tout le chemin `/var/` à la recherche de fichiers affectés.
Vous pouvez personnaliser le fichier `vars.yml` pour plus d'options.```bash
ansible-playbook log4j-cve-2021-44228.yml
Aucune.
ansible 2.9+
valeurs par défaut :```yaml rh_bullettin: >- https://access.redhat.com/security/vulnerabilities/RHSB-2021-009 intro: | Ansible Playbook tested with detector version 1.3 released 2022-01-10. If a 404 error occur please adjust the URL with the latest version available for detector URL. Please refer to the Red Hat Security Bullettin for up-to-date information and adjust the playbook variables accordingly. {{ rh_bullettin }}. vulnerable: | System MIGHT be vulnerable to log4j (CVE-2021-44228) not_vulnerable: | System IS NOT vulnerable to log4j (CVE-2021-44228) report_txt: "/report/vuln_log4j2_path_*.txt" sh_detector: "cve-2021-44228--2022-01-10-1242.sh" sh_signature: "cve-2021-44228--2022-01-10-1242.sh.asc" detector_baseurl: "https://access.redhat.com/sites/default/files/" force_download: false detector_path: "/var/" detector_dir: "/opt/cve-2021-44228/" detector_run_dir: "tmp" detector_options: '-n -d --no-progress --scan {{ detector_path }}' gpg_keyid: "7514F77D8366B0D9" gpg_server: "pgp.mit.edu" gpg_public_key: 'gpg --keyserver {{ gpg_server }} --recv {{ gpg_keyid }}' clean_run_before: true delete_after: false verify_gpg: true
- `rh_bullettin` : lien du RHSB (défaut : [https://access.redhat.com/security/vulnerabilities/RHSB-2021-009](https://access.redhat.com/security/vulnerabilities/RHSB-2021-009))
- `intro` : texte d'introduction
- `vulnerable` : texte vulnérable (visible uniquement lors d'une exécution avec niveau de débogage 2 `-vv`)
- `not_vulnerable` : texte NON vulnérable (visible uniquement lors d'une exécution avec niveau de débogage 2 `-vv`)
- `report_txt` : chemin du rapport à afficher (défaut : `/report/vuln_log4j2_path_*.txt`)
- `sh_detector` : le nom du fichier du script bash du détecteur
- `sh_signature` : le nom du fichier de signature GPG du détecteur
- `detector_baseurl` : l'URL de base pour télécharger les fichiers précédents
- `force_download` : forcer le téléchargement du code à chaque exécution (défaut : `false`)
- `detector_path` : le chemin à inspecter (défaut `/var/`)
- `detector_dir` : le chemin de téléchargement du détecteur (défaut `/opt/cve-2021-44228/`)
- `detector_run_dir` : le sous-répertoire à créer avant l'exécution (défaut `tmp`)
- `detector_options` : les options de ligne de commande pour le script du détecteur (défaut `-n -d --no-progress --scan {{ detector_path }}`)
- `gpg_keyid` : la clé publique GPG à télécharger pour la vérification (défaut : Red Hat Product Security `7514F77D8366B0D9`)
- `gpg_server` : le serveur de clés GPG (défaut : `pgp.mit.edu`)
- `gpg_public_key` : commande pour la vérification gpg (défaut : `gpg --keyserver {{ gpg_server }} --recv {{ gpg_keyid }}`)
- `clean_run_before` : supprimer le répertoire d'exécution et le recréer avant l'exécution - le détecteur nécessite un répertoire vide (défaut `true`)
- `delete_after` : supprimer le _detector_dir_ après l'exécution (défaut `false`)
- `verify_gpg` : effectuer le téléchargement et la vérification de la signature GPG (défaut : `true`)
## Exécution de démonstration
La sortie complète de l'exécution du playbook contre l'hôte cible de démonstration RHEL8 :```bash
$ ansible-playbook -i test/inventory log4j-cve-2021-44228.yml -vv
ansible-playbook [core 2.12.1]
config file = None
configured module search path = ['/Users/lberton/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/Cellar/ansible/5.1.0/libexec/lib/python3.10/site-packages/ansible
ansible collection location = /Users/lberton/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/local/bin/ansible-playbook
python version = 3.10.1 (main, Dec 6 2021, 23:20:29) [Clang 13.0.0 (clang-1300.0.29.3)]
jinja version = 3.0.3
libyaml = True
No config file found; using defaults
Skipping callback 'default', as we already have a stdout callback.
Skipping callback 'minimal', as we already have a stdout callback.
Skipping callback 'oneline', as we already have a stdout callback.
PLAYBOOK: log4j-cve-2021-44228.yml *********************************************************************************************************************************************************
2 plays in log4j-cve-2021-44228.yml
PLAY [download detector for Apache Log4j (CVE-2021-44228)] *********************************************************************************************************************************
META: ran handlers
TASK [include_vars] ************************************************************************************************************************************************************************
task path: /Users/lberton/prj/github/log4j-cve-2021-44228/log4j-cve-2021-44228.yml:29
ok: [localhost] => {"ansible_facts": {"clean_run_before": true, "delete_after": false, "detector_baseurl": "https://access.redhat.com/sites/default/files/", "detector_dir": "/opt/cve-2021-44228/", "detector_options": "-n -d --no-progress --scan {{ detector_path }}", "detector_path": "/var/", "detector_run_dir": "tmp", "force_download": false, "gpg_keyid": "7514F77D8366B0D9", "gpg_public_key": "gpg --keyserver {{ gpg_server }} --recv {{ gpg_keyid }}", "gpg_server": "pgp.mit.edu", "intro": "Ansible Playbook tested with detector version 1.3 released 2022-01-10.\nIf a 404 error occur please adjust the URL with the latest version available\nfor detector URL.\nPlease refer to the Red Hat Security Bullettin for up-to-date information and\nadjust the playbook variables accordingly.\n{{ rh_bullettin }}.\n", "not_vulnerable": "System IS NOT vulnerable to log4j (CVE-2021-44228)\n", "report_txt": "/report/vuln_log4j2_path_*.txt", "rh_bullettin": "https://access.redhat.com/security/vulnerabilities/RHSB-2021-009", "sh_detector": "cve-2021-44228--2022-01-10-1242.sh", "sh_signature": "cve-2021-44228--2022-01-10-1242.sh.asc", "verify_gpg": true, "vulnerable": "System MIGHT be vulnerable to log4j (CVE-2021-44228)\n"}, "ansible_included_var_files": ["/Users/lberton/prj/github/log4j-cve-2021-44228/vars.yml"], "changed": false}
TASK [print information] *******************************************************************************************************************************************************************
task path: /Users/lberton/prj/github/log4j-cve-2021-44228/log4j-cve-2021-44228.yml:31
ok: [localhost] => {
"msg": "Ansible Playbook tested with detector version 1.3 released 2022-01-10.\nIf a 404 error occur please adjust the URL with the latest version available\nfor detector URL.\nPlease refer to the Red Hat Security Bullettin for up-to-date information and\nadjust the playbook variables accordingly.\nhttps://access.redhat.com/security/vulnerabilities/RHSB-2021-009.\n"
}