[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Security stuff




>>>>> Charles Briscoe-Smith <cpb4@ukc.ac.uk> writes:

> As I understand it, we cannot ensure that all AES and VDI functions are
> safe.  They run with enhanced privileges (in supervisor mode, I think)
> and they may do insecure things.  If a user without root access can
> call a GEM function, he may be able to gain root access, or otherwise
> disrupt the machine.

> Therefore, non-root users must not be allowed to call GEM functions.


Wait a minute. There's something I don't get. Why is GEM unsafe? What
do you mean with "we cannot ensure that all AES and VDI functions are
safe"? I think we must distinguish two problems.

1. Does a user get access to supervisor mode by calling a GEM/VDI/AES
   function? Or to any other vital system resource?

2. Does GEM/VDI/AES influence the system's behaviour in a bad way when
   called from somewhere else than the console?

Ok, here my thoughts to these points:

1. A GEM, VDI or AES call is in fact a trap-exception. This means that
execution *is* changed to supervisor mode and GEM *is* running in SV
mode. But who cares? Every function returns savely back to the caller
in user mode. It is only a problem if there is a way to register a
call back function in GEM which is called in SV mode. Then this
is an indirect way of gaining access to SV mode: register function,
trigger callback, there you are. Does GEM offer such a feature? Then
these register functions should be restricted.

2. I always thought GEM was written to be used for multiple
"workstations", at least this is what a call "OpenWorkstation" or
"OpenVirtualWorkstation" means to me: an additional user registers his
presence. So it should be multi-user safe in some way. It even might
be able to send Metafile-Data over some network to be displayed
somewhere else. (Ok, I may be totally wrong here, but that was always
the way I saw GEM).

But if this is *not* the case and GEM is only safe for one screen and
this is the console, then can't we just insert a check in the
appropriate trap handlers to verify if the calling user is sitting at
the console? And deny access to any function if not.


Ok, I may miss something totally obvious here, then please be patient
with me.


Hartmut


+-------------------------+-----------------------------------------------+
|  Hartmut Keller         |  Internet: keller@informatik.uni-stuttgart.de | 
|  Inst. fuer Informatik  +-----------------------------------------------+
|  Breitwiesenstr. 20-22  |  "If there's only one reason to live in this  |
|  70565 Stuttgart        |   world, I'll find it!"      (All About Eve)  |
+-------------------------+-----------------------------------------------+