Re: New stacker performance results

From: Valdis.Kletnieks@private
Date: Wed May 25 2005 - 22:28:37 PDT


On Wed, 25 May 2005 18:40:40 EDT, Colin Walters said:
> Errr...if your "auditor" specifies that you need "chroot" without
> understanding the issues, then just use SELinux, and tell them you're
> using "chroot". Moreover, why would you even let your organization be
> audited by someone so clueless in the first place?

When you're a state agency, you get audited by whoever shows up from the state
capitol.  We don't get the luxury of choosing who.  And when you're a 3 hour
drive from the capitol, you *know* that the auditor who shows up either (a)
likes being in the mountains a *lot*, or (b) is the junior staffer and got last
choice. (To be fair, we probably get the second to last choice.  Somebody has
to get stuck with doing audits in Grundy(*), or in Floyd County (motto: "still
waiting for the county's second traffic light")

(And you there smirking in the corner - being a .com doesn't let you off the
hook.  You know *damned* well that there's plenty of publicly traded corporations
that have signed auditing contracts with a Big 5^H4, and had a clueless bozo
show up...)

> > order to actually do it, you'd basically have to use the 'strict' policy,
> > give each user their own $USER_u - and then you could add the 5-6 lines of
> > policy that did the same as a 15-line LSM exit.  Except the SELinux one
> > will have chewed up some 20M worth of avc_node slab entries (which makes a
> > noticeable difference if you're trying to secure an older box that only has
> > 128M or 256M installed).
> 
> What you are forgetting is that I provided a solution for the policy
> size: use the constraints.  Thomas Bleher even tested it and found it
> worked, IIRC.

Hmm.. I *must* have blinked.  Where did he get it to where the memory usage was
the same as my 10 lines of C?

int vtkit_follow_link (struct dentry *dentry, struct nameidata *nd)
{
       struct inode *i_target = dentry->d_inode;
       struct inode *i_parent = dentry->d_parent->d_inode;

       if ((i_parent->i_mode & S_ISVTX) && (i_parent->i_mode & S_IWOTH) && 
               (i_parent->i_uid != i_target->i_uid) && 
               (current->fsuid != i_target->i_uid)) {
                       return -EPERM;
       }
       return 0;
}

I'd *love* to see you get an SELinux-based solution that can get anywhere
near that for speed, slab usage, or stack usage. ;)

> Nope - we showed in that case SELinux did work, and quite elegantly too.

Yes, the constraints solution was indeed elegant, and very nice *if you were
using SELinux already*.  But it's far from the most efficient way.

> > The point is that there *DO* exist *real world* security issues
> > that the SELinux model is not all that well suited for.
> 
> Since we've discounted chroot, I'm awaiting more "*real world*"
> examples...

I have become firmly convinced that *some* people have spent *so* much time
designing ultra-secure systems suitable for protecting data worth multiple
millions of dollars that they have *totally* forgotten that *some* of us don't
have multi-million dollar secrets to protect from world-class attackers hired
by The Other Side.

I have to protect one undergrad from another, on an older Dell system that has
a 700mz processor and 128M of memory.  And at 128M, the fact that you *could*
trim SELinux from 17M of slab space down to 8M still doesn't compare well with
another "good enough" solution that gets the job done in under 1K.  The less
that 'Disk Active' LED goes on, the happier we all are... ;)  I don't need
perfect security - I only need it to be hard enough so that instead of trying
to steal a homework solution, they decide to bribe somebody down the dormitory
hall to do it for them.  I only need it to be hard enough so that instead of
trying to mess up another student's project, they decide to find some easier
way to make their victim's life difficult - if the attacker decides to penny
the victim into their dorm room instead (the cost of *that* attack being all of
3-5 cents plus a blunt object suitable for pounding), my security has suceeded.

I don't need to deploy $100,000,000 security.
I need to deploy $100 security.

And anybody who has trouble with that concept should carve out a large chunk of
time this weekend and (re-)read Schneier's "Secrets and Lies".....

(*) Grundy: http://maps.google.com/maps?q=grundy+virginia&spn=0.106445,0.128299&hl=en
Keep zooming out.  You'll find civilization on there... eventually. By the time
you've zoomed out enough to find a city the size of Columbus, Ohio on the map, you
have portions of 11 states showing.  Yes, there's places that remote east of the
Mississippi ;)





This archive was generated by hypermail 2.1.3 : Wed May 25 2005 - 22:29:21 PDT