|
Softpanorama |
May the source be with you, but remember the KISS principle ;-)
Softpanorama Search
|
| News | Editorial | Recommended books | Recommended Links | Minimization | Tutorials & FAQs | Linux vs Solaris Security whitepaper | Etc |
BTW one simple hardening recommendation that people often forget to mention is just to upgrade to Solaris 10: it's really a much better and more secure OS then any previous versions of Solaris. Neither from the security standpoint nor from the performance standpoint, there are real reasons of running, say, a webserver or Websphere outside zones like I saw in some big corporations.
Among the best Solaris-specific materials that are freely available on the Internet I would recommend the following:
So what makes Solaris Privileges different? Why didn't we copy something else like Trusted Solaris Privileges or "POSIX" capabilities?
Let's start from what we formulated as our requirements near the beginning of our project.
One of the important features of Solaris is complete binary backward compatibility; in order to offer that we needed to design the privilege subsystem in such a manner that current practices, binaries and products would continue to work. Of course, some have solved this issue by providing a system wide knob to turn: root / root + privileges / just privileges. We don't like knobs in our OS; specifically not ones which drastically alter the behavior of a system. It makes it harder to develop software; it needs to work for all settings. Certain products may require conflicting settings, and so on. So we decided on a "per-process" knob which is largely automatic
With backward compatibility comes the onus on the software developer to develop future proof interfaces; that ruled out all other interfaces as they all have fixed bitmaps and fixed privilege/capability numbers, fixed structure sizes in the programmer visible parts of the system. Solaris Privileges have none of that. And while we could safely reuse the names of the Trusted Solaris interfaces we can not redefine interfaces even from a defunct standard. So we have interfaces which smell like Trusted Solaris but with a completely new userland representation of privileges and privilege sets. We can never have more signals; but we can have more privileges and more privilege sets!
The privileges and privilege sets in Solaris 10 are represented to userland processes and non-core kernel modules as strings; privilege sets are bitmasks of undetermined size; they can only be allocated through the C library routines. Privilege set names are also strings and not plain integer indices; this gives us even more flexibility. A Solaris binary compiled for 4 privilege sets of each 32 privileges will continue to work on a Solaris system with 5 privilege sets each of which can contain 64 privileges and with all the privileges having their internal representation renumbered.
... Many software exploits count on this escalated privilege to gain superuser access to a machine via bugs like buffer overflows and data corruption. To combat this problem, the Solaris 10 Operating System includes a new least privilege model, which gives a specified process only a subset of the superuser powers and not full access to all privileges.
The least privilege model evolved from Sun's experiences with Trusted Solaris and the tighter security model used there. The Solaris 10 OS least privileged model conveniently enables normal users to do things like mount file systems, start daemon processes that bind to lower numbered ports, and change the ownership of files. On the other hand, it also protects the system against programs that previously ran with full root privileges because they needed limited access to things like binding to ports lower than 1024, reading from and writing to user home directories, or accessing the Ethernet device. Since setuid root binaries and daemons that run with full root privileges are rarely necessary under the least privilege model, an exploit in a program no longer means a full root compromise. Damage due to programming errors like buffer overflows can be contained to a non-root user, which has no access to critical abilities like reading or writing protected system files or halting the machine.
The Solaris 10 OS least privilege model includes nearly 50 fine-grained privileges as well as the basic privilege set.
- The defined privileges are broken into the groups
contract,cpc,dtrace,file,ipc,net,proc, andsys.- The basic privilege set includes all privileges granted to unprivileged processes under the traditional security model:
proc_fork,proc_exec,proc_session,proc_info, andfile_link_any.
by Glenn Brunette
This Sun BluePrints Cookbook describes how to centralize and automate the collection of file integrity information using the following Solaris features:
* Secure Shell
* Role-based Access Control (RBAC)
* Process Privileges
* Basic Auditing and Reporting Tool (BART)
Each of these features can be quickly and easily integrated to centralize and automate the process of collecting file fingerprints across a network of Solaris 10 systems.Note: This article is available in PDF Format only.
you may (and should) disagree on the content on the list (I really disagree). But it might help to understand and properly set your own priorities, get a buy-in from (possibly clueless) management and proceed from this point. The recognition that top ten vulnerabilities exists helps to prioritize hardening. Closing real top ten probably can help in more than 80% of "naive" attempts to break into the system. This understanding of hierarchical nature of threats is a huge step forward toward more secure system. See also Lance Spitzner, On SANS Institute's Twenty Vulnerabilities List
Building Secure N-Tier Environments
Minimizing the Solaris Operating Environment for Security: Updated
for Solaris 9 Operating Environment (November 2002) By
Alex Noordergraaf and Keith Watson
December 1999. This is must read.
The paper addresses the principal
question about how to remove unnecessary packages -- actually they consider
a very practical case of Solaris + Netscape Enterprise Server.
The paper a little bit dated and weak on the tool side, though.
See also
Solaris Operating Environment Security: Updated for Solaris 9 Operating
Environment (December 2002)
A Checklist Approach by Paul D. J. Vandenberg and Susan D. Wyess. Point by point checklist from Usenix -- this is probably the third best paper on this topic which is available on the Internet. This list in not that practical, but you can use it as a starting point for adaptation of titan to your own need. This continued refinement of Titan and the list is the way to go.
Solaris Operating Environment Network Settings for Security: Updated for Solaris 9 Operating Environment (June 2003) -- by Keith Watson and Alex Noordergraaf.
A better than in previous paper checklist-style discussion of networking specific issues.
Compass Security Network Computing AG -- pretty practical but slight outdated guides (Titan modules descriptions are definitely outdated, but it's one of the few descriptions of issues connected with hardening Oracle available on the Internet)
Due to the growing volume of the page several historically important hardening scripts are now covered separately.
Copyright © 1996-2009 by Dr. Nikolai Bezroukov. www.softpanorama.org was created as a service to the UN Sustainable Development Networking Programme (SDNP) in the author free time. Submit comments This document is an industrial compilation designed and created exclusively for educational use and is placed under the copyright of the Open Content License(OPL). Site uses AdSense so you need to be aware of Google privacy policy. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.
Disclaimer:
Last modified: August 11, 2009