Ir al contenido principal

Paul Green y yo estábamos discutiendo un nuevo comando en el que está trabajando llamado check_module_security. Surgió el tema de los comandos innecesarios disponibles en el prompt de inicio de sesión. Jon Schmidt de Diseño de Transacciones recomienda en un artículo sobre "Cerrar la puerta del granero".

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.

Me puse a pensar en comandos como list_modules y list_systemsincluso si te has tomado la molestia de asegurar tu propio módulo o sistema, estos comandos pueden dar a un hacker una pista sobre otros módulos/sistemas que podrían no ser tan seguros y podrían ser explotados con login -module. Así que nos preguntamos cómo prevenir su uso en el momento de pre-ingreso. Aquí hay una forma que encontré:

Crear un archivo con un nombre único para usarlo como nombre de la lista de acceso. En este caso, elegí prelogin_no_access que se adjunte a cualquier comando al que quiera prohibir el acceso a algunos usuarios. El contenido del archivo no tiene ninguna utilidad, lo que importa son las listas de control de acceso que se adjuntan a él. El archivo va en un lugar especial: (master_disk)>system>acl directorio. El usuario que queremos restringir es PreLogin.System...que es el usuario que ejecuta el aviso de ingreso. No olvides permitir el acceso a otros usuarios (después del inicio de sesión). Debe ser un usuario privilegiado y miembro de la SysAdmin se agrupan 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 quieres restringir están configurados en internal_commands.tin para usar esa lista de acceso...

%phx_vos#m14_mas>sistema.14.7>configuración>comandos_internos.tin 07-10-02 12:14
/ =nombre del módulo_de_visualización_corriente
=access_list_name prelogin_no_access
=auditoría 0
/ =nombre lista_módulos
=access_list_name prelogin_no_access
=auditoría 0

Si tuvieras que hacer un cambio, entonces necesitas aplicar los cambios.

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

Ahora, puedes intentar usar un comando prohibido en el inicio de 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 he restringido TODOS los comandos internos; así que los que no están afectados pueden seguir siendo utilizados.

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 los que creas que son 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 un bonus: si tienes habilitado el registro de seguridad, se hace una entrada en el registro de seguridad para decirte que alguien intentó usar 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.

¿Conseguimos todo? Ni de lejos. Aquí hay una pequeña lista de los defectos de este rápido tutorial:
- El banner de inicio de sesión sigue dando el nombre del módulo, aunque los comandos list_modules y display_current_module están desactivados.
- El banner de inicio de sesión todavía da la pista de que se trata de un sistema VOS cuando muestra el nombre de la versión.
- El comando list_systems todavía está operativo (deliberado para este ejemplo, pero también debería estar prohibido).

Puntos de bonificación para aquellos que descubran qué más se puede hacer. Sugerencia: las funciones de mando siguen funcionando.

-Dan Danz, Consultor Técnico de Servicios VOS

Paul Green y yo estábamos discutiendo un nuevo comando en el que está trabajando llamado check_module_security. Surgió el tema de los comandos innecesarios disponibles en el prompt de inicio de sesión. Jon Schmidt de Diseño de Transacciones recomienda en un artículo sobre "Cerrar la puerta del granero".

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.

Me puse a pensar en comandos como list_modules y list_systemsincluso si te has tomado la molestia de asegurar tu propio módulo o sistema, estos comandos pueden dar a un hacker una pista sobre otros módulos/sistemas que podrían no ser tan seguros y podrían ser explotados con login -module. Así que nos preguntamos cómo prevenir su uso en el momento de pre-ingreso. Aquí hay una forma que encontré:

Crear un archivo con un nombre único para usarlo como nombre de la lista de acceso. En este caso, elegí prelogin_no_access que se adjunte a cualquier comando al que quiera prohibir el acceso a algunos usuarios. El contenido del archivo no tiene ninguna utilidad, lo que importa son las listas de control de acceso que se adjuntan a él. El archivo va en un lugar especial: (master_disk)>system>acl directorio. El usuario que queremos restringir es PreLogin.System...que es el usuario que ejecuta el aviso de ingreso. No olvides permitir el acceso a otros usuarios (después del inicio de sesión). Debe ser un usuario privilegiado y miembro de la SysAdmin se agrupan 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 quieres restringir están configurados en internal_commands.tin para usar esa lista de acceso...

%phx_vos#m14_mas>sistema.14.7>configuración>comandos_internos.tin 07-10-02 12:14
/ =nombre del módulo_de_visualización_corriente
=access_list_name prelogin_no_access
=auditoría 0
/ =nombre lista_módulos
=access_list_name prelogin_no_access
=auditoría 0

Si tuvieras que hacer un cambio, entonces necesitas aplicar los cambios.

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

Ahora, puedes intentar usar un comando prohibido en el inicio de 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 he restringido TODOS los comandos internos; así que los que no están afectados pueden seguir siendo utilizados.

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 los que creas que son 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 un bonus: si tienes habilitado el registro de seguridad, se hace una entrada en el registro de seguridad para decirte que alguien intentó usar 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.

¿Conseguimos todo? Ni de lejos. Aquí hay una pequeña lista de los defectos de este rápido tutorial:
- El banner de inicio de sesión sigue dando el nombre del módulo, aunque los comandos list_modules y display_current_module están desactivados.
- El banner de inicio de sesión todavía da la pista de que se trata de un sistema VOS cuando muestra el nombre de la versión.
- El comando list_systems todavía está operativo (deliberado para este ejemplo, pero también debería estar prohibido).

Puntos de bonificación para aquellos que descubran qué más se puede hacer. Sugerencia: las funciones de mando siguen funcionando.