Paul Green und ich haben über einen neuen Befehl namens check_module_security diskutiert, an dem er arbeitet. Dabei kam das Thema der unnötigen Befehle an der Anmeldeaufforderung zur Sprache. Jon Schmidt von Transaction Design empfiehlt in einem Artikel über Locking the Barn Door.
Interne Befehle:
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.
Ich habe über Befehle nachgedacht wie list_modules
und list_systems
Selbst wenn Sie sich die Mühe gemacht haben, Ihr eigenes Modul oder System zu sichern, könnten diese Befehle einem Hacker einen Hinweis auf andere Module/Systeme geben, die möglicherweise nicht so sicher sind und mit login -module
. Also haben wir uns gefragt, wie man ihre Verwendung vor dem Einloggen verhindern kann. Hier ist eine Möglichkeit, die ich gefunden habe:
Erstellen Sie eine Datei mit einem eindeutigen Namen, der als Name für die Zugriffsliste verwendet wird. In diesem Fall wählte ich prelogin_no_access
an jeden Befehl angehängt werden, den ich einigen Benutzern verbieten möchte. Der Inhalt der Datei ist nicht von Bedeutung - es geht um die Zugriffskontrolllisten, die ihr angehängt sind. Die Datei wird an einem speziellen Ort abgelegt: (master_disk)>system>acl
Verzeichnis. Der Benutzer, den wir einschränken wollen, ist PreLogin.System
ist der Benutzer, der die Anmeldeaufforderung ausführt. Vergessen Sie nicht, den Zugang für andere Benutzer zu erlauben (nach dem Login). Sie müssen ein privilegierter Benutzer sein und Mitglied der Gruppe SysAdmin
Gruppe an den meisten Standorten, um diese Vorgänge durchzuführen.
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 *.*
Stellen Sie sicher, dass die Befehle, die Sie einschränken wollen, in der Datei internal_commands.tin konfiguriert sind, um diese Zugriffsliste zu verwenden...
%phx_vos#m14_mas>system.14.7>konfiguration>interne_befehle.tin 07-10-02 12:14
/ =name display_current_module
=Zugriffsliste_name prelogin_no_access
=Audit 0
/ =name list_modules
=access_list_name prelogin_no_access
=Audit 0
Wenn Sie eine Änderung vornehmen mussten, dann müssen Sie die Änderungen auch anwenden.
create_table internal_commands.ti
broadcast_file internal_commands.table (master_disk)>system
configure_commands
Jetzt können Sie versuchen, bei der Anmeldung einen verbotenen Befehl zu verwenden
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.
Ich habe nicht ALLE internen Befehle eingeschränkt, so dass diejenigen, die nicht betroffen sind, weiterhin verwendet werden können.
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)
Denken Sie also daran, sich auf die zu beschränken, die Sie für wichtig halten.
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
Es gibt noch einen Bonus: Wenn Sie die Sicherheitsprotokollierung aktiviert haben, wird ein Eintrag im Sicherheitsprotokoll erstellt, um Sie darüber zu informieren, dass jemand versucht hat, einen der Befehle zu verwenden.
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.
Haben wir alles bekommen? Bei weitem nicht. Hier ist eine kleine Liste der Unzulänglichkeiten dieses kurzen Tutorials:
- Der Login-Banner zeigt immer noch den Modulnamen an, obwohl die Befehle list_modules und display_current_module deaktiviert sind.
- Das Login-Banner gibt immer noch den Hinweis, dass es sich um ein VOS-System handelt, wenn es den Versionsnamen anzeigt.
- Der Befehl list_systems ist immer noch funktionsfähig (absichtlich für dieses Beispiel, aber er sollte auch verboten sein).
Bonuspunkte für diejenigen, die herausfinden, was noch getan werden könnte. Hinweis: Die Befehlsfunktionen funktionieren immer noch.
-Dan Danz, Technischer Berater von VOS Services
Paul Green und ich haben über einen neuen Befehl namens check_module_security diskutiert, an dem er arbeitet. Dabei kam das Thema der unnötigen Befehle an der Anmeldeaufforderung zur Sprache. Jon Schmidt von Transaction Design empfiehlt in einem Artikel über Locking the Barn Door.
Interne Befehle:
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.
Ich habe über Befehle nachgedacht wie list_modules
und list_systems
Selbst wenn Sie sich die Mühe gemacht haben, Ihr eigenes Modul oder System zu sichern, könnten diese Befehle einem Hacker einen Hinweis auf andere Module/Systeme geben, die möglicherweise nicht so sicher sind und mit login -module
. Also haben wir uns gefragt, wie man ihre Verwendung vor dem Einloggen verhindern kann. Hier ist eine Möglichkeit, die ich gefunden habe:
Erstellen Sie eine Datei mit einem eindeutigen Namen, der als Name für die Zugriffsliste verwendet wird. In diesem Fall wählte ich prelogin_no_access
an jeden Befehl angehängt werden, den ich einigen Benutzern verbieten möchte. Der Inhalt der Datei ist nicht von Bedeutung - es geht um die Zugriffskontrolllisten, die ihr angehängt sind. Die Datei wird an einem speziellen Ort abgelegt: (master_disk)>system>acl
Verzeichnis. Der Benutzer, den wir einschränken wollen, ist PreLogin.System
ist der Benutzer, der die Anmeldeaufforderung ausführt. Vergessen Sie nicht, den Zugang für andere Benutzer zu erlauben (nach dem Login). Sie müssen ein privilegierter Benutzer sein und Mitglied der Gruppe SysAdmin
Gruppe an den meisten Standorten, um diese Vorgänge durchzuführen.
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 *.*
Stellen Sie sicher, dass die Befehle, die Sie einschränken wollen, in der Datei internal_commands.tin konfiguriert sind, um diese Zugriffsliste zu verwenden...
%phx_vos#m14_mas>system.14.7>konfiguration>interne_befehle.tin 07-10-02 12:14
/ =name display_current_module
=Zugriffsliste_name prelogin_no_access
=Audit 0
/ =name list_modules
=access_list_name prelogin_no_access
=Audit 0
Wenn Sie eine Änderung vornehmen mussten, dann müssen Sie die Änderungen auch anwenden.
create_table internal_commands.ti
broadcast_file internal_commands.table (master_disk)>system
configure_commands
Jetzt können Sie versuchen, bei der Anmeldung einen verbotenen Befehl zu verwenden
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.
Ich habe nicht ALLE internen Befehle eingeschränkt, so dass diejenigen, die nicht betroffen sind, weiterhin verwendet werden können.
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)
Denken Sie also daran, sich auf die zu beschränken, die Sie für wichtig halten.
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
Es gibt noch einen Bonus: Wenn Sie die Sicherheitsprotokollierung aktiviert haben, wird ein Eintrag im Sicherheitsprotokoll erstellt, um Sie darüber zu informieren, dass jemand versucht hat, einen der Befehle zu verwenden.
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.
Haben wir alles bekommen? Bei weitem nicht. Hier ist eine kleine Liste der Unzulänglichkeiten dieses kurzen Tutorials:
- Der Login-Banner zeigt immer noch den Modulnamen an, obwohl die Befehle list_modules und display_current_module deaktiviert sind.
- Das Login-Banner gibt immer noch den Hinweis, dass es sich um ein VOS-System handelt, wenn es den Versionsnamen anzeigt.
- Der Befehl list_systems ist immer noch funktionsfähig (absichtlich für dieses Beispiel, aber er sollte auch verboten sein).
Bonuspunkte für diejenigen, die herausfinden, was noch getan werden könnte. Hinweis: Die Befehlsfunktionen funktionieren immer noch.