Project Oxygen & Ideo-LabIDEO LAB Dashboard 2026

RACF Audit Reader V2 – Analyseur sĂ©curitĂ© RACF / ICH / IRR / SAF

Objectif du guide

Installer, tester et exploiter racf_audit_reader_v2.py, un utilitaire autonome qui analyse des exports RACF, SYSLOG sécurité, messages ICH, IRR, violations SAF, commandes RACF, accÚs datasets, changements de privilÚges et dérives de conformité.

TĂ©lĂ©charger l’utilitaire RACF Audit Reader V2

Le bouton principal pointe explicitement vers /static/toolbox/racf_audit_reader_v2.py. DĂ©pose ce script dans static/toolbox/ pour l’exposer depuis IDEO-Lab.

RACF Audit Reader V2 est orientĂ© audit sĂ©curitĂ© et conformitĂ©. Il transforme des logs RACF trĂšs verbeux en timeline, findings, score de risque, dĂ©rives de groupes, commandes sensibles, datasets exposĂ©s et alertes de privilĂšges. L’outil ne remplace pas un audit humain, mais il accĂ©lĂšre considĂ©rablement le triage.

Audit
Lecture ICH408I, IRR, SAF, access denied, S913, commandes RACF et traces de changements.
Compliance
Détection SPECIAL, OPERATIONS, AUDITOR, BPX.SUPERUSER, UACC, SETROPTS et groupes sensibles.
Export
Production HTML, JSON, CSV events, findings, users, datasets, groups, commands, categories et compare.

Ce que le moteur analyse

DomaineSignaux analysésDiagnostic produit
Violations RACFICH408I, IRR, ACCESS DENIED, INSUFFICIENT ACCESS, S913Top users refusĂ©s, ressources sensibles, gravitĂ©, rĂ©pĂ©tition, piste d’incident.
Commandes sécuritéALTUSER, ADDUSER, CONNECT, PERMIT, RDEFINE, RALTER, SETROPTS, RVARYChangements sensibles, élévation de privilÚges, drift groupe, contrÎle change-management.
PrivilùgesSPECIAL, OPERATIONS, AUDITOR, CLAUTH, BPX.SUPERUSER, UID(0)Suspicion d’escalade, utilisateurs trop puissants, revue des habilitations.
Datasets sensiblesSYS1, RACF, SECURITY, PAYROLL, HR, FIN, PROD, DB2, CICSAccÚs refusés ou autorisés sur zones critiques, exposition potentielle.
Baseline / driftComparaison current vs baseline des users, groups, commands, datasets.Nouveaux privilĂšges, nouvelles permissions, modifications non attendues.
Sensibilité : un export RACF peut exposer des users, groupes, datasets, privilÚges et politiques sécurité. Utiliser --redact avant tout partage externe.

Téléchargement des fichiers

Cette page fournit les liens explicites vers le script Python, les samples d’audit, la policy JSON et le pack complet. Pour IDEO-Lab, les fichiers doivent ĂȘtre dĂ©posĂ©s sous /static/toolbox/.

Utilitaire principal

Script Python autonome, sans dépendance externe, à lancer sur un export RACF/SYSLOG sécurité texte.

Sample mixed audit

Violations, accĂšs dataset, commandes RACF, SETROPTS et privilĂšges.

Download mixed

Sample baseline

Référence de comparaison pour identifier les changements et dérives.

Download baseline

Sample privilege

Focus SPECIAL, OPERATIONS, AUDITOR, BPX.SUPERUSER, CONNECT sensible.

Download privilege

Sample compliance

Focus audit compliance, SETROPTS, UACC, PERMIT et policy drift.

Download compliance

Policy JSON

Patterns sensibles, groupes privilégiés, datasets critiques et seuils.

Download policy

Pack ZIP

Script, samples, policy, exports et rapports de démonstration.

Download ZIP

Arborescence static recommandée

static files
static/
  toolbox/
    racf_audit_reader_v2.py
    racf_audit_reader_v2_pack.zip
    sample_racf_v2_mixed.txt
    sample_racf_v2_baseline.txt
    sample_racf_v2_privilege.txt
    sample_racf_v2_compliance.txt
    sample_racf_v2_policy.json
    racf_audit_reader_v2_guide.html
ContrĂŽle visuel : le bouton Download racf_audit_reader_v2.py est prĂ©sent en haut de la page, dans l’onglet TĂ©lĂ©chargement, dans Installation et dans Fichiers input.

Installation de RACF Audit Reader V2

Le script est autonome. Il suffit d’une version Python moderne et d’un fichier texte exportĂ© depuis SYSLOG, OPERLOG, SMF/RACF converti, ou une extraction sĂ©curitĂ© contenant des messages ICH/IRR/RACF/SAF.

1. Arborescence locale recommandée

Project tree
racf_audit_lab/
  bin/
    racf_audit_reader_v2.py
  input/
    sample_racf_v2_mixed.txt
    sample_racf_v2_baseline.txt
    sample_racf_v2_privilege.txt
    sample_racf_v2_compliance.txt
    sample_racf_v2_policy.json
  output/
    reports/
    csv/
    json/
Lien direct du script Ă  installer

Ce bouton pointe explicitement vers /static/toolbox/racf_audit_reader_v2.py.

2. Installation Linux / macOS

Linux / macOS setup
mkdir -p racf_audit_lab/bin racf_audit_lab/input racf_audit_lab/output/reports racf_audit_lab/output/csv racf_audit_lab/output/json
cp racf_audit_reader_v2.py racf_audit_lab/bin/
cp sample_racf_v2_*.txt racf_audit_lab/input/
cp sample_racf_v2_policy.json racf_audit_lab/input/
cd racf_audit_lab
python3 bin/racf_audit_reader_v2.py --demo mixed

3. Installation Windows PowerShell

Windows PowerShell setup
New-Item -ItemType Directory -Force racf_audit_lab\bin, racf_audit_lab\input, racf_audit_lab\output\reports, racf_audit_lab\output\csv, racf_audit_lab\output\json
Copy-Item .\racf_audit_reader_v2.py .\racf_audit_lab\bin\
Copy-Item .\sample_racf_v2_*.txt .\racf_audit_lab\input\
Copy-Item .\sample_racf_v2_policy.json .\racf_audit_lab\input\
Set-Location .\racf_audit_lab
python .\bin\racf_audit_reader_v2.py --demo mixed

4. Test de validation

Validation command
python bin/racf_audit_reader_v2.py input/sample_racf_v2_mixed.txt \
  --baseline input/sample_racf_v2_baseline.txt \
  --policy input/sample_racf_v2_policy.json \
  --profile security \
  --html output/reports/sample_racf_v2_mixed_report.html \
  --json output/json/sample_racf_v2_mixed_analysis.json \
  --csv-events output/csv/sample_racf_v2_mixed_events.csv \
  --csv-findings output/csv/sample_racf_v2_mixed_findings.csv \
  --csv-users output/csv/sample_racf_v2_mixed_users.csv \
  --csv-datasets output/csv/sample_racf_v2_mixed_datasets.csv \
  --csv-groups output/csv/sample_racf_v2_mixed_groups.csv \
  --csv-commands output/csv/sample_racf_v2_mixed_commands.csv \
  --csv-categories output/csv/sample_racf_v2_mixed_categories.csv \
  --csv-compare output/csv/sample_racf_v2_mixed_compare.csv
Résultat attendu : le sample mixed doit produire plusieurs findings critiques, un score élevé, des users, datasets, groupes, commandes RACF et un tableau de comparaison baseline.

Fichiers input attendus

RACF Audit Reader V2 attend un fichier texte brut. L’extension peut ĂȘtre .txt, .log, .syslog, .operlog, .racf ou .lst. Les lignes peuvent provenir de SYSLOG, OPERLOG, extracts SMF/RACF dĂ©jĂ  convertis, ou de traces de commandes sĂ©curitĂ©.

Utilitaire nécessaire pour analyser les inputs

TĂ©lĂ©charger d’abord le script Python, puis lancer l’analyse sur un export RACF/SYSLOG sĂ©curitĂ©.

1. Sources acceptées

SourceContenu typiqueUsage
SYSLOG / OPERLOGMessages ICH/IRR/RACF/SAF, access denied, S913, violations.Timeline d’incident sĂ©curitĂ© et triage opĂ©rationnel.
SMF/RACF convertiÉvĂ©nements d’audit, access attempts, allowed/denied, user/group/resource.Audit compliance, historisation et reporting sĂ©curitĂ©.
Commandes RACFALTUSER, CONNECT, PERMIT, SETROPTS, RDEFINE, RALTER.DĂ©tection changements sensibles et drift d’habilitations.
BaselineSnapshot précédent des événements ou permissions.Comparaison des nouveaux privilÚges, groupes, datasets, commandes.
Policy JSONPatterns sensibles, groupes privilĂ©giĂ©s, datasets critiques, seuils.Adaptation aux conventions sĂ©curitĂ© de l’entreprise.

2. Exemple minimal de trace RACF

sample_racf_v2_mixed.txt
08:11:03 ICH408I USER(PAYUSR1) GROUP(PAYROLL) NAME(PAYROLL USER) DATASET(PAYROLL.PROD.MASTER) CL(DATASET)
08:11:03 ICH408I USER(PAYUSR1) INSUFFICIENT ACCESS AUTHORITY ACCESS INTENT(READ) ACCESS ALLOWED(NONE)
08:12:44 RACF COMMAND: ALTUSER PAYADM SPECIAL OPERATIONS BY SECADM1
08:13:02 RACF COMMAND: CONNECT PAYUSR1 GROUP(SYS1ADM) AUTHORITY(JOIN) BY SECADM1
08:14:33 RACF COMMAND: SETROPTS NOAUDIT NOWARNING BY SECADM1
08:15:18 IEF450I PAYJOB01 STEP010 - ABEND=S913 REASON=00000004

3. Samples disponibles

Mixed audit

Violations, privilege escalation, SETROPTS, groups et datasets sensibles.

Download

Baseline

Référence de comparaison pour drift et changements non attendus.

Download

Privilege

Cas concentré sur SPECIAL, OPERATIONS, AUDITOR, BPX.SUPERUSER.

Download

Compliance

Cas orienté audit : UACC, SETROPTS, PERMIT, policy drift.

Download

RÚgle de sécurité : ne jamais exposer un export RACF brut hors périmÚtre autorisé. Utiliser --redact, puis contrÎler manuellement les evidence lines.

Utilisation quotidienne

1. Modes démo intégrés

Demo modes
python racf_audit_reader_v2.py --demo mixed
python racf_audit_reader_v2.py --demo privilege
python racf_audit_reader_v2.py --demo compliance

2. Analyse simple d’un fichier

Simple analysis
python racf_audit_reader_v2.py input/sample_racf_v2_mixed.txt

3. Analyse complĂšte avec exports

Full export analysis
python racf_audit_reader_v2.py input/sample_racf_v2_mixed.txt \
  --baseline input/sample_racf_v2_baseline.txt \
  --policy input/sample_racf_v2_policy.json \
  --profile security \
  --json output/json/racf_analysis.json \
  --html output/reports/racf_report.html \
  --csv-events output/csv/racf_events.csv \
  --csv-findings output/csv/racf_findings.csv \
  --csv-users output/csv/racf_users.csv \
  --csv-datasets output/csv/racf_datasets.csv \
  --csv-groups output/csv/racf_groups.csv \
  --csv-commands output/csv/racf_commands.csv \
  --csv-categories output/csv/racf_categories.csv \
  --csv-compare output/csv/racf_compare.csv

4. Mode anonymisé

Redacted report
python racf_audit_reader_v2.py input/production_racf_log.txt \
  --policy input/site_security_policy.json \
  --profile audit \
  --redact \
  --html output/reports/production_racf_redacted.html \
  --json output/json/production_racf_redacted.json

5. Mode batch strict

Batch strict mode
python racf_audit_reader_v2.py input/nightly_racf_extract.txt \
  --profile compliance \
  --policy input/site_security_policy.json \
  --html output/reports/nightly_racf_report.html \
  --csv-findings output/csv/nightly_racf_findings.csv \
  --fail-on CRITICAL
Lecture recommandĂ©e : ouvrir d’abord le rapport HTML, puis exploiter les CSV pour tri par user, dataset, groupe, commande, catĂ©gorie ou comparaison baseline.

ParamĂštres de ligne de commande

1. ParamĂštres d’entrĂ©e et de sortie

ParamĂštreDescriptionExemple
input_fileFichier RACF/SYSLOG sécurité texte à analyser.input/racf_log.txt
--demoLance un sample intégré : mixed, privilege, compliance.--demo mixed
--policyCharge une policy JSON : patterns, groupes, datasets sensibles, seuils.--policy site_security_policy.json
--baselineCompare l’état actuel Ă  une rĂ©fĂ©rence prĂ©cĂ©dente.--baseline baseline.txt
--jsonExporte l’analyse complùte en JSON.--json output/analysis.json
--htmlGénÚre le rapport HTML.--html output/report.html
--csv-eventsExporte les événements normalisés.--csv-events output/events.csv
--csv-findingsExporte les anomalies et recommandations.--csv-findings output/findings.csv
--csv-usersExporte la synthĂšse par user.--csv-users output/users.csv
--csv-datasetsExporte la synthĂšse par dataset.--csv-datasets output/datasets.csv
--csv-groupsExporte la synthĂšse par groupe.--csv-groups output/groups.csv
--csv-commandsExporte les commandes RACF détectées.--csv-commands output/commands.csv
--csv-categoriesExporte le scoring par catégorie.--csv-categories output/categories.csv
--csv-compareExporte les différences baseline/current.--csv-compare output/compare.csv

2. Paramùtres d’analyse et de gouvernance

ParamÚtreEffetUsage recommandé
--profileProfil : production, security, compliance, audit, privilege, training, strict.Ajuster la lecture métier et la sévérité selon le contexte.
--redactMasque users, datasets et identifiants sensibles dans les sorties.Partage externe, support, ticket ou démonstration.
--fail-onRetourne un code erreur Ă  partir d’une sĂ©vĂ©ritĂ© donnĂ©e.--fail-on ERROR ou --fail-on CRITICAL.

3. Exemple profil compliance

Compliance profile
python racf_audit_reader_v2.py input/sample_racf_v2_compliance.txt \
  --profile compliance \
  --policy input/sample_racf_v2_policy.json \
  --html output/reports/compliance_report.html \
  --csv-findings output/csv/compliance_findings.csv \
  --csv-categories output/csv/compliance_categories.csv

Exemples d’utilisation

ScĂ©nario 1 – Violations d’accĂšs rĂ©pĂ©tĂ©es

Un user provoque plusieurs refus sur datasets sensibles, avec risque d’usage non autorisĂ© ou rĂŽle mal provisionnĂ©.

Repeated denied access
python racf_audit_reader_v2.py input/sample_racf_v2_mixed.txt \
  --profile security \
  --policy input/sample_racf_v2_policy.json \
  --html output/reports/denied_access_report.html \
  --csv-users output/csv/denied_users.csv \
  --csv-datasets output/csv/denied_datasets.csv

ScĂ©nario 2 – Suspicion d’escalade de privilĂšges

Détection de SPECIAL, OPERATIONS, CONNECT à un groupe sensible, BPX.SUPERUSER ou UID(0).

Privilege escalation
python racf_audit_reader_v2.py input/sample_racf_v2_privilege.txt \
  --profile privilege \
  --policy input/sample_racf_v2_policy.json \
  --html output/reports/privilege_report.html \
  --csv-commands output/csv/privilege_commands.csv \
  --csv-groups output/csv/privilege_groups.csv

ScĂ©nario 3 – Audit compliance nocturne

ContrÎle régulier SETROPTS, UACC, PERMIT dangereux, changements de groupes et dérives baseline.

Nightly compliance audit
python racf_audit_reader_v2.py input/nightly_racf_extract.txt \
  --baseline input/previous_racf_baseline.txt \
  --policy input/site_security_policy.json \
  --profile compliance \
  --html output/reports/nightly_compliance_report.html \
  --json output/json/nightly_compliance_analysis.json \
  --csv-findings output/csv/nightly_compliance_findings.csv \
  --csv-compare output/csv/nightly_compliance_compare.csv \
  --fail-on CRITICAL

ScĂ©nario 4 – Rapport anonymisĂ© pour ticket externe

External ticket report
python racf_audit_reader_v2.py input/security_incident.txt \
  --profile audit \
  --redact \
  --html output/reports/security_incident_redacted.html \
  --csv-findings output/csv/security_incident_redacted_findings.csv

Compliance, drift et lecture sécurité

La V2 n’est pas seulement un lecteur de messages. Elle doit aider Ă  distinguer un incident d’accĂšs d’un changement de sĂ©curitĂ©, un changement autorisĂ© d’une dĂ©rive, et un warning isolĂ© d’un vrai risque de privilĂšge.

1. Catégories de risques

CatégorieSignaux typiquesLecture opérationnelle
Access violationICH408I, ACCESS DENIED, INSUFFICIENT ACCESS, S913.AccÚs refusé, rÎle absent, user suspect ou tentative non autorisée.
Privilege escalationSPECIAL, OPERATIONS, AUDITOR, BPX.SUPERUSER, UID(0).Augmentation de pouvoir Ă  justifier par change control.
Group driftCONNECT Ă  SYS1ADM, RACFADM, SECURITY, DB2ADM, CICSADM.Appartenance Ă  groupe sensible Ă  contrĂŽler.
Dangerous policySETROPTS NOAUDIT, NOWARNING, NOPROTECTALL, UACC élevé.Affaiblissement global de posture sécurité.
Sensitive datasetSYS1, RACF, SECURITY, PAYROLL, HR, FIN, PROD, DB2, CICS.Ressources à haute valeur métier ou systÚme.

2. Exemple de policy JSON

sample_racf_v2_policy.json
{
  "sensitive_dataset_patterns": ["SYS1", "RACF", "SECURITY", "PAYROLL", "HR", "FIN", "PROD", "DB2", "CICS"],
  "privileged_groups": ["SYS1ADM", "RACFADM", "SECURITY", "DB2ADM", "CICSADM"],
  "privileged_authorities": ["SPECIAL", "OPERATIONS", "AUDITOR", "CLAUTH", "BPX.SUPERUSER", "UID(0)"],
  "dangerous_setropts": ["NOAUDIT", "NOWARNING", "NOPROTECTALL"],
  "max_denials_per_user": 3,
  "max_denials_per_dataset": 3
}

3. Bon rĂ©flexe d’audit

  • Comparer systĂ©matiquement l’extraction actuelle avec une baseline validĂ©e.
  • Ne pas classer une violation isolĂ©e comme incident majeur sans contexte utilisateur, dataset et horaire.
  • Isoler les commandes RACF exĂ©cutĂ©es hors fenĂȘtre de changement.
  • VĂ©rifier les groupes privilĂ©giĂ©s aprĂšs chaque CONNECT.
  • Surveiller les modifications globales SETROPTS, souvent plus critiques qu’un simple accĂšs refusĂ©.
Important : l’outil propose des candidats de risque. La validation finale doit ĂȘtre faite par l’équipe sĂ©curitĂ©, un administrateur RACF ou un auditeur habilitĂ©.

Exports et exploitation des résultats

Rapport HTML

Vue lisible : score, summary, findings, users, datasets, groups, commands, categories et baseline drift.

Analyse JSON

Format complet pour API, stockage historique, portail compliance ou dashboard sécurité.

Events CSV

Une ligne par événement sécurité normalisé : timestamp, user, dataset, groupe, commande, message.

Findings CSV

Une ligne par anomalie : sévérité, catégorie, description, recommandation et evidence.

Users / Datasets / Groups CSV

SynthĂšses par entitĂ© pour prioriser audit, remĂ©diation et revue d’habilitation.

Compare CSV

Différence baseline/current pour détecter les nouvelles permissions, groupes ou commandes sensibles.

Exemple de synthĂšse console

Console output
RACF Audit Reader V2
Status           : BLOCKED
Highest severity : CRITICAL
Risk score       : 100/100
Profile          : security
Lines            : 15
Events           : 15
Findings         : 32
Users            : 5
Datasets         : 5
Groups           : 2
Commands         : 6

Idée de table SQL pour historisation

SQL model idea
CREATE TABLE racf_audit_run (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    source_name VARCHAR(255),
    profile VARCHAR(32),
    status VARCHAR(32),
    highest_severity VARCHAR(16),
    risk_score INTEGER,
    event_count INTEGER,
    finding_count INTEGER,
    user_count INTEGER,
    dataset_count INTEGER,
    group_count INTEGER,
    command_count INTEGER,
    report_path VARCHAR(500),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Vision produit : la V2 peut devenir un module d’un portail compliance z/OS : recherche par user, dataset, groupe, commande, dĂ©rive baseline, indicateurs audit et workflow de remĂ©diation.

Dépannage et bonnes pratiques

1. Le script ne dĂ©tecte pas d’évĂ©nements RACF

Cause possibleCorrection
Le fichier n’est pas du texte brut.Exporter depuis SYSLOG/OPERLOG/outil SMF en texte, pas en PDF image.
Les messages ICH/IRR ont été filtrés.Récupérer une extraction sécurité plus complÚte.
Les commandes RACF sont dans un format site-specific.Adapter la policy ou ajouter des patterns dédiés.
Les datasets ou users sont anonymisés en amont.Conserver un mapping interne sécurisé pour audit réel.

2. Trop d’alertes remontĂ©es

Certains environnements ont beaucoup de refus normaux. Utiliser une policy JSON précise, isoler les groupes/datasets critiques, et comparer avec une baseline validée pour séparer le bruit des dérives réelles.

Focused audit
python racf_audit_reader_v2.py input/racf_extract.txt \
  --profile compliance \
  --policy input/site_security_policy.json \
  --baseline input/validated_baseline.txt \
  --fail-on CRITICAL \
  --html output/reports/focused_racf_audit.html

3. Check-list avant partage externe

  • Utiliser --redact pour masquer users, datasets, groupes et ressources sensibles.
  • Anonymiser aussi le nom du sysplex, LPAR, application, environnement et horaires si nĂ©cessaire.
  • Conserver une copie brute interne pour validation du diagnostic.
  • ContrĂŽler manuellement les evidence lines avant diffusion hors Ă©quipe sĂ©curitĂ©.
  • Ne pas automatiser une remĂ©diation RACF sans validation humaine.
Point critique : RACF est une zone trĂšs sensible. Les rapports doivent ĂȘtre traitĂ©s comme documents confidentiels, surtout lorsqu’ils mentionnent SPECIAL, OPERATIONS, datasets systĂšme ou changements SETROPTS.