Grex Helpers Conference

Item 81: Grex System Announcements Item

Entered by i on Tue Jun 22 00:17:58 1999:

78 new of 80 responses total.


#3 of 80 by remmers on Thu Jun 24 12:25:43 1999:

The next Grex Board of Directors meeting is Monday, June 28 at 7:00 p.m.
in the Michigan Union Food Court. See item 107 in the Coop conference
(item:coop,107) for the agenda.

Note the change in location. Our regular meeting place was not available
this month.


#4 of 80 by steve on Fri Jul 2 23:43:35 1999:

   Grex took longer to reboot than normal Friday night, due to a 
problem with a disk.  We have some bad sectors on /a, which I don't
think present an immediate problem.  We're going to have to deal with
this in the near term however, so more downtime will result.  More
once we know more about it all.


#5 of 80 by katie on Mon Jul 5 06:17:39 1999:

"No space left on device...file system is full."


#6 of 80 by remmers on Fri Jul 23 19:13:22 1999:

The Grex Board of Directors will meet this Monday, July 26, 7 p.m.
upstairs at Zingerman's Next Door, 422 Detroit Street, Ann Arbor. The
public is invited. See Item 112 in the Coop conference (item:coop,112)
for the agenda.


#7 of 80 by jep on Wed Jul 28 16:33:58 1999:

Grex may be shutting down as of Sunday, unless the lawsuit mentioned in 
#2 results in a quick injunction.  From the minutes of Monday's Board 
meeting:



AGENDA ITEM 6:  ACLU Suit

  - A hearing was held in which the ACLU asked for a temporary 
injunction.
    If granted this would prevent Michigan's new Internet Censorship Act
    (Michigan Public Act 33 of 1999) from going into effect on the 
scheduled
    date of August 1, 1999.  Jan Wolter was called as a witness.  John
    Remmers, Steve Gibbard, Mark Conger, and STeve Andre attended.  It
    appears to have gone extremely well, and everyone is confident that
    the injunction will be granted.  The ruling will be announced before
    August 1.

  - There still needs to be a trial to determine the constitutionality 
of
    the law.  This is likely to happen 6 to 9 months from now.

  - Although we think it almost a certainty that the injunction will
    be granted, the board felt it would be prudent to have a plan of
    action in place in case it was not.  Figuring out whether Grex can
    continue to operate in any way under this law is going to be 
extremely
    difficult and will probably require getting legal advice on a number
    of points.  We don't want to go to the trouble of formulating this
    plan unless we need it.  Mary Remmers proposed that if this law
    comes into force, Grex should temporarily shut down while a policy
    is worked out.  This lead to the following motion by Jan Wolter:

       In the event that Michigan Public Act 33 of 1999 goes into 
effect,
       all public access to Grex shall be suspended, with the exception
       of an informational web page, pending the formulation of new 
policies.

    Seconded by Dan Gryniewicz.

    Passed 7-0-0.

    Again, we do not think there is any large chance of this happening, 
and
    we think that it may be possible to bring at least a few services
    (like Email) back on line pretty soon.



#8 of 80 by senna on Wed Jul 28 17:52:29 1999:

Will this shutdown permit email forwarding?


#9 of 80 by jep on Wed Jul 28 18:52:23 1999:

I don't know.  There was very little advance discussion, and there is no 
information available other than the minutes of the most recent Board 
meeting.


#10 of 80 by goose on Wed Jul 28 21:14:05 1999:

I dunno, shutting down seems pretty drastic.


#11 of 80 by mary on Thu Jul 29 00:27:54 1999:

A partial shutdown is drastic but probably the 
best choice of action until we can get some
good legal advice on where the board and users
would stand in terms of liablity should this law
go into effect.

This is being discussed in Co-op, items #114 and #113.
Check it out.


#12 of 80 by remmers on Thu Jul 29 00:30:19 1999:

Yes, it would be drastic. Also, I think it's unlikely to happen.

The possibility is being discussed in item 114 of Coop (item:coop,114).
I'm the board chair, so I posted a longish response there (#8) to attempt
to explain where the board is coming from.


#13 of 80 by remmers on Thu Jul 29 00:30:56 1999:

(Mary slipped in.)


#14 of 80 by senna on Thu Jul 29 02:59:07 1999:

Such an amusing slip :)  


#15 of 80 by remmers on Thu Jul 29 12:57:15 1999:

(We're a 2-computer, 2-modem household, so these things happen...)


#16 of 80 by remmers on Thu Jul 29 19:08:16 1999:

I am HAPPY to announce that Judge Arthur J. Tarnow of the United States
District Court, Eastern District of Michigan, Southern Division, has
GRANTED Grex's and other plaintiffs' request for an injunction
preventing enforcement of 1999 Public Act 33.

In plain language, that means we won. The internet censorship law will
not go into effect on August 1. There will be no disruption of Grex's
services.

I think we owe many thanks to the ACLU attorneys who developed and
presented the case, and the Grexers who put a lot of work into it,
especially Jan Wolter (our declarant and witness), Mark Conger (our
contact person with the ACLU), and Mary Remmers (our press contact).

The judge has issued a 30-page opinion, which I'll post online as soon
as possible.


#17 of 80 by remmers on Thu Jul 29 19:40:30 1999:

Temporarily, the judge's opinion is available from my personal
web directory, in Adobe PDF format. See

        http://www.cyberspace.org/~remmers/opinion.pdf

Not everyone can view PDF files, so I'm looking into getting it
converted to something else, like plain text or HTML. I don't
seem to have software myself that will do this.


#18 of 80 by jep on Thu Jul 29 20:11:43 1999:

Thanks, John!  Interesting document.


#19 of 80 by ryan on Thu Jul 29 23:35:14 1999:

This response has been erased.



#20 of 80 by remmers on Fri Jul 30 01:01:59 1999:

Well then we'd be faced with converting ps to html, which if anything is
harder. But you knew that.  :)

I think someone is doing the conversion. Hopefully a link to the result
will find its way onto the Grex 'lawsuit' web page before too long.


#21 of 80 by janc on Fri Jul 30 03:22:04 1999:

An HTML version of the ruling is at

  http://www.cyberspace.org/lawsuit/injunction.html


#22 of 80 by rcurl on Fri Jul 30 06:11:17 1999:

Congratulations to Grex - and all those that put in the effort on this
action - for a successful outcome. 


#23 of 80 by mary on Fri Jul 30 11:13:37 1999:

Thanks, Jan.  I'll let Mr. Steinberg know it's up.


#24 of 80 by jiffer on Fri Jul 30 12:48:22 1999:

the idle buster doesn't seem to be working...


#25 of 80 by dang on Fri Jul 30 16:55:06 1999:

I have a MS Word version of the opinion at
http://www.cyberspace.org/~dang/opinion.doc


#26 of 80 by drew on Fri Jul 30 18:41:19 1999:

Is it really necessary for 8 pages of mostly doublespaced text to take up 97K?


#27 of 80 by eeyore on Sat Jul 31 19:02:18 1999:

Out of curiosity, am I the only one having problems getting on with dial-in?
I've been dialing in, connecting, and then just hangig for 5-10 minutes
before I give up and try several hours later.


#28 of 80 by dang on Tue Aug 3 22:02:34 1999:

It is if you have all kinds of typesetting information involved.  Think
of it as a stored picture, and you won't be too far off.


#29 of 80 by eeyore on Fri Aug 6 04:44:56 1999:

HUH?????


#30 of 80 by jshafer on Sat Aug 7 06:50:44 1999:

Uh, eeyore, resp:28 was in response to drew's resp:26, not your res
p:27


#31 of 80 by eeyore on Mon Aug 9 02:02:29 1999:

Okey....I'm happy then. :)


#32 of 80 by jshafer on Tue Aug 10 00:01:57 1999:

(And my resp:30 showed up all on one line when I entered it...)


#33 of 80 by remmers on Fri Aug 13 02:25:55 1999:

An online vote to rescind the board action referenced in resp:7 is now
underway. See Item 114 in the Coop conference for discussion. To cast a
ballot, telnet or dial direct to Grex and type 'vote' at a Unix shell
prompt or '!vote' at any other prompt. The polls are open through the
end of the day (EST) on Sunday, August 22.


#34 of 80 by steve on Sat Aug 14 04:01:58 1999:

   Grex was down for several hours (about 5pm to 11:30pm) Friday.
A system file had its contents changed, and was writable to the
world.  This is of course Not Good and for a little bit I thought
we'd had a real security breach, and took Grex down.

   This is of course the thing that all staff fear the most, that
someone has figured out some new way of getting into the system
and becoming root.  There haven't been many times that I've thought
that this might have happened, but this was one of those times...

   As it turns out, the file in question had the wrong permissions
because of the way the system booted up, and although we specified
a certain mode for the permissions (read only to the world) dear
old SunOS had a different idea.  We took out the code that caused
this to happen, and all is well now.

   Also tonight was the testing of a new method of dealing with
fork bombs, which is faster than previous forkbomb control--this
one should kill forkbombs nearly instantly.  We tested it a bit
and its now running.


#35 of 80 by ktirkey on Sat Aug 14 15:18:23 1999:

text
help
a:
a text


#36 of 80 by otaking on Sat Aug 14 15:55:07 1999:

Re #34: What the heck are fork bombs?


#37 of 80 by steve on Sat Aug 14 17:03:06 1999:

  Forking is the term used when a running program splits itself into two
running programs.  This is often done when a program wants to run another,
for example.  Forking is a good thing.  However, a runaway forking program
is a monster, creating endless copies of itself and ultimately clogging
the operating system by hundreds of copies of itself, to the detrement of
the rest of the system.

  A forkbomb is a very small program which does nothing but fork itself
so very quickly the compter is doing nothing but dealing with all these
tiny little programs whose idea of a god time is to replicate.  Think of
them as software tribbles and you have a good model.

  The new anti fork-bomb code deals with this kind of problem very quickly.


#38 of 80 by mcnally on Sat Aug 14 18:26:37 1999:

  I prefer to think of them as process-table cancer, though the "software
  tribbles" analogy works, too..


#39 of 80 by mdw on Sun Aug 15 01:59:44 1999:

You can look at "insan3" for a typical example of a fork bomber.


#40 of 80 by steve on Sun Aug 15 08:33:01 1999:

  PTC!  I love it!  Thanks, Mike...


#41 of 80 by otaking on Sun Aug 15 20:47:01 1999:

Thanks for the explanation Steve.


#42 of 80 by darkskyz on Mon Aug 16 01:24:36 1999:

then why isn't he kicked out?
also, could you hack GCC to refuse compiling programs that are plainly fork
bombs?
for those of you wondering about the bombs, here's one courtsy of insan3
main()
{
        while (1)
                fork() ;
}
simple as that.
btw, i was wondering if the fork-bomb killer is available to download in
source? i might be interested to run one on my comp...


#43 of 80 by jazz on Mon Aug 16 02:13:23 1999:

        Always admired Berkeley for developing an elegant solution to
fork-bombs.


#44 of 80 by mdw on Mon Aug 16 03:37:45 1999:

"safefork" doesn't come from Berkeley.  It will probably appear in the
grex staff notes in due course.  We'd like to make sure it's toilet
trained before releasing it into the wild.

"Disabling" a fork bomber doesn't work because it's probably a throwaway
account, and because we don't do any form of account validation to
enforce "uniqueness".  For many of our users (indians, for instance)
proving "uniqueness" would be difficult.  What we've historically done
instead, is to complain to the ISP.  This is actually generally fairly
effective, because running a fork bomb is in fact illegal and nobody on
the internet wants to harbour criminals.  On the other hand, it's a
terribly time consuming process for us, because we have to comb through
our records and construct a detailed report on the vandal, send e-mail
out, &etc.


#45 of 80 by jazz on Mon Aug 16 15:31:23 1999:

        No, I'm assuming you folks are using tools of the homegrown variety.
I was thinking of Berkeley's process accounting and control.


#46 of 80 by other on Wed Aug 18 13:09:17 1999:

under what governing body is fork-bombing illegal?  if it is the US, 
then how does it apply to a foreign user?  I'm curious about this...


#47 of 80 by scg on Wed Aug 18 17:39:23 1999:

It certainly is in the US, as crashing a computer falls under various Federal
computer vandalism statutes (the one a lawyer told me about a few years ago
was, "unauthorized destruction of data," which included data held in a
computer's memory).  The situation in other countries presumably depends on
the other country, although I would assume that damaging a computer in the
US from another country is probably illegal under US law.


#48 of 80 by steve on Wed Aug 18 19:39:34 1999:

   MIchigan has a law about interfering with the proper operation of a
computer.  Thus I would imagine that the fork bomb would fall under
this law.  Certainly they're disrupting enough.

   We've had one vandal try this, twice.  I guess the first time was
enough of a shock that it wanted to see if it was really real. ;-)


#49 of 80 by remmers on Sun Aug 22 12:41:37 1999:

Today, Sunday August 23, is the last day to vote on the proposal
described in resp:33 .  The polls will close at midnight (EDT).


#50 of 80 by remmers on Sun Aug 22 18:08:10 1999:

Oops, slight correction - make that Sunday August 22 that the polls
close. (It's still today, but I had the date wrong.)


#51 of 80 by remmers on Mon Aug 23 13:19:23 1999:

The proposal was defeated: 16 yes votes, 27 no. (The totals are slightly
unofficial, pending any changes in the membership roles in the last 
month, but there wouldn't have been enough changes to affect the
outcome.)

Unofficial non-member votes: 67 yes, 74 no. Same outcome, although the
vote was closer.


#52 of 80 by remmers on Mon Aug 23 16:28:40 1999:

Grex Board of Directors meeting tonight, Monday August 23, at Zingermans
Next Door, 422 Detroit Street, Ann Arbor. See item 119 in the Coop
conference for the agenda.


#53 of 80 by jiffer on Mon Aug 23 16:38:57 1999:

is there a time?


#54 of 80 by remmers on Mon Aug 23 16:49:08 1999:

Oh, whenever everybody gets there...  :)

Oops, forgot to list the time.  7:00 p.m.  Thanks for noticing.


#55 of 80 by steve on Tue Aug 24 22:31:57 1999:

   Grex was down today for a reboot, which turned out to be more compilcated
   than
usual.

   For the last two days the system has been running slower than normal,
   because
of a program we ran to get rid of some vandal droppings, namely deeply nested
directories.  Due to various problems deep inside the kernel the program
couldn't finish and we had a couple of them hanging in this strange state,
using resources.

   Seeing that the problem was still here today, I rebooted the system.  Unlike
most occaisons where I've rebooted remotely, this one couldn't be done without
human intervention.  Thanks to Marcus for getting over and finishing the
cleaning job from the vandal's droppings.


#56 of 80 by jazz on Wed Aug 25 12:17:52 1999:

        What gives with people creating recursively nested directories,
anyways?  I've never seen them try that trick on any other system I've been
on.


#57 of 80 by darkskyz on Thu Aug 26 00:24:21 1999:

i think that newer OSes have a limit on depth of nested directories, but i'm
not sure. if they do and the other systems you have been on are newer oses
then parhaps it simply isn't possible there. note this is just a hunch - i
don't have the time to look in the linux source code (which is several million
lines long) to check if i'm right about this.


#58 of 80 by mdw on Thu Aug 26 17:45:47 1999:

I've seen people create deeply nested directories on m-net.  This was on
the altos.  I remember spending some time teaching the OS how to limit
directory nesting.  It's not an entirely trivial problem to fix.


#59 of 80 by drew on Thu Aug 26 19:15:09 1999:

You start out with a deeply nested directory, like /a/u/s/user.

Recursively nested - that would be like having a symbolic link to a few levels
up? I guess there's no harm in it, unless you run something that recursively
follows all subdirectories and treats links as actual directories.


#60 of 80 by mdw on Thu Aug 26 19:53:47 1999:

/a/u/s/user is only 4 levels down, which hardly qualifies as deeply
nested.  I have pathnames at work like
/afs/umich.edu/group/itd/build/mdw/krb5.cast/krb5/src/lib/crypto/des/afsstring2k
ey.c and even that's not too hairy; it does fit on one line, and is only 13
levels deep, at least.  The directories created by the last vandal were over
3000 levels deep, and this was deep enough to cause problems for the "SYSAUDIT"
feature which we had inadvertently built into the grex kernel; this feature
collects path name information for C2 security logging purposes, and apparently
the feature didn't like pathnames over 64k in size.  It seems, in some
respects, we operate in a more hostile environment than the pentagon.


#61 of 80 by don on Thu Aug 26 19:57:41 1999:

Why dontya just modify the sysaudit program to spit out a message into the
sys log when there's a huge directory and skip it?


#62 of 80 by mdw on Thu Aug 26 20:07:25 1999:

Because it's not a program, we don't have source to it, we don't need
it, and taking it out is effectively the same as having it skip every
directory.


#63 of 80 by steve on Thu Aug 26 22:47:46 1999:

   Actually, taking it out was a win.  IN talking with someone at MSU today
who has dealt with C2 security stuff on SunOS, his comment was along the
lines that we ought to have crashed into C2 weirdness before now.  So just
getting rid of it was a win.


#64 of 80 by mcnally on Fri Aug 27 01:17:35 1999:

  I get cognitive dissonance when someone talks about crash-preventing
  measures as a "Win"..  Too much Microsoft influence, I guess..


#65 of 80 by steve on Fri Aug 27 03:26:33 1999:

   Mike, when you administer a system like Grex, anything you can do to
stop the vandal from doing things is a "win".  It's just one more item
that they can't use to hurt you.  Now, granted this is similar to the
Microsoft style of software creation, but in Grex's case I think its
pretty reasonable.


#66 of 80 by scg on Fri Aug 27 03:37:48 1999:

I think Mike was making a pun.  Win as in Windows.


#67 of 80 by jazz on Fri Aug 27 12:10:29 1999:

        Heh.

        Recursive-directory spam seems to be of the sort of low-brow attempted
hacking that'd be stopped with a few changes to mkdir.


#68 of 80 by steve on Fri Aug 27 14:05:04 1999:

   The changes need to be in the kernel, not mkdir.  A vandal could
circumvent a protected mkdir program by simply calling mkdir in some
code.  It can be done in the kernel, but it isn't a trivial task.


#69 of 80 by jazz on Fri Aug 27 15:18:11 1999:

        To truly prevent it, yes.  I'm just saying that that sort of exploit
is in most cases used by someone who wouldn't *think* nor have the resources
to write even a simple chdir() mkdir() recursive program.  Come to think of
it, most programmers I know aren't capable of really recursive programming,
heh. :P


#70 of 80 by mdw on Fri Aug 27 23:01:23 1999:

This particular vandal used a perl script.


#71 of 80 by steve on Sat Aug 28 06:03:20 1999:

  At least 50% of the recursive dir bombs have been C code.  The nastyist
one creates random strings of files and dirs, then dives another level
deep and starts over again.

  Changing mkdir itself isn't worth it.


#72 of 80 by janc on Sat Aug 28 18:11:21 1999:

Yup, most of the people who are stupid enough to want to do something
like this aren't smart enough to write even a shell script - they use
programs written by other people that they found on the web.  Half of
them barely know what the programs they run do - except that it is
somethink K00l and hackerish.  The programs themselves aren't typically
very good either, since they were mostly written by people who just
barely knew what they were doing, but they are very diverse.  Building
good defenses against them is non-trivial.  We finally have good
defenses against fork bombs, at least.


#73 of 80 by jazz on Sun Aug 29 11:37:12 1999:

        If there's something running around the script kids that does mkdir()
calls, then I retract my statement.  I haven't seen one on any of the ususal
suspects.


#74 of 80 by flem on Thu Sep 16 16:00:46 1999:

If you were writing a program whose only objective was to make really 
deep directories, why would you recurse?  I would think looping would 
be far more effective.  


#75 of 80 by remmers on Thu Sep 16 19:22:13 1999:

By recursing, you can make 'em deep and wide.


#76 of 80 by flem on Fri Sep 17 13:50:11 1999:

How would recursing help to make them wide?  Are you assuming that the 
recursion is finite?  I mean, if you have something like (ignoring the 
finer points of syntax)

foo()
{
   mkdir("something");
   chdir("something");
   foo();

   /* never reached */
   mkdir("something else");
   chdir(something else");
   foo();

   chdir("..");
}

you still won't get a tree-like expansion, you'll get a single line of
deeper and deeper nested children, one for each recursion, until 
someone kills the program.  So how would you use recursion to make 'em 
wide, too?  And why does it matter if they're wide, if the objective is 
to fill up a filesystem?  Won't deep do it just as well?  

Maybe this question should be taken elsewhere?  :) 


#77 of 80 by drew on Fri Sep 17 20:08:45 1999:

You need to spawn() or something like that, to get wide. And do it more than
once in each instance of the program. Deep gets you a linear growth, while
wide gets you an exponential expansion.


#78 of 80 by mdw on Fri Sep 17 21:49:29 1999:

It doesn't really matter.  We have a nice tool that digs through and
gets them all no matter if they're wide or deep.  Usually, I think these
people are trying to create something that's deep and "annoying" (weird
filenames); probably they're hoping to core dump things like "find",
"restore", and "rm -rf".  Filling up the filesystem appears to be of
2ndary interest to the vandals that make deeply nested directories.


#79 of 80 by don on Sun Sep 19 23:54:04 1999:

Here's how I think they do it (ignoring syntax):

foo()
  for (n=1,n<1000/*Or something equally large*/,n++)
  {
    mkdir("%d",n);
    chdir("%d",n);
    spawn(foo.c);
    chdir("..");
  }

This would create a tree with 1000 branches at each level, and infinitely deep
(ie, until stopped by staff or some sort of filesystem limitation).

At least, this is how I'd do it.


#80 of 80 by janc on Mon Sep 20 00:39:54 1999:

Yup, except on Grex it would probably create maybe 50 directories before
all your processes, including your login shell, suddenly and
mysteriously died.  These days our fork bomb defenses are very
effective, and that little program is a fork bomb.


There are no more items selected.

You have several choices: