System Security (was: Re: [MUD-Dev] players who "take away from the game")

J C Lawrence claw at cp.net
Thu Nov 11 14:01:39 CET 1999


On Wed, 10 Nov 1999 22:00:11 -0700 
cg  <cg at ami-cg.GraySage.Edmonton.AB.CA> wrote:

> [Eli Stevens:]
>> This got me wondering...  :)
>> 
>> What precautions should be taken when writing a MUD codebase from
>> scratch?  Are most security holes that a MUD box might have at
>> the OS level, or does having a program like a MUD running open up
>> opportunities that would not otherwise exist (assuming that the
>> ability to issue OS commands and such is not a feature)?

> Aha! A technical issue! :-)

<<Oops>>

> Having a MUD running isn't a problem if you are careful in what
> you let the MUD server do. Obviously! The main thing is likely to
> be that of system and communications load. If you are careful to
> *not* provide any ways by which MUD players can issue system
> commands, there shouldn't really be any issues outside of the MUD
> itself. A MUD server simply presents a socket that people can talk
> to. If it never, however indirectly, allows stuff that comes from
> client sockets to end up uneditted in a system command, then it
> should be safe.

If you bind to a port less than 1024 on a Unix system your server
must run as root.  Ergo, if there is a stack overflow ir similar
exploit in your server, an arbitrary user can obtain root access on
your system.

There are a couple simple ways to protect against this:

  -- setuid() away from root for all portions of the code that don't
deal with the sokcet calls.  You should do this sort of
setuid()/setgid() protection in any privileged code your write
anyway.  Always.  This leaves the exploint window inthe soket code
only, not your entire app/server.

  -- Use a helper program which runs as root to do the privileged
socket IO which then communicates to the server which runs as a
non-priviledged user via some other stack.

Other concerns are discussed in the documents I referenced.

--
J C Lawrence                              Internet: claw at kanga.nu
----------(*)                            Internet: coder at kanga.nu
...Honorary Member of Clan McFud -- Teamer's Avenging Monolith...


_______________________________________________
MUD-Dev maillist  -  MUD-Dev at kanga.nu
http://www.kanga.nu/lists/listinfo/mud-dev



More information about the mud-dev-archive mailing list