Sécurité
Produits de sécurité
RACF (Resource Access Control Facility)
RACF est le composant de contrôle d’accès intégré à z/OS basé sur des profils associés aux ressources. Il ne sécurise rien “par défaut”, il s’appuie sur une configuration explicite qui définit quelles ressources doivent être protégées, comment elles doivent l’être et quels utilisateurs ou groupes disposent des autorisations nécessaires. Le système démarre à l’IPL et charge l’ensemble des profils définis.
RACF intervient uniquement lorsqu’un gestionnaire de ressource (dataset manager, CICS, DB2, JES2, etc.) délègue à SAF (Security Access Facility) la décision d’autoriser ou non l’opération demandée. Le gestionnaire de ressource ne prend jamais de décision lui-même, il décrit la ressource et l’intention d’accès, puis attend la réponse donnée par SAF après consultation de RACF.
La GAC (Global Access Checking) est une table consultée avant l’accès RACF et peut accorder des accès sans interroger RACF.
[User/Program]
|
v
[Gestionnaire de ressource]
| (Demande d'accès)
v
[SAF]
|
|-- Vérifie GAC (Global Access Checking)
| |-- ALLOW → retour direct
|
|-- Sinon → appel RACF
|
v
[RACF]
- Trouve le profil
- Compare ACL/UACC
- Évalue attributs (SPECIAL, OPERATIONS…)
|
v
Décision (ALLOW/DENY)
|
v
[SAF] → renvoie la décision
|
v
[Gestionnaire de ressource] → ALLOW ou DENYL’UACC définit le niveau d’accès par défaut qu’un utilisateur ou un groupe peut obtenir sur une ressource RACF lorsqu’aucune autorisation explicite n’a été spécifiée dans la Access Control List (ACL) du profil de cette ressource
Les droits disponibles pour les ressources sont les suivants :
NONE: aucun droit d’accès.EXECUTE: capacité d’exécuter un programme (load module).READ: autorisation de lecture.UPDATE: autorisation de modifier un fichier, sans pouvoir le supprimer.CONTROL: niveau applicable principalement aux fichiers VSAM.ALTER: niveau maximal permettant l’allocation, la modification et la suppression de fichiers.
Attributs RACF
RACF utilise un ensemble d’attributs qui qualifient les capacités particulières d’un utilisateur ou d’un groupe.
SPECIAL: confère une capacité d’administration quasi totale sur RACF. Un utilisateurSPECIALpeut créer, modifier et supprimer n’importe quel profil RACF (utilisateur, groupe, dataset, ressource), définir des mots de passe, administrer d’autres administrateurs.OPERATIONS: permet d’accéder en lecture, écriture ou mise à jour à pratiquement toute ressource protégée, même si les ACL ne l’autorisent pas explicitement.AUDITOR: donne accès à toutes les informations d’audit. Permet également de définir des options d’audit et d’examiner les journaux SMF, sans pouvoir modifier les profils eux-mêmes (contrairement à SPECIAL).ROAUDIT(Read-Only Audit) : permet l’accès en lecture seule aux informations liées à l’audit, sans capacité de configuration ou de modification. Conçu pour des rôles de supervision.REVOKE: indique qu’un utilisateur est suspendu ou réactivé, suite à violation de politique, expiration ou action administrative.PROTECTED: marque un utilisateur comme non authentifiable (pas de mot de passe, pas de connexion possible). Sert pour des identités techniques servant uniquement de conteneurs d’autorisations ou d’ownership, jamais de comptes interactifs.RESTRICTED: empêche un utilisateur de bénéficier automatiquement d’un accès implicite via l’UACC
RACF applique les attributs à deux niveaux distincts mais complémentaires : le profil utilisateur et le profil de groupe. Un attribut placé sur un utilisateur s’applique directement et globalement à ce dernier. À l’inverse, les attributs dérivés de l’appartenance à un groupe ne prennent effet que dans le périmètre du groupe auquel ils sont associés.
Classes RACF
Une classe représente un type de ressource abstraite, un conteneur logique défini par IBM pour regrouper toutes les ressources partageant la même nature, la même syntaxe et les mêmes règles de contrôle. Voici quelques exemples :
USER: classe contenant les profils utilisateurs. Chaque entrée représente un utilisateur RACF, avec ses attributs (SPECIAL,OPERATIONS,RESTRICTED) et ses appartenances aux groupes.GROUP: classe contenant les profils de groupes. Les groupes structurent l’organisation des droits, servent d’owner pour les profils de ressources, et permettent de déléguer des privilèges sans les associer individuellement à chaque utilisateur.DATASET: protège les datasets z/OS (séquentiels, PDS, PDSE). Classe la plus fréquemment utilisée, car elle encadre l’accès aux données physiques du système.FACILITY: structure permettant de contrôler l’accès à des fonctionnalités, commandes internes, API système et extensions applicatives. C’est l’une des classes les plus polyvalentes.SURROGAT:
Sécurité de l’authentification
RACF ne contient pas le mot de passe des utilisateurs en clair. Il ne garde qu’un chiffré du nom d’utilisateur à partir du mot de passe de ce dernier.
1) L’utilisateur entre :
- son nom d’utilisateur (USERID)
- son mot de passe (PWD)
|
v
2) RACF NE STOCKE PAS le mot de passe.
→ Il utilise le mot de passe comme une CLÉ pour chiffrer l’USERID.
+++++++++++++++++++++++++++++++++++++++++
| EMPREINTE = Chiffrer(USERID, PWD) |
+++++++++++++++++++++++++++++++++++++++++
(avec DES ou AES selon la configuration)
|
v
3) RACF récupère l’empreinte déjà stockée pour ce USERID :
EMPREINTE_STOCKÉE
|
v
4) RACF compare :
EMPREINTE ?= EMPREINTE_STOCKÉE
┌──────────────┬──────────────┐
│ │ │
▼ │ ▼
Mot de passe OK │ Mot de passe faux
→ accès accordé │ → accès refuséMode WARNING
WARNING est un attribut pouvant être apposé sur un dataset. Dans ce mode, l’accès à la ressource est autorisée, quel que soit le droit d’accès défini dans RACF.
En revanche, si l’accès à la ressource qui est fait outrepasse la restriction d’accès confidurée dans RACF, un avertissement est généré, mais l’accès est tout de même accordé. Donc faire attention d’un point de vue OPSEC.
TSS (Top Secret Security)
ACF2
Sécurité des partitions et du système
Les systèmes IBM Z intègrent un chiffrement matériel directement appliqué aux disques.
Les composants cryptographiques sont conçus pour résister aux futures menaces quantiques et permettent l’intégration de nouveaux protocoles de cryptographie post-quantique.
Protections inhérentes à z/OS
Protection de la mémoire
Chaque page mémoire de 4 ko est protégée par une clé codée sur 8 bits.
| Clé | Type de programme autorisé | Exemple |
|---|---|---|
| 0 | Accès superviseur | Nucleus |
| 1 | Interface système | JES, TSO, scheduleur |
| 2 | Réservé | |
| 3 | Haute disponibilité | Availability management (AVM) |
| 4 | Réservé | |
| 5 | Gestionnaire I/O | SMS, RMM |
| 6 | Réseaux | VTAM, IP |
| 7 | Bases de données | CICS, DB2, MQ |
| 8,9 | Mémoire virtuelle | Programme utilisateur |
| A-F | Mémoire réelle | Programme utilisateur |
Chaque programme s’exécute également dans une storage key, encodée dans son PSW. Les programmes ne peuvent pas utiliser une page si leur clé ne correspond pas à celle de la page.
Par défaut un programme utilisateur va tourner avec la clé 8.
Rappel sur le PSW :
+-----------------------------------------------------------------+
| 0 | R | 0 0 0 | T | I O | E X | Key | 1 | M | W | P | A S | C C |
+-----------------------------------------------------------------+
0 1 2 4 5 6 7 8 11 12 13 14 15 16 17 18 19
+-----------------------------------------------------------------+
| Prog Mask | R I | 0 0 0 0 0 0 | E A | B A | Instruction Address |
+-----------------------------------------------------------------+
20 23 24 25 30 31 32 33 63APF (Authorized Program Facility)
L’APF est un mécanisme de sécurité qui permet d’identifier les programmes qui sont autorisés à utiliser des fonctions sensibles du système. Pour qu’un programme puisse accéder à des fonctions restreintes, tels que certains SVC (supervisor calls), il doit être autorisé via l’APF. Il vise à protéger l’intégrité du système en limitant l’usage de fonctionnalités critiques.
Un programme APF-authorized peut :
- s’exécuter en supervisor state
- utiliser une clé PSW 0–7
- modifier des blocs de contrôle système
- exécuter des instructions privilégiées
- désactiver la journalisation
Pour qu’un programme soit APF authorized, il doit :
- être chargé depuis une bibliothèque déclarée APF
Ces bibliothèques contiennent des modules systèmes, des exits, des programmes de sécurité et sont par défaut situées dans :
SYS1.LINKLIBSYS1.SVCLIBSYS1.LPALIB
- être marqué « autorisé » dans la bibliothèque
Le module doit être compilé ou lié avec l’attribut AC=1 (Authorized Code)
Si un programme AC=1 est chargé depuis une bibliothèque non-APF → il reste non autorisé.
Si un programme AC=0 est chargé depuis une bibliothèque APF → il reste non autorisé