Passer au contenu principal

Paul Green et moi discutions d'une nouvelle commande sur laquelle il travaille, appelée check_module_security. Le sujet des commandes inutiles disponibles à l'invite de connexion a été abordé. Jon Schmidt, de Transaction Design, recommande dans un article intitulé « Locking the Barn Door » (Verrouiller la porte de la grange).

Commandes internes :

display_current_module (prelogin)
list_modules (prelogin) display_date_time (prelogin)
list_systems (prelogin)
display_line (prelogin)
login (prelogin)
If there are other commands shown, remove them.

Je me suis mis à réfléchir à des commandes telles que list_modules et list_systems; même si vous aviez pris la peine de sécuriser votre propre module ou système, ces commandes pourraient donner à un pirate informatique un indice sur d'autres modules/systèmes qui pourraient ne pas être aussi sécurisés et pourraient être exploités avec login -module. Nous nous sommes donc demandé comment empêcher leur utilisation avant la connexion. Voici une solution que j'ai trouvée :

Créez un fichier avec un nom unique qui servira de nom pour la liste d'accès. Dans ce cas, j'ai choisi prelogin_no_access à joindre à toute commande dont je souhaite interdire l'accès à certains utilisateurs. Le contenu du fichier n'a aucune utilité, ce sont les listes de contrôle d'accès qui y sont jointes qui importent. Le fichier est placé à un emplacement spécial : (master_disk)>system>acl répertoire. L'utilisateur que nous voulons restreindre est PreLogin.System, qui est l'utilisateur qui exécute l'invite de connexion. N'oubliez pas d'autoriser l'accès aux autres utilisateurs (après la connexion). Vous devez être un utilisateur privilégié et membre du groupe SysAdmin groupe sur la plupart des sites pour effectuer ces opérations.

change_current_dir (master_disk)>system>acl
create_file prelogin_no_access
give_access null prelogin_no_access -user PreLogin.System
give_access write prelogin_no_access -user *.*

Assurez-vous que les commandes que vous souhaitez restreindre sont configurées dans internal_commands.tin pour utiliser cette liste d'accès...

%phx_vos#m14_mas>system.14.7>configuration>internal_commands.tin 07-10-02 12:14
/ =name display_current_module
=access_list_name prelogin_no_access
=audit 0
/ =name list_modules
=access_list_name prelogin_no_access
=audit 0

Si vous deviez apporter une modification, vous devez alors appliquer les changements.

create_table internal_commands.ti
broadcast_file internal_commands.table (master_disk)>system
configure_commands

Vous pouvez désormais essayer d'utiliser une commande interdite lors de la connexion.

VOS Release 15.3.0ai, Module %phx_vos#m15
Please login  12:13:19
help
Internal Commands:
change_password (prelogin)              help (prelogin)
display_current_module (prelogin)       list_modules (prelogin)
display_date_time (prelogin)            list_systems (prelogin)
display_line (prelogin)                 login (prelogin)
VOS Release 15.3.0ai, Module %phx_vos#m15
Please login  12:13:23
list_modules
command_processor: Not enough access to perform operation. list_modules.

Je n'ai pas restreint TOUTES les commandes internes ; celles qui ne sont pas concernées peuvent donc toujours être utilisées.

VOS Release 15.3.0ai, Module %phx_vos#m15
Please login  12:13:29
list_systems
phx_osn  . . . . . . online (local)
phx_test . . . . . . online (local)
phx_vos  . . . . . . online (current system)

N'oubliez donc pas de limiter ceux que vous jugez importants.

VOS Release 15.3.0ai, Module %phx_vos#m15
Please login  12:13:39
display_current_module
command_processor: Not enough access to perform operation.
display_current_module.
VOS Release 15.3.0ai, Module %phx_vos#m15
Please login  12:13:53

Il y a un bonus : si vous avez activé la journalisation de sécurité, une entrée est ajoutée au journal de sécurité pour vous informer que quelqu'un a essayé d'utiliser l'une des commandes.

1:  07-10-02 12:16:20 mst PreLogin.System %phx_vos#tli_log.m15_65
Target: list_modules
Text: Not enough access to perform operation. Validating object access.

Avons-nous tout couvert ? Loin de là. Voici une petite liste des lacunes de ce tutoriel rapide :
– La bannière de connexion affiche toujours le nom du module, même si les commandes list_modules et display_current_module sont désactivées.
– La bannière de connexion donne toujours l'indice qu'il s'agit d'un système VOS lorsqu'elle affiche le nom de la version.
– La commande list_systems est toujours opérationnelle (ce qui est délibéré pour cet exemple, mais elle devrait également être interdite).

Des points bonus seront attribués à ceux qui trouveront d'autres solutions possibles. Indice : les fonctions de commande fonctionnent toujours.

-Dan Danz, consultant technique chez VOS Services

Paul Green et moi discutions d'une nouvelle commande sur laquelle il travaille, appelée check_module_security. Le sujet des commandes inutiles disponibles à l'invite de connexion a été abordé. Jon Schmidt, de Transaction Design, recommande dans un article intitulé « Locking the Barn Door » (Verrouiller la porte de la grange).

Commandes internes :

display_current_module (prelogin)
list_modules (prelogin) display_date_time (prelogin)
list_systems (prelogin)
display_line (prelogin)
login (prelogin)
If there are other commands shown, remove them.

Je me suis mis à réfléchir à des commandes telles que list_modules et list_systems; même si vous aviez pris la peine de sécuriser votre propre module ou système, ces commandes pourraient donner à un pirate informatique un indice sur d'autres modules/systèmes qui pourraient ne pas être aussi sécurisés et pourraient être exploités avec login -module. Nous nous sommes donc demandé comment empêcher leur utilisation avant la connexion. Voici une solution que j'ai trouvée :

Créez un fichier avec un nom unique qui servira de nom pour la liste d'accès. Dans ce cas, j'ai choisi prelogin_no_access à joindre à toute commande dont je souhaite interdire l'accès à certains utilisateurs. Le contenu du fichier n'a aucune utilité, ce sont les listes de contrôle d'accès qui y sont jointes qui importent. Le fichier est placé à un emplacement spécial : (master_disk)>system>acl répertoire. L'utilisateur que nous voulons restreindre est PreLogin.System, qui est l'utilisateur qui exécute l'invite de connexion. N'oubliez pas d'autoriser l'accès aux autres utilisateurs (après la connexion). Vous devez être un utilisateur privilégié et membre du groupe SysAdmin groupe sur la plupart des sites pour effectuer ces opérations.

change_current_dir (master_disk)>system>acl
create_file prelogin_no_access
give_access null prelogin_no_access -user PreLogin.System
give_access write prelogin_no_access -user *.*

Assurez-vous que les commandes que vous souhaitez restreindre sont configurées dans internal_commands.tin pour utiliser cette liste d'accès...

%phx_vos#m14_mas>system.14.7>configuration>internal_commands.tin 07-10-02 12:14
/ =name display_current_module
=access_list_name prelogin_no_access
=audit 0
/ =name list_modules
=access_list_name prelogin_no_access
=audit 0

Si vous deviez apporter une modification, vous devez alors appliquer les changements.

create_table internal_commands.ti
broadcast_file internal_commands.table (master_disk)>system
configure_commands

Vous pouvez désormais essayer d'utiliser une commande interdite lors de la connexion.

VOS Release 15.3.0ai, Module %phx_vos#m15
Please login  12:13:19
help
Internal Commands:
change_password (prelogin)              help (prelogin)
display_current_module (prelogin)       list_modules (prelogin)
display_date_time (prelogin)            list_systems (prelogin)
display_line (prelogin)                 login (prelogin)
VOS Release 15.3.0ai, Module %phx_vos#m15
Please login  12:13:23
list_modules
command_processor: Not enough access to perform operation. list_modules.

Je n'ai pas restreint TOUTES les commandes internes ; celles qui ne sont pas concernées peuvent donc toujours être utilisées.

VOS Release 15.3.0ai, Module %phx_vos#m15
Please login  12:13:29
list_systems
phx_osn  . . . . . . online (local)
phx_test . . . . . . online (local)
phx_vos  . . . . . . online (current system)

N'oubliez donc pas de limiter ceux que vous jugez importants.

VOS Release 15.3.0ai, Module %phx_vos#m15
Please login  12:13:39
display_current_module
command_processor: Not enough access to perform operation.
display_current_module.
VOS Release 15.3.0ai, Module %phx_vos#m15
Please login  12:13:53

Il y a un bonus : si vous avez activé la journalisation de sécurité, une entrée est ajoutée au journal de sécurité pour vous informer que quelqu'un a essayé d'utiliser l'une des commandes.

1:  07-10-02 12:16:20 mst PreLogin.System %phx_vos#tli_log.m15_65
Target: list_modules
Text: Not enough access to perform operation. Validating object access.

Avons-nous tout couvert ? Loin de là. Voici une petite liste des lacunes de ce tutoriel rapide :
– La bannière de connexion affiche toujours le nom du module, même si les commandes list_modules et display_current_module sont désactivées.
– La bannière de connexion donne toujours l'indice qu'il s'agit d'un système VOS lorsqu'elle affiche le nom de la version.
– La commande list_systems est toujours opérationnelle (ce qui est délibéré pour cet exemple, mais elle devrait également être interdite).

Des points bonus seront attribués à ceux qui trouveront d'autres solutions possibles. Indice : les fonctions de commande fonctionnent toujours.