La V2R30 apporte le niveau de sécutité 50. Peut -être est-il bon de commencer par rappeller ce que signifie le niveau de sécurité 40 (forcément englobé dans le niveau 50) la version 2 (qui à introduit le niveau 40) apporte une nouvelle notion Le domaine de l'objet - utilisateur (ce sont nos objets) sauf *USRSPC,*USRIDX,*USRQ pour lesquels nous avons le choix - système (les objets de l'OS) + Refuse les pgms qui utilisent des interfaces non supportés Un pgm dans un domaine utilisateur ne peut acceder directement qu'à des objets se trouvant dans un domaine utilisateur Pour acceder à un objet système, seules les commandes et les API sont autorisées. |
Cela va interdir l'accès direct (via MI ou pointeurs) à des objets systèmes l'appel (CALL) du CPP de la commande SIGNOFF par ex. + Refuse l'accès à des structures internes via pointeurs (en C par ex.) + Refuse la modification de l'espace associé aux programmes + Refuse l'accès aux blocks internes (Work Control Block) + Refuse l'utilisation (lors de soumission) d'une JOBD contenant un profil utilisateur pour lequel le profil en cours n'a pas les droits + Refuse une ouverture de session sans signature (profil et mot de passe) cela est possible en sécurité 30 en indiquant sur la commande ADDWSE une JOBD contenant un profil. + ET ENFIN : protection hardware des blocks systèmes swappés sur disque. ==> uniquement pour modèles D:9404,9406 - E et supérieurs. |
le niveau de sécurité 50 apporte en plus : + QTEMP devient un objet temporaire Accès à QTEMP impossible pour les autres job (même via pointeurs) ATTENTION : cela veut dire que temp n'est plus nettoyé lors d'une fin anormale de travail (==> RCLSTG plus fréquents) + Vérification des paramètres transmis: Le sysème vérifie la validité des paramètres transmis entre pgm utilisateur et pgm système,notamment les pointeurs : vérification qu'ils ne pointent pas sur des objets système. --> Prévoir une dégradation des performances (5 %) + Lors de l'envoi de message d'exception (*STATUS,*NOTIFY,*ESCAPE) à un pgm système,l'OS vérifie que : Soit le pgm système est REQEST PROCESSOR Soit que le pgm système à appellé un pgm utilisateur Si ce n'est pas le cas, l'envoi de message est refusé !! |
+ Quand un pgm reçoit un message stocké dans l'external le système passe tous les pointeurs à NULL. + Aucun block de contrôle de peut être modifié par un pgm utilisateur (y compris PASA, ODP, etc ...) + et enfin: les objets utilisateurs que sont les *USRSPC, *USRIDX , *USRQ peuvent être déclarés appartenant à un domaine système (accès uniquement via API) ou utilisateur (accès possible via MI ou instructions de bas niveau, C par ex.) La valeurs système QALWUSRDMN précise dans quelles bibliothèque(s) peuvent être placés de tels objets. Pour avoir la conformité C2 (norme du département de défense Américain) Vous devez : PASSER QSECURITY à 50 QSRVDMP à *NONE QSFWERRLOG à *NOLOG QALWUSRDMN à 'QTEMP' et activer le journal d'audit (voir ce cours) |
ATTENTION: Avant de passer au niveau de sécurité 50, vous devez Mettre en place le journal d'audit (permet de voir ce qui sera refusé : Code journal AF) Renseigner QALWUSRDMN Recompiler tous les pgms COBOL ou RPG qui utilisent un DSPF avec un compilateur V2R30. Recompiler TOUS les COBOL en environnement 36 en V2R30. Vous devez aussi vous attendre à une dégradation générale des performances. |