Ir al contenido principal

Paul Green y yo estábamos hablando sobre un nuevo comando en el que está trabajando llamado check_module_security. Surgió el tema de los comandos innecesarios disponibles en la línea de inicio de sesión. Jon Schmidt, de Transaction Design, lo recomienda en un artículo sobre Locking the Barn Door.

Comandos internos:

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.

Empecé a pensar en comandos como list_modules y list_systems; incluso si te hubieras tomado la molestia de proteger tu propio módulo o sistema, estos comandos podrían dar a un hacker una pista sobre otros módulos/sistemas que podrían no ser tan seguros y que podrían ser explotados con login -module. Así que nos preguntamos cómo evitar su uso antes de iniciar sesión. Aquí hay una forma que encontré:

Cree un archivo con un nombre único para utilizarlo como nombre de la lista de acceso. En este caso, he elegido prelogin_no_access para adjuntarlo a cualquier comando al que quiera prohibir el acceso a algunos usuarios. El contenido del archivo no tiene ninguna utilidad, lo importante son las listas de control de acceso que se adjuntan a él. El archivo se coloca en un lugar especial: (master_disk)>system>acl directorio. El usuario al que queremos restringir es PreLogin.System, que es el usuario que ejecuta el mensaje de inicio de sesión. No olvide permitir el acceso a otros usuarios (después de iniciar sesión). Debe ser un usuario con privilegios y miembro del SysAdmin grupo en la mayoría de los sitios para realizar estas operaciones.

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 *.*

Asegúrate de que los comandos que deseas restringir estén configurados en internal_commands.tin para utilizar esa lista de acceso...

%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 tuviste que hacer un cambio, entonces debes aplicar los cambios.

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

Ahora, puede intentar utilizar un comando prohibido al iniciar sesión.

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.

No restringí TODOS los comandos internos, por lo que los que no se ven afectados aún se pueden utilizar.

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)

Así que recuerda restringir aquellos que consideres importantes.

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

Hay una ventaja adicional: si tiene habilitado el registro de seguridad, se crea una entrada en el registro de seguridad para informarle de que alguien ha intentado utilizar uno de los comandos.

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.

¿Lo tenemos todo? Ni mucho menos. Aquí hay una pequeña lista de las deficiencias de este rápido tutorial:
– El banner de inicio de sesión sigue mostrando el nombre del módulo, aunque los comandos list_modules y display_current_module estén desactivados.
– El banner de inicio de sesión sigue dando pistas de que se trata de un sistema VOS al mostrar el nombre de la versión.
– El comando list_systems sigue funcionando (deliberadamente para este ejemplo, pero también debería estar prohibido).

Puntos extra para aquellos que descubran qué más se podría hacer. Pista: las funciones de comando siguen funcionando.

-Dan Danz, consultor técnico de VOS Services

Paul Green y yo estábamos hablando sobre un nuevo comando en el que está trabajando llamado check_module_security. Surgió el tema de los comandos innecesarios disponibles en la línea de inicio de sesión. Jon Schmidt, de Transaction Design, lo recomienda en un artículo sobre Locking the Barn Door.

Comandos internos:

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.

Empecé a pensar en comandos como list_modules y list_systems; incluso si te hubieras tomado la molestia de proteger tu propio módulo o sistema, estos comandos podrían dar a un hacker una pista sobre otros módulos/sistemas que podrían no ser tan seguros y que podrían ser explotados con login -module. Así que nos preguntamos cómo evitar su uso antes de iniciar sesión. Aquí hay una forma que encontré:

Cree un archivo con un nombre único para utilizarlo como nombre de la lista de acceso. En este caso, he elegido prelogin_no_access para adjuntarlo a cualquier comando al que quiera prohibir el acceso a algunos usuarios. El contenido del archivo no tiene ninguna utilidad, lo importante son las listas de control de acceso que se adjuntan a él. El archivo se coloca en un lugar especial: (master_disk)>system>acl directorio. El usuario al que queremos restringir es PreLogin.System, que es el usuario que ejecuta el mensaje de inicio de sesión. No olvide permitir el acceso a otros usuarios (después de iniciar sesión). Debe ser un usuario con privilegios y miembro del SysAdmin grupo en la mayoría de los sitios para realizar estas operaciones.

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 *.*

Asegúrate de que los comandos que deseas restringir estén configurados en internal_commands.tin para utilizar esa lista de acceso...

%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 tuviste que hacer un cambio, entonces debes aplicar los cambios.

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

Ahora, puede intentar utilizar un comando prohibido al iniciar sesión.

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.

No restringí TODOS los comandos internos, por lo que los que no se ven afectados aún se pueden utilizar.

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)

Así que recuerda restringir aquellos que consideres importantes.

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

Hay una ventaja adicional: si tiene habilitado el registro de seguridad, se crea una entrada en el registro de seguridad para informarle de que alguien ha intentado utilizar uno de los comandos.

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.

¿Lo tenemos todo? Ni mucho menos. Aquí hay una pequeña lista de las deficiencias de este rápido tutorial:
– El banner de inicio de sesión sigue mostrando el nombre del módulo, aunque los comandos list_modules y display_current_module estén desactivados.
– El banner de inicio de sesión sigue dando pistas de que se trata de un sistema VOS al mostrar el nombre de la versión.
– El comando list_systems sigue funcionando (deliberadamente para este ejemplo, pero también debería estar prohibido).

Puntos extra para aquellos que descubran qué más se podría hacer. Pista: las funciones de comando siguen funcionando.