CGIWrap - Comments from Administrators


Nathan:

	I just thought I would drop you a note, saying that I absolutely
	adore cgiwrap.

	Prior to now, I had been using Apache suexec. To be blunt, suexec
	is a disgusting piece of crap. The security guidelines/rules set
	forth by suexec must've been created off the top of Dean Gaudet's
	head -- half of them are absurd, and the other half don't work
	for the method of VirtualHosting I am doing. I literally had to
	re-code parts of suexec to get it to work under my server config-
	uration.

	...until I encountered cgiwrap.

	Your product works flawlessly, and fits my every need. It's
	extraordinarily fast, and it's simplicity makes it an awesome
	pre-requisite for any webmaster who wishes to run scripts in
	a secure environment.

	The best part about cgiwrap is it's (simplistic, yet useful)
	ability to redirect stderr to stdout. With so many CGI scripts
	available, and so many written in different environments, it's
	about time something came along which could make the debugging
	process as simple as cake.

	Thank you for cgiwrap.

-- 
| Jeremy Chadwick                                 System Administrator |
| yoshi@parodius.com                                      ICQ #6279222 |
|           "Where is fancy bread? In the heart, or in the head?" - WW |


It is inherently impossible to provide _total_ protection, but there
is a nifty little utility called cgiwrap that can help.  Check out
the URL:

http://www.unixtools.org/cgiwrap/

This method has several advantages:

   1. It runs the cgi script as your userid, not as some server-defined
      userid.  Assuming you are an ordinary user, this reduces the risk
      of damaging the system, while increasing the risk of mucking-up
      your own files.  That tradeoff is precisely what many admins
      on big sites want; it shifts the risk from a badly-written
      script onto its author, rather than the sysadmin.  Also, the
      fact that it runs as you means that if you do something dumb
      or nasty with it, the administrators have a better chance of
      determining who is responsible.

      Also, this means that if a cgi script hangs and fails to die, you
      can kill it yourself; if it runs as some special userid then only
      the system administrator can kill it should it run amuck.

   2. It does some security checking for common holes.  For instance,
      it checks that the owner of the directory where the script is
      found also owns the script.

   3. If you call cgiwrap as cgiwrapd then you'll get special debugging
      output; I've found this extremely helpful in testing.

Nothing is bulletproof.  The simple act of letting users create static
html documents is itself something of a risk.  For example, on many
UNIX-based WWW servers, any user can type the following:

cd ~/public_html
ln -s /etc/passwd Read_This_Folks
                  ^^^^^^^^^^^^^^^or whatever ;-)

And you've just let the entire universe see your system's password
file!  Of course, this is monumentally stupid, and of course many
newer systems use shadow passwords, but I'm sure more subtle holes
exist even with static html -- to say nothing of cgi scripts.

Also, take a look at the URL:

http://www-genome.wi.mit.edu/WWW/faqs/www-security-faq.html

for some _very_ useful information about cgi security issues.

--------
Matthew.Healy@yale.edu  Postdoc (& now, WebMaster)
Center for Medical Informatics, Yale School of Medicine
He was covered with clanking chains of code. "I am the
Ghost of Hacks Past," he said to Scrooge.
http://paella.med.yale.edu/~healy/matt_healy.html