Creëer een Ansible Playbook voor Geautomatiseerde Compliance en Auditing
description
Met deze prompt kan de gebruiker een Ansible playbook ontwikkelen dat helpt bij het automatisch uitvoeren van compliance controles en auditing, wat handmatige fouten vermindert, tijd bespaart en zorgt voor consistente naleving van regelgeving. De integratie met CI/CD verhoogt de efficiëntie en betrouwbaarheid van het deploymentproces, wat deze aanpak beter maakt dan handmatige of losse compliance controles.
prompt
Help me een Ansible playbook te ontwerpen dat automatisch compliance controles en auditing uitvoert binnen mijn infrastructuur. Mijn compliance regels: <voeg je compliance regels hier in>
Audit frequentie: <geef de gewenste audit frequentie ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Hier is een voorbeeld van een Ansible playbook dat voldoet aan jouw eisen voor het uitvoeren van compliance controles volgens CIS Benchmarks voor Linux, met dagelijkse auditing, rapportage in JSON, gericht op webservers en database-servers:
```yaml
---
- name: Compliance controle volgens CIS Benchmarks voor Linux
hosts: webservers, database-servers
become: yes
gather_facts: yes
vars:
report_path: "/tmp/compliance_report.json"
tasks:
- name: Voer CIS Benchmark checks uit via OpenSCAP
command: >
oscap xccdf eval
--profile "CIS_Docker_Benchmark_Level_1" # Pas profiel aan op je systeem
--results /tmp/scan_results.xml
--report /tmp/scan_report.html
/usr/share/xml/scap/ssg/content/ssg-*-xccdf.xml
register: oscap_result
ignore_errors: yes
- name: Converteer XML rapport naar JSON
community.general.xml2json:
source: /tmp/scan_results.xml
dest: /tmp/scan_results.json
- name: Verplaats rapport naar rapportage locatie
copy:
src: /tmp/scan_results.json
dest: "{{ report_path }}"
- name: Verstuur rapport via e-mail (optioneel)
mail:
host: smtp.example.com
port: 587
username: your_email@example.com
password: your_password
to: security-team@example.com
subject: "Dagelijkse Compliance Rapport"
body: "Het compliance rapport is bijgevoegd."
attach: "{{ report_path }}"
when: false # Zet op true om email te sturen
```
**Aanpassingen:**
- Pas het profiel en het XML pad aan volgens jouw CIS benchmark en systeem.
- Zorg dat OpenSCAP (`oscap`) geïnstalleerd is op de systemen.
- Installeer de `community.general` collectie voor `xml2json`.
---
### Integratie in CI/CD workflow:
- **Automatisering:** Voeg de bovenstaande playbook toe aan je CI/CD pipeline (bijv. Jenkins, GitLab CI).
- **Scheduling:** Plan het uitvoeren met cron of CI/CD scheduled jobs om dagelijks te draaien.
- **Rapportage:** Sla rapporten op in een centrale opslag of dashboard.
- **Automatische alerting:** Voeg stappen toe om bij afwijkingen automatisch waarschuwingen te sturen.
**Aanbevelingen:**
- Gebruik versiebeheer voor je playbooks.
- Implementeer automatische remediatie waar mogelijk.
- Maak gebruik van CI/CD tools om rapportage en compliance te integreren in je ontwikkelproces.
Heeft u nog verdere hulp of specifieke aanpassingen nodig?
provider: deepseek
model: deepseek-chat
Zeker, ik help je graag een Ansible playbook te ontwerpen voor CIS compliance checks. Hieronder vind je een gedetailleerde oplossing.
---
### Ansible Playbook voor CIS Compliance Auditing
**Bestandsnaam:** `cis-compliance-audit.yml`
```yaml
---
- name: CIS Benchmark Compliance Audit
hosts: webservers,database-servers
become: yes
vars:
report_dir: "/var/log/compliance_reports"
cis_version: "2.0.0" # Pas aan naar jouw CIS versie
audit_frequency: "daily"
tasks:
- name: Zorg dat report directory bestaat
file:
path: "{{ report_dir }}"
state: directory
mode: '0755'
- name: CIS Control 1.1.1.1 - Ensure mounting of cramfs filesystems is disabled
block:
- name: Check cramfs module status
shell: lsmod | grep cramfs
register: cramfs_module
changed_when: false
failed_when: false
- name: Validate cramfs is disabled
set_fact:
cis_1_1_1_1_compliant: "{{ cramfs_module.rc != 0 }}"
tags: cis_1.1.1.1
- name: CIS Control 1.1.1.2 - Ensure mounting of freevxfs filesystems is disabled
# Vergelijkbare implementatie als bovenstaande control
tags: cis_1.1.1.2
# Voeg hier alle relevante CIS controls toe voor jouw omgeving
# Zie https://www.cisecurity.org/cis-benchmarks voor complete lijst
- name: Genereer JSON rapport
block:
- name: Verzamel compliance resultaten
set_fact:
compliance_report:
timestamp: "{{ ansible_date_time.iso8601 }}"
host: "{{ inventory_hostname }}"
cis_version: "{{ cis_version }}"
controls:
cis_1_1_1_1:
compliant: "{{ cis_1_1_1_1_compliant | default(false) }}"
description: "Ensure mounting of cramfs filesystems is disabled"
# Voeg alle andere controls hier toe
- name: Schrijf JSON rapport naar bestand
copy:
content: "{{ compliance_report | to_nice_json }}"
dest: "{{ report_dir }}/compliance-{{ inventory_hostname }}-{{ ansible_date_time.date }}.json"
mode: '0644'
run_once: true
delegate_to: localhost
handlers:
- name: restart syslog
service:
name: rsyslog
state: restarted
when: cis_1_4_1_1_compliant is defined and not cis_1_4_1_1_compliant
```
---
### Implementatie Stappen:
1. **Installeer benodigde packages:**
```bash
sudo apt-get install ansible python3-jmespath
```
2. **Maak host inventory:**
```ini
[webservers]
web1.example.com
web2.example.com
[database-servers]
db1.example.com
db2.example.com
```
3. **Voer playbook uit:**
```bash
ansible-playbook -i inventory.ini cis-compliance-audit.yml
```
---
### CI/CD Integratie Aanbevelingen:
1. **GitLab CI/CD Voorbeeld:**
```yaml
compliance_audit:
stage: security
image: python:3.9
before_script:
- pip install ansible
script:
- ansible-playbook cis-compliance-audit.yml
artifacts:
paths:
- var/log/compliance_reports/
reports:
junit: compliance-reports/*.json
only:
- schedules # Voor dagelijkse uitvoering
```
2. **Jenkins Pipeline:**
```groovy
pipeline {
agent any
triggers {
cron('0 2 * * *') // Dagelijks om 02:00
}
stages {
stage('Compliance Check') {
steps {
sh 'ansible-playbook cis-compliance-audit.yml'
archiveArtifacts 'var/log/compliance_reports/*.json'
}
}
}
}
```
3. **GitHub Actions:**
```yaml
name: Daily Compliance Audit
on:
schedule:
- cron: '0 2 * * *' # Dagelijks om 02:00 UTC
jobs:
compliance-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run Ansible Playbook
run: |
pip install ansible
ansible-playbook cis-compliance-audit.yml
- name: Upload reports
uses: actions/upload-artifact@v3
with:
name: compliance-reports
path: var/log/compliance_reports/
```
---
### Aanvullende Aanbevelingen:
1. **Gebruik CIS Baseline Roles:**
- Overweeg `ansible-galaxy` roles zoals `devsec.hardening.cis` voor complete implementatie
2. **Security Monitoring:**
- Integreer met SIEM tools (ELK Stack, Splunk) voor centrale monitoring
- Stel alerts in voor critical findings
3. **Compliance Dashboard:**
- Overweeg tools like OpenSCAP of Wazuh voor visualisatie
- Maak custom dashboards met Grafana
4. **Remediation Automation:**
- Ontwikkel auto-remediation playbooks voor veelvoorkomende issues
- Implementeer approval workflows voor kritieke wijzigingen
5. **Documentatie:**
- Houd een compliance register bij
- Documenteer uitzonderingen en risk acceptances
Let op: Pas de controls aan naar jouw specifieke CIS Benchmark versie en omgevingseisen. Test altijd eerst in een development omgeving!