A N W E N D E R B E R I C H T ============================= Captive Accounts unter RSX -------------------------- oder: Was kann man mit "user written CLI's" alles anstellen? H.-J. May c/o SEL AG Produktbereich Elektronische Bauelemente Abt. Betriebsmittelelektronik Nimrodstr.9 8500 NUERNBERG 70 Tel. 0911/4230-798 1. Anwendung und Hintergruende/Historie fuer die Entwicklung von "user written CLI's" 1.1 Endpruef-Projekt fuer 4 gleiche, voneinander unabhaengige Pruefanlagen 1983/84 1.2 Softwaremaessige Verwaltung ueber 1 PDP 11/73 mit Datenerfassung und Online-Auswertung 1.3 Problem: Hacker-User geben Mist ein ----------------------------------- 1.3.1 Loesung 1: Kopie von Ind. Command mit anderem Tasknamen fragt Kommandoliste ab Vorteil: sehr leicht zu programmieren (CMD-File) genuegender Schutz Nachteil: grosses Programm im Speicher (verschwindet nicht nach Aufruf) sehr langsam !!! hoher Overhead fuer die Applikation (Rechnerleistung reichte kaum noch) "attached Terminal" durch Input ------------------- keine Menuefuehrung 1.3.2 Loesung 2: MCE mit Passwortabfrage und Befehlsvergleich (Spawn-Direktive verwendet) Vorteil: leicht zu programmieren (aus vorhandenem MCE) genuegender Schutz schnell Nachteil: grosses Programm im Speicher (verschwindet nicht nach Aufruf) "attached Terminal" durch Input ------------------- Funktionalitaet in MCE, die aufgepfropft wurde keine Menuefuehrung 1.3.3 Loesung 3: User written CLI mit Passwortumschaltung (RPOI-Direktive verwendet) Vorteil: leicht zu programmieren (aus TMCLI - mit RSX geliefert) freigegebene Kommandos mit .ASCIZ /Befehl/ einzufuegen hervorragender Schutz (auch fuer nicht eingeloggte User) schnell kleines Programm, verschwindet nach Absetzen des Kommandos) Terminal nicht attached vertraeglich mit MCE Nachteil: zusaetzlicher CLI (muss bei der RSX-Generierung beruecksichtigt werden) Aufwand bei der Passwort-Umschaltung (kann weggelassen werden) Installation aufwendiger als bei normalem Task pro Befehlsatz ist separater CLI noetig keine Menuefuehrung 1.3.4 Loesung 4: Universelles Menueprogramm mit FMS/Named Data - zu verwendende FMS-Library ueber CMD-Line (Spawn-Direktive verwendet) Vorteil: sehr leicht zu programmieren Befehlsaeqivalente werden einfach im Named Data abgelegt und vom Programm aufgerufen nur 1 Menueprogramm pro Rechner fuer die unterschiedlichsten Applikationen und Untermenues genuegender Schutz schnell Menuefuehrung (fuer "Datentouristen" geeignet) Nachteil: grosses Programm im Speicher (verschwindet nicht nach Aufruf) "attached Terminal" durch Input ------------------- Verwendet werden heute die Loesungen 3 und 4. CLI fuer Kommandoeingabe an der Anlage - Masterkonsole (Drucker) und Bildschirm. Menue fuer den Zugriff von aussen, teilweise fuer den Bildschirm an den Anlagen. 2. Der EPR-CLI 2.1 Das Assemblerprogramm (aus TMCLI - mit RSX geliefert) Aenderungen: Einbau einer Kommandoabfrage aus einer Liste (PRVLST). Freigegebene Kommandos sind mit .ASCIZ /Befehl/ einzufuegen. Der Befehl wird bis zum Zero ueberprueft. Soll das gesamte Kommando geprueft werden, muss .ASCIZ /Befehl/<15> eingefuegt werden. Ist das Kommando erlaubt, wird es mit der RPOI- Direktive an den MCR weitergereicht; sonst erhaelt der Benutzer die Nachricht EPR -- Illegal command. Passwortumschaltung geschieht mit Commandfile und einem Sonderzeichen, das vom Terminaltreiber abgefangen wird, aber vom ICP an den CLI geschickt werden kann. Das Passwort wird im Commandfile abgefragt. Aufruf: >MCR [CLI ruft @LB:[1,2]MCR auf] Passwort: ..... (kein Echo) Bei richtigem Passwort wird das Zeichen ^U an den CLI gesendet, was zum Befehl >SET /MCR=TI: fuehrt. Wenn die Befehle BYE und LOG erlaubt werden, kann die Passwortumschaltung weggelassen werden (es duerfen dann allerdings keine Programme auf dem Terminal aktiv sein). Alle eingegebenen Kommandos werden ausserdem mit Angabe des Terminals zum Device CO: geschickt. Mit >SET /COLOG=ON/NOCOTERM/LOGFILE=filename wird der Ausdruck auf der Masterconsole vermieden und kann gelegentlich auf dem Logfile gelesen werden. 2.2 Bilden und Installieren des CLI: >MAC EPR=EPR >TKB EPR=EPR,LB:[1,1]EXELIB/LB >.IFINS ...EPR CLI /ELIM=EPR >.IFINS ...EPR REM ...EPR >INS EPR/CLI=YES/TASK=...EPR/PRI=160. >CLI /INIT=EPR/LGO/TASK=...EPR /CPR="<15><12>/Applikation>/" >SET /CLI=TTnn:EPR Terminals, die einen solchen "Captive Account" bekommen sollen, koennen bereits beim Einrichten des Accounts auf diesen CLI gestellt werden (ACNT fragt danach). Der Befehl >CLI /UNOVR muss im SYSLOGIN an letzter Stelle stehen. Sonst ist der User weiterhin auf MCR, obwohl >SHO CLI EPR zeigt! Alle MCR-Kommandos vor diesem Befehl werden noch ausge- fuehrt. 2.3 Beispiel eines Ind. Commands .ENABLE SUBSTITUTION .ENABLE QUIET .SETS CLI SET /SLAVE=TI: !Dieser Befehl muss erlaubt sein .IF = "EPR" ^U .IF = "DCL" SET MCR !fuer Testzwecke . . !Hier kommt die Kommandofolge, . !die der Benutzer nicht selb- . !staendig ausfuehren darf. . .IF CLI <> "MCR" SET /CLI=TI:'CLI' SET /NOSLAVE=TI: !Dieser Befehl muss erlaubt sein 2.4 Erfahrungen mit dem CLI G U T E ! Der Applikations-CLI EPR wurde von den Benutzern akzeptiert, da er nur Befehle durchlaesst, die zur Steuerung der Anwendung benutzt werden. Weder unabsichtliche noch absichtliche Fehleingaben koennen Daten, Programmen oder der Hardware etwas anhaben. Das Terminal kann sogar privilegiert sein. Damit koennen Befehle wie >ABO Prog erlaubt werden.