|
Softpanorama
(slightly skeptical)
Open Source Software Educational Society |
May the
source be with you,
but remember the KISS principle ;-)
|
(Slightly Skeptical)
Sun Solaris Security Page
Notes:
- This is a Spartan WHYFF (We Help
You For Free) site written by people for whom English
is not a native language.
Some amount of grammar and spelling errors should be
expected.
- The site contain some broken links
as it develops like a living tree...
Please try to use Google, Open directory,
etc. to find a replacement link (see
HOWTO search the WEB for details). We would appreciate
if you can
mail us a correct link.
|
|
|
|
See also
I would prefer that Glenn rewrote JASS in Perl but this
looks like better then nothing if you take recommendations with
the grain of salt.
Friday Nov 02, 2007
It is with great pleasure that I can (albeit belatedly)
announce the arrival of the latest security guidance from
both Sun and the
Center for Internet
Security. Working together, in concert with
representatives from academia, industry and government, we
have published security guidance for
Solaris 10 11/06
and 8/07. This content represents the best and most complete
form of Solaris security guidance ever produced.
Not only are the recommendations based upon industry
consensus but they are also supported by Sun. What is even
better is that this material was completed with support and
feedback from both the
National Security Agency and the
Defence Information Systems
Agency. I would like to especially thank both
organizations for their significant contributions to this
material! This iteration brings us (Sun, CIS, NSA and DISA)
closer than even toward a single, consistent set of security
recommendations for the Solaris OS.
The Benchmark itself has been restructured. Today, it
comes in the form of two documents: (1) the core hardening
Benchmark itself and (2) an extended appendix covering
additional Solaris security controls with examples and
references for more information. Further, the Benchmark
itself has been significantly reorganized to improve its
correctness and flow. Thanks to Carole, our editor!
Some new elements to the Benchmark include headers for
each item that tell you if a given recommendation is a
Solaris 10 default value, for what platforms it applies and
even what configuration settings you need to implement the
recommendation using the
Solaris Security
Toolkit. Overall the document is a tremendous step
forward toward bringing the world the best available insight
into how to harden and more generally secure their Solaris
systems. There have also been quite a few updates to account
for changes and enhancements in Solaris. The Solaris
Security Appendix document is completely new and provides an
overview of the security capabilities of the Solaris OS with
many examples and references for more information including
step-by-step BluePrints and HOWTOS. If you are responsible
for managing or securing a Solaris 10 system, these
documents are for you!
You can find a copy of these documents at both the
CIS
web site as well as on
OpenSolaris.org (CIS
Solaris Benchmark,
Solaris Security Appendix). As always, feedback and
ideas for future revisions are encouraged! If you are
interested in participating in future versions of these
documents, please consider joining the CIS Unix Benchmark
Team. Contact
Dave for more information!
There are many resources available on the
Internet to help with managing IT security --
far too many for the newcomer to be able to sort
out the valuable ones from the useless ones. In
this article, I'll present a number of very
useful documents designed to help in managing
enterprise security in a practical manner. I
will review some of the most common documents
that I've used to help IT organizations evaluate
their security and provide them with assistance
on what to do to maintain security. Rather than
referring to the many, many books available or
to voluminous and boring standards documents,
I'll present freely available and easily
understood documents that can be easily adapted
and applied to most IT organizations.
Why do systems administrators need to use
guides, practices, and checklists? The answer is
simple -- admins can't possibly be experts in
all areas of IT security that must be managed by
modern enterprises. Even a small company with
one or two servers, an Internet connection, and
20 or so workstations poses a lot of work to
fully evaluate how secure it is. So, we need
guides, written practices, and checklists to
provide us with guidance on how to maintain
security and to make sure that we cover all the
details.
Specifically in this article, I'll review the
Open Source Security Testing Methodology Manual
(OSSTMM), a number of NIST Special Publications,
some of the DISA guides and checklists, the
Standard of Good Practice (SoGP), and the
ISO17799 standard. These are all freely
available (except for ISO17799) and will greatly
ease the task of evaluating and maintaining
enterprise security.
The Open Source Security Testing
Methodology Manual (OSSTMM)
The Open Source Security Testing Methodology
Manual is a guide for evaluating how secure
systems are. It contains detailed instructions
on how to test systems in a methodological way,
and how to evaluate and report on the results.
The OSSTMM consists of six sections:
- Information Security
- Process Security
- Internet Technology Security
- Communications Security
- Wireless Security
- Physical Security
It also includes a number of templates
intended for use during the testing process to
capture the information gathered.
The OSSTMM is a great resource for systems
administrators who want to evaluate the security
of a wide range of systems in an ordered and
detailed way. It contains instructions on
testing systems but few details on how to
protect systems.
NIST Special Publications
The Information Technology Laboratory of the
National Institute of Standards and Technology
(NIST) publishes a number of guides and
handbooks under the Special Publications
program. Some of these are quite high-level,
covering areas of management, policy, and
governance. But many include details that are
perfect for systems administrators and
operations people. The following is an overview
of some of the available guides -- check the
NIST Web site for the full list of currently
available guides.
The great thing about the NIST documents and
checklists is that they are not copyrighted.
That's right; you can copy and modify these as
much as you want without fear of reprisals. You
can modify these checklists to suit your own
requirements, for example, to develop your own
checklist for new servers going into production
or to define your own security auditing process.
You can even adapt these guides to become your
new security policy.
NIST SP800-100 Information Security
Handbook: A Guide for Managers
This is a big document (178 pages) that
supersedes the older SP800-12 as a general
handbook on managing information security. For
IT managers or systems administrators new to
security this is really the best place to start,
although much of the content is at a high level
targeted for managers. Some of the chapters,
such as those on governance and investment
management will be too high level for systems
administrators, but others such as the ones on
incident response, contingency planning, and
configuration management will be very useful.
This guide includes an appendix containing a
list of Frequently Asked Questions (FAQs), which
provides a lot of useful information.
NIST SP800-44 Guidelines on Securing
Public Web Servers
If you're operating Web servers on the public
Internet, then you need to read this guide.
Aimed at technical and operations people, it
describes the threats to public Web servers and
provides detailed guidelines for securing them.
The following areas are covered:
- Planning and management of Web servers
- Securing the operating system
- Securely installing and configuring the
Web server
- Securing Web content
- Authentication and encryption
technologies
- Implementing a secure network for a Web
server
- Administering a Web server
Examples and references are provided for the
Apache and Microsoft IIS Web servers, and there
is a comprehensive appendix with details on
installing and configuring both of these. There
is also an appendix containing a very useful
checklist for securing Web servers.
NIST SP800-45 Guidelines on Electronic
Mail Security
Version 2 of the Guidelines for Electronic
Mail Security was released in February 2007.
This guide covers many areas from the
installation and secure operation of email
servers to encryption and signing of emails and
securing various email clients. The following
areas are covered in detail:
- Planning and managing mail servers
- Securing the mail server operating
system
- Securing mail servers and content
- Administering the email server
- Implementing a secure network
infrastructure
- Securing mail clients
- Signing and encrypting email content
As in the guide for Web servers, a checklist
is provided in the Appendices for quickly
checking the security of an existing or planned
mail server. It doesn't have any operating
system or mail software specific sections but is
detailed enough to cover almost any
installation.
NIST SP800-81 Secure Domain Name System
(DNS) Deployment Guide
DNS is a critical component of most IT
environments, and risks to DNS need to be taken
very seriously and managed appropriately. This
guide presents recommendations for secure
deployment of DNS servers. It examines the
common threats to DNS and recommends approaches
to minimize them. It covers the technical
details of installing the BIND DNS server on
Unix systems and provides recommendations for
securing the operating system.
This guide explains how to secure zone
transfers with TSIG signatures and gives a very
good overview of DNSSEC implementation and
management. It is thoroughly recommended if you
are involved with managing DNSSEC services.
NIST SP800-48 Wireless Network Security
(802.11, Bluetooth, and Handheld Devices)
This guide was written in 2002, so it is a
bit outdated now. However, the fundamentals of
wireless technology haven't changed a lot, and
this guide does a very good job of explaining
the threats to wireless networks. It covers
primarily IEEE 802.11 (WiFi) and Bluetooth and
presents good guidelines on security controls,
such as positioning access points, controlling
network access, and encryption methods. Even if
you're not familiar with wireless networking,
this guide serves as an excellent introduction.
NIST SP800-92 Guide to Computer Security
Log Management
Just about every device in the world of IT
generates log messages. Some devices, such as
firewalls, generate huge amounts of log data all
of which needs to be managed in a secure manner.
This guide introduces the requirement to
securely manage log data. It includes guides on
log management infrastructure and processes such
as reporting and analysis tools. It also
includes details on the Unix syslog system and
contains references to many tools and further
guides for managing log data.
NIST and DISA Checklists
Sometimes we just don't have the spare time
to read though the lengthy guides; this is when
checklists come in handy. NIST has developed a
program for the development of checklists for
securing IT systems. The program is now owned by
DISA (Defense Information Systems Agency), and
it provides a large number of checklists that
make the job of evaluating systems much easier
and more methodological.
A number of checklists are available here,
including ones covering:
- Most versions of Unix
- Microsoft Windows 2000, 20003, XP, Vista
- Oracle RDBMS
- BIND DNS servers
- Cisco PIX firewalls
- Cisco IOS
- Wireless networks
- Apache Web server
Unix Security Checklist
The Unix Security Checklist comes as a zip
file containing a number of documents with three
major sections and five appendices. Some of the
documents are very large (one is 360 pages
long). The checklist is very detailed and
contains checks for the Unix OS and most common
applications found on Unix (such as SSH). The
checks are all in .doc Word format, which makes
it very easy to adapt them to your own purposes.
The most important sections are Section 2 and
Section 3.
Section 2, "SRR Results Report" contains a
table that allows you to document the
vulnerabilities discovered during the Security
Readiness Review (SRR). Section 3, "System Check
Procedures", covers procedures about how to
perform the SRR for Unix systems. Unix systems
covered by this checklist are HP-UX, AIX,
Solaris, and Red Hat Linux.
Standard of Good Practice (SoGP)
Published by the Information Security Forum
(ISF), the Standard of Good Practice presents
comprehensive best practices for managing IT
systems from a business perspective but in a
practical and achievable way. It has been
targeted for larger businesses, but is still
applicable to the small to medium businesses as
well.
The standard is broken down into six
sections, which it calls "aspects":
- Aspect SM: Security Management
- Aspect SD: System Development
- Aspect CB: Critical Business
Applications
- Aspect CI: Computer Installations
- Aspect NW: Networks
- Aspect UE: User Environment
This is a very large document (247 pages),
which would be very well suited for adoption as
a comprehensive security policy. Even if you're
not specifically solving security problems, the
SoGP would act as a good set of guidelines for
IT management practices.
ISO17799
No overview of security guides and practices
would be complete without a mention of ISO17799.
Titled "A Code of Practice for Information
Security Management", it was originally
developed in 1993 by a number of companies and
published as a British standard. It became an
ISO standard in 2000 with a number of later
editions and add-on documents following. It
essentially consists of about 100 security
controls within 10 major security headings. It
is intended to be used as a reference document
to identify the measures required to be applied
to specific areas and issues. It contains 10
sections on the following subjects:
- Development of an enterprise IT security
policy
- Establishing a security organization,
defining management and responsibility
- Asset classification and control
- Security of personnel -- resources,
training, awareness, incident reporting
- Implementing physical security controls
- Management of computers and networks
- Controlling access to computer systems
- Integrating security into new systems
- Business continuity and disaster
planning
- Compliance with security requirements
The good thing about ISO17799 is that it is a
standard against which an organization can be
audited, and it can be seen as a common standard
for IT security management. There are also many
additional documents and books available to
supplement the standard.
The bad thing about ISO17799 is that it is
heavily commercialized; the 115-page document
costs approximately US $200 and contains
information that is available elsewhere at no
cost (such as the SoGP).
Conclusions
There are many security guides available, and
in this article I've presented some of the best
ones that you can get and use for free. The
OSSTMM and NIST/DISA checklists are good guides
for evaluating the security of existing systems.
The NIST guides are good for defining the best
practices to manage systems securely, and the
SoGP and ISO17799 documents offer standards
against which your enterprise can be evaluated.
Managing IT security across the enterprise
can be a bewildering experience; many managers
and systems administrators have problems simply
deciding where to start. With the right guides
and checklists, however, the job can be greatly
simplified and more easily understood.
Resources
ISO17799 -- http://www.iso-17799.com/
NIST & DISA Checklists -- http://csrc.nist.gov/checklists/repository/ or
http://iase.disa.mil/stigs/checklist/index.html
NIST Special Publications -- http://csrc.nist.gov/publications
Open Source Security Testing Methodology
Manual (OSSTMM) -- http://www.osstmm.org
Standard of Good Practice (SoGP) -- http://www.isfsecuritystandard.com/index_ns.htm
Unix Security Checklist -- http://csrc.nist.gov/checklists/repository/1078.html
Kerry Thompson is a Security Consultant in
Auckland, New Zealand with more than 20 years
commercial experience in Unix systems,
networking, and security. In his spare time he
is a technical writer, software developer, sheep
farmer, woodworker, private pilot, and father.
Contact him at: kerry@crypt.gen.nz.
Tip of the Month:
Enabling TCP Wrappers in Solaris 10
Before answering this question, let's first provide a little
background.
TCP Wrappers has been around for many, many years. It is used to
restrict access to TCP services based on host name, IP address,
network address, etc. For more detailed on what TCP Wrappers is and
how you can use it, see tcpd(1M). TCP Wrappers was integrated
into Solaris starting in Solaris 9 where both Solaris Secure Shell
and inetd-based (streams, nowait) services were wrapped. Bonus
points are awarded to anyone who knows why UDP services are not
wrapped by default.
TCP Wrappers support in Secure Shell was always enabled since
Secure Shell always called the TCP Wrapper function host_access(3) to determine if a connection attempt should
proceed. If TCP Wrappers was not configured on that system, access,
by default, would be granted. Otherwise, the rules as defined in the
hosts.allow and hosts.deny files would apply. For more
information on these files, see hosts_access(4). Note that
this and all of the TCP Wrappers manual pages a stored under /usr/sfw/man
in Solaris 10. To view this manual page, you can use the following
command:
$ man -M /usr/sfw/man -s 4 hosts_access
inetd-based services use TCP Wrappers in a different way. In
Solaris 9, to enable TCP Wrappers for inetd-based services, you must
edit the /etc/default/inetd file and set the ENABLE_TCPWRAPPERSparameter to
YES. By default, TCP
Wrappers was not enabled for inetd.
In Solaris 10, two new services were wrapped: sendmail and
rpcbind. sendmail works in a way similar to Secure
Shell. It always calls the host_access function and therefore
TCP Wrappers support is always enabled. Nothing else needs to be
done to enable TCP Wrappers support for that service. On the other
hand, TCP Wrappers support for rpcbind must be enabled
manually using the new Service Management Framework ("SMF").
Similarly, inetd was modified to use a SMF property to
control whether TCP Wrappers is enabled for inetd-based services.
Let's look at how to enable TCP Wrappers for inetd and rpcbind...
To enable TCP Wrappers support for inetd-based services, you can
simply use the following commands:
# inetadm -M tcp_wrappers=true
# svcadm refresh inetd
This will enable TCP Wrappers for inetd-based (streams, nowait)
services like telnet, rlogin, and ftp (for
example):
# inetadm -l telnet | grep tcp_wrappers
default tcp_wrappers=TRUE
You can see that this setting has taken effect for inetd
by running the following command:
# svcprop -p defaults inetd
defaults/tcp_wrappers boolean true
Note that you can also use the svccfg(1M) command to
enable TCP Wrappers for inetd-based services.
# svccfg -s inetd setprop defaults/tcp_wrappers=true
# svcadm refresh inetd
Whether you use inetadm(1M) or svccfg is really a
matter of preference. Note that you can also use inetadm or
svccfg to enable TCP Wrappers on a per-service basis. For
example, let's say that we wanted to enable TCP Wrappers for telnet but not for
ftp. By default, both the global and
per-service settings for TCP Wrappers are disabled:
# inetadm -p | grep tcp_wrappers
tcp_wrappers=FALSE
# inetadm -l telnet | grep tcp_wrappers
default tcp_wrappers=FALSE
# inetadm -l ftp | grep tcp_wrappers
default tcp_wrappers=FALSE
To enable TCP Wrappers for telnet, use the following
command:
# inetadm -m telnet tcp_wrappers=TRUE
Let's check out settings again:
# inetadm -p | grep tcp_wrappers
tcp_wrappers=FALSE
# inetadm -l telnet | grep tcp_wrappers
tcp_wrappers=TRUE
# inetadm -l ftp | grep tcp_wrappers
default tcp_wrappers=FALSE
As you can see, TCP Wrappers has been enabled for telnet
but none of the other inetd-based services. Pretty cool, eh?
You can enable TCP Wrappers support for rpcbind by running
the following command:
# svccfg -s rpc/bind setprop config/enable_tcpwrappers=true
# svcadm refresh rpc/bind
This change can be verified by running:
# svcprop -p config/enable_tcpwrappers rpc/bind
true
That is all that there is to it! Quick, easy and painless! As
always, let me know what you think!
Take care!
[Mar 29, 2007] A
comparison of the multilevel security policies of the
Solaris OS and SELinux -- see which one works better for you.
The Solaris Trusted Extensions project is a
reimplementation of Trusted Solaris 8 based on new
security features in Solaris 10. It has been renamed because it
will be delivered as an optional set of extensions to Solaris.
The layered functionality consists of a set of label-aware
services that are derived from Trusted Solaris 8.
A partial list of such services includes:
- Labeled Networking
- Label-aware Filesystem Mounting and Sharing
- Labeled Printing
- Labeled Desktops
- Java Desktop System
- Common Desktop Environment
- Label Configuration and Translation
- Label-aware System Management Tools
- Label-aware Device Allocation
Solaris Trusted Extensions extends Solaris security by
enforcing a mandatory access control policy. Sensitivity
labels are automatically applied to all sources of data
(networks, filesystems, windows) and consumers of data (user and
processes). Access to all data is restricted based on the
relationship between the label of the data (object) and the
consumer (subject).
Documentation
A whitepaper,
An Architectural Overview of Solaris Trusted Extensions, is
a good place to start.
The official
Solaris
Trusted Extensions Collection is now available on Sun's
document website. This includes a
developer
guide for those that need to know how to write label aware
services.
Getting
Started
The Trusted Extensions software is now part of OpenSolaris.
Although most of the code is always present in Solaris, to
enable this feature, you must install additional packages from
the Solaris11/ExtraValue/CoBundled/TrustedExtensions
directory. Before installing the software please review the
README file in that directory.
Trusted Extensions software was first integrated into Solaris
Express 7/06 which was based on Nevada build 42a. There were
some packaging errors in that release, so please review the
workarounds described in
Installation Issues for Build 42a. These problems were fixed
in build 43.
Laptop Configurations
Several people have asked about configuring Trusted
Extensions for laptops. The steps are described in
Laptop Instructions.
Ongoing Development
Although the current multilevel desktop is based on CDE, a
multilevel version of the Java Desktop will be putback to Nevada
in the near future. In anticipation of this desktop migration,
the current CDE Actions which are used for trusted
administration need to be replaced with GNOME equivalents. This
is an area where community involvement would be appreciated.
To kick-start this effort we have provided two shell scripts
as prototypes of administrative tools. Both scripts use
zenity(1) to provide a point and click interface. The first
script,
txzonemgr is a Labeled Zone Manager which manages labeled
zones in a structured manner and automates many of these steps.
As zones are transitioned from one state to another, only valid
choices are presented. It supports the complete zone life-cycle,
including configuration, installation, label assignment,
starting, stopping, making snapshots, uninstalling, and
deleting.
The second script,
txnetmgr is a prototype of a Labeled Network Manager. It
automates many network interface functions such creating logical
interfaces, viewing and assigning network templates, and sharing
interfaces with all zones. Both of these scripts needs to run as
root in the global zone, using CDE or Java Desktop. Give them a
try and provide feedback or enhancements.
August 2006. This presentation provides an introduction to the Solaris
Secure by Default project, including how it was implemented and how it can be
used to deploy more secure systems.
[Nov 10, 2006] Security-related presentations from Open Solaris
- Basic file privileges
cec2006-dtrace-sec.pdf by
gbrunett (Glenn M. Brunette)
- Enhancing Security Awareness and Control with DTrace Presentation
kcf-man.tar.gz by
darrenm (Darren J. Moffat)
- KCF draft man pages
losug-security-rbac.pdf by
darrenm (Darren J. Moffat)
- RBAC Presentation
nist-secauto-solsec-v1.4.pdf by
gbrunett (Glenn M. Brunette)
- There and Back Again - A Solaris Security Story
nsa-rebl-solaris.pdf by
gbrunett (Glenn M. Brunette)
- Practical Solaris 10 Security Presentation
pam_app_auth.c by
darrenm (Darren J. Moffat)
- PAM: simple application
pam_netgroup.c by
darrenm (Darren J. Moffat)
- PAM: pam netgroup/user allow/deny
pam_root_console.c by
darrenm (Darren J. Moffat)
- PAM: root console
pam_xauth_cred.c by
darrenm (Darren J. Moffat)
- PAM: X11 xauth cred delegater
privdebug.pl by
gbrunett (Glenn M. Brunette)
- Solaris 10 Privilege Debugging Tool
s10-security-dive-20061024.pdf by
gbrunett (Glenn M. Brunette)
- Solaris 10 Security - Technical Deep Dive Presentation
sfpc-v0.4.tar.gz by
gbrunett (Glenn M. Brunette)
-
Restricting file access in Solaris by dropping basic privileges by
darrenm (Darren J. Moffat) Google summit of code
Sun Java System
Identity Manager 7.0 is the first to combine user provisioning - the process
of creating, updating, and deleting user access across applications and systems
- with identity auditing, the process of analyzing applications and systems
for identity control violations, notifying corporate compliance officers of
violations, and addressing policy exceptions. By combining these capabilities,
Sun enables customers to avoid managing two separate processes, bridging the
gap between IT security and auditors, internal and external, responsible for
compliance with regulations such as Sarbanes-Oxley. The new offering supports
the Solaris 10 Operating
System (OS) - the most secure OS on the planet – and extends its market
leading security capabilities. This enables control of identities across the
operating system, applications, data and physical locations.
"Customers need to simplify and automate compliance efforts. These enhancements
to Sun's Identity Management Suite make it easier and cheaper for our customers
to manage and report compliance with regulatory mandates," said Sara Gates,
Vice President of Identity and Web Services at Sun. "We think innovations like
this have industry watchers, such as Gartner*, naming Sun as the worldwide marketshare
leader in identity management software based on total software revenue."
*Gartner Dataquest Market Share: User Provisioning, Worldwide, 2005, Nicole
S. Latimer – Livingston, 10 Aug 2006. To read Gartner Group's marketshare information,
visit: http://www.gartner.com
With the latest version of Java System Identity Manager, enterprises can
check and confirm that identities comply with audit policy before the access
is provided. Its identity auditing capabilities include automated reviews and
proactive scanning to ensure consistent policy enforcement and repeatable processes.
Automated reviews and identity scanning also enable early detection and notification
of identity policy violations, helping to reduce their impact.
« Entertainment value of ja... |
Weblog
Friday February 03, 2006
My little Solaris security cheat sheet
This returned me to sanity a few times while learning about Solaris security.
Like many others, I'm not a security expert and I often need a short version
to fit in my head.
authorization A right assigned to users that is checked
by privileged programs to determine whether users can execute restricted functionality.
More in auth_attr(4).
privilege An attribute that provides fine-grained control
over the actions of processes, as opposed to traditional unix all-or-nothing,
super-user vs user, model. More in privileges(5).
profile A logical grouping of authorizations and commands.
Profile shells, pf[ck]sh, interpret profiles to form a secure execution environment.
More in prof_attr(4), exec_attr(4).
role A type of user account, with associated authorizations
and profiles. Roles cannot be logged in directly - users assume roles using
su(1M).
| how to get |
CLI |
API |
| authorizations |
auths(1) |
getauthattr(3SECDB) |
| privileges |
ppriv(1) |
getppriv(2) |
| profiles |
profiles(1) |
getprofattr(3SECDB) |
| roles |
roles(1) |
- |
| authorizations |
privileges |
| Per-user: all user processes have same authorizations. |
Per-process: each process has separate privilege sets. |
| Static: once assigned to user, remains the same. |
Dynamic: privilege sets can change during process lifecycle.
|
| A simple token. In theory can be easily added to other OSes.
|
Integrated deep into Solaris. |
| Userland |
Userland and kernel. |
| Introduced in Solaris 8
1 |
Introduced in Solaris 10
1 |
1Was also available much
earlier in Trusted Solaris.
Solaris 9 SSH already has libwrap support compiled on. In S10 and later rpcbind
is linked with libwrap so TCP Wrapper style controls are available for all RPC-based
protocols (NIS, NFS etc)
Commentor:
Casper Dik
Added: September 7, 2004
Comment:
It is rather pointless to install TCP wrappers for Solaris 9 and later as the
version included in the OS is exactly the same as the one available on porcupine.
That version has also been reved twice because of bugs we ran into. Solaris
9 SSH already has libwrap support compiled on. In
S10 and later we also provide rpcbind linked with libwrap.
[Apr 3, 2005] Conversion of application accounts to roles is a simple, but at
the same time effective hardening technique. See
Security/RBAC/conversion_of_application_accounts_to_roles
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.
This Tech Tip explains how to use NFS to inspect
the underlying directory structure if the reported disk usage seems inconsistent.
Read about the build, configuration, and subsequent
hardening of UNIX servers that constitute a secured FTP solution.
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 behaviour 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 savely 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,
and sys.
- The basic privilege set includes all
privileges granted to unprivileged processes under the traditional security
model:
proc_fork,
proc_exec,
proc_session,
proc_info,
and file_link_any.
What a junk under the disguise of a security paper! Those
honeypot heroes put 24 unpatched boxes on the Internet and watched what will
happen. Boxes has the default (but different for each box) install (to make life
more interesting they were using a dozen of different version of Linux on 19 boxes
;-) plus, for a change, a couple of Solaris 8 and a couple of Solaris 9 boxes.
After waiting until some of them was "owned" the honeypot heroes wrote a paper.
The question arise, does any of honeypot heroes has any ideas about statistics ?
Probably not. As for Solaris, actually it is even unclear what release of each version
of Solaris they were using. This is a nice illustration of the level of deterioration
of honeypot project. I really like this idea of using unpatched
internet connected boxes; to make it really enticing they should next time also
make root account without password and see what happens :-) What a junk !!!
Increasing life expectancy
The past 12-24 months has seen a significant
downward shift in successful random attacks against Linux-based systems. Recent
data from our honeynet sensor grid reveals that the average life expectancy
to compromise for an unpatched Linux system has increased from 72 hours to 3
months. This means that a unpatched Linux system with commonly used configurations
(such as server builds of RedHat 9.0 or Suse 6.2 ) have an online mean life
expectancy of 3 months before being successfully compromised. Meanwhile, the
time to live for unpatched Win32 systems appears to continues to decrease. Such
observations have been reported by various organizations, including Symantec
[1], Internet Storm Center[2] and even USAToday[3]. The few Win32 honeypots
we have deployed support this. However, Win32 compromises appear to be based
primarily on worm activity.
T H E D A T A
Background Our data is based on 12 honeynets
deployed in eight different countries (US, India, UK, Pakistan, Greece, Portugal,
Brazil and Germany). Data was collected from the calendar year of 2004, with
most of the data collected in the past six months. Each honeynet deployed a
variety of different Linux systems accessible from anywhere on the Internet.
In addition, several Win32 based honeypots were deployed, but these were limited
in number and could not be used to identify widespread trends. A total
of 24 unpatched Unix honeypots were deployed, of which 19 were Linux,
primarily Red Hat. These unpatched honeypots were primarily default server installations
with additional services enabled (such as SSH, HTTPS, FTP, SMB, etc). In addition,
on several systems insecure or easily guessed passwords were used. In most cases,
host based firewalls had to be modified to allow inbound connections to these
services. These systems were targets of little perceived value, often on small
home or business networks. They were not registered in DNS or any search engines,
so the systems were found by primarily random or automated means. Most were
default Red Hat installations. Specifically one was RH 7.2, five RH 7.3, one
RH 8.0, eight RH 9.0, and two Fedora Core1 deployments. In addition, there were
one Suse 7.2, one Suse 6.3 Linux distributions, two Solaris Sparc 8, two Solaris
Sparc 9, and one Free-BSD 4.4 system. Of these, only four Linux honeypots (three
RH 7.3 and one RH 9.0) and three Solaris honeypots were compromised. Two of
the Linux systems were compromised by brute password guessing and not a specific
vulnerability. Keep in mind, our data sets are not based on targets of high
value, or targets that are well known. Linux systems that are of high value
(such as company webservers, CVS repositories or research networks) potentially
have a shorter life expectancy.
The science is methodical, premeditated actions
to gather and analyze evidence. The technology, in the case of computers, are
programs that suite particular roles in the gathering and analysis of evidence.
The crime scene is the computer and the network (and other network devices)
to which it is connected.
Your job, as a forensic investigator, is to do
your best to comb through the sources of evidence -- disc drives, log files,
boxes of removable media, whatever -- and do two things: make sure you preserve
as much of this data in its original form, and to try to re-construct the
events that occurred during a criminal act and produce a meaningful starting
point for police and prosecutors to do their jobs.
Every incident will be different. In one case,
you may simply assist in the seizure of a computer system, which is analyzed
by law enforcement agencies. In another case, you may need to collect logs,
file systems, and first hand reports of observed activity from dozens of systems
in your organization, wade through all of this mountain of data, and reconstruct
a timeline of events that yields a picture of a very large incident.
In addition, when you begin an incident
investigation, you have no idea what you will find, or where. You may at first
see nothing (especially if a "rootkit" is in place.) You may find a process
running with open network sockets that doesn't show up on a similar system.
You may find a partition showing 100% utilization, but adding things up with
du only comes to
50%. You may find network saturation, originating from a single host (by way
of tracing its ethernet address or packet counts on its switch port), a program
eating up 100% of the CPU, but nothing in the file system with that name.
The steps taken in each of these instances may
be entirely different, and a competent investigator will use experience and
hunches about what to look for, and how, in order to get to the bottom of what
is going on. They may not necessarily be followed 1, 2, 3. They may be way more
than is necessary. They may just be the beginning of a detailed analysis that
involves De-compilation of recovered programs and correlation of packet dumps
from multiple networks.
Instead of being a "cookbook" that you follow,
consider this a collection of techniques that a chef uses to construct a fabulous
and unique gourmet meal. Once learned, you'll discover there are plenty more
steps than just those listed here.
Its also important to remember that the steps
in preserving and collecting evidence should be done slowly, carefully, methodically,
and deliberately. The various pieces of data -- the evidence -- on the system
are what will tell the story of what occurred. The first person to respond has
the responsibility of ensuring that as little of this evidence as possible is
damaged, thereby making it useless in contributing to a meaningful reconstruction
of what occurred.
One thing is common to every investigation, and
it cannot be stressed enough. Keep a regular old notebook handy and take
careful notes of what you do during your investigation. These may be
necessary to refresh your memory months later, to tell the same long story to
a new law enforcement agent who takes over the case, or to refresh your own
memory when/if it comes time to testify in court. It will also help you accurately
calculate the cost of responding to the incident, avoiding the potentially exaggerated
estimates that have been seen in some recent computer crime cases. Crimes deserve
justice, but justice should be fair and reasonable.
As for the technology aspect, the description
of basic forensic analysis steps provided here assumes Red Hat Linux on i386
(any Intel compatible motherboard) hardware. The steps are basically the same
with other versions of Unix, but certain things specific to i386 systems (e.g.,
use of IDE controllers, limitations of the PC BIOS, etc.) will vary from other
Unix workstations. Consult system administration or security manuals specific
to your version of Unix.
It is helpful to set up a dedicated analysis
system on which to do your analysis. An example analysis system in a forensic
lab might be set up as follows:
- Fast i386 compatible motherboard with 2
IDE controllers
- At least two large (>8GB) hard drives on
the primary IDE controller (to fit the OS and tools, plus have room to copy
partitions off tape or recover deleted file space from victim drives)
- Leave second IDE cable empty. This
means you won't need to mess with jumpers on discs -- just plug them in
and they will show up as /dev/hdc
(master) or /dev/hdd
(slave)
- SCSI interface card (e.g., Adaptec 1542)
- DDS-3 or DDS-4 4mm tape drive (you need
enough capacity to handle the largest partitions you will be backing up)
- If this system is on the network, it should
be FULLY PATCHED and have NO NETWORK SERVICES RUNNING except
SSH (for file transfer and secure remote access) -- Red Hat Linux 6.2 with
Bastille-Linux hardening is a good choice
(It can be argued that no services
should be running, not even SSH, on your analysis systems. You can use
netcat to pipe
data into the system, encrypting it with DES or Blowfish stream cyphers for
security. This is fine, provided you do not need remote access to the system.)
Another handy analysis system is a new
laptop. An excellent way of taking the lab to the victim, a fast laptop with
10/100 combo ethernet card, an 18+GB hard drive, and a backpack with padded
case, allows you to easily carry everything you need to obtain file system images
(later written to tape for long-term storage), analyze them, display the results,
crack intruder's crypt()
passwords you encounter, etc.
A cross-over 10Base-T cable allows you to get
by without a hub or switch, and to still use the network to communicate with
the victim system on an isolated mini-network of two systems. (You will need
to set up static route table entries in order for this to work.)
A Linux analysis system will work for analyzing
file systems from several different operating systems that have supported file
system under Linux, e.g., Sun UFS. You simply need to mount the file system
with the proper type and options, e.g. (Sun UFS):
# mount -r -t ufs -o ufstype=sun /dev/hdd2 /mnt
Another benefit to Linux are "loopback"
devices, which allow you to mount a file containing an image copy (obtained
with dd) into the
analysis system's file system. See Appendices A and B.
Solaris 10 Account Lockout ("Three Strikes!")
The next item of my list of lesser known and/or publicized security enhancements
to the Solaris 10 OS is account lockout. Account lockout is the ability of a
system or service to administratively lock an account after that account has
suffered "n" consecutive failed authentication attempts. Very often "n" is three
hence the "three strikes" reference.
Recall from yesterday's entry on
non-login and locked accounts that there is in fact a difference. Locked
accounts are not able to access any system services whether interactively or
through the use of delayed execution mechanisms such as cron(1M). So, when an
account is locked out using this capability, only a system administrator is
able to re-enable the account, using the
passwd(1) command with the "-u" option.
Account lockout can be enabled in one of two ways. The first way will enable
account lockout globally for all users. The second method will all more granular
control of which users will or will not be subject to account lockout policy.
Note that the account lockout capability will only apply to accounts local
to the system. We will look at both in a little more detail below.
Before we look at how to enable or disable the account lockout policy, let's
first take a look at how you configure the number of consecutive, failed authentication
attempts that will serve as your line in the sand. Any number of consecutive,
failed attempts beyond the number selected will result in the account being
locked. This number is based on the RETRIES parameter in the
/etc/default/login file. By default, this parameter is set to 5.
You can certainly customize this parameter based on your local needs and policy.
By default, the
Solaris Security Toolkit will set the RETRIES parameter to 3.
The Solaris Service Manager
To better handle software faults, Sun has redesigned the way it starts and
monitors services. Instead of the the traditional /etc/init.d
startup scripts, many programs in the Solaris 10 OS have been converted to use
the service management framework (smf) of the Solaris Service Manager to start,
stop, modify, and monitor programs. The service manager is also used to identify
software interdependencies and ensure that services are started in the correct
order. Should a service, such as sendmail, suddenly die, the service manager
automatically verifies that all of the requirements for the sendmail service
are running and respawns the necessary programs. When a hardware fault occurs
and hardware is offlined, the service manager can restart any programs under
service manager control that needed to be stopped to remove the hardware from
service.
Each service under the control of the service manager is controlled by an
XML configuration file, called a manifest, that defines the name of the service,
the type, any dependencies, and other important information. These manifests
are stored in a repository and can be viewed and modified by the repository
daemon, svc.configd(1M). The repository is read by
the master restarter daemon, svc.startd(1M), which
evaluates the dependencies and initiates the services as needed. Traditional
inetd services are now part of the service manager as well. Any of the inetd
services can be enabled, disabled, or restarted via the same mechanism as any
other service manager-enabled program.
Itch scratching, and audit (Score:3, Interesting)
by RedPhoenix (124662)
on Tuesday September 14, @09:15PM (#10251879)
At the risk of the post sounding like a discussion at a head-lice convention,
everyone has their own personal itch to scratch.
Several posts thus far, have questioned the viability of establishing yet another
secure-debian project, similar to other existing projects, and have indicated
that there would be a better use of available resources if everyone would just
get along and work together (or at least, form under a single project). Fair
enough.
However, there are a whole range of reasons why diversity and natural selection
w.r.t many competing projects can provide benefits over and above a single large
project - organisational inertia, effective and efficient communication, and
development priority differences, for example.
'Organisational inertia' in particular, whereby the larger a organisation/project
gets, the slower it can react to changing requirements, is a good reason why
this effort-amalgamation can potentially be a bad thing.
Each of these projects probably has a slightly different 'itch' to 'scratch'.
There's no reason why, later on down the track, that the best elements of each
of these projects cannot be merged into something cohesive.
A good example is the current situation in Linux Auditing (as in C2/CAPP style
auditing and event logging, not code verification) and host-based audit-related
intrusion detection. Over time, we've had Snare (http://www.intersectalliance.com),
SLES (http://www.suse.com), and Riks Audit Daemon (http://www.redhat.com). Each
project had a slightly different focus, and each development team have come
up with some great solutions to the problems of auditing / event logging.
The developers of each of these projects are now communicating and collaborating,
with a view to bringing a effective audit subsystem to Linux that incorporates
the best ideas from each approach.
BTW: How about auditing in this project? Here's a starting point:
http://www.gweep.net/~malk/snare_debian.shtml
Red. (Snare Developer) |
About: pam_passwdqc is a simple password strength checking module
for PAM-aware password changing programs, such as passwd(1). In addition to
checking regular passwords, it offers support for passphrases and can provide
randomly generated passwords. All features are optional and can be (re-)configured
without rebuilding.
Changes: The module will now assume invocation by root only if both
the UID is 0 and the PAM service name is "passwd". This should fix changing
expired passwords on Solaris and HP-UX and make "enforce=users" safe. The proper
English explanations of requirements for strong passwords will now be generated
for a wider variety of possible settings.
New
Rated:
***+
CERT® Security Improvement Modules -- this is a government organization;
do not expect anything outstanding ;-)
Each CERT Security Improvement module addresses
an important but narrowly defined problem in network security. It provides
guidance to help organizations improve the security of their networked computer
systems.
Each module page links to a series of practices
and implementations. Practices describe the choices and issues that must
be addressed to solve a network security problem. Implementations describe
tasks that implement recommendations described in the practices. For more
information, read the section about module structure.
- List of modules
- List of practices
- List of implementations
-
Configuring NCSA httpd and Web-server content directories on
a Sun Solaris 2.5.1 host
-
Enabling process accounting on systems running Solaris 2.x
-
Installing, configuring, and using tcp wrapper to log unauthorized
connection attempts on systems running Solaris 2.x
-
Configuring and using syslogd to collect logging messages on
systems running Solaris 2.x
-
Using newsyslog to rotate files containing logging messages
on systems running Solaris 2.x
-
Installing, configuring, and using logdaemon to log unauthorized
login attempts on systems running Solaris 2.x
-
Installing, configuring, and using logdaemon to log unauthorized
connection attempts to rshd and rlogind on systems running Solaris
2.x
-
Understanding system log files on a Solaris 2.x operating system
-
Installing, configuring, and using swatch to analyze log messages
on systems running Solaris 2.x
-
Installing, configuring, and using logsurfer on systems running
Solaris 2.x
-
Configuring and installing lsof 4.50 on systems running Solaris
2.x
-
Configuring and installing top 3.5 on systems running Solaris
2.x
-
Installing, Configuring, and using npasswd to improve password
quality on systems running Solaris 2.x
-
Installing and configuring sps to examine processes on systems
running Solaris 2.x
-
Installing and securing Solaris 2.6 servers
-
Installing, configuring, and operating the secure shell (SSH)
on systems running Solaris 2.x
-
Characterizing files and directories with native tools on Solaris
2.X
-
Detecting changes in files and directories with native tools
on Solaris 2.X
-
Installing and operating lastcomm on systems running Solaris
2.x
-
Installing, configuring, and using spar 1.3 on systems running
Solaris 2.x
-
Installing and operating tcpdump 3.5.x on systems running Solaris
2.x
-
Installing, configuring, and using argus to monitor systems
running Solaris 2.x
-
Using newarguslog to rotate log files on systems running Solaris
2.x
-
Installing libpcap to support network packet tools on systems
sunning Solaris 2.x
-
Writing rules and understanding alerts for Snort, a network
intrusion detection system
-
Disabling network services on systems running Solaris 2.x
-
Installing noshell to support the detection of access to disabled
accounts on systems running Solaris 2.x.
-
Disabling user accounts on systems running Solaris 2.x
-
Installing OpenSSL to ensure availability of cryptographic libraries
on systems running Solaris 2.x.
-
Installing and Operating ssldump 0.9 Beta 1 on systems running
Solaris 2.x.
NT
Other technologies
Intended audience
Description of module structure
Available formats
****
TCP
tuning under solaris by
Jens-S.
Vöckler
***+
The
Solaris Security FAQ Has been updated !!! Better late than never ;-). Still
it's far from being up-to-date. It's better use it with with recent hardening
papers
COAST
Archives Computer Operations, Audit, and Security Tools -- outdated, but
still might be useful
Casper's tools
(fixmode and others): primitive but useful permissions hardening script
used in Titan and other hardening scripts. Some other Solaris tools
*** Hal Pomeranz's
Solaris course done at SANS
-- average.
SolarisGuide.com
The Unofficial Guide to the Solaris Operating Environment
Solaris Security Advisories -- this is a useful page; contains actions for
each advisory
TITAN Home Page -- Titan home
Pine Security Digest
LBNL Minumum UNIX Security Configuration -- list of patches
Linux sources that might be useful (some Linux HOW-TO are not bad and are
largely applicable to other Unix environments):
Etc
FAQs and RFCs
Practical Solaris 10 Security. (October 2006, Glenn Brunette).
This talk was given at the NSA Red Team/Blue Team Symposium and focuses on
security controls from the viewpoint of someone attacking a Solaris 10 system.
Solaris 10 Security TOI – Deep Dive. (October 2006. Glenn Brunette).
This is a 2-3 hour technical discussion of the various security controls
found in Solaris 10. This talk has been updated for Solaris 10 11/06.
Solaris Secure by Default Overview. (August 2006, Scott Rotondo). This presentation
provides an introduction to the Solaris Secure by Default project, including how
it was implemented and how it can be used to deploy more secure systems.
Solaris
10 Security Presentation. (June 2005, Darren Moffat)
GSoC-2006.pdf
by darrenm (Darren
J. Moffat)
Basic file privileges
cec2006-dtrace-sec.pdf
by gbrunett (Glenn M.
Brunette)
Enhancing Security Awareness and Control with DTrace Presentation
kcf-man.tar.gz
by darrenm (Darren J.
Moffat)
KCF draft man pages
losug-security-rbac.pdf
by darrenm (Darren J.
Moffat)
RBAC Presentation
nist-secauto-solsec-v1.4.pdf
by gbrunett (Glenn M.
Brunette)
There and Back Again - A Solaris Security Story
nsa-rebl-solaris.pdf
by gbrunett (Glenn M.
Brunette)
Practical Solaris 10 Security Presentation
pam_app_auth.c
by darrenm (Darren J.
Moffat)
PAM: simple application
pam_netgroup.c by
darrenm (Darren J.
Moffat)
PAM: pam netgroup/user allow/deny
pam_root_console.c
by darrenm (Darren J.
Moffat)
PAM: root console
pam_xauth_cred.c
by darrenm (Darren J.
Moffat)
PAM: X11 xauth cred delegater
privdebug.pl
by gbrunett (Glenn M.
Brunette)
Solaris 10 Privilege Debugging Tool
s10-security-dive-20061024.pdf
by gbrunett (Glenn M.
Brunette)
Solaris 10 Security - Technical Deep Dive Presentation
sfpc-v0.4.tar.gz
by gbrunett (Glenn M.
Brunette)
See also Solaris History
There and Back Again – A Solaris Security Story. (Glenn Brunette, September
2006).
This talk provides an overview of the security features introduced in various
Solaris and Trusted Solaris OS releases as well as provides an overview of Sun's
participation in government and industry collaboration in the area of security
recommendations for the Solaris OS.
Some insecurely-configured Web proxy servers can be exploited by a remote attacker
to make arbitrary connections to unauthorized hosts. Two common abuses of a misconfigured
proxy server are to use it to bypass firewall restrictions and to send spam email.
A server is used to bypass a firewall by connecting to the proxy from outside the
firewall and then opening a connection to a host inside the firewall. A server is
used to send spam by connecting to the proxy and then having it connect to a SMTP
server. It has been reported that many Web proxy servers are distributed with insecure
default configurations.
Users should carefully configure Web proxy servers to prevent unauthorized connections.
It has been reported that
http://www.monkeys.com/security/proxies/
contains secure configuration guidelines for many Web proxy servers. We can not
verify the accuracy of this information, and if there are any questions users should
contact their vendors.
Solaris Fingerprint Database Companion & Sidekick
Sun Managers
Mailing List Archive
Yassp
Development Mailing List Archive
See also
A stack smashing attack is most typical for C programs. Many C programs have
buffer overflow vulnerabilities, both because the C language lacks array bounds
checking, and because the culture of C programmers encourages a performance oriented
style that avoids error checking... Several papers contain "cook book style" descriptions
of stack smashing attacks exploitation. If the attacker has access to a non-privileged
account than unless the server has a hardware or software protection the only remaining
work for an wanna-be attacker is to find a suitable non-patched utility and download
or write an exploit. Hundreds of such exploits have been reported in recent years.