Jens Elkner writes:
> Furthermore (kind of OT): Some people/unexperienced user might
> think, installing the package in the global zone, inherited it and
> just disable the unwanted service might be safe. But as more
> experienced users know, just having a service not running does not
> prevent anybody to executed a program. And thus a security threat
> might still exists. E.g. suid xterm, suid sendmail and who knows,
> which other software falls or may fall into the "security risk"
> category tomorrow ... So best practice is probably still: Do not
> install any software, you do not need (at least on servers ;-)) ...

I don't think that's off-topic at all.  In fact, I think it's the crux
of the argument you're trying to make: that the pkg* tools are a
better way to enable or disable software than any tool (such as
svcadm) that's designed for enabling or disabling software features.

I disagree.  Besides the uneasy problems of inaccurate and missing
package dependencies[1] and patch havoc[2], the core issue is that
removing the software doesn't remove the security risk.  As long as
users are still able to create files and set the execute permission
bits, users can recreate those applications whenever they want.  It's
at best security-by-obscurity.

If the real concern here is security, then I would suggest limiting
the privileges(5) granted to users, roles, and subsystems such that
they just _can't_ do the things you don't want them doing.

If the real concern is that Sun ships a few programs that are setuid
or setgid, then you should address that concern with your support
folks.  Sun has extensive security tools and practices in this area
that are designed to limit the number of such applications and to
review and audit the ones that are.

(Neither xterm nor sendmail are setuid, though sendmail is setgid to
its own separate group.  I'm not sure what the "who knows" part refers
to; it's not as if Sun ever takes a "who knows" approach to security
in any software it ships.)

Also, don't forget that other solutions (such as Domains, LDoms and
Xen) may be more appropriate for some situations.  That's why there's
more than one solution in this space.

As for the experience issue, I don't think it's entirely safe to
assume that those suggesting the use of 'svcadm' are just
inexperienced.


1.  Core Solaris software tends not to have a complete list of
    dependencies in the packaging database.  Instead, testing relies
    on the supported metaclusters (reduced networking, core, user,
    developer, entire distribution).  If you add or remove packages,
    you have to be very careful to get the dependencies right.

2.  Patch havoc can occur when you remove a package, patch the system,
    and then later realize that you need to add a removed or new
    package to the system -- because, for example, some user has a
    legitimate need for one of the applications that were excluded.

    The patching system skips over packages that are not present at
    the time the patch is applied.  It doesn't "remember" what changes
    it would have made if the package had been present.  If you later
    install a package, that newly-added package won't have the same
    patches as applied elsewhere on the system, leading to
    inconsistent operation or just plain failure.

    The only safe thing to do is to back out every patch that applied
    to the package in question, add the package, and then reapply all
    of the patches.

-- 
James Carlson, KISS Network                    <james.d.carlson at sun.com>
Sun Microsystems / 1 Network Drive         71.232W   Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757   42.496N   Fax +1 781 442 1677

Reply via email to