Sun Security Blog
|
31 May 2007
Sun Alert 102833 Security Vulnerability in Sun Java System Web Server May Allow Unauthorized Access to Host Data With Certain URLs
Product: Sun Java System Web Server 6.0 Service Pack 10, Sun Java System Web Server 6.1, Sun Java System Web Server 6.0 Service Pack 8 A security vulnerability in the Sun Java System Web Server may allow a local or remote user to gain unauthorized access to data stored on the host running the Sun Java System Web Server under certain conditions. Avoidance: Patch, Upgrade State: Resolved First released: 15-Mar-2007
Permalink
|
Comments [0]
31 May 2007
Sun Alert 102822 Sun Java System Web Server May Allow A User with Revoked Client Certificate to Access Server Instance Under Certain Conditions
Product: Sun Java System Web Server 6.1 A security vulnerability in the Sun Java System Web Server may allow a local or remote user to gain authorized access to certain web server instances. When a secure web server instance is set up as a non-root instance through the admin server and that admin server is configured to run as root, this vulnerability may allow a user with a revoked client certificate to access the web server instance under certain conditions even if a valid Certificate Revocation List (CRL) file is installed for the instance. Avoidance: Patch, Upgrade, Workaround State: Resolved First released: 14-Mar-2007
Permalink
|
Comments [0]
31 May 2007
Sun Alert 102803 Multiple Integer Overflow Vulnerabilities in the X Font Server (xfs(1)) and the X Render and DBE Extensions
Product: Solaris 9 Operating System, Solaris 10 Operating System, Solaris 8 Operating System Multiple security vulnerabilities in the X Font Server (xfs(1)) and the X Render and DBE extensions, which are part of the X11 servers Xsun(1) and Xorg(1), may allow a local or remote unprivileged user to elevate their privileges to root and execute arbitrary code resulting in memory corruption or a Denial of Service (DoS) condition. These issues are described in the following documents: CVE-2003-0730 at: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2003-0730 CVE-2006-6101 at: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-6101 CVE-2006-6102 at: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-6102 CVE-2006-6103 at: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-6103 iDefense Multiple Vendor X Server Render Extension ProcRenderAddGlyphs Memory Corruption Vulnerability at: http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=463 iDefense Multiple Vendor X Server DBE Extension ProcDbeGetVisualInfo Memory Corruption Vulnerability at: http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=464 iDefense Multiple Vendor X Server DBE Extension ProcDbeSwapBuffers Memory Corruption Vulnerability at: http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=465 Avoidance: Patch, Workaround State: Resolved First released: 13-Feb-2007
Permalink
|
Comments [0]
30 May 2007
Sun Alert 102932 Security Vulnerability in Adobe Flash Player May Allow Unauthorized Header Injection into HTTP Requests
Product: Solaris 10 Operating System Security vulnerabilities in the Adobe Flash Player product shipped with Solaris 10 may allow remote users who create applications that are viewed with the Flash Player to generate unauthorized HTTP requests from the affected host by inserting arbitrary HTTP headers. This could assist in activities such as HTTP Request Splitting attacks. These issues are described in the following documents:
Avoidance: Patch State: Resolved First released: 30-May-2007
Permalink
|
Comments [0]
Product: Sun Java System Messaging Server 6.0, Sun Java System Messaging Server 6.3 A Cross Site Scripting (CSS or XSS) vulnerability in the Sun Java System Messaging Server may allow an unprivileged remote user the ability to execute arbitrary JavaScript commands in a client user's Internet Explorer web browser. This may allow the remote user to steal cookie information, hijack sessions, or cause a loss of data privacy. Additional information about cross-site scripting and web script vulnerabilities can be found at the following URLs: Avoidance: Patch State: Resolved First released: 23-May-2007
Permalink
|
Comments [1]
30 May 2007
Sun Alert 102725 A Malformed Packet Received by snmpd(1) via TCP may Cause a Denial of Service (DoS)
Product: Solaris 10 Operating System A local or remote unprivileged user may be able to disable the snmpd(1M) daemon causing a Denial of Service (DoS) of the SNMP service. This issue is also referenced at the following URL: Avoidance: Patch, Workaround State: Resolved First released: 22-Nov-2006
Permalink
|
Comments [0]
29 May 2007
Sun Alert 102921 A Security Vulnerability in the Solaris 10 inetd(1M) Service May Lead to a Denial of Service (DoS) Condition
Product: Solaris 10 Operating System A security vulnerability in the inetd(1M) service may allow a local unprivileged user the ability to shut down the inetd daemon process, causing a Denial of Service (DoS) to all internet services managed by the inetd(1M) process on the system. Avoidance: Patch State: Resolved First released: 29-May-2007
Permalink
|
Comments [0]
29 May 2007
Sun Alert 102745 A Security Vulnerability in the in.iked(1M) Service May Lead To a Denial of Service (DoS)
Product: Solaris 9 Operating System A security vulnerability in the in.iked(1M) service for Solaris 9 may allow an unprivileged local or remote user to crash the in.iked(1M) daemon, causing a Denial of Service (DoS) to IPsec protected network traffic. This is due to a logical pointer-handling error in the "libike" library. Avoidance: Patch State: Resolved First released: 29-May-2007
Permalink
|
Comments [0]
29 May 2007
Sun Alert 102894 Security Vulnerability in PostgreSQL SECURITY DEFINER Functions May Allow Escalation of Privileges
Product: Solaris 10 Operating System SECURITY DEFINER functions are special PostgreSQL functions which perform certain designated activities with special privileges. A security vulnerability in the PostgreSQL database server (see postgres(1)) may allow a local or remote PostgreSQL user who has authenticated with the PostgreSQL server to inject crafted objects (for example, functions, tables, or operators) and affect the execution of existing SECURITY DEFINER functions. This would allow that user to control the database and execute code with the elevated privileges of the owner of the SECURITY DEFINER function, or to shadow any table with their own modified version and inject it for processing by a SECURITY DEFINER function. This issue is described in the following documents: CVE-2007-2138 at http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-2138 PostgreSQL Security Information at http://www.postgresql.org/about/news.791 Avoidance: Patch State: Resolved First released: 26-Apr-2007
Permalink
|
Comments [1]
24 May 2007
Sun Alert 102911 Security Vulnerability in NFS Client Module May Lead to a Denial of Service Condition
Product: Solaris 9 Operating System, Solaris 10 Operating System, Solaris 8 Operating System A security vulnerability in the NFS client module related to the handling of acl(2) packets may allow a local or remote unprivileged user to cause an NFS server to panic, leading to a Denial of Service (DoS) condition. Sun acknowledges with thanks, Andrzej Dereszowski (deresz@gmail.com), for bringing this issue to our attention. Avoidance: Patch State: Resolved First released: 24-May-2007
Permalink
|
Comments [0]
Following the integration of the Secure By Default (SBD) work into Nevada build 42 and, subsequently, Solaris Express and Solaris 10 11/06, some colleagues have been asking me whether the Solaris Security Toolkit (SST, aka JASS) still has a useful part to play. My answer is "definitely", and here's why. SBD acts to either disable services completely, or to force them to only bind listeners to a loopback (127.0.0.1) interface. SST is equally capable when it comes to disabling services, however the "bind only to loopback" capability is currently beyond its capability. By contrast, there's a whole bunch of things which SST can do that SBD doesn't, today. These include:
There's a few design reasons why SBD doesn't do all the things that SST does - such as enabling packet sequence number randomisation by setting TCP_STRONG_ISS to 2 in /etc/default/inetinit and setting nscd timeouts to 0. As SST isn't run on a system by default, whereas SBD is the default configuration on Nevada and Solaris Express (although not on Solaris 10, for reasons of backward compatibility), SST can "get away with" doing some things that SBD can't. So, how can you best go about using the two capabilities together? First, ensure that once you've installed SST, you also patch it with 122608-03 or later, so that it understands SBD. Next, depending on what services you intend to present from your system, you can set SBD to netservices limited; about the only situation I can think of when you wouldn't necessarily want to use SBD everywhere is when you want to present something which has a lot of dependencies on Solaris services, such as Sun Ray services. If you're building a SNAP server on Trusted Extensions, for instance, while it's sensible to use netservices limited on the non-global zones handling each label, it's easier to leave the global zone (aka Trusted Path) at netservices open, and lock it down with SST. For a service with less complex dependencies, it's sensible to use netservices limited, open up whatever dependent services are required using SMF, and then apply SST. In the event that the system needs to be reconfigured, make sure that SST and SBD operations are "nested" correctly; as SST is the last thing applied it needs to be the first thing undone with jass-execute -u, and then SMF can be used to change the SBD profile before re-hardening with a suitably-modified SST .driver.
This is a posting in the
Security
Community 'Reference' Category ; the function of postings that are
placed in this category is to aggregate links to other, useful
postings in a single meta-posting which can be referenced via a
link in the Security Community Blog sidebar, and which will be
re-posted on the blog each time it is refreshed by a member of the
security community.
This posting is a list of monthly postings to the security community blog; this is posted here as a move towards a simpler method of navigating past blog postings without necessarily resorting to the sidebar calendar. Dates in the future are included as a convenience to the administrators.
2007jan 2007, feb 2007, mar 2007, apr 2007, may 2007, jun 2007, jul 2007, aug 2007, sep 2007, oct 2007, nov 2007, dec 2007. 2006jan 2006, feb 2006, mar 2006, apr 2006, may 2006, jun 2006, jul 2006, aug 2006, sep 2006, oct 2006, nov 2006, dec 2006. 2005jan 2005, feb 2005, mar 2005, apr 2005, may 2005, jun 2005, jul 2005, aug 2005, sep 2005, oct 2005, nov 2005, dec 2005.
This is a posting in the
Security
Community 'Reference' Category ; the function of postings that are
placed in this category is to aggregate links to other, useful
postings in a single meta-posting which can be referenced via a
link in the Security Community Blog sidebar, and which will be
re-posted on the blog each time it is refreshed by a member of the
security community.
This posting is a list of security video blogs which have been posted to the community.
tags: rbac security slotd solaris training videos Permalink | Comments [2]
This is a posting in the
Security
Community 'Reference' Category ; the function of postings that are
placed in this category is to aggregate links to other, useful
postings in a single meta-posting which can be referenced via a
link in the Security Community Blog sidebar, and which will be
re-posted on the blog each time it is refreshed by a member of the
security community.
This posting is a list of Sun Security Blueprints. As-per the description at the BluePrints Home Page
Sun BluePrints OnLine articles are maintained in this archive for the benefit and historical reference of our readers. Details of the recommendations set forth in these articles may not reflect Sun's latest hardware and software releases. Caution, careful analysis and common sense should be exercised when applying these Sun BluePrints articles to newer products and software releases. Nonetheless, the provision of the entire, historical archive of BluePrints makes a useful corpus of security reference material, certain themes of IT security being invariant through time. See the security blueprint full listing for the master copy of this list, with article synopses.
2008
2007
2006
2005
2004
2003
2002
2001
2000
1999
tags: blueprints security Permalink | Comments [0]If the video is the 5 cent tour of Solaris RBAC then this is probably the book for the "self-guided walk through RBAC". This is a transcript of an early draft version of the video (one which I canned as looking at 20 minutes of someone typing is just not that interesting...) -Bart The Self-Guided Walk Through Solaris RBAC To make use of Solaris' Role Based Access Control you can use any "out of the box" version since Solaris 8, although to make use of fine-grained privileges you'd need either Trusted Solaris 8, Solaris 10, or more recent, such as Solaris Express. The only preparation (optional, really) is to enable Solaris Auditing - which I recommend doing anyway, though it's important to note that for most systems logging only a limited set of events will do. So: on a newly installed system the only account that can be used is the root account, so log in as root. The first thing to do is to add (at least one) user account, so that someone other than root can log in and use the system. Here we create two accounts, one of which will be permitted to assume the root role: # useradd -u 1001 -g staff -d /home/bart -s /bin/ksh -c "Bart who is also the admin" -m bart # useradd -u 1002 -g staff -d /home/joe -s /bin/ksh -c "Joe who is just a user" -m joe # passwd bart # passwd joe Now there are two user accounts on the system, as well as the root account. The problem with that root account is that anybody who has the password can walk up to this system and log in as root -- and, even with full auditing enabled, there'd only be a list of things done by root, with no way of knowing who actually ran those commands... With RBAC there's an easy way to fix this: make root a role -- because fundamentally that's what roles are: from the system's point of view they're just regular accounts (with the expected entries in /etc/passwd and /etc/shadow), that cannot directly log in. The only difference between a role and a user account is one little item in /etc/user_attr: it says "type=role" for a role, and "type=normal" for a user - which is the default, so if there's no entry the account is considered a regular account. The thing that differentiates roles from users in practice is a little PAM module pam_roles that checks wether an account is a role, and if so it denies direct log-in, and denies su by unauthorised users. Making root into a role can be done with one command: # usermod -K type=role rootthough doing just this and then logging out would make it impossible to become root (though when booting the system in single-user the restriction that the account can't be used directly is not enforced. If nobody should ever be permitted to become root without an audit trail it's probably best to set an OBP or BIOS password, and have that be stored somewhere where the admins need to sign a log to retrieve it...), so (at least) one of the users should be permitted to assume the root role. # usermod -R root bart When now someone tries to log-in to the system as root the system won't let them, even if they have the right password -- they'll be shown an error message indicating that "Roles can only be assumed by authorized users". If our other user (Joe) tries to su to root he'll get the same error message; only Bart would be permitted (with root's password) to become root. This is one of the obvious differences between sudo and RBAC: in sudo users generally authenticate using their own password, not the root account's password. One of the big advantages of using roles is that an auditor can later determine who assumed which role, and - if auditing is configured to log this - what they did as that role. This is pretty much the most basic use of roles that one can have, and in many circumstances be sufficient: only authorised users can become root, and there is a log of who did what on the system. Now: you can also create other accounts as roles, but that in itself would not be very interesting: they'd be normal accounts, that can't do anything special -- so besides giving people controlled access to a set of files (those owned by the role) there'd be not much else those roles can be used for. There may be some people that need to perform some tasks without being given complete root access, or they may have root access when needed but it would be convenient if some administrative commands could be used without the extra step of assuming a role. In Solaris RBAC both of these are possible by assigning "rights profiles" (sometimes also called "rights", sometimes also called "profiles") to those accounts: assigning it to a user account gives that user the extra magic abilities that come with the profile, assigning a profile to a role provides those powers to users who are authorized to assume the role. Most of the profile configuration files live in /etc/security, with the exception of /etc/user_attr - which we saw earlier. A rights profile, described in prof_attr, is a container that can contain other rights profiles (so we can create hierarchies of profiles), plus possibly some authorizations, and maybe a list of commands and their attributes. Let's start with those commands and their attributes: there is a list of commands in /etc/security/exec_attr and for each entry we can specify a number of things :
(A brief refresher on privileges: Traditionally in Unix when a process tries to do something like accessing devices, configuring the system, or opening a file for which it doesn't have permission, the kernel would check the process' credentials and if the process was run with userid 0 (the root account) then the system call in question would succeed. With privileges the kernel now doesn't merely check the userid but instead checks a new process attribute, which is the privilege set.) With RBAC we can now specify individual commands and the privileges they need, so we can let a user execute one or two commands with magical extra privileges, whilst all other commands run just the way they always have. The exec_attr configuration file shows which profile an entry applies to, plus the command in question and the security attributes of the command (effective UID/GID, real UID/GID, and a list of privileges). If you don't specify privileges or UIDs/GIDs then those will be inherited from the parent process, just like any other command that a user executes. In short a user can be allowed to run a couple commands with extra privileges -- perhaps, to change some of the graphics settings, to renew a DHCP lease, or to reset a print queue -- to help things run smoothly. If there's a need to store files for a specific task, then assigning the rights profiles to a role is probably more appropriate, as the role's home directory can be used as a task-specific storage area. A role would usually be given a function-specific list of commands to execute, for instance to support an operator, DBA, or auditor. If it is mandated that a user enter a password before utilising magic powers then the only way of doing so is to assign the magic powers to a role, requiring the users to assume that role for the function specified. If secondary authentication is not needed and if there's no need for shared storage (i.e. the role's home directory) then I recommend you just assign the rights profile to the user. There is one constraint when assigning commands to users or roles: in order to get those commands to run with different UIDs or GIDs or with extra privileges they will need to be executed from a "profile shell" -- /usr/bin/pfsh, /usr/bin/pfcsh, /usr/bin/pfksh -- or via the sudo-like pfexec command. These are the tools which know about rights profiles, and they ensure that the correct attributes are set when the command is executed. A role gets a profile shell by default, but users who have special rights profiles will need to be given a different shell, or they must run the commands via pfexec (To reiterate for people familiar with sudo: pfexec is the closest equivalent on Solaris, but note that it doesn't do secondary authentication and doesn't currently limit command line options to any of the commands). As an example we'll allow Bart to review the audit logs on the system, and will grant him the appropriate rights profile: (As root or other administrative account:) # usermod -P "Audit Review" bart ...and now Bart can run things like "/usr/sbin/praudit" (either by invoking the command via pfexec, or by running it from pfsh, pfcsh, or pfksh). NB all users are given the "Basic Solaris User" rights profile by default as specified in /etc/security/policy.conf; it allows all users to run all commands they have access to -- but without any special attributes. Taking this away means that an account which uses a profile shell will be allowed to only run those commands listed in the output of profiles(1) and no others. Besides specifying commands and their attributes in a rights profile we can also list authorizations. Authorizations are defined in /etc/security/auth_attr in a hierarchical manner. When a user is assigned a root or subroot of that hierarchy they get all authorizations which exist under it. Authorizations are attributes of users -- they're not "process attributes" like privileges, instead they are something that the kernel doesn't know about. They are used by individual applications to determine wether the application should perform some action on behalf of a user. Even though privileges permit finer grained control over what applications are permitted to do, you can't use them to control modification of records within a file. Using application to mediate access to those records and authorizations in that application you can get the level of control that you desire. One of the applications that makes extensive use of authorizations in this manner is the Solaris Management Console: it may permit one account (e.g. the system administrator) to create users, while not permitting that account to set the user's password or audit mask (which might be done by someone else, such as the security manager). The Solaris Service Management Facility is one of the more recent users of authorizations which permits allowing a user or role to restart a service without permitting that user or role to reconfigure the service - and without the need to allow that user or role direct access to the process or its configuration files. Authorizations are attributes of a user, so they can be assigned directly to a user (in which case they're listed in etc/user_attr), but they can also be assigned indirectly as part of a rights profile - in which case they're listed in /etc/security/prof_attr. And, really, that's pretty much all there is to Solaris RBAC. In summary, there are users and there are roles -- which are just like users, except that they tend to be used for specific tasks (system administration, operations and so on), and can only be "assumed" via su rather than accessed directly. Both types of accounts are defined in /etc/passwd & /etc/shadow, and their account type is specified in /etc/user_attr. In the latter file we grant users and roles authorizations, so that applications and tools which are authorization-aware (such as Solaris Management Console and the Service Management Facility) will perform their magic on behalf of authorized staff. In user_attr we also assign "rights profiles" which may add extra authorizations and which will permit those users and roles to execute particular commands with extra magic privileges or different UIDs or GIDs, if they choose to do so via pfexec or a use of a profile login shell. tags: introduction rbac solaris Permalink | Comments [1] |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||