Le web de Dominique Guebey – IBM AS/400 iSeries

Page web  : http://www.dg77.net/tekno/as400/as400sec.htm


   D o m i n i q u e   G u e b e y    J u n g l e      IBM AS/400 iSeries

Sécurité sur IBM iSeries

Sommaire :

Sécurisation de l’AS400. Voir aussi des listes de commandes et paramètres de sécurité dans la page «pêle-mêle AS400».


Niveaux de sécurité

Le niveau s’établit avec la valeur système QSECURITY

La meilleure approche est de bien séparer les utilisateurs en groupes et d’utiliser le contrôle de groupe.


Assistant de configuration de sécurité iSeries Navigator

Dans le panneau de gauche, ouvrir Mes connexions > choisir le serveur > Sécurité. Dans la partie « Tâches liées à la sécurité » (en bas à droite), choisir Configuration de la sécurité du serveur. Après une série de questions sur le système et ses connexions, on obtient deux fichiers texte qui énumèrent et explicitent les préconisations d’IBM. Ces dernières peuvent ensuite être choisies individuellement (cases à cocher) et on peut les appliquer si on le désire.


Diverses questions

Contrôle d’audit

L’audit se gère avec la valeur système QAUDCTL et les suivants (QAUDLVL…). Il est utilisable quel que soit le niveau de sécurité. Son utilisation est particulièrement utile si on veut monter aux niveaux 40 ou 50.

Pour passer au niveau 40, il faut activer les audits *AUTFAIL et *SECURITY (valeur sytème QAUDLVL). Le journal obtenu permettra de découvrir déventuelles violations de protection au niveau 40.

Profils ayant le droit spécial *ALLOBJ

Un tel utilisateur peut faire ce qu’il veut, et si d’autres peuvent soumettre une commande avec ce profil…

*ALLOBJ ne devrait pas être utilisé au niveau groupe. On peut utiliser d’autres droits, par exemple *JOBCTL permet de voir le joblog d’un utilisateur. Operation Navigator fournit des outils : Clic droit sur le nom du système > Administration d’application > Application hôte > ouvrir l’arbre OS/400 > ouvrir "tous objets" > Cocher dans la colonne "Accè à tous les objets" > Personnalisation > A ce point on peut choisir le/les utilisateur(s). Dans ce cas particulier, il existe une commande équivalente (Work with Function Usage, WRKFCNUSG). Si nécessaire on pourra créer un programme dont le propriétaire aura une autorité ou le droit spécial suffisant pour accomplir la tâche. Cette approche évite d’avoir trop d’utilisateur élevés au rang de *SECADM.


Mesures préventives

Vite-vite et pêle-mêle, quelques saines habitudes : investigations et vérifications.

Mots-de-passe utilisateurs
  • ANZDFTPWD : (Analyze Default Passwords) liste des profils qui ont un mot de passe identique à l’userid.
  • CRTUSRPRF : créer les profils avec mot de passe *NONE, et création d’un mot de passe seulement quand l’utilisateur demandera à se servir du profil qu’on lui a attribué. Et encore on le crée *EXPIRED, ce qui l’obligera à le changer illico.
  • ANZPRFACT : permet de désactiver les profils inactifs depuis n. jours.
Fonctions réalisées par plusieurs commandes ou API
Recherche dans les bibliothèques AS400 : WRKOBJ *ALL/[nom_cde] *CMD
Recherche dans l’IFS. Ne pas oublier les commandes UNIX équivalentes. Exemple : CRTDIR et MKDIR.
Rechercher dans les API de programmation réalisant la fonction qu’on recherche. Exemples : remove() et rename(). Il convient d’avoir une sérieuse sécurité des objets pour éviter l’utilisation de commande par qui n’en a pas besoin.
Objets inutilisés
Ceci concerne particulèrement les produits pas ou plus utilisés.
Noter que dans une bibliothèque *PUBLIC *CHANGE (ou plus), des utilisateurs peuvent y stocker (donc camoufler) des programmes et données.
Profils *PUBLIC *USE ou plus
Il est possible de soumettre une tâche sous un profil, si on a l’autorité *USE sur ce dernier (à la création, un profil a l’autorité *PUBLIC mise à *EXCLUDE). On se méfiera particulièrement des profils ayant *ALLOBJ parmi les droits spéciaux.
Au niveau de sécurité 30, il suffit d’avoir l’autorité sur la job description pour pouvoir l’utiliser.
Au niveau de sécurité 40 et plus, les utilisateurs doivent être autorisés à la fois sur la job description et sur le profil qu’elle contient. Mais si un profil est autorisé *PUBLIC, les utilisateurs peuvent toujours utiliser la job description, même au niveau 50.
Pour trouver les utilisateurs ayant une autorité privée sur les profils, et les profils *PUBLIC : PRTPVTAUT *USRPRF
Copies non sécurisées de données de production
Il s’agit notamment des bibliothèques et partitions de test qui ne sont pas sécurisées comme celles de production, pour de pures raisons de commodité pour les équipes de développement.
On laisse aussi souvent des bandes de sauvegardes au fond de tiroirs ou sur des rayonnages. Les emplacements de rangements devraient être formellement déterminés.
Serveurs démarrés et non utilisés
A vrai dire, comme ce qui précède, pas un problème spécifique à l’AS400.
Attention : des serveurs qui ne sont pas paramétrés à démarrage automatique peuvent être quand même lancés explicitement par le QSTRUP ou des applications tiers.
Profils IBM
On use et abuse parfois de profils comme QUSER ou QPGMR. Il est regrettable de leur voir ajoutées des autorités spéciales. Notamment *ALLOBJ.
Attention aux Groupes de profils. Supposons QPGMR avec le droit spécial *ALLOBJ et une application (cas fréquent) possédée par QPGMR. Tout profil du même groupe peut faire ce qu’il veut avec tout objet possédé par QPGMR. Commandes de vérification :
  • DSPUSRPRF USRPRF(Qxxxxxxx) *OBJOWN
  • DSPUSRPRF USRPRF(Qxxxxxxx) *OBJAUT