<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-25493779320233697</id><updated>2012-01-19T08:26:52.850-05:00</updated><category term='NSA'/><category term='FERC'/><category term='Policies'/><category term='DDoS/DoS'/><category term='DISA UNIX STIG'/><category term='Access Controls'/><category term='OVAL'/><category term='Auditing'/><category term='Kernel'/><category term='NISPOM'/><category term='Red Hat 5 STIG'/><category term='openSUSE and Novell SUSE'/><category term='SELinux'/><category term='PCI DSS'/><category term='System z'/><category term='LISA 2010'/><category term='CIS'/><category term='CAG'/><category term='CPE'/><category term='Firefox'/><category term='JAFAN'/><category term='USENIX'/><category term='python'/><category term='Clusters'/><category term='NERC'/><category term='Software Vulnerabilities'/><category term='SCAP'/><category term='Virtualization'/><category term='Intrusion Detection Systems'/><category term='FIPS 140-2'/><category term='DCID'/><category term='CVE'/><title type='text'>Security Blanket Technical Blog</title><subtitle type='html'>Automated, Consistent Linux &amp;amp; Solaris Lock Down</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>63</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-6693901579866648919</id><published>2011-09-23T12:58:00.000-04:00</published><updated>2011-09-23T13:53:52.522-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Access Controls'/><category scheme='http://www.blogger.com/atom/ns#' term='SELinux'/><title type='text'>MAC versus DAC in SELinux</title><content type='html'>Some system administrators do not understand Mandatory Access Control (MAC) and how it interacts with Discretionary Access Control (DAC) in Linux®. In a &lt;a href="http://tcs-security-blanket.blogspot.com/2011/09/security-blanket-supports-selinux.html"&gt;previous post&lt;/a&gt;, I stated Security-Enhanced Linux (SELinux) employs MAC rules to facilitate fine-grained security. I also discussed some of the collection of rules which form standard SELinux policies such as &lt;i&gt;Targeted&lt;/i&gt; and &lt;i&gt;Strict&lt;/i&gt;. &lt;br /&gt;
&lt;br /&gt;
I received some emails from readers which said they weren't clear on how MAC and DAC work together in the operating system. Since I am a hands-on guy, I love to see real-world examples, so that's what I am going to show you. &lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
I have configured a standard CentOS 5.6 Linux system with default Apache web server packages installed. The sestatus(8) command reports the operating system is enforcing the default SELinux &lt;i&gt;Targeted&lt;/i&gt; policy.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;pre&gt;# &lt;b style="color: yellow;"&gt;/usr/sbin/sestatus&lt;/b&gt;
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 21
Policy from config file:        targeted
&lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;
Using the -Z argument to the ps(1) command shows the Apache daemon (httpd) is executing in the (&lt;i&gt;httpd_t&lt;/i&gt;) domain:  &lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;pre style="font-size: 70%;"&gt;# &lt;b&gt;&lt;span class="Apple-style-span" style="color: yellow;"&gt;/bin/ps -aefZ |/usr/bin/grep httpd&lt;/span&gt;&lt;/b&gt;
root:system_r:httpd_t           root     24855     1  0 10:23 ?        00:00:00 /usr/sbin/httpd
root:system_r:httpd_t           apache   24856 24855  0 10:23 ?        00:00:00 /usr/sbin/httpd
root:system_r:httpd_t           apache   24857 24855  0 10:23 ?        00:00:00 /usr/sbin/httpd
root:system_r:httpd_t           apache   24858 24855  0 10:23 ?        00:00:00 /usr/sbin/httpd
root:system_r:httpd_t           apache   24859 24855  0 10:23 ?        00:00:00 /usr/sbin/httpd
root:system_r:httpd_t           apache   24860 24855  0 10:23 ?        00:00:00 /usr/sbin/httpd
root:system_r:httpd_t           apache   24862 24855  0 10:23 ?        00:00:00 /usr/sbin/httpd
root:system_r:httpd_t           apache   24863 24855  0 10:23 ?        00:00:00 /usr/sbin/httpd
root:system_r:httpd_t           apache   24864 24855  0 10:23 ?        00:00:00 /usr/sbin/httpd
&lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;
I will use the curl(1) command to retrieve a URL from the Apache web server — this is equivalent to a web browser accessing the URL. By default, the provided Apache packages establishes the document root as &lt;tt&gt;/var/www/html&lt;/tt&gt;. So, we will create a &lt;tt&gt;test.html&lt;/tt&gt; file in the document root with a permissive DAC and a MAC which the &lt;i&gt;httpd_t&lt;/i&gt; domain is not allowed to access.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;pre&gt;# &lt;b&gt;&lt;span class="Apple-style-span" style="color: yellow;"&gt;cd /var/www/html&lt;/span&gt;&lt;/b&gt;
# &lt;b style="color: yellow;"&gt;/bin/touch test.html&lt;/b&gt;
# &lt;b&gt;&lt;span class="Apple-style-span" style="color: yellow;"&gt;/usr/bin/chcon system_u:object_r:shadow_t test.html&lt;/span&gt;&lt;/b&gt; 
# &lt;b&gt;&lt;span class="Apple-style-span" style="color: yellow;"&gt;/bin/ls -lZ test.html&lt;/span&gt;&lt;/b&gt;
-rw-r--r--  root root system_u:object_r:shadow_t         test.html
&lt;/pre&gt;
&lt;br /&gt;
I have temporarily set the SELinux context of this file to be of &lt;i&gt;shadow_t&lt;/i&gt; type using the chcon(1) command. This restrictive type is set on the /etc/shadow system file – a web server would have no reason to access a file of this type. Using the -Z option to the ls(1) command you can see the type is now &lt;i&gt;shadow_t&lt;/i&gt; in the SELinux context. &lt;br /&gt;
&lt;br /&gt;
Note the DAC mode (-rw-r--r--) of the file permits the owner to read and write (rw), the group to read (r), and everybody else [other] is able to read (r) the file. However, when I try to retrieve the file the MAC rule in the SELinux policy &lt;span style="color: orange;"&gt;FORBIDS&lt;/span&gt; the process running in the &lt;i&gt;httpd_t&lt;/i&gt; domain from accessing files of type &lt;i&gt;shadow_t&lt;/i&gt; — &lt;span style="color: orange;"&gt;REGARDLESS&lt;/span&gt; of the permissive DAC mode:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;pre&gt;# &lt;b&gt;&lt;span class="Apple-style-span" style="color: yellow;"&gt;/usr/bin/curl -I http://localhost/test.html&lt;/span&gt;&lt;/b&gt;
&lt;span style="color: red;"&gt;HTTP/1.1 403 Forbidden&lt;/span&gt;
Date: Fri, 23 Sep 2011 14:48:51 GMT
Server: Apache/2.2.3 (CentOS)
Connection: close
Content-Type: text/html; charset=iso-8859-1
&lt;/pre&gt;
&lt;br /&gt;
The SELinux policy also defines default SELinux contexts for directories and file patterns. When the system is rebooted or the restorecon(8) utility is called, file system objects are labeled according to the policy. I will use the restorecon utility to restore (set) the SELinux context on our test file appropriately:&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;pre&gt;# &lt;b&gt;&lt;span class="Apple-style-span" style="color: yellow;"&gt;/sbin/restorecon test.html&lt;/span&gt;&lt;/b&gt;
# &lt;b&gt;&lt;span class="Apple-style-span" style="color: yellow;"&gt;/bin/ls -Z test.html&lt;/span&gt;&lt;/b&gt;
-rw-r--r--  root root system_u:object_r:httpd_sys_content_t test.html&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
In order for the Apache web server running in the&lt;i&gt; httpd_t&lt;/i&gt; domain to read files in its document root (/var/www/html), the files should be of &lt;i&gt;http_sys_content_t&lt;/i&gt; type. &lt;br /&gt;
&lt;br /&gt;
Now, I am able to access the file:&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;pre&gt;# &lt;b&gt;&lt;span class="Apple-style-span" style="color: yellow;"&gt;/usr/bin/curl -I http://localhost/test.html&lt;/span&gt;&lt;/b&gt;
&lt;span style="color: green;"&gt;HTTP/1.1 200 OK&lt;/span&gt;
Date: Fri, 23 Sep 2011 14:50:16 GMT
Server: Apache/2.2.3 (CentOS)
Last-Modified: Fri, 23 Sep 2011 14:40:32 GMT
ETag: "15aac8-6-ca935800"
Accept-Ranges: bytes
Content-Length: 6
Connection: close
Content-Type: text/html; charset=UTF-8
&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
This simple real-world example demonstrates how MAC rules supersede DAC settings. I encourage you to read the system documentation and experiment on lab systems. Too often system administrators become frustrated by “&lt;a href="http://www.nsa.gov/research/_files/selinux/papers/slinux/node30.shtml"&gt;AVC Denial&lt;/a&gt;” messages and resort to disabling this enhanced security. 
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-6693901579866648919?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/6693901579866648919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/09/mac-versus-dac-in-selinux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/6693901579866648919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/6693901579866648919'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/09/mac-versus-dac-in-selinux.html' title='MAC versus DAC in SELinux'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-2238524003402945558</id><published>2011-09-21T12:54:00.002-04:00</published><updated>2011-09-21T14:31:10.581-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Policies'/><category scheme='http://www.blogger.com/atom/ns#' term='NSA'/><category scheme='http://www.blogger.com/atom/ns#' term='SELinux'/><title type='text'>Security Blanket Supports SELinux</title><content type='html'>&lt;div style="margin-bottom: 0in;"&gt;
&lt;a href="http://www.nsa.gov/research/selinux/index.shtml"&gt;Security-Enhanced Linux (SELinux)&lt;/a&gt; is an enhancement to the standard Linux®&amp;nbsp;kernel that provides fine-grained security by  employing &lt;a href="http://en.wikipedia.org/wiki/Mandatory_access_control"&gt;Mandatory Access Control (MAC)&lt;/a&gt; rules. &lt;a href="http://www.trustedcs.com/SecurityBlanket/SecurityBlanket.html"&gt;Security Blanket®&amp;nbsp;v4.0.7&lt;/a&gt; now supports Red Hat® Enterprise Linux 4, 5, and 6 enforcing the &lt;a href="http://www.redhat.com/magazine/006apr05/features/selinux/"&gt;default &lt;i&gt;Targeted&lt;/i&gt; SELinux policy&lt;/a&gt; – as well as  Fedora&lt;span style="font-family: 'Times New Roman', serif;"&gt;™&lt;/span&gt; 10 through 13.&lt;/div&gt;
&lt;div style="margin-bottom: 0in;"&gt;
&lt;br /&gt;&lt;/div&gt;
The aim of the &lt;i&gt;Targeted&lt;/i&gt; policy is to provide additional security to some of the more commonly used daemons such as httpd, dhcpd, mailman, named, portmap, nscd, ntpd, portmap, mysqld, postgres, squid, syslogd, winbind, and ypbind by employing MAC rules.&lt;br /&gt;
&lt;div style="margin-bottom: 0in;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 0in;"&gt;
&amp;nbsp;For example, the Apache Web Server (httpd) daemon executes in its own domain &lt;i&gt;httpd_t&lt;/i&gt;. Other daemons on the system which do not have policy written specifically for them run in the domain &lt;i&gt;unconfined_t&lt;/i&gt;.&lt;/div&gt;
&lt;div style="margin-bottom: 0in;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 0in;"&gt;
Daemons and system processes running in the &lt;i&gt;unconfined_t&lt;/i&gt; domain only use the standard Linux &lt;a href="http://en.wikipedia.org/wiki/Discretionary_access_control"&gt;Discretionary Access Control (DAC)&lt;/a&gt; method of access control. In SELinux, access is granted to processes on a per-domain basis; each domain has a set of operations it may perform on each type of file, directory, or other resource.&lt;/div&gt;
&lt;div style="margin-bottom: 0in;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 0in;"&gt;
For security reasons, the Security Blanket team preferred not to execute in the &lt;i&gt;unconfined_t&lt;/i&gt; domain. Therefore, a specific policy module was written to augment the &lt;i&gt;Targeted&lt;/i&gt; policy, which separated Security Blanket's Console, Dispatcher, and Core Engine components into their own domains. For more details and exceptions, please see the &lt;a href="http://www.trustedcs.com/documents/SecurityBlanket_Administration_Guide.pdf"&gt;Security Blanket Administration Guide&lt;/a&gt;.&lt;/div&gt;
&lt;div style="margin-bottom: 0in;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 0in;"&gt;
Processes and files are labeled with an &lt;a href="http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Security-Enhanced_Linux/chap-Security-Enhanced_Linux-SELinux_Contexts.html"&gt;SELinux Context&lt;/a&gt; that contains additional information, such as an SELinux user, role, type, and, optionally, a security level. When running SELinux, all of this information is used to make access control decisions. In Red Hat Enterprise Linux, SELinux provides a combination of&lt;a href="http://en.wikipedia.org/wiki/Role-based_access_control"&gt; Role-Based Access Control (RBAC)&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Type_enforcement"&gt;Type Enforcement® (TE)&lt;/a&gt;, and, optionally, &lt;a href="http://en.wikipedia.org/wiki/Multi-Level_Security"&gt;Multi-Level Security (MLS)&lt;/a&gt;.&lt;/div&gt;
&lt;div style="margin-bottom: 0in;"&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-6uxrdBAFoeY/TnoXdjeNqZI/AAAAAAAAAdk/aF3d-d9hjbk/s1600/SELinuxContext.png" imageanchor="1"&gt;&lt;img border="0" height="292" src="http://3.bp.blogspot.com/-6uxrdBAFoeY/TnoXdjeNqZI/AAAAAAAAAdk/aF3d-d9hjbk/s640/SELinuxContext.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The above image is the&amp;nbsp;output from the ls(1) command using the -Z argument , which displays the&amp;nbsp;SELinux Context assigned to a file object.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 0in;"&gt;
&lt;/div&gt;
&lt;div style="margin-bottom: 0in;"&gt;
In previous releases of Security Blanket, SELinux was not supported because the &lt;a href="http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Security-Enhanced_Linux/chap-Security-Enhanced_Linux-SELinux_Contexts.html"&gt;SELinux Context&lt;/a&gt; on file system objects could be destroyed and could only be restored by relabeling the object. Each file system object is referenced by its &lt;a href="http://en.wikipedia.org/wiki/Inode"&gt;information node (inode)&lt;/a&gt; and the SELinux context is stored as an extended attribute.  &lt;/div&gt;
&lt;div style="margin-bottom: 0in;"&gt;
&lt;br /&gt;&lt;/div&gt;
Some Security Blanket modules created new files or worked with temporary copies of configuration files — then subsequently copied it to their final location. In these situations, a new information node was assigned. Several modifications to the Security Blanket Core Engine and associated modules were made to restore the SELinux context on such file system objects.&lt;br /&gt;
&lt;div style="margin-bottom: 0in;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 0in;"&gt;
In future releases of Security Blanket, we may provide support for the &lt;i&gt;Strict&lt;/i&gt; policy with MLS. The goal of &lt;a href="http://fedoraproject.org/wiki/SELinux/MLS"&gt;MLS policy&lt;/a&gt; is to allow a Linux operating system to get &lt;a href="http://en.wikipedia.org/wiki/EAL4"&gt;EAL4+&lt;/a&gt;/&lt;a href="http://en.wikipedia.org/wiki/Labeled_Security_Protection_Profile"&gt;LSPP&lt;/a&gt; certification. In developing this policy, the fourth field of the security context, the security or sensitivity &lt;i&gt;level&lt;/i&gt; has been turned on — this facilitates the handling of labeled files.&lt;/div&gt;
&lt;div style="margin-bottom: 0in;"&gt;
&lt;br /&gt;&lt;/div&gt;
Furthermore, the &lt;i&gt;MLS policy&lt;/i&gt; contains rules that not only govern what security types are able to do, but also what they can do when running at a particular security level. In MLS there are two components of the Security Level, the sensitivity level, which can go from s0–s15, and the capabilities, which can go from c0–c255. The &lt;a href="http://fedoraproject.org/wiki/SELinux/MCS"&gt;Multi Category System (MCS)&lt;/a&gt; policy was also added to the &lt;i&gt;Targeted&lt;/i&gt; and &lt;i&gt;Strict&lt;/i&gt; policies, which confines the sensitivity level to s0 but permits user defined capabilities.&lt;br /&gt;
&lt;div style="margin-bottom: 0in;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 0in;"&gt;
The Security Blanket team is also watching the &lt;a href="http://www.nsa.gov/research/selinux/list-archive/0702/19196.shtml"&gt;National Security Agency's (NSA)&lt;/a&gt; &lt;a href="http://oss.tresys.com/projects/clip"&gt;Certifiable Linux Integration Platform (CLIP)&lt;/a&gt; project. This project defines a specific configuration of SELinux designed to provide the foundation for hosting secure applications.  &lt;/div&gt;
&lt;div style="margin-bottom: 0in;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 0in;"&gt;
The Security Blanket team is excited to offer SELinux &lt;i&gt;Targeted&lt;/i&gt; policy support and we are anxious to hear from our customers. Finally, if you are interested in using Security Blanket on systems enforcing the &lt;i&gt;Strict&lt;/i&gt; policy or you have plans to use configurations defined by CLIP, send us an email at &lt;a href="mailto:SecurityBlanket@TrustedCS.com"&gt;SecurityBlanket@TrustedCS.com&lt;/a&gt;.&lt;/div&gt;
&lt;div style="margin-bottom: 0in;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 0in;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="margin-bottom: 0in;"&gt;
&lt;i&gt;For more information see:&amp;nbsp;&lt;a href="http://www.redhat.com/magazine/006apr05/features/selinux/"&gt;Taking advantage of SELinux in Red Hat®&amp;nbsp;Enterprise Linux®, by Faye Coker and Russell Coker&amp;nbsp;&lt;/a&gt;&lt;/i&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-2238524003402945558?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/2238524003402945558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/09/security-blanket-supports-selinux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/2238524003402945558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/2238524003402945558'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/09/security-blanket-supports-selinux.html' title='Security Blanket Supports SELinux'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-6uxrdBAFoeY/TnoXdjeNqZI/AAAAAAAAAdk/aF3d-d9hjbk/s72-c/SELinuxContext.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-8397901871216210706</id><published>2011-08-25T13:10:00.009-04:00</published><updated>2011-08-25T13:44:36.297-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Auditing'/><category scheme='http://www.blogger.com/atom/ns#' term='Red Hat 5 STIG'/><category scheme='http://www.blogger.com/atom/ns#' term='Kernel'/><category scheme='http://www.blogger.com/atom/ns#' term='NSA'/><title type='text'>Red Hat 5 STIG: Kernel Modules</title><content type='html'>&lt;p&gt;In the last few years, I've seen organizations extending the concept of least privilege to &lt;span style="font-style:italic;"&gt;least installed or running&lt;/span&gt;. I have written about &lt;a href="http://tcs-security-blanket.blogspot.com/2009/08/minimize-attack-surfaces.html"&gt;minimizing a system's attack surface&lt;/a&gt; by removing unnecessary software and turning off as many unused features as possible.&lt;/p&gt;

&lt;p&gt;The draft release of the U.S. Defense Information Systems Agency's (DISA) “&lt;a href="http://iase.disa.mil/stigs/os/unix/red_hat.html"&gt;Red Hat 5 STIG&lt;/a&gt;” is no exception. I love it when security guidelines make these suggestions but it can be frustrating when assessment scanners report false-positives. For example, some scanners will report a failure if it can't find a setting in a configuration file for software which isn't even installed on the system.&lt;/p&gt;

&lt;p&gt;The new draft STIG requires entries in a configuration file to prevent the kernel from loading modules – even if the modules aren't installed on the system. Nonetheless, I have compiled a list of the required settings which must be set in your &lt;tt&gt;modprobe.conf&lt;/tt&gt; configuration file.&lt;/p&gt; 

&lt;p&gt;First of all, the STIG requires the loading and removing of kernel modules be recorded by the auditing subsystem (GEN002825). The system calls (-S) &lt;span style="font-style:italic;"&gt;init_module&lt;/span&gt; and &lt;span style="font-style:italic;"&gt;delete_module&lt;/span&gt; are tracked and watches (-w) are placed on some command line utilities. Add the following rules to your &lt;tt&gt;audit.rules&lt;/tt&gt; file:&lt;/p&gt;

&lt;pre&gt;
-a always,exit -S init_module -S delete_module -k modules 
-w /sbin/insmod -p x -k modules 
-w /sbin/modprobe -p x -k modules 
-w /sbin/rmmod -p x -k modules 
&lt;/pre&gt;

&lt;p&gt;Unless your system has a specific need for the following networking related modules, they shouldn't be loaded into the kernel. These modules aren't installed in a default Red Hat Enterprise Linux installation but you'll still need to implicitly add entries in &lt;tt&gt;modprobe.conf&lt;/tt&gt; file:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Network Bridging (GEN003619)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol"&gt;Stream Control Transmission Protocol (SCTP)&lt;/a&gt; (GEN007020)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.linuxpromagazine.com/Issues/2008/93/DCCP"&gt;Datagram Congestion Control Protocol (DCCP)&lt;/a&gt; (GEN007080)&lt;/li&gt; 
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Reliable_Datagram_Sockets"&gt;Reliable Datagram Sockets (RDS)&lt;/a&gt; (GEN007480). Some implementations of  &lt;a href="http://en.wikipedia.org/wiki/Oracle_RAC"&gt;Oracle Real Application Clusters (RAC)&lt;/a&gt; uses RDS as an interconnect.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you don't use &lt;a href="http://en.wikipedia.org/wiki/Ipv6"&gt;IPv6&lt;/a&gt;, it is recommended you disable support for it (GEN007700) and you should configure the system to prevent dynamic loading of the IPv6 protocol handler (GEN007720).&lt;/p&gt;

&lt;p&gt;Additionally, the guideline recommends disabling support for Bluetooth, USB storage devices, and Firewire:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/TIPC"&gt;Transparent Inter-Process Communication (TIPC)&lt;/a&gt; (GEN007540). TIPC was specially designed for intra-cluster communication and products like Wind River's VxWorks use it.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Bluetooth"&gt;Bluetooth&lt;/a&gt; (GEN007660)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Usb"&gt;USB Mass Storage&lt;/a&gt; (GEN008480)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Firewire"&gt;IEEE 1394 (Firewire)&lt;/a&gt; (GEN008500)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To prevent the loading of the aforementioned modules and network modules, add the following to your &lt;tt&gt;/etc/modprobe.conf&lt;/tt&gt; file:&lt;/p&gt;

&lt;pre&gt;
# Network related
install bridge /bin/false
install sctp /bin/true
install dccp /bin/true
install dccp_ipv4 /bin/true
install dccp_ipv6 /bin/true 
install rds /bin/true

install tipc /bin/true
install bluetooth /bin/true

# IPv6
alias net-pf-10 off 
alias ipv6 off 
install ipv6 /bin/true

# USB and Firewire
install usb-storage /bin/true
install ieee1394 /bin/true
&lt;/pre&gt;

&lt;p&gt;Section 2.2.2.5 of the National Security Agency's “&lt;a href="http://www.nsa.gov/ia/guidance/security_configuration_guides/operating_systems.shtml"&gt;Guide to the Secure Configuration of Red Hat Enterprise Linux 5&lt;/a&gt;” also recommends not loading kernel modules for uncommon filesystem types:&lt;/p&gt;

&lt;pre&gt;
install cramfs /bin/true
install freevxfs /bin/true
install jffs2 /bin/true
install hfs /bin/true
install hfsplus /bin/true
install squashfs /bin/true
install udf /bin/true
&lt;/pre&gt;

&lt;p&gt;My suggestion is always remove unused software, however many auditors will probably still want to see the implicit setting in the &lt;tt&gt;modprobe.conf&lt;/tt&gt; file.&lt;/p&gt;




&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-8397901871216210706?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/8397901871216210706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/08/red-hat-5-stig-kernel-modules.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/8397901871216210706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/8397901871216210706'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/08/red-hat-5-stig-kernel-modules.html' title='Red Hat 5 STIG: Kernel Modules'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-5044979528317158511</id><published>2011-08-22T11:31:00.024-04:00</published><updated>2011-08-29T21:17:33.296-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Red Hat 5 STIG'/><category scheme='http://www.blogger.com/atom/ns#' term='NSA'/><title type='text'>Red Hat 5 STIG: Network Settings</title><content type='html'>&lt;p&gt;The draft release of the U.S. Defense Information Systems Agency's (DISA) “&lt;a href="http://iase.disa.mil/stigs/os/unix/red_hat.html"&gt;Red Hat 5 STIG&lt;/a&gt;” earlier this year has a few system administrators panicking. For Red Hat&lt;span class="shift"&gt;®&lt;/span&gt; Enterprise Linux&lt;span class="shift"&gt;®&lt;/span&gt; 5 administrators, this Security Technical Implementation Guide (STIG) has supplanted the &lt;a href="http://iase.disa.mil/stigs/os/unix/unix.html"&gt;generic UNIX STIG&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The generic UNIX STIG had the single potential discrepancy indicator (PDI) “GEN003600 - Network Security Settings.” The checklist document required you to check four network settings in the running kernel. The new Red Hat 5 STIG, however, has many more settings and provides better explanations.&lt;/p&gt;

&lt;p&gt;I would caution administrators from rushing to add all of these settings to your systems because most of these settings are defaults. Nonetheless, the settings must be implicitly set in the &lt;tt&gt;sysctl.conf&lt;/tt&gt; configuration file. My recommendation is to review the entire STIG in order to define a complete &lt;tt&gt;sysctl.conf&lt;/tt&gt; file, so that it can be deployed and tested all at once. &lt;/p&gt;

&lt;p&gt;To help get you started with the new Red Hat 5 STIG, I have compiled a list of settings from the guideline as well as a few from the National Security Agency's “&lt;a href="http://www.nsa.gov/ia/guidance/security_configuration_guides/operating_systems.shtml"&gt;Guide to the Secure Configuration of Red Hat Enterprise Linux 5&lt;/a&gt;.”&lt;/p&gt;

&lt;p&gt;First of all, the ability to configure network interfaces should be limited to privileged users (GEN003581). This is achieved by setting “USERCTL” to “no” in the &lt;tt&gt;/etc/sysconfig/network-scripts/ifcfg*&lt;/tt&gt; files. &lt;/p&gt;

&lt;p&gt;The NSA configuration guide recommends disabling &lt;a href="http://www.zeroconf.org/"&gt;zero configuration networking (zeroconf)&lt;/a&gt;; which is a set of techniques that automatically creates a usable &lt;a href="http://en.wikipedia.org/wiki/Internet_Protocol"&gt;Internet Protocol (IP)&lt;/a&gt; network without manual operator intervention or special configuration servers.  To disable zeroconf, set “NOZEROCONF” to “yes” in the &lt;tt&gt;/etc/sysconfig/network&lt;/tt&gt; file.&lt;/p&gt;

&lt;p&gt;As before, &lt;a href="http://en.wikipedia.org/wiki/IP_forwarding"&gt;IP forwarding&lt;/a&gt; [ip_forward] should be disabled (GEN005600) and the new guideline recommends not forwarding (GEN003600) or accepting (GEN003607) &lt;a href="http://en.wikipedia.org/wiki/Source_routing"&gt;source-routed packets&lt;/a&gt; [accept_source_route] either.&lt;/p&gt;

&lt;p&gt;The system must not respond to broadcast &lt;a href="http://en.wikipedia.org/wiki/Internet_Control_Message_Protocol"&gt;Internet Control Message Protocol (ICMP)&lt;/a&gt; echoes (GEN003603) or timestamp requests (GEN003604) [icmp_echo_ignore_braodcasts].&lt;/p&gt;

&lt;p&gt;Furthermore, the system must ignore ICMP redirect messages (GEN003609) [accept_redirects] as well as not send ICMP redirects (GEN003610) [send_redirects]. Other guidelines recommend not accepting secure ICMP redirects [secure_redirects]. The secure redirect message is sent by a gateway that appears in the host's default gateway list.&lt;/p&gt;

&lt;p&gt;To provide some mitigation to TCP denial of service attacks the guideline (GEN003601) recommends adjusting the TCP backlog queue size [tcp_max_syn_backlog]. Additionally (GEN003612),  your system should be configured to send out requests [tcp_syncookies] to remote hosts if they are flooding your system’s backlog queue with SYN packets. These requests check whether or not the inbound SYN packets are legitimate.&lt;/p&gt;

&lt;p&gt;Enabling TCP syncookies option on a system under normal load is useful. If your system is under high load it will make new connections but without advanced features such as &lt;a href="http://en.wikipedia.org/wiki/Explicit_Congestion_Notification"&gt;explicit congestion notification (ECN)&lt;/a&gt; or &lt;a href="http://en.wikipedia.org/wiki/Selective_acknowledgement"&gt;selective acknowledgment (SACK)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To help mitigate the leaking of addressing information between attached network segments, the guideline (GEN003608) recommends disabling proxy &lt;a href="http://en.wikipedia.org/wiki/Address_Resolution_Protocol"&gt;Address Resolution Protocol (ARP)&lt;/a&gt; [proxy_arp].&lt;/p&gt;

&lt;p&gt;The guideline (GEN003613) recommends the system perform source validation by reversed path [rp_filter]. When you enable reverse path source validation, inbound packets are dropped if the IP address from where the packets were received is not reachable (i.e., asymmetrical route).&lt;/p&gt;

&lt;p&gt;It should be noted, however, that enabling this may cause problems in complex networks running a slow and unreliable protocol, using static routes, or where asymmetric routes are present. Asymmetric routes are not common, but may be necessary in certain cases. By default, Linux drops packets in which asymmetric routes are used because of the security risk.&lt;sup&gt;[1]&lt;/sup&gt;&lt;/p&gt;

&lt;p&gt;It is also recommended (GEN003619) &lt;a href="http://en.wikipedia.org/wiki/Bridging_(networking)"&gt;network bridging&lt;/a&gt; be disabled. This is usually a kernel module which can be checked with &lt;a href="http://linux.die.net/man/8/lsmod"&gt;lsmod(8)&lt;/a&gt; command utility. To prevent it from loading, add the appropriate line for that module in the &lt;a href="http://linux.die.net/man/5/modprobe.conf"&gt;modprobe.conf&lt;/a&gt; file.  &lt;/p&gt;

&lt;p&gt;Finally, the guideline (GEN003611) recommends the kernel log all &lt;a href="http://en.wikipedia.org/wiki/Martian_packet"&gt;martian packets&lt;/a&gt; [log_martians]. Martian packets are packets which contain addresses known by the system to be &lt;span style="font-style:italic;"&gt;invalid&lt;/span&gt;.&lt;/p&gt;

&lt;p&gt;As I said earlier, many of these settings are kernel defaults. However, it is best to add the following settings into your &lt;tt&gt;/etc/sysctl.conf&lt;/tt&gt; file:&lt;/p&gt;

&lt;pre&gt;
net.ipv4.ip_forward = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0
net.ipv4.tcp_max_syn_backlog = 1280
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.proxy_arp = 0
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.default.log_martians = 1
&lt;/pre&gt;

&lt;p&gt;Now, you can execute &lt;tt style="font-weight:bold"&gt;/sbin/sysctl -p&lt;/tt&gt; as root or reboot the system.&lt;/p&gt;

&lt;p&gt;&lt;hr width="25%" align="left"/&gt;
[1] Benvenuti, Christian. Understanding Linux Network Internals, Chapter 31. Sebastopol, CA: O'Reilly Media, Inc., 2006.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-5044979528317158511?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/5044979528317158511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/08/red-hat-5-stig-network-settings.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/5044979528317158511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/5044979528317158511'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/08/red-hat-5-stig-network-settings.html' title='Red Hat 5 STIG: Network Settings'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-2574085981560791997</id><published>2011-08-17T09:13:00.024-04:00</published><updated>2011-08-19T08:18:23.427-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FIPS 140-2'/><category scheme='http://www.blogger.com/atom/ns#' term='Access Controls'/><category scheme='http://www.blogger.com/atom/ns#' term='Red Hat 5 STIG'/><category scheme='http://www.blogger.com/atom/ns#' term='DISA UNIX STIG'/><title type='text'>Getting started with the new Red Hat 5 STIG</title><content type='html'>&lt;p&gt;I am pleased the U.S. Defense Information Systems Agency (DISA) released a draft of “&lt;a href="http://iase.disa.mil/stigs/os/unix/red_hat.html"&gt;Red Hat 5 STIG&lt;/a&gt;” earlier this year. As expected, there are some specific configuration guidelines for Red Hat&lt;span class="shift"&gt;®&lt;/span&gt; Enterprise Linux&lt;span class="shift"&gt;®&lt;/span&gt; 5 which were missing from the &lt;a href="http://iase.disa.mil/stigs/os/unix/unix.html"&gt;generic UNIX Security Technical Implementation Guide (STIG)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The generic UNIX STIG supported numerous UNIX&lt;span class="shift"&gt;®&lt;/span&gt; and Linux&lt;span class="shift"&gt;®&lt;/span&gt; distributions but never addressed Red Hat Enterprise Linux 5. For many years, this lack of support was a source of frustration for system administrators. In February 2011, I discussed the new guidelines  in the article “&lt;a href="http://tcs-security-blanket.blogspot.com/2011/02/disa-unix-stig-for-red-hat-enterprise.html"&gt;DISA UNIX STIG for Red Hat Enterprise Linux 5 and 6&lt;/a&gt;.”&lt;/p&gt;

&lt;p&gt;I am reviewing the “Red Hat 5 STIG” to develop a plan to add support for it to our Security Blanket&lt;span class="shift"&gt;®&lt;/span&gt; product. I've completed my initial review and I want to share some of my findings along with some tips. &lt;/p&gt;

&lt;p&gt;First of all, the “Red Hat 5 STIG” is not to be used in conjunction with the generic UNIX STIG. Download the ZIP file, extract it, and transform the XML document to a more usable format. I used the XSLT processor which comes with Red Hat as follows:&lt;/p&gt;

&lt;pre style="color:yellow"&gt;/usr/bin/xsltproc STIG_unclass.xsl U_RedHat_5_V1R0_STIG_Manual-xccdf.xml &gt; stig.html&lt;/pre&gt;

&lt;p&gt;The previous command will transform the document from XML format to HTML, so you can open it with your web browser. I like to have a delimited text list of the guideline, so I created the following simple XSLT:&lt;/p&gt;

&lt;pre&gt;
&amp;lt;?xml version="1.0" encoding="utf-8" standalone="yes"?&amp;gt;
&amp;lt;xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:cdf="http://checklists.nist.gov/xccdf/1.1"&amp;gt;
 &amp;lt;xsl:output method="text" /&amp;gt;
 &amp;lt;xsl:template match="/"&amp;gt;
  &amp;lt;xsl:for-each select="cdf:Benchmark/cdf:Group/cdf:Rule"&amp;gt;
      &amp;lt;xsl:apply-templates select="." /&amp;gt;
  &amp;lt;/xsl:for-each&amp;gt;
 &amp;lt;/xsl:template&amp;gt;

 &amp;lt;xsl:template match="cdf:Rule"&amp;gt;
  &amp;lt;xsl:value-of select="@id" /&amp;gt;
  &amp;lt;xsl:text&amp;gt;|&amp;lt;/xsl:text&amp;gt;
  &amp;lt;xsl:value-of select="@severity" /&amp;gt;
  &amp;lt;xsl:text&amp;gt;|&amp;lt;/xsl:text&amp;gt;
  &amp;lt;xsl:value-of select="cdf:version" /&amp;gt;
  &amp;lt;xsl:text&amp;gt;|&amp;lt;/xsl:text&amp;gt;
  &amp;lt;xsl:value-of select="cdf:title" /&amp;gt;
  &amp;lt;xsl:text&amp;gt;&amp;amp;#x0A;&amp;lt;/xsl:text&amp;gt;
 &amp;lt;/xsl:template&amp;gt;
&amp;lt;/xsl:stylesheet&amp;gt;
&lt;/pre&gt;

&lt;p&gt;Save the above as a file and use it instead of the “STIG_unclass.xsl” file. &lt;/p&gt;

&lt;p&gt;This STIG, like the generic UNIX one, requires you to have a &lt;a href="http://en.wikipedia.org/wiki/Disaster_recovery"&gt;Disaster Recovery Plan&lt;/a&gt; or some form of &lt;a href="http://en.wikipedia.org/wiki/Business_continuity_planning"&gt;Business Continuity Plan (BCP)&lt;/a&gt;. The plan must contain detailed procedures for performing backups and recovery.&lt;/p&gt;

&lt;p&gt;Wherever possible, try to have on-line, off-line, and off-site backups. On-line could include storage mirroring technologies and off-line could be some sort of media which isn't connected to equipment. If at all possible, perform encrypted backups and then store them in a media safe on-site and off-site. The off-site backups could be as simple as taking the off-line media outside of your data center and preferably not in the same building.&lt;/p&gt;

&lt;p&gt;Account management and personnel security practices must be clearly documented. This includes documenting how access is granted to personnel. Procedures on removing accounts or revoking rights must also be documented. This also means taking a serious look at shared application and administrative accounts. Stop logging directly into these accounts (especially root!) — personnel should be logging into their own personal account then switching to the application/administrative account.&lt;/p&gt;

&lt;p&gt;The biggest tip I can offer is to REMOVE ALL SOFTWARE WHICH IS NOT NEEDED. This is where you gain great insight to your system's architecture because you will learn what components rely on what. For example, if you are not using any features or utilities of Samba — remove it. &lt;/p&gt;

&lt;p&gt;The new “Red Hat 5 STIG” has 596 potential discrepancy indicators (PDI) – sometimes called “STIG items.” Of these, 62 of them are related to extended &lt;a href="http://en.wikipedia.org/wiki/Access_control_list"&gt;access control lists (ACL)&lt;/a&gt;, 8 to &lt;a href="http://en.wikipedia.org/wiki/Ipv6"&gt;IPv6&lt;/a&gt;, and 14 to &lt;a href="http://csrc.nist.gov/publications/fips/fips140-2/fips1402.pdf"&gt;FIPS 140-2&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;In the generic UNIX STIG, many STIG items restrict standard user-group-other permissions. These &lt;a href="http://en.wikipedia.org/wiki/Discretionary_access_control"&gt;Discretionary Access Controls (DAC)&lt;/a&gt; are a fundamental security mechanism and &lt;a href="http://en.wikipedia.org/wiki/Access_control_list"&gt;POSIX.1e Access Control Lists (ACL)&lt;/a&gt; provide administrators the ability to grant access to additional users and groups without having to grant access to &lt;span style="font-style:italic;"&gt;other&lt;/span&gt; (a.k.a, the &lt;span style="font-style:italic;"&gt;world&lt;/span&gt;). &lt;/p&gt;

&lt;p&gt;Nonetheless, there are 62 new STIG items which recommend stripping ACLs from files and directories. By default, file systems such as &lt;a href="http://en.wikipedia.org/wiki/Ext2"&gt;ext2&lt;/a&gt; and newer support POSIX.1e ACL. If none of your applications require POSIX ACLs, I recommend mounting file systems with the 'noacl' option to disable support for them. This is an easy way to address all 62 items.&lt;/p&gt;

&lt;p&gt;As for IPv6, my opinion is that if you are not using IPv6 simply disable support for it. First edit the &lt;tt&gt;/etc/sysconfig/network&lt;/tt&gt; and set “NETWORKING_IPV6” to “no”. Next, add the following two lines to &lt;tt&gt;/etc/modprobe.conf&lt;/tt&gt;:&lt;/p&gt;

&lt;pre style="color:yellow"&gt;
alias net-pf-10 off
alias ipv6 off
&lt;/pre&gt;

&lt;p&gt;Lastly, stop the IPv6 firewall service and configure it to not start when the system is rebooted:&lt;/p&gt;

&lt;pre&gt;
# &lt;span style="color:yellow"&gt;/sbin/service ip6tables stop&lt;/span&gt;
# &lt;span style="color:yellow"&gt;/sbin/chkconfig ip6tables off&lt;/span&gt;
&lt;/pre&gt;

&lt;p&gt;Fourteen of the new items require the “&lt;span style="font-style:italic;"&gt;...[use of] a FIPS 140-2 validated cryptographic module (operating in FIPS mode).&lt;/span&gt;” These items, however, don't give the detailed check procedures as many of the other items do. Instead, DISA states, “&lt;span style="font-style:italic;"&gt;The &lt;a href="http://csrc.nist.gov/groups/STM/cmvp/"&gt;NIST CVMP web site&lt;/a&gt; provides a list of validated modules and the required security policies for the compliant use of such modules. Verify that the module is on this list and configured in accordance with the validated security policy.&lt;/span&gt;”&lt;/p&gt;

&lt;p&gt;To make Red Hat Enterprise Linux 5 compliant with the Federal Information Processing Standard (FIPS) Publication 140-2 you need to make several changes to ensure that accredited cryptographic modules are used. For detailed instructions, download &lt;a href="https://access.redhat.com/kb/docs/DOC-39230"&gt;DOC-3923 from the Red Hat Knowledgebase&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Ensure the following accredited packages are available:&lt;/p&gt;
&lt;pre&gt;
        kernel  2.6.18-164.2.1.el5
     libgcrypt	1.4.4-5.el5
       openssl  0.9.8e-12.el5
      openswan	2.6.21-5.el5_4.3
           nss  3.12.6-2.el5_4
selinux-policy	2.4.6-255.el5_4.2
 fipscheck-lib	1.2.0-1.el5
&lt;/pre&gt;

&lt;p&gt;Next, disable &lt;a href="http://en.wikipedia.org/wiki/Prelink"&gt;prelinking&lt;/a&gt; by editing &lt;tt&gt;/etc/sysconfig/prelink&lt;/tt&gt; and setting “PRELINKING” to “no”. Previous prelinks should be undone with: &lt;/p&gt;

&lt;pre&gt;
# &lt;span style="color:yellow"&gt;/usr/sbin/prelink -u -a&lt;/span&gt;
&lt;/pre&gt;

&lt;p&gt;You'll need to recreate the initial &lt;a href="http://en.wikipedia.org/wiki/RAM_disk"&gt;RAM disk&lt;/a&gt; for x86_64 based platforms as follows:&lt;/p&gt;

&lt;pre&gt;
# &lt;span style="color:yellow"&gt;/sbin/mkinitrd --with-fips -f /boot/initrd-$(uname -r).img $(uname -r)&lt;/span&gt;
&lt;/pre&gt;

&lt;p&gt;and for IA64 based platforms as follows:&lt;/p&gt;

&lt;pre&gt;
# &lt;span style="color:yellow"&gt;/sbin/mkinitrd --with-fips -f /boot/efi/efi/redhat/initrd-$(uname -r).img $(uname -r)&lt;/span&gt;
&lt;/pre&gt;

&lt;p&gt;Finally, add “fips=1” as a kernel boot parameter. It's best to do this by editing your &lt;tt&gt;grub.conf&lt;/tt&gt; file. &lt;/p&gt;

&lt;p&gt;Once the operating system is operating in “FIPS” mode, you can proceed to address items such as GEN005490 – which requires the Secure Shell Daemon be configured to use the accredited modules. I will cover these specific items in some later posts. &lt;/p&gt;

&lt;p&gt;Overall, I am impressed with the “Red Hat 5 STIG” and will be sharing tidbits over the next few months. The Security Blanket development team is working hard to automate the assessment and configuration of your systems to these new guidelines.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-2574085981560791997?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/2574085981560791997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/08/getting-started-with-new-red-hat-5-stig.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/2574085981560791997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/2574085981560791997'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/08/getting-started-with-new-red-hat-5-stig.html' title='Getting started with the new Red Hat 5 STIG'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-3096455782739757360</id><published>2011-07-28T15:47:00.008-04:00</published><updated>2011-07-28T16:04:22.163-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Access Controls'/><category scheme='http://www.blogger.com/atom/ns#' term='Policies'/><title type='text'>Sysadmin Basics: Account Management Is Critical</title><content type='html'>&lt;p&gt;These days I believe many inexperienced system administrators don't focus as much as they should on the fundamentals&amp;mdash;such as user account management. Many system administrators are distracted by the urge to patch their systems to address vulnerabilities they aren't susceptible to or to configure their systems with nifty tricks they found on a “tips-and-tricks”  or “how-to” website. This urge, I believe, is rooted in their belief they are a warrior combating the forces of evil in this cyber war.&lt;/p&gt;

&lt;p&gt;When a young, inexperienced administrator reports they've “plugged” a major hole in their defenses to their boss, the administrator feels like an important asset. If they quote details from the vulnerability report including the CVSS base score, impact subscore, and exploitability subscore their boss must think they are a genius. &lt;/p&gt;

&lt;p&gt;In Peter Bright's article: “&lt;a href="http://arstechnica.com/tech-policy/news/2011/02/anonymous-speaks-the-inside-story-of-the-hbgary-hack.ars/3"&gt;Anonymous speaks: the inside story of the HBGary hack&lt;/a&gt;”, he states:&lt;/p&gt;

&lt;blockquote&gt;The Anonymous hack was not exceptional: the hackers used standard, widely known techniques to break into systems, find as much information as possible, and use that information to compromise further systems. They didn't have to, for example, use any non-public vulnerabilities or perform any carefully targeted social engineering.&lt;/blockquote&gt;

&lt;p&gt;I would never discourage organizations from patching their systems—when it is necessary. Often times, organizations waste time patching unused services which should be removed from the system altogether. Organizations may patch software to address a vulnerability in a feature which isn't even being used.&lt;/p&gt; 

&lt;p&gt;Several years ago, I had a young, enthusiastic, inexperienced system administrator working for me. He loved reading these vulnerability reports and he found the inner workings of the system fascinating. His curiosity and his affinity for the hacker subculture was a distraction from his daily responsibilities. &lt;/p&gt;

&lt;p&gt;I remember him passionately arguing on two occasions that we must patch our systems immediately. The first was a flaw in OpenSSL's SSL/TLS handshaking code when using Kerberos ciphersuites and the second, a vulnerability in the Apache module which provides Web-based Distributed Authoring and Versioning (WebDAV).&lt;/p&gt; 

&lt;p&gt;He calmed down after I explained to him that none of our applications use Kerberos ciphersuites and the Apache module isn't statically linked to the daemon nor is it loaded as a dynamic shared object. I urged him to slow down and think about what he was doing. I did not, however, want to discourage him from learning new things but I needed him to focus on the fundamentals. &lt;/p&gt;

&lt;p&gt;Account management is a discipline often overlooked because it is mundane and boring. Neglected, unused accounts are a front door for attackers and often used to escalate privileges or worse, extend the attacker's reach into your enterprise. &lt;/p&gt;

&lt;p&gt;I am not a fan of the “Top X Tips to Y” articles but many people prefer this abridged list format due to their busy schedules. Nonetheless, here are some key aspects of account management which I feel are overlooked:&lt;/p&gt;
&lt;ul&gt;

&lt;li&gt;Types of accounts: Are they system or application accounts? What authentication realm do they belong? Are they internal to an application, database, centralized authentication, or simply local accounts managed by the operating system?&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Account ownership: Who owns the account? If it is an application account responsible for providing a service, who is the primary point of contact? Can anyone directly login to the account? &lt;/p&gt;

&lt;p&gt;When was the last time the account was accessed? Is it obsolete? If it is a user account, when was the last time it was accessed. In my opinion, when in doubt about a user account—lock it. If it is important enough and they need it, they will contact you. &lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Password policy:  Have a good password policy, implement account aging mechanisms, and change ALL default passwords. In Linux, try to avoid setting a user account's password as root without forcing the user to change it at their next login. &lt;/p&gt;

&lt;p&gt;A common mistake made by system administrators is to login as root, issue the command to change a user account's password but allow the user to enter a new password. When you set a password on an account as root, on most Linux systems the password complexity rules are bypassed allowing the user to choose a weak password. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I only covered the basics. It is critical that system administrators not neglect these not-so-glamorous activities. This is part of a system administrator's daily grind. Don't be afraid to question why someone has a user account on your system&amp;mdash;you're responsible.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-3096455782739757360?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/3096455782739757360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/07/sysadmin-basics-account-management-is.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/3096455782739757360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/3096455782739757360'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/07/sysadmin-basics-account-management-is.html' title='Sysadmin Basics: Account Management Is Critical'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-3822907915834055197</id><published>2011-07-11T12:39:00.022-04:00</published><updated>2011-07-12T08:02:06.500-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Auditing'/><title type='text'>What is a kernel level audit trail?</title><content type='html'>&lt;p&gt;Many security experts believe that audit trails and logs are the key to identifying an ongoing cyber attack as well as providing forensic data following an attack.&lt;/p&gt;

&lt;p&gt;However, few people understand how audit records are generated or the difference between a kernel level audit trail and an application event log.&lt;/p&gt;

&lt;p&gt;It is critical to configure auditing and logging mechanisms to capture the right data in an optimal manner and to safeguard the data to prevent it from being modified. &lt;/p&gt;

&lt;p&gt;Like most operating systems, the main component of Linux&lt;span class="shift"&gt;&amp;reg;&lt;/span&gt; is its kernel. It acts as a bridge between software applications and hardware and as such is responsible for managing the system's resources. Generically speaking,  these resources include the central processing units (CPU), memory, and any Input/Output (I/O) devices present in the computer.&lt;sup&gt;[&lt;a href="http://en.wikipedia.org/wiki/Kernel_%28computing%29"&gt;Wikipedia:Kernel&lt;/a&gt;]&lt;/sup&gt;&lt;/p&gt;

&lt;p&gt;Running software applications are considered &lt;span style="font-style:italic;"&gt;processes&lt;/span&gt; by the kernel. Generally, a run-time library sits between applications and the operating system such as &lt;span style="font-style:italic;"&gt;libc&lt;/span&gt; and &lt;span style="font-style:italic;"&gt;glibc&lt;/span&gt;. The application calls functions in these libraries &amp;mdash; which act as wrappers to &lt;span style="font-style:italic;"&gt;&lt;a href="http://www.gnu.org/s/hello/manual/libc/System-Calls.html"&gt;system calls&lt;/a&gt;&lt;/span&gt;. Ultimately, a system call (&lt;span style="font-style:italic;"&gt;syscall&lt;/span&gt;) is how a process requests a service from the kernel that it does not normally have permission to run. &lt;/p&gt;

&lt;p&gt;When we talk about kernel level audit trails, we are referring to records of system calls and file system watches. The kernel has the ability to intercept every system call (see &lt;a href="http://lxr.linux.no/#linux+v2.6.39/kernel/auditsc.c"&gt;linux/kernel/auditsc.c&lt;/a&gt;) and optionally record them to a file system using an &lt;a href="http://people.redhat.com/sgrubb/audit/"&gt;auditing daemon (auditd)&lt;/a&gt;. This auditing daemon can be configured with a set of rules on specifically what to record. &lt;/p&gt;

&lt;p&gt;There are plenty of examples on the Internet of how to implement auditing rules but I want to show you a simple example:&lt;/p&gt;

&lt;pre&gt;# &lt;span style="font-weight:bold;color:yellow"&gt;/sbin/auditctl -w /etc/hosts -p rwa&lt;/span&gt; 
# &lt;span style="font-weight:bold;color:yellow"&gt;/sbin/auditctl -l&lt;/span&gt;
LIST_RULES: exit,always watch=/etc/hosts perm=rwa 


# &lt;span style="font-weight:bold;color:yellow"&gt;/bin/grep test /etc/hosts&lt;/span&gt;
# &lt;span style="font-weight:bold;color:yellow"&gt;/sbin/ausearch -f /etc/hosts&lt;/span&gt;

time-&gt;Mon Jul 11 09:53:28 2011

type=PATH msg=audit(1310392408.506:36): item=0 name="/etc/hosts" 
inode=4197780 dev=08:02 mode=0100644 ouid=0 ogid=0 rdev=00:00

type=CWD msg=audit(1310392408.506:36):  cwd="/var/log/audit"

type=SYSCALL msg=audit(1310392408.506:36): arch=c000003e 
syscall=2 success=yes exit=3 a0=7fff2ce9471d a1=0 a2=61f768 
a3=7fff2ce92a20 items=1 ppid=20478 pid=21013 auid=1000 uid=0 
gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 
ses=1 comm="grep" exe="/bin/grep"
&lt;/pre&gt;

&lt;p&gt;In the above example, I set an audit rule to watch the &lt;tt&gt;/etc/hosts&lt;/tt&gt; file. Then I used the grep utility to search the contents of the file for the word “test.” Finally, I searched the audit trail for entries pertaining to &lt;tt&gt;/etc/hosts&lt;/tt&gt;. As you can see, it creates quite a detailed audit record. &lt;/p&gt;

&lt;p&gt;Many security guidelines recommend that you establish watches on administration utilities. Two such command line utilities, &lt;a href="http://en.wikipedia.org/wiki/Chmod"&gt;/bin/chmod&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Chown"&gt;/bin/chown&lt;/a&gt; are used to change a file's mode and ownership respectively. I find it more beneficial to establish a rule to monitor the underlying system calls: &lt;a href="http://lxr.free-electrons.com/ident?a=avr32;i=sys_chmod"&gt;chmod&lt;/a&gt; and &lt;a href="http://lxr.free-electrons.com/ident?a=avr32&amp;i=sys_chown"&gt;chown&lt;/a&gt;. Keeping in mind, the aforementioned utilities use the system calls: chmod and chown. Since other utilities and programs can make similar calls, it is imperative we capture the system calls themselves rather than just the utilities. &lt;/p&gt;

&lt;p&gt;Some guidelines go overboard in my opinion. They want you to establish a rule to record every successful file opening. Here is an example rule:&lt;/p&gt;

&lt;pre&gt;&lt;span style="font-weight:bold;color:yellow"&gt;/sbin/auditctl -a exit,always -F arch=b64 -S open -F success=0&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;The problem I have with this rule is that the audit daemon now records every file that is opened including every shared library than an application is dynamically linked to. &lt;/p&gt;

&lt;p&gt;When it comes to application event logs, they tend to be much more useful. If programmed correctly, applications can produce meaningful event logs which  tend to be mapped to business process flow. &lt;/p&gt;

&lt;p&gt;For example, if a Java-based web application is running on a &lt;a href="http://tomcat.apache.org/"&gt;Apache Tomcat&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Java_Servlet"&gt;servlet&lt;/a&gt; container, the process is usually owned by a non-privileged user account. Thus kernel level audit trails of the Tomcat process accessing report files can be ambiguous. On the other hand, Java application's event logs are far more useful if they record the identification and authentication of an internal user, the user's request to view the report, and then the report delivered to the user. &lt;/p&gt;

&lt;p&gt;In summary, there are a couple of things to remember when configuring system auditing:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;First and foremost, you must balance what you need to collect with your ability to collect it. In other words, ensure you have the system resources (storage and CPU power) to generate the required audit trail without adversely impacting application performance.
&lt;li&gt;Consolidate your rules where possible. The system call rules are loaded into a matching engine that intercepts each syscall that all  programs  on  the  system makes. Therefore  it  is  very important to only use syscall rules when you have to since these affect performance. The more rules, the bigger the performance hit. You can help the performance, though, by combining syscalls  into  one  rule whenever possible.&lt;sup&gt;[&lt;a href="http://linux.die.net/man/8/auditctl"&gt;auditctl(8)&lt;/a&gt;]&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt; Ensure applications are configured to record the necessary events. Additionally, be sure that in-house developed applications provide plenty of details in their event logs.
&lt;li&gt; Protect audit trails and event logs. It is imperative that audit records are not sent over unsecure channels, unauthorized users are denied access, and audits can not be modified. 
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-3822907915834055197?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/3822907915834055197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/07/what-is-kernel-level-audit-trail.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/3822907915834055197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/3822907915834055197'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/07/what-is-kernel-level-audit-trail.html' title='What is a kernel level audit trail?'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-2391756246482174497</id><published>2011-06-27T10:55:00.025-04:00</published><updated>2011-06-28T06:59:54.806-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DDoS/DoS'/><title type='text'>Protecting Linux Against DoS/DDoS Attacks</title><content type='html'>&lt;p&gt;When I first heard ridiculous-sounding terms like smurf attack, fraggle attack, &lt;a href="http://en.wikipedia.org/wiki/Tribe_Flood_Network"&gt;Tribal Flood Network&lt;/a&gt; (TFN), &lt;a href="http://en.wikipedia.org/wiki/Trinoo"&gt;Trinoo&lt;/a&gt;, &lt;a href="http://packetstormsecurity.org/distributed/TFN2k_Analysis-1.3.txt"&gt;TFN2K&lt;/a&gt;, and &lt;span style="font-style:italic;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Stacheldraht"&gt;stacheldraht&lt;/a&gt;&lt;/span&gt;, I didn't take them too seriously for a couple of reasons &amp;mdash; I worked mainly on non-Internet facing systems and I was never a victim. I thought it was primarily a network or application administrator's problem.&lt;/p&gt;

&lt;p&gt;I am not too proud to admit that I was completely wrong. The truth is that I only had a grasp of the impact of such attacks but I didn't know anything about the methods and the things that can and should be done at the operating system level. &lt;/p&gt;

&lt;p&gt;I have been neck-deep in completing documentation for our product's Common Criteria for Information Technology Security Evaluation (ISO/IEC 15408) submission so I hadn't had much time to think about topics for a blog post. Besides, how can I compete with all of these eye-catching, dramatic headlines about LulzSec, Anonymous, and Ryan Cleary? &lt;/p&gt;

&lt;p&gt;A co-worker asked me how our Security Blanket&lt;span class="shift"&gt;®&lt;/span&gt; operating system lock down tool could help against denial-of-service (DoS) attacks. So began my research and I quickly had the epiphany that I barely knew anything about DoS attacks. &lt;/p&gt;

&lt;p&gt;Of course this topic is far too broad and complex to cover in one blog post but I am going to highlight some of my findings. First of all, I strongly recommend visiting the SANS Institute InfoSec Reading Room and reading “A Summary of DoS/DDoS Prevention, Monitoring and Mitigation Techniques in a Service Provider Environment.” Secondly, read the W3C's “&lt;a href="http://www.w3.org/Security/Faq/wwwsf6.html"&gt;The World Wide Web Security FAQ - Securing against Denial of Service attacks&lt;/a&gt;.”&lt;/p&gt;

&lt;p&gt;In “HACKING the art of exploitation”&lt;sup&gt;1&lt;/sup&gt;, Erikson describes two general forms of DoS attacks: those that crash services and those that flood services. Wikipedia goes on to describe five basic types of attacks:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Consumption of computational resources, such as bandwidth, disk space, or processor time.&lt;/li&gt;
&lt;li&gt;Disruption of configuration information, such as routing information.&lt;/li&gt;
&lt;li&gt;Disruption of state information, such as unsolicited resetting of TCP sessions.&lt;/li&gt;
&lt;li&gt;Disruption of physical network components.&lt;/li&gt;
&lt;li&gt;Obstructing the communication media between the intended users and the victim so that they can no longer communicate adequately.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The W3C defines DoS as “&lt;span style="font-style:italic;"&gt;an attack designed to render a computer or network incapable of providing normal services. The most common DoS attacks will target the computer's network bandwidth or connectivity. Bandwidth attacks flood the network with such a high volume of traffic, that all available network resources are consumed and legitimate user requests can not get through. Connectivity attacks flood a computer with such a high volume of connection requests, that all available operating system resources are consumed, and the computer can no longer process legitimate user requests.&lt;/span&gt;”&lt;/p&gt;

&lt;p&gt;The W3C differentiates a DoS attack from a Distributed Denial of Service (DDoS) attack. The DDoS “&lt;span style="font-style:italic;"&gt;attack uses many computers to launch a coordinated DoS attack against one or more targets. Using client/server technology, the perpetrator is able to multiply the effectiveness of the Denial of Service significantly by harnessing the resources of multiple unwitting accomplice computers which serve as attack platforms.&lt;/span&gt;”&lt;/p&gt;

&lt;p&gt;In the case of &lt;a href="http://en.wikipedia.org/wiki/Smurf_attack"&gt;smurf&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Fraggle_attack"&gt;fraggle&lt;/a&gt; attacks, one method of prevention is to configure the router to block broadcast packets that did not originate from that network. On Linux systems, you can configure the kernel to disregard ICMP ECHO and TIMESTAMP requests that were sent to broadcast or multicast addresses by setting the kernel parameter &lt;tt style="color:yellow"&gt;net.ipv4.icmp_echo_ignore_broadcasts&lt;/tt&gt; to one. &lt;/p&gt;

&lt;p&gt;When it comes to “&lt;a href="http://en.wikipedia.org/wiki/SYN_flood"&gt;SYN flood&lt;/a&gt;” DoS form of attacks, you can configure Linux to send out requests (syncookies) to remote hosts if they are flooding your system’s backlog queue with SYN packets; to enable this set the kernel parameter &lt;tt style="color:yellow"&gt;net.ipv4.tcp_syncookies&lt;/tt&gt; to one.&lt;/p&gt;

&lt;p&gt;These requests (syncookies) check whether or not the inbound SYN packets are legitimate.  In cases where these inbound SYN packets are not legitimate, your system might be experiencing a “SYN flood” DoS attack. Enabling this option on a system under normal load is useful. If your system is under high load it will make new connections but without advanced features such as &lt;a href="http://en.wikipedia.org/wiki/Explicit_Congestion_Notification"&gt;explicit congestion notification&lt;/a&gt; (ECN) or &lt;a href="http://en.wikipedia.org/wiki/Transmission_Control_Protocol#Selective_acknowledgments"&gt;selective acknowledgment&lt;/a&gt; (SACK).&lt;/p&gt;

&lt;p&gt;All of the normal hardening procedures for the operating system will of course help. Namely, it will help reduce the likelihood your system will become compromised and become the platform for which attacks will be launched.&lt;/p&gt;

&lt;p&gt;Additionally, it is critical to know what software is present on your system. One technique to monitor this is to &lt;a href="http://tcs-security-blanket.blogspot.com/2009/08/what-is-baseline.html"&gt;baseline&lt;/a&gt; (or fingerprint) your system to include the use of cryptographic hashes where possible. Then periodically, perform another baseline and compare it to the previous one. &lt;/p&gt;

&lt;p&gt;The use of host-based firewalls (i.e., iptables) is strongly encouraged as well as disabling of unnecessary server services. &lt;a href="http://tcs-security-blanket.blogspot.com/2009/08/minimize-attack-surfaces.html"&gt;System minimization&lt;/a&gt; has been a topic in many of my posts before and I believe it is one of the easiest but most effective techniques because it reduces your “&lt;a href="http://tcs-security-blanket.blogspot.com/2009/08/minimize-attack-surfaces.html"&gt;attack surface&lt;/a&gt;.” The W3C FAQ also says, “assume a service should be turned off, unless it is absolutely required.” And I would take it one step further by removing the software packages associated with those unused services. &lt;/p&gt;

&lt;p&gt;Safeguarding and monitoring operating systems against DoS and DDoS are areas which I continue to learn about and develop techniques. Please, share your knowledge and techniques so we all might learn. &lt;/p&gt;

&lt;br/&gt;
&lt;hr style="width:100px" align="left" /&gt;
&lt;p&gt;[1] Erikson, Jon (2008). HACKING the art of exploitation (2nd edition ed.). San Francisco: No Starch Press. p. 251. ISBN 1-59327-144-1.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-2391756246482174497?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/2391756246482174497/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/06/protecting-linux-against-dosddos.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/2391756246482174497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/2391756246482174497'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/06/protecting-linux-against-dosddos.html' title='Protecting Linux Against DoS/DDoS Attacks'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-7006301661183482519</id><published>2011-06-08T17:26:00.009-04:00</published><updated>2011-06-09T07:43:49.131-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Access Controls'/><category scheme='http://www.blogger.com/atom/ns#' term='SELinux'/><title type='text'>Security Blanket SELinux Policy Module</title><content type='html'>&lt;p&gt;The next release of &lt;a href="http://www.trustedcs.com/SecurityBlanket/SecurityBlanket.html"&gt;Security Blanket&lt;/a&gt; will support &lt;a href="http://www.nsa.gov/research/selinux/"&gt;Security-Enhanced Linux (SELinux)&lt;/a&gt;. Previous releases of Security Blanket would only work if SELinux was enabled but was operating in &lt;span style="font-style:italic;"&gt;permissive&lt;/span&gt; mode. SELinux has been growing in popularity for many reasons and is no longer used by just government organizations requiring &lt;a href="http://en.wikipedia.org/wiki/Mandatory_access_control"&gt;mandatory access control (MAC)&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Multilevel_security"&gt;multilevel security (MLS)&lt;/a&gt; systems. &lt;/p&gt;

&lt;p&gt;Among other things, &lt;span style="font-style:italic;"&gt;domain-types&lt;/span&gt; and data confidentiality help protect a system's integrity. In particular, Red Hat® (and its clones) have been delivering the “targeted” policy. According to the documentation, this policy is defined as follows:&lt;/p&gt;

&lt;blockquote&gt;Under the targeted policy, every subject and object runs in the unconfined_t domain except for the specific targeted daemons. The objects on the system that are in the &lt;span style="font-style:italic;"&gt;unconfined_t&lt;/span&gt; domain are allowed by SELinux to have no restrictions and fall back to using standard Linux security, that is, DAC. This policy is flexible enough to fit into enterprise infrastructures. The daemons that are part of the targeted policy run in their own domains and are restricted in every operation they perform on the system. This way daemons that are broken or exploited are limited in the damage they can do. &lt;/blockquote&gt;

&lt;p&gt;The targeted policy has grown to include domain-types such as &lt;span style="font-style:italic;"&gt;httpd_t&lt;/span&gt; and &lt;span style="font-style:italic;"&gt;samba_t&lt;/span&gt; to isolate Apache web services and Samba file sharing services respectively. &lt;/p&gt;

&lt;p&gt;Earlier versions of Security Blanket just ran in the &lt;span style="font-style:italic;"&gt;unconfined_t&lt;/span&gt; domain. However, if Security Blanket creates new configuration files for the operating system, in addition to setting the appropriate &lt;a href="http://en.wikipedia.org/wiki/Discretionary_access_control"&gt;discretionary access controls (DAC)&lt;/a&gt;, Security Blanket must ensure the &lt;a href="http://en.wikipedia.org/wiki/Security-Enhanced_Linux#Users.2C_policies_and_security_contexts"&gt;security context&lt;/a&gt; is set. In addition to writing the appropriate rules in the policy module to supplement the “targeted” policy, we have to ensure that all security contexts are maintained. We certainly didn't want to just tell our customers, “Just reboot and relabel.” &lt;/p&gt;

&lt;p&gt;In addition to code modifications, we have defined three specific domain-types for the following Security Blanket components: the console, the dispatcher, and the core engine. These independent domains will offer better isolation as well as tighten access controls on auditing and reporting data produced by Security Blanket.&lt;/p&gt;

&lt;p&gt;If you have questions regarding Security Blanket's SELinux support, send us an email at &lt;a href="mailto:SecurityBlanket@TrustedCS.com"&gt;SecurityBlanket@TrustedCS.com&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-7006301661183482519?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/7006301661183482519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/06/security-blanket-selinux-policy-module.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/7006301661183482519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/7006301661183482519'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/06/security-blanket-selinux-policy-module.html' title='Security Blanket SELinux Policy Module'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-6296459225344866566</id><published>2011-04-26T08:14:00.006-04:00</published><updated>2011-04-27T07:54:13.814-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Vulnerabilities'/><title type='text'>Do Software Engineers Encourage Bad Security Practices?</title><content type='html'>&lt;p&gt;Software engineers sometimes enable or even encourage bad security practices. You might be saying, “How dare he say that!” It's not the technology that we've chosen or developed but rather those convenient features which continue to enable system administrators to do bad things.&lt;/p&gt;

&lt;p&gt;For example, electronic mail (email) is probably the primary means of notifying system administrators of problems or job completion.  These emails might be notifying the system administrator that a backup job is complete, a system is down, or a system must be patched.&lt;/p&gt;

&lt;p&gt;Many vendor services such as a subscription to the Red Hat&lt;span class="shift"&gt;®&lt;/span&gt; Network will help system administrators manage their systems by sending a list of systems and the packages which need to be patched due to vulnerabilities. &lt;/p&gt;

&lt;p&gt;As a software engineer on a product which assesses and hardens the operating system, my customers ask me for an email notification capability. I reluctantly tell them that we are working on a “secure solution” but they wonder why it is such a big deal.&lt;/p&gt;

&lt;p&gt;When I explain to them that sending security assessment results of their systems via email isn't a smart thing to do, they can appreciate my concern but they still want the notification capability. &lt;/p&gt;

&lt;p&gt;The thought of listing how their systems are vulnerable over an unsecured email channel just makes me cringe. By the way, it isn't just the system administrators &amp;mdash; their own security officers are requesting such notifications. Oh, the horror. &lt;/p&gt;

&lt;p&gt;Nonetheless, my customers want it. I've proposed implementing technology which might mitigate the risk such as encrypting the emails. However, some people think that it is just too confusing and inconvenient for the end-user to configure. &lt;/p&gt;

&lt;p&gt;I have even suggested just sending a hyperlink to a secure console connection where they'll need to authenticate in order to see the assessment report.  In the end, perhaps I can convince the team to just deliver a pass or fail status of the client machines and provide a hyperlink.&lt;/p&gt;

&lt;p&gt;Many organizations are so scared of email attachments and phishing attacks they've set up elaborate complex mechanisms severely limiting email capabilities. When communicating with many of my customers, they request that I send emails with attachments (e.g., zip files) to their Hotmail™ or Gmail™ account because their work email won't accept such emails. &lt;/p&gt;

&lt;p&gt;When I ask them if I can place the file on our secure public website (https), send them a hyperlink and a &lt;a href="http://en.wikipedia.org/wiki/SHA-1"&gt;SHA-1&lt;/a&gt; fingerprint of the file via email, some respond with “Oh, I don't have access to download stuff from some websites.” Then I wonder why their employer permits them to go to Gmail and Hotmail.&lt;/p&gt;

&lt;p&gt;Some have even admitted that their system administrator related notifications are sent to their free Internet email accounts. Given all of the email security problems, such as hijacked accounts, all I can say again is “Oh, the horror!” &lt;/p&gt;

&lt;p&gt;Internal restrictions on email which result in personnel using outside resources is similar to the problem with excessively long and complicated password requirements. Users just end up writing the password down on a Post-it&lt;span class="shift"&gt;®&lt;/span&gt; note which is stuck to their monitor. &lt;/p&gt;

&lt;p&gt;As software engineers, we want to deliver the right solutions but when it comes to commercial products, the customers drive the features. Do we simply submit to these demands in order to make a buck or do we take a stand as leaders in information security and encourage system administrators to treat vulnerability data with more care?&lt;p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-6296459225344866566?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/6296459225344866566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/04/do-software-engineers-encourage-bad.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/6296459225344866566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/6296459225344866566'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/04/do-software-engineers-encourage-bad.html' title='Do Software Engineers Encourage Bad Security Practices?'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-3595609049651628438</id><published>2011-04-07T09:09:00.039-04:00</published><updated>2011-04-07T13:00:54.526-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Vulnerabilities'/><category scheme='http://www.blogger.com/atom/ns#' term='SCAP'/><category scheme='http://www.blogger.com/atom/ns#' term='OVAL'/><category scheme='http://www.blogger.com/atom/ns#' term='CVE'/><title type='text'>Detecting Vulnerable Software Versions Using SCAP/OVAL</title><content type='html'>&lt;p&gt;In a few of my &lt;a href="http://tcs-security-blanket.blogspot.com/2011/04/how-accurate-is-your-software.html"&gt;previous posts&lt;/a&gt;, I discussed misleading results some scanners might produce with regard to the versions of software present on your system. In this post, I will demonstrate how to use an &lt;a href="http://scap.nist.gov/"&gt;SCAP&lt;/a&gt; capable scanner using &lt;a href="http://oval.mitre.org/repository/about/other_repositories.html"&gt;vendor-maintained OVAL patch definitions&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In order to assess my system, I need an OVAL-capable scanner and data it can use to assess my system against. Let's start by downloading the source code to the &lt;a href="http://www.open-scap.org/"&gt;OpenSCAP&lt;/a&gt; scanner. Once downloaded, I'll build the scanner on my openSUSE 11.1 system:&lt;/p&gt;

&lt;pre&gt;
# /bin/tar xzvf openscap-0.7.0.tar.gz
# cd openscap-0.7.0/ 
# ./configure --prefix=/usr
# /usr/bin/make
# /usr/bin/make install
&lt;/pre&gt;

&lt;p&gt;Next I need some appropriate content the scanner can use to assess my system. Since I am running openSUSE 11.1, I need to get my specific &lt;a href="http://support.novell.com/security/oval/"&gt;OVAL patch definitions from Novell&lt;/a&gt;. I simply use curl to get the exact file:&lt;/p&gt;

&lt;pre&gt;# &lt;span style="font-weight:bold;color:yellow"&gt;/usr/bin/curl -O http://support.novell.com/security/oval/opensuse.11.1.xml&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Now, use the OpenSCAP command utility to assess the system and write the results to a file:&lt;/p&gt;

&lt;pre&gt;#  &lt;span style="font-weight:bold;color:yellow"&gt;/usr/bin/oscap oval eval --result-file ./myresults.xml ./opensuse.11.1.xml&lt;/span&gt;
…
…
…
Evalutated definition oval:org.opensuse.security:def:20070048: false 
Evalutated definition oval:org.opensuse.security:def:20070045: false 
Evalutated definition oval:org.opensuse.security:def:20054881: false 
Evaluation: All done. 
====== RESULTS ====== 
TRUE:            36 
FALSE:           1162 
ERROR:           0 
UNKNOWN:         0 
NOT EVALUATED:   0 
NOT APPLICABLE:  0 
&lt;/pre&gt;

&lt;p&gt;The last step is to create an HTML-formatted report from the results file:&lt;/p&gt;

&lt;pre&gt;# &lt;span style="font-weight:bold;color:yellow"&gt;/usr/bin/oscap oval generate report \
--output ./howamidoing.html ./myresults.xml&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;The report could do a better of job of correlating the reference identification to the actual vulnerable software. According to OpenSCAP's website, this is on their &amp;ldquo;to-do&amp;rdquo; list. &lt;/p&gt;

&lt;p&gt;The OVAL patch definitions comprise a &lt;span style="font-style:italic;"&gt;definition&lt;/span&gt; which identifies the &lt;span style="font-style:italic;"&gt;tests&lt;/span&gt; to be performed. The tests determine if an &lt;span style="font-style:italic;"&gt;object&lt;/span&gt; is in a particular &lt;span style="font-style:italic;"&gt;state&lt;/span&gt;. Let's consider a real world example and then we'll walk through the OVAL definition. A port scanner detects an Apache web server running:&lt;/p&gt;

&lt;pre&gt;# &lt;span style="font-weight:bold;color:yellow"&gt;/usr/bin/nmap -sV -p 80 localhost&lt;/span&gt;

Starting Nmap 4.75 ( http://nmap.org ) at 2011-04-06 08:32 EDT
Interesting ports on localhost (127.0.0.1):

PORT   STATE SERVICE VERSION
80/tcp open  http    &lt;span style="color:orange"&gt;Apache httpd 2.2.10&lt;/span&gt; ((Linux/SUSE))

Service detection performed. Please report any incorrect 
results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 6.17 seconds
&lt;/pre&gt;

&lt;p&gt;From this the security officer believes it is vulnerable to &lt;a href="http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2009-1195"&gt;CVE-2009-1195&lt;/a&gt;. Within minutes, they communicate the issue and demand the web server be shut down because it is not at least version 2.2.12! The Nessus&lt;span class="shift"&gt;®&lt;/span&gt; vulnerability scanner also reports version 2.2.10 however, its plug-in (#39521) &lt;span style="font-style:italic;"&gt;Backported Security Patch Detection (WWW)&lt;/span&gt; reports a low-severity problem.  Better than a false-positive but it still means that you'll need to investigate your installed version to see if it has been patched correctly.&lt;/p&gt;

&lt;p&gt;At this point, the system administrator verifies the package installed is version 2.2.10-2.9.1:&lt;/p&gt;

&lt;pre&gt;
# &lt;span style="font-weight:bold;color:yellow"&gt;/bin/rpm -q apache2&lt;/span&gt;
apache2-2.2.10-2.9.1
&lt;/pre&gt;

&lt;p&gt;However, the package's change log and a scan performed using the vendor-maintained OVAL definitions reports it is okay. This is effective because the vendor knows when the problem was  patched (&lt;a href="https://access.redhat.com/security/updates/backporting/"&gt;backported security fixes&lt;/a&gt;) and it is defined in the OVAL data file. Here is Novell's definition:&lt;/p&gt;

&lt;pre&gt;
&amp;lt;definition id="oval:org.opensuse.security:def:20091195"
      version="0" class="vulnerability"&amp;gt;
 &amp;lt;metadata&amp;gt;
 &amp;lt;title&amp;gt;CVE-2009-1195&amp;lt;/title&amp;gt;
   &amp;lt;affected family="unix"&amp;gt;
     &amp;lt;platform&amp;gt;openSUSE 11.1&amp;lt;/platform&amp;gt;
   &amp;lt;/affected&amp;gt;
   &amp;lt;reference ref_id="CVE-2009-1195"
       ref_url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1195"
       source="CVE"/&amp;gt;
   &amp;lt;description&amp;gt;
      The Apache HTTP Server 2.2.11 and earlier 2.2 versions does not properly
      handle Options=IncludesNOEXEC in the AllowOverride directive, which allows
      local users to gain privileges by configuring (1) Options Includes, (2)
      Options +Includes, or (3) Options +IncludesNOEXEC in a .htaccess file, and
      then inserting an exec element in a .shtml file.
   &amp;lt;/description&amp;gt;
 &amp;lt;/metadata&amp;gt;
&amp;lt;criteria operator="AND"&amp;gt;
   &amp;lt;criterion test_ref="oval:org.opensuse.security:tst:2009044425"
         comment="suse111 is installed"/&amp;gt;
   &amp;lt;criteria operator="OR"&amp;gt;
      &amp;lt;criterion test_ref="oval:org.opensuse.security:tst:2009055738"
             comment="apache2-devel less than 2.2.10-2.8.1"/&amp;gt;
      &amp;lt;criterion test_ref="oval:org.opensuse.security:tst:2009055739"
             comment="apache2-doc less than 2.2.10-2.8.1"/&amp;gt;
      &amp;lt;criterion test_ref="oval:org.opensuse.security:tst:2009055740"
             comment="apache2-example-pages less than 2.2.10-2.8.1"/&amp;gt;
      &amp;lt;criterion test_ref="oval:org.opensuse.security:tst:2009055741"
             comment="apache2-prefork less than 2.2.10-2.8.1"/&amp;gt;
      &amp;lt;criterion test_ref="oval:org.opensuse.security:tst:2009055742"
             comment="apache2-utils less than 2.2.10-2.8.1"/&amp;gt;
      &amp;lt;criterion test_ref="oval:org.opensuse.security:tst:2009055743"
             comment="apache2-worker less than 2.2.10-2.8.1"/&amp;gt;

&lt;span style="font-weight:bold;color:yellow"&gt;      &amp;lt;criterion test_ref="oval:org.opensuse.security:tst:2009055744"
             comment="apache2 less than 2.2.10-2.8.1"/&amp;gt;&lt;/span&gt;

      &amp;lt;/criteria&amp;gt;
&amp;lt;/criteria&amp;gt;
&amp;lt;/definition&amp;gt;
&lt;/pre&gt;

&lt;p&gt;The definition's criteria includes a test (...:tst:2009055744) to determine if the Apache package is less than 2.2.10-2.8.1. The test itself evaluates the object (...:obj:2009030668) to determine if it is installed and in a specific state (...:ste:2009037265):&lt;/p&gt;

&lt;pre&gt;&amp;lt;rpminfo_test id="oval:org.opensuse.security:tst:2009055744" version="0"
       comment="apache2 is &amp;lt;2.2.10-2.8.1"
       check="at least one" 
       xmlns="http://oval.mitre.org/XMLSchema/oval-definitions-5#linux"&amp;gt;
   &amp;lt;object object_ref="oval:org.opensuse.security:&lt;span style="color:yellow"&gt;obj:2009030668&lt;/span&gt;"/&amp;gt;
   &amp;lt;state state_ref="oval:org.opensuse.security:&lt;span style="color:yellow"&gt;ste:2009037265&lt;/span&gt;"/&amp;gt;
&amp;lt;/rpminfo_test&amp;gt;
&lt;/pre&gt;

&lt;p&gt;The object is an RPM package object and the name of the package is “apache2”:&lt;/p&gt;

&lt;pre&gt;&amp;lt;rpminfo_object id="oval:org.opensuse.security:&lt;span style="color:yellow"&gt;obj:2009030668&lt;/span&gt;"
         version="0"
         xmlns="http://oval.mitre.org/XMLSchema/oval-definitions-5#linux"&amp;gt;
  &amp;lt;name&amp;gt;apache2&amp;lt;/name&amp;gt;
&amp;lt;/rpminfo_object&amp;gt;
&lt;/pre&gt;

&lt;p&gt;Finally, if the package object's epoch-version-string (EVR) is less than 0:2.2.10-2.8.1 then the test is true and the installed software is vulnerable. &lt;/p&gt;

&lt;pre&gt;&amp;lt;rpminfo_state id="oval:org.opensuse.security:&lt;span style="color:yellow"&gt;ste:2009037265&lt;/span&gt;"
       version="0"
       xmlns="http://oval.mitre.org/XMLSchema/oval-definitions-5#linux"&amp;gt;
   &amp;lt;evr datatype="evr_string" operation="less than"&amp;gt;0:2.2.10-2.8.1&amp;lt;/evr&amp;gt;
&amp;lt;/rpminfo_state&amp;gt;
&lt;/pre&gt;

&lt;p&gt;However, our system is not vulnerable because we have 2.2.10-2.9.1 installed on the system. Too often system administrators believe they must build and maintain their own version of the Apache web server because they think the vendor's package is out-of-date and vulnerable. Unfortunately, in some cases they just want to avoid the heartburn and frustration which comes with trying to explain to auditors and security officers that they are not vulnerable. &lt;/p&gt;

&lt;p&gt;I have found that OVAL patch definitions are useful and accurate. However, if vendors don't maintain them, you'll have to do some more digging. And of course, if the software isn't installed as a package, you'll have to dig even more.  Overall, I am impressed with OpenSCAP and am excited about the growing OVAL repositories. &lt;/p&gt;

&lt;br/&gt;
&lt;hr style="width:100px" align="left" /&gt;
&lt;p&gt;NOTE: OVAL patch definition repositories for &lt;a href="http://www.debian.org/security/oval/"&gt;Debian&lt;/a&gt;, &lt;a href="https://www.redhat.com/security/data/oval/"&gt;Red Hat&lt;/a&gt;, and others (including Microsoft) can be found &lt;a href="http://oval.mitre.org/repository/about/other_repositories.html"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-3595609049651628438?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/3595609049651628438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/04/detecting-vulnerable-software-versions.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/3595609049651628438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/3595609049651628438'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/04/detecting-vulnerable-software-versions.html' title='Detecting Vulnerable Software Versions Using SCAP/OVAL'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-1124234415515540855</id><published>2011-04-04T16:01:00.029-04:00</published><updated>2011-04-05T10:16:22.453-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Vulnerabilities'/><category scheme='http://www.blogger.com/atom/ns#' term='DISA UNIX STIG'/><category scheme='http://www.blogger.com/atom/ns#' term='CVE'/><title type='text'>How Accurate is your Software Vulnerability Scanner?</title><content type='html'>&lt;p&gt;When it comes to determining if the version of software present on your system is vulnerable, it isn't always as straightforward as you might think. First, you must identify  all of the software on your system and then determine if it is a vulnerable version. At this point, you must decide if the risk is worth mitigating by applying a patch.&lt;/p&gt;

&lt;p&gt;My job at Raytheon Trusted Computer Solutions is to architect and develop software which focuses on securely configuring operating systems and software components. Patch management tools and software version scanners are only concerned with the version of software present on your system.  For example, our &lt;a href="http://www.trustedcs.com/SecurityBlanket/SecurityBlanket.html"&gt;Security Blanket&lt;span class="shift"&gt;&amp;reg;&lt;/span&gt; product&lt;/a&gt; would ensure that the &lt;a href="http://www.samba.org/"&gt;Samba&lt;/a&gt; file sharing software is configured to disallow anonymous guest connections while a software version scanner is only concerned with the version of Samba.&lt;/p&gt;

&lt;p&gt;We've been asked by some of our customers if we'd consider including software version checking in Security Blanket. I thought about the myriad of scanners and their methods and I've come to a realization…… there really isn't a complete, accurate solution available. &lt;/p&gt;

&lt;p&gt;Before everyone jumps to the defense of their favorite product or tool, let me explain. First and foremost, you must be able to determine what software is on your system. Generally, the two most widely used methods are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Query the package database to see what has been “installed.”&lt;/li&gt;
&lt;li&gt;Remotely scan open network ports. Many of these tools have proprietary algorithms which utilize service signatures to aid in the determination of which  versions of software are running.&lt;/li&gt;
&lt;/ul&gt; 

&lt;p&gt;These both seem straightforward. However, what about all of the software which has been copied onto systems in non-package form, such as Apache Tomcat&lt;span class="shift"&gt;&amp;trade;&lt;/span&gt; servers and the numerous &lt;a href="http://en.wikipedia.org/wiki/JAR_file"&gt;JAR files&lt;/a&gt; used? This information isn't in the package database because it wasn't “installed” &amp;mdash; just copied.&lt;/p&gt;

&lt;p&gt;Maybe the port scan will detect and identify the Tomcat instances &amp;mdash; provided they are running and are accessible via the network being scanned. Many of these port scanners first check to see if the service is advertising its version but these days most system administrators suppress the version information. The port scanner must then resort to its service signatures which isn't 100% accurate.&lt;/p&gt;

&lt;p&gt;Additionally, what about all of those plug-ins and components Tomcat may be using? What about software in non-package form and  not exposed via the network? Let's say a sysadmin decided they need multiple Java Runtime Environments (JRE) and Java Development Kits (JDK) so, they copy them onto the system in non-package form. &lt;/p&gt;

&lt;p&gt;Some scanners might inventory all “notable” executable files on the file systems such as locating all files named “&lt;tt&gt;java&lt;/tt&gt;” or “&lt;tt&gt;javac&lt;/tt&gt;”.  If you do locate any, how do you determine their version? You certainly don't want to simply execute it with “java -version” because it may be a Trojan horse! This is what got the &lt;a href="http://iase.disa.mil/"&gt;DISA FSO&lt;/a&gt; in trouble in September 2009 (&lt;a href="http://tcs-security-blanket.blogspot.com/2009/12/disa-unix-srr-vulnerability.html"&gt;see CVE-2009-4211&lt;/a&gt;).  This is a time consuming and ineffective technique, and not to mention, possibly dangerous. &lt;/p&gt;

&lt;p&gt;Once you've identified the software present on your system, you need to determine if it is in fact a vulnerable version. This has frustrated many of my customers in the past. Let's consider &lt;a href="http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-4180"&gt;CVE-2010-4180&lt;/a&gt; which identifies a vulnerability in “&lt;span style="font-style:italic;"&gt;OpenSSL before 0.9.8q, and 1.0.x before 1.0.0c&lt;/span&gt;.”&lt;/p&gt;

&lt;p&gt;The diligent sysadmin checks their installed package version and then verifies the command file (&lt;tt&gt;/usr/bin/openssl&lt;/tt&gt;) before executing it to discover that 0.9.8h is present.&lt;/p&gt;

&lt;pre&gt;# &lt;span style="font-weight:bold;color:yellow"&gt;/bin/rpm -q openssl&lt;/span&gt;
openssl-0.9.8h-28.20.1

# &lt;span style="font-weight:bold;color:yellow"&gt;/bin/rpm -qf /usr/bin/openssl&lt;/span&gt;
openssl-0.9.8h-28.20.1

# &lt;span style="font-weight:bold;color:yellow"&gt;/bin/rpm -Vv openssl |/bin/egrep /usr/bin/openssl&lt;/span&gt;
........    /usr/bin/openssl


# &lt;span style="font-weight:bold;color:yellow"&gt;/usr/bin/openssl version&lt;/span&gt;
OpenSSL 0.9.8h 28 May 2008
&lt;/pre&gt;

&lt;p&gt;At this point the logical conclusion is that this software must be  patched. It is deceiving because the package version is actually 0.9.8h and &lt;span style="font-style:italic;"&gt;vendor release 28.20.1&lt;/span&gt;. If you examine the package's change log, you'll see that the package has been patched to fix the CVE-2010-4180 even though the vendor didn't change the major version number (0.9.8h). &lt;/p&gt;

&lt;pre&gt;
# &lt;span style="font-weight:bold;color:yellow"&gt;/bin/rpm -q openssl --changelog&lt;/span&gt;

* Tue Dec 07 2010 gjhe@novell.com
- fix bug [bnc#657663]
  CVE-2010-4180
  for CVE-2010-4252,no patch is added(for the J-PAKE
  implementaion is not compiled in by default).
&lt;/pre&gt;

&lt;p&gt;Scanners which use &lt;a href="http://oval.mitre.org/repository/about/other_repositories.html"&gt;vendor-maintained OVAL patch definitions&lt;/a&gt; would know that this package is okay. Unfortunately, not all vendors or open-source projects provide this level of detail. &lt;/p&gt;

&lt;p&gt;The bottom line is that system administrators must take into account all methods in which software may get copied (or installed) onto their systems. A strong change management program and strict access to systems is required. System administrators must be aware of any and all changes to their systems. Software patching is inevitable.  Unfortunately, I have yet to experience an all-encompassing software version scanner and patch management tool.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-1124234415515540855?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/1124234415515540855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/04/how-accurate-is-your-software.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/1124234415515540855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/1124234415515540855'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/04/how-accurate-is-your-software.html' title='How Accurate is your Software Vulnerability Scanner?'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-7771934058649532307</id><published>2011-03-01T07:02:00.015-05:00</published><updated>2011-03-01T08:42:07.610-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCAP'/><title type='text'>U.S. Government Configuration Baseline for Red Hat Enterprise Linux 5</title><content type='html'>&lt;p&gt;On February 28, 2011, the &lt;a href="http://usgcb.nist.gov/index.html"&gt;U.S. Government Configuration Baseline&lt;/a&gt; (USGCB) for Red Hat Enterprise Linux 5 was released. The long awaited &lt;a href="http://scap.nist.gov/"&gt;Security Content Automation Protocol (SCAP)&lt;/a&gt; content is the next phase in supplanting the legacy Bourne shell scripts collectively known as the System Readiness Review (SRR) scripts.&lt;/p&gt; 

&lt;p&gt;In 2010, the USGCB replaced the &lt;a href="http://en.wikipedia.org/wiki/Federal_Desktop_Core_Configuration"&gt;Federal Desktop Core Configuration&lt;/a&gt; (FDCC) which has always been associated with Microsoft® software. The USGCB initiative is to create security configuration baselines for Information Technology products widely deployed across the federal agencies.&lt;/p&gt; 

&lt;p&gt;In my previous post, “&lt;a href="http://tcs-security-blanket.blogspot.com/2011/02/disa-unix-stig-for-red-hat-enterprise.html"&gt;DISA UNIX STIG for Red Hat Enterprise Linux 5 and 6&lt;/a&gt;” I discussed the release of the “OS SRG (UNIX), Version 1.1” on February 2, 2011. The download included only benchmark documents in the &lt;a href="http://scap.nist.gov/specifications/xccdf/"&gt;XCCDF&lt;/a&gt; format. &lt;/p&gt;

&lt;p&gt;On February 28, 2011, in an email to Red Hat&amp;rsquo;s &lt;a href="https://www.redhat.com/mailman/listinfo/gov-sec"&gt;&lt;span style="font-style:italic;"&gt;gov-sec&lt;/span&gt; mailing list&lt;/a&gt;, Steve Grubb announced the availability of the &lt;span style="font-style:italic;"&gt;alpha&lt;/span&gt; release of the USGCB content for Red Hat Enterprise Linux 5. He also had this to say about the project:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;“The project took a long time, required getting involved in standards committees to update OVAL to understand modern Linux security mechanisms, plus lots of work from people that do content authoring and system testing. The project is looking for feedback via the official NIST channels (not this email list). Somewhere in the downloads should be some info on that.”&lt;/p&gt;
&lt;p&gt;&lt;a href="http://usgcb.nist.gov/usgcb/rhel_content.html"&gt;http://usgcb.nist.gov/usgcb/rhel_content.html&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This release has only been tested on Red Hat Enterprise Linux Desktop 5 so, if you&amp;rsquo;ve got the time, test some Red Hat installations and provide some feedback. I want to commend the committee and the contributors because I know it was a long and laborious process. There are still lots of challenges ahead so community involvement will certainly help mature the baselines much quicker. &lt;/p&gt;

&lt;p&gt;I, for one plan on downloading the latest version of &lt;a href="http://www.open-scap.org/page/Main_Page"&gt;OpenSCAP&lt;/a&gt; and performing some tests. I will be sharing my procedures, experiences, and test results in an upcoming blog post. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-7771934058649532307?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/7771934058649532307/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/03/us-government-configuration-baseline.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/7771934058649532307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/7771934058649532307'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/03/us-government-configuration-baseline.html' title='U.S. Government Configuration Baseline for Red Hat Enterprise Linux 5'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-8976614172219169596</id><published>2011-02-09T13:06:00.040-05:00</published><updated>2011-02-10T09:27:45.796-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCAP'/><category scheme='http://www.blogger.com/atom/ns#' term='DISA UNIX STIG'/><title type='text'>DISA UNIX STIG for Red Hat Enterprise Linux 5 and 6</title><content type='html'>&lt;p&gt;Organizations which use Red Hat Enterprise Linux 5 and must adhere to the U.S. Defense Information Systems Agency's (DISA) UNIX Security Technical Implementation Guide (STIG) have been stuck with documentation and assessment tools which only support up to Red Hat Enterprise Linux 4. This frustrates many system administrators because they must deal with false positives produced by the System Readiness Review (SRR) scripts and a checklist with incorrect procedures. &lt;/p&gt;

&lt;p&gt;The only hint of future support is seen on the &lt;a href="http://iase.disa.mil/"&gt;DISA Field Security Office (FSO)&lt;/a&gt; website under their frequently asked questions (FAQ). The question, “When will there be a RedHat 5 STIG and SRR scripts?” was &lt;a href="http://iase.disa.mil/stigs/faq.html#9"&gt;answered as follows:&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;“FSO is currently working with the vendor and the DoD Consensus team to develop the security requirements for RedHat5. FSO has no plans to develop UNIX scripts which support RedHat5 since they are moving towards utilizing the Security Content Automation Protocols and HBSS (Host Based Security System) Policy Auditor for future assessments. There is no estimated completion date at this time for the HBSS Policy Auditor RedHat5 benchmark. FSO expects to have the STIG completed by late FY10 or early FY11.” &lt;/blockquote&gt;

&lt;p&gt;In January 2011, Red Hat Enterprise Linux 6 was released adding to the frustration. In a January 27, 2011 email, Steve Grubb (Red Hat) writes to the &lt;a href="https://www.redhat.com/mailman/listinfo/gov-sec"&gt;&lt;span style="font-style:italic;"&gt;gov-sec&lt;/span&gt; mailing list&lt;/a&gt; that Red Hat Enterprise Linux 6 includes an &lt;a href="http://www.open-scap.org/page/Main_Page "&gt;OpenSCAP&lt;/a&gt; scanner.&lt;/p&gt;

&lt;p&gt;Before I go into too much detail about OpenSCAP, I should give a little background. The STIGs are published by DISA FSO. There are three pieces:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;UNIX STIG V5R1 (April 2006) — This is the main document and it gives plenty of explanations, rationale, and general information.&lt;/li&gt;
&lt;li&gt;UNIX Security Checklist (published quarterly) — details the requirements by line item to include what to look for in configuration files as well as commands to be executed.&lt;/li&gt;
&lt;li&gt;System Readiness Review (SRR) Scripts (published quarterly) — scan the operating system for compliancy. To download, you must have DoD PKI access.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The checklists and associated SRR scripts are the components most people have heartburn about. In May 2010, the DISA FSO gave a presentation titled “&lt;a href="http://www.disa.mil/conferences/2010/files/briefing_slides/STIG_SCAP_Data_Metrics.pdf "&gt;STIGs, SCAP, and Data Metrics&lt;/a&gt;.” In this presentation, they identified some “Maintenance Challenges”:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;High demand from the user community for new and updated security guidance&lt;/li&gt;
&lt;li&gt;Rapid pace of new technology&lt;/li&gt;
&lt;li&gt;Limited resources to develop guidance and tools to evaluate compliance&lt;/li&gt;
&lt;li&gt;Development and maintenance of varying tools/techniques for supporting compliance checks:&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Gold Disk (Windows)&lt;/li&gt;
&lt;li&gt;Security Readiness Review Scripts (Unix, some DB)&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;

&lt;p&gt;The SRR scripts have always been written in &lt;a href="http://en.wikipedia.org/wiki/Bourne_shell"&gt;Bourne shell script&lt;/a&gt; for portability reasons. However, the difficulty in maintaining the collection of scripts, limited reporting capabilities, and lack of interoperability with other tools has pushed DISA in a new direction.  &lt;/p&gt;

&lt;p&gt;The Information Security Automation Program (ISAP) is a U.S. government multi-agency initiative to enable automation and standardization of technical security operations. ISAP’s technical specifications are contained in the related Security Content Automation Protocol (SCAP). &lt;/p&gt;

&lt;p&gt;ISAP’s security automation content is either contained within, or referenced by, the National Vulnerability Database (NVD) maintained by NIST. Current SCAP protocols include &lt;a href="http://cve.mitre.org/index.html"&gt;CVE&lt;/a&gt;, &lt;a href="http://cce.mitre.org/"&gt;CCE&lt;/a&gt;, &lt;a href="http://cpe.mitre.org/"&gt;CPE&lt;/a&gt;, &lt;a href="http://www.first.org/cvss/"&gt;CVSS&lt;/a&gt;, &lt;a href="http://oval.mitre.org/"&gt;OVAL&lt;/a&gt;, and &lt;a href="http://scap.nist.gov/specifications/xccdf/"&gt;XCCDF&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In the aforementioned presentation, DISA went on to say that they were “Developing Security Requirements Guides (SRGs) that address overarching requirements...” in order to “promote structure.”&lt;/p&gt;

&lt;p&gt;On February 2, 2011, DISA FSO posted “OS SRG (UNIX), Version 1.1” which was completed in November 2010.  The downloaded archive contained several files but no Microsoft Word formatted Checklist document (I can live with that). Instead, you get two XML documents:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Operating System Security Requirements Guide (UNIX Version)&lt;/li&gt;
&lt;li&gt;Operating System Policy Security Requirements Guide (UNIX Version)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The documents are in what is referred to as XCCDF. According to the provided “STIG Transformation to XCCDF FAQ” document.&lt;/p&gt;

&lt;blockquote&gt;The move to an eXtensible Configuration Checklist Description Format (XCCDF) formatted STIG provides the ability for the consumption of the STIGs by the various automated assessment tools, such as Host Based Security System (HBSS).&lt;/blockquote&gt;

&lt;p&gt;According to the FAQ, “The STIG is still used the same way; it is just that the data is in a different format.” They do provide an XSL to transform the XCCDF/XML documents to XHTML so you can read them in your web browser.&lt;/p&gt;

&lt;p&gt;As an engineer, I love the idea of promoting structure so this makes sense to me. Now that I found my checklists, how can I perform a scan like I did with the SRR scripts? &lt;/p&gt;

&lt;p&gt;According to the email announcement from DISA FSO, the “automated assessments can then be accomplished using SCAP compliant tools through the use of DISA generated benchmarks based on the STIG requirements.  This will replace the UNIX SRR scripts.”&lt;/p&gt;

&lt;p&gt;A benchmark is the version of the STIG that contains the Open Vulnerability and Assessment Language (OVAL) code. This code allows an OVAL-compliant security tool to perform an automated assessment of the system. This is similar to the quarterly released checklist and associated SRR scripts which are used today.&lt;/p&gt;

&lt;p&gt;Like the SRR scripts, the benchmark does not contain all the checks necessary to meet the STIG requirements. For example, GEN00080 requires that “all server system equipment must be located in a controlled area.” There is no way an automated benchmark could check for this so you would have to “manually” verify this yourself. &lt;/p&gt;

&lt;p&gt;Based on the information above, I need a benchmark (OVAL content) in order to assess a system. The FAQ document lists the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;STIG-OVAL.xml – This file contains the detailed OVAL check code. This will only be provided if OVAL exists for the technology.&lt;/li&gt;
&lt;li&gt;STIG-CPE-OVAL.xml - This is OVAL code that will provide information to the tool on how to check to see if the product being evaluated exists on the system.&lt;/li&gt;
&lt;li&gt;STIG-CPE-DICTIONARY.xml – This is the file that contains the CPE information about the product.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, I could not find any of those files. The only XML files found were the checklist documents. According to the DISA FSO email announcement, this content won't be available until late 2011.  &lt;/p&gt;

&lt;p&gt;Out of curiosity, I went to the &lt;a href="http://web.nvd.nist.gov/view/ncp/repository"&gt;NVD website&lt;/a&gt; and searched through all of the operating system checklists. Specifically, I needed a checklist with the associated OVAL content in order to assess the system. &lt;/p&gt;

&lt;p&gt;I found 164 checklists, most of them are for &lt;a href="http://www.microsoft.com/industry/government/solutions/usgcb/default.aspx"&gt;Microsoft products to support the  U.S. Government Configuration Baseline (USGCB)&lt;/a&gt;, formerly known as the &lt;a href="http://en.wikipedia.org/wiki/Federal_Desktop_Core_Configuration"&gt;Federal Desktop Core Configuration (FDCC)&lt;/a&gt;. The only UNIX/Linux related content I found were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;zOS ACF2 STIG Checklist (Version 6, Release 4) (XCCDF only)&lt;/li&gt;
&lt;li&gt;zOS TSS STIG Checklist (Version 6, Release 4) (XCCDF only)&lt;/li&gt;
&lt;li&gt;zOS RACF STIG Checklist (Version 6, Release 4) (XCCDF only)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://web.nvd.nist.gov/view/ncp/repository/checklistDetail?id=294 "&gt;DoD Consensus Security Configuration Checklist for Red Hat Enterprise Linux 5&lt;/a&gt; (XCCDF and OVAL Content, yeah!) 
&lt;/ul&gt;

&lt;p&gt;However, there is no OVAL content to support the UNIX STIG. The Red Hat content listed above had both the checklist and the OVAL content but it was only for Red Hat Enterprise Linux 5 and not for the UNIX STIG. &lt;/p&gt;

&lt;p&gt;The &lt;a href="http://scap.nist.gov/index.html"&gt;SCAP&lt;/a&gt; website emphasizes the importance of community involvement. It appears that DISA's strategy is to focus on developing the Security Requirement Guides (SRGs) and associated checklists (XCCDF) while the “community” develops the OVAL content. This alleviates them from having to write and maintain the SRR scripts. &lt;/p&gt;

&lt;p&gt;Presently, the primary vendor contributing to content is Red Hat. As a matter of fact, they are sponsoring the OpenSCAP project, hence the delivery of the OpenSCAP scanner in Fedora 14 and Red Hat Enterprise Linux 6. &lt;/p&gt;

&lt;p&gt;So the bottom line is Red Hat Enterprise Linux 5 and 6 are still not supported by the DISA UNIX STIG. It is expected that vendors (and the SCAP community) will deliver the appropriate SCAP content to assess systems in late 2011. Until then, system administrators can continue to use the SRR scripts and deal with false positives on the newer Red Hat distributions.&lt;/p&gt;

&lt;p&gt;In my next blog post, I will discuss Security Blanket's use of SCAP enumeration and mapping specifications as well as our possible role as a “producer.”&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-8976614172219169596?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/8976614172219169596/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/02/disa-unix-stig-for-red-hat-enterprise.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/8976614172219169596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/8976614172219169596'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/02/disa-unix-stig-for-red-hat-enterprise.html' title='DISA UNIX STIG for Red Hat Enterprise Linux 5 and 6'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-6406930954655254287</id><published>2011-01-28T11:52:00.032-05:00</published><updated>2011-01-31T05:59:29.723-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DISA UNIX STIG'/><category scheme='http://www.blogger.com/atom/ns#' term='NSA'/><title type='text'>Common Criteria (ISO 15408) Evaluation Assurance Level</title><content type='html'>&lt;p&gt;I develop security products for Linux&amp;reg; and many of my customers are only permitted to implement technology with a specific level of assurance. &lt;/p&gt;

&lt;p&gt;Most of these customers must also adhere to the U.S. Defense Information Systems Agency (DISA) &lt;a href="http://iase.disa.mil/stigs/index.html"&gt;UNIX Security Technical Implementation Guide (STIG)&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;I have been asked, &amp;ldquo;Since &lt;a href="http://www.redhat.com/solutions/government/certifications/"&gt;Red Hat Enterprise Linux 4 and 5 are Common Criteria EAL4+ certified&lt;/a&gt;, do they still need to be tested against the DISA UNIX STIG?&amp;rdquo; The answer is YES, they do.&lt;/p&gt;

&lt;p&gt;First of all, I don't work for DISA or Red Hat but I do have years of experience in this area so, I will try to shed some light on this topic. &lt;/p&gt;

&lt;p&gt;The &lt;a href="http://www.commoncriteriaportal.org/cc/"&gt;Common Criteria for Information Technology Security Evaluation&lt;/a&gt; (abbreviated as Common Criteria or CC) is an international standard (&lt;a href="http://standards.iso.org/ittf/PubliclyAvailableStandards/index.html"&gt;ISO/IEC 15408&lt;/a&gt;) for computer security certification. It originated from three standards: &lt;a href="http://en.wikipedia.org/wiki/ITSEC" title="European - Information Technology Security Evaluation Criteria"&gt;ITSEC&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/CTCPEC" title="Canadian Trusted Computer Product Evaluation Criteria"&gt;CTCPEC&lt;/a&gt;, and &lt;a href="http://en.wikipedia.org/wiki/TCSEC" title="U.S. DoD - Trusted Computer System Evaluation Criteria"&gt;TCSEC&lt;/a&gt;.&lt;/p&gt; 

&lt;p&gt;Common Criteria is a framework in which computer system users can specify their security functional and assurance requirements. Vendors can then implement and/or make claims about the security attributes of their products, and testing laboratories can evaluate the products to determine if they actually meet the claims.&lt;/p&gt;

&lt;p&gt;To obtain a certification, organizations can go through  the &lt;a href="http://www.niap-ccevs.org/"&gt;National Information Assurance Partnership's (NIAP) Common Criteria Evaluation and Validation Scheme (CCEVS)&lt;/a&gt;. The NIAP is a U.S. government initiative to meet the security testing needs of both information technology consumers and producers and is operated by the National Security Agency (NSA).&lt;/p&gt;

&lt;p&gt;The &lt;a href="http://en.wikipedia.org/wiki/Evaluation_Assurance_Level"&gt;Evaluation Assurance Level (EAL1 through EAL7)&lt;/a&gt; of an IT product or system is a numerical grade assigned following the completion of a Common Criteria security evaluation.&lt;/p&gt; 

&lt;p&gt;To achieve a particular EAL, the computer system must meet specific assurance requirements. Most of these requirements involve design documentation, design analysis, functional testing, and/or penetration testing. The EAL number assigned to a certified system indicates that the system completed all requirements for that level.&lt;/p&gt;

&lt;p&gt;In some cases, the evaluation may be augmented to include assurance requirements beyond the minimum required for a particular EAL. Officially this is indicated by following the EAL number with the word augmented and usually with a list of codes to indicate the additional requirements. As shorthand, vendors will often simply add a "plus" sign (as in EAL4+) to indicate the augmented requirements.&lt;/p&gt;

&lt;p&gt;One particular augmentation is the evaluation against the Labeled Security Protection Profile (LSPP). The LSPP requirements are derived from the B1 class of the U.S. Department of Defense security standard called &lt;a href="http://en.wikipedia.org/wiki/TCSEC"&gt;Trusted Computer System Evaluation Criteria (TCSEC)&lt;/a&gt; which was originally published in 1985.&lt;/p&gt; 

&lt;p&gt;The &lt;a href="http://en.wikipedia.org/wiki/Multilevel_security"&gt;Multilevel Security (MLS)&lt;/a&gt; component of &lt;a href="http://en.wikipedia.org/wiki/SELinux"&gt;Security-Enhanced Linux (SELinux)&lt;/a&gt; helps a Linux operating system successfully pass an evaluation against the LSPP. SELinux is predominantly available in Red Hat-based systems but is also available in Debian as of the etch release, Ubuntu as of 8.04 Hardy Heron, Hardened Gentoo, Yellow Dog Linux, and openSUSE 11.1.&lt;/p&gt;

&lt;p&gt;When I think of an EAL certification, I think of &lt;a href="http://www.ul.com/global/eng/pages/"&gt;Underwriters Laboratory (UL)&lt;/a&gt; certifying the safety of an appliance like a toaster. It says that the toaster is safe as designed but if you use it in an incorrect manner&amp;mdash;like sticking a metal knife in it while it is plugged in&amp;mdash;then all bets are off. The certified operating system has the capabilities and features to meet the tested security level but in many cases, you must still configure and enable those controls. Hence, the implementation of security guidelines such as DISA UNIX STIG and Center for Internet Security Benchmarks. &lt;/p&gt;

&lt;p&gt;Of particular interest to my customer base are the Linux operating systems. Here are a few:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Red Hat Enterprise Linux 3 is EAL3+ CAPP&lt;/li&gt;
&lt;li&gt;Red Hat Enterprise Linux 4 is EAL3+ CAPP and EAL4+ CAPP &lt;/li&gt;
&lt;li&gt;Red Hat Enterprise Linux 5 is EAL4+ CAPP/RBACPP/LSPP&lt;/li&gt;
&lt;li&gt;Red Hat Enterprise Linux 6 (Pursuing EAL4+) (&lt;a href=" http://press.redhat.com/2010/08/11/red-hat-enterprise-linux-6-kvm-to-pursue-security-certification/"&gt;Read the announcement here&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Novell SUSE Linux Enterprise Server 10 SP1 is EAL4+&lt;/li&gt;
&lt;li&gt;Oracle Enterprise Linux 4.4 and 4.5 is EAL4+ (&lt;a href="http://www.commoncriteriaportal.org/products/"&gt;See here&lt;/a&gt; under the operating system section)&lt;/li&gt;
&lt;li&gt;Oracle Enterprise LInux 5.1 is EAL4+ LSPP (&lt;a href="http://www.oracle.com/technetwork/topics/security/oel-lspp-eal4-configuration-v211-167828.pdf"&gt;See here&lt;/a&gt;)
&lt;/ul&gt;
&lt;p&gt;It is my understanding that even though &lt;a href="http://www.centos.org/"&gt;CentOS Linux&lt;/a&gt; is built from publicly available Red Hat sources, it is NOT EAL4+ certified.&lt;/p&gt;

&lt;p&gt;The associated cost with certifying an operating system or application has been a deterrent for many open source development communities and a source of frustration for technologists wanting to implement different solutions. Also, these certifications can take months, even years, to achieve. This time line can significantly delay the adoption in organizations with strict requirements for these validations, such as the military and government agencies.&lt;/p&gt;

&lt;p&gt;I hope this information was helpful in explaining the Command Criteria (ISO/IEC 15408) Evaluation Assurance Level. Watch for my next article in which I will discuss the availability of the DISA UNIX STIG for Linux operating system versions as well as &lt;a href="http://en.wikipedia.org/wiki/Security_Content_Automation_Protocol"&gt;SCAP&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-6406930954655254287?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/6406930954655254287/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/01/what-is-common-criteria-iso-15408.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/6406930954655254287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/6406930954655254287'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/01/what-is-common-criteria-iso-15408.html' title='Common Criteria (ISO 15408) Evaluation Assurance Level'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-2671522414506711532</id><published>2011-01-14T15:06:00.002-05:00</published><updated>2011-01-14T15:15:14.784-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Access Controls'/><category scheme='http://www.blogger.com/atom/ns#' term='CAG'/><title type='text'>Tips for Taking Charge of a Sysadmin Team</title><content type='html'>&lt;p&gt;Over the years I have worked in various roles but the most challenging has been when I assumed control of an already established system administration team. Several times, a former colleague moved to a new company and inherited a system administration organization that needed some improvements. I am proud to say that those colleagues convinced me to work for them again to overhaul the system administration operations. &lt;/p&gt;

&lt;p&gt;Each of us has our own leadership style and everyone's approach may differ from organization to organization; nonetheless, I wanted write about my approach. First of all, I have a handful of generic questions I ask:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What am I responsible for?&lt;/li&gt;
&lt;li&gt;Does the architecture make sense? Are there any overlaps of responsibility?&lt;/li&gt;
&lt;li&gt;Who has access to the assets I am responsible for?&lt;/li&gt;
&lt;li&gt;What are we doing to maintain system availability? Backups?&lt;/li&gt;
&lt;li&gt;What is our configuration management process? How fast do we turn up systems and introduce new applications? &lt;/li&gt;
&lt;li&gt;What are the strengths and weaknesses of my team?&lt;/li&gt;
&lt;li&gt;What are we missing?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When I enter the organization, I don't immediately request access to the systems but rather I begin going over architectural diagrams, operational procedures, and just peering over the shoulders of the system administrators. If the aforementioned documents are not present, then we have a problem. &lt;/p&gt;

&lt;p&gt;It is imperative that there is a clear understanding of the system components within the architecture. I would immediately have the team begin compiling diagrams and work flows so that we can understand the system's architecture. &lt;/p&gt;

&lt;p&gt;This would include high-level diagrams as well as a detailed asset management inventory of EVERY host. I want to see every host,  its operating system version, and respective application versions (e.g., Tomcat, Oracle, Apache).&lt;/p&gt;

&lt;p&gt;I would also require networking diagrams and a mapping of each system component to a particular organizational group. For example, a particular database contains billing information and it is used by group XYZ.  Who maintains that database schema and the software which manages the data? I would begin mapping those groups to system components so my team has a clear understanding what organizations they are supporting.&lt;/p&gt;

&lt;p&gt;Next, I would set out to change the password of every privileged account in the system. This is where some people become upset, but remind yourself it is for the best. As we make changes to the system to stabilize it or improve performance, we need to know exactly what changes were made. This password changing step is imperative in order to clearly identify who has access to the system. &lt;/p&gt;

&lt;p&gt;I would ensure that every system is logging and auditing accordingly so you can see who is attempting and gaining access to privileged accounts. Furthermore, I would no longer allow any privileged account (e.g., root and oracle) to be logged into directly. &lt;/p&gt;

&lt;p&gt;Secondly, I would start changing the root password on every system and only give it out to a select few senior system administrators. We can sort out sudo access for junior administrators as we move forward. Next, I would work with the lead database administrator and  have the appropriate account passwords changed.&lt;/p&gt;

&lt;p&gt;As people start complaining they no longer have access, we will evaluate each individual's role and determine if they truly need access. Too often system developers have root access to production systems. If developers need access to production systems, then, in my opinion, the application isn't ready for production. &lt;/p&gt;
 
&lt;p&gt;Of course, while reviewing these critical system and application accounts the system administrator accounts should also be reviewed. Sometimes, you will find accounts for  individuals who are no longer employed so it should be removed immediately. I would also set password aging on system administrator accounts so that unused accounts are locked. This will help identify dormant accounts. &lt;/p&gt;

&lt;p&gt;Once I have narrowed down the systems I am responsible for and who has access to them, I will closely examine the architecture and processes to ensure business continuity. Are we doing backups? Do we have redundant or mirrored storage solutions? How often do we test fail over and recovery procedures?&lt;/p&gt;

&lt;p&gt;By this time, you should already have a good understanding of the existing change management processes. If it is insufficient, then lobby to get it fixed! Do you have a high provisioning rate? In other words, are new systems routinely being inserted into production with little-to-no testing?&lt;/p&gt;

&lt;p&gt;Understanding the team is critical. You're always going to find an eclectic blend of personalities and talent in a group of system administrators. It's your job as a leader to determine who really “knows their stuff” and who has everyone bamboozled. Find out who the information hoarders are and those who have been stuck in a role they aren't happy in. &lt;/p&gt;

&lt;p&gt;Lastly, you might stumble across some strange component in the architecture that is either antiquated or is just completely different from everything else. For example, the architecture is comprised of 99% Red Hat Linux and you have one HP-UX box running one small application  and none of the system administrators knows anything about it. &lt;/p&gt;

&lt;p&gt;My first question is how did it get into the architecture? What's the long term plan to maintain and support it? Will the team get any training on it? Or is this one of those situations where someone outside of the operations group has been granted exclusive root access to the system? [Cringe] &lt;/p&gt;

&lt;p&gt;In the end, it is really your experience and leadership which can help to improve a system administration team. It has been my experience that having a clear picture of the environment you are expected to build and maintain is a critical first step to ensuring the success of the team.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-2671522414506711532?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/2671522414506711532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/01/tips-for-taking-charge-of-sysadmin-team.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/2671522414506711532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/2671522414506711532'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/01/tips-for-taking-charge-of-sysadmin-team.html' title='Tips for Taking Charge of a Sysadmin Team'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-5908699346998245310</id><published>2011-01-10T12:13:00.011-05:00</published><updated>2011-01-11T07:28:35.124-05:00</updated><title type='text'>Tips for Deploying Secure Shell in Linux and UNIX</title><content type='html'>&lt;p&gt;There is no doubt that the &lt;span style="font-style:italic;"&gt;de facto&lt;/span&gt; technology to gain remote command line access is Secure Shell on Linux and UNIX systems. While there are numerous security guidelines suggesting many different configuration settings, I think there are some fundamentals which are missed. &lt;/p&gt;

&lt;p&gt;Secure Shell is, in my opinion, the best method for remote access due to its flexibility and security. It makes it attractive for system administrators as well as system developers and architects. The ability to easily execute commands on remote systems and retrieve files over “secure” channels is seductive. Especially, since there is little-to-no programming required to facilitate this. However, in my opinion, this should be done with caution.&lt;/p&gt;

&lt;p&gt;First of all, &lt;a href="http://en.wikipedia.org/wiki/Secure_Shell"&gt;Secure Shell (SSH) is a network protocol&lt;/a&gt; that allows data to be exchanged using a secure channel between two networked devices.&lt;sup&gt;1&lt;/sup&gt; SSH was designed as a replacement for Telnet and other insecure remote access methods, which send information, notably passwords, in plain text, rendering them susceptible to packet analysis.&lt;/p&gt;

&lt;p&gt;The most common server daemon and client software which employs the SSH Protocol is developed by the &lt;a href="http://www.openssh.org/"&gt;OpenSSH Project&lt;/a&gt;.  Of course, there are several SSH capable clients available including the popular Windows client called PuTTY.&lt;/p&gt;

&lt;p&gt;Besides having encrypted communications, the idea of being able to remotely log in or copy a file from one machine to another without being prompted for a password is attractive to many developers and architects. Through the use of &lt;a href="http://en.wikipedia.org/wiki/Public_key_infrastructure"&gt;Public Key Infrastructure (PKI)&lt;/a&gt; the machines can “trust” certain keys and allow remote access. &lt;/p&gt;

&lt;p&gt;This is great and many would ask, “What's your beef with it Jamie? You're just a grumpy paranoid old man.” Yes, I am. My beef is that this technique often gets abused and is sometimes deployed in a sloppy manner. &lt;/p&gt;

&lt;p&gt;If you're going to use hands-free logins, please consider a couple of things. First of all, restrict access to the OpenSSH daemon through the use of host-based (iptables) firewall and network-based firewalls.&lt;/p&gt;

&lt;p&gt;Also, restrict who (which users) can login using configuration options such as DenyUsers, AllowUsers, DenyGroups, and finally AllowGroups. Some system administrators create a user group called “sshusers” and then set “AllowGroups sshusers” in the configuration file. Then assign the “sshusers” as the secondary group to user accounts to login via Secure Shell. &lt;/p&gt;

&lt;p&gt;Administrative, shared accounts such as Oracle should NEVER be logged into directly. Furthermore, “PermitRootLogin” should be set to “no” to prevent direct login to the root account. &lt;/p&gt;

&lt;p&gt;As an added layer of protection ensure the “StrictModes” value is set to “yes”. Sometimes users, and system administrators, get sloppy and relax the discretionary access controls on user home directories where the SSH credentials are stored.&lt;/p&gt; 
 
&lt;p&gt;Finally, I would ensure that the Secure Shell service is using the strongest encryption possible and is only configured to accept protocol version 2 connections. Set the following in &lt;tt&gt;/etc/ssh/sshd_config&lt;/tt&gt;:&lt;/p&gt;

&lt;pre&gt;Protocol 2
Ciphers blowfish-cbc,aes256-cbc,aes256-ctr,aes192-cbc,aes192-ctr,aes128-cbc,aes128-ctr&lt;/pre&gt;

&lt;p&gt;I hope this article got you thinking about how you use Secure Shell. I encourage you to read the various security guidelines and other recommendations that are available. In the end, however, one of the best defenses is diligence by system administrators who review and remove inactive user accounts and are aware of how their architecture is configured.&lt;p&gt;

&lt;p&gt;&lt;hr width="25%" align="left"/&gt;
1. Network Working Group of the IETF, January 2006, RFC 4252, The Secure Shell (SSH) Authentication Protocol&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-5908699346998245310?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/5908699346998245310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/01/tips-for-deploying-secure-shell-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/5908699346998245310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/5908699346998245310'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2011/01/tips-for-deploying-secure-shell-in.html' title='Tips for Deploying Secure Shell in Linux and UNIX'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-6902022403509757485</id><published>2010-12-06T15:03:00.012-05:00</published><updated>2010-12-07T13:16:11.389-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Access Controls'/><category scheme='http://www.blogger.com/atom/ns#' term='DISA UNIX STIG'/><title type='text'>Tips for Securely Using Temporary Files in Linux Scripts</title><content type='html'>&lt;p&gt;Over the years, I've written hundreds, if not thousands, of shell scripts. With the ease at which you can redirect input and output within a shell script, many sysadmins store data in temporary files for processing purposes. In some situations scripts become essential to the day-to-day operations of a system and as such, may end up running on a regular basis via &lt;a href="http://en.wikipedia.org/wiki/Crontab"&gt;crontab&lt;/a&gt; – never to be looked at again.&lt;/p&gt;

&lt;p&gt;Unfortunately, some sysadmins who write scripts might store sensitive data in temporary files, don't restrict access to temporary files, and might forget to remove them from the system when they are no longer needed. In many cases, they use them when it isn't even necessary. The beauty of Linux and UNIX is that there are hundreds of ways to accomplish the same task. I will keep my Bash examples simple so you can focus on grasping the general concepts.&lt;/p&gt;

&lt;h4&gt;Restrict access to temporary files&lt;/h4&gt;
&lt;p&gt;This is the most commonly forgotten step. If you are like most sysadmins who write temporary files to &lt;tt&gt;/tmp&lt;/tt&gt; or &lt;tt&gt;/var/tmp&lt;/tt&gt;, set your umask before file creation.&lt;/p&gt;

&lt;pre&gt;
# &lt;span style="font-weight:bold;"&gt;cut -f1 -d: /etc/passwd &gt; /tmp/test&lt;/span&gt;
# &lt;span style="font-weight:bold;"&gt;ls -l /tmp/test&lt;/span&gt;
-rw-r--r-- 1 root root 207 Dec  6 11:56 /tmp/test

# &lt;span style="font-weight:bold;"&gt;rm -f /tmp/test&lt;/span&gt;
&lt;/pre&gt;

&lt;p&gt;Now, let's set the &lt;a href="http://en.wikipedia.org/wiki/Umask"&gt;umask&lt;/a&gt;, create the file again, and check its access controls:&lt;/p&gt;
&lt;pre&gt;
# &lt;span style="font-weight:bold;"&gt;umask 077&lt;/span&gt;
# &lt;span style="font-weight:bold;"&gt;cut -f1 -d: /etc/passwd &gt; /tmp/test&lt;/span&gt;
# &lt;span style="font-weight:bold;"&gt;ls -l /tmp/test&lt;/span&gt;
-&lt;span style="color:yellow"&gt;rw&lt;/span&gt;------- 1 root root 207 Dec  6 11:58 /tmp/test

# &lt;span style="font-weight:bold;"&gt;rm -f /tmp/test&lt;/span&gt;
&lt;/pre&gt;

&lt;p&gt;As you can see, the more restrictive umask only grants the file owner read and write permission. Additionally, instead of writing temporary files to &lt;tt&gt;/tmp&lt;/tt&gt; or &lt;tt&gt;/var/tmp&lt;/tt&gt;, write the files to a dedicated, private area such as one under the user account's home directory.  Limit access to this directory with permissions such as 0700.&lt;/p&gt;

&lt;h4&gt;Use a random string as the filename&lt;/h4&gt;
&lt;p&gt;To reduce the likelihood that someone knows the exact name of the temporary file your script creates, avoid using file name prefixes and use random characters as the filename. For example:&lt;/p&gt;

&lt;pre&gt;
# &lt;span style="font-weight:bold;"&gt;umask 077&lt;/span&gt;
# &lt;span style="font-weight:bold;color:yellow"&gt;tempfile=$(head -c 12 /dev/urandom |mimencode  |tr -d "/")&lt;/span&gt;
# &lt;span style="font-weight:bold;"&gt;echo $tempfile&lt;/span&gt;
wwiboOPRHbozVuce

# &lt;span style="font-weight:bold;"&gt;cut -f1 -d: /etc/passwd &gt; /tmp/&lt;span style="color:yellow"&gt;$tempfile&lt;/span&gt;&lt;/span&gt;
# &lt;span style="font-weight:bold;"&gt;ls -l /tmp/$tempfile&lt;/span&gt;
-rw------- 1 root root 207 Dec  6 12:10 /tmp/wwiboOPRHbozVuce

# &lt;span style="font-weight:bold;"&gt;rm -f /tmp/$tempfile&lt;/span&gt;
&lt;/pre&gt;

&lt;h4&gt;Don't use temporary files at all&lt;/h4&gt;
&lt;p&gt;Of course, the safest method is to do in-line processing using pipes, a subshell environment, or a variable. For example, if you wanted an alphabetical listing of user accounts simply use a pipe:&lt;/p&gt;

&lt;pre&gt;# &lt;span style="font-weight:bold;"&gt;cut -f1 -d: /etc/passwd | sort -u&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;or even:&lt;/p&gt;

&lt;pre&gt;# &lt;span style="font-weight:bold;"&gt;sort -u -t: -k1 /etc/passwd |cut -f1 -d:&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;If you wanted to perform an action on each account on the system, invoke a subshell on a &lt;span style="font-style:italic;"&gt;for...loop&lt;/span&gt; such as:&lt;/p&gt;

&lt;pre&gt;
for user in &lt;span style="font-weight:bold;color:yellow"&gt;$(cut -f1 -d: /etc/passwd)&lt;/span&gt;
do
    printf "some action on %s\n" $user
done
&lt;/pre&gt;

&lt;h4&gt;Summary&lt;/h4&gt;
&lt;p&gt;In summary, take a look at your &lt;tt&gt;/var/tmp&lt;/tt&gt; and &lt;tt&gt;/tmp&lt;/tt&gt; directories. Do they have a bunch of strange files which are open to the world? Take inventory of all of the scripts running on your system especially those which are executed regularly via &lt;a href="http://en.wikipedia.org/wiki/Crontab"&gt;crontab&lt;/a&gt;. Make sure you clearly understand what they are doing and if they are creating any temporary files. If they do, try some of the aforementioned tips to help secure them.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-6902022403509757485?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/6902022403509757485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/12/tips-for-securely-using-temporary-files.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/6902022403509757485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/6902022403509757485'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/12/tips-for-securely-using-temporary-files.html' title='Tips for Securely Using Temporary Files in Linux Scripts'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-4252854313652112389</id><published>2010-11-29T09:23:00.000-05:00</published><updated>2010-11-29T09:48:52.461-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LISA 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='openSUSE and Novell SUSE'/><category scheme='http://www.blogger.com/atom/ns#' term='Virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='NSA'/><title type='text'>Sandboxing: Understanding System Containment</title><content type='html'>&lt;p&gt;&lt;a title="Matt Olander (right) and Jamie Adams (left)." onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_EACT8Hhim20/TO0804nh1CI/AAAAAAAAAXc/Y6XXZf2vrq8/s1600/Screenshot-freebsd1.png.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 113px;" src="http://4.bp.blogspot.com/_EACT8Hhim20/TO0804nh1CI/AAAAAAAAAXc/Y6XXZf2vrq8/s200/Screenshot-freebsd1.png.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5543153595611993122" /&gt;&lt;/a&gt;I recently attended the &lt;a href="http://www.usenix.org/events/byname/lisa.html"&gt;24th Large Installation System Administration (LISA) Conference&lt;/a&gt; in San Jose, California. I met so many great people including Matt Olander, the Chief Technology Officer of &lt;a href="http://www.ixsystems.com/"&gt;iXsystems&lt;/a&gt; and a member of &lt;a href="http://www.freebsd.org/"&gt;FreeBSD Project’s&lt;/a&gt; Marketing and Public Relations teams. Matt has been a long time BSD advocate and he was previously the Director of IT at BSDi.&lt;/p&gt;

&lt;p&gt;His enthusiasm and in-depth knowledge of &lt;a href="http://en.wikipedia.org/wiki/Berkeley_Software_Distribution"&gt;Berkeley Software Distribution (BSD)&lt;/a&gt; history was impressive. Moreover, his knowledge of its reliability aspects, code base management, security, and upcoming release information was equally impressive. He talked to me for a few minutes on camera which I will release in another post.&lt;/p&gt; 

&lt;p&gt;Later that evening, I reflected on the long history of BSD and its innovative contributions. In particular, I thought about the &lt;a style="font-style: italic" href="http://en.wikipedia.org/wiki/FreeBSD_jail"&gt;FreeBSD jail&lt;/a&gt; mechanism and its contributions to system survivability through the concept of &lt;span style="font-style:italic;"&gt;containment&lt;/span&gt;. &lt;/p&gt;

&lt;p&gt;I also thought about all of the incarnations of technologies aimed at providing some level of containment. As a foundation of explaining these technologies to my sales and marketing team, I felt it necessary to explain the concept of containment and how it relates to system survivability.&lt;/p&gt;

&lt;p&gt;Because of my years of service in the United States Navy, I think of system survivability as being analogous to ship survivability. &lt;/p&gt;
 
&lt;p&gt;Visualize a ship's internal layout as a honeycomb. Each cell, or &lt;span style="font-style:italic;"&gt;compartment&lt;/span&gt;, can be sealed off from another in case of compromise. If one compartment begins to flood, the hatches (doors) can be closed to prevent adjacent compartments from flooding. In effect, the flood is contained and the ship can continue its mission.&lt;/p&gt;

&lt;p&gt;In information technology, most people grasp the concept of network segregation through use of &lt;a href="http://en.wikipedia.org/wiki/Vlan"&gt;virtual local area networks (VLAN)&lt;/a&gt;, routing, and firewalls but the containment idea seems to be lost when it is applied to a collection of operating systems running in virtual guests on a single platform. Even more confusing is the idea of containment within a single operating system by segregating processes or groups of processes to serve as a single application.&lt;/p&gt;

&lt;p&gt;Consider a hardware- or software-based virtualized system which is running many virtualized guests. Each guest could be running a separate operating system. If you think of each guest as a compartment on the ship, you must think about how you can contain one guest if it is compromised during an attack or suffers a catastrophic failure.&lt;/p&gt;

&lt;p&gt;Of course, these guests can't be completely isolated because they will need some shared resource (e.g., oxygen) or possibly a means to communicate with another compartment. Just like in a ship, each compartment serves a purpose but interacts with other compartments to serve the entire ship. Likewise, in a virtualized system architecture, the access control points between compartments and to the outside world must be managed appropriately for survivability.&lt;/p&gt;

&lt;p&gt;Within each guest resides an operating system running one or more applications such as a database or a web service. Similarly, ship compartments serve various purposes such as navigation, fire control, or propulsion. In both situations, it makes sense to not “&lt;span style="font-style:italic;"&gt;put all of your eggs in one basket&lt;/span&gt;” in case of catastrophic failure. So, you should at least have a redundant compartment if possible.&lt;/p&gt; 

&lt;p&gt;If a single guest operating system were running two web services, wouldn't it make sense to have them buffered from each other? For example, ensure that a compromise to one of them doesn't jeopardize the other. Likewise, if a ship's compartment had two pieces of equipment and one caught fire or had an electrical failure shouldn't it be insulated enough to protect the other equipment?&lt;/p&gt;

&lt;p&gt;The value of containment should be obvious by now. Yet, I haven't mentioned the most important characteristics of containment technologies – that is to be simple in design and easily managed. Complex configurations can result in an inconsistent configuration which translates into improper containment and an uncertain security posture.&lt;/p&gt;

&lt;p&gt;In the Navy, the term “&lt;span style="font-style:italic;"&gt;Material Conditions&lt;/span&gt;” is defined by Naval Warfare Publication (NWP) 3-20.31 as a ship's configurations representing varying degrees of closure (hatches being opened or closed among other things).  The material condition of readiness is set according to the degree of threat to the ship and the current operational directives.&lt;/p&gt;

&lt;p&gt;Examples of operational directives would be day-to-day operations as opposed to being in a combat situation.  These conditions establish the fighting integrity of the ship and maintain its survivability. In the simplest form, the aforementioned hatches provide access into the compartments and containment when necessary. Each door is adorned with a symbol such as a big black letter 'Y' enclosed in a black ring &amp;mdash; referred to as “&lt;span style="font-style:italic;"&gt;Circle Yoke&lt;/span&gt;.”&lt;/p&gt;

&lt;p&gt;When a ship's readiness is set, all of the respective hatches marked with that level and below are secured. More importantly, many traditional hatches have eight dogs (levers) which must be secured in a specific order for the hatch to be completely sealed (locked down). A more simplified hatch such as the QAWTD has a single mechanism to secure all of its levers at once in order to simplify and expedite the establishment of the required readiness level.&lt;/p&gt;

&lt;p&gt;If you think of the hatches (doors) as access control points in a system, such as &lt;a href="http://en.wikipedia.org/wiki/Discretionary_access_control"&gt;discretionary access controls&lt;/a&gt;, mandatory access controls, host-based firewall rules, or the grouping of processes, the easier it is for an administrator to configure and understand them, the better.  This may help when establishing the operational directive for a public facing web server that will likely be configured differently (tighter) than an internal web server due to the risk of attack involved.&lt;/p&gt;

&lt;p&gt;The idea of containment within an operating system is sometimes referred to as sandboxing. Some of the more popular technologies specifically designed to accomplish this come to mind: FreeBSD jails, Solaris Containers (including Solaris Zones), and SUSE Linux's AppArmor.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Security-Enhanced_Linux"&gt;Security-Enhanced Linux (SELinux)&lt;/a&gt; is full implementation of &lt;a href="http://en.wikipedia.org/wiki/Mandatory_access_control"&gt;mandatory access controls (MAC)&lt;/a&gt; and is capable of &lt;a href="http://en.wikipedia.org/wiki/Multi-Level_Security"&gt;Multilevel Security (MLS)&lt;/a&gt;. Although it wasn't designed specifically for containment, it certainly can be used for this purpose and several policies delivered with Red Hat-based systems accomplish this out-of-the-box.&lt;/p&gt;

&lt;p&gt;There are more technologies available but an organization should weigh a technology's capabilities against the mission requirements or “directives.” You should then ultimately consider the ease of deployment and manageability.  In my opinion, the easiest technologies to implement are &lt;a href="http://en.wikipedia.org/wiki/FreeBSD_jail"&gt;FreeBSD jails&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Apparmor"&gt;Application Armor (AppArmor)&lt;/a&gt;, and then &lt;a href="http://en.wikipedia.org/wiki/Solaris_Containers"&gt;Solaris Containers (including Solaris Zones)&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-4252854313652112389?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/4252854313652112389/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/11/sandboxing-understanding-system.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/4252854313652112389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/4252854313652112389'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/11/sandboxing-understanding-system.html' title='Sandboxing: Understanding System Containment'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_EACT8Hhim20/TO0804nh1CI/AAAAAAAAAXc/Y6XXZf2vrq8/s72-c/Screenshot-freebsd1.png.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-4356913483617356163</id><published>2010-11-23T08:07:00.016-05:00</published><updated>2010-11-24T07:46:51.319-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LISA 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='USENIX'/><title type='text'>LISA 2010: Sysadmins Discuss Virtual Mentorship</title><content type='html'>&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EACT8Hhim20/TOrFSl76hQI/AAAAAAAAAXU/cICNmfru6sY/s1600/LISA_Sign.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 188px;" src="http://1.bp.blogspot.com/_EACT8Hhim20/TOrFSl76hQI/AAAAAAAAAXU/cICNmfru6sY/s200/LISA_Sign.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5542459214644544770" /&gt;&lt;/a&gt;In November of this year, I attended the &lt;a href="http://www.usenix.org/events/lisa10/"&gt;24th Large Installation System Administration (LISA) Conference&lt;/a&gt; in San Jose, California.&lt;/p&gt;

&lt;p&gt;LISA is an annual technical conference sponsored by &lt;a href="http://www.usenix.org/"&gt;USENIX: the Advanced Computing Systems Association&lt;/a&gt; in cooperation with the &lt;a href="https://lopsa.org/"&gt;League of Professional System Administrators (LOPSA)&lt;/a&gt; and the Storage Networking Industry Association (SNIA).&lt;/p&gt;

&lt;p&gt;On Friday, November 12th, I led a “Guru Is In” session on “Security” where we had a lively exchange of views and information.&lt;/p&gt;

&lt;p&gt;In attendance were junior and senior system administrators, seasoned administrators, and salty &lt;span style="font-style:italic;"&gt;old-schoolers&lt;/span&gt; like myself. At one point, we discussed the idea of mentorship and the operational environment many younger system administrators find themselves.&lt;/p&gt;

&lt;p&gt;For me, this was a subject of poignant interest and later that evening I reflected upon my early work environments compared to what system administrators face today.&lt;/p&gt; 

&lt;p&gt;First and foremost, the ratio of systems to system administrators is much different. Today, there seems to be fewer system administrators but each is responsible for far more systems.&lt;/p&gt;

&lt;p&gt;In the early days, system administrators were required to have a diverse set of skills and knowledge. For example, we were required to have a deep knowledge of how file systems worked, networking concepts, and access control mechanisms.&lt;/p&gt;
 
&lt;p&gt;Today, there is a greater dependency on automated tools in order to improve productivity. Our field also seems to have as many specialists as the medical community.&lt;/p&gt;

&lt;p&gt;There are system administrators focused on different operating systems, cluster specialists, network administrators, database administrators, system virtualization managers, and even security administrators.&lt;/p&gt;

&lt;p&gt;When I started, I was originally a system programmer but eventually assumed responsibilities as a system administrator. I had a mentor who assigned me specific jobs such as performing system backups, account management, and analyzing daily logs.&lt;/p&gt;

&lt;p&gt;I continued to perform those jobs until my mentor determined I was competent in that role and then I moved on to the next role. This could last anywhere from weeks to months. I rotated through all of the on-site roles until I was capable of performing any task in the data center. &lt;/p&gt;

&lt;p&gt;In those early days, vendor manuals and the few technical books available on the market were treasured. More importantly, the strong relationship with my mentors helped me gain the most out of my experiences.&lt;/p&gt;

&lt;p&gt;A good mentor would not tell you “exactly” how to do something but rather encourage you to learn how and why things are done. &lt;/p&gt;

&lt;p&gt;Of course, they would instruct you on the site's best practices but most importantly they taught you “how to learn.” &lt;/p&gt;

&lt;p&gt;In other words, how to solve problems without jeopardizing an entire system. Of course, if I made a serious mistake or had a lapse in judgment... let's just say that some of us were motivated through public humiliation. But it was all in good fun. &lt;/p&gt;

&lt;p&gt;Several years later when I became the mentor, I would immediately set precedence by asking them if they did any research on the problem before coming to me with the question.&lt;/p&gt;

&lt;p&gt;If they came to me with a question they've asked before, I would ask them why they didn't write down the answer the first time. It is so important that system administrators become self-sufficient. &lt;/p&gt;

&lt;p&gt;I believe having a mentor is extremely beneficial. These days, however, several factors hinder this type of relationship: &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Fewer on-site administrators.&lt;/li&gt;
&lt;li&gt;Higher turnover rate. Many administrators don't remain on a project as long as they did many years ago.&lt;/li&gt;
&lt;li&gt;The Internet. The massive amount of online technical resources allows one to be self-taught.&lt;/li&gt;
&lt;li&gt;Volumes of printed publications (e.g., O'Reilly books)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The unfortunate fact is that many junior system administrators can quickly get in over their heads.&lt;/p&gt;

&lt;p&gt;One of the administrators at the LISA 2010 conference told me he started out being responsible for only a few machines but the number of machines quickly grew out of control.&lt;/p&gt;

&lt;p&gt;Many of his generic configuration decisions did not scale well and it became very difficult to manage. This is a classic problem.&lt;/p&gt;

&lt;p&gt;Many of the operational resources, such as software repositories for updates, a good back-up system, and sound configuration management, hadn't been considered during initial set up either.&lt;/p&gt;

&lt;p&gt;These are the kinds of things experienced administrators can pass on to junior administrators, including documentation skills! Yes, this skill is one that must be mastered but is often brushed aside and considered trivial early in one's career. &lt;/p&gt;

&lt;p&gt;Of course, there are plenty of training programs and certifications available. Personally, I've never been a fan of vendor specific certifications because it focuses on proprietary technology. It certainly benefits the immediate company which has hired the individual or has paid for the training.&lt;/p&gt;

&lt;p&gt;However, I think it is far more critical for a system administrator to have a vendor neutral understanding of the fundamentals. This gives them a strong foundation which supports easily learning other technologies.&lt;/p&gt;

&lt;p&gt;Finally, I strongly believe a mentor helps harvest those soft skills.  After all, knowledge is far more powerful and useful when coupled with wisdom. &lt;/p&gt;

&lt;p&gt;Because there are fewer on-site administrators and there seems to be higher turnover rate these days, it is critical that a virtual mentorship be in place. This may not be a one-on-one relationship but having a means to ask questions in almost real-time is critical.&lt;/p&gt;

&lt;p&gt;Strong organizations and communities such as USENIX and &lt;a href="https://lopsa.org/"&gt;LOPSA&lt;/a&gt; are invaluable. Membership dues must be reasonable because many junior administrators aren't willing to shell out the cash early on if they don't see great value. I strongly recommend checking out the &lt;a href="https://lopsa.org/mentor"&gt;The LOPSA Mentorship Program&lt;/a&gt; launched in August 2010.&lt;/p&gt;

&lt;p&gt;In an effort to protect an organization's assets, many restrict or deny access to valuable on line tools and resources such as instant messaging, sites with “blog” in the URL, or user group websites.&lt;/p&gt;

&lt;p&gt;This is unfortunate because these resources can help administrators quickly resolve problems. Additionally, most system administrators maintain a long term professional relationship with fellow system administrators and having the ability to ask questions via instant messaging is critical. &lt;/p&gt;

&lt;p&gt;I think an organization that already entrusts their information technology assets to a system administrator should seriously consider trusting them not to abuse such Internet access.  Providing the newer system administrators with access to the tools that can help them become successful, faster, will ultimately be beneficial to the organizations that they support.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-4356913483617356163?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/4356913483617356163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/11/lisa-2010-sysadmins-discuss-virtual.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/4356913483617356163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/4356913483617356163'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/11/lisa-2010-sysadmins-discuss-virtual.html' title='LISA 2010: Sysadmins Discuss Virtual Mentorship'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_EACT8Hhim20/TOrFSl76hQI/AAAAAAAAAXU/cICNmfru6sY/s72-c/LISA_Sign.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-73195304333095439</id><published>2010-11-22T06:54:00.002-05:00</published><updated>2010-11-24T07:01:02.220-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LISA 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='System z'/><category scheme='http://www.blogger.com/atom/ns#' term='Virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='USENIX'/><title type='text'>LISA 2010: OS Security In The Cloud</title><content type='html'>&lt;p&gt;In November of this year, I attended the 24th Large Installation System Administration (LISA) Conference in San Jose, CA. LISA is an annual technical conference sponsored by &lt;a href="http://www.usenix.org/"&gt;USENIX: the Advanced Computing Systems Association&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;On Friday, November 12th, I spoke at a “Guru Is In” session on “Security” where I was able to facilitate a discussion with all levels of system administrators (and an auditor) about compliancy versus security. We had a lively exchange of views and information.&lt;/p&gt;

&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EACT8Hhim20/TOGZVFWBBrI/AAAAAAAAAXE/hsBEQvgLcB0/s1600/img_0136-1.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 155px;" title="John Arrasjid (left) and Jamie Adams (right)" src="http://1.bp.blogspot.com/_EACT8Hhim20/TOGZVFWBBrI/AAAAAAAAAXE/hsBEQvgLcB0/s200/img_0136-1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5539877604133242546" /&gt;&lt;/a&gt;I also had an opportunity to speak with John Arrasjid, a USENIX Director and Principal Architect at VMware. We talked about operating system security, cloud computing, and next year's LISA to be held in Boston, Massachusetts.&lt;/p&gt;

&lt;p&gt;I really like LISA and USENIX. For one thing, the atmosphere is engaging but relaxed. Even though it comprises some of the best minds in the industry, there is no pretentiousness but rather a willingness to share ideas and experiences. Outsiders would probably consider this eclectic blend of personalities and skill sets as strange whereas, the rest of us just consider it a comfortable environment which fosters an exchange of ideas.&lt;/p&gt;

&lt;p&gt;There is no doubt that cloud computing is a hot topic these days. As an engineer, most of my career has been focused on operating systems and related security. I find it interesting that some people tend to forget the operating system security fundamentals when it comes to cloud computing, hardware virtualization, and software virtualization. &lt;/p&gt;

&lt;p&gt;In the end, it is still an operating system. A SUSE® Linux® instance running under an IBM® &lt;a href="http://en.wikipedia.org/wiki/Integrated_Facility_for_Linux"&gt;Integrated Facility for Linux (IFL)&lt;/a&gt; on System z® mainframe deserves the same consideration when it comes to operating system security. Unused services should and must still be disabled, discretionary access controls tightened, and regular software updates applied. The same holds true when it comes to operating system images deployed in the cloud.&lt;/p&gt;

&lt;p&gt;Given today's operational tempo, many organizations tend to quickly provision new operating system instances and virtual machines in order to handle increasing workloads. When storage technology was growing at an exponential rate, some system administrators would frivolously allocate huge amounts of space as if there was a bottomless pit of resources. By limiting the ports, services, and installed software on a virtual machine an image will ultimately conserve resources and reduce the attack surface.&lt;/p&gt;

&lt;p&gt;Another side effect of rapidly provisioning new operating system images is a varying security state. Consider a standard image which may get deployed over and over. This image has been “locked down” in accordance with some set of security guidelines. However, if the security guidelines or requirements change, how do organizations consistently reconfigure previously deployed images with the new standards? &lt;/p&gt;

&lt;p&gt;One situation I've seen quite often is when an administrator would clone or snapshot an image. Then they apply new security settings to the image. However, when a failure occurs they restore the image to a previous snapshot which does not include the recently applied security settings.&lt;/p&gt;

&lt;p&gt;Technology facilitates today's operational pace however, without disciplined administrators willing to clearly document activities this situation can quickly get out of control. It is imperative that processes not be burdensome in order for the administrator to keep up the pace but still clearly understand their current security posture.&lt;/p&gt;

&lt;p&gt;Of course, the right automated tools can be a great resource provided they are non-intrusive, easy to use, and perform consistently and reliably. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-73195304333095439?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/73195304333095439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/11/lisa-2010-os-security-in-cloud.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/73195304333095439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/73195304333095439'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/11/lisa-2010-os-security-in-cloud.html' title='LISA 2010: OS Security In The Cloud'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_EACT8Hhim20/TOGZVFWBBrI/AAAAAAAAAXE/hsBEQvgLcB0/s72-c/img_0136-1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-2030623433044651141</id><published>2010-11-17T09:50:00.015-05:00</published><updated>2010-11-17T13:34:06.202-05:00</updated><title type='text'>Which Linux or UNIX Version Am I Running?</title><content type='html'>&lt;p&gt;This may seem like a simple question but for a lot of system administrators who “inherit” systems or are unfamiliar with operating systems that have been forced upon them, it can be very confusing. Especially if you're coming from a proprietary UNIX® operating system such as Solaris™ or HP-UX to a Linux®-based distribution.&lt;/p&gt;

&lt;p&gt;For most of us &lt;span style="font-style:italic;"&gt;old-school&lt;/span&gt; UNIX people, the reliable “&lt;a href="http://en.wikipedia.org/wiki/Uname"&gt;uname&lt;/a&gt;” utility is what we are most familiar with. Execute it with the -a option and you get something like:&lt;/p&gt;

&lt;pre&gt;SunOS sungod 5.10 Generic_137138-09 i86pc i386 i86pc&lt;/pre&gt;

&lt;p&gt;Cryptic to most but for a seasoned Solaris administrator it means that the host “sungod” is running Solaris 10 on an x86 (non-SPARC) system and the current kernel patch level is 137138-09. If you run the same command on a Linux system, you might see something like:&lt;/p&gt;

&lt;pre&gt;Linux greenlantern 2.6.27.48-0.3-default #1 SMP 2010-09-20 11:03:26 -0400 \
x86_64 x86_64 x86_64 GNU/Linux&lt;/pre&gt;

&lt;p&gt;At most, you can determine that the host “greenlantern” is in fact a Linux system running a default kernel version 2.26.47 and it is a 64-bit system because of the “x86_64” in the statement.&lt;/p&gt;

&lt;p&gt;The “uname” utility was first introduced as part of the UNIX &lt;a href="http://en.wikipedia.org/wiki/PWB/UNIX"&gt;Programmer's Workbench (PWB)&lt;/a&gt; in 1973. Not only is “uname” a utility, it is a system call – uname() conforms to System Vr4 and POSIX.1-2001. It extracts information from the running kernel. &lt;/p&gt;

&lt;p&gt;Linux distributions are built off of standard kernels but are packaged and bundled differently. Some distributions are Debian-based while others might be Red Hat-based. The collection of packages and how the packages were compiled and ultimately delivered are what make Linux distributions unique.&lt;/p&gt; 

&lt;p&gt;Most UNIX and Linux operating systems have some form of a release file detailing the operating system version and release information. This file, usually in the /etc directory, is a simple text file. &lt;/p&gt;

&lt;p&gt;Some operating systems adhere to POSIX while others strive to be &lt;a href="http://en.wikipedia.org/wiki/Linux_Standard_Base"&gt;Linux Standard Based (LSB)&lt;/a&gt;. Of course there are more standards and this fact reminds me of Andrew Tanenbaum's famous statement, “The nice thing about standards is that there are so many of them to choose from.”&lt;/p&gt;

&lt;p&gt;For those systems which comply with LSB, you can use the lsb_release(8) utility. For example, running the lsb_release command on my openSUSE system reveals the following:&lt;/p&gt;

&lt;pre&gt;$ &lt;span style="font-weight:bold;color:yellow"&gt;lsb_release -r -i -c -d&lt;/span&gt;
Distributor ID: SUSE LINUX
Description:    openSUSE 11.1 (x86_64)
Release:        11.1
Codename:       n/a&lt;/pre&gt;

&lt;p&gt;Much more informative than the “uname” utility. It should be noted that the utility just parses various configuration files such as those in /etc. Specifically, on SUSE systems it examines the following files:&lt;/p&gt;

&lt;pre&gt;$ &lt;span style="font-weight:bold;color:yellow"&gt;ls -l /etc/SuSE-*&lt;/span&gt;
-rw-r--r-- 1 root root 24 Dec  3  2008 /etc/SuSE-brand
-rw-r--r-- 1 root root 38 Dec  4  2008 /etc/SuSE-release&lt;/pre&gt;

&lt;p&gt;Here is a list of some operating systems, related commands, and their release files which will help you determine the specific version and release of your operating system:&lt;/p&gt;

&lt;table border=1 cellspacing=4 cellpadding=4&gt;
&lt;tr&gt;
&lt;th&gt;Operating System&lt;/th&gt;
&lt;th&gt;Command or Configuration Files&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AIX
&lt;td&gt;uname -a&lt;br/&gt;
oslevel -g
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fedora&lt;/td&gt;
&lt;td&gt;&lt;tt&gt;/etc/fedora-release&lt;/tt&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FreeBSD
&lt;td&gt;uname -a&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HP-UX&lt;/td&gt;
&lt;td&gt;uname -a&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenSUSE and &lt;br/&gt;Novell SUSE
&lt;td&gt;/etc/SuSE-brand &lt;br/&gt;
/etc/SuSE-release &lt;br/&gt;
/etc/lsb-release &lt;/br&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Red Hat
&lt;td&gt;&lt;tt&gt;/etc/redhat-release&lt;/tt&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Solaris
&lt;td&gt;&lt;tt&gt;/etc/release&lt;/tt&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ubuntu&lt;/td&gt;
&lt;td&gt;&lt;tt&gt;/etc/lsb-release&lt;/tt&gt;&lt;/td&gt;
&lt;/table&gt;

&lt;p&gt;Finally, many system administrators are confused when they apply all of the available updates to their system via their local software repositories but are still running the same minor revision. For example, if you are running openSUSE 11.1 and you perform a “zypper update” to install available software updates, this will not bring your system up to openSUSE 11.2. To do this, you must specifically issue the distribution upgrade command. (zypper dist-upgrade). This is because when you perform a normal update, it is only examining the repositories your current system has configured. For example, here is my list of repositories (zypper lr):&lt;/p&gt;

&lt;pre&gt;$ &lt;span style="font-weight:bold;color:yellow"&gt;zypper lr&lt;/span&gt;

#  | Alias              | Name                       | Enabled | Refresh
---+--------------------+----------------------------+---------+--------
1  | NVIDIA             | NVIDIA                     | Yes     | Yes
2  | NVIDIA-11.1        | NVIDIA-11.1                | Yes     | No     
3  | Packman Repository | Packman Repository         | Yes     | Yes    
4  | adobe-linux-i386   | Adobe Systems Incorporated | Yes     | No     
5  | google             | Google - i386              | Yes     | No     
6  | google-chrome      | google-chrome              | Yes     | Yes    
7  | google-testing     | Google Testing - i386      | Yes     | No     
8  | openSUSE 11.1-0    | openSUSE 11.1-0            | No      | No     
9  | repo-debug         | openSUSE-11.1-Debug        | No      | Yes    
10 | repo-non-oss       | openSUSE-11.1-Non-Oss      | Yes     | Yes    
11 | repo-oss           | openSUSE-11.1-Oss          | Yes     | Yes    
12 | repo-source        | openSUSE-11.1-Source       | No      | Yes 
13 | repo-update        | openSUSE-11.1-Update       | Yes     | Yes  &lt;/pre&gt;

&lt;p&gt;On the other hand, Red Hat distributions such as CentOS would be updated to the next minor revision (e.g., 5.4 to 5.5) because of the way the repositories are structured. &lt;/p&gt;

&lt;p&gt;For system administrators maintaining patch levels and an accurate inventory of their systems, it is imperative they know how to determine the &lt;u&gt;exact&lt;/u&gt; operating system version. Hopefully, this post has provided some guidance on clarifying how to find this important information.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-2030623433044651141?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/2030623433044651141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/11/which-linux-or-unix-version-am-i.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/2030623433044651141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/2030623433044651141'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/11/which-linux-or-unix-version-am-i.html' title='Which Linux or UNIX Version Am I Running?'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-7251878402818082662</id><published>2010-11-15T15:32:00.021-05:00</published><updated>2010-11-24T07:01:14.390-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LISA 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='USENIX'/><title type='text'>Large Installation System Administration (LISA) 2010</title><content type='html'>&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EACT8Hhim20/TOGZJu8PuVI/AAAAAAAAAW8/ztbyQpqVPCY/s1600/IMG_0213.JPG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 133px; height: 200px;" src="http://1.bp.blogspot.com/_EACT8Hhim20/TOGZJu8PuVI/AAAAAAAAAW8/ztbyQpqVPCY/s200/IMG_0213.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5539877409141012818" /&gt;&lt;/a&gt;Today is my first day back in the office after spending last week at the &lt;a href="http://www.usenix.org/event/lisa10/"&gt;24th Large Installation System Administration (LISA) Conference&lt;/a&gt; in San Jose, CA. LISA is sponsored by &lt;a href="http://www.usenix.org/"&gt;USENIX&lt;/a&gt; in cooperation with the &lt;a href="https://lopsa.org/"&gt;League of Professional System Administrators (LOPSA)&lt;/a&gt; and the &lt;a href="http://www.snia.org/home/"&gt;Storage Networking Industry Association (SNIA)&lt;/a&gt;. On Friday, November 12th, I spoke at a “Guru Is In” session on “Security” where I was able to facilitate a discussion with all levels of Sysadmins (and an Auditor) about compliancy versus security.  We had a lively exchange of views and information.&lt;/p&gt;

&lt;p&gt;I've never been a member of LOPSA or SNIA. Personally, I wasn't interested in storage technology at the conference although I've been a part of USENIX for many years. I really like these shows because it isn't just about vendors pushing their technology but rather an opportunity to learn about what's going on in the community. When I am talking with the system administrators, technologists, and fellow engineers I get an unfiltered data stream. It is so much more exciting to speak with fellow geeks instead of reading some marketing research paper.&lt;/p&gt;

&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EACT8Hhim20/TOGZVFWBBrI/AAAAAAAAAXE/hsBEQvgLcB0/s1600/img_0136-1.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 155px;" title="John Arrasjid (left) and Jamie Adams (right)" src="http://1.bp.blogspot.com/_EACT8Hhim20/TOGZVFWBBrI/AAAAAAAAAXE/hsBEQvgLcB0/s200/img_0136-1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5539877604133242546" /&gt;&lt;/a&gt;I also had an opportunity to speak with John Arrasjid, a USENIX Director and Principal Architect at VMware. We talked about operating system security, cloud computing, and next year's LISA to be held in Boston, Massachusetts. He was even gracious enough to answer a couple of questions on camera. I will be sharing that video soon.&lt;/p&gt;

&lt;p&gt;I met people from all over the world including North America, Taiwan, Germany, Norway, and England. Not only were the locations diverse, so were the industries which these system administrators supported. &lt;a href="http://www.trustedcs.com/"&gt;Raytheon Trusted Computer Solutions&lt;/a&gt; received great feedback on our &lt;a href="http://www.trustedcs.com/SecurityBlanket/SecurityBlanket.html"&gt;Security Blanket&lt;/a&gt; product. I fielded lots of questions regarding security guidelines and learned about other guidelines that others are using in their organizations. &lt;/p&gt;

&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EACT8Hhim20/TOGZhubwxgI/AAAAAAAAAXM/f5QsRioq33E/s1600/IMG_0244.JPG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 160px; height: 200px;" src="http://2.bp.blogspot.com/_EACT8Hhim20/TOGZhubwxgI/AAAAAAAAAXM/f5QsRioq33E/s200/IMG_0244.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5539877821321627138" /&gt;&lt;/a&gt;Of course, both Facebook and Google were present and were aggressively looking to hire more technical people. LISA is certainly a great place to find great talent! I also had an opportunity to speak with a Google engineer regarding their Google Cloud solutions. One thing is for certain, the Google team's energy and enthusiasm were unmatched. The RTCS booth was directly across from theirs so I was able to snag this picture with some of my new Google friends.&lt;/p&gt;  

&lt;p&gt;Over the next few weeks I will be sharing the great information I gathered while at the conference on my blog (&lt;a href="http://tcs-security-blanket.blogspot.com/"&gt;http://tcs-security-blanket.blogspot.com/&lt;/a&gt;).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-7251878402818082662?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/7251878402818082662/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/11/large-installation-system.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/7251878402818082662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/7251878402818082662'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/11/large-installation-system.html' title='Large Installation System Administration (LISA) 2010'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_EACT8Hhim20/TOGZJu8PuVI/AAAAAAAAAW8/ztbyQpqVPCY/s72-c/IMG_0213.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-6065373042721269165</id><published>2010-11-01T08:25:00.010-04:00</published><updated>2010-11-24T10:34:56.981-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='System z'/><category scheme='http://www.blogger.com/atom/ns#' term='openSUSE and Novell SUSE'/><category scheme='http://www.blogger.com/atom/ns#' term='Virtualization'/><title type='text'>Lock Down Novell SUSE Linux on IBM System z</title><content type='html'>&lt;p&gt;Our current &lt;a href="http://www.trustedcs.com/SecurityBlanket/SecurityBlanket.html"&gt;Security Blanket®&lt;/a&gt; development road map includes support for &lt;a href="http://www.opensuse.org/en/"&gt;openSUSE®&lt;/a&gt; 10.3 and &lt;a href="http://www.novell.com/linux/"&gt;Novell SUSE®&lt;/a&gt; 10 SP3 scheduled for January 2011. In a previous release, we delivered support for the mainframe but in January, Security Blanket support will be expanded to include all of the following operating systems running on &lt;a href="http://www-03.ibm.com/systems/z/"&gt;IBM® System z®&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.redhat.com/rhel/"&gt;Red Hat Enterprise Linux&lt;/a&gt; 5.2 and later&lt;/li&gt;
&lt;li&gt;Novell SUSE 11 (including SP1 and SP2)&lt;/li&gt;
&lt;li&gt;Novell SUSE 10 SP3&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you didn't know already, Security Blanket is the only tool that automatically configures your operating systems to meet industry standards and allows for the easy creation of customized security lock down profiles.&lt;/p&gt;

&lt;p&gt;We have supported openSUSE 11 and Novell SUSE 11 in the last several releases however, we've had a lot of customers request support for release 10 &amp;mdash; so, we are obliging. &lt;/p&gt;

&lt;p&gt;In addition to the new SUSE support, we have also improved many existing modules and added some new ones to support the &lt;a href="http://cisecurity.org/"&gt;Center for Internet Security (CIS)&lt;/a&gt; Benchmark for “Solaris 10 11/06 through 10/09”, v5.0.0, July 2010.&lt;/p&gt;

&lt;p&gt;I will be in San Jose, California, at the &lt;a href="http://www.usenix.org/event/lisa10/"&gt;24th Large Installation System Administration (LISA) Conference (November 7–12, 2010)&lt;/a&gt;. I’ll be speaking at a “Guru Is In” session on Friday, November 12th at 2:00 pm PT. We're going to be in booth 101 all week so, please drop by if you have any questions or suggestions.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-6065373042721269165?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/6065373042721269165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/11/lock-down-novell-suse-10-on-ibm-system.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/6065373042721269165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/6065373042721269165'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/11/lock-down-novell-suse-10-on-ibm-system.html' title='Lock Down Novell SUSE Linux on IBM System z'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-883604684459511203</id><published>2010-09-26T08:43:00.044-04:00</published><updated>2010-10-02T13:25:25.226-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Access Controls'/><title type='text'>Stuxnet Worm Reveals Default Password Vulnerabilities</title><content type='html'>&lt;h4&gt;Just put it into production... it will be okay&lt;/h4&gt;
&lt;p&gt;In the last two weeks, I've heard some things which made my blood boil. Such as the recent Stuxnet worm, continued cyber attacks against &lt;a href="http://en.wikipedia.org/wiki/The_Pentagon"&gt;The Pentagon&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/NATO"&gt;NATO&lt;/a&gt;, and an article describing past &lt;a href="http://online.wsj.com/article/SB123914805204099085.html"&gt;U.S. electricity grid intrusions&lt;/a&gt;. Perhaps, I am oversimplifying the root causes but the information available to me makes me want to get up on the soap box to talk about security basics.&lt;/p&gt;

&lt;p&gt;I have a love-hate relationship with the idea of computer appliances. On one hand, this pre-installed piece of hardware is ready-to-go. It has already been configured, tested, and you can pretty much guarantee it is going to work when you plug it in. This is a real operational cost savings. On the other hand, I have many security concerns which stem from the “default” nature of their configuration. After all, an appliance usually runs on top of a general-purpose operating system combined with commonly available software such as databases. &lt;/p&gt;

&lt;p&gt;After reading an article which identified the primary attack vector as a default password on a &lt;a href="http://en.wikipedia.org/wiki/Programmable_logic_controller"&gt;programmable logic controller (PLC)&lt;/a&gt;, I cringed:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“The [Stuxnet] worm was directed at a very popular process controller (Siemens Simatic Programmable Logic Controller) and exploited a zero-day vulnerability in the PLC's WINCC SQL database.&lt;/p&gt;
&lt;p&gt;The exploit lay bare the disconnect between the IT and Industrial Control Systems (ICS) communities. This particular PLC (as well as many other ICSs) burned the default passwords in software. The hackers exploited this design to get access to the database.”[1]&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you're an organization which deploys appliances, does the vendor provide the ability to change default parameters such as a password?&lt;/p&gt;

&lt;p&gt;When it comes to minimizing the attack surface and applying patches, I hear so many reasons not to remove software and not to apply patches. I've heard that the cost to install software later is more than if they just delivered it in the original installation – besides, there are very few services or packages one can leave off the system.&lt;/p&gt;

&lt;p&gt; As Colonel Sherman T. Potter, my favorite character from the television series M*A*S*H, would say, “Mule Muffins.”&lt;/p&gt;

&lt;p&gt;I ran the following shell command on two generic Linux server installations to determine how many services were not running and their associated packages:&lt;/p&gt;

&lt;pre&gt;chkconfig --list |egrep -v ":on" |awk \
'{printf "rpm -q --file /etc/init.d/%s\n", $1}' |sh&lt;/pre&gt;

&lt;p&gt;In Fedora 12, there were approximately 30 services not running and in openSUSE 11 there were about 40 services. My argument is if the system is performing its assigned tasks and these services aren't running, then remove them before they become inadvertently started or associated tools are exploited.&lt;/p&gt;

&lt;p&gt;This is no reflection on an operating system itself; it simply means that operating system distributions typically include many services for maximum interoperability and ease of configuration. Nonetheless, you should take a serious look at what isn't used on your system and remove it.&lt;/p&gt;

&lt;p&gt;Every good operating environment should have a digitally signed software repository  where system administrators can pull authorized software and patches. This only takes a few seconds and the beautiful thing about Linux packaging is that it resolves dependencies.&lt;/p&gt;

&lt;p&gt;So, if you needed to add a webserver (e.g., Apache), all of the associated packages could easily be pulled and installed in your operating system very quickly.&lt;/p&gt;

&lt;p&gt;When I read about the state of NATO systems and their reported reluctance to apply system patches, I began to grind my teeth:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;NATO's systems are behind the U.S.'s, said one person familiar with U.S. assessments of NATO's systems after a recent trip the deputy defense secretary made there. "The Chinese totally owned them," this person said, adding that NATO hadn't installed many of the basic network security patches, because it had decided some of its computers were too important to ever turn off.&lt;sup&gt;[2]&lt;/sup&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;NATO spokesman James Appathurai denied that the alliance's computers were regularly compromised. However, I didn't hear him dispute the fact that the systems were missing many of the basic security patches.&lt;/p&gt;

&lt;p&gt;So, is it just a matter of time? Or have the systems already been comprised but NATO is unaware? Lastly, if the systems are so important, why isn't there any redundancy? Are there no load-balancing or fail-over systems?&lt;/p&gt;

&lt;p&gt;How many applications have been deployed in your environment with default passwords? When was the last time they were patched? How many lingering, dormant services reside on your systems?&lt;/p&gt;

&lt;hr width="25%" align="left"/&gt;

&lt;p&gt;1. &amp;ldquo;&lt;a href="http://www.computerworld.com/s/article/9180702/Opinion_IT_needs_to_help_secure_industrial_control_systems?taxonomyId=17"&gt;Opinion: IT needs to help secure industrial control systems&lt;/a&gt;&amp;rdquo; by Joe Weiss of Computerworld (August 13, 2010)&lt;/p&gt;

&lt;p&gt;2. &amp;ldquo;&lt;a href="http://online.wsj.com/article/SB10001424052748703793804575511961264943300.html?mod=WSJ_Tech_LEFTTopNews"&gt;Cyber Attacks Test Pentagon, Allies and Foes&lt;/a&gt;&amp;rdquo; by Siobhan Gorman in Washington and Stephen Fidler in London, The Wall Street Journal (September 25, 2010)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-883604684459511203?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/883604684459511203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/09/just-put-it-into-production-it-will-be.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/883604684459511203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/883604684459511203'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/09/just-put-it-into-production-it-will-be.html' title='Stuxnet Worm Reveals Default Password Vulnerabilities'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-5088051406257536053</id><published>2010-09-07T10:01:00.002-04:00</published><updated>2010-10-04T20:28:50.911-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PCI DSS'/><category scheme='http://www.blogger.com/atom/ns#' term='NSA'/><title type='text'>Support for NSA Secure Configuration Guide</title><content type='html'>&lt;p&gt;Later this month, we will be releasing Security Blanket v4.0.3 which, among other things, will include support for the National Security Agency's &amp;ldquo;Guide to the Secure Configuration of RHEL5.&amp;rdquo; &lt;/p&gt;

&lt;p&gt;I&amp;rsquo;ve been busy defining our development road map for the next six months, delivering webinars, developing presentations, working with customers, authoring white papers, and of course writing code. Needless to say, I&amp;rsquo;ve been neglecting my blog. As I was gathering information for our technical writer to update the release notes, it occurred to me that I should highlight key features of the next release on the blog. And for my readers who prefer more technical posts, I promise I will resume with more technical ones this fall. &lt;/p&gt;

&lt;p&gt;The key areas we focused on for this release were:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#perf"&gt;Reliability and Performance&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#newguides"&gt;Additional Security Guidelines&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#sfwcomp"&gt;Software Components - Updates and Dependencies&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#baseline"&gt;Baseline Feature Improvements&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#reporting"&gt;Reporting&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;br/&gt;
&lt;a name="perf"&gt;&lt;/a&gt;
&lt;h4&gt;Reliability and Performance&lt;/h4&gt;
&lt;p&gt;Reliability is one of the most critical operational characteristics of Security Blanket. Its ability to consistently detect, remedy, &lt;span style="text-decoration:underline;"&gt;and reverse previous changes&lt;/span&gt; is the core of the product and is our first priority. This is especially challenging given the broad spectrum of operating system versions, subtle nuances between minor revisions of a distribution, and of course, non-standard changes system administrators may make to an operating system. Nonetheless, we&amp;rsquo;ve worked closely with customers, aggressively tested and retested modules, and performed countless applies and undos to ensure reliability.&lt;/p&gt;

&lt;p&gt;In this next release, a greatly improved &lt;span style="font-style:italic;"&gt;core engine&lt;/span&gt; and &lt;span style="font-style:italic;"&gt;state handler&lt;/span&gt; will be delivered. For clarity's sake, the purpose of these components are as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;span style="font-style:italic;"&gt;core engine&lt;/span&gt; is responsible for loading modules, requesting actions from modules, and generating reports that are to be sent back to the console.&lt;/li&gt; 
&lt;li&gt;The &lt;span style="font-style:italic;"&gt;state handler&lt;/span&gt; interacts with the &lt;span style="font-style:italic;"&gt;core engine&lt;/span&gt; by persisting each module's last action to disk. It also stores and retrieves &lt;span style="font-style:italic;"&gt;change records&lt;/span&gt; so that a module may reverse (&lt;span style="font-style:italic;"&gt;undo&lt;/span&gt;) previous changes it has made.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Improvements include a more robust, strict programming interface between the modules and &lt;span style="font-style:italic;"&gt;core engine&lt;/span&gt;, resulting in more reliable behavior. We also simplified the components by removing unnecessary actions which of course, improved performance.&lt;/p&gt;

&lt;br/&gt;
&lt;a name="newguides"&gt;&lt;/a&gt;
&lt;h4&gt;Additional Security Guidelines&lt;/h4&gt;
&lt;p&gt;Besides reviewing and improving our modules to ensure compliancy with PCI DSS v1.2.1, we added support for the following three guidelines:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;“NSA Guide to the Secure Configuration of RHEL5” (Rev.3 / Oct 2009) &lt;/li&gt;
&lt;li&gt;CIS Benchmark for “Mozilla Firefox 3.5”, v1.0.0, January 7th, 2010 &lt;/li&gt;
&lt;li&gt;“Mozilla Firefox”, DISA STIG Version 4, Release 2, April 23, 2010&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This support added another 30 or so security modules as well as a new standard profile called "NSA GUIDE". You can use this profile by itself or customize it to fit your needs. It should be noted that this new profile can be applied to any of our other supported operating systems, too; not just Red Hat 5. The NSA configuration guide has some great recommendations which we've extrapolated to other operating systems.&lt;/p&gt;
&lt;br/&gt;
&lt;a name="sfwcomp"&gt;&lt;/a&gt;
&lt;h4&gt;Software Components - Updates and Dependencies&lt;/h4&gt;
&lt;p&gt;First and foremost, the console no longer requires a Java Development Kit (JDK). It only requires a Java Runtime Environment (JRE) version 1.6 or later. An earlier version of a console subcomponent needed to dynamically compile Java Server Pages (JSP) hence, the previous JDK requirement. And for security reasons, the console's Apache Tomcat has been upgraded from 6.0.20 to 6.0.29.&lt;/p&gt;
&lt;p&gt;As a result of the &lt;span style="font-style:italic;"&gt;core engine's&lt;/span&gt; rework, the PyXML software package is no longer required. Profile processing no longer uses &lt;a href="http://en.wikipedia.org/wiki/Document_Object_Model"&gt;Document Object Model (DOM)&lt;/a&gt; &amp;mdash; instead, it now uses &lt;a href="http://en.wikipedia.org/wiki/Xpath"&gt;XPath&lt;/a&gt;.&lt;/p&gt;

&lt;br/&gt;
&lt;a name="baseline"&gt;&lt;/a&gt;
&lt;h4&gt;Baseline Feature Improvements&lt;/h4&gt;
&lt;p&gt;Security Blanket's &lt;a href="http://tcs-security-blanket.blogspot.com/2009/08/what-is-baseline.html"&gt;baseline&lt;/a&gt; feature has been enjoyed by customers since its introduction in version 1.0. Security Blanket deployments continue to expand and diversify, we wanted to make it more robust and flexible.&lt;/p&gt;
&lt;p&gt;Its deployment in virtualized environments and various types of hardware have forced us to probe for information in multiple ways. For example, not all virtualization frameworks may use &lt;a href="http://en.wikipedia.org/wiki/Desktop_Management_Interface"&gt;DMI&lt;/a&gt; or may not report attached PCI or USB devices in the same manner.&lt;/p&gt;
&lt;p&gt;The new baseline feature is now more flexible because you can pick-and-choose what information you want collected. For example, you may only want to inventory &lt;tt&gt;/usr/bin&lt;/tt&gt; and no other system directory &amp;mdash; or you may want to collect everything except for your host-based firewall rules. This modular design also allows us to deliver customized probes in future releases which could be tailored for specific types of platforms.&lt;/p&gt;

&lt;br/&gt;
&lt;a name="reporting"&gt;&lt;/a&gt;
&lt;h4&gt;Reporting&lt;/h4&gt;
&lt;p&gt;Security Blanket has always had an impressive list of reports in various formats. Our &lt;a href="http://www.trustedcs.com/documents/SecurityBlanket_Modules_Guide.pdf"&gt;Modules Guide&lt;/a&gt;  details what the modules are looking for and what they will configure. Once you&amp;rsquo;ve allowed Security Blanket to apply (configure) changes to your system, you can easily look in the log to see exactly what was changed. However, many customers wanted a formal report to provide as evidence for their change management process. So, in this new release "Apply Reports" and "Undo Reports" will be available. And these reports will include "module messages" such as what file was modified and what parameters were added or modified. Take a look at the following excerpt from an Apply Report:&lt;/p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EACT8Hhim20/TIY6gFuMtRI/AAAAAAAAAWs/HNGqseVmXJ0/s1600/module-messages-applied2.png.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 66px;" src="http://1.bp.blogspot.com/_EACT8Hhim20/TIY6gFuMtRI/AAAAAAAAAWs/HNGqseVmXJ0/s400/module-messages-applied2.png.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5514159116727923986" /&gt;&lt;/a&gt;

&lt;p&gt;Of course, the logs will still contain more details if you need them. The existing Assessment Reports were enhanced to include some additional messages to help streamline your analysis process:&lt;/p&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EACT8Hhim20/TIY8vzzaLQI/AAAAAAAAAW0/GpHHaAK2oLI/s1600/newModuleMessages.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 309px;" src="http://2.bp.blogspot.com/_EACT8Hhim20/TIY8vzzaLQI/AAAAAAAAAW0/GpHHaAK2oLI/s400/newModuleMessages.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5514161585819102466" /&gt;&lt;/a&gt;

&lt;h4&gt;Conclusion&lt;/h4&gt;
&lt;p&gt;We are excited by the improvements and new features in v4.0.3. As our customer base grows and diversifies, we continue to grow and improve the product accordingly. If you&amp;rsquo;re interested in the new features, or have questions or suggestions for upcoming releases, please send us an email at &lt;a href="mailto:SecurityBlanket@TrustedCS.com"&gt;SecurityBlanket@TrustedCS.com&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-5088051406257536053?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/5088051406257536053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/09/security-blanket-to-include-support-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/5088051406257536053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/5088051406257536053'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/09/security-blanket-to-include-support-for.html' title='Support for NSA Secure Configuration Guide'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_EACT8Hhim20/TIY6gFuMtRI/AAAAAAAAAWs/HNGqseVmXJ0/s72-c/module-messages-applied2.png.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-6436027232876592850</id><published>2010-08-27T07:25:00.043-04:00</published><updated>2010-08-31T10:02:27.765-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CIS'/><category scheme='http://www.blogger.com/atom/ns#' term='PCI DSS'/><title type='text'>Configuring Red Hat to Meet PCI DSS</title><content type='html'>&lt;p&gt;Configuring the Red Hat&lt;span class="shift"&gt;&amp;reg;&lt;/span&gt; Enterprise Linux&lt;span class="shift"&gt;&amp;reg;&lt;/span&gt; operating system to meet the Payment Card Industry Data Security Standard (PCI DSS) can be a tedious, time consuming, recurring activity if you don't take the time to automate it.&lt;/p&gt;

&lt;p&gt;Becoming compliant with PCI DSS involves a lot more than just configuring the operating system as I described in a previous post titled &amp;ldquo;&lt;a href="http://tcs-security-blanket.blogspot.com/2010/08/operational-security-for-non-techies.html"&gt;Operational Security for Non-Techies&lt;/a&gt;&amp;rdquo;. PCI DSS requirement 2.2 is the bulk of a Linux&lt;span class="shift"&gt;&amp;reg;&lt;/span&gt; system administrator&amp;rsquo;s work as I explained in my &amp;ldquo;&lt;a href="http://tcs-security-blanket.blogspot.com/2010/07/pci-dss-from-linux-sysadmins.html"&gt;PCI DSS from a Linux Sysadmin&amp;rsquo;s Perspective&lt;/a&gt;&amp;rdquo; post.&lt;/p&gt;

&lt;p&gt;Regardless if this is your first PCI DSS audit or not, in my opinion there are three distinct phases involved:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Develop a security profile. &lt;p&gt;This involves taking an inventory of all of the necessary technical controls that will be implemented on each operating system to meet the PCI DSS.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;Implementing the profile. &lt;p&gt;This involves implementing the technical controls and TESTING applications to ensure they are still functioning properly. If they aren&amp;rsquo;t functioning properly, the applications should be modified or find an alternative way to mitigate the risk associated with the missing or inadequate security control.&lt;/p&gt;

&lt;p&gt;One compliance manager of a large retailer reports that he mobilizes over 600 workforce personnel and spends millions of dollars every six months in order to be ready for a PCI DSS audit. Some organizations consider the auditing process a &amp;ldquo;fire-drill&amp;rdquo; and after passing the audit, will often undo all of the technical controls they put in place.&lt;sup&gt;[1]&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;Maintaining the security posture. &lt;p&gt;This means maintaining the same security posture despite software updates and patches, new software, and new personnel.&lt;/p&gt;&lt;/li&gt;   
&lt;/ol&gt;

&lt;p&gt;Using Security Blanket&lt;span class="shift"&gt;&amp;reg;&lt;/span&gt;, several organizations have successfully become PCI DSS compliant and more importantly can regularly monitor and maintain this security posture with ease. Unlike scan-only tools which tell you what you need to manually configure, Security Blanket can automatically configure your operating system and reverse the setting if necessary. This is critical during the implementation and testing phase.&lt;/p&gt;

&lt;p&gt;This was certainly the case when we recently &lt;a href="http://www.businesswire.com/news/home/20100825005097/en"&gt;teamed up&lt;/a&gt; with &lt;a href="http://ezrez.com/"&gt;ezRez Software, Inc.&lt;/a&gt;, a leading Software-as-a-Service (SaaS) provider for the online travel industry. ezRez Software provides customizable online travel agency functionality to some of the world’s largest airlines, hotels, travel agencies and banking loyalty programs, which require strict compliancy to both the PCI DSS and Center for Internet Security (CIS) benchmarks.&lt;/p&gt;

&lt;blockquote&gt;“We found that Security Blanket could assess the security posture of our Red Hat and CentOS servers, identify non-compliant areas and automatically fix them in half the time versus having to do it manually,” stated Jared Wright, Data Center Operations Manager, ezRez Software. “Our team is able to define custom profiles that combine PCI DSS and CIS standards, as well as harden our systems in less than two weeks. Security Blanket’s additional value is the reporting functionality as it validates the system’s security status. The product is now integrated into our standard server deployment process, and we will continue to use the &amp;ldquo;one click&amp;rdquo; assessment and automated configuration features to monitor our security posture regularly.” (&lt;a href="http://www.businesswire.com/news/home/20100825005097/en"&gt;Read Entire Press Release&lt;/a&gt;)&lt;/blockquote&gt;

&lt;p&gt;Jared Wright worked closely with Robert Sanders, a senior Security Blanket engineer as they progressed through the three phases. Now that their Security Blanket profiles are in place, maintaining this level of security throughout the year will be seamless. No more &amp;ldquo;fire-drills&amp;rdquo; prior to being audited.&lt;/p&gt;

&lt;p&gt;Working with ezRez Software was rewarding for our team and we were impressed with their commitment to security. Wherever they could, they implemented security controls exceeding the PCI DSS and CIS. The flexibility of Security Blanket profiles enabled the addition or deletion of security modules from their profiles with just a few clicks. &lt;/p&gt;

&lt;p&gt;ezRez Software also provided us with great feedback to streamline the work flow. These enhancements, new reports, and other features will be available in Security Blanket v4.0.3 to be released in September 2010.&lt;/p&gt;
 
&lt;p&gt;If you are interested in automating your lock down process with Security Blanket to achieve your security goals, contact us at &lt;a href="mailto:SecurityBlanket@TrustedCS.com"&gt;SecurityBlanket@TrustedCS.com&lt;/a&gt;&lt;/p&gt;

&lt;br/&gt;
&lt;hr width="25%" align="left"/&gt;
1. &amp;ldquo;For PCI, the Future is Now: How to comply with the global standard without breaking the bank&amp;rdquo;, Tripwire, Sandra Gitlen, January 2010&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-6436027232876592850?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/6436027232876592850/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/08/configuring-red-hat-to-meet-pci-dss_27.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/6436027232876592850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/6436027232876592850'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/08/configuring-red-hat-to-meet-pci-dss_27.html' title='Configuring Red Hat to Meet PCI DSS'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-2820593525841397194</id><published>2010-08-23T12:59:00.044-04:00</published><updated>2010-08-24T08:44:55.235-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Clusters'/><title type='text'>Linux Clusters: Keeping nodes consistently and securely configured</title><content type='html'>&lt;p&gt;Today, organizations are utilizing technology more and more to meet their business objectives. As such, the survivability of the employed technology as a “system” can directly impact the ability to meet their business objectives. &lt;/p&gt;

&lt;p&gt;Survivability is defined as the capability of a system to fulfill its mission, in a timely manner, in the presence of attacks, failures, or accidents. As a discipline, survivability builds on related fields of study such as security, fault tolerance, reliability, and performance.&lt;sup&gt;[1]&lt;/sup&gt;&lt;/p&gt;

&lt;p&gt;To improve system survivability many organizations are using “&lt;a href="http://en.wikipedia.org/wiki/Cluster_%28computing%29"&gt;cluster&lt;/a&gt;” technology – which unifies resources to provide higher-availability and better performance. In a traditional, non-cluster architecture, if a single machine fails then the service it was providing is no longer available. To improve a machine's survivability, many vendors build their hardware with redundant power supplies and mirrored storage subsystems to eliminate a single point of failure. So, in the event of a single failure the system continues to operate. &lt;/p&gt;

&lt;p&gt;Some organizations don't like the idea of idle resources such as those in a &lt;a href="http://en.wikipedia.org/wiki/Cluster_%28computing%29#High-availability_.28HA.29_clusters"&gt;failover cluster&lt;/a&gt;. A &lt;a href="http://en.wikipedia.org/wiki/Cluster_%28computing%29#Load-balancing_clusters"&gt;load-balancing cluster&lt;/a&gt; addresses this by distributing the workload across all nodes in the cluster and will continue to operate even if one node fails.  This also improves performance and scalability. If the load-balancing cluster's response time has degraded due to increased demands, organizations will typically add more CPU and  memory to existing nodes in the cluster. When the node's maximum hardware capacity has been reached, the organization can add more nodes to the cluster thus scaling to meet the operational demands. &lt;/p&gt;

&lt;p&gt;In both configurations, it becomes critical that each node's operating system be similarly configured. In a &lt;a href="http://en.wikipedia.org/wiki/High-availability_cluster"&gt;high-availability cluster&lt;/a&gt;, a critical piece of software may be required to be a specific version because  the previous version had both security and performance flaws. Therefore, it is critical that each node be running the same version otherwise, in the event of a failure, a flawed version of the software could be running. &lt;/p&gt;

&lt;p&gt;Likewise, in a load-balancing cluster each node should be similarly configured.  In this  scenario, users may have different experiences depending on which node serviced their request. This translates into an unreliable service which is very difficult to troubleshoot on a per user basis. Besides software version differences, consider the impact of different operating system parameters such as those which control &lt;a href="http://en.wikipedia.org/wiki/Internet_Protocol_Suite"&gt;TCP/IP&lt;/a&gt; communications.&lt;/p&gt;


&lt;p&gt;Another family of clusters focuses on unifying resources for computational purposes, rather than handling IO-oriented operations such as web services or databases.  These types of clusters are generally referred to as &amp;ldquo;&lt;a href="http://en.wikipedia.org/wiki/Cluster_%28computing%29#Compute_clusters"&gt;compute clusters&lt;/a&gt;&amp;rdquo;. These clusters require a lot of resources to solve large, complex problems often involving mathematics – such computational simulations include analyzing architecture structures under duress and railway crashes. &lt;/p&gt;

&lt;p&gt;Regardless if it is a compute cluster, high-availability cluster, or load-balancing cluster, their nodes must be consistently and securely configured without impeding their performance or reliability. &lt;/p&gt;

&lt;h4&gt;Security Blanket&lt;span class="shift"&gt;®&lt;/span&gt; Can Help&lt;/h4&gt;
&lt;p&gt;Security Blanket is the only tool that automatically configures the operating system to meet industry security standards and allows for the easy creation of customized security lock down profiles. Security Blanket is well suited for clusters for several reasons including the ability to track configuration drifts, has flexible reporting capabilities, and most importantly it is cost-effective.&lt;/p&gt;

&lt;p&gt;Security Blanket has been successfully deployed in several cluster configurations including &lt;a href="http://www.linux-ha.org"&gt;Linux-HA Clusters&lt;/a&gt;, &lt;a href="http://www.beowulf.org/"&gt;Beowulf Clusters&lt;/a&gt;, and &lt;a href="http://www.rocksclusters.org"&gt;Rocks Clusters&lt;/a&gt;. Security Blanket's architecture consists of a single console and dispatchers installed on each node which executes the core engine to perform scans, apply configurations, undo previously applied configurations, and baselines. The dispatcher's virtual memory size is around 61 kilobytes and authenticates and encrypts communications with the console using &lt;a href="http://en.wikipedia.org/wiki/Transport_Layer_Security"&gt;Transport Layer Security (TLS)&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;The use of event-driven &lt;a href="http://en.wikipedia.org/wiki/Simple_Object_Access_Protocol"&gt;Simple Object Access Protocol (SOAP)&lt;/a&gt; messaging between the console and client is kept to a minimum lessening the impact to tightly-coupled clusters. The console never probes the network for new nodes and only performs actions on nodes when specifically requested. The console gives you the ability to schedule actions, which are then scheduled on each node and will be performed regardless if the console is available or not. Some products require the console to be alive before scheduled actions will be performed, but not Security Blanket.&lt;/p&gt;

&lt;p&gt;Other technological safeguards include the ability to configure a node's dispatcher to not accept console requests during certain time frames. This prevents console users from inadvertently disrupting compute jobs or hindering a load-balancing or high-availability cluster during peak hours of operation. Furthermore, the dispatcher can also be configured to ignore console requests if the node's current load average is over a specific threshold. Again, protecting the node from inadvertent requests which could otherwise degrade the node's performance.&lt;/p&gt;

&lt;p&gt;Another feature which Security Blanket customers appreciate is the ability to define an “exclusion list”. This is a list of directories which many Security Blanket modules will not traverse. In cluster configurations utilizing shared storage such as a &lt;a href="http://en.wikipedia.org/wiki/Storage_area_network"&gt;storage area network (SAN)&lt;/a&gt;, every node should not be required to analyze discretionary access controls on the same multi-terabyte file system. The use of the exclusion list prevents the same files from being analyzed over and over. One Security Blanket customer previously used a scan-only product but was required to remove the node from the grid, otherwise it would take a day or two to perform a scan. When they deployed Security Blanket, they could keep the node within the grid by using the exclusion list.&lt;/p&gt;

&lt;p&gt;In addition to performing security lock downs, Security Blanket can be configured to collect information such as all installed software packages, network routing configuration, host-based firewall rules, attached hardware, and access controls and cryptographic hashes on key system files.&lt;/p&gt;

&lt;p&gt;The baseline data itself is stored in a single, &lt;a href="http://en.wikipedia.org/wiki/XML"&gt;Extensible Markup Language (XML)&lt;/a&gt; structured text file. Through the console, many types of reports are available and in various formats including plain text, HTML, comma separated values for use in spreadsheet applications, and Adobe Portable Document Format (PDF). Moreover, Security Blanket ships with the &lt;a href="http://en.wikipedia.org/wiki/XSD"&gt;XML schema definition (XSD)&lt;/a&gt; files to aid an organization's custom reporting requirements or to assist with feeding the information upstream.&lt;/p&gt;

&lt;p&gt;The real power of the baseline feature is the ability to quickly compare a node's configuration at two points in time. Many organizations discover that their patch management process alters previously established access controls and settings within the operating system. Security Blanket can identify them and correct them immediately. Security Blanket reports not only provide evidence to the change management process but can assist forensic activities. 
Ironically, the rigid, structured nature of the XML-based reports makes it flexible enough to compare two different nodes. This is ideal for cluster configurations to ensure that all of the installed software packages and file permissions are the same on each node.&lt;/p&gt;

&lt;p&gt;In addition to baseline reports, there are assessment reports detailing the node's security posture. A single group assessment report can also be generated in order to view all of the nodes in a cluster within in a single report. Like baseline reports, two assessment reports of the same node or different nodes can be compared to quickly identify changes or differences in the security posture.&lt;/p&gt;

&lt;p&gt;The intuitive web-based console makes it easy for administrators to implement and maintain a consistent, securely configured cluster. The console's role-based access controls include pre-defined roles such as an administrator who can manage clients and modify security profiles to a manager who can only view reports. The easy-to-use, streamlined workflow reduces the time it takes for system administrators to learn the console and allows them to work on other mission critical and revenue generating tasks.&lt;/p&gt;

&lt;br/&gt;
&lt;hr width="25%" align="left"/&gt;
&lt;p&gt;1. “Survivable Network Systems: An Emerging Discipline”, Carnegie Mellon University, Software Engineering Institute , 1999&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-2820593525841397194?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/2820593525841397194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/08/linux-clusters-keeping-nodes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/2820593525841397194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/2820593525841397194'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/08/linux-clusters-keeping-nodes.html' title='Linux Clusters: Keeping nodes consistently and securely configured'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-2938284465944182353</id><published>2010-08-09T09:45:00.046-04:00</published><updated>2010-08-10T20:42:54.575-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Policies'/><category scheme='http://www.blogger.com/atom/ns#' term='PCI DSS'/><title type='text'>Operational Security for Non-Techies</title><content type='html'>&lt;p&gt;There is an abundance of technologies which focus on security while other technologies have security features built into them. It can be overwhelming choosing the right technology to meet your security requirements. Yet, any technology would be rendered useless without operational security. Incorrect implementations, misconfiguration, poor procedures, lack of contingency plans, untrained or undisciplined personnel all contribute to poor operational security.&lt;/p&gt;

&lt;p&gt;Last year, a friend of mine was in the planning phase of expanding their business by harnessing the power of &lt;a href="http://en.wikipedia.org/wiki/Electronic_commerce"&gt;electronic commerce&lt;/a&gt; &amp;mdash; selling their products over the Internet. The business, &lt;a style="text-decoration:underline; font-variant:small-caps;" href="http://www.adelerjewelers.com/"&gt;Adeler Jewlers&lt;/a&gt;, is highly reputable and the kind of business which believes today&amp;rsquo;s quality is tomorrow&amp;rsquo;s customers. They had concerns that poor online security could jeopardize their customer&amp;rsquo;s financial information they&amp;rsquo;ve been entrusted to protect. They hand-craft works of art worn by celebrities and everyday people &amp;mdash; but they know nothing of system availability, electronically ensuring confidentiality, or ensuring data integrity. After all, they&amp;rsquo;re gifted artisans and gemologists not &lt;span style="font-style:italic;"&gt;techno-geeks&lt;/span&gt;.&lt;/p&gt;

&lt;p&gt;They were planning to use a &lt;span style="font-style:italic;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Application_service_provider"&gt;service provider&lt;/a&gt;&lt;/span&gt; which specialized in electronic commerce. Prior to interviewing the service provider, they asked me for advice and to suggest interview questions because I have many years of experience working in secure operational environments. My first inclination was to ramble on about high-availability, data integrity, patch management but I stopped before I blurted out my first &lt;span style="font-style:italic;"&gt;geek&lt;/span&gt; word. Instead I discussed it in terms of how operational security impacts their business. If a system is unavailable, you lose business because customers can&amp;rsquo;t use your website. Now I was speaking this business woman&amp;rsquo;s language. In the end, she found a service provider that answered her questions and met her very high standards of customer care.&lt;/p&gt;

&lt;p&gt;More recently, my company&amp;rsquo;s Security Blanket&lt;span class="shift"&gt;&amp;reg;&lt;/span&gt; customer base is expanding into various industries. These customers range in size, available resources, and experience but all share a common goal of protecting their systems. Some of these customers are venturing into new areas &amp;mdash; faced with new security policies and requirements which they&amp;rsquo;ll address themselves.&lt;/p&gt;

&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EACT8Hhim20/TF1ousoI8UI/AAAAAAAAAVM/hO53G0-8tns/s1600/SB_WORKFLOW.png.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 277px; height: 320px;" src="http://2.bp.blogspot.com/_EACT8Hhim20/TF1ousoI8UI/AAAAAAAAAVM/hO53G0-8tns/s320/SB_WORKFLOW.png.jpg" border="1" alt="" id="BLOGGER_PHOTO_ID_5502669471179403586" /&gt;&lt;/a&gt;Whether you&amp;rsquo;re like my friend&amp;rsquo;s business who will be using a third-party or you will be implementing the operational security yourself, I&amp;rsquo;ve put together some information to help you on your new venture &amp;mdash; or should I say &lt;span style="font-style:italic;"&gt;adventure&lt;/span&gt;?&lt;/p&gt;

&lt;h4&gt;Defining the Security Policy&lt;/h4&gt;
&lt;p&gt;A policy is high-level and defines what is required to protect your assets and ensure business continuity. Its constraints are typically legal in nature (e.g., Privacy Act of 1947, HIPPA, or FISMA). Additional constraints can be those imposed by business objectives such as system availability and timely service.&lt;/p&gt;

&lt;p&gt;Since my friend&amp;rsquo;s business was going to be involved with electronic commerce, I suggested to her that the service provider she chose be PCI DSS compliant. The Payment Card Industry&amp;rsquo;s (PCI) &lt;a href="https://www.pcisecuritystandards.org/"&gt;Security Standards Council&lt;/a&gt; is an open global forum. Launched in 2006, it is responsible for the development, management, education, and awareness of the PCI Security Standards, including the &lt;a href="https://www.pcisecuritystandards.org/security_standards/pci_dss.shtml"&gt;Data Security Standard (DSS)&lt;/a&gt;. Not technically a policy; it is however, a requirement set forth by the Payment Card Industry if you want to do business with their card holders online.&lt;/p&gt;

&lt;p&gt;Questions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Depending on your business, what kind of certifications does the service provider possess? If you&amp;rsquo;re deploying an electronic commerce solution, ask to see evidence of their annual PCI DSS assessment. Typically, providers are certified annually but undergo quarterly assessments to ensure they are maintaining the appropriate level of security. If the service provider says they perform &lt;span style="font-style:italic;"&gt;self-assessments&lt;/span&gt;, then I would ask how often they perform them and to provide evidence that they were in fact performed &amp;mdash; but that&amp;rsquo;s just me.&lt;span style="font-style:italic;"&gt; (PCI DSS &amp;#x00A7; 12.1.2 &amp;amp; 12.1.3)&lt;/span&gt;&lt;/li&gt;
  
&lt;li&gt;Personnel &amp;mdash; What is the service provider&amp;rsquo;s hiring policy?  What kind of system administrators will be managing your customer&amp;rsquo;s information? These people have access to your customer&amp;rsquo;s information and will be an extension of your business so their actions reflect your business. &lt;span style="font-style:italic;"&gt;(PCI DSS &amp;#x00A7; 12.7)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;The Architecture&lt;/h4&gt;
&lt;p&gt;The architecture must be clearly documented. For organizations responsible for their own operational security, it is imperative that you document the architecture and routinely update it. I&amp;rsquo;ve always said that &amp;ldquo;&lt;span style="font-style:italic;"&gt;...the existence of quality documentation separates the men from the boys.&lt;/span&gt;&amp;rdquo; Besides, you can&amp;rsquo;t securely manage assets if you don&amp;rsquo;t know they exist or how they&amp;rsquo;re expected to function.&lt;/p&gt;

&lt;p&gt;Service providers adhering to the PCI DSS are required to submit a &lt;span style="text-decoration:underline"&gt;Report On Compliance&lt;/span&gt; (ROC) which includes architectural diagrams. However, it is highly unlikely they would divulge these diagrams to their customers and I wouldn&amp;rsquo;t expect them to for security&amp;rsquo;s sake. Which is fine because most of their customers wouldn&amp;rsquo;t understand what they meant anyhow. Nonetheless, as a potential customer you can still ask them questions about their architecture such as redundancy characteristics which facilitate the continuity of &lt;span style="font-style:italic;"&gt;your&lt;/span&gt; business in the event of failures or disasters.&lt;/p&gt;

&lt;p&gt;Questions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What kind of physical security is in place? Is the room in which the system hosting your applications restricted? Are only authorized personnel allowed access to your systems? &lt;span style="font-style:italic;"&gt;(PCI DSS &amp;#x00A7; 9)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Is the level of service to be provided clearly understood? Does the architecture allow the system to be available to customers 99.999% of the time? If the service provider does not meet the agreed upon level of service, how are you compensated for potential loss of business?&lt;/li&gt;
&lt;/ul&gt;


&lt;h4&gt;Plans &amp;amp; Procedures&lt;/h4&gt;
&lt;p&gt;In the real world, would you board an aircraft for a transatlantic flight if you knew neither the pilot or maintenance crew performed their pre-flight checklists? Of course not!&lt;/p&gt;

&lt;p&gt;Plans help enforce your policy while procedures are typically part of your plans. While there are many plans, one of the most important is the &lt;a href="http://en.wikipedia.org/wiki/Business_continuity_planning"&gt;Business Continuity Plan (BCP)&lt;/a&gt;. In the old days, we called them &lt;span style="font-style:italic;"&gt;Disaster Recovery Plans&lt;/span&gt; but with today&amp;rsquo;s technology and the right architecture, you can continue business despite a disaster. Hence, the term &lt;span style="font-style:italic;"&gt;continuity&lt;/span&gt;. &lt;/p&gt;

&lt;p&gt;An &lt;span style="font-style:italic;"&gt;Incident Response Plan&lt;/span&gt; should also be in place in the event of a system breach. If customer card holder information is compromised, the incident response plan is to be implemented immediately. &lt;/p&gt;
 
&lt;p&gt;Questions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Are media back-ups stored in a secure location, preferably an off-site facility, such as an alternate or back-up site, or a commercial storage facility? How is the media transported? How is older media destroyed? &lt;span style="font-style:italic;"&gt;(PCI DSS &amp;#x00A7; 9.5 &amp;ndash; 9.10)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Is there an incident response plan in place? Is the plan tested routinely? How are card holders informed if there was an incident? &lt;span style="font-style:italic"&gt;(PCI DSS &amp;#x00A7; 11 &amp;amp; 12.9.1)&lt;/span&gt; 
&lt;/ul&gt;


&lt;h4&gt;Configuring &amp;amp; Maintaining the Systems&lt;/h4&gt;
&lt;p&gt;Configuring systems for production use involves allocating hardware (or more commonly in today&amp;rsquo;s &lt;a href="http://en.wikipedia.org/wiki/Green_computing#Virtualization"&gt;Green IT environments&lt;/a&gt; &amp;mdash; provisioning virtualized guests), installing operating systems, configuring the applications, and certifying them for use.&lt;/p&gt;

&lt;p&gt;Configuring operating systems consistently, in accordance with security guidelines, is where Security Blanket&lt;span class="shift"&gt;&amp;reg;&lt;/span&gt; excels. Our customers, which include service providers, as well as organizations configuring their own systems to be PCI DSS compliant, consider Security Blanket&lt;span class="shift"&gt;&amp;reg;&lt;/span&gt; invaluable. As a matter of fact, a customer recently stated &lt;span style="font-style:italic;"&gt;&amp;ldquo;...I just completed in 8 minutes what I have been working on for the last several weeks.&amp;rdquo;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;I recently wrote an article describing the activities required by system administrators to become PCI DSS compliant &amp;mdash; check out &amp;ldquo;&lt;a href="http://tcs-security-blanket.blogspot.com/2010/07/pci-dss-from-linux-sysadmins.html"&gt;PCI DSS from a Linux Sysadmin&amp;rsquo;s Perspective&lt;/a&gt;&amp;rdquo;.&lt;/p&gt;

&lt;p&gt;Once the systems are configured and tested, they should be &lt;a href="http://tcs-security-blanket.blogspot.com/2009/08/what-is-baseline.html"&gt;baselined&lt;/a&gt;. This is essentially a snapshot of how the system is configured which can be used to compare against a future snapshot to identify any changes to the system. Identifying changes is an invaluable forensics tool for use in Incident Response Plans as well as evidence for change management processes.&lt;/p&gt;

&lt;p&gt;If you&amp;rsquo;re researching a potential service provider, these activities are really under the hood and wouldn&amp;rsquo;t be of much interest to you. However, I would ask a few questions regarding provisioning and how your customer information co-exists with their other customers.&lt;/p&gt;

&lt;p&gt;Questions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;When they provision resources for new customers, is it disruptive to your systems? If your systems become slow, how easily can they provision additional resources to your configuration?&lt;/li&gt;
&lt;li&gt;In situations where your customer information co-exists with another business&amp;rsquo;s customers, to what degree is that information isolated or contained?&lt;/li&gt;
&lt;/ul&gt;
 
&lt;h4&gt;Managing Change&lt;/h4&gt;
&lt;p&gt;Operational systems must have the characteristic of being &lt;span style="font-style:italic;"&gt;changeable&lt;/span&gt;. They must be able to adapt to new security guidelines, new architectural components, upgraded or replaced technology, and growth due to increased demands on the system.&lt;/p&gt;

&lt;blockquote&gt;&amp;ldquo;&lt;span style="color:yellow;"&gt;Change Management&lt;/span&gt; is an IT Service Management discipline. The objective of Change Management in this context is to ensure that standardized methods and procedures are used for efficient and prompt handling of all changes to controlled IT infrastructure, in order to minimize the number and impact of any related incidents upon service.&amp;rdquo;&lt;sup&gt;[&lt;a href="http://en.wikipedia.org/wiki/Change_Management_%28ITSM%29"&gt;Wikipedia&lt;/a&gt;]&lt;/sup&gt;&lt;/blockquote&gt;

&lt;p&gt;Changes are inevitable but the associated risk must be mitigated. For example, consider that new versions of software are always being released. These new versions might include new features or they fix vulnerabilities. What is riskier: running a vulnerable version of software and risk being attacked or upgrading the software to eliminate the vulnerability? Most logical people would choose to upgrade. However, it is imperative that this new version of software be thoroughly tested in an environment which mimics production to ensure the &amp;ldquo;fix&amp;rdquo; didn&amp;rsquo;t break other features. This process of updating software is often referred to as &lt;span style="font-style:italic;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Patch-management"&gt;patch management&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt;
  
&lt;p&gt;Questions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How do they ensure your systems are protected with the latest patches? When they apply patches, will your systems continue to be available? &lt;span style="font-style:italic"&gt;(PCI DSS &amp;#x00A7; 6.1)&lt;/span&gt;
&lt;li&gt;Are all new software updates (patches) thoroughly tested prior to deployment into production? &lt;span style="font-style:italic"&gt;(PCI DSS &amp;#x00A7; 6.3.1)&lt;/span&gt;
&lt;/ul&gt;

&lt;h4&gt;Summary&lt;/h4&gt;
&lt;p&gt;Regardless of whether you&amp;rsquo;re responsible for your own systems or you&amp;rsquo;ve entrusted someone else, operational security is critical. Even the latest and greatest most sophisticated technology could be hindered or worse rendered useless if poor operational security exists. In my opinion, the number one ingredient to operational security is trained, disciplined personnel. They need the right tools which empower them rather than over complicate their already stressful jobs.&lt;/p&gt;
 
&lt;p&gt;As a family friend, I am honored &lt;a href="http://www.adelerjewelers.com/pplplaces.html"&gt;Mrs. Wendy Adeler Hall&lt;/a&gt; asked for my advice but I am a bit disappointed her father, &lt;a href="http://www.adelerjewelers.com/pplplaces.html"&gt;Jorge Adeler&lt;/a&gt;, did not afford me the opportunity to meet Anna Kournikova &amp;mdash; who recently wore a diamond pendant designed and hand made by him at a charity event hosted by &lt;a style="text-decoration:underline; font-variant:small-caps;" href="http://www.capitolfile-magazine.com/"&gt;Capitol File&lt;/a&gt;.&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"  href="http://www.adelerjewelers.com"&gt;&lt;span class="left-caption"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://2.bp.blogspot.com/_EACT8Hhim20/TF2-3cclDDI/AAAAAAAAAVU/OatOUEW-b6I/s200/Anna_K.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5502764179454757938" /&gt;&lt;p&gt;Anna Kournikova &amp; Jorge Adeler&lt;/p&gt;&lt;/span&gt;&lt;/a&gt; For my female readers, there are some photographs of Argentinian heartthrob  and face of Polo &amp;mdash; &lt;a href="http://www.facebook.com/photo.php?pid=4276902&amp;id=68273728256"&gt;Nacho Figueras&lt;/a&gt;. To read some fun facts and see more photographs, check out the &lt;a href="http://www.facebook.com/pages/Adeler-Jewelers/68273728256?ref=search&amp;sid=1017441598.3801372817..1"&gt;&lt;span style="font-variant:small-caps"&gt;Adeler Jewelers&lt;/span&gt; Facebook Fan Page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.facebook.com/photo.php?pid=4276902&amp;id=68273728256" title="Mrs. Wendy Adeler Hall and Nacho Figueras"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 167px; height: 200px;" src="http://1.bp.blogspot.com/_EACT8Hhim20/TGADSkgAuWI/AAAAAAAAAVc/bGS9GOf2VZY/s200/34218_423394578256_68273728256_4276902_7605466_n.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5503402362217216354" /&gt;&lt;/a&gt;I know an engineer&amp;rsquo;s life is never glamorous but I can live with that. A geek&amp;rsquo;s idea of a glamorous life is attending technical conferences where our community can get together and share ideas. I have the privilege of speaking in San Jose, California, at the &lt;a href="http://www.usenix.org/event/lisa10/"&gt;24&lt;span class="shift"&gt;th&lt;/span&gt; Large Installation System Administration (LISA) Conference (November 7&amp;ndash;12, 2010)&lt;/a&gt;. I’ll be speaking at a “Guru Is In” session on Friday, November 12&lt;span class="shift"&gt;th&lt;/span&gt; at 2:00 pm PT.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;ve never been to a LISA conference, I encourage you to come. You will meet some great people in an environment that fosters the exchange of ideas. If you&amp;rsquo;re not a member of USENIX or SAGE, I encourage you to join even though you&amp;rsquo;ll probably never see Anna Kournikova or Nacho Figueras at a meeting.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;hr width="25%" align="left"/&gt;&lt;/p&gt;
&lt;p style="font-style:italic"&gt;NOTE: All PCI DSS section references are from v1.2.1 of the standard.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-2938284465944182353?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/2938284465944182353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/08/operational-security-for-non-techies.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/2938284465944182353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/2938284465944182353'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/08/operational-security-for-non-techies.html' title='Operational Security for Non-Techies'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_EACT8Hhim20/TF1ousoI8UI/AAAAAAAAAVM/hO53G0-8tns/s72-c/SB_WORKFLOW.png.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-3805987565159228204</id><published>2010-08-02T07:01:00.040-04:00</published><updated>2010-08-02T11:58:12.029-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CIS'/><category scheme='http://www.blogger.com/atom/ns#' term='DISA UNIX STIG'/><category scheme='http://www.blogger.com/atom/ns#' term='NSA'/><title type='text'>Protect Linux Against Overflow Exploits</title><content type='html'>&lt;p&gt;An &lt;a href="http://en.wikipedia.org/wiki/Buffer_overflow"&gt;overflow&lt;/a&gt; is an anomaly where a program, while writing data to a memory buffer, overruns the buffer's boundary and overwrites adjacent memory&amp;mdash;which could be maliciously exploited. While the onus is on software developers to perform proper bounds checking there are some things you can do on an operational system to help protect against code which has been overlooked during development.&lt;/p&gt;

&lt;p&gt;Most overflows are addressed during the development process because testing will often uncover erratic program behavior, memory access errors, incorrect results, and unexpected program terminations (&lt;span style="font-style:italic;"&gt;crashes&lt;/span&gt;). Those which aren't identified and make it into production are often abused by attackers who manage to inject hostile code into this memory.&lt;/p&gt;

&lt;h4&gt;Program Memory Basics&lt;/h4&gt;
&lt;p&gt;Kernels are complicated and as such can be difficult to understand. For the purposes of this post, I will try to keep it simple but if any of my facts are incorrect please, add a comment so we all might learn. With that said, running programs establish two key areas in &lt;a href="http://en.wikipedia.org/wiki/Random-access_memory"&gt;random access memory (RAM)&lt;/a&gt;: stack and data segment.&lt;/p&gt;

&lt;p&gt;The &lt;span style="color: yellow;"&gt;stack&lt;/span&gt; is a &lt;span style="font-weight:bold;"&gt;last in, first out&lt;/span&gt; (&lt;a href="http://en.wikipedia.org/wiki/LIFO_%28computing%29"&gt;LIFO&lt;/a&gt;) structured linear list. In this structure, elements can be added or taken off from only one end, called the &amp;ldquo;top&amp;rdquo;.&lt;/p&gt;

&lt;p&gt;The &lt;span style="color: yellow;"&gt;data segment&lt;/span&gt; comprises of &amp;ldquo;data&amp;rdquo;, BSS, and heap. &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;span style="color: yellow;"&gt;Data area&lt;/span&gt; contains global and static variables used by the program that are initialized. This segment can be further classified into initialized read-only area and initialized read-write area. &lt;/li&gt;
&lt;li&gt;The &lt;span style="color: yellow;"&gt;BSS segment&lt;/span&gt; also known as &lt;span style="font-style:italic;"&gt;uninitialized data&lt;/span&gt; starts at the end of the data segment and contains all uninitialized global variables and static variables that are initialized to zero by default. (Geek Trivia: Historically, BSS (from Block Started by Symbol) was a pseudo-operation in UA-SAP (United Aircraft Symbolic Assembly Program), the assembler developed in the mid-1950s for the IBM 704.)&lt;/li&gt;
&lt;li&gt;The &lt;span style="color: yellow;"&gt;Heap space&lt;/span&gt; is dynamic memory. The heap grows due to the dynamic allocation of memory storage for use by a program during the runtime of that program and shrinks when it is released. Dynamically allocated memory exists until it is released either explicitly by the programmer, or by a &lt;a href="http://en.wikipedia.org/wiki/Garbage_collection_%28computer_science%29"&gt;garbage collector&lt;/a&gt; (e.g., Java and Python).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One approach to buffer overflow protection is called &lt;span style="font-style:italic;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Executable_space_protection"&gt;executable space protection&lt;/a&gt;&lt;/span&gt;. This approach prevents the execution of code on the stack or the heap. An attacker may use buffer overflows to insert arbitrary code into the memory of a program, but with &lt;span style="font-style:italic;"&gt;executable space protection&lt;/span&gt;, any attempt to execute that code will cause an exception.&lt;/p&gt;

&lt;h4&gt;Hardware Support&lt;/h4&gt;
&lt;p&gt;Some CPUs support a feature called NX ("No eXecute") or XD ("eXecute Disabled") bit, which in conjunction with software, can be used to mark memory pages of data (such as those containing the stack and the heap) as readable and writeable but not executable.&lt;/p&gt;

&lt;p&gt;Generically and on &lt;a href="http://en.wikipedia.org/wiki/AMD"&gt;AMD processors&lt;/a&gt;, this ability is called &lt;a href="http://en.wikipedia.org/wiki/Enhanced_Virus_Protection"&gt;NX&lt;/a&gt;, while on &lt;a href="http://en.wikipedia.org/wiki/Intel_Corporation"&gt;Intel processors&lt;/a&gt; it is called XD. AMD has also marketed this technology as &amp;ldquo;&lt;a href="http://en.wikipedia.org/wiki/Enhanced_Virus_Protection"&gt;Enhanced Virus Protection&lt;/a&gt;&amp;rdquo;. In the context of this post, when I refer to the &amp;ldquo;&lt;span style="font-style:italic;"&gt;NX feature&lt;/span&gt;&amp;rdquo; I am including XD.&lt;/p&gt;

&lt;p&gt;To determine if your CPU has such support, check the value of &lt;i&gt;flags&lt;/i&gt; in &lt;tt&gt;/proc/cpuinfo&lt;/tt&gt; to see if it includes &lt;span style="font-style:italic;color: yellow"&gt;pae&lt;/span&gt; &lt;span style="font-style:italic;"&gt;(physical address extensions)&lt;/span&gt; and &lt;span style="font-style:italic; color:yellow"&gt;nx&lt;/span&gt;:&lt;/p&gt;

&lt;pre&gt;$ &lt;span style="font-weight:bold;color:white"&gt;egrep '^flags' /proc/cpuinfo&lt;/span&gt;
flags      : fpu vme de pse tsc msr &lt;span style="color: yellow;"&gt;pae&lt;/span&gt; mce cx8  apic mtrr pge mca cmov pat pse36
clflush mmx fxsr sse sse2 constant_tsc up pni monitor &lt;span style="color: yellow;"&gt;nx&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;You will get a &lt;span style="font-style:italic;"&gt;flags&lt;/span&gt; line for each CPU available to your operating system. If your operating system resides on a virutalized guest and you know your hardware supports it but you don't see the appropriate flags, check your virtual machine settings. You will typically see a setting like &amp;ldquo;&lt;span style="font-style:italic;"&gt;Enable PAE/NX&lt;/span&gt;&amp;rdquo;.&lt;/p&gt;

&lt;p&gt;It should also be noted that other processors which do not support PAE are AMD K6 and earlier, &lt;a href="http://en.wikipedia.org/wiki/Transmeta_Crusoe"&gt;Transmeta Crusoe&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/VIA_C3"&gt;VIA C3&lt;/a&gt; and earlier, and &lt;a href="http://en.wikipedia.org/wiki/Geode_GX"&gt;Geode GX and LX&lt;/a&gt;. &lt;a href="http://en.wikipedia.org/wiki/VMware_Workstation"&gt;VMware Workstation&lt;/a&gt; versions older than 4.0, &lt;a href="http://en.wikipedia.org/wiki/Parallels_Workstation"&gt;Parallels Workstation&lt;/a&gt; versions older than 4.0, and &lt;a href="http://en.wikipedia.org/wiki/Virtual_PC"&gt;Microsoft Virtual PC&lt;/a&gt; and Virtual Server do not support PAE on the guest. &lt;/p&gt;

&lt;h4&gt;Linux Kernel Support&lt;/h4&gt;
&lt;p&gt;If your hardware supports this feature, you should ensure that this protection is enabled in kernels running on 32-bit x86 systems. Other processors, such as Itanium, POWER, and 64-bit x86 (both AMD64 or Intel 64), have included such support since inception and the standard kernel for those platforms already supports the feature.&lt;/p&gt;

&lt;p&gt;Most Linux distributions bundle NX support with a &lt;span style="font-style:italic;"&gt;PAE-enabled&lt;/span&gt; kernel (kernel-PAE). However, some people don't install the &lt;a href="http://en.wikipedia.org/wiki/Physical_Address_Extension"&gt;Physical Address Extension (PAE)&lt;/a&gt; kernel because they think it is just to provide support for physical memory above 4GB. To install the package use either &lt;a href="http://linux.die.net/man/8/yum"&gt;yum(8)&lt;/a&gt; or &lt;a href="http://www.linuxtopia.org/online_books/opensuse_guides/opensuse11.1_reference_guide/sec_zypper.html"&gt;Zypper&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;# &lt;span style="font-weight:bold;color:white"&gt;yum install kernel-PAE&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Reboot using the new kernel and then use the &lt;tt&gt;-r&lt;/tt&gt; option to the &lt;a href="http://linux.die.net/man/1/uname"&gt;uname(1)&lt;/a&gt; utility to ensure the running kernel is PAE-enabled (you will see the letters &amp;lsquo;PAE&amp;rsquo; in the kernel name).&lt;/p&gt;

&lt;p&gt;These are the recommended procedures detailed in section 2.2.4.4 of NSA's &lt;span style="font-style:italic;"&gt;Guide to the Secure Configuration of Red Hat Enterprise Linux 5&lt;/span&gt;.&lt;/p&gt;

&lt;p&gt;I have received phone calls from Security Blanket customers attempting to address DISA UNIX STIG PDI &amp;ldquo;GEN003540 – Disable Executable Stack&amp;rdquo;. The guideline states:&lt;/p&gt;
&lt;blockquote&gt;&amp;ldquo;Linux kernels must support the NX feature.  Red Hat Enterprise 4 and SuSE 9.1 and later do support this feature.  This will be a finding on systems prior to the above releases. &lt;span style="color:yellow;"&gt;This is a manual review.&lt;/span&gt;&amp;rdquo;&lt;/blockquote&gt;

&lt;p&gt;However, the guideline provides no procedures on how to perform the &amp;ldquo;manual review&amp;rdquo;. I hope this blog post helps those of you who must perform this manual check. The upcoming release of Security Blanket scheduled for the Fall of 2010 will include some modules to perform these checks for you.&lt;/p&gt;

&lt;p&gt;NX memory protection has always been available in &lt;a href="http://www.ubuntu.com/"&gt;Ubuntu&lt;/a&gt; for any systems that had the hardware to support it and ran the 64-bit &lt;span style="font-weight:bold;"&gt;or&lt;/span&gt; 32-bit server kernel. The 32-bit PAE desktop kernel (linux-image-generic-pae) in Ubuntu 9.10 and later, also provides the PAE mode needed for hardware with the NX CPU feature. For systems that lack NX hardware, the 32-bit kernels now provide an approximation of the NX CPU feature via software emulation that can help block many exploits an attacker might run from stack or heap memory.&lt;/p&gt;

&lt;p&gt;By default, Red Hat-based and Fedora systems have enabled &amp;ldquo;Exec Shield&amp;rdquo;. To read the announcement made by the developer of this kernel patch, Ingo Molnar, click &lt;a href="http://kerneltrap.org/node/3240"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;Exec Shield's legacy CPU support approximates (Ingo Molnar's word for it) NX emulation by tracking the upper code segment limit. This imposes only a few cycles of overhead during context switches, which is for all intents and purposes immeasurable.&lt;/blockquote&gt;

&lt;p&gt;Add the following lines to &lt;tt&gt;/etc/sysctl.conf&lt;/tt&gt;:&lt;/p&gt;
&lt;pre&gt;kernel.exec-shield = 1
kernel.randomize_va_space = 1&lt;/pre&gt;
&lt;p&gt;If you don't want to reboot, use the &lt;b&gt;-w&lt;/b&gt; option to the &lt;a href="http://linux.die.net/man/8/sysctl"&gt;sysctl(8)&lt;/a&gt; utility to set these parameters in the current running kernel.&lt;/p&gt;

&lt;p&gt;Enabling Exec Shield is a recommended procedure detailed in section 2.2.4.3 of NSA's &lt;span style="font-style:italic;"&gt;Guide to the Secure Configuration of Red Hat Enterprise Linux 5&lt;/span&gt;.&lt;/p&gt;

&lt;h4&gt;Prevent Core Dumps&lt;/h4&gt;
&lt;p&gt;In the event a program experiences memory access errors or unexpectedly terminates (crashes), the kernel can create a &lt;span style="font-style:italic;"&gt;core dump&lt;/span&gt; file. The most notorious cause of &lt;span style="font-style:italic;"&gt;core dumps&lt;/span&gt; (and dreaded by developers) is the segmentation violation (&lt;a href="http://en.wikipedia.org/wiki/SIGSEGV"&gt;SIGSEGV&lt;/a&gt;). &lt;/p&gt;

&lt;p&gt;The &lt;span style="font-style:italic;"&gt;core dump&lt;/span&gt; consists of the recorded state of the working memory, including processor registers, which may include the program counter and stack pointer, memory management information, and other processor and operating system flags and information.&lt;/p&gt;

&lt;p&gt;Because the &lt;span style="font-style:italic;"&gt;core dump&lt;/span&gt; may contain sensitive information, many security guidelines recommend preventing them from occurring on production systems. Here are some guidelines which recommend disabling &lt;span style="font-style:italic;"&gt;core dumps&lt;/span&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;NSA's Guide to the Secure Configuration of Red Hat Enterprise Linux 5, Sections 2.2.4.2 and 2.2.4.2.1&lt;/li&gt;
&lt;li&gt;CIS RHEL4 Benchmark (1.0.5), Section 8.10 - Disable Core Dumps&lt;/li&gt;
&lt;li&gt;CIS RHEL5 Benchmark (1.1.2), Section 9.10 - Disable Core Dumps&lt;/li&gt;
&lt;li&gt;CIS SUSE Benchmark (2.0), Section 8.11 - Disable Core Dumps&lt;/li&gt;
&lt;li&gt;DISA UNIX STIG, PDI GEN003500 - Disable Core Dumps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To disable &lt;span style="font-style:italic;"&gt;core dumps&lt;/span&gt; for all users, add or correct the following line in &lt;tt&gt;/etc/security/limits.conf&lt;/tt&gt;:&lt;/p&gt;
&lt;pre&gt;* hard core 0&lt;/pre&gt;

&lt;p&gt;In addition, to ensure that &lt;span style="font-style:italic;"&gt;core dumps&lt;/span&gt; can never be made by &lt;a href="http://en.wikipedia.org/wiki/Setuid"&gt;setuid&lt;/a&gt; programs, edit &lt;tt&gt;/etc/sysctl.conf&lt;/tt&gt; and add or correct the line:&lt;/p&gt;
&lt;pre&gt;fs.suid_dumpable = 0&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;h4&gt;Summary&lt;/h4&gt;
&lt;p&gt;So if your hardware or virtualization framework supports it, enable it and ensure your kernel is taking advantage of it. Security Blanket has many modules to address the above security guidelines. If you are interested in an easier way to implement NSA's &lt;span style="font-style:italic;"&gt;Guide to the Secure Configuration of Red Hat Enterprise Linux 5&lt;/span&gt;, keep an eye out for our 2010 Fall release.&lt;/p&gt;

&lt;br/&gt;
&lt;p&gt;&lt;hr width="25%" align="left"/&gt;&lt;/p&gt;
&lt;p&gt;Thank you &lt;a href="http://en.wikipedia.org"&gt;Wikipedia&lt;/a&gt; for the hardware specifics!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-3805987565159228204?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/3805987565159228204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/08/protect-linux-against-overflow-exploits.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/3805987565159228204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/3805987565159228204'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/08/protect-linux-against-overflow-exploits.html' title='Protect Linux Against Overflow Exploits'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-5675398527971772569</id><published>2010-07-26T14:56:00.025-04:00</published><updated>2010-07-27T06:43:02.762-04:00</updated><title type='text'>Sysadmin Day: The Journey of a Geek</title><content type='html'>&lt;p&gt;&lt;a href="http://www.sysadminday.com/"&gt;System Administrator Appreciation Day&lt;/a&gt; (a.k.a., SysAdmin Day) is right around the corner. This Friday (July 30, 2010) will be the 11&lt;span class="shift"&gt;th&lt;/span&gt; one&amp;mdash;and it is always the last Friday of July. In this technological society, most people are absolutely oblivious to the role system administrators play in their lives. I'd like to share my experiences from my humble beginnings to my present day position as a Principal Engineer. Perhaps, by the end of this post you'll have a better understanding of what kind people sysadmins are.&lt;/p&gt;

&lt;h4&gt;The Early Years&lt;/h4&gt;
&lt;p&gt;I grew up in &lt;a href="http://en.wikipedia.org/wiki/Gainesville,_MO"&gt;Gainesville, Missouri&lt;/a&gt;, a small mid-western town, which according to a 2000 census grew to a population of 632. Despite its small size, Gainesville had a wonderful school system with dedicated teachers. As a matter of fact, it was one of the first school systems in Missouri in the 1980's to have computer related classes. This included office automation and even programming on &lt;a href="http://en.wikipedia.org/wiki/Apple_IIe"&gt;Apple IIe&lt;/a&gt; systems.&lt;/p&gt;

&lt;p&gt;When I was in junior high, I remember my friend Michael and I would go to the grade school building after school to work on their computers. Michael's father was a janitor for the school and he would let us in after hours. We'd spend hours on those computers.&lt;/p&gt;

&lt;p&gt;When I was 14 or 15 years old, a girl gave me a disk which contained an Apple BASIC program which when executed displayed the following text 100 times: "Will you go out with me?" However, being a geek my FIRST response to her was, "You know you could have done that much easier with a &lt;span style="font-style:italic;"&gt;for...loop&lt;/span&gt; instead of typing that line 100 times. That was crazy&amp;mdash;that must have taken you forever!" To this day, I still don't pick up on social queues very well.&lt;/p&gt;

&lt;p&gt;Through the school, I was able to learn both &lt;a href="http://en.wikipedia.org/wiki/Apple_BASIC"&gt;Apple BASIC&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/UCSD_Pascal"&gt;UCSD Pascal&lt;/a&gt; by my junior year of high school. There were no more classes to take so I was allowed to be a teacher's assistant my senior year&amp;mdash;which probably translates the same today as it did then: "teacher's pet". I even worked on a program for the school to record student attendance.&lt;/p&gt;

&lt;p&gt;Like most kids in the county, if I wanted to enjoy extra curricular activities I would have to get a job or even two. Unlike most kids who spent their money on cars and girls, I spent mine on computers. First, I bought a &lt;a href="http://en.wikipedia.org/wiki/Commodore_64"&gt;Commodore 64&lt;/a&gt; which I connected to a black and white tube television. I am color blind so I didn't care. Within a year, I upgraded to a &lt;a href="Commodore Amiga"&gt;Commodore Amiga&lt;/a&gt; and I "acquired" a copy of &lt;a href="http://en.wikipedia.org/wiki/Lattice_C"&gt;Lattice C&lt;/a&gt;&amp;mdash;I was so excited to learn the &lt;a href="http://en.wikipedia.org/wiki/C_%28programming_language%29"&gt;C programming language&lt;/a&gt;. In the 1980's,  I didn't have Internet access and there were few books on the language which I could buy. I struggled but within a year or so I was pretty proficient. Many late nights were spent tinkering with this stuff, while my peers were out having fun on dates and playing sports. I focused on implementing math formulas as algorithms which the computer could solve if I provided certain variables. I also read many computer magazines which in those days provided various programs written in BASIC, so I converted some of them to the C language to improve my skills. These days, this process is called "&lt;span style="font-style:italic;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Software_port"&gt;porting&lt;/a&gt;&lt;/span&gt;".&lt;/p&gt;

&lt;p&gt;Despite this dedication to computer science, my other classes suffered and I received poor grades, especially in English. I just was not interested in what I considered "&lt;span style="font-style:italic;"&gt;Artsy Fartsy&lt;/span&gt;" stuff. Ironically, today I have a real passion for reading. My family didn't have the funds to send me to college and my lousy grades made it very difficult to receive a college loan or even a grant. So I joined the U.S. Navy when I was 18 years old.&lt;/p&gt;

&lt;p&gt;I served eight years as a &lt;a href="http://en.wikipedia.org/wiki/Cryptography"&gt;cryptologist&lt;/a&gt; at various duty stations throughout the world. Much of that work is still classified. I worked on many different kinds of equipment and I worked with some great people. To drop a few names, I worked on &lt;a href="http://en.wikipedia.org/wiki/PDP-11"&gt;DEC PDP-11(s)&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/3B_series_computers"&gt;AT&amp;T 3B15(s)&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/VAX"&gt;DEC VAX&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Sun_Microsystems"&gt;Sun&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Silicon_Graphics"&gt;Silicon Graphics' running IRIX&lt;/a&gt;, and even a &lt;a href="http://en.wikipedia.org/wiki/Cray"&gt;Cray&lt;/a&gt;. You haven't lived until you've performed system backups on &lt;a href="http://en.wikipedia.org/wiki/9_track_tape"&gt;9 track reel-to-reel tape systems&lt;/a&gt;, loaded punch cards, or manually entered bad sectors into a disk drive's manufacturer's defect table (MDT).&lt;/p&gt;

&lt;p&gt;I remember when we thought we had a cutting-edge local area network because it consisted of &lt;a href="http://en.wikipedia.org/wiki/Thicknet"&gt;thicknet&lt;/a&gt; interconnecting many IBM desktops running &lt;a href="http://en.wikipedia.org/wiki/Xenix"&gt;Microsoft Xenix&lt;/a&gt;. Yes, I said "Microsoft". This was before &lt;a href="http://en.wikipedia.org/wiki/Santa_Cruz_Operation"&gt;Santa Cruz Operation (SCO)&lt;/a&gt; emerged and Linux as we know it today, didn't emerge until the early 1990's.&lt;/p&gt;

&lt;p&gt;In this configuration, I remember I could login remotely to someone's desktop and send messages to their console. I would login to the desktop of a pretty Air Force female employee and send alerts which informed her that she needed to immediately seek the assistance of a system administrator. Then she would come back to our shop and we could talk to her. Well we tried to talk to her but we mainly just &lt;span style="font-style:italic;"&gt;geeked&lt;/span&gt; out and she walked away shaking her head and rolling her eyes.&lt;/p&gt;

&lt;h4&gt;Present Day&lt;/h4&gt;
&lt;p&gt;In 1996, I was honorably discharged from the U.S. Navy and I started work for a U.S. government contractor in England. Later, I moved to northern Virginia near the company's headquarters. Many years later and several companies later, I still live in northern Virginia. I've worked in both public and private sectors and various industries to include telecommunications, large integrators, and software development companies.&lt;/p&gt;

&lt;p&gt;I've worked as a team lead, a manager, and even served as a Director of Operations for a period of time. Despite working as a sysadmin for so many years, I eventually fell back into design, engineering, research, and development. I've always preferred the hands-on aspect of building things and solving problems.&lt;/p&gt;

&lt;p&gt;I think it is critical that software developers and architects consider the "manageability" characteristics of any system. Designers are focused on reliability and efficiency among other things however, I don't feel that all software today is as manageable as it could be. Companies spend a lot of money to study &lt;a href="http://en.wikipedia.org/wiki/Human%E2%80%93computer_interaction"&gt;human–computer interaction&lt;/a&gt; to help improve the end-user's experience which hopefully translates into improved productivity. I would like to see more companies integrating experienced sysadmins into the development process. They offer great advice from proper logging techniques to product deployment into today's operational environments.&lt;/p&gt;

&lt;p&gt;Another thing I've learned over the years is that not everyone is cut out to be a sysadmin regardless of how strong their desire and how much effort they put into it. I equate it to the &lt;span style="font-style:italic;"&gt;sports nut&lt;/span&gt;&amp;mdash;no matter how much they KNOW about the game it doesn't make them qualified to be a professional player. There are certain innate traits they must possess. Likewise, sysadmins are a disciplined group of problem solvers. They are also dedicated, loyal, and even a bit arrogant. Some sysadmins are better suited for certain roles within our community. Some are better at providing desktop support while others are probably best left in the data center where they can't interact with end-users. By mid-career most sysadmins begin to gravitate toward their particular field of interest such as storage area networks, large mainframes, distributed environments and cluster technology, and even virtualization.&lt;/p&gt;

&lt;p&gt;The most rewarding moments of my career are when I reconnect with a young sysadmin who worked with me several years earlier. They tell me about their current job and the amazing path they've traveled. Their passion and excitement for the work is as it was years earlier. I think it is so important for senior sysadmins to assume the role of mentor. When a new sysadmin arrives, they should not only be shown how the shop does things but the rationale behind it. It is important to nurture those research and problem solving skills early on. Often times, I wouldn't even assist a sysadmin until they had done some initial research like review the manual or researched it on the Internet. If they came to me a second time to ask a previously answered question, I would ask them why they didn't write it down. I encouraged them to be self-sufficient and empowered.&lt;/p&gt;

&lt;p&gt;I am fortunate to work with a gentleman whom I've worked with on and off over the last 11 years. He is now a senior sysadmin integrated into our development team. He not only assists with the testing of the product, he provides valuable input to make the product more manageable. I am still in touch with many of my previous co-workers. I think what people will discover is that it is a tight knit community and most seasoned managers know that if a couple of sysadmins leave the company, generally this results in the entire group leaving.&lt;/p&gt;

&lt;p&gt;Today, I work for a GREAT company with GREAT people. They really understand and appreciate the value of their engineers and the importance of considering the operational aspects of systems. Last year, they even spent money to produce a humorous video celebrating System Administrator Appreciation Day:&lt;/p&gt;
&lt;object width="445" height="364"&gt;&lt;param name="movie" value="http://www.youtube.com/v/3klMcY8amOY&amp;amp;hl=en_US&amp;amp;fs=1?border=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/3klMcY8amOY&amp;amp;hl=en_US&amp;amp;fs=1?border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="445" height="364"&gt;&lt;/embed&gt;&lt;/object&gt;

&lt;p&gt;I will be speaking in San Jose, California at the &lt;a href="http://www.usenix.org/event/lisa10/"&gt;24th Large Installation System Administration Conference&lt;/a&gt; (November 7–12, 2010).  I’ll be speaking at a “Guru Is In” session on Friday, November 12th at 2:00 pm PT. If you've never been to a LISA conference, I encourage you to come. You will meet some great people in an environment that fosters the exchange of ideas. If you're not a member of &lt;a href="http://www.usenix.org/"&gt;USENIX&lt;/a&gt; or &lt;a href="http://www.sage.org/"&gt;SAGE&lt;/a&gt;, I encourage you to join.&lt;/p&gt;

&lt;p&gt;This Friday be sure to thank a sysadmin. Without them, your Twitter, Facebook, cellphones, text messages, etc, etc... would NOT work.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-5675398527971772569?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/5675398527971772569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/07/sysadmin-day-journey-of-geek.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/5675398527971772569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/5675398527971772569'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/07/sysadmin-day-journey-of-geek.html' title='Sysadmin Day: The Journey of a Geek'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-112540782006008739</id><published>2010-07-20T10:38:00.022-04:00</published><updated>2011-05-03T12:16:21.170-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Policies'/><title type='text'>Lock down Heartburn: Windows to Linux Migration</title><content type='html'>&lt;p&gt;Organizations migrating from Microsoft&amp;reg; Windows&amp;reg; to Linux&amp;reg; often have heartburn over their concerns for already established security configurations. Regardless of the reasons for the migration, or even adding Linux to the inventory an obvious question is raised: &amp;ldquo;Are my current system administrators (sysadmins) capable of managing Linux?&amp;rdquo; Some Windows sysadmins might be wondering &amp;ldquo;Are they going to replace me, or train me to handle Linux?&amp;rdquo; while others might be opposed to the new architecture and are simply inflexible about learning something new.&lt;/p&gt;
&lt;p&gt;Many Linux vendors offer some great training, resources, and professional services to assist in the migration. The top three that come to mind are Red Hat, Novell, and IBM. For starters, I would recommend reading &lt;a href="http://www.ibm.com/developerworks/linux/library/l-roadmap.html"&gt;IBM's nine-part developerWorks series by Chris Walden on moving your operational skills from a Windows® to a Linux® environment&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The process of lock down (hardening) is difficult, tedious, and time consuming even for an administrator working on an operating system they're familiar with. This process requires knowledge as to where to configure the item and often how to configure the item. This process becomes even more complicated when a system administrator is confronted with an unfamiliar operating system because the &amp;ldquo;where&amp;rdquo; and &amp;ldquo;how&amp;rdquo; are different. By &amp;ldquo;how&amp;rdquo;, I mean the necessary tool or technique required to make the change.&lt;/p&gt;
&lt;p&gt;Every good system administrator understands the basic, generic activities required to maintain the systems under their purview. Activities such as user account management, access control, backups and disaster recovery, and so on. More to the point, system administrators understand the rationale in using core, fundamental technologies such as discretionary access controls&amp;mdash;that's why I said they only need to know the &amp;ldquo;where&amp;ldquo; and &amp;ldquo;how&amp;rdquo; not necessarily the &amp;ldquo;why&amp;rdquo;. &lt;/p&gt;
&lt;p&gt;Every organization should have a security policy and if you don't&amp;mdash;SHAME ON YOU! If you don't have one, create one but don't let technology set your policy. What I mean by this is some organizations will use downloaded how-tos, lock down recipes, configuration guides to configure their systems. Once completed, they document how their systems are configured and call it a &amp;ldquo;policy.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;A policy is high-level and defines what is required to protect your assets and ensure business continuity. Its constraints are typically legal in nature (e.g., &lt;a href="http://en.wikipedia.org/wiki/Privacy_Act_of_1974"&gt;Privacy Act of 1947&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/HIPPA"&gt;HIPPA&lt;/a&gt;, or &lt;a href="http://en.wikipedia.org/wiki/FISMA"&gt;FISMA&lt;/a&gt;). Additional constraints can be those imposed by an organization's mission objectives such as system availability and timely service. That's why it is important &lt;span style="font-weight:bold;text-decoration: underline"&gt;NOT&lt;/span&gt; to set your policy based on your technology's capability. If your technology is insufficient, use something different. Don't compromise. &lt;span style="font-style:italic;"&gt;Okay, I will step down from the soap box now...&lt;/span&gt;&lt;/p&gt;

&lt;h4&gt;Enforcing the Policy in Linux&lt;/h4&gt;
&lt;p&gt;So what you need is the ability to pick a collection of security controls based on your site security policy. For example, pick "Disable USB Storage Devices" or "Minimum Password Length". This is exactly how Security Blanket works. It is policy driven so you don't need to worry about the underlying operating system. &lt;/p&gt;
&lt;p&gt;For example, a Windows administrator would disable USB storage devices by editing the registry with the "regedit" utility to set:&lt;/p&gt;

&lt;pre&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR\DWORD "start" value=4&lt;/pre&gt;

&lt;p&gt;A Linux administrator, would use a text editor to modify the &lt;tt&gt;/etc/modprobe.conf&lt;/tt&gt; file to add something like:&lt;/p&gt;

&lt;pre&gt;remove usb_storage /sbin/modprobe -r usb_storage&lt;/pre&gt;

&lt;p&gt;In Linux, you can also edit the &lt;a href="http://en.wikipedia.org/wiki/GNU_GRUB"&gt;GRand Unified Bootloader (GRUB)&lt;/a&gt; configuration file and add "nousb" to the end of a bootable kernel definition.&lt;/p&gt;

&lt;p&gt;The &lt;a href="http://en.wikipedia.org/wiki/Solaris_%28operating_system%29"&gt;Solaris operating system&lt;/a&gt; is different, too. Confusing? Yes, it is. That's why Security Blanket provides you the ability to create profiles which comprise modules. The module to disable USB storage is aptly named "&lt;span style="font-style:italic;"&gt;Disable USB and PCMCIA Devices&lt;/span&gt;" and has a simple drop down to choose from: all devices or storage devices only.&lt;/p&gt;
&lt;p&gt;Security Blanket's &lt;a href="http://www.trustedcs.com/SecurityBlanket/SecurityBlanket-Product-Support.html"&gt;documentation&lt;/a&gt; is extensive. The Modules Guide details exactly &amp;ldquo;where&amp;rdquo; and &amp;ldquo;how&amp;rdquo; the configuration will be made. When Security Blanket scans and applies changes, it logs in great detail what files it is scanning and editing. Security Blanket customers love the detailed logs and documentation. It is also a great way to educate Windows administrators to the ways of Linux.&lt;/p&gt;
&lt;p&gt;Security Blanket modules were built to support industry standard guidelines. It is intended to help you satisfy many security guidelines such as those published by the Center for Internet Security (CIS). So if you've configured your Windows systems according to CIS Benchmarks and you'd like to apply similar CIS Benchmarks to Linux&amp;mdash;Security Blanket is the right choice. Right out of the box Security Blanket has many such profiles. If you'd like to make a copy of the CIS profile and customize it to meet your site security policy, it is only a few clicks away.&lt;/p&gt;
&lt;p&gt;If you'd like more information on Security Blanket, visit our &lt;a href="http://www.trustedcs.com/SecurityBlanket/"&gt;website&lt;/a&gt; or send an email to &lt;a href="mailto:TCSSBSales@TrustedCS.com"&gt;TCSSBSales@TrustedCS.com&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-112540782006008739?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/112540782006008739/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/07/lock-down-heartburn-windows-to-linux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/112540782006008739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/112540782006008739'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/07/lock-down-heartburn-windows-to-linux.html' title='Lock down Heartburn: Windows to Linux Migration'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-6908087641478729911</id><published>2010-07-10T06:27:00.123-04:00</published><updated>2010-07-12T08:44:43.686-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CIS'/><category scheme='http://www.blogger.com/atom/ns#' term='PCI DSS'/><title type='text'>PCI DSS from a Linux Sysadmin's Perspective</title><content type='html'>&lt;p&gt;A cursory glance at the PCI DSS might lead one to believe that the majority of work required to comply with the standard belongs to network, &lt;a href="http://en.wikipedia.org/wiki/Database_administrator"&gt;database&lt;/a&gt;, and application/&lt;a href="http://en.wikipedia.org/wiki/Middleware"&gt;middleware&lt;/a&gt; administrators as well as software developers.&lt;/p&gt;

&lt;p&gt;Of course, every system administrator knows that there is always a great deal of work required by them anytime an application or service is deployed. During my recent review of the PCI DSS v1.2.1 to ensure our Security Blanket&amp;reg; modules support the standard, I identified several requirements which will significantly increase a sysadmin's workload.&lt;/p&gt;
&lt;p&gt;There is no doubt that the explosion of the Internet has facilitated electronic commerce&amp;mdash;changing the way we do business. &amp;ldquo;E-commerce&amp;rdquo; consists of the buying and selling of products or services over electronic systems such as the Internet and other computer networks.&lt;sup&gt;1&lt;/sup&gt; The easy use of credit cards online has further fueled this commerce but requires security controls to protect consumers.&lt;/p&gt;
&lt;p&gt;The Payment Card Industry's (PCI) Security Standards Council is an open global forum. Launched in 2006, it is responsible for the development, management, education, and awareness of the PCI Security Standards, including the &lt;a href="https://www.pcisecuritystandards.org/security_standards/pci_dss.shtml"&gt;Data Security Standard (DSS)&lt;/a&gt;.&lt;sup&gt;2&lt;/sup&gt;&lt;/p&gt;

&lt;h4&gt;Getting Started&lt;/h4&gt;
&lt;p&gt;Obviously, the first step is to &lt;a href="https://www.pcisecuritystandards.org/security_standards/pci_dss_download_agreement.html"&gt;download the PCI DSS specification&lt;/a&gt;. I will save you a little time by directing you to requirement 2.2. This will keep you quite busy while the rest of your team takes care of their parts. &lt;/p&gt;

&lt;p&gt;PCI DSS requirement 2.2 states, &amp;ldquo;&lt;span style="font-style:italic;"&gt;Develop configuration standards for all system components. Assure that these standards address all known security vulnerabilities and are consistent with industry-accepted system hardening standards.&lt;/span&gt;&amp;rdquo;&lt;/p&gt;

&lt;p&gt;The phrase &amp;ldquo;&lt;span style="font-style:italic;"&gt;industry-accepted system hardening standards&lt;/span&gt;&amp;rdquo; should get the gears in your head turning. The test procedure (2.2.a) for this requirement states &amp;ldquo;&lt;span style="font-style:italic;"&gt;Examine the organization’s system configuration standards for all types of system components and verify the system configuration standards are consistent with industry accepted hardening standards—for example, SysAdmin Audit Network Security (SANS), National Institute of Standards Technology (NIST), and Center for Internet Security (CIS).&lt;/span&gt;&amp;rdquo;&lt;/p&gt;

&lt;p&gt;If you choose to follow the CIS Benchmarks, you will soon discover that you've got a lot of work ahead of you. The &lt;a href="http://cisecurity.org/en-us/?route=default"&gt;Center for Internet Security (CIS)&lt;/a&gt; is a non-profit enterprise that helps organizations reduce the risk of business and e-commerce disruptions resulting from inadequate technical security controls. There are many benchmarks including:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;CIS Red Hat Enterprise Linux 5.0 - 5.1 Benchmark v1.1.2&lt;/li&gt;&lt;li&gt;CIS Debian Benchmark v1.0.0&lt;/li&gt;&lt;li&gt;CIS SUSE Linux Enterprise Server 9/10 Benchmark v2.0.0&lt;/li&gt;&lt;li&gt;CIS Solaris 10 Benchmark v5.0.0&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;These detailed benchmarks will require you to assess your systems, develop an implementation plan, test applications after you've implemented the controls, and use a back-out plan in case an implemented security control broke an application. Fortunately, this is what &lt;a href="http://www.trustedcs.com/SecurityBlanket/"&gt;Security Blanket&lt;span class="shift"&gt;&amp;reg;&lt;/span&gt;&lt;/a&gt; does &lt;span style="font-weight:bold;"&gt;very&lt;/span&gt; well. Security Blanket will not only assess your systems but will apply the appropriate changes to your operating system and has a quick undo feature if you find yourself in trouble.&lt;/p&gt;
&lt;p&gt;At this point, your fellow administrators might be giggling about the amount of work you just found yourself waist-deep in. If you want to wipe that grin off their face, inform them that CIS has many benchmarks for their world to include:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;CIS MySQL 4.1/5.0/5.1 Benchmark v1.0.2&lt;/li&gt;&lt;li&gt;CIS Oracle Database 11g Benchmark v1.0.1&lt;/li&gt;&lt;li&gt;CIS Apache Tomcat Server Benchmark v1.0.0&lt;/li&gt;&lt;li&gt;CIS Apache HTTP Server 2.2.x Benchmark v3.0.0&lt;/li&gt;&lt;/ul&gt;

&lt;h4&gt;System Minimization&lt;/h4&gt;
&lt;p&gt;Those of you who follow this blog or have listened to one of my webcasts are probably tired of hearing me chant &amp;ldquo;&lt;span style="font-weight:bold;font-style:italic"&gt;If you don't need it, disable it or remove it!&lt;/span&gt;&amp;rdquo; like a mantra. I even posted &lt;a href="http://tcs-security-blanket.blogspot.com/2009/08/minimize-attack-surfaces.html"&gt;Minimize Attack Surfaces&lt;/a&gt; which describes how to check for system services configured to start during boot.&lt;/p&gt;

&lt;p&gt;The &lt;a href="http://www.sans.org/critical-security-controls/guidelines.php"&gt;Twenty Critical Controls for Effective Cyber Defense: Consensus Audit Guidelines (CAG)&lt;/a&gt;, &lt;a href="http://www.sans.org/cag/control/13.php"&gt;Critical Control 13: Limitation &amp; Control of Network Ports, Protocols, and Services&lt;/a&gt; is all about reducing your attack surface. Likewise, the PCI DSS has similar requirements:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;2.2.2 Disable all unnecessary and insecure services and protocols (services and protocols not directly needed to perform the device’s specified function).&lt;/li&gt;&lt;li&gt;2.2.4 Remove all unnecessary functionality, such as scripts, drivers, features, subsystems, file systems, and unnecessary web servers.&lt;/li&gt;&lt;/ul&gt;

&lt;h4&gt;Patch Management&lt;/h4&gt;
&lt;p&gt;As every system administrator knows, the process of patching or upgrading software to newer versions to address vulnerabilities is a seemingly never ending task. This process however, raises two important questions: (1) Will newer software versions behave differently resulting in broken applications? (2) Will the installation of new software alter previously implemented security controls (i.e., security permissions and related configuration settings)?&lt;/p&gt;

&lt;p&gt;PCI DSS requirement 6.1 states, &amp;ldquo;&lt;span style="font-style:italic;"&gt;Ensure that all system components and software have the latest vendor-supplied security patches installed. Install critical security patches within one month of release.&lt;/span&gt;&amp;rdquo; The authors of the DSS recognize the need to sufficiently test your applications with the newer software prior to production deployment&amp;mdash;hence, the phrase &amp;ldquo;&lt;span style="font-style:italic;"&gt;...within one month of release.&lt;/span&gt;&amp;rdquo; This should also remind management to provide adequate test systems and resources to facilitate such testing. A few extra servers for testing is much cheaper than downtime or loss of customer confidence.&lt;/p&gt;

&lt;p&gt;Detecting configuration changes and correcting deviations is another area which Security Blanket excels. Many existing customers love the fact that Security Blanket brings their systems back into compliancy after applying patches.&lt;/p&gt;

&lt;h4&gt;Configuration Drift&lt;/h4&gt;
&lt;p&gt;Throughout the life cycle of every system configurations vary due to new applications, upgraded software, and change in personnel. A more sinister source of change might be a result of system compromise. Regardless of the source of change, you must know that something has changed. A manifestation of system changes may be application malfunctions or performance degradation. Even worse are those changes which have not manifested in anyway&amp;mdash;instead attackers are silently mining your customer's data. That's why it is so critical to detect system changes.&lt;/p&gt;
&lt;p&gt;One method of detection is described in PCI DSS requirement 11.5 which states &amp;ldquo;&lt;span style="font-style:italic;"&gt;Deploy file-integrity monitoring software to alert personnel to unauthorized modification of critical system files, configuration files, or content files; and configure the software to perform critical file comparisons at least weekly.&lt;/span&gt;&amp;rdquo;&lt;/p&gt;

&lt;p&gt;This is another area which Security Blanket excels. In addition to capturing &lt;a href="http://en.wikipedia.org/wiki/SHA-1"&gt;SHA-1&lt;/a&gt; fingerprints of critical files, it also let's you know when discretionary access controls (permissions) have changed. The &lt;a href="http://tcs-security-blanket.blogspot.com/2009/08/what-is-baseline.html"&gt;baseline component of Security Blanket&lt;/a&gt; also captures information on all installed software packages, network routing tables, attached hardware devices, host-based firewall rules, and other vital pieces of information.&lt;/p&gt;

&lt;p&gt;Another nice feature of Security Blanket is the ability for you to compare not only the same system at two points in time to identify changes but the ability to compare two different systems to identify changes. This is critical to ensure that all nodes in a cluster are similarly configured or a more simpler load-balanced or fail-over configuration.&lt;/p&gt;


&lt;h4&gt;Summary&lt;/h4&gt;&lt;p&gt;This post only scratches the surface of what is required of Linux administrators responsible for systems which must adhere to the PCI DSS. The standard is detailed and requires good planning and a commitment to maintain the final achieved security posture. Security Blanket can assist organizations in configuring and maintaining their operating system level security. For for more information, check our &lt;a href="http://www.trustedcs.com/SecurityBlanket"&gt;website&lt;/a&gt;.&lt;/p&gt;
&lt;br/&gt;
&lt;p&gt;&lt;hr width="25%" align="left"/&gt;
1. "Electronic Commerce". Retrieved from Wikipedia July 10, 2010 (&lt;a href="http://en.wikipedia.org/wiki/Electronic_commerce"&gt;http://en.wikipedia.org/wiki/Electronic_commerce&lt;/a&gt;)&lt;br/&gt;
2. "About the PCI Security Standards Council" (&lt;a href="https://www.pcisecuritystandards.org/about/index.shtml"&gt;https://www.pcisecuritystandards.org/about/index.shtml&lt;/a&gt;)&lt;br/&gt;&lt;br/&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-6908087641478729911?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/6908087641478729911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/07/pci-dss-from-linux-sysadmins.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/6908087641478729911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/6908087641478729911'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/07/pci-dss-from-linux-sysadmins.html' title='PCI DSS from a Linux Sysadmin&apos;s Perspective'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-4625598341715949225</id><published>2010-06-11T08:26:00.059-04:00</published><updated>2010-07-25T08:02:05.363-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Access Controls'/><title type='text'>Broken Links in Linux File Systems can be a Security Risk</title><content type='html'>&lt;p&gt;BROKEN LINKS in Linux file systems are not just annoying &amp;mdash; they can also be a security risk. In a previous post, I discussed the potential &lt;a href="http://tcs-security-blanket.blogspot.com/2010/04/keeping-linux-file-systems-clean.html"&gt;dangers of unowned files&lt;/a&gt; and in this post I will talk about those annoying, resource consuming broken links usually considered simple file system &amp;ldquo;lint&amp;rdquo;.&lt;/p&gt;

&lt;p&gt;I recently spoke to a &lt;a href="http://www.trustedcs.com/SecurityBlanket/SecurityBlanket.html"&gt;Security Blanket&amp;reg;&lt;/a&gt; customer and they asked me, "Why does Security Blanket report on these broken links?" I responded with a typical, technical explanation of... &lt;p&gt;
&lt;blockquote&gt;"It [Security Blanket] was trying to determine the file's existing access controls by using stat(2) not lstat(2). This call was unsuccessful because the target file was non-existent therefore, we want you to be aware of this 'lint'."&lt;/blockquote&gt;
&lt;p&gt;Although I could not see their face, I am sure their eyes were rolling at my somewhat cryptic response. Later that day, I contemplated the existence of broken links and realized they are a potential security risk &amp;mdash; in the form of a Trojan Horse.&lt;/p&gt;

&lt;h4&gt;Common Uses of Links&lt;/h4&gt;
&lt;p&gt;First of all, what is a &lt;a href="http://en.wikipedia.org/wiki/Symbolic_link"&gt;link&lt;/a&gt;? Most desktop users use "shortcuts" but in the underlying file system they are actually links. For example, "File A" resides in the document folder and "File B" is created on the desktop but actually points to "File A". &lt;/p&gt;

&lt;p&gt;Another common implementation is for backward compatibility. Consider an application which was compiled and associated with a specific shared library. When a new version of the library is installed, the older application still looks for the previous shared library. The new shared library has all of the objects as before but to keep the older application from barfing a link is created. Consider the following:&lt;/p&gt;
&lt;pre&gt;
# &lt;span style="font-weight:bold;color:white"&gt;cd /usr/lib&lt;/span&gt;
# &lt;span style="font-weight:bold;color:white"&gt;ls -l libxml2.so*&lt;/span&gt;
&lt;span style="color:green"&gt;lrwxrwxrwx 1 root root      16 Jun  1 12:08 libxml2.so.2 -&amp;gt; libxml2.so.2.7.1
-rwxr-xr-x 1 root root 1385248 Aug  7  2009 libxml2.so.2.7.1&lt;/span&gt;
&lt;/pre&gt;

&lt;p&gt;The earlier libxml2.so.2 library is linked to libxml2.so.2.7.1 &amp;mdash; indicated by the "l" in the first character of the mode field and the "-&amp;gt;" in the name field.&lt;/p&gt;

&lt;p&gt;Another scenario links entire directories. This is typically done by system administrators to compensate for legacy applications or even an inability to properly configure applications to utilize existing directory structures. For example, consider a homegrown application which stores its data in &lt;tt&gt;/usr/local/myhomegrownappdata&lt;/tt&gt;. Now, there is no more space on the &lt;tt&gt;/usr&lt;/tt&gt; file system and there is no more disk space to create a new file system. However, there is plenty of space on &lt;tt&gt;/home&lt;/tt&gt;. Unfortunately, the homegrown application's data directory is hard-coded so the system administrator can't configure it to use a different path. So, the quick-and-dirty is to create the directory &lt;tt&gt;/home/myhomegrownappdata&lt;/tt&gt; and link &lt;tt&gt;/usr/local/myhomegrownappdata/&lt;/tt&gt; to it. Ugh. The horror.&lt;/p&gt;

&lt;h4&gt;A Trojan Horse &amp;mdash; &amp;ldquo;The Trouble With Tribbles&amp;rdquo;&lt;/h4&gt;
&lt;p&gt;A broken link is created when the source (target) file is removed but the link remains. Consider the above example of "File A" in the user's document folder and "File B" on the desktop which is linked to it. If "File A" is removed, "File B" is a broken link. Let's see this action at the command line:&lt;/p&gt;
&lt;pre&gt;
greenlantern:~# &lt;span style="font-weight:bold;color:white"&gt;cd /tmp&lt;/span&gt;
greenlantern:/tmp # &lt;span style="font-weight:bold;color:white"&gt;touch jamie&lt;/span&gt;
greenlantern:/tmp # &lt;span style="font-weight:bold;color:white"&gt;ln -s jamie adams&lt;/span&gt;
greenlantern:/tmp # &lt;span style="font-weight:bold;color:white"&gt;ls -li jamie adams&lt;/span&gt;
&lt;span style="color:green"&gt;2859232 lrwxrwxrwx 1 root root 5 Jun 11 09:22 adams -&amp;gt; jamie
2859231 -rw-r--r-- 1 root root 0 Jun 11 09:22 jamie&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;I created a file "jamie" with the &lt;a href="http://linux.die.net/man/1/touch"&gt;touch(1)&lt;/a&gt; command and then created a symbolic link from "adams" to "jamie". Then I used the ls(1) command with the &lt;tt&gt;-i&lt;/tt&gt; option to show their &lt;a href="http://en.wikipedia.org/wiki/Inode"&gt;inodes&lt;/a&gt; (first column). Now, if I remove the "jamie" file:&lt;/p&gt;

&lt;pre&gt;
greenlantern:/tmp # &lt;span style="font-weight:bold;color:white"&gt;rm -f jamie&lt;/span&gt;
greenlantern:/tmp # &lt;span style="font-weight:bold;color:white"&gt;test -r adams; echo $?&lt;/span&gt;
&lt;span style="color:green"&gt;1&lt;/span&gt;
greenlantern:/tmp # &lt;span style="font-weight:bold;color:white"&gt;find -L . -type l -ls&lt;/span&gt;
&lt;span style="color:green"&gt;2859232    0 lrwxrwxrwx   1 root     root            5 Jun 11 09:22 ./adams -&amp;gt; jamie&lt;/span&gt;
&lt;/pre&gt;

&lt;p&gt;After removing the file &lt;tt&gt;jamie&lt;/tt&gt;, the &lt;a href="http://en.wikipedia.org/wiki/Test_%28Unix%29#Exit_Status"&gt;return code ($?)&lt;/a&gt; of the &lt;a href="http://linux.die.net/man/1/test"&gt;test(1)&lt;/a&gt; command shows that I am unable to read "adams" because it was linked to "jamie". A useful technique to find all broken links, is to use &lt;a href="http://linux.die.net/man/1/find"&gt;find(1)&lt;/a&gt;'s -L option as shown above.&lt;/p&gt;

&lt;p&gt;Now, a Trojan Horse could potentially be introduced if a target file "jamie" is created in the same path. Below I did just that:&lt;/p&gt;
&lt;pre&gt;
greenlantern:/tmp # &lt;span style="font-weight:bold;color:white"&gt;echo "&lt;span style="color:red"&gt;Dangerous Stuff&lt;/span&gt;" &amp;gt; jamie&lt;/span&gt;
greenlantern:/tmp # &lt;span style="font-weight:bold;color:white"&gt;ls -li jamie adams&lt;/span&gt;
&lt;span style="color:green"&gt;2859232 lrwxrwxrwx 1 root root  5 Jun 11 09:22 adams -&amp;gt; jamie
2859233 -rw-r--r-- 1 root root 16 Jun 11 09:32 jamie&lt;/span&gt;
greenlantern:/tmp # &lt;span style="font-weight:bold;color:white"&gt;test -r adams; echo $?&lt;/span&gt;
&lt;span style="color:green"&gt;0&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Note that the previous file "jamie" had an inode of 2859231 but this new file's inode is 2859233. The link doesn't care because it is path-based. Using the test(1) command I can read the link again. &lt;span style="color:white"&gt;Even if this is a result of non-malicious actions, the fact remains that the user or application is no longer using the original file&lt;/span&gt;.&lt;/p&gt;

&lt;p&gt;Systems using &lt;a href="http://en.wikipedia.org/wiki/Security-Enhanced_Linux"&gt;Security Enhanced Linux (SELinux)&lt;/a&gt; in enforcing mode would have an advantage since the &lt;a href="http://en.wikipedia.org/wiki/Mandatory_access_control"&gt;mandatory access controls&lt;/a&gt; applied to the file is inode-based. Despite &lt;a href="http://en.wikipedia.org/wiki/Discretionary_access_control"&gt;discretionary access controls&lt;/a&gt; on a newly created file, it would not result in access to the process following the link &amp;mdash; until the appropriate &lt;a href="http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6-Beta/html/Security-Enhanced_Linux/sect-Security-Enhanced_Linux-Working_with_SELinux-SELinux_Contexts_Labeling_Files.html"&gt;security contexts&lt;/a&gt; have been manually re-established.&lt;/p&gt;

&lt;h4&gt;Where do these troublesome &amp;ldquo;Tribbles&amp;rdquo; come from?&lt;/h4&gt;
&lt;p&gt;When installing software, many packages contain a "post-install" and a "pre-uninstall" routine. This means, when a package is installed the "post-install" routine may add additional links to provide backward compatibility. However, since these links were created during the "post-install" they are not part of the package's manifest. When packages are removed, only files in the manifest are deleted unless there is some special clean up functions in the "pre-uninstall". However, few packagers include such clean up routines.&lt;/p&gt;

&lt;p&gt;Then there is the notorious &lt;span style="font-style:italic;"&gt;sharing-caring&lt;/span&gt; community of users which may all link to one user's resource files. Then one day, that user is removed and the community is left with broken links.&lt;/p&gt;

&lt;p&gt;Regardless of their origins, broken links are not only annoying little Tribbles which consume file system resources they also pose a security risk in the form of a Trojan Horse. A good system administrator will try to control these little Tribbles by using best practices, common sense, and educating their users.&lt;/p&gt;

&lt;p&gt;Security Blanket's baseline feature can assist in detecting removed files or ones which have been replaced by using &lt;a href="http://en.wikipedia.org/wiki/Cryptographic_hash_function"&gt;cryptographic hashes&lt;/a&gt;. For more information, &lt;a href="http://www.trustedcs.com/SecurityBlanket/SecurityBlanket.html"&gt;visit our website&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-4625598341715949225?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/4625598341715949225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/06/broken-links-in-linux-file-systems-can.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/4625598341715949225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/4625598341715949225'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/06/broken-links-in-linux-file-systems-can.html' title='Broken Links in Linux File Systems can be a Security Risk'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-1925339022672066660</id><published>2010-05-23T19:02:00.018-04:00</published><updated>2010-06-04T18:46:36.688-04:00</updated><title type='text'>Tool Talk Webcast: Operating System Security ... a "Fireside Chat"</title><content type='html'>&lt;p&gt;Check out this &lt;a href="https://www.sans.org/webcasts/operating-system-security-fireside-chat-93059"&gt;FREE webcast hosted by SANS Tool Talk !&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;What is a Tool Talk?&lt;/h4&gt;
&lt;blockquote&gt;"SANS Tool Talks are an opportunity for you to hear from Information Security Vendors. At SANS we believe that you cannot accomplish Information Security tasks without tools. A surprising number of security professionals have no idea what technology is available in the marketplace. Tool Talks are designed to give you a solid understanding of a problem, and how a vendor's commercial tool can be used to solve or mitigate that problem."&lt;/p&gt;&lt;/blockquote&gt;

&lt;h4&gt;Overview of the Webcast&lt;/h4&gt;
&lt;b&gt;Featuring: Ed Hammersla and Jamie Adams&lt;/b&gt;
&lt;p&gt;Operating System (OS) security is key to building a strong foundation for enterprise security. OS lock down or system hardening is a recommended best practice when securing the enterprise, yet most organizations are reluctant to fully lock down their systems for fear that their applications may fail, or system performance will degrade. &lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EACT8Hhim20/TAmBRBl6-EI/AAAAAAAAAQ8/KFNDBydsAZs/s1600/Untitled+0+30+04-06.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 112px;" src="http://2.bp.blogspot.com/_EACT8Hhim20/TAmBRBl6-EI/AAAAAAAAAQ8/KFNDBydsAZs/s200/Untitled+0+30+04-06.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5479052551158167618" /&gt;&lt;/a&gt;&lt;p&gt;Whether you have 5 servers or 500, implementing and maintaining OS security is a time and resource intensive task. Listen in on this insightful discussion between two veteran security experts on best practices for effective and efficient OS lock down using Security Blanket, an automated OS lock down tool, by Trusted Computer Solutions.&lt;/p&gt;

&lt;h4&gt;Speaker Bios:&lt;/h4&gt;
&lt;p&gt;&lt;b style="color:lightgreen"&gt;Ed Hammersla&lt;/b&gt; is Chief Operating Officer of Trusted Computer Solutions (TCS), a proven leader in providing cyber security solutions which prevent government and commercial organizations from being compromised. In this role, Mr. Hammersla applies over 30 years of industry experience implementing strategies which assist the company in providing the highest quality security solutions for mission critical needs. Mr. Hammersla is considered an industry thought leader in how to deliver information securely and quickly to those that need it the most. As a frequent contributing speaker at technology conferences, Mr. Hammersla has played a key role in evangelizing the need to share information across multiple security domains long before it gained widespread public attention.&lt;/p&gt;

&lt;p&gt;&lt;b style="color:lightgreen"&gt;Jamie Adams&lt;/b&gt; is a Principle Secure Systems Engineer for Trusted Computer Solutions. As a lead engineer, Jamie has been instrumental in the development and ongoing evolution of the Security Blanket product. Jamie has over 20 years experience as a software developer and systems engineer for classified and unclassified systems. He has been involved in the design, deployment, operation and accreditation of large scale, highly available mission critical systems in both the public and private sectors. His deep background with applying security guidelines throughout enterprise system environments has provided Jamie with a wealth of knowledge regarding best practices for reducing vulnerabilities and risk.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-1925339022672066660?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/1925339022672066660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/05/tool-talk-webcast-operating-system.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/1925339022672066660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/1925339022672066660'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/05/tool-talk-webcast-operating-system.html' title='Tool Talk Webcast: Operating System Security ... a &quot;Fireside Chat&quot;'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_EACT8Hhim20/TAmBRBl6-EI/AAAAAAAAAQ8/KFNDBydsAZs/s72-c/Untitled+0+30+04-06.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-1153663945237122146</id><published>2010-04-30T13:23:00.031-04:00</published><updated>2010-05-01T07:09:50.418-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DISA UNIX STIG'/><title type='text'>Surviving the DISA UNIX STIGs</title><content type='html'>&lt;p&gt;Understanding the DISA UNIX STIGs is difficult for first-timers and sends chills down the spines of system administrators who have used them before. They are probably the most detailed set of security controls available which apply to a wide variety of operating systems.&lt;/p&gt;

&lt;p&gt;The biggest complaints from system administrators are that the STIGs are time consuming and require benign or seemingly useless settings. Personally, I think they are great. They are worth the time because they will improve your security posture and most system administrators learn a great deal during the implementation process.&lt;/p&gt;

&lt;p&gt;The Security Technical Implementation Guides (STIGs) are published by the U.S. Defense Information Systems Agency's (DISA) Field Security Office (FSO). There are three pieces:&lt;/p&gt;  

&lt;ol&gt;&lt;li&gt;&lt;a target="_new" href="http://iase.disa.mil/stigs/stig/index.html"&gt;UNIX STIG V5R1&lt;/a&gt; (April 2006) &amp;mdash; This is the main document and it gives plenty of explanations, rationale, and general information.&lt;/li&gt;
&lt;li&gt;&lt;a target="_new" href="http://iase.disa.mil/stigs/checklist/index.html"&gt;UNIX Security Checklist&lt;/a&gt; (published quarterly) &amp;mdash; details the requirements by line item to include what to look for in configuration files as well as commands to be executed.&lt;/li&gt;
&lt;li&gt;&lt;a target="_new" href="https://powhatan.iiie.disa.mil/stigs/SRR/index.html"&gt;System Readiness Review (SRR) Scripts&lt;/a&gt; (published quarterly) &amp;mdash; scan the operating system for compliancy. To download, you must have DoD PKI access.&lt;/li&gt; 
&lt;/ol&gt;

&lt;h4&gt;Getting Started&lt;/h4&gt;
&lt;p&gt;Too often system administrators download the SRR scripts, run the scan, and then perform the manual review. Then they bounce between editing configuration files and re-running the scan. Before you run any script on your system, there are some things I would recommend.&lt;/p&gt;

&lt;p&gt;First and foremost, make sure you have a &lt;a target="_new" href="http://en.wikipedia.org/wiki/Disaster_recovery"&gt;Disaster Recovery Plan&lt;/a&gt; or some sort of &lt;a target="_new" href="http://en.wikipedia.org/wiki/Business_continuity_planning"&gt;Business Continuity Plan (BCP)&lt;/a&gt;. The plan must contain detailed procedures for performing backups and recovery. Wherever possible, try to have on-line, off-line, and off-site backups. On-line could include storage mirroring technologies and off-line could be some sort of media which isn't connected to equipment. If at all possible, perform encrypted backups and then store them in a media safe on-site and off-site. The off-site backups could be as simple as taking the off-line media outside of your data center and preferably not in the same building. &lt;/p&gt;

&lt;p&gt;Account management and personnel security practices must be clearly documented. This includes documenting how access is granted to personnel. Procedures on removing accounts or revoking rights must also be documented. This also means taking a serious look at shared application and administrative accounts. Stop logging directly into these accounts (especially root!) &amp;mdash; personnel should be logging into their own personal account then switching to the application/administrative account.&lt;/p&gt;

&lt;p&gt;The biggest tip I can offer is to &lt;span style="font-weight:bold;color:red"&gt;REMOVE ALL SOFTWARE WHICH IS NOT NEEDED&lt;/span&gt;. This is where you gain great insight to your system's architecture because you will learn what components rely on what. For example, if you are not using any features or utilities of &lt;a href="http://www.samba.org/" target="_new"&gt;Samba&lt;/a&gt; &amp;mdash; remove it. I hear some administrators complain about the results of an SRR because it found problems with their Samba configuration. Their argument is "&lt;span style="font-style:italic;"&gt;We aren't even running the daemon!&lt;/span&gt;" If that's the case, simply remove the package &amp;mdash; it will reduce your findings and the amount of software you must constantly patch, upgrade, and report on.&lt;/p&gt;

&lt;p&gt;Lastly, have a STRONG, aggressive patch management plan. Make sure you have a complete backup of your system and patch everything you can. Next, download the "UNIX Security Checklist" and familiarize yourself with Section 3 of the document.&lt;/p&gt;

&lt;p&gt;Once you've done all of the above, feel free to perform your first SRR scan &amp;mdash; which will take about 3 to 5 minutes to complete.&lt;/p&gt;

&lt;h4&gt;Locking Down and Testing&lt;/h4&gt;
&lt;p&gt;Once the &lt;tt&gt;Start-SRR&lt;/tt&gt; script and manual review scripts have been run, you are ready to begin configuring the system to address failures. This is where it can get confusing for some people.&lt;/p&gt;

&lt;p&gt;Each test result is bound to a line-item, or more correctly a &lt;span style="font-style:italic;"&gt;Potential Discrepancy Indicator&lt;/span&gt; (PDI). For example, the SRR reported that PDI GEN003600 failed:&lt;/p&gt; 
&lt;pre&gt;
Beginning GEN003600 on 04/25/10 at 06:38.
Network parameters are not securely set.
Finished GEN003600 on 04/25/10 at 06:38.
::::::::::::::
/root/Desktop/Script.February/centos-5_2-i386.localdomain/GEN003600.Examples
::::::::::::::
GEN003600: net.ipv4.tcp_max_syn_backlog tunable is set less than 1280.
::::::::::::::
/root/Desktop/Script.February/centos-5_2-i386.localdomain/GEN003600.log
::::::::::::::
::::::::::::::
/root/Desktop/Script.February/centos-5_2-i386.localdomain/GEN003600.Result
::::::::::::::
PDI Number: GEN003600
Finding Category: CAT II
Reference: UNIX STIG: 3.20.5
Description: Network parameters are not securely set.
Status: Open

For example:
GEN003600: net.ipv4.tcp_max_syn_backlog tunable is set less than 1280.
&lt;/pre&gt;

&lt;p&gt;Now you must figure out how to configure the system so it will pass subsequent SRR scans. Section 3 of the Checklist document simply states the following:&lt;/p&gt;
&lt;blockquote&gt;&lt;b&gt;GEN003600 – Network Security Settings&lt;/b&gt;

&lt;p&gt;Perform the following to ensure the network security settings are enabled for each operating system.  The command is listed with the expected response below it.&lt;/p&gt;

....&lt;br/&gt;
&lt;p&gt;Linux&lt;/p&gt;
 &lt;tt&gt;# sysctl –a | grep net.ipv4.ip_forward&lt;/tt&gt;&lt;br/&gt;
  0&lt;br/&gt;
 &lt;tt&gt;# sysctl –a | grep net.ipv4.tcp_max_syn_backlog&lt;/tt&gt;&lt;br/&gt;
  1280&lt;br/&gt;
 &lt;tt&gt;# sysctl –a | grep net.ipv4.conf.all.accept_source_route&lt;/tt&gt;&lt;br/&gt;
  0&lt;br/&gt;
 &lt;tt&gt;# sysctl –a | grep net.ipv4.icmp_echo_ignore_broadcasts&lt;/tt&gt;&lt;br/&gt;
  1&lt;br/&gt;
...&lt;br/&gt;

&lt;/blockquote&gt;
&lt;p&gt;Unfortunately, the guideline does not tell you how to set the value correctly. Most system administrators would check the manual page on &lt;a href="http://linux.die.net/man/8/sysctl"&gt;sysctl(8)&lt;/a&gt; and learn that you can use the &lt;tt&gt;-w&lt;/tt&gt; option to set the parameter in the running kernel. However, if you reboot the system the kernel setting would be lost because it was not placed in the &lt;tt&gt;/etc/sysctl.conf&lt;/tt&gt; file.&lt;/p&gt;
&lt;p&gt;Situations like this are compounded when dealing with multiple operating systems which require different methods to implement the security setting.&lt;/p&gt;
&lt;p&gt;Once the setting has been configured, test the applications on the system. If any problems arise, the change must be reverted and you must document why it was not implemented. You must also document any reasons or other configurations which mitigate or reduce the risk of not configuring the system accordingly.&lt;/p&gt; 

&lt;p&gt;There are 368 PDI(s) so, you better get yourself a cup of coffee.&lt;/p&gt;

&lt;h4&gt;Maintaining&lt;/h4&gt;
&lt;p&gt;Once the system has been configured and tested, it should be &lt;a href="http://tcs-security-blanket.blogspot.com/2009/08/what-is-baseline.html"&gt;baselined&lt;/a&gt; and its current configuration well documented. Each time new software is introduced or existing software is patched, another baseline should be taken and compared to the first. Identify any changes and correct the security settings to ensure you maintain the same security posture. As a matter of fact, DISA recommends running weekly baselines to detect any changes in the system.&lt;/p&gt;

&lt;h4&gt;Automation&lt;/h4&gt;
&lt;p&gt;This laborious process is one of the reasons &lt;a href="http://www.trustedcs.com/SecurityBlanket/SecurityBlanket.html"&gt;Security Blanket&lt;span class="shift"&gt;®&lt;/span&gt;&lt;/a&gt; is becoming so popular. Security Blanket will automatically configure your system so issues such as GEN003600 are completely transparent &amp;mdash; regardless of the operating system it is running on. Security Blanket's engineering team has already conducted the research for you, documented where changes will be made in your system, as well as provide detailed logging when it does make changes to your system. You can perform assessments or apply the configurations which take 30 seconds or less on most systems. Security Blanket also has the ability to quickly undo settings.&lt;/p&gt;

&lt;p&gt;Security Blanket addresses all of your baselining requirements, too.&lt;/p&gt;

&lt;p&gt;There are &lt;a href="http://www.trustedcs.com/SecurityBlanket/SecurityBlanket-Product-Support.html"&gt;numerous modules&lt;/a&gt; which you can easily include in a profile which is used to enforce your security policy. There are out-of-the-box profiles to address guidelines such as the DISA UNIX STIGs and CIS Linux Benchmarks. With a simple click you can create a copy of those profiles and customize them to suit your site's needs. If you're skeptical, check out the &lt;a href="http://www.trustedcs.com/SecurityBlanket/SecurityBlanket-Try-Out.html"&gt;free trial&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-1153663945237122146?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/1153663945237122146/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/04/surviving-disa-unix-stigs.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/1153663945237122146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/1153663945237122146'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/04/surviving-disa-unix-stigs.html' title='Surviving the DISA UNIX STIGs'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-3032973091905426587</id><published>2010-04-23T09:55:00.003-04:00</published><updated>2010-04-23T10:00:02.612-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='openSUSE and Novell SUSE'/><category scheme='http://www.blogger.com/atom/ns#' term='CIS'/><category scheme='http://www.blogger.com/atom/ns#' term='DISA UNIX STIG'/><title type='text'>openSUSE and SUSE Linux Meets or Exceeds DISA and CIS Security Guidelines</title><content type='html'>&lt;p&gt;While developing the &lt;a href="https://www.trustedcs.com/SecurityBlanket/SecurityBlanket.html"&gt;Security Blanket&amp;reg;&lt;/a&gt; lock down product for SUSE, our engineering team has confirmed that all of the appropriate technical controls required to meet the guidelines were present. In addition, we identified some deficiencies in the guidelines. The guidelines, intended for earlier versions of the operating system, were not aware of some superior technologies available in version 11.&lt;/p&gt;

&lt;p&gt;I wrote a white paper detailing the findings.&lt;/p&gt;

&lt;blockquote&gt;Novell® SUSE® Linux® and openSUSE® are growing in popularity in many
different industries. One possible reason for the growing popularity
is its cost-effective use of scalable Linux solutions combined with
Novell’s commitment to interoperability and usability. On November 3,
2006, Novell signed a landmark agreement with Microsoft®. Part of that
agreement was focused on the improvement of the interoperability of
SUSE with Microsoft Windows®. One of the tenants of the openSUSE
Project is to “...explicitly look[s] beyond the technical community to
the broader non-technical community of computer users interested
in Linux.” Recently SUSE Linux was chosen as the primary operating
system (OS) by Burton Snowboards, Keller Homes (a nationally ranked
home builder), and Sherwin-Williams nationwide retail stores.&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="http://gw1.vtrenz.net/?B42F7FTMF5=clicksrc:techblog"&gt;Download the entire whitepaper &amp;#xBB;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-3032973091905426587?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/3032973091905426587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/04/opensuse-and-suse-linux-meets-or.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/3032973091905426587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/3032973091905426587'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/04/opensuse-and-suse-linux-meets-or.html' title='openSUSE and SUSE Linux Meets or Exceeds DISA and CIS Security Guidelines'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-1061141865149770260</id><published>2010-04-22T09:57:00.006-04:00</published><updated>2010-04-22T13:35:44.211-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Intrusion Detection Systems'/><title type='text'>Is McAfee's blunder a result of insufficent testing?</title><content type='html'>&lt;p&gt;In light of the recent &lt;a target="_new" href="http://www.npr.org/templates/story/story.php?storyId=126168997"&gt;McAfee blunder&lt;/a&gt;, I wonder if the &lt;span style="font-weight:bold;"&gt;rush&lt;/span&gt; to deliver new signatures to thwart a zero-day attack resulted in insufficient testing. The fact that most companies have some sort of &lt;span style="font-style:italic;"&gt;automatic update&lt;/span&gt; enabled does not give enough time to test the updates themselves.&lt;/p&gt;

&lt;p&gt;Would other, non-signature, network-based technologies have given more time? More time for companies to do their own minimal or subset of testing first?&lt;/p&gt;

&lt;p&gt;Why do we still rely on older technologies and techniques when attackers don't?&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Traditional Intrusion Detection Systems (IDSs), based on rules or signatures, have the problem of signature availability: it can take days or weeks to update the IDS with information about a new vulnerability or attack. They also have a problem with scale: new attacks are appearing at an increasing rate. Attackers have gotten smarter and adopted the idea of polymorphism – changing one byte in an attack renders it undetectable by traditional detection methods. Smarter signature-based systems can still be fooled by more sophisticated polymorphic techniques. IDSs based upon Anomaly Detection (AD), on the other hand, do not require an explicit description of each new malicious behavior, and adapt themselves to changing network conditions.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.trustedcs.com/documents/WP_CorrelationofNetworkBehavior.pdf"&gt;Read the full whitepaper &amp;#xBB;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-1061141865149770260?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/1061141865149770260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/04/is-mcafees-blunder-result-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/1061141865149770260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/1061141865149770260'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/04/is-mcafees-blunder-result-of.html' title='Is McAfee&apos;s blunder a result of insufficent testing?'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-1178359841011006726</id><published>2010-04-18T04:42:00.032-04:00</published><updated>2010-04-21T19:51:08.529-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Access Controls'/><category scheme='http://www.blogger.com/atom/ns#' term='CIS'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='DISA UNIX STIG'/><title type='text'>Keeping Linux File Systems Clean</title><content type='html'>&lt;p&gt;SYSTEM ADMINISTRATORS ROUTINELY "CLEAN" their file systems by removing unused files and organizing files into directories. The term "clean" is also associated with performing file system checks to ensure structural integrity with tools such as &lt;a target="_new" href="http://linux.die.net/man/8/fsck.ext3"&gt;fsck.ext3(8)&lt;/a&gt;. In addition to these critical activities, you should routinely "clean" file system access controls &amp;mdash; ownerships and permissions.&lt;/p&gt; 

&lt;h4&gt;Unowned Files and Directories&lt;/h4&gt;
&lt;p&gt;An unowned file or directory is one in which no owner or group has been assigned. All accounts and group have a numerical identifier associated with them &amp;mdash; referred to as the user identifier (&lt;span style="font-style:italic;"&gt;uid&lt;/span&gt;) and group identifier (&lt;span style="font-style:italic;"&gt;gid&lt;/span&gt;).&lt;/p&gt;

&lt;p&gt;For example, I have an account called &lt;span style="font-style:italic;"&gt;darth (uid=502)&lt;/span&gt; and it belongs to two groups: &lt;span style="font-style:italic;"&gt;darth (gid=502)&lt;/span&gt; and &lt;span style="font-style:italic;"&gt;vader (gid=503)&lt;/span&gt;. I created the file &lt;tt&gt;/tmp/deathstar&lt;/tt&gt; which is owned by &lt;span style="font-style:italic;"&gt;darth&lt;/span&gt; and assigned group &lt;span style="font-style:italic;"&gt;vader&lt;/span&gt;:&lt;/p&gt;
&lt;pre&gt;[root@localhost tmp]# &lt;span style="font-weight:bold;color:white"&gt;id darth&lt;/span&gt;
&lt;span style="color:green"&gt;uid=502(darth) gid=502(darth) groups=502(darth),503(vader)&lt;/span&gt;

[root@localhost tmp]# &lt;span style="color:white;font-weight:bold;"&gt;touch deathstar&lt;/span&gt;
[root@localhost tmp]# &lt;span style="color:white;font-weight:bold;"&gt;chown darth:vader deathstar&lt;/span&gt; 
[root@localhost tmp]# &lt;span style="font-weight:bold;color:white"&gt;ls -l deathstar&lt;/span&gt; 
-rw-r--r--. 1 &lt;span style="color:green"&gt;darth vader&lt;/span&gt; 0 2010-04-17 17:30 deathstar
&lt;/pre&gt;

&lt;p&gt;Once the group &lt;span style="font-style:italic;"&gt;vader&lt;/span&gt; is deleted from the system, the file no longer has a group assigned to it. The &lt;a href="http://linux.die.net/man/1/ls" target="_new"&gt;ls(1)&lt;/a&gt; command shows the number 503 because it no longer has a group mapped to &lt;span style="font-style:italic;"&gt;gid&lt;/span&gt; 503. When I delete the account &lt;span style="font-style:italic;"&gt;darth&lt;/span&gt;, the number 502 is displayed because there is no longer an account with &lt;span style="font-style:italic;"&gt;uid&lt;/span&gt; 502:&lt;/p&gt;
&lt;pre&gt;
[root@localhost tmp]# &lt;span style="font-weight:bold;color:white"&gt;groupdel vader&lt;/span&gt;
[root@localhost tmp]# &lt;span style="color:white;font-weight:bold;"&gt;ls -l deathstar&lt;/span&gt;
-rw-r--r--. 1 darth &lt;span style="color:red"&gt;503&lt;/span&gt; 0 2010-04-17 17:30 deathstar

[root@localhost tmp]# &lt;span style="color:white; font-weight:bold;"&gt;userdel -r darth&lt;/span&gt;
[root@localhost tmp]# &lt;span style="color:white;font-weight:bold;"&gt;ls -l deathstar&lt;/span&gt;
-rw-r--r--. 1 &lt;span style="color:red"&gt;502 503&lt;/span&gt; 0 2010-04-17 17:30 deathstar
&lt;/pre&gt;
&lt;p&gt;This may not seem like a big deal but if a new account is created with &lt;span style="font-style:italic;"&gt;uid&lt;/span&gt; 502 it will own the file.&lt;/p&gt;
&lt;p&gt;Unowned files and directories can also show up on your system when you extract an archive created on a system which has accounts your system does not have. Most notorious is the use of the &lt;a target="_new" href="http://linux.die.net/man/1/tar"&gt;tar(1)&lt;/a&gt; command as root without the &lt;tt&gt;-o&lt;/tt&gt; option.&lt;/p&gt;
&lt;p&gt;To locate all files on your system with no user or group assigned use the following command as root:&lt;/p&gt;
&lt;pre&gt;# &lt;span style="color:white;font-weight:bold;"&gt;find / \( -nouser -o -nogroup \) -print&lt;/span&gt;&lt;/pre&gt;

&lt;h4&gt;Uneven Permissions&lt;/h4&gt;
&lt;p&gt;Uneven permissions are when a group has more permissions than the owner or when the other (world) permissions are greater than the group's or owner's. For example, if a file has "-r--rw-r--" (octal 0464) the group has write permission but the owner does not.&lt;/p&gt;
&lt;p&gt;From right-to-left, the permissions map to other-group-owner. Uneven permissions can be tested using simple mathematics to extract each digit and a simple test expression to ensure each digit is greater than the one to the right. Below is an example &lt;a target="_new" href="http://www.python.org/"&gt;Python&lt;/a&gt; script:&lt;/p&gt; 
&lt;div style="background: #f8f8f8; overflow:auto;width:auto;color:gray;background:black;border:none;"&gt;&lt;pre style="margin: 0; line-height: 125%"&gt;&lt;span style="color: #408080; font-style: italic"&gt;#!/usr/bin/python&lt;/span&gt;

&lt;span style="color: #008000; font-weight: bold"&gt;import&lt;/span&gt; &lt;span style="color: #0000FF; font-weight: bold"&gt;os&lt;/span&gt;

&lt;span style="color: #008000; font-weight: bold"&gt;for&lt;/span&gt; root, dirs, files &lt;span style="color: #AA22FF; font-weight: bold"&gt;in&lt;/span&gt; os&lt;span style="color: #666666"&gt;.&lt;/span&gt;walk(&lt;span style="color: #BA2121"&gt;&amp;#39;/&amp;#39;&lt;/span&gt;): 
    testFiles &lt;span style="color: #666666"&gt;=&lt;/span&gt; []
    &lt;span style="color: #008000; font-weight: bold"&gt;for&lt;/span&gt; name &lt;span style="color: #AA22FF; font-weight: bold"&gt;in&lt;/span&gt; files:
        fullName &lt;span style="color: #666666"&gt;=&lt;/span&gt; os&lt;span style="color: #666666"&gt;.&lt;/span&gt;path&lt;span style="color: #666666"&gt;.&lt;/span&gt;join(root, name)
        testFiles&lt;span style="color: #666666"&gt;.&lt;/span&gt;append(fullName)
   
    &lt;span style="color: #008000; font-weight: bold"&gt;for&lt;/span&gt; name &lt;span style="color: #AA22FF; font-weight: bold"&gt;in&lt;/span&gt; dirs:
        fullName &lt;span style="color: #666666"&gt;=&lt;/span&gt; os&lt;span style="color: #666666"&gt;.&lt;/span&gt;path&lt;span style="color: #666666"&gt;.&lt;/span&gt;join(root, name)
        testFiles&lt;span style="color: #666666"&gt;.&lt;/span&gt;append(fullName)

    &lt;span style="color: #008000; font-weight: bold"&gt;for&lt;/span&gt; name &lt;span style="color: #AA22FF; font-weight: bold"&gt;in&lt;/span&gt; testFiles:  
        fileMode &lt;span style="color: #666666"&gt;=&lt;/span&gt; os&lt;span style="color: #666666"&gt;.&lt;/span&gt;lstat(name)&lt;span style="color: #666666"&gt;.&lt;/span&gt;st_mode
        usrMode &lt;span style="color: #666666"&gt;=&lt;/span&gt; (fileMode &lt;span style="color: #666666"&gt;/&lt;/span&gt; &lt;span style="color: #666666"&gt;8**2&lt;/span&gt;) &lt;span style="color: #666666"&gt;%&lt;/span&gt; &lt;span style="color: #666666"&gt;8&lt;/span&gt; 
        grpMode &lt;span style="color: #666666"&gt;=&lt;/span&gt; (fileMode &lt;span style="color: #666666"&gt;/&lt;/span&gt; &lt;span style="color: #666666"&gt;8&lt;/span&gt;) &lt;span style="color: #666666"&gt;%&lt;/span&gt; &lt;span style="color: #666666"&gt;8&lt;/span&gt; 
        othMode &lt;span style="color: #666666"&gt;=&lt;/span&gt; fileMode &lt;span style="color: #666666"&gt;%&lt;/span&gt; &lt;span style="color: #666666"&gt;8&lt;/span&gt; 
        
        &lt;span style="color: #008000; font-weight: bold"&gt;if&lt;/span&gt; othMode &lt;span style="color: #666666"&gt;&amp;gt;&lt;/span&gt; grpMode &lt;span style="color: #AA22FF; font-weight: bold"&gt;or&lt;/span&gt; othMode &lt;span style="color: #666666"&gt;&amp;gt;&lt;/span&gt; usrMode &lt;span style="color: #AA22FF; font-weight: bold"&gt;or&lt;/span&gt; grpMode &lt;span style="color: #666666"&gt;&amp;gt;&lt;/span&gt; usrMode: 
            &lt;span style="color: #008000; font-weight: bold"&gt;print&lt;/span&gt; &lt;span style="color: #BA2121"&gt;&amp;quot;Mode=&lt;/span&gt;&lt;span style="color: #BB6688; font-weight: bold"&gt;%d%d%d&lt;/span&gt;&lt;span style="color: #BA2121"&gt; &lt;/span&gt;&lt;span style="color: #BB6688; font-weight: bold"&gt;%s&lt;/span&gt;&lt;span style="color: #BA2121"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color: #666666"&gt;%&lt;/span&gt; (usrMode, grpMode, othMode, name) 
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Uneven permissions are usually created by the misuse of the &lt;a href="http://www.linuxjournal.com/article/1190" target="_new"&gt;chmod(1)&lt;/a&gt; command, a bad &lt;a target="_new" href="http://en.wikipedia.org/wiki/Umask"&gt;umask&lt;/a&gt;, or a program which doesn't convert from decimal to octal correctly when assigning permissions.&lt;/p&gt;

&lt;h4&gt;Automation&lt;/h4&gt;
&lt;p&gt;Besides unowned files and uneven permissions, keep an eye on &lt;a target="_new" href="http://en.wikipedia.org/wiki/Setuid"&gt;setuid and setgid&lt;/a&gt; files, contents of home directories, and excessive permissions on binaries (executables) and libraries. Many system administrators go to a lot of trouble to tighten permissions only to have them changed after packages are updated.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.trustedcs.com/SecurityBlanket/SecurityBlanket.html"&gt;Security Blanket&lt;span class="shift"&gt;&amp;reg;&lt;/span&gt;&lt;/a&gt; can detect these problems AND correct them &amp;mdash; &lt;span style="font-weight:bold;"&gt;consistently&lt;/span&gt; and &lt;span style="font-weight:bold;"&gt;automatically&lt;/span&gt;. There are several hundred &lt;a href="http://www.trustedcs.com/SecurityBlanket/SecurityBlanket-Product-Support.html"&gt;security modules&lt;/a&gt; which you can easily include in a profile which is used to enforce your security policy. There are out-of-the-box profiles to address guidelines such as &lt;a target="_new" href="http://iase.disa.mil/stigs/index.html"&gt;DISA UNIX STIGS&lt;/a&gt; and &lt;a target="_new" href="http://cisecurity.org/"&gt;CIS Linux Benchmarks&lt;/a&gt;. With a simple click you can create a copy of those profiles and customize them to suit your site's needs. If you're skeptical, check out the &lt;a href="http://www.trustedcs.com/SecurityBlanket/SecurityBlanket-Try-Out.htmll"&gt;free trial&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-1178359841011006726?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/1178359841011006726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/04/keeping-linux-file-systems-clean.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/1178359841011006726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/1178359841011006726'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/04/keeping-linux-file-systems-clean.html' title='Keeping Linux File Systems Clean'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-5666106994989731526</id><published>2010-04-15T18:56:00.047-04:00</published><updated>2010-04-19T13:47:55.605-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Access Controls'/><title type='text'>Fine-grained Access Control on Linux File Systems</title><content type='html'>IMPLEMENTING FINE-GRAINED ACCESS CONTROLS is easy when you understand the basics. All system administrators are familiar with &lt;a href="http://en.wikipedia.org/wiki/Filesystem_permissions#Traditional_Unix_permissions" target="_new"&gt; traditional user-group-other permissions&lt;/a&gt; applied to files &amp;mdash; at least I certainly hope so! &lt;a href="http://en.wikipedia.org/wiki/Discretionary_Access_Control" target="_new"&gt;Discretionary Access Controls (DAC)&lt;/a&gt; are a fundamental security mechanism and &lt;a href="http://en.wikipedia.org/wiki/Access_control_list" target="_new"&gt;POSIX.1e Access Control Lists (ACL)&lt;/a&gt; provide administrators the ability to grant access to additional users and groups without having to grant access to &lt;span style="font-style:italic;"&gt;other&lt;/span&gt; (a.k.a, &lt;span style="font-style:italic;"&gt;the world&lt;/span&gt;).

&lt;p&gt;In my opinion, it's easier to understand ACLs if you can see a practical use for them. Let's say you have an application that monitors system logs but the monitoring application doesn't have &lt;span style="font-style:italic;"&gt;root&lt;/span&gt; access. The log's owner is &lt;span style="font-style:italic;"&gt;root&lt;/span&gt; and the group is assigned &lt;span style="font-style:italic;"&gt;root&lt;/span&gt; &amp;mdash; the permissions are 0600 which means only the &lt;span style="font-style:italic;"&gt;root&lt;/span&gt; account can read the log file and write to the log file.&lt;/p&gt;

&lt;pre&gt;[root@spartacus ~]# &lt;span style="font-weight:bold; color:white"&gt;ls -lh /var/log/messages&lt;/span&gt;
-rw------- 1 root root 185K 2010-04-16 07:33 /var/log/messages&lt;/pre&gt;

&lt;p&gt;The monitoring application runs as the &lt;span style="font-style:italic;"&gt;analyzer&lt;/span&gt; user account. However, in order to grant access to this account we would have to either add &lt;span style="font-style:italic;"&gt;analyzer&lt;/span&gt; to the &lt;span style="font-style:italic;"&gt;root&lt;/span&gt; group or grant &lt;span style="font-style:italic;"&gt;other&lt;/span&gt; (&lt;span style="font-style:italic;"&gt;world&lt;/span&gt;) permissions to the log. The first option is a bad idea because you don't want any account besides &lt;span style="font-style:italic;"&gt;root&lt;/span&gt; to belong to the root group. The second idea is bad because once you grant permission to other &amp;mdash; any account will have the same permissions!&lt;/p&gt;

&lt;p&gt;We only want to grant the &lt;span style="font-style:italic;"&gt;analyzer&lt;/span&gt; account permission to read the log file &amp;mdash; plain and simple. We can use the &lt;a target="_new" href="http://linux.die.net/man/1/setfacl"&gt;setfacl(1)&lt;/a&gt; command to accomplish this. First, if I switch to the &lt;span style="font-style:italic;"&gt;analyzer&lt;/span&gt; account I am unable to read the log file:&lt;/p&gt;

&lt;pre&gt;[root@spartacus ~]# &lt;span style="font-weight:bold;color:white"&gt;su - analyzer&lt;/span&gt;
[analyzer@spartacus log]$ &lt;span style="font-weight:bold;color:white"&gt;tail -1 /var/log/messages&lt;/span&gt;
&lt;span style="color:red"&gt;tail: cannot open `/var/log/messages' for reading: Permission denied&lt;/span&gt;
&lt;/pre&gt;

&lt;p&gt;With the &lt;a target="_new" href="http://linux.die.net/man/1/setfacl"&gt;setfacl(1)&lt;/a&gt; command, we can grant access to the &lt;span style="font-style:italic;"&gt;anlayzer&lt;/span&gt; account by adding an ACL entry:
&lt;pre&gt;[root@spartacus ~]# &lt;span style="font-weight:bold;color:white"&gt;setfacl -m user:analyzer:r-- /var/log/messages&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;The &lt;a target="_new" href="http://linux.die.net/man/1/getfacl"&gt;getfacl(1)&lt;/a&gt; command now shows an additional entry besides the base ones. Also, the &lt;a target="_new" href="http://linux.die.net/man/1/ls"&gt;ls(1)&lt;/a&gt; command now shows a plus sign at the end of the permissions column.&lt;/p&gt;
&lt;pre&gt;[root@spartacus ~]# &lt;span style="font-weight:bold;color:white"&gt;getfacl /var/log/messages&lt;/span&gt;
# file: var/log/messages
# owner: root
# group: root
user::rw-
&lt;span style="color:green"&gt;user:analyzer:r--&lt;/span&gt;
group::---
mask::r--
other::---

[root@spartacus ~]# &lt;span style="font-weight:bold;color:white"&gt;ls -l /var/log/messages&lt;/span&gt;
&lt;span style="color:green"&gt;-rw-r-----+&lt;/span&gt; 1 root root 189403 2010-04-16 07:33 /var/log/messages
&lt;/pre&gt;

&lt;p&gt;When we switch to the &lt;span style="font-style:italic;"&gt;analyzer&lt;/span&gt; account, we can now read the log file.&lt;/p&gt;
&lt;pre&gt;
[root@spartacus ~]# &lt;span style="font-weight:bold;color:white"&gt;su - analyzer&lt;/span&gt;

[analyzer@spartacus ~]$ &lt;span style="font-weight:bold;color:white"&gt;tail -1 /var/log/messages&lt;/span&gt;
Apr 16 07:33:28 spartacus auditd[1774]: Audit daemon rotating log files
&lt;/pre&gt;

&lt;p&gt;To remove ACL entries, use the -x option to the &lt;a target="_new" href="http://linux.die.net/man/1/setfacl"&gt;setfacl(1)&lt;/a&gt; command.&lt;/p&gt;

&lt;p&gt;You can also establish default access controls on directories which is useful if you want all files in a directory to inherit a certain set of permissions.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-5666106994989731526?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/5666106994989731526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/04/fine-grain-access-control-on-linux-file.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/5666106994989731526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/5666106994989731526'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/04/fine-grain-access-control-on-linux-file.html' title='Fine-grained Access Control on Linux File Systems'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-1449656777751993129</id><published>2010-04-12T12:00:00.023-04:00</published><updated>2010-07-26T06:12:57.753-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='openSUSE and Novell SUSE'/><category scheme='http://www.blogger.com/atom/ns#' term='CIS'/><category scheme='http://www.blogger.com/atom/ns#' term='DISA UNIX STIG'/><title type='text'>Linux File Systems</title><content type='html'>&lt;p&gt;LINUX FILE SYSTEMS are an essential operating system resource. Modern file systems and disk drive technology are robust and reliable &amp;mdash; so, most administrators put little effort into planning or worrying about them once the operating system is configured. This makes me both smile and cringe.&lt;/p&gt;
&lt;p&gt;I smile because the advancements in technology facilitate out-of-the-box reliability and performance for common installations regardless of the system administrator's skills. The implementation allows applications which utilize them to be reliable and require little day-to-day maintenance.&lt;/p&gt;
&lt;p&gt;I cringe because when it comes time for a system administrator to do proper planning and implementation of a very large or unique solution with a finite set of resources, many administrators lack the skills. &lt;a target="_new" href="http://en.wikipedia.org/wiki/Storage_area_network"&gt;Storage Area Networks (SAN)&lt;/a&gt;, advanced server hardware, and &lt;a target="_new" href="http://en.wikipedia.org/wiki/Hardware_virtualization"&gt;virtualization&lt;/a&gt; have provided a seemingly unlimited pool of resources.&lt;/p&gt;
&lt;p&gt;When it comes to file systems, there are several different types. For the purposes of this blog post, I will focus on  &lt;a href="http://en.wikipedia.org/wiki/File_system#Disk_file_systems"&gt;disk file systems&lt;/a&gt; which include &lt;a href="http://en.wikipedia.org/wiki/Ext3"&gt;ext3&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Ext4"&gt;ext4&lt;/a&gt;. However, there are other types such as &lt;a href="http://en.wikipedia.org/wiki/File_system#Special_purpose_file_systems"&gt;special&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/File_system#Network_file_systems"&gt;network-based&lt;/a&gt; file systems.&lt;/p&gt; 
&lt;p&gt;I'd like to offer some thoughts on file system planning and implementation. They're intended to get you thinking about some important aspects of using file systems.&lt;/p&gt;
&lt;h4&gt;Planning &amp;mdash; The Layout and Creation of File Systems&lt;/h4&gt;
&lt;p&gt;Defining a file system layout involves considering the use of each file system in the operating system. Most system administrators will simply choose the default which assigns the entire &lt;a target="_new" href="http://en.wikipedia.org/wiki/Disk_partition"&gt;disk partition&lt;/a&gt; as one, big monolithic file system (/).&lt;/p&gt;
&lt;p&gt;Consider creating separate file systems for data which is constantly growing and shrinking such as &lt;tt&gt;/tmp&lt;/tt&gt;, &lt;tt&gt;/var/log&lt;/tt&gt;, and &lt;tt&gt;/var/audit&lt;/tt&gt;. If you are going to have a large number of Linux user accounts, consider a separate file system such as &lt;tt&gt;/home&lt;/tt&gt; &amp;mdash; this will isolate non-privileged users which could potentially fill up the root file system (/).&lt;/p&gt;
&lt;p&gt;Next, think about the size and amount of data to be stored on the file system. For example, if the file system will be dedicated to a database you may have fewer files but can be very large. If the file system will be comprised of many smaller files, then consider adjusting the inodes-per-bytes ratio. I've seen systems where the "&lt;a target="_new" href="http://linux.die.net/man/1/df"&gt;df -h&lt;/a&gt;" command reports plenty of space however, the "&lt;a href="http://linux.die.net/man/1/df" target="_new"&gt;df -ih&lt;/a&gt;" command reports no more space for inodes. If your file system needs change, some parameters can be adjusted later with &lt;a href="http://linux.die.net/man/8/tune2fs" target="_new"&gt;tune2fs(8)&lt;/a&gt; command.&lt;/p&gt;
&lt;h4&gt;Implementation &amp;mdash; Mounting File Systems&lt;/h4&gt;
&lt;p&gt;Once the file system is created, it is "mounted" to make it available to the operating system. Typically, file systems are mounted using its options specified in the &lt;tt&gt;/etc/fstab&lt;/tt&gt;. Again, the majority of default mount options suffice for most environments.&lt;/p&gt;
&lt;p&gt;Consider file systems which may be used for user home directories. You may want to prevent these users from executing binaries they've copied into their home directories &amp;mdash; use the 'noexec' and 'nosuid' mount options on their file system to prevent this. Another useful location for the 'noexec' and 'nosuid' options would be a file system dedicated to logging.&lt;/p&gt;
&lt;p&gt;File systems dedicated to serving static content such as web pages and images are great candidates for the 'noexec' and 'nosuid' options as well. If the pages are seldom updated, consider mounting the file system as read-only using the 'ro' option.&lt;/p&gt;
&lt;p&gt;By default, file systems such as &lt;a href="http://en.wikipedia.org/wiki/Ext2"&gt;ext2&lt;/a&gt; and newer support &lt;a href="http://en.wikipedia.org/wiki/Access_control_list"&gt;POSIX.1e Access Control Lists (ACL)&lt;/a&gt;. These ACLs provide fine-grained access control beyond the base &lt;span style="font-style:italic;"&gt;user-group-other&lt;/span&gt; permissions. However, many novice administrators do not understand the technology so excessive permissions could be hidden from them. If you are not comfortable or well-versed in POSIX ACLs, I recommend mounting file systems with the 'noacl' option to disable support for them. Some security professionals might disagree with me but in my opinion a misuse of such technology could be very dangerous.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-1449656777751993129?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/1449656777751993129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/04/linux-file-systems.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/1449656777751993129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/1449656777751993129'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/04/linux-file-systems.html' title='Linux File Systems'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-7328078540205570394</id><published>2010-03-24T11:39:00.152-04:00</published><updated>2010-07-25T08:08:49.788-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CAG'/><title type='text'>Identifying Network Ports in Linux</title><content type='html'>&lt;p&gt;ONE OF THE MOST CRITICAL SKILLS a system administrator should have is managing network ports on their servers. This includes knowing what network ports are open, correlating them to a running process, restricting access to that port, and disabling (closing) the port if it is not needed.&lt;/p&gt;

&lt;p&gt;Security Blanket&lt;span class="shift"&gt;&amp;reg;&lt;/span&gt; customers come from a variety of industries and their system administrators range from novice to expert. Recently, I assisted some customers who were seeing error messages such as "bind failed: port already in use". After explaining that the console port they've chosen was already assigned to another process and they should choose another port or kill the other process, I decided this would be a good blog post. Of course, these are only a handful of techniques I've used over the years so, please comment on this post and let us know what techniques you use.&lt;/p&gt;

&lt;p&gt;First of all, let's see what one of my favorite Internet resources says about ports. &lt;a href="http://en.wikipedia.org/wiki/Network_ports" target="_new"&gt;Wikipedia&lt;/a&gt; says:&lt;/p&gt;

&lt;blockquote&gt;"In computer networking, a port is an application-specific or process-specific software construct serving as a communications endpoint used by Transport Layer protocols of the Internet Protocol Suite, such as Transmission Control Protocol (TCP) and User Datagram Protocol (UDP). A specific port is identified by its number, commonly known as the port number, the IP address it is associated with, and the protocol used for communication."&lt;/blockquote&gt;

&lt;p&gt;It should be noted that ports range from 1 to 65535 and ports 1&amp;ndash;1023 are considered privileged and "&lt;a target="_new" href="http://www.iana.org/assignments/port-numbers"&gt;well-known&lt;/a&gt;". The &lt;a href="http://www.iana.org/"&gt;Internet Assigned Numbers Authority (IANA)&lt;/a&gt; is responsible for the global coordination of the DNS Root, IP addressing, and other Internet protocol resources.
As such, IANA considers &lt;span style="font-style:italic;"&gt;
Registered Ports&lt;/span&gt; to be 1024&amp;ndash;49151 and &lt;span style="font-style:italic;"&gt;Dynamic and/or Private Ports&lt;/span&gt; to be 49152&amp;ndash;65535.&lt;/p&gt;

&lt;p&gt;Ports are often referred to by the service name which uses them. For example, TCP port 25 is &lt;span style="font-style:italic;"&gt;well-known&lt;/span&gt; as the "smtp" service port. A list of ports and services can be found in your &lt;tt&gt;/etc/services&lt;/tt&gt; file. Much like your &lt;tt&gt;/etc/hosts&lt;/tt&gt; correlates textual host names to IP addresses; the &lt;tt&gt;/etc/services&lt;/tt&gt; file correlates ports to service names.&lt;/p&gt;

&lt;p&gt;However, ports can be assigned to any service you'd like. To illustrate this point, consider TCP port 8080. This is commonly used in many products for web-based administration. The products and services vary but the &lt;tt&gt;/etc/services&lt;/tt&gt; considers the most common to be "webcache". For this reason, my techniques will use command line options (i.e., &amp;ndash;n &amp;amp; &amp;ndash;P) which prevent the look up of the service name so, the port number will always be reported.&lt;/p&gt;

&lt;h4&gt;Knowing What Ports are Open&lt;/h4&gt;
&lt;p&gt;This is the most important step. System administrators must know every port their operating system has open. If at all possible, you should install the &lt;a href="http://www.netadmintools.com/html/lsof.man.html" target="_new"&gt;lsof(8)&lt;/a&gt; command. I prefer &lt;a href="http://www.netadmintools.com/html/lsof.man.html" target="_new"&gt;lsof(8)&lt;/a&gt;  but some sites don't permit it on their systems. If that's the case, you can use the &lt;a href="http://linux.die.net/man/8/netstat"&gt;netstat(8)&lt;/a&gt; command.&lt;/p&gt;

&lt;p&gt;Use the &lt;a href="http://linux.die.net/man/8/netstat"&gt;netstat(8)&lt;/a&gt; command to determine which TCP &amp;amp; UDP ports are open:&lt;/p&gt;
&lt;pre&gt;# &lt;span style="font-weight:bold;color:blue"&gt;/bin/netstat -an --program |/bin/egrep '^(udp|tcp.*LISTEN)'
&lt;/span&gt;
tcp  0      0 0.0.0.0:111                 0.0.0.0:*     LISTEN   833/rpcbind         
tcp  0      0 0.0.0.0:22                  0.0.0.0:*     LISTEN   1132/sshd           
tcp  0      0 127.0.0.1:631               0.0.0.0:*     LISTEN   914/cupsd           
tcp  0      0 127.0.0.1:25                0.0.0.0:*     LISTEN   1327/sendmail: acce 
tcp  0      0 0.0.0.0:60353               0.0.0.0:*     LISTEN   3044/rpc.statd      
tcp  0      0 :::111                      :::*          LISTEN   833/rpcbind         
tcp  0      0 :::80                       :::*          LISTEN   2463/httpd          
tcp  0      0 :::22                       :::*          LISTEN   1132/sshd           
tcp  0      0 ::1:631                     :::*          LISTEN   914/cupsd           
tcp  0      0 :::443                      :::*          LISTEN   2463/httpd          
udp  0      0 0.0.0.0:111                 0.0.0.0:*              833/rpcbind         
udp  0      0 0.0.0.0:1008                0.0.0.0:*              833/rpcbind         
udp  0      0 0.0.0.0:631                 0.0.0.0:*              914/cupsd           
udp  0      0 10.0.2.15:123               0.0.0.0:*              1140/ntpd           
udp  0      0 127.0.0.1:123               0.0.0.0:*              1140/ntpd           
udp  0      0 0.0.0.0:123                 0.0.0.0:*              1140/ntpd           
udp  0      0 0.0.0.0:676                 0.0.0.0:*              3044/rpc.statd      
udp  0      0 0.0.0.0:33834               0.0.0.0:*              3044/rpc.statd      
udp  0      0 0.0.0.0:68                  0.0.0.0:*              1104/dhclient       
udp  0      0 0.0.0.0:60100               0.0.0.0:*              857/avahi-daemon: r 
udp  0      0 0.0.0.0:5353                0.0.0.0:*              857/avahi-daemon: r 
udp  0      0 :::111                      :::*                           833/rpcbind         
udp  0      0 :::1008                     :::*                   833/rpcbind         
udp  0      0 fe80::a00:27ff:fe2d:a55:123 :::*                   1140/ntpd           
udp  0      0 ::1:123                     :::*                   1140/ntpd           
udp  0      0 :::123                      :::*                   1140/ntpd       
&lt;/pre&gt;
&lt;p&gt;The two most important columns are the fourth column and the last column. The fourth one identifies the network interface address and port it is listening on. For example, "127.0.0.1:25" says that TCP port 25 is listening on the &lt;a href="http://en.wikipedia.org/wiki/Loopback#Virtual_network_interface"&gt;loopback (127.0.0.1)&lt;/a&gt; interface only. Records such as "0.0.0.0:22" means that any request to connect to port 22 can be handled by any of the operating system's network interfaces&amp;mdash;zeroes act as a wild card. Those ports preceded by all colons such as ":::443" listen on all interfaces with &lt;a target="_new" href="http://en.wikipedia.org/wiki/Ipv6"&gt;IPv6&lt;/a&gt; addresses&amp;mdash;the colons act as wild cards in IPv6.&lt;/p&gt;

&lt;p&gt;The last column contains the &lt;a href="http://en.wikipedia.org/wiki/Process_identifier"&gt;process identifier&lt;/a&gt; (&lt;span style="font-style:italic;"&gt;pid&lt;/span&gt;) and program which controls the open port. The &lt;tt&gt;--program&lt;/tt&gt; (or &lt;tt&gt;-p&lt;/tt&gt;) option is the only way to see this information. In our example, TCP port 22 is controlled by the &lt;span style="font-weight:bold;"&gt;sshd&lt;/span&gt; program and it's current &lt;span style="font-style:italic;"&gt;pid&lt;/span&gt; is 1132. Using the &lt;a href="http://linux.die.net/man/1/ps"&gt;ps(1)&lt;/a&gt; command, you can get some information on the process:&lt;/p&gt;
&lt;pre&gt;# &lt;span style="font-weight:bold;color:blue"&gt;/bin/ps --pid 1132 -F&lt;/span&gt;
UID        PID  PPID  C    SZ   RSS PSR STIME TTY          TIME CMD
root      1132     1  0  2004   784   0 11:38 ?        00:00:00 /usr/sbin/sshd
&lt;/pre&gt;

&lt;p&gt;Often times, system administrators will install new software and configure it using its default port. However, in some cases when they attempt to start the new service, the chosen port is already in use by another process. You can use the &lt;a href="http://linux.die.net/man/8/netstat"&gt;netstat(8)&lt;/a&gt; command as shown above to find the port or you can use &lt;a href="http://www.netadmintools.com/html/lsof.man.html"&gt;lsof(8)&lt;/a&gt; which is quicker and easier. For example, to identify the program and &lt;span style="font-style:italic;"&gt;pid&lt;/span&gt; controlling TCP port 22 you can simply execute:&lt;/p&gt;
&lt;pre&gt;
# &lt;span style="font-weight:bold;color:blue"&gt;/usr/sbin/lsof -P -i :22&lt;/span&gt;
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd    1132 root    3u  IPv4  13220      0t0  TCP *:22 (LISTEN)
sshd    1132 root    4u  IPv6  13222      0t0  TCP *:22 (LISTEN)
&lt;/pre&gt;

&lt;h4&gt;Taking Action&lt;/h4&gt;
&lt;p&gt;At this juncture, you must decide if you are going to leave the port open or close it. If you decide to leave it open, you should restrict access; which means limiting what networks or remote machines can connect to your port. Many organizations have a network infrastructure in place to control access. However, I strongly recommend taking it a step further by configuring the service to only listen on specific interfaces and use host-based firewalls for granular access control.&lt;/p&gt;

&lt;h4&gt;&amp;#x25B8; Restricting Access&lt;/h4&gt;
&lt;p&gt;When it comes to configuring a service to listen on a specific interface, many applications have simple options to do this in their configuration file. For example, to configure the Apache Web (HTTP) server use the &lt;a href="http://httpd.apache.org/docs/2.2/mod/mpm_common.html#listen" target="_new"&gt;Listen&lt;/a&gt; directive in the &lt;tt&gt;httpd.conf&lt;/tt&gt; file. Similarly, you can restrict the OpenSSH SSH daemon by using the &lt;a target="_new" href="http://www.openbsd.org/cgi-bin/man.cgi?query=sshd_config&amp;sektion=5"&gt;ListenAddress&lt;/a&gt; parameter in its configuration (&lt;tt&gt;sshd_conf&lt;/tt&gt;) file.&lt;/p&gt;

&lt;p&gt;Next consider, taking advantage of the Linux kernel's firewall. You can use your operating system's graphical administration tools to establish your rules. For more granular control, use the command line &lt;a href="http://en.wikipedia.org/wiki/Iptables" target="_new"&gt;iptables(8)&lt;/a&gt; administration tool. To determine if you have existing rules, you can execute "&lt;tt&gt;/sbin/iptables -L&lt;/tt&gt;" as root.&lt;/p&gt;

&lt;p&gt;Once you've restricted access to the port, it is critical that you confirm the restrictions. In my opinion, the best open source tool to do this is &lt;a href="http://en.wikipedia.org/wiki/Nmap" target=_new"&gt;Network Mapper (Nmap)&lt;/a&gt;. Use this tool from various points within and outside of your network to test your access controls. Nmap will even attempt to identify the service as well as the version of the service. Here is an example:
&lt;pre&gt;
# &lt;span style="font-weight:bold; color:blue"&gt;nmap -sV -A spartacus&lt;/span&gt;

Starting Nmap 5.21 ( http://nmap.org ) at 2010-03-24 16:31 EDT
Nmap scan report for spartacus (192.168.1.30)
Host is up (0.00016s latency).
Hostname spartacus resolves to 2 IPs. Only scanned 192.168.1.30
Not shown: 994 closed ports

PORT    STATE SERVICE  VERSION
22/tcp  open  ssh      OpenSSH 5.3 (protocol 2.0)
| ssh-hostkey: 1024 2a:03:cc:09:fd:85:c6:1b:3f:80:dc:61:6f:19:89:38 (DSA)
|_2048 1d:90:d3:b4:44:06:22:f9:59:bd:d6:22:23:79:1a:6e (RSA)

111/tcp open  rpcbind  2-4 (rpc #100000)
| rpcinfo:  
| 100000  2,3,4    111/udp  rpcbind  
| 100024  1      41016/udp  status   
| 100000  2,3,4    111/tcp  rpcbind  
|_100024  1      40028/tcp  status   

443/tcp open  ssl/http Apache httpd 2.2.14 ((Fedora))
|_html-title: Test Page for the Apache HTTP Server on Fedora

631/tcp open  ipp      CUPS 1.4

Device type: general purpose
Running: Linux 2.6.X
OS details: Linux 2.6.19 - 2.6.31
Network Distance: 0 hops
Service Info: Host: spartacus; OS: Unix
&lt;/pre&gt;

&lt;h4&gt;&amp;#x25B8; Close the Port&lt;/h4&gt;
&lt;p&gt;If you've decided that you do not need this service, then you should stop the service in order to close the port. As a last resort, you can use the &lt;a href="http://linux.die.net/man/1/kill"&gt;kill(1)&lt;/a&gt; command to send a terminate signal to the process. However, it is best to identify the specific service, use the &lt;a href="http://linux.die.net/man/8/service"&gt;service(8)&lt;/a&gt; command to stop it, and then use the &lt;a href="http://linux.die.net/man/8/chkconfig"&gt;chkconfig(8)&lt;/a&gt; utility to prevent the service from starting during system boot. &lt;/p&gt;

&lt;p&gt;For our example, we found that TCP port 40028 was being controlled by a program named &lt;span style="font-weight:bold;"&gt;rpc.statd&lt;/span&gt;. The first step is to identify the service which this program controls. Usually, the program and service name share the same&amp;mdash;in Red Hat-based systems &lt;span style="font-style:italic;"&gt;httpd&lt;/span&gt; program's service name is &lt;span style="font-style:italic;"&gt;httpd&lt;/span&gt;.&lt;/p&gt;
&lt;pre&gt;
# &lt;span style="font-weight:bold;color:blue"&gt;/sbin/chkconfig --list |/bin/grep statd&lt;/span&gt;
# &lt;span style="font-weight:bold;color:blue"&gt;/sbin/chkconfig --list |/bin/grep rpc.statd&lt;/span&gt;
&lt;/pre&gt;

&lt;para&gt;However, in this example there is no service name which is even close to the program name. So, now we'll take a look in the directory which contains the system wide service scripts. I searched all of the scripts for our program:&lt;para&gt;
&lt;pre&gt;
# &lt;span style="font-weight:bold;color:blue"&gt;/bin/grep -l statd /etc/init.d/*&lt;/span&gt;
/etc/init.d/nfslock
&lt;/pre&gt;
&lt;para&gt;Now, we can use the &lt;a href="http://linux.die.net/man/8/chkconfig"&gt;chkconfig(8)&lt;/a&gt; command to determine what run-levels the service is configured to run:&lt;/para&gt;
&lt;pre&gt;
# &lt;span style="font-weight:bold;color:blue"&gt;/sbin/chkconfig --list nfslock&lt;/span&gt;
nfslock         0:off 1:off 2:off 3:on 4:on 5:on 6:off
&lt;/pre&gt;
We can shutdown the service immediately with the &lt;a href="http://linux.die.net/man/8/service"&gt;service(8)&lt;/a&gt; command and prevent it from starting during system boot with the &lt;a href="http://linux.die.net/man/8/chkconfig"&gt;chkconfig(8)&lt;/a&gt; command as follows:&lt;/para&gt; 
&lt;pre&gt;
# &lt;span style="font-weight:bold;color:blue"&gt;/sbin/service nfslock stop&lt;/span&gt;
Stopping NFS statd:                                        [  &lt;span style="font-weight:bold;color:green"&gt;OK&lt;/span&gt;  ]

# &lt;span style="font-weight:bold;color:blue"&gt;/sbin/chkconfig nfslock off&lt;/span&gt;
&lt;/pre&gt;

&lt;p&gt;In my opinion, the best technique is to remove the software from the system. You can use the &lt;a href="http://linux.die.net/man/8/rpm"&gt;rpm(8)&lt;/a&gt; command to identify the software package a particular file belongs. So, in this example we want to identify the name of the package which the &lt;span style="font-style:italic;"&gt;nfslock&lt;/span&gt; service belongs.&lt;/p&gt;

&lt;pre&gt;# &lt;span style="font-weight:bold;color:blue"&gt;/bin/rpm -q --file /etc/init.d/nfslock&lt;/span&gt;
nfs-utils-1.2.1-4.fc12.i686&lt;/pre&gt;


&lt;h4&gt;Summary&lt;/h4&gt;
&lt;p&gt;The importance of knowing what ports are open can't be emphasized enough &amp;mdash; then closing unneeded ports and restricting access to the ones you do need. These points are emphasized in the "&lt;span style="font-style:italic;"&gt;Twenty Critical Security Controls for Effective Cyber Defense: Consensus Audit Guidelines&lt;/span&gt;". Specifically Critical Control &lt;a href="http://www.sans.org/cag/control/3.php" target="_new"&gt;3&lt;/a&gt; and &lt;a target="_new" href="http://www.sans.org/cag/control/13.php"&gt;13&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For more information, check out my previous blog post: "&lt;a href="http://tcs-security-blanket.blogspot.com/2009/08/minimize-attack-surfaces.html"&gt;Minimize Attack Surfaces&lt;/a&gt;".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-7328078540205570394?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/7328078540205570394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/03/identifying-network-ports-in-linux.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/7328078540205570394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/7328078540205570394'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/03/identifying-network-ports-in-linux.html' title='Identifying Network Ports in Linux'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-9043348848095648633</id><published>2010-02-01T13:41:00.074-05:00</published><updated>2010-03-31T13:51:12.396-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='openSUSE and Novell SUSE'/><category scheme='http://www.blogger.com/atom/ns#' term='CIS'/><title type='text'>Disabling USB Thumbdrives in openSUSE 11</title><content type='html'>&lt;img style="border:none;float:right; margin:0 0 10px 10px;width: 220px;" src="http://1.bp.blogspot.com/_EACT8Hhim20/S2cgrdri05I/AAAAAAAAAKA/I8DOQSrHDcI/s320/P2010003.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5433347406519522194" /&gt;&lt;p&gt;Disabling the auto-mounting and restricting the use of &lt;a href="http://en.wikipedia.org/wiki/USB_flash_drive" target="_new"&gt;USB thumbdrives&lt;/a&gt; (a.k.a., &lt;span style="font-style:italic;"&gt;flash drives&lt;/span&gt;) in Novell&amp;reg; SUSE&amp;reg; Linux 11 and openSUSE&amp;reg; Linux 11 is easy.&lt;/p&gt;&lt;p&gt;We want to disable USB storage devices and permit other USB devices such as the mouse and keyboard. To do this, we&amp;rsquo;ll remove the USB storage support module from the kernel using &lt;a href="http://en.wikipedia.org/wiki/Modprobe" target="_blank"&gt;modprobe&lt;/a&gt;. Edit the &lt;tt&gt;/etc/modeprobe.conf&lt;/tt&gt; file and add the following line to the end of the file:&lt;/p&gt;
&lt;div style="width: 400px;"&gt;&lt;pre&gt;remove usb-storage /sbin/modprobe -f usb-storage&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;On a single system, this is a simple edit but it will become cumbersome to configure many different systems. Security Blanket&amp;reg; Enterprise Edition automates this configuration on Novell&amp;reg; SUSE&amp;reg; &amp;amp; &lt;a target="_blank" href="http://www.opensuse.org/"&gt;openSUSE&amp;reg;&lt;/a&gt;, &lt;a target="_blank" href="http://fedoraproject.org/"&gt;Fedora&amp;trade;&lt;/a&gt;, &lt;a target="_blank" href="http://www.redhat.com/"&gt;Red Hat&amp;reg;&lt;/a&gt;, &lt;a href="http://www.oracle.com/us/technologies/linux/index.htm" target="_new"&gt;Oracle&amp;reg; Enterprise Linux&lt;/a&gt;, &lt;a href="http://www.centos.org/" target="_blank"&gt;CentOS&lt;/a&gt;, and &lt;a target="_blank" href="http://www.sun.com/software/solaris/"&gt;Solaris&amp;trade;&lt;/a&gt;&amp;mdash;all through the same, single policy. Here is a video tutorial on how to create and implement such a policy:&lt;/p&gt;
&lt;object width="340" height="285"&gt;&lt;param name="movie" value="http://www.youtube.com/v/R-FOSp1EoNQ&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0x3a3a3a&amp;color2=0x999999&amp;border=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/R-FOSp1EoNQ&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0x3a3a3a&amp;color2=0x999999&amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="340" height="285"&gt;&lt;/embed&gt;&lt;/object&gt;

&lt;p&gt;Personally, I love USB thumbdrives but many security guidelines recommend disabling them. Besides a classified environment, it might make sense to deploy this technique on appliances and desktops shared by many people. If you don&amp;rsquo;t disable them, at least consider using &lt;a href="http://en.opensuse.org/Encrypted_Filesystems" target="_blank"&gt;built-in file system encryption&lt;/a&gt; or use an &lt;a href="https://www.ironkey.com/"&gt;IronKey&lt;/a&gt;. Either way, remember that good physical and personnel security is always a &lt;span style="font-weight:bold;"&gt;must&lt;/span&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-9043348848095648633?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/9043348848095648633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/02/disabling-usb-thumbdrives-in-opensuse.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/9043348848095648633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/9043348848095648633'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/02/disabling-usb-thumbdrives-in-opensuse.html' title='Disabling USB Thumbdrives in openSUSE 11'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_EACT8Hhim20/S2cgrdri05I/AAAAAAAAAKA/I8DOQSrHDcI/s72-c/P2010003.JPG' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-2591245829991403063</id><published>2010-01-25T09:53:00.016-05:00</published><updated>2010-03-31T13:33:59.605-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DISA UNIX STIG'/><title type='text'>Performing a Quick Scan</title><content type='html'>&lt;p&gt;Assessing a Linux system&amp;rsquo;s security against the DISA UNIX STIG is quick and easy with Security Blanket. In addition to scanning, you can even apply the profile to configure the system to meet the guidelines.&lt;/p&gt;

&lt;p&gt;In November 2009, I posted a &lt;a href="http://tcs-security-blanket.blogspot.com/2009/11/version-40-sneak-preview-building.html"&gt;sneak preview&lt;/a&gt; of Security Blanket v4.0. Since then, the product was released. I&amp;rsquo;ve been busy authoring white papers, conducting research, and working with customers. Now that I have more time to better maintain this blog, look for a series of tutorial videos demonstrating Security Blanket&amp;rsquo;s power.&lt;/p&gt;

&lt;p&gt;I recorded this video using &lt;a href="http://live.gnome.org/Istanbul"&gt;Istanbul&lt;/a&gt; and Firefox on my Fedora 10 desktop. Great job to all of the Istanbul and Firefox developers—the combination of these tools makes my life easy!&lt;/p&gt;

&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Wvcigjg80bg&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Wvcigjg80bg&amp;hl=en_US&amp;fs=1&amp;hd=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;

&lt;p&gt;On March 23, 2010, check out the the free webcast with SANS: &amp;ldquo;&lt;a href="https://www.sans.org/webcasts/automated-operating-system-lockdown-security-blanket-40-review-93054"&gt;Analyst Webcast: Automated Operating System Lockdown: Security Blanket 4.0 Review&lt;/a&gt;.&amp;rdquo;&lt;/p&gt;

&lt;p&gt;If there are other features of the product you&amp;rsquo;d like to see, add a comment to this post or drop us an email at &lt;a href="mailto:SecurityBlanket@TrustedCS.com"&gt;SecurityBlanket@TrustedCS.com&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-2591245829991403063?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/2591245829991403063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/01/performing-quick-scan.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/2591245829991403063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/2591245829991403063'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2010/01/performing-quick-scan.html' title='Performing a Quick Scan'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-5997671207536268901</id><published>2010-01-04T13:23:00.008-05:00</published><updated>2010-03-31T13:33:59.606-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CAG'/><title type='text'>Lock Down: Seeing is Believing</title><content type='html'>&lt;p&gt;WHEN IT COMES TO SECURITY SOFTWARE, SEEING IS BELIEVING. After reading &lt;a href="http://www.sans.org/newsletters/newsbites/newsbites.php?vol=11&amp;issue=101#sID200"&gt;SANS NewsBites - Volume: XI, Issue: 101&lt;/a&gt;, I was shocked and angered to learn that U.S. taxpayers paid $30 million for software that didn't even work!&lt;/p&gt;
&lt;blockquote&gt;
A self-proclaimed software programmer who convinced the CIA that he had developed software capable of deciphering hidden messages in Al Jazeera broadcasts appears to have been responsible for an elevation in the national security level in late 2003, causing the grounding of international flights and the evacuation of the Metropolitan Museum of Art. Dennis Montgomery managed to convince a CIA Directorate of Science and Technology employee that his technology and the information it generated were credible. The information was passed to top government officials. Only later did it become evident that Montgomery had not shared his algorithms with anybody in the Government, nor was anyone in the government clear about how the information was obtained. Montgomery also reportedly received a no-bid US $30 million contract for "compression" and "automatic target recognition" technology that he claimed could analyze surveillance video from drones and identify weapons in people's hands. A man who used to work with Montgomery says he helped fake about 40 demonstrations of the software. (See &lt;a href="http://www.wired.com/threatlevel/2009/12/montgomery-2"&gt;http://www.wired.com/threatlevel/2009/12/montgomery-2&lt;/a&gt;.)
&lt;/blockquote&gt;

&lt;p&gt;The Security Blanket development team has worked hard to build a quality product which system administrators want and need. We get positive feedback from our customers all the time as well as enhancement requests. But don&amp;rsquo;t take &lt;span style="font-weight:bold;"&gt;our&lt;/span&gt; word for it&amp;mdash;our customers have told SANS that Security Blanket automates a number of the &amp;ldquo;Twenty Critical Security Controls for Effective Cyber Defense&amp;rdquo;. As a result, SANS has placed Security Blanket on their &lt;a href="http://www.sans.org/critical-security-controls/user-tools.php"&gt;User Vetted Tools&lt;/a&gt; list.&lt;/p&gt;

&lt;p&gt;Sure, we&amp;rsquo;ve got numerous customer testimonials we could post on a web page or place in marketing brochures. We do demonstrations at trade shows and have hosted webinars on the product. However, there is nothing like seeing a product run on your own system so, we encourage you to try Security Blanket for free. That&amp;rsquo;s right&amp;mdash;get a trial of our product for free and run it on your system. &lt;/p&gt;

&lt;p&gt;For a trial with basic features, go &lt;a href="http://www.trustedcs.com/SecurityBlanket/SecurityBlanket-Try-Out.html"&gt;here&lt;/a&gt;. For a full-featured trial, send a request to &lt;a href="mailto:SecurityBlanket@TrustedCS.com"&gt;SecurityBlanket@TrustedCS.com&lt;/a&gt; or call 1-443-255-5454.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-5997671207536268901?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/5997671207536268901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2009/12/lock-down-seeing-is-believing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/5997671207536268901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/5997671207536268901'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2009/12/lock-down-seeing-is-believing.html' title='Lock Down: Seeing is Believing'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-930750861158437616</id><published>2009-12-09T09:45:00.066-05:00</published><updated>2010-03-31T13:33:59.607-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DISA UNIX STIG'/><title type='text'>DISA Unix SRR Vulnerability</title><content type='html'>&lt;p&gt;&amp;ldquo;U.S. Defense Information Systems Agency (DISA) Unix Security Readiness Review (SRR) root compromise&amp;rdquo; vulnerability was reported to the &lt;a href="http://www.cert.org/certcc.html" target="_new" title="Go to CERT/CC's website"&gt;CERT Coordination Center&lt;/a&gt; September 21, 2009 and assigned number &lt;a target="_new" title="View the original vulnerability note" href="http://seclists.org/bugtraq/2009/Dec/34"&gt;#433821&lt;/a&gt;. On December 3, 2009, the U.S. Computer Emergency Response Team (US-CERT) made it &lt;a target="_new" title="View US-CERT's Report" href="http://www.kb.cert.org/vuls/id/433821"&gt;publicly available&lt;/a&gt;. It was assigned &lt;a title="View NVD's CVE Entry" target="_new" href="http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2009-4211"&gt;CVE-2009-4211&lt;/a&gt; on December 4, 2009 and placed in the National Vulnerability Database. However, the CVE is a bit misleading because it only identifies Solaris 10 x86 as vulnerable. The original vulnerability report states, &amp;ldquo;It was tested on Solaris/x86 only but is expected to be applicable to all Unix/Linux versions supported by the software.&amp;rdquo;&lt;/p&gt;

&lt;p&gt;On December 6, 2009, the &lt;a href="http://iase.disa.mil/" title="Go to DISA IASE/FSO Website" target="_new"&gt;DISA Field Security Office&lt;/a&gt; sent an email requesting organizations to &lt;span style="font-weight:bold;"&gt;not&lt;/span&gt; use the SRR scripts until the problem has been corrected. Below is a copy of the email our team received:&lt;/p&gt;

&lt;pre&gt;-----Original Message-----
From: XXXXX, XXXXXXXXXXX X CTR DISA FSO
[mailto:xxxxxxxx@disa.mil] On Behalf Of IASE
Sent: Sunday, December 06, 2009 2:27 PM
Subject: Temporary Removal of UNIX SRR Scripts (UNCLASSIFIED)

&lt;span style="color: green"&gt;Classification:  UNCLASSIFIED
Caveats: NONE&lt;/span&gt;

Due to an issue discovered with the UNIX SRR scripts, we ask 
that you immediately stop running any version of the UNIX 
scripts (Oct 2009 or older).  An updated version will be 
made available soon and information on how to access the 
updates will be provided.

&lt;span style="color: green"&gt;Classification:  UNCLASSIFIED
Caveats: NONE&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Just within the last week or so, I have seen a media frenzy and a wave of blogposts and reposts of information related to the issue. Unfortunately, some of the content has been modified which has lead to further confusion. So, I&amp;rsquo;d like to take a deeper look at the issue and and discuss some possible things to mitigate the risk. Let&amp;rsquo;s start by examining the executive summary of the vulnerability report:&lt;/p&gt;
&lt;blockquote&gt;&amp;ldquo;Unprivileged local users can obtain root access on Unix systems where the DISA SRR scripts are run.  If a remote user can introduce a file into the filesystem (e.g. anonymous ftp, http upload, cdrom, samba share, etc.), root access may be obtained by remote, and potentially anonymous, users.&amp;rdquo;&lt;/blockquote&gt;

&lt;dl&gt;

&lt;dt&gt;First of all, what is the DISA Unix SRR?&lt;/dt&gt;
&lt;dd&gt;&amp;ldquo;The U.S. Defense Information Systems Agency (DISA) publishes Security Readiness Review scripts (SRRs) to ensure systems and software meet security baselines required by the Department of Defense. The SRRs are commonly run on military systems and DISA makes them available to other government agencies and the general public (at their own risk) at &lt;a target="_new" href="http://iase.disa.mil/stigs/stig/index.html"&gt;http://iase.disa.mil/stigs/stig/index.html&lt;/a&gt;.&amp;rdquo;&lt;/dd&gt;

&lt;dt&gt;What do they mean by &amp;ldquo;If a remote user can introduce a file into the filesystem&amp;hellip;&amp;rdquo;?&lt;/dt&gt;
&lt;dd&gt;If the server is configured to use applications such as Samba, a user can save files on the server with any name they choose. If the server was configured with a web application or an FTP server, the user might be able to save a file on the server with any name they choose.&lt;/dd&gt;

&lt;dt&gt;How could running the SRR scripts make my systems vulnerable?&lt;/dt&gt;
&lt;dd&gt;The SRR scripts take an inventory of all files on the system. The scripts are interested in which versions of executables reside on your system to include &amp;lsquo;java&amp;rsquo;, &amp;lsquo;snort&amp;rsquo;, and &amp;lsquo;php&amp;rsquo;. So, when the SRR scripts find such files, it executes them with an argument to report their version (i.e., php -v). Since the SRR scripts are always run as root, the files are executed with root privileges. &lt;/dd&gt;
&lt;/dl&gt;

&lt;p&gt;So, let&amp;rsquo;s consider an &lt;span style="font-style:italic;"&gt;insider threat&lt;/span&gt; scenario in which &lt;a target="_new" href="http://www.samba.org/"&gt;Samba&lt;/a&gt; is used on a Linux-based file server. Samba provides file shares to its internal employees&amp;mdash;these shares appear as drive &lt;tt&gt;Z:\&lt;/tt&gt; on their Microsoft Windows desktop. A user can simply drag-and-drop any file they wish into their share (&lt;tt&gt;Z:\&lt;/tt&gt;). If the SRR scripts found a file named &amp;lsquo;php&amp;rsquo; in John Q. Public&amp;rsquo;s home directory which he created, the SRR script would execute the command as root. The SRR would expect output from the command (&lt;tt&gt;/home/jqpublic/php -v&lt;/tt&gt;) to be something like:&lt;/p&gt;
&lt;pre&gt;PHP 5.2.9 (cli) (built: Apr 17 2009 03:29:14) 
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies&lt;/pre&gt;

&lt;p&gt;The command may report the above to avoid detection and it may also do some very malicious things to your system. &lt;/p&gt;

&lt;p&gt;Executing a command to determine its version during a scan is a lot like placing your hand on a stove to see if it is hot rather than checking the stove&amp;rsquo;s gauges first. Almost all modern operating systems deploy software in the form of packages. When the package is installed, it extracts and copies libraries, configuration files, and executables to their appropriate location within the operating system. The package is also registered with the operating system and can be queried to determine the version as well as which files were included in the package.&lt;/p&gt;

&lt;p style="color: red; border-top: 1px solid red; border-bottom: 1px solid red"&gt;The following techniques are presented for discussion purposes only. It is strongly recommended you follow the DISA FSO&amp;rsquo;s recommendation of not running the SRR scripts until a fix is provided.&lt;/p&gt;

&lt;p&gt;Since packages can only be installed as root, consider the following questions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Did you receive the package from a trusted source? Did you verify the package&amp;rsquo;s signature before installing it?&lt;/li&gt;
&lt;li&gt;If a command is found on the system, does it belong to a package? If so, has the file changed since it was installed?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To find out if a file was installed as part of a package, you can query the package database in Linux with the &lt;a target="_new" title="View the rpm command's manual page" href="http://www.rpm.org/max-rpm/rpm.8.html"&gt;rpm(8)&lt;/a&gt; command as follows:&lt;/p&gt;
&lt;pre&gt;# &lt;b&gt;/bin/rpm -q --file /usr/bin/php&lt;/b&gt;
php-cli-5.2.9-2.fc10.x86_64

# &lt;b&gt;/bin/rpm -q --file /home/jqpublic/php&lt;/b&gt;
file /home/jqpublic/php is not owned by any package
# &lt;b&gt;echo $?&lt;/b&gt;
1&lt;/pre&gt;

&lt;p&gt;In the above example, you can see that &lt;tt&gt;/usr/bin/php&lt;/tt&gt; belongs to the &amp;lsquo;php-cli&amp;rsquo; but the &lt;tt&gt;/home/jqpublic/php&lt;/tt&gt; does not belong to any package. Also, note the &lt;a target="_new" title="What is a return code?" href="http://en.wikipedia.org/wiki/Exit_status"&gt;return code&lt;/a&gt; of the &lt;b&gt;rpm&lt;/b&gt; command ($?) was 1. &lt;span style="font-weight:bold;"&gt;When the file belongs to a package, the return code will be 0&lt;/span&gt;.&lt;/p&gt;

&lt;p&gt;You can also query the package database to obtain the version:&lt;/p&gt;
&lt;pre&gt;# &lt;b&gt;/bin/rpm -q php-cli --qf "%{VERSION}-%{RELEASE}\n"&lt;/b&gt;
5.2.9-2.fc10&lt;/pre&gt;

&lt;p&gt;Any command not part of a package should be considered suspect. And if the command is part of a package, you want to make sure that the file has not changed since it was installed. When the package was installed, it also registered information about the files including &lt;a target="_new" title="What is MD5?" href="http://en.wikipedia.org/wiki/MD5"&gt;MD5 digest&lt;/a&gt;. So, if you used the -V option you can verify a package:&lt;/p&gt;

&lt;pre&gt;# &lt;b&gt;/bin/rpm -V php-cli; echo $?&lt;/b&gt;
0&lt;/pre&gt;

&lt;p&gt;The return code of the command was zero indicating the package was still intact. I added a single space character in a comment line of a Python script and verified the &amp;lsquo;python&amp;rsquo; package:&lt;/p&gt;
&lt;pre&gt;# &lt;b&gt;/bin/rpm -V python; echo $?&lt;/b&gt;
S.5....T    /usr/lib64/python2.5/xmlrpclib.py
1&lt;/pre&gt;
&lt;p&gt;It reports that the file size (S), the MD5 checsum (5), and the modification time (T) all differ from when the package was installed.&lt;/p&gt;

&lt;p&gt;In Solaris, to determine if a file belongs to a package the &lt;a href="http://docs.sun.com/app/docs/doc/816-5166/pkgchk-1m?a=view" target="_new" title="View pkghck's manual page"&gt;pkgchk(1M)&lt;/a&gt; command could be used. For example, does &lt;tt&gt;/usr/bin/perl&lt;/tt&gt; belong to any package:&lt;/p&gt;
&lt;pre&gt;# &lt;b&gt;/usr/sbin/pkgchk -l -p /usr/bin/perl&lt;/b&gt;
Pathname: /usr/bin/perl
Type: symbolic link
Source of link: ../perl5/5.8.4/bin/perl
Referenced by the following packages:
        SUNWperl584core
Current status: installed&lt;/pre&gt;

&lt;p&gt;To tie these techniques together here is an example &lt;span style="font-weight:bold;"&gt;Linux&lt;/span&gt; script which searches your system for the commands identified in the vulnerability. It then reports whether it is part of a package, verifies the package integrity, and uses the &lt;a target="_new" title="View the utility's manual page" href="http://linux.die.net/man/1/file"&gt;file(1)&lt;/a&gt; utility to try and determine what type of file it is.&lt;/p&gt;

&lt;!-- HTML generated using hilite.me --&gt;
&lt;div style="overflow:auto;width:auto;color:black;background:white;border:solid #a19670;border-width:.1em .1em .1em .8em;padding:.2em .6em;"&gt;&lt;pre style="margin: 0; border: none; background:white; font-family: monospace"&gt;&lt;span style="color: #408080; font-style: italic"&gt;#!/bin/bash&lt;/span&gt;

&lt;span style="color: #19177C"&gt;PATH&lt;/span&gt;&lt;span style="color: #666666"&gt;=&lt;/span&gt;/bin:/usr/bin:/usr/sbin
&lt;span style="color: #008000"&gt;export &lt;/span&gt;PATH

&lt;span style="color: #008000; font-weight: bold"&gt;if&lt;/span&gt; &lt;span style="color: #666666"&gt;[&lt;/span&gt; &lt;span style="color: #BA2121"&gt;&amp;quot;`uname -s`&amp;quot;&lt;/span&gt; !&lt;span style="color: #666666"&gt;=&lt;/span&gt; &lt;span style="color: #BA2121"&gt;&amp;quot;Linux&amp;quot;&lt;/span&gt; &lt;span style="color: #666666"&gt;]&lt;/span&gt;; &lt;span style="color: #008000; font-weight: bold"&gt;then&lt;/span&gt;
&lt;span style="color: #008000; font-weight: bold"&gt;    &lt;/span&gt;&lt;span style="color: #008000"&gt;echo&lt;/span&gt; &lt;span style="color: #BA2121"&gt;&amp;quot;Sorry, script written for Linux.&amp;quot;&lt;/span&gt;
    &lt;span style="color: #008000"&gt;exit &lt;/span&gt;1
&lt;span style="color: #008000; font-weight: bold"&gt;fi&lt;/span&gt;
&lt;span style="color: #008000; font-weight: bold"&gt;if&lt;/span&gt; &lt;span style="color: #666666"&gt;[&lt;/span&gt; &lt;span style="color: #BA2121"&gt;&amp;quot;`id -u`&amp;quot;&lt;/span&gt; -ne 0 &lt;span style="color: #666666"&gt;]&lt;/span&gt;; &lt;span style="color: #008000; font-weight: bold"&gt;then&lt;/span&gt;
&lt;span style="color: #008000; font-weight: bold"&gt;    &lt;/span&gt;&lt;span style="color: #008000"&gt;echo&lt;/span&gt; &lt;span style="color: #BA2121"&gt;&amp;quot;Sorry, you must run this script as root&amp;quot;&lt;/span&gt;   
    &lt;span style="color: #008000"&gt;exit &lt;/span&gt;1
&lt;span style="color: #008000; font-weight: bold"&gt;fi&lt;/span&gt;


&lt;span style="color: #19177C"&gt;IFS&lt;/span&gt;&lt;span style="color: #666666"&gt;=&lt;/span&gt;&lt;span style="color: #008000; font-weight: bold"&gt;$(&lt;/span&gt;&lt;span style="color: #008000"&gt;echo&lt;/span&gt; -en &lt;span style="color: #BA2121"&gt;&amp;quot;\n\b&amp;quot;&lt;/span&gt;&lt;span style="color: #008000; font-weight: bold"&gt;)&lt;/span&gt;
&lt;span style="color: #008000; font-weight: bold"&gt;for &lt;/span&gt;tFile in &lt;span style="color: #BA2121"&gt;`&lt;/span&gt;find / -regextype posix-egrep &lt;span style="color: #BB6622; font-weight: bold"&gt;\&lt;/span&gt;
     -regex &lt;span style="color: #BA2121"&gt;&amp;#39;.*/(java|openssl|php|snort|tshark|vncserver|wireshark)$&amp;#39;&lt;/span&gt; &lt;span style="color: #BB6622; font-weight: bold"&gt;\&lt;/span&gt;
     -type f -print&lt;span style="color: #BA2121"&gt;`&lt;/span&gt;
&lt;span style="color: #008000; font-weight: bold"&gt;do&lt;/span&gt;
&lt;span style="color: #008000; font-weight: bold"&gt;    &lt;/span&gt;&lt;span style="color: #008000"&gt;echo&lt;/span&gt; &lt;span style="color: #19177C"&gt;$tFile&lt;/span&gt;
    &lt;span style="color: #008000"&gt;printf&lt;/span&gt; &lt;span style="color: #BA2121"&gt;&amp;quot;: Package - &amp;quot;&lt;/span&gt;
    &lt;span style="color: #19177C"&gt;pkginfo&lt;/span&gt;&lt;span style="color: #666666"&gt;=&lt;/span&gt;&lt;span style="color: #BA2121"&gt;&amp;quot;`rpm -q --file $tFile --qf \&amp;quot;%{NAME}|%{VERSION}-%{RELEASE}\&amp;quot;`&amp;quot;&lt;/span&gt;
    &lt;span style="color: #008000; font-weight: bold"&gt;if&lt;/span&gt; &lt;span style="color: #666666"&gt;[&lt;/span&gt; &lt;span style="color: #19177C"&gt;$?&lt;/span&gt; -eq 0 &lt;span style="color: #666666"&gt;]&lt;/span&gt;; &lt;span style="color: #008000; font-weight: bold"&gt;then &lt;/span&gt;
&lt;span style="color: #008000; font-weight: bold"&gt;        &lt;/span&gt;&lt;span style="color: #19177C"&gt;pkgName&lt;/span&gt;&lt;span style="color: #666666"&gt;=&lt;/span&gt;&lt;span style="color: #BA2121"&gt;`&lt;/span&gt;&lt;span style="color: #008000"&gt;echo&lt;/span&gt; &lt;span style="color: #19177C"&gt;$pkginfo&lt;/span&gt; |cut -f1 -d&lt;span style="color: #BA2121"&gt;&amp;quot;|&amp;quot;`&lt;/span&gt;
        &lt;span style="color: #19177C"&gt;pkgVers&lt;/span&gt;&lt;span style="color: #666666"&gt;=&lt;/span&gt;&lt;span style="color: #BA2121"&gt;`&lt;/span&gt;&lt;span style="color: #008000"&gt;echo&lt;/span&gt; &lt;span style="color: #19177C"&gt;$pkginfo&lt;/span&gt; |cut -f2 -d&lt;span style="color: #BA2121"&gt;&amp;quot;|&amp;quot;`&lt;/span&gt;
        &lt;span style="color: #008000"&gt;printf&lt;/span&gt; &lt;span style="color: #BA2121"&gt;&amp;quot;%s (%s)\n&amp;quot;&lt;/span&gt; &lt;span style="color: #19177C"&gt;$pkgName&lt;/span&gt; &lt;span style="color: #19177C"&gt;$pkgVers&lt;/span&gt;
        &lt;span style="color: #008000"&gt;printf&lt;/span&gt; &lt;span style="color: #BA2121"&gt;&amp;quot;: Integrity Check - &amp;quot;&lt;/span&gt;
        rpm -V &lt;span style="color: #19177C"&gt;$pkgName&lt;/span&gt;
        &lt;span style="color: #008000; font-weight: bold"&gt;if&lt;/span&gt; &lt;span style="color: #666666"&gt;[&lt;/span&gt; &lt;span style="color: #19177C"&gt;$?&lt;/span&gt; -eq 0 &lt;span style="color: #666666"&gt;]&lt;/span&gt;; &lt;span style="color: #008000; font-weight: bold"&gt;then&lt;/span&gt;
&lt;span style="color: #008000; font-weight: bold"&gt;            &lt;/span&gt;&lt;span style="color: #008000"&gt;echo&lt;/span&gt; &lt;span style="color: #BA2121"&gt;&amp;quot;OK&amp;quot;&lt;/span&gt;
        &lt;span style="color: #008000; font-weight: bold"&gt;fi&lt;/span&gt;
&lt;span style="color: #008000; font-weight: bold"&gt;    else&lt;/span&gt;
&lt;span style="color: #008000; font-weight: bold"&gt;        &lt;/span&gt;&lt;span style="color: #008000"&gt;echo&lt;/span&gt; &lt;span style="color: #BA2121"&gt;&amp;quot;No associated package found&amp;quot;&lt;/span&gt;
    &lt;span style="color: #008000; font-weight: bold"&gt;fi&lt;/span&gt;
&lt;span style="color: #008000; font-weight: bold"&gt;    &lt;/span&gt;&lt;span style="color: #008000"&gt;printf&lt;/span&gt; &lt;span style="color: #BA2121"&gt;&amp;quot;: File type - &amp;quot;&lt;/span&gt; 
    file -b &lt;span style="color: #19177C"&gt;$tFile&lt;/span&gt;
    &lt;span style="color: #008000"&gt;echo &lt;/span&gt;

&lt;span style="color: #008000; font-weight: bold"&gt;done&lt;/span&gt;
&lt;span style="color: #19177C"&gt;IFS&lt;/span&gt;&lt;span style="color: #666666"&gt;=&lt;/span&gt;&lt;span style="color: #BA2121"&gt;&amp;quot; &amp;quot;&lt;/span&gt;
&lt;span style="color: #008000"&gt;echo&lt;/span&gt;
&lt;span style="color: #008000"&gt;exit &lt;/span&gt;0
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Another thing to consider is the permissions of such commands. If a command has world-writeable permissions, any user can overwrite its contents. There are several guidelines provided by DISA and other organizations.&lt;/p&gt;

&lt;p&gt;Finally, it is strongly recommended that system administrators routinely &lt;a href="http://tcs-security-blanket.blogspot.com/2009/08/what-is-baseline.html" title="What is a baseline?" target="_new"&gt;baseline&lt;/a&gt; their systems to identify new or modified packages and files. &lt;a href="http://www.trustedcs.com/SecurityBlanket.html" target="_new"&gt;Security Blanket&lt;/a&gt; can assist with baselining, restricting file permissions, and other aspects of security. It is important to note that &lt;a target="_new" href="http://www.trustedcs.com/SecurityBlanket.html"&gt;Security Blanket&lt;/a&gt; uses this methodology in determining software versions; it actually accesses the package database via an application programming interface in lieu of running shell commands. For more information, check out the following links:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a target="_new" href="http://tcs-security-blanket.blogspot.com/2009/08/what-is-baseline.html"&gt;What is a baseline?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target="_new" href="http://www.trustedcs.com/documents/SecurityBlanket_Modules.pdf"&gt;Security Blanket Modules Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target="_new" href="http://tcs-security-blanket.blogspot.com/2009/07/checking-versions-of-installed-packages.html"&gt;Checking Versions of Installed Packages with Python&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target="_new" href="http://gcn.com/articles/2009/12/08/disa-rss-vulnerability-120809.aspx"&gt;&lt;i&gt;&amp;ldquo;Vulnerability in DISA security scripts could leave systems at risk&amp;rdquo;&lt;/i&gt;, Government Computer News (GCN), December 8, 2009&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-930750861158437616?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/930750861158437616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2009/12/disa-unix-srr-vulnerability.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/930750861158437616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/930750861158437616'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2009/12/disa-unix-srr-vulnerability.html' title='DISA Unix SRR Vulnerability'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-1973729843966018115</id><published>2009-11-24T07:16:00.112-05:00</published><updated>2010-03-31T13:33:59.608-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='openSUSE and Novell SUSE'/><category scheme='http://www.blogger.com/atom/ns#' term='NISPOM'/><category scheme='http://www.blogger.com/atom/ns#' term='NERC'/><category scheme='http://www.blogger.com/atom/ns#' term='PCI DSS'/><category scheme='http://www.blogger.com/atom/ns#' term='DISA UNIX STIG'/><category scheme='http://www.blogger.com/atom/ns#' term='DCID'/><title type='text'>How can Security Blanket help with Linux lock down?</title><content type='html'>&lt;p&gt;Performing &amp;ldquo;lock down&amp;rdquo; on openSUSE, Red Hat, Fedora, and CentOS Linux is often misunderstood. Even more misunderstood is Security Blanket&amp;rsquo;s role in the lock down process.&lt;/p&gt;

&lt;p&gt;To put you in the right frame of mind, consider the following questions:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;What exactly am I trying to protect? Really, think about this question before you just yell out something generic like &amp;ldquo;My Webserver&amp;rdquo;. What kind of Web server is it? What kind information does it serve? What else must run on this machine?&lt;/li&gt;
&lt;li&gt;What and how do I configure the operating system and applications to meet the goals I&amp;rsquo;ve identified?&lt;/li&gt;
&lt;li&gt;How do I implement these configuration changes consistently across all platforms, regardless of the operating system? How I do ensure that it stays that way?&lt;/li&gt;
&lt;li&gt;How do I ensure that the configuration changes I made are actually protecting the system the way I want?&lt;/li&gt;
&lt;/ol&gt; 

&lt;p&gt;Too often, people jump to question number two. Even worse, I&amp;rsquo;ve seen people immediately downloading &amp;ldquo;How-tos&amp;rdquo;, lock down recipes, and install new tools. Then once the&amp;rsquo;ve discovered what can be configured, they go back and define their security goals.&lt;/p&gt;

&lt;p&gt;Some people choose to install additional software such as &lt;a target="_new" href="http://www.grsecurity.net/"&gt;grsecurity&lt;/a&gt; or &lt;a target="_new" href="http://www.modsecurity.org/"&gt;ModSecurity&lt;/a&gt; for the &lt;a target="_new" href="http://httpd.apache.org/"&gt;Apache Web Server&lt;/a&gt;. However, &lt;a target="_new" href="http://www.trustedcs.com/SecurityBlanket.html"&gt;Security Blanket&lt;/a&gt; is focused on configuring what is already part of the operating system distribution.&lt;/p&gt;

&lt;p&gt;Security Blanket simply configures operating system features. For example, if you want to make sure that no file systems are mounted with the &lt;span style="font-weight:bold;"&gt;nosuid&lt;/span&gt; option, user accounts have a minimum password length of eight characters, and that certain services are turned off&amp;mdash;Security Blanket will configure these things for you. It also does do some low-level to middleware application settings such global &lt;a target="_new" href="http://en.wikipedia.org/wiki/PHP"&gt;PHP&lt;/a&gt; settings and &lt;a target="_new" href="http://en.wikipedia.org/wiki/Samba_(software)"&gt;Samba&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can easily reverse any changes that have been made and there is even a scan-only mode, called an &amp;ldquo;&lt;i&gt;assessment&lt;/i&gt;&amp;rdquo;. Checking, configuring, and reversing a setting in the operating system is performed by a Security Blanket module. Currently, there are about &lt;a target="_new" title="View Modules Guide" href="http://www.trustedcs.com/documents/SecurityBlanket_Modules.pdf"&gt;two hundred modules&lt;/a&gt; for you to choose from. Some modules accept parameters such as the module which configures the minimum password length. In Security Blanket terminology, a grouping or collection of modules is called a &amp;ldquo;profile&amp;rdquo;; which is used to implement and enforce your site security policy.&lt;/p&gt;

&lt;p&gt;Here is where it gets cool: when you build a profile, it can be applied to any of the supported operating systems. So, you could use your openSUSE profile on a Red Hat and Solaris platform, too. The module knows how to configure the underlying operating system and if it isn&amp;rsquo;t applicable, it will report not applicable. For example, there is a module to disable the &lt;a target="_new" href="http://linuxcommand.org/man_pages/kudzu8.html"&gt;Kudzu&lt;/a&gt; service but it isn&amp;rsquo;t applicable to Solaris.&lt;/p&gt;

&lt;p&gt;The modules will even check to see if a software package is installed and if it isn&amp;rsquo;t, it will report not applicable. For example, if you choose to disallow &amp;ldquo;guest ok&amp;rdquo; in Samba but Samba isn&amp;rsquo;t installed; it will only configure the machines which have Samba and the others will just be reported as not applicable.&lt;/p&gt;

&lt;p&gt;When it comes to disabling services, Security Blanket is aware of corresponding software packages and services for each operating system. For example, if you wanted to disable server-side &lt;a target="_new" href="http://en.wikipedia.org/wiki/Network_File_System_(protocol)"&gt;NFS&lt;/a&gt; services consider all of the different software package and service names:&lt;/p&gt;

&lt;table border="1"&gt;&lt;colgroup&gt;&lt;col /&gt;&lt;col /&gt;&lt;col /&gt;&lt;/colgroup&gt;
&lt;thead&gt;&lt;tr&gt;&lt;th&gt;OS&lt;/th&gt;&lt;th&gt;Package&lt;/th&gt;&lt;th&gt;Service Names&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody valign="middle"&gt;
&lt;tr&gt;
&lt;td valign="middle"&gt;Fedora 10 &amp;amp; 11&lt;/td&gt;
&lt;td rowspan="2" valign="middle"&gt;nfs-utils&lt;/td&gt;
&lt;td rowspan="2" valign="middle"&gt;nfs&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;&lt;td valign="middle"&gt;RHEL4 &amp;amp; 5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="middle"&gt;Solaris 10&lt;/td&gt;
&lt;td valign="middle"&gt;SUNWnfssr&lt;/td&gt;
&lt;td valign="middle"&gt;&lt;tt&gt;svc:/network/nfs/mapid:default&lt;br /&gt;
svc:/network/nfs/cbd:default&lt;br /&gt;
svc:/network/nfs/server:default&lt;/tt&gt;&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td valign="middle"&gt;SUSE 11&lt;/td&gt;
&lt;td valign="middle"&gt;nfs-kernel-server&lt;/td&gt;
&lt;td valign="middle"&gt;nfs&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;On Solaris systems, Security Blanket even uses &lt;a target="_new" href="http://en.wikipedia.org/wiki/Service_Management_Facility" title="Service Management Facility"&gt;SMF&lt;/a&gt; to manage the services.&lt;/p&gt;

&lt;h4&gt;Summary&lt;/h4&gt;
&lt;p&gt;You can create new security profiles based on proven industry standards or your own site security needs. When you create or select profiles, you are building a system security policy that contains modules with configured options. Security Blanket provides the following industry-standard profiles:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CIS Benchmarks - contains requirements from the Center for Internet Security (CIS) benchmarks.&lt;/li&gt;
&lt;li&gt;DCID - contains requirements from the Director of Central Intelligence Directives (DCID).&lt;/li&gt;
&lt;li&gt;DISA UNIX STIG - contains modules that address DISA UNIX Security Technical Implementation Guides (STIGs) security recommendations.&lt;/li&gt;
&lt;li&gt;FERC CIP - contains modules that address the Critical Infrastructure Protection (CIP) standards for electricity distributors.&lt;/li&gt;
&lt;li&gt;JAFAN - the Joint Air Force-Army-Navy (JAFAN) manual established the security policy and procedures for storing, processing, and communicating classified Department of Defence (DoD) Special Access Program (SAP) information in information systems.&lt;/li&gt;
&lt;li&gt;NISPOM - contains modules that address the National Industrial Security Program Operating Manual (NISPOM).&lt;/li&gt;
&lt;li&gt;PCI DSS - Payment Card Industry Security Standards Council includes members from Visa, MasterCard, American Express, Discover, and JCB International Credit Card Company. This council administers the Data Security Standard (DSS).&lt;/li&gt;
&lt;li&gt;Web Services Protection - contains modules that address standard security functionality to provide protection.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For more information on building profiles, see my previous &lt;a target="_new" href="http://tcs-security-blanket.blogspot.com/2009/11/version-40-sneak-preview-building.html"&gt;blog post&lt;/a&gt;.

&lt;p&gt;You can use Security Blanket&amp;rsquo;s enterprise console to centrally manage all of your systems. This includes remotely assessing, configuring, baselining, and storing your assessment and &lt;a href="http://tcs-security-blanket.blogspot.com/2009/08/what-is-baseline.html"&gt;baseline&lt;/a&gt; reports.&lt;/p&gt;

&lt;p&gt;The enterprise console has role based access controls so, you can grant your security officer permission to browse centrally located reports as well as identify which system administrators are allowed to actually configure the systems.&lt;/p&gt;

&lt;p style="color: blue; font-weight: bold"&gt;For more details on Security Blanket, plan on being part of the upcoming &lt;a href="http://gw1.vtrenz.net/?DL3RVREN83=clicksrc:technicalblog" target="_new"&gt;free webcast&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-1973729843966018115?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/1973729843966018115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2009/11/how-can-security-blanket-help-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/1973729843966018115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/1973729843966018115'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2009/11/how-can-security-blanket-help-with.html' title='How can Security Blanket help with Linux lock down?'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-1867074950914026008</id><published>2009-11-19T11:11:00.055-05:00</published><updated>2010-03-31T13:33:45.109-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JAFAN'/><category scheme='http://www.blogger.com/atom/ns#' term='openSUSE and Novell SUSE'/><category scheme='http://www.blogger.com/atom/ns#' term='NISPOM'/><category scheme='http://www.blogger.com/atom/ns#' term='FERC'/><category scheme='http://www.blogger.com/atom/ns#' term='CAG'/><category scheme='http://www.blogger.com/atom/ns#' term='PCI DSS'/><category scheme='http://www.blogger.com/atom/ns#' term='CPE'/><category scheme='http://www.blogger.com/atom/ns#' term='DISA UNIX STIG'/><category scheme='http://www.blogger.com/atom/ns#' term='DCID'/><title type='text'>Version 4.0 Sneak Preview - Building Profiles</title><content type='html'>&lt;p&gt;Security Blanket v4.0.0 will include lock down support for openSUSE 11, Novell SUSE 11, and Fedora 11. Additionally, our completely redesigned console streamlines the process of building complex profiles to satisfy your site&amp;rsquo;s security policy.&lt;/p&gt;

&lt;p&gt;For those of you who don&amp;rsquo;t know, &lt;a href="http://www.trustedcs.com/SecurityBlanket.html" target="_new"&gt;Security Blanket&lt;/a&gt; is an operating system hardening tool. Through a centralized web console, it enables you to periodically check and re-check the state of security in your enterprise-wide systems and apply changes by configuring the operating systems based on site security requirements.&lt;/p&gt;

&lt;p&gt;With a rich set of configuration options available for assessing the security state of your systems, Security Blanket assists you in defining and applying (configuring) security settings applicable to your systems.&lt;/p&gt;

&lt;p&gt;In this post, I will describe two key terms: &amp;ldquo;Profiles&amp;rdquo; and &amp;ldquo;Modules&amp;rdquo; as well as provide some screen shots to show how you can customize your profiles.&lt;/p&gt;

&lt;h4&gt;Terminology&lt;/h4&gt;
&lt;p style="font-weight: bold"&gt;Profiles&lt;/p&gt;
&lt;p style="padding-left: 2em"&gt;Profiles conveniently manage a collection of modules and their associated parameters. Security Blanket profiles are completely customizable, allowing you to use common tools across multiple systems such as larger enterprises. You can create new security profiles based on proven industry standards or your own site security needs. When you create or select profiles, you are building a system security policy that contains modules with configured options. Security Blanket provides the following industry-standard profiles:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CIS Benchmarks - contains requirements from the Center for Internet Security (CIS) benchmarks.&lt;/li&gt;
&lt;li&gt;DCID - contains requirements from the Director of Central Intelligence Directives (DCID).&lt;/li&gt;
&lt;li&gt;DISA UNIX STIG - contains modules that address DISA UNIX Security Technical Implementation Guides (STIGs) security recommendations.&lt;/li&gt;
&lt;li&gt;FERC CIP - contains modules that address the Critical Infrastructure Protection (CIP) standards for electricity distributors.&lt;/li&gt;
&lt;li&gt;JAFAN - the Joint Air Force-Army-Navy (JAFAN) manual established the security policy and procedures for storing, processing, and communicating classified Department of Defence (DoD) Special Access Program (SAP) information in information systems.&lt;/li&gt;
&lt;li&gt;NISPOM - contains modules that address the National Industrial Security Program Operating Manual (NISPOM).&lt;/li&gt;
&lt;li&gt;PCI DSS - Payment Card Industry Security Standards Council includes members from Visa, MasterCard, American Express, Discover, and JCB International Credit Card Company. This council administers the Data Security Standard (DSS).&lt;/li&gt;
&lt;li&gt;Web Services Protection - contains modules that address standard security functionality to provide protection.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="padding-left: 2em"&gt;Depending on the needs of your system, choose one of these industry-standard profiles and you can be confident that you are applying some of the best practices and security recommendations from the most well respected sources.&lt;/p&gt;

&lt;p style="font-weight: bold"&gt;Modules&lt;/p&gt;
&lt;p style="padding-left: 2em"&gt;Modules are the building blocks of security profiles within Security Blanket. Each module represents a specific security lock down procedure (which in turn represents one or more system configuration operations). Modules can perform operations that range from setting file permissions and adjusting password policy to altering core operating system behavior through the use of kernel options. Some modules have adjustable parameters, enabling you to modify the value (for example, &amp;ldquo;Password Policy Length Minimum&amp;rdquo;).&lt;/p&gt;

&lt;p style="padding-left: 2em"&gt;You can add modules or remove them from your profile. Even though you can remove a module from a profile, the module remains part of the pool. Modules with adjustable parameters allow you to modify their parameter values. Security Blanket provides you with the freedom to load a profile and run Security Blanket against modules instead of having to reconfigure the application each time it is executed.&lt;/p&gt;

&lt;h4&gt;Managing Profiles&lt;/h4&gt;
&lt;p&gt;From the main, &amp;ldquo;Profiles&amp;rdquo; page, you can manage all of your profiles:&lt;/p&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EACT8Hhim20/SwVxPiLXwsI/AAAAAAAAAJM/LqQ8ZBq0gUc/s1600/profile_page.png"&gt;&lt;img style="display:block; margin:0px auto 10px; cursor:pointer; text-align:center; cursor:hand;width: 320px; height: 150px;" src="http://1.bp.blogspot.com/_EACT8Hhim20/SwVxPiLXwsI/AAAAAAAAAJM/LqQ8ZBq0gUc/s320/profile_page.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5405851439414624962" /&gt;&lt;/a&gt;

&lt;p&gt;When modifying a profile, you can add or remove modules as well as change the parameters of modules you have already added.&lt;/p&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EACT8Hhim20/SwVxv2oe0_I/AAAAAAAAAJU/LqcbNs0H5JI/s1600/add_remove_modules_page.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 265px;" src="http://1.bp.blogspot.com/_EACT8Hhim20/SwVxv2oe0_I/AAAAAAAAAJU/LqcbNs0H5JI/s320/add_remove_modules_page.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5405851994661245938" /&gt;&lt;/a&gt;

&lt;p&gt;For example, if you click the &amp;ldquo;Modify&amp;rdquo; button for the &amp;ldquo;Password Policy Length Minimum&amp;rdquo; module you can change its parameter value:&lt;/p&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EACT8Hhim20/SwVybVUKUfI/AAAAAAAAAJc/Nd8dg3ZNr9U/s1600/modify_module_param.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 58px;" src="http://3.bp.blogspot.com/_EACT8Hhim20/SwVybVUKUfI/AAAAAAAAAJc/Nd8dg3ZNr9U/s320/modify_module_param.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5405852741631889906" /&gt;&lt;/a&gt;

&lt;p&gt;If you are creating a custom profile from scratch or using a variation of one of the industry standard profiles, it can be challenging to find the right modules. Security Blanket includes two-hundred some modules therefore, we have included a powerful search tool to find the right ones for your profile:&lt;/p&gt;
 
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_EACT8Hhim20/SwVy129BSGI/AAAAAAAAAJk/hXaK4CAQuKs/s1600/search_for_modules_page.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 160px;" src="http://4.bp.blogspot.com/_EACT8Hhim20/SwVy129BSGI/AAAAAAAAAJk/hXaK4CAQuKs/s320/search_for_modules_page.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5405853197338232930" /&gt;&lt;/a&gt;


&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EACT8Hhim20/SwVzDene3pI/AAAAAAAAAJs/6bmK6UypqXE/s1600/search_criteria.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 176px;" src="http://3.bp.blogspot.com/_EACT8Hhim20/SwVzDene3pI/AAAAAAAAAJs/6bmK6UypqXE/s320/search_criteria.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5405853431323614866" /&gt;&lt;/a&gt;

&lt;p&gt;
&lt;table summary="Search Criteria Options" border="1"&gt;
                      &lt;colgroup&gt;
                        &lt;col align="left" width="25%"/&gt;
                        &lt;col align="left" /&gt;
                      &lt;/colgroup&gt;
                      &lt;thead&gt;
                        &lt;tr&gt;
                          &lt;th align="left"&gt;Search Criteria Option&lt;/th&gt;
                          &lt;th align="left"&gt;Description&lt;/th&gt;
                        &lt;/tr&gt;
                      &lt;/thead&gt;
                      &lt;tbody&gt;
                        &lt;tr&gt;
                          &lt;td align="left"&gt;Word Search&lt;/td&gt;
                          &lt;td align="left"&gt;Use this field to enter key words that appear in the module description, or the module name.&lt;/td&gt;
                        &lt;/tr&gt;
                        &lt;tr&gt;
                          &lt;td align="left"&gt;Category&lt;/td&gt;
                          &lt;td align="left"&gt;Use this drop-down list to select a category under which the module falls. A category contains a collection of individual modules that are related by a common security category (such as Password Policy). In previous Security Blanket releases, these are referred to as "Module Groups".&lt;/td&gt;
                        &lt;/tr&gt;
                        &lt;tr&gt;
                          &lt;td align="left"&gt;Platform&lt;/td&gt;

                          &lt;td align="left"&gt;Use this drop-down list to select an application platform under which the module falls. &lt;ul type="disc"&gt;
&lt;li&gt;Common Platform Enumeration (CPE™) is a structured naming scheme for platforms.&lt;/li&gt;
&lt;li&gt;The asterisk (*) is a wild card, meaning all inclusive. For example, cpe:/a:apache:http_server:* indicates all Apache HTTP servers.&lt;/li&gt;
&lt;li&gt;Using &amp;ldquo;cpe:/o:redhat:fedora:10&amp;rdquo; as an example, the &amp;ldquo;o&amp;rdquo; stands for &amp;ldquo;operating system&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Using &amp;ldquo;cpe:/a:apache:http_server:*&amp;rdquo; as an example, the &amp;ldquo;a&amp;rdquo; stands for &amp;ldquo;application&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Refer to &lt;a class="ulink" href="http://cpe.mitre.org/specification/index.html" target="_top"&gt;http://cpe.mitre.org/specification/index.html&lt;/a&gt; for more information on CPEs.&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;
                        &lt;/tr&gt;
                        &lt;tr&gt;
                          &lt;td align="left"&gt;Compliancy&lt;/td&gt;
                          &lt;td align="left"&gt;Use this drop-down list to select a specific compliancy guideline for which the module satisfies.&lt;/td&gt;
                        &lt;/tr&gt;
                      &lt;/tbody&gt;
                    &lt;/table&gt;
&lt;/p&gt;
&lt;br/&gt;
&lt;h4&gt;Summary&lt;/h4&gt;
Security Blanket v4.0.0 is scheduled to be released in December 2009. Check out our &lt;a target="_new" href="http://gw1.vtrenz.net/?DL3RVREN83=clicksrc:technicalblog"&gt;free webinar on December 8 to demonstrate the product&lt;/a&gt;. If you have any questions, please send us an email at &lt;a href="mailto:SecurityBlanket@TrustedCS.com"&gt;SecurityBlanket@TrustedCS.com&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-1867074950914026008?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/1867074950914026008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2009/11/version-40-sneak-preview-building.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/1867074950914026008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/1867074950914026008'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2009/11/version-40-sneak-preview-building.html' title='Version 4.0 Sneak Preview - Building Profiles'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_EACT8Hhim20/SwVxPiLXwsI/AAAAAAAAAJM/LqQ8ZBq0gUc/s72-c/profile_page.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-5712121339820880057</id><published>2009-11-13T12:07:00.098-05:00</published><updated>2010-03-31T13:33:45.109-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='openSUSE and Novell SUSE'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Configure Linux Mozilla Firefox to Meet DISA UNIX STIG</title><content type='html'>&lt;p&gt;&lt;span style="font-variant: small-caps; font-size: 115%"&gt;Configuring Mozilla&lt;span class="shift"&gt;®&lt;/span&gt; Firefox&lt;span class="shift"&gt;®&lt;/span&gt; to Meet&lt;/span&gt; DISA UNIX STIG can be frustrating. If you&amp;rsquo;re using &lt;a href="http://www.mozilla.com/en-US/" target="_new"&gt;Mozilla® Firefox® v3&lt;/a&gt; on a Linux desktop such as &lt;a href="http://www.opensuse.org/" target="_new"&gt;openSUSE®&lt;/a&gt; or &lt;a href="http://www.redhat.com/" target="_new"&gt;Red Hat®&lt;/a&gt; and you&amp;rsquo;re required to follow &lt;a href="http://iase.disa.mil/stigs/index.html" target="_new"&gt;DISA&amp;rsquo;s guidelines&lt;/a&gt;, there are many changes you must make. If you&amp;rsquo;re the system administrator, you must ensure each user&amp;rsquo;s preferences are configured the same. To make matters worse, the guideline instructs you to use the graphical interface to check each browser setting of each user. This is just not practical if you have many users which are probably constantly undoing these annoying settings.&lt;/p&gt;

&lt;p&gt;When I began writing a Security Blanket® module to automate this process, I had to determine where the browser was storing its per-user configuration settings and what they were. I discovered that each user that had used Firefox®, a preferences file was created in their home directory (&lt;tt&gt;$HOME/.mozilla/firefox/*/prefs.js&lt;/tt&gt;).&lt;/p&gt;

&lt;p&gt;In order to determine the settings, I monitored the file as I used the graphical interface to make appropriate changes and then cross-referenced them with &lt;a href="http://www.mozilla.org/docs/"&gt;Mozilla&amp;rsquo;s documentation&lt;/a&gt;. For example, when I disabled JavaScript, the &lt;span style="font-weight:bold;"&gt;user_pref("javascript.enabled", false)&lt;/span&gt; line would be inserted or modified accordingly in the preferences file. &lt;/p&gt;

&lt;p&gt;The following is a list of DISA UNIX STIG line items and their associated Mozilla properties:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;GEN004040 - Browser Software Update Feature &lt;i&gt;(Mozilla property: app.update.auto&lt;/i&gt;)&lt;/li&gt;&lt;li&gt;GEN004100 - Browser Allows Active Scripting &lt;i&gt;(Mozilla properties: javascript.enabled &amp;amp; security.enable_java)&lt;/i&gt;&lt;/li&gt;&lt;li&gt;GEN004120 - Browser Data Redirection Warning &lt;i&gt;(Mozilla property: security.OSCP.enabled)&lt;/i&gt;&lt;/li&gt;&lt;li&gt;GEN004160 - Browser Certificate Warning &lt;i&gt;(Mozilla property: security.OSCP.enabled)&lt;/i&gt;&lt;/li&gt;&lt;li&gt;GEN004180 - Browser Home Page &lt;i&gt;(Mozilla property: browser.startup.homepage)&lt;/i&gt;&lt;/li&gt;&lt;li&gt;GEN004200 - Browser SSL Configuration &lt;i&gt;(Mozilla properties: security.enable_ssl2, security.enable_ssl3, &amp;amp; security.enable_tls)&lt;/i&gt;&lt;/li&gt;&lt;li&gt;GEN004260 - Browser Cookie Warning &lt;i&gt;(Mozilla property: network.cookie.cookieBehavior)&lt;/i&gt;&lt;/li&gt;&lt;li&gt;GEN004280 - Browser Form Data Warning &lt;i&gt;(Mozilla property: security.warn_submit_insecure)&lt;/i&gt;&lt;/li&gt;&lt;li&gt;GEN004300 - Browser Secure and Non-secure Content Warning &lt;i&gt;(Mozilla property: security.warn_viewing_mixed)&lt;/i&gt;&lt;/li&gt;&lt;li&gt;GEN004320 - Browser Leaving Encrypted Site Warning &lt;i&gt;(Mozilla properties: security.warn_leaving_secure &amp;amp; security.warn_entering_secure)&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;Next, I wanted to define a dictionary of the required settings and make only those settings in the preferences file; while preserving all other settings the user has chosen. Below is an example &lt;a href="http://www.python.org/" target="_new"&gt;Python (v2.4+)&lt;/a&gt; script to show how this can be done:&lt;/p&gt;
&lt;pre&gt;#!/usr/bin/env python
import os
import re
import sys
import pwd
import shutil

DIRLOC = '.mozilla/firefox'
PREFS  = 'prefs.js'

&lt;span style="color: blue"&gt;REQD_OPTS = { 'javascript.enabled' : 'false',
             'security.enable_java' : 'false',
             'security.OCSP.enabled' : '1',
             'browser.startup.homepage' : 'about:blank',
             'app.update.auto' : 'false',
             'security.enable_ssl2' : 'true',
             'security.enable_ssl3' : 'true',
             'security.enable_tls' : 'true',
             'network.cookie.cookieBehavior' : '2',
             'security.warn_entering_weak' : 'true',
             'security.warn_leaving_secure' : 'true',
             'security.warn_entering_secure' : 'true',
             'security.warn_submit_insecure' : 'true',
             'security.warn_viewing_mixed'  : 'true' }&lt;/span&gt;

##########################
def get_moz_pref_files():
    &lt;span style="color: blue"&gt;dirs = []&lt;/span&gt;
    for pwent in  pwd.getpwall():
        homedir = "%s/%s" % (pwent.pw_dir, DIRLOC)
        if os.path.isdir(homedir):
            dirs.append(homedir)

    unique = list(set(dirs)) 

    pref_files = []
    for mdir in unique:
        for root, dirs, files in os.walk(mdir):
            for name in files:
                if name == PREFS:
                    pref_files.append(os.path.join(root, name))

    return pref_files

########################
def fix_prefs():
    for pref_file in get_moz_pref_files():

        sys.stdout.write("\n%s\n" % pref_file)
        try:
            in_obj = open(pref_file, 'r')
        except (IOError, OSError), err:
            msg = ":: ERROR: Unable to open %s : %s\n" % (pref_file, err)
            sys.stdout.write(msg)
            continue

        try:
            out_obj = open(pref_file + '.new', 'w')
        except Exception, err:
            in_obj.close()
            msg = ":: ERROR: Unable to create %s.new : %s\n" % (pref_file, err)
            sys.stdout.write(msg)
            continue

        # Initialize counters
        key_count = {}
        for key in REQD_OPTS.keys():
            key_count[key] = 0

        # Count matches
        lines = in_obj.readlines()
        in_obj.close()
        for idx, line in enumerate(lines):
            line = line.rstrip('\n')
            if line.startswith('user_pref('):
                line = line.strip(' ')

                # Use Regex to extract the key-value pairs
                # Sample: user_pref("security.warn_entering_secure", false);
                pat = re.compile('user_pref\("(\S+)",\s+(.*)\);')
                mat = pat.match(line)
                key = mat.group(1)
                cur_value = mat.group(2)
                cur_value = cur_value.strip('"')

                if REQD_OPTS.has_key(key):
                    if REQD_OPTS[key] == cur_value: 
                        key_count[key] += 1

                    if REQD_OPTS[key] != cur_value:
                        line = 'user_pref("'+key+'", '+ REQD_OPTS[key]+');'
                        sys.stdout.write(":: Modified line %d - %s\n" % (idx+1, line))
                        key_count[key] += 1

                    if key_count[key] &gt; 1:
                        line = 'discard'

            if line != 'discard':
                out_obj.write(line+'\n')
            
        for key in REQD_OPTS.keys():
            if key_count[key] == 0:
                line = 'user_pref("' + key + '", ' + REQD_OPTS[key] + ');'
                sys.stdout.write(":: Adding - %s\n" % line)
                out_obj.write(line+'\n')

        out_obj.close()

        # Swap file with temp file that was created
        try:
            shutil.copymode(pref_file, pref_file + '.new')
            shutil.copy2(pref_file + '.new', pref_file)
            os.unlink(pref_file + '.new')
        except (OSError, IOError), err:
            msg = ":: ERROR: Unable to update file: %s\n" % (err)
            sys.stdout.write(msg)
            continue

        sys.stdout.write(":: Done\n") 

if __name__ == '__main__':
    fix_prefs()&lt;/pre&gt;

&lt;p&gt;Of course, you can modify the &lt;b style="color: blue"&gt;REQD_OPTS{}&lt;/b&gt; dictionary to include whatever settings you&amp;rsquo;d like. You could also modify the &lt;em&gt;get_moz_pref_files()&lt;/em&gt; function&amp;rsquo;s &lt;b style="color: blue"&gt;dirs[]&lt;/b&gt; list to include any home directories you&amp;rsquo;d like to search.&lt;/p&gt;

&lt;p&gt;Here is the Python script in action on my trusty Fedora box:&lt;/p&gt;
&lt;pre&gt;/home/jadams/.mozilla/firefox/l1i51nwu.default/prefs.js
:: Modified line 30 - user_pref("browser.startup.homepage", about:blank);
:: Modified line 322 - user_pref("security.warn_viewing_mixed", true);
:: Adding - user_pref("app.update.auto", false);
:: Adding - user_pref("security.warn_entering_weak", true);
:: Adding - user_pref("security.warn_leaving_secure", true);
:: Adding - user_pref("security.enable_ssl2", true);
:: Adding - user_pref("security.enable_ssl3", true);
:: Adding - user_pref("security.enable_java", false);
:: Adding - user_pref("security.warn_entering_secure", true);
:: Adding - user_pref("security.warn_submit_insecure", true);
:: Adding - user_pref("javascript.enabled", false);
:: Adding - user_pref("security.enable_tls", true);
:: Adding - user_pref("network.cookie.cookieBehavior", 2);
:: Adding - user_pref("security.OCSP.enabled", 1);

/root/.mozilla/firefox/u69w287n.default/prefs.js
:: Adding - user_pref("app.update.auto", false);
:: Adding - user_pref("security.warn_entering_weak", true);
:: Adding - user_pref("security.warn_leaving_secure", true);
:: Adding - user_pref("security.enable_ssl2", true);
:: Adding - user_pref("security.enable_ssl3", true);
:: Adding - user_pref("security.enable_java", false);
:: Adding - user_pref("security.warn_entering_secure", true);
:: Adding - user_pref("security.warn_submit_insecure", true);
:: Adding - user_pref("javascript.enabled", false);
:: Adding - user_pref("security.enable_tls", true);
:: Adding - user_pref("browser.startup.homepage", about:blank);
:: Adding - user_pref("security.warn_viewing_mixed", true);
:: Adding - user_pref("network.cookie.cookieBehavior", 2);
:: Adding - user_pref("security.OCSP.enabled", 1);&lt;/pre&gt;Security Blanket® performs many other functions associated with these settings to include scan only, changing the preference files, detailed logging of the performed actions, and reversing/undoing the changes. For more information on available Security Blanket® modules, see our &lt;a href="http://www.trustedcs.com/documents/SecurityBlanket_Modules.pdf"&gt;Modules Guide&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-5712121339820880057?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/5712121339820880057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2009/11/configure-linux-mozilla-firefox-to-meet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/5712121339820880057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/5712121339820880057'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2009/11/configure-linux-mozilla-firefox-to-meet.html' title='Configure Linux Mozilla Firefox to Meet DISA UNIX STIG'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-7750251296368768656</id><published>2009-11-09T16:21:00.080-05:00</published><updated>2010-03-31T13:33:45.110-04:00</updated><title type='text'>U.S Navy DADMS &amp; NIAP CCEVS Evaluation Lists</title><content type='html'>&lt;div class="shadowBox" style="float: right; clear: right; width: 180px"&gt;&lt;div class="shadowBoxTitle"&gt;NIAP CCEVS&lt;/div&gt;&lt;div class="shadowBoxContent" style="font-style: italic; font-size: 95%; line-height: 1.3em; text-align: left"&gt;&amp;ldquo;The National Information Assurance Partnership (NIAP) is a United States government initiative to meet the security testing needs of both information technology consumers and producers that is operated by the National Security Agency (NSA) and the National Institute of Standards and Technology (NIST).&amp;rdquo;[&lt;a href="http://en.wikipedia.org/wiki/National_Information_Assurance_Partnership_%28NIAP%29" class="wikipedia" target="_new"&gt;NIAP&lt;/a&gt;]

&lt;p&gt;&amp;ldquo;The Common Criteria Evaluation and Validation Scheme (CCEVS) is a United States Government program administered by the NIAP to evaluate information technology (IT) product conformance to the Common Criteria international standard.&amp;rdquo;[&lt;a class="wikipedia" target="_new" href="http://en.wikipedia.org/wiki/CCEVS"&gt;CCEVS&lt;/a&gt;]&lt;/div&gt;&lt;/div&gt;
SECURITY BLANKET IS NOW ON THE &lt;a href="http://www.niap-ccevs.org/in_evaluation/"&gt;NIAP list&lt;/a&gt; of security products to be evaluated for conformance to the &lt;a href="http://en.wikipedia.org/wiki/Common_Criteria" class="wikipedia" target="_new"&gt;Common Criteria (ISO/IEC 15408)&lt;/a&gt; and the U.S. Navy's DADMS. &lt;/p&gt;

&lt;p&gt;I have been following Security Blanket-related discussions on news groups and blogs over the last year or so. Many times people would ask if Security Blanket is on the &amp;ldquo;list&amp;rdquo; but no one seemed to know the specific &amp;ldquo;list&amp;rdquo; Security Blanket needed to be on before they were authorized to purchase it. I found it humorous when I discussed this &amp;ldquo;list&amp;rdquo; with existing and potential customers over the phone because most of them weren't quite sure either. &lt;/p&gt;

&lt;p&gt;This red tape can be confusing and frustrating for a system administrator who just wants to purchase the right product to do the job but their purchasing department tells them &amp;ldquo;No&amp;rdquo; because of a &amp;ldquo;list&amp;rdquo;. So, I thought I would post some information regarding &amp;ldquo;lists&amp;rdquo;. &lt;/p&gt;

&lt;p&gt;In &lt;a href="http://www.trustedcs.com/SecurityBlanket/PRSBDADMS102609.html" title="View Press Release"&gt;October of 2009&lt;/a&gt;, Security Blanket was added to the U.S. Department of Navy's Application and Database Management System (DADMS) list. The DADMS is the authoritative list of software applications for use within the U.S. Navy and U.S. Marine Corps. Each application on the DADMS list has been examined and put into compliance with the Navy’s application reduction initiative.&lt;/p&gt;

&lt;p&gt;On November 6, 2009, Security Blanket Enterprise Edition began its evalaution for conformance to &amp;ldquo;Evaluation Assurance Level 2 (EAL2), Augmented with ALC_FLR.2 (PP_IDS_SCA_BR_V1.3), VID#10411.&amp;rdquo; To see Security Blanket and other security products currently being evaluated go to &lt;a href="http://www.niap-ccevs.org/in_evaluation/"&gt;http://www.niap-ccevs.org/in_evaluation/&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you have any questions regarding these &amp;ldquo;lists&amp;rdquo; or others you would like to see Security Blanket on, send us an email at &lt;a href="mailto:SecurityBlanket@Trustedcs.com"&gt;SecurityBlanket@Trustedcs.com&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-7750251296368768656?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/7750251296368768656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2009/11/us-navy-dadms-niap-ccevs-evaluation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/7750251296368768656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/7750251296368768656'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2009/11/us-navy-dadms-niap-ccevs-evaluation.html' title='U.S Navy DADMS &amp; NIAP CCEVS Evaluation Lists'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-1437590038636801480</id><published>2009-11-05T07:30:00.048-05:00</published><updated>2010-03-31T13:33:59.609-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DISA UNIX STIG'/><title type='text'>Establishing a Password Policy in openSUSE</title><content type='html'>&lt;p&gt;ESTABLISHING A PASSWORD POLICY in openSUSE 11 was much easier than I had  expected. We have been working on porting &lt;a href="http://www.trustedcs.com/SecurityBlanket.html"&gt;Security Blanket&lt;/a&gt; to &lt;a href="http://www.opensuse.org/en/"&gt;openSUSE&lt;/a&gt; 11; which will be available in v4.0.0 scheduled for December 2009. &lt;/p&gt;

&lt;p&gt;First of all, there are many aspects to establishing a password policy. For example, you must consider the &lt;span style="font-style:italic;"&gt;age&lt;/span&gt; of a password and the &lt;span style="font-style:italic;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Password_strength" title="password strength"&gt;complexity&lt;/a&gt;&lt;/span&gt; of a password. Of course, there are two distinct camps in which one can subscribe. The first camp believes you should change passwords frequently and the other believes you can change them less frequently as long as they are long and complex.&lt;/p&gt;

&lt;p&gt;I am just going to offer one technique to enforce complex passwords when a user is required to change their Linux account password. Specifically, those of you who must satisfy &lt;a href="http://iase.disa.mil/fisma/index.html" title="Federal Information Security Management Act"&gt;FISMA &lt;/a&gt;(NIST SP 800-53/IA-5) or follow the &lt;a href="http://iase.disa.mil/stigs/index.html" title="Security Technical Implementation Guides"&gt;DISA STIGs&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;GEN000580 - Password Length&lt;/li&gt;&lt;li&gt;GEN000600 - Password Character Mix (Mixed case)&lt;/li&gt;&lt;li&gt;GEN000620 - Password Character Mix (Digits)&lt;/li&gt;&lt;li&gt;GEN000640 - Password Character Mix (Special)&lt;/li&gt;&lt;li&gt;GEN000800 - Password Reuse&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;When a user is required to change their Linux password, the operating system performs this action using the &lt;a href="http://en.wikipedia.org/wiki/Pluggable_Authentication_Modules"&gt;Pluggable Authentication Modules (PAM)&lt;/a&gt; framework. In SuSE, PAM loads &lt;a href="http://freshmeat.net/projects/pam_pwcheck/"&gt;pam_pwcheck(8)&lt;/a&gt; to do password strength checking. It uses a limited number of functions from &lt;a href="http://linux.die.net/man/8/pam_cracklib"&gt;pam_cracklib(8)&lt;/a&gt;. However, in order to set the necessary parameters to meet the above security guidelines we must disable the &lt;a href="http://freshmeat.net/projects/pam_pwcheck/"&gt;pam_pwcheck(8)&lt;/a&gt; and enable &lt;a href="http://linux.die.net/man/8/pam_cracklib"&gt;pam_cracklib(8)&lt;/a&gt;. Fortunately, SuSE provides a great utility called &lt;a href="http://www.linuxcertif.com/man/8/pam-config/"&gt;pam-config(8)&lt;/a&gt; to enable, disable, and set parameter values. &lt;/p&gt;

In order to satisfy the above guidelines, you can run the following commands as root:
&lt;pre&gt;# pam-config -d --pwcheck
# pam-config -a --cracklib
# pam-config -a --cracklib-minlen=14
# pam-config -a --cracklib-lcredit=-1
# pam-config -a --cracklib-ucredit=-1
# pam-config -a --cracklib-dcredit=-2
# pam-config -a --cracklib-ocredit=-2

# pam-config -a --pwhistory
# pam-config -a --pwhistory-remember=5&lt;/pre&gt;
&lt;p&gt;The last setting uses &lt;a href="http://www.linuxcertif.com/man/8/pam_pwhistory/"&gt;pam_pwhistory(8)&lt;/a&gt; to prevent users from using any of the previous five passwords. The guidelines state that it should be five or more and the default value is ten. So, if you choose not to execute the last command above you will be fine.&lt;/p&gt;

&lt;p&gt;Just for the record, I personally feel that a minimum password length (&lt;span style="font-style:italic;"&gt;minlen&lt;/span&gt;) of fourteen is ridiculous but I didn't establish the guidelines. &lt;/p&gt;

&lt;p&gt;Another PAM library, &lt;a href="http://www.linuxcertif.com/man/8/pam_passwdqc/"&gt;pam_passwdqc(8)&lt;/a&gt;, is also available which does similar checking and it provides pass phrase support. The Security Blanket team chose not to configure the system using it because it isn't part of the base operating install and most of the DISA STIGs already have established check procedures for &lt;a href="http://linux.die.net/man/8/pam_cracklib"&gt;pam_cracklib(8)&lt;/a&gt; configurations. The &lt;a href="http://www.linuxcertif.com/man/8/pam_passwdqc/"&gt;pam_passwdqc(8)&lt;/a&gt; library looks fine but I found the documentation a bit confusing and with very few examples. &lt;/p&gt;

&lt;p&gt;As I said before, there are many more aspects to a site password policy and to automate these, check out the &lt;a href="http://www.trustedcs.com/documents/SecurityBlanket_Modules.pdf"&gt;Security Blanket's Modules Guide&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-1437590038636801480?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/1437590038636801480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2009/11/establishing-password-policy-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/1437590038636801480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/1437590038636801480'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2009/11/establishing-password-policy-in.html' title='Establishing a Password Policy in openSUSE'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-1532132974454294313</id><published>2009-10-13T15:34:00.031-04:00</published><updated>2010-03-31T13:33:59.610-04:00</updated><title type='text'>SC Magazine Review</title><content type='html'>&lt;p&gt;In the &lt;a href="http://www.scmagazineus.com/Trusted-Computer-Solutions-Security-Blanket-Enterprise-v31/Review/2989/"&gt;October 2009 Issue of SC Magazine&lt;/a&gt;, Security Blanket v3.1 received an excellent review. We are proud to have a great review by such a prominent magazine. However, I wanted to elaborate on a few things which several of our new customers asked about during the pre-sales process.&lt;/p&gt;

&lt;p&gt;First, there was confusion regarding supported operating systems because the article stated that we only support Red Hat and CentOS. This is true only for the web-based enterprise console but not the client machines which it manages. The client machines can be Red Hat 4 &amp;amp; 5, CentOS 4 &amp;amp; 5, Oracle Enterprise Linux 4 &amp;amp; 5, Fedora 10, and Solaris 10. Supported architectures include 32bit, 64bit, Intel, x86, and &lt;a href="http://en.wikipedia.org/wiki/SPARC" class="wikipedia" target="_new" title="See Wikpedia article on SPARC"&gt;SPARC&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We are currently working on Security Blanket v4.0 which includes support for openSUSE 11 &amp; Novell SUSE 11, Fedora 11, and we&amp;rsquo;ve finished regression testing Red Hat 5.3. This is scheduled to be released in December of 2009. &lt;/p&gt;

&lt;p&gt;The article also stated that &amp;ldquo;The agent must be polled, however, so this tool is not a real-time reporting solution.&amp;rdquo; This is true because Security Blanket was never intended to be a real-time monitoring tool. Security Blanket will never probe your network but instead will only perform functions on designated machines when you tell it do so. This includes fulfilling immediate requests or you can schedule actions to be ran during non-peak hours. When these actions are complete, all of your reports are available from the console. &lt;/p&gt;

&lt;p&gt;You can define a client&amp;rsquo;s peak hours and a load threshold within its agent. This means you can define a window of time the client should never be polled and if its busier than the designated load threshold it won&amp;rsquo;t respond to console requests. This is very useful in preventing a &lt;span style="font-style:italic;"&gt;self-denial-of-service&lt;/span&gt; caused by an overeager security officer who should have waited to scan it after midnight!&lt;/p&gt;

&lt;p&gt;For more information on Security Blanket, check out our &lt;a href="http://www.trustedcs.com/SecurityBlanket.html" target="_new"&gt;website&lt;/a&gt;. Also, we will have representatives at the &lt;a href="http://www.usenix.org/event/lisa09/"&gt;LISA &amp;rsquo;09 Conference in Baltimore, Maryland&lt;/a&gt; so, come by and talk to us.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-1532132974454294313?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/1532132974454294313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2009/10/sc-magazine-review.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/1532132974454294313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/1532132974454294313'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2009/10/sc-magazine-review.html' title='SC Magazine Review'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-8148929051759176808</id><published>2009-09-05T07:07:00.203-04:00</published><updated>2010-03-31T13:33:59.611-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CAG'/><category scheme='http://www.blogger.com/atom/ns#' term='DISA UNIX STIG'/><title type='text'>Root of Evil?</title><content type='html'>&lt;p&gt;&lt;span style="font-weight:bold;"&gt;IN THE LINUX OPERATING SYSTEM&lt;/span&gt;, the &lt;span style="font-style:italic;"&gt;root&lt;/span&gt; account has unlimited power. If not used carefully,  unexpected, evil things can happen to your system. I could tell you horror stories involving mistyped commands while logged in as root. Now, imagine this power in the hands of attacker&amp;mdash;executing any command they desire with methodical precision.&lt;/p&gt;
&lt;div class="shadowBox" style="float: right; clear: right; width: 180px"&gt;&lt;div class="shadowBoxTitle"&gt;CAG: Critical Control 8&lt;/div&gt;&lt;div class="shadowBoxContent" style="font-style: italic; font-size: 95%; line-height: 1.3em; text-align: left"&gt;&amp;ldquo;The second common technique used by attackers is elevation of privileges by guessing or cracking a password for an administrative user to gain access to a target machine. If administrative privileges are loosely and widely distributed, the attacker has a much easier time gaining full control of systems, because there are many more accounts that can act as avenues for the attacker to compromise administrative privileges.&amp;rdquo;
&lt;/div&gt;&lt;/div&gt;
&lt;h4&gt;Only use the root account when absolutely necessary&lt;/h4&gt;
&lt;p&gt;Too often system administrators immediately jump to root level to perform routine tasks&amp;mdash;this is when mistakes occur. The administrator is in a hurry and one wrong space, sitting in the wrong directory, or typed an incorrect parameter all can result in evil things the moment the [ENTER] key is pressed. I used to tell junior administrators:&lt;/p&gt;

&lt;blockquote&gt;&amp;ldquo;Stop and remove your hands from the keyboard. Now, slow down and think about what you are doing. When in doubt, do not hit that [ENTER] key. Your lightening speed on the keyboard does not impress me and as far as completing your assigned tasks, I want quality not quantity.&amp;rdquo;&lt;/blockquote&gt;

&lt;p&gt;This advice extends to experienced administrators, too. They&amp;rsquo;ve done these tasks so often, sometimes they can have a lackadaisical or even cavalier attitude. Since senior administrators have more commands in their repertoire, this situation is more toxic than a junior administrator who may only know a fraction of commands.&lt;/p&gt;

&lt;h4&gt;Protect the root account from compromise&lt;/h4&gt;
&lt;p&gt;Whenever possible, software developers should avoid writing applications with root level access. Typically system administrators are not developers and developers are not system administrators. System administrators are often responsible for hosting many applications on the same server. &lt;/p&gt;

&lt;p&gt;It is critical that you work together through out the product&amp;rsquo;s life cycle and ensure the development environment is as close to the production as possible. If you don&amp;rsquo;t, there could be deployment problems. &lt;/p&gt;

&lt;p&gt;When the management team is standing over you about to go into panic mode, crunch time can result in relaxing access controls in order to get an application to run. Bad move! Tell management to relax and fetch you a cup of coffee while you sort it out&amp;hellip; they love that.&lt;/p&gt;

&lt;p&gt;Always run applications, such as Apache web server, as non-root accounts. This way if the application is compromised, root level access is not immediately given to the attacker.  Consider using technologies such as &lt;a href="ttp://en.wikipedia.org/wiki/Sudo"&gt;sudo&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/SELinux"&gt;SELinux&lt;/a&gt;, and &lt;a href="http://en.wikipedia.org/wiki/AppArmor"&gt;AppArmor&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Also, establish common groups through traditional &lt;a href="http://en.wikipedia.org/wiki/Discretionary_access_control"&gt;discretionary access controls&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Access_control_list"&gt;POSIX.1e access control lists (ACL)&lt;/a&gt;. &lt;/p&gt;

&lt;h4&gt;Know who is using the root account&lt;/h4&gt;
&lt;p&gt;First and foremost, you should never log directly into the root account. Log into your designated  user account and use the switch user command to become root. If personnel login in directly as root, you have no audit trail to help identify who became root and performed administrative tasks. Grant system administrator accounts membership in the &lt;i&gt;wheel&lt;/i&gt; group and use &lt;a href="http://linux.die.net/man/8/pam_wheel"&gt;pam_wheel(8)&lt;/a&gt; to allow only group members to switch to the root account.&lt;/p&gt;

&lt;p&gt;The only time you should login directly as root is when you are physically on the console and entering &lt;span style="font-style:italic;"&gt;single-user&lt;/span&gt; mode to perform critical maintenance. &lt;/p&gt;

&lt;p&gt;To prevent this, modify the &lt;a href="http://linuxmanpages.com/man5/securetty.5.php"&gt;securetty(5)&lt;/a&gt; configuration file to include only authorized devices root can directly login. Set &lt;span style="font-style: italic;"&gt;PermitRootLogin&lt;/span&gt; to &lt;span style="font-style:italic;"&gt;&amp;lsquo;no&amp;rsquo;&lt;/span&gt; in the Secure Shell daemon configuration file. If you are running an FTP site, be sure to edit your &lt;a href="http://linuxmanpages.com/man5/ftpusers.5.php"&gt;ftpusers(5)&lt;/a&gt; file.&lt;/p&gt;

&lt;p&gt;Many people are confused by the term &lt;i&gt;console&lt;/i&gt; as it pertains to the &lt;a href="http://linuxmanpages.com/man5/securetty.5.php"&gt;securetty(5)&lt;/a&gt; file. On many virtual machines, &lt;i&gt;console&lt;/i&gt; is not the physical device you directly login. Additionally, in some hardware configurations the &lt;span style="font-style:italic;"&gt;console&lt;/span&gt; isn't always the &lt;span style="font-style:italic;"&gt;console&lt;/span&gt;. To identify your desired device name to store in the &lt;a href="http://linuxmanpages.com/man5/securetty.5.php"&gt;securetty(5)&lt;/a&gt; file, login in as root before editing the file and use the &lt;a href="http://linuxmanpages.com/man1/who.1.php"&gt;who(1)&lt;/a&gt; command to identify your current login device. Now, add that device to the &lt;a href="http://linuxmanpages.com/man5/securetty.5.php"&gt;securetty(5)&lt;/a&gt; file. &lt;/p&gt;

&lt;p&gt;Lastly, edit the &lt;a href="http://linuxmanpages.com/man5/syslog.conf.5.php"&gt;syslog.conf(5)&lt;/a&gt; or &lt;a href="http://linuxmanpages.com/man5/syslog-ng.conf.5.php"&gt;syslog-ng.conf(5)&lt;/a&gt; to log all &lt;span style="font-style:italic;"&gt;authpriv&lt;/span&gt; messages to &lt;tt&gt;/var/log/secure&lt;/tt&gt; and if possible, configure &lt;a href="http://linux.die.net/man/8/auditd"&gt;auditd(8)&lt;/a&gt;. Don&amp;rsquo;t forget to routinely examine &lt;tt&gt;/var/log/secure&lt;/tt&gt; to see who has gained access to root. &lt;/p&gt;

&lt;h4&gt;Summary&lt;/h4&gt;
&lt;p&gt;There are many other techniques and things to consider when protecting your root account. These are just a taste to get you thinking about how important this account is to the system. It is imperative  that you control administrative privileges such as root.  For more ideas and information, see &lt;a target="_new" href="http://www.sans.org/cag/control/8.php"&gt;Critical Control 8: Controlled Use of Administrative Privileges&lt;/a&gt; of the Consensus Audit Guidelines. &lt;a href="http://www.trustedcs.com/SecurityBlanket.html"&gt;Security Blanket&lt;/a&gt; automates many of these tasks but there is no substitute for a well-trained, disciplined team of system administrators.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-8148929051759176808?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/8148929051759176808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2009/09/root-of-evil.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/8148929051759176808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/8148929051759176808'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2009/09/root-of-evil.html' title='Root of Evil?'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-1967980959213973844</id><published>2009-08-18T11:24:00.025-04:00</published><updated>2010-03-31T13:33:59.612-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CAG'/><category scheme='http://www.blogger.com/atom/ns#' term='DISA UNIX STIG'/><title type='text'>Free Webcast: Maintaining OS Security in Complex IT Environments</title><content type='html'>&lt;p&gt;We will be hosting a complimentary (free) webcast titled “&lt;span style="font-style:italic;"&gt;Maintaining OS Security in Complex IT Environments&lt;/span&gt;.” Taking place on Wednesday, September 9, this webcast will cover ways to effectively retain compliance across an enterprise while remaining flexible in order to repurpose systems and reverse changes that impact productivity. Topics covered in this session will include:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;Determining the mission impact of your data on organizational operations, assets or individuals&lt;/li&gt;&lt;li&gt;Operational, technical and management security controls&lt;/li&gt;&lt;li&gt;Updating security posture as guidelines change
Best practices for maintaining enterprise-wide OS security&lt;/li&gt;&lt;li&gt;Security compliance auditing and validation&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;In addition, TCS will discuss how using &lt;a href="https://www.trustedcs.com/SecurityBlanket.html"&gt;Security Blanket&lt;/a&gt;, an automated system lock down solution, can help an organization maintain OS compliance in a matter of minutes. Security Blanket’s administration console allows system administrators to manage servers, group servers and run profiles that automate user-defined or industry-standard best practices for hardening Linux and Solaris operating systems. Attendees who download the presentation will receive a complimentary Security Blanket Modules Guide. The guide includes descriptions of each security module included in the product and is cross-referenced to the specific industry guidelines it satisfies.&lt;/p&gt;

&lt;dd&gt;&lt;span style="font-weight:bold;"&gt;WHO:&lt;/span&gt; Greg Hall, Secure Systems Engineer, Trusted Computer Solutions&lt;/dd&gt;
&lt;dd&gt;&lt;span style="font-weight:bold;"&gt;WHAT:&lt;/span&gt; Maintaining OS Security in Complex IT Environments&lt;/dd&gt;
&lt;dd&gt;&lt;span style="font-weight:bold;"&gt;WHEN:&lt;/span&gt; Wednesday, September 9, 2009 at 11:00 a.m. EDT&lt;/dd&gt;
&lt;dd&gt;&lt;span style="font-weight:bold;"&gt;WHERE&lt;/span&gt;: Webcast; Registration for the event can be accessed at &lt;a href="http://cts.businesswire.com/ct/CT?id=smartlink&amp;url=https%3A%2F%2Ftrustedcsevents.webex.com%2Fmw0306l%2Fmywebex%2Fdefault.do%3Fnomenu%3Dtrue%26siteurl%3Dtrustedcsevents%26service%3D6%26main_url%3Dhttps%253A%252F%252Ftrustedcsevents.webex.com%252Fec0605l%252Feventcenter%252Fevent%252FeventAction.do%253FtheAction%253Ddetail%2526confViewID%253D278493913%2526siteurl%253Dtrustedcsevents%2526%2526%2526&amp;esheet=6030829&amp;lan=en_US&amp;anchor=TCS+Webinar+Registration&amp;index=2"&gt;TCS Webinar Registration&lt;/a&gt;.&lt;/dd&gt;
&lt;p&gt;
Greg Hall is an experienced systems engineer whom I have had the privilege of working with for many years. His experience as a system administrator and engineer brings real-world experience and depth to Security Blanket. &lt;/p&gt;

&lt;p&gt;If you are familiar with the &lt;a href="http://www.sans.org/cag/"&gt;Consensus Audit Guidelines (CAG)&lt;/a&gt;, you will see that many traditional system administrator roles and responsibilities already map to several critical controls to include:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;Critical Control 2: Inventory of Authorized and Unauthorized Software&lt;/li&gt;&lt;li&gt;Critical Control 3: Secure Configurations for Hardware and Software on Laptops, Workstations, and Servers&lt;/li&gt;&lt;li&gt;Critical Control 6: Maintenance, Monitoring, and Analysis of Audit Logs&lt;/li&gt;&lt;li&gt;Critical Control 9: Controlled Access Based on Need to Know&lt;/li&gt;&lt;li&gt;Critical Control 10: Continuous Vulnerability Assessment and Remediation&lt;/li&gt;&lt;li&gt;Critical Control 11: Account Monitoring and Control&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;If you have the time, I strongly encourage you to attend. I also encourage you to share your ideas by joining the discussion on the &lt;a href="https://blogs.sans.org/security-leadership/"&gt;SANS Security Leadership Blog&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-1967980959213973844?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/1967980959213973844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2009/08/free-webcast-maintaining-os-security-in.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/1967980959213973844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/1967980959213973844'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2009/08/free-webcast-maintaining-os-security-in.html' title='Free Webcast: Maintaining OS Security in Complex IT Environments'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-717698766954060744</id><published>2009-08-12T19:09:00.093-04:00</published><updated>2010-03-31T13:33:59.612-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CAG'/><category scheme='http://www.blogger.com/atom/ns#' term='DISA UNIX STIG'/><title type='text'>Minimize Attack Surfaces</title><content type='html'>&lt;p&gt;I hear this question often from System Administrators: &amp;ldquo;Where and how do I begin locking down my system?!?&amp;rdquo; From the moment they begin, they discover there are countless published tips &amp;amp; tricks, web postings, articles, publications, and guidelines on the topic. Everyone has opinions and will passionately defend them to the end.&lt;/p&gt; 
  
&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Andrew_S._Tanenbaum"&gt;Dr. Andrew Tanenbaum&lt;/a&gt; once said, &amp;ldquo;The nice thing about standards is that there are so many of them to choose from.&amp;rdquo; In this post, I am not going to dispute anyone&amp;rsquo;s opinion on system lock down. I applaud everyone who is passionate about security and those who endeavor to lock down their systems. However, I will present a basic approach which I believe no one will dispute.&lt;/p&gt;

&lt;blockquote&gt;&lt;span style="font-weight:bold;"&gt;If you do not need it, remove it.&lt;/span&gt; Just in case you didn&amp;rsquo;t understand it the first time, I will repeat it: &amp;ldquo;&lt;span style="font-weight:bold;"&gt;If you do not need it, remove it.&lt;/span&gt;&amp;rdquo;&lt;/blockquote&gt;

&lt;p&gt;I know some of you are saying, &amp;ldquo;That&amp;rsquo;s extreme. I have disabled the service and I am using a system-based firewall and am already blocking those ports. Besides, if I remove it and need the software for something&amp;mdash;it is a real pain in the butt to get it back on the system. I am on an isolated network and getting software on and off the system is difficult.&amp;rdquo;&lt;/p&gt;

&lt;p&gt;First of all, what if your firewall rules fail to parse and the daemon doesn&amp;rsquo;t start? Secondly, the less stuff you have on your system the less you have to worry about disabling, configuring, and patching! Third, why waste system resources on unused services? Lastly, if you don&amp;rsquo;t have a mechanism or process in-place to patch your system&amp;mdash;then shame on you.&lt;/p&gt;

&lt;p&gt;When the &lt;span style="font-style:italic;"&gt;Twenty Critical Controls for Effective Cyber Defense: Consensus Audit Guidelines&lt;/span&gt; were released, I said to myself &amp;ldquo;I can get on board with this kind of thinking.&amp;rdquo;  In particular, &lt;a href="http://www.sans.org/cag/control/13.php"&gt;Critical Control 13: Limitation &amp;amp; Control of Network Ports, Protocols, and Services&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;Real World Example&lt;/h4&gt;
&lt;p&gt;Time to roll up your sleeves and try out a technique focused on Red Hat-based systems. Let&amp;rsquo;s get started with examining services configured to start during system boot using the &lt;tt&gt;chkconfig(8&lt;/tt&gt;) command.&lt;/p&gt;
&lt;pre&gt;# &lt;span style="font-weight:bold;"&gt;/sbin/chkconfig --list |/bin/grep ":on"&lt;/span&gt;
&amp;hellip;
autofs     0:off  1:off  2:off  3:on  4:on 5:on 6:off
bluetooth  0:off  1:off  2:off  3:on  4:on 5:on 6:off
&amp;hellip;&lt;/pre&gt;The difficult part is determining if you need the service or not. First, identify what software package is associated with the service (replace &lt;i&gt;bluetooth&lt;/i&gt; with the service in question):
&lt;pre&gt;# &lt;span style="font-weight:bold;"&gt;/bin/rpm -q --file /etc/init.d/bluetooth&lt;/span&gt;
bluez-utils-3.7-2.el5.centos&lt;/pre&gt;

&lt;p&gt;Now, you will need to do some research on this package and service to determine if you need it. In this example, it is fairly obvious. If you are running a public web server then you probably don&amp;rsquo;t need the &lt;tt&gt;bluetooth&lt;/tt&gt; service. So, configure it to not start when the system boots:&lt;/p&gt;
&lt;pre&gt;# &lt;span style="font-weight:bold;"&gt;/sbin/chkconfig bluetooth off&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;If you want to disable the service immediately, use the &lt;tt&gt;service(8)&lt;/tt&gt; utility. Even better, remove the package with &lt;tt style="font-weight: bold"&gt;/bin/rpm -e bluez-utils&lt;/tt&gt;!&lt;/p&gt;

&lt;p&gt;Don&amp;rsquo;t stop there. You should verify the network ports are truly down with a utility like &lt;tt&gt;lsof(8)&lt;/tt&gt;. The &lt;tt&gt;-i tcp&lt;/tt&gt; and &lt;tt&gt;-i udp&lt;/tt&gt; options should suffice. I would even use &lt;a href="http://nmap.org/" target="_new"&gt;INSECURE.ORG&amp;rsquo;s Network Mapper (nmap) tool&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;Security Blanket Can Help&lt;/h4&gt;
&lt;p&gt;&lt;a href="http://www.trustedcs.com/SecurityBlanket.html" target="_new"&gt;Security Blanket&lt;/a&gt; offers over sixty four modules to disable network, peer-to-peer, file sharing, and general services&amp;mdash;many of them enabled by default and administrators have no idea they are even running. It also has several modules to prevent the disclosure of the service versions which might otherwise give an attacker an edge.&lt;/p&gt; 

&lt;p&gt;There are even modules to adjust your kernel&amp;rsquo;s TCP/IP settings to help protect against denial-of-service attacks and packet spoofing.&lt;/p&gt; 

&lt;p&gt;Security Blanket has over one hundred and ninety modules at your disposal. &lt;a href="http://www.trustedcs.com/documents/SecurityBlanket_Modules.pdf" target="_new"&gt;Download our Modules Guide&lt;/a&gt; for free; it contains a cross-reference of services, package names, and even a description of the service to help you.&lt;/p&gt;

&lt;p&gt;Most importantly, Security Blanket automates this configuration process so you can rest assured that all your systems are configured consistently.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-717698766954060744?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/717698766954060744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2009/08/minimize-attack-surfaces.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/717698766954060744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/717698766954060744'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2009/08/minimize-attack-surfaces.html' title='Minimize Attack Surfaces'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-116508411666221652</id><published>2009-08-05T11:57:00.153-04:00</published><updated>2010-03-31T13:33:59.613-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DISA UNIX STIG'/><title type='text'>What is a Baseline?</title><content type='html'>&lt;p&gt;Security Blanket provides the ability to perform baselines in order to track change. This feature is ancillary to Security Blanket&amp;rsquo;s primary function but is an affordable alternative to other products which only function as a configuration management tool. As it pertains to configuration management, let&amp;rsquo;s define the &lt;span style="font-style:italic;"&gt;baseline&lt;/span&gt; process.&lt;/p&gt;

&lt;blockquote style="font-style: italic"&gt;The identification of significant states within the revision history of a configuration item is the central purpose of baseline identification.&lt;sup&gt;[1]&lt;/sup&gt;&lt;/blockquote&gt;

&lt;p&gt;Hold up! What? Let me offer an explanation in terms most system administrators would understand. You&amp;rsquo;re the proud parent of a teenage son or daughter. You&amp;rsquo;re about to leave them home alone for three days for the first time. Before you leave, you take detailed photographs of each room in your house. When you return, you walk into each room with photographs in hand and examine the room carefully to see if anything has changed. To ground or not ground, that is the question.&lt;/p&gt;

&lt;p&gt;Now, fast-forward to the present. You&amp;rsquo;ve just finished building a series of complex systems hosting an important application. You&amp;rsquo;ve locked down the systems and passed all of the required security audits and your application is working. So, this is the initial &lt;span style="font-style:italic;"&gt;state&lt;/span&gt;, good &lt;span style="font-style:italic;"&gt;state&lt;/span&gt; if you will.&lt;/p&gt; 

&lt;p&gt;At this point, you would want to take that &lt;span style="font-style:italic;"&gt;photograph&lt;/span&gt;. Just to name a few things, this photograph should include a detailed inventory of installed software packages and versions, a list of critical files, networking configuration, and general hardware configuration.&lt;/p&gt; 

&lt;p&gt;As time marches forward, you may have new software updates, removals, additions, and new administrators. All of these could potentially change the behavior of your system which you worked so hard to configure. When a system or application malfunctions, system administrators immediately begin the fault management process which consists of identification, isolation, and remediation.&lt;/p&gt; 

&lt;p&gt;Like most administrators, my first response is always &amp;ldquo;What changed?!?! It was working just fine yesterday!&amp;rdquo; Wouldn&amp;rsquo;t it be cool to quickly take another photograph and compare it to the one you took when everything was working correctly, the good &lt;span style="font-style:italic;"&gt;state&lt;/span&gt;? This is typically referred to as a &amp;ldquo;&lt;span style="font-style:italic;"&gt;baseline comparison&lt;/span&gt;&amp;rdquo; and it can help identify or eliminate configuration changes as the culprit.&lt;/p&gt; 

&lt;p&gt;As a best practice, system administrators should periodically perform a baseline comparison to identify changes that could potentially become a fault. In the case of authorized, expected changes the baseline comparison can be used as evidence to your change management process that in fact, a specific change has been completed. Of course, if all of the changes were authorized you would now consider the last photograph (baseline) as the current, good state.&lt;/p&gt; 

&lt;p&gt;In many high-availability configurations, you may have systems working in parallel or as a simple fail-over configuration. In these situations, it is critical that the two system configurations be as similar as possible. So, it would be pretty cool if the baseline (photograph) was in a structured format that allowed the comparison of two systems. Well, Security Blanket can do all of these things for you.&lt;/p&gt;

&lt;h4&gt;Tracking File Changes&lt;/h4&gt;
&lt;p&gt;In addition to tracking changes to your network interfaces, routing, hardware, and firewall configuration (iptables) you must monitor critical system configuration files, libraries, and executables. Not only must you track the ownership and permissions of these files you must be able to detect if the contents have changed.&lt;/p&gt;

&lt;p&gt;The most common method of tracking file changes is to record the cryptographic check sum. This is typically done through the use of a cryptographic hash such as &lt;a href="http://en.wikipedia.org/wiki/SHA_hash_functions"&gt;SHA1&lt;/a&gt; and the resultant, hexadecimal string is recorded. This is most often referred to as the file&amp;rsquo;s &lt;span style="font-style:italic;"&gt;fingerprint&lt;/span&gt;.&lt;/p&gt;

&lt;p&gt;Consider the following scenario. Bring up a terminal window and execute the following command:&lt;/p&gt;

&lt;pre&gt;$ &lt;span style="font-weight:bold;"&gt;openssl sha1 /etc/hosts&lt;/span&gt;
SHA1(/etc/hosts)= &lt;span style="color: blue"&gt;8117e722ee3c230be6b68b2c1bebc955bfa62e31&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Now edit your &lt;tt&gt;/etc/hosts&lt;/tt&gt; and add an extra space or character anywhere in the file. Execute the above command again and notice the long, hexadecimal string has changed.&lt;/p&gt;

&lt;p&gt;By default, when you perform a baseline with Security Blanket it records fingerprints (SHA1) of all files in &lt;tt&gt;/etc&lt;/tt&gt;, &lt;tt&gt;/bin&lt;/tt&gt;, &lt;tt&gt;/usr/bin&lt;/tt&gt;, &lt;tt&gt;/usr/sbin&lt;/tt&gt;, &lt;tt&gt;/sbin&lt;/tt&gt;, and others. This process takes about thirty to sixty seconds depending on the speed of your machine. Additionally, Security Blanket offers a configurable &lt;span style="font-style:italic;"&gt;exclusion list&lt;/span&gt;. The directories included in this list will not be inventoried. This is useful in large systems which have shared, attached storage.&lt;/p&gt; 

&lt;h4&gt;Compliancy&lt;/h4&gt;
&lt;p&gt;Several organizations which provide guidance on secure configurations recommend monitoring configuration changes. In particular &lt;span style="font-style:italic;"&gt;&amp;ldquo;Critical Control 2: Inventory of Authorized and Unauthorized Software&amp;rdquo;&lt;/span&gt;&lt;sup&gt;[2]&lt;/sup&gt; and the &lt;span style="font-style:italic;"&gt;U.S. Defense Information Systems Agency UNIX Security Technical Implementation Guide&lt;/span&gt; (&lt;a href="http://iase.disa.mil/stigs/stig/index.html"&gt;DISA UNIX STIG&lt;/a&gt;). Specifically, the DISA UNIX STIG recommends:&lt;/p&gt;

&lt;p&gt;Create &amp;amp; Maintain a System Baseline to help maintain system integrity:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;GEN000140 - Create and Maintain System Baseline: &lt;span style="font-style:italic;"&gt;"Confirm with the SA that a system baseline (all device files, all sgid and suid files, and system libraries and binaries), to include cryptographic hashes of files in the baseline, has been created and is maintained."&lt;/span&gt;&lt;/li&gt;&lt;li&gt;GEN002380 - SUID Files Baseline&lt;/li&gt;&lt;li&gt;GEN002440 - SGID Files Baseline: &lt;span style="font-style:italic;"&gt;"If the ownership, permissions, and location of files with the sgid/suid bit set are not baselined with the IAO, then this is a finding."&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;Once you have created your baseline, move a copy of this baseline off of the system to protect it.&lt;ul&gt;&lt;li&gt;GEN000160 – System Baseline Backup on Write-protected Media&lt;/li&gt;&lt;/ul&gt;Periodically check the system configuration (at least once a week):&lt;ul&gt;&lt;li&gt;GEN000220 - System Baseline for System Libraries and Binaries Checking&lt;/li&gt;&lt;li&gt;GEN002400 - System Baseline for SUID Files Checkling&lt;/li&gt;&lt;li&gt;GEN002460 - System Baseline for SGID Files Checking: &lt;span style="font-style:italic;"&gt;"Confirm with the SA that filesystems are checked at least weekly for unauthorized system libraries or binaries or unauthorized modification to authorized system libraries or binaries."&lt;/span&gt;&lt;/li&gt;&lt;li&gt;GEN002260 - System Baseline for Device Files Checking: &lt;span style="font-style:italic;"&gt;"If the system is not checked weekly against the system baseline for extraneous device files, then this is a finding. Ask the SA to show the previous weeks baseline of files."&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h4&gt;Security Blanket in Action&lt;/h4&gt;
&lt;p&gt;Once you&amp;rsquo;ve &lt;a href="http://tcs-security-blanket.blogspot.com/2009/08/getting-started-with-security-blanket.html"&gt;downloaded, installed, and registered Security Blanket&lt;/a&gt;, bring up its graphical user interface by selecting &lt;span style="font-weight:bold;"&gt;Applications &amp;rarr; System Tools &amp;rarr Security Blanket&lt;/span&gt;. Now, click on the &lt;span style="font-weight:bold;"&gt;Baselining&lt;/span&gt; button on the left toolbar. If you&amp;rsquo;ve never used this before or have never scheduled a baseline, you will be presented a dialog box asking if you would like to schedule regular baselines.&lt;/p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_EACT8Hhim20/SnmtGIboG1I/AAAAAAAAAGQ/aUPEe-kNg0A/s1600-h/sb-manage-baseline-compare.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 132px;" src="http://4.bp.blogspot.com/_EACT8Hhim20/SnmtGIboG1I/AAAAAAAAAGQ/aUPEe-kNg0A/s200/sb-manage-baseline-compare.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5366510751842835282" /&gt;&lt;/a&gt; 

&lt;p&gt;From the screen above, you can easily perform a baseline or compare two baselines. All reports are in &lt;a href="http://en.wikipedia.org/wiki/XML"&gt;XML&lt;/a&gt; format and are stored in &lt;tt&gt;/var/lib/security-blanket/baselines&lt;/tt&gt;. You can perform a baseline from the command line, too using the &lt;span style="font-weight:bold;"&gt;-b&lt;/span&gt; option.&lt;/p&gt;

&lt;p&gt;Security Blanket includes schema definition files and standard style sheets to render the reports in HTML. Here are some sample reports from my &lt;a href="http://fedoraproject.org/"&gt;Fedora&lt;/a&gt; 10 box using Security Blanket v3.1.0:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;Baseline Report [ &lt;a href="https://op.trustedcs.com/samples/sample-baseline.html"&gt;HTML&lt;/a&gt; | &lt;a href="https://op.trustedcs.com/samples/baseline.xml"&gt;XML (~4MB)&lt;/a&gt; ]&lt;/li&gt;&lt;li&gt;Baseline Comparison Report [ &lt;a href="https://op.trustedcs.com/samples/sample-baseline-delta.html"&gt;HTML&lt;/a&gt; | &lt;a href="https://op.trustedcs.com/samples/baseline-delta.xml"&gt;XML&lt;/a&gt; ] &lt;/li&gt;&lt;/ul&gt;

&lt;h4&gt;Summary&lt;/h4&gt;
&lt;p&gt;As you can see, performing system baselines can be very helpful and Security Blanket&amp;rsquo;s baselining feature compliments its system lock down and assessment technology. Security Blanket's Enterprise Edition will centralize this function and allow you to compare the same machine at any two points in time (&lt;span style="font-style:italic;"&gt;states&lt;/span&gt;) or two different machines at any two points in time.&lt;/p&gt;

&lt;p&gt;I have been told by existing Security Blanket customers that this feature is quite useful when deploying systems to child organizations or even their own customers. Once they have locked down and certified a system, before it is shipped to their customer a baseline is performed.&lt;/p&gt; 

&lt;p&gt;The Security Blanket team plans to expand the information collected in v4.0 scheduled for November 2009. Tentative plans include filesystem layouts, drive configurations to include logical volume layouts, generic user account lists, and open TCP/UDP ports. If you have suggestions or questions, please make a comment regarding this post or email us directly at &lt;a href="mailto:SecurityBlanket@TrustedCS.com"&gt;SecurityBlanket@TrustedCS.com&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;&lt;span style="font-size: 80%"&gt;[1] CMMI Product Team, &amp;ldquo;Chpt 7, Maturity Level 2: Managed, Configuration Management, SP 1.3,&amp;rdquo;, in Capability Maturity Model Integration, Version 1.1 (CMMI-SE/SW/IPPD/SS, V1.1): Staged Representation, Carnegie Mellon Software Engineering Institute.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: 80%"&gt;[2] Twenty Critical Controls for Effective Cyber Defense: Consensus Audit Guidelines, v2.0, &lt;a href="http://www.sans.org/cag/"&gt;http://www.sans.org/cag/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25493779320233697-116508411666221652?l=tcs-security-blanket.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tcs-security-blanket.blogspot.com/feeds/116508411666221652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tcs-security-blanket.blogspot.com/2009/08/what-is-baseline.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/116508411666221652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25493779320233697/posts/default/116508411666221652'/><link rel='alternate' type='text/html' href='http://tcs-security-blanket.blogspot.com/2009/08/what-is-baseline.html' title='What is a Baseline?'/><author><name>Jamie Adams</name><uri>http://www.blogger.com/profile/04047337113810242014</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/-939mQVp1d3c/Tkv5k1um-0I/AAAAAAAAAc4/3LS0KMnWAXE/s220/293560_119327131498477_100002635716284_105429_4687402_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_EACT8Hhim20/SnmtGIboG1I/AAAAAAAAAGQ/aUPEe-kNg0A/s72-c/sb-manage-baseline-compare.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25493779320233697.post-3606808296738004199</id><published>2009-08-04T10:51:00.124-04:00</published><updated>2010-03-31T13:33:59.614-04:00</updated><title type='text'>Getting Started with Security Blanket</title><content type='html'>&lt;p&gt;In a previous post, I discussed using Security Blanket&amp;rsquo;s &lt;a href="http://tcs-security-blanket.blogspot.com/2009/08/security-blanket-command-line.html"&gt;command line&lt;/a&gt;. So, I thought it would be helpful demonstrate the ABC&amp;rsquo;s of obtaining Security Blanket and getting started with its graphical user interface.&lt;/p&gt; 

&lt;h4&gt;Step 1: Get Security Blanket&lt;/h4&gt;
&lt;p&gt;First of all, we offer a &lt;a href="http://www.trustedcs.com/SecurityBlanket/SecurityBlanket-Try-Out.html"&gt;free, time-based trial of the software&lt;/a&gt;. If you are interested, just fill out the short form and we will send you a license key and the location to download the product.&lt;/p&gt;

&lt;p&gt;If you are ready to purchase, you can do so &lt;a href="http://www.trustedcs.com/SecurityBlanket/SecurityBlanket-Buy.html"&gt;here&lt;/a&gt; and if you're interested in the Enterprise Edition or GSA pricing, please contact us at &lt;a href="mailto:SecurityBlanket@TrustedCS.com"&gt;SecurityBlanket@TrustedCS.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In all cases, we will send you an email with the download instructions and product checksums. With the exception of the Enterprise Edition, the product is about a 7MB download.&lt;/p&gt;

&lt;h4&gt;Step 2: Install Security Blanket&lt;/h4&gt;
&lt;p&gt;Once you have copied the downloaded file to your machine, you should verify the integrity of the product. In the email you received, there is a fingerprint which is represented by a large string of letters and numbers&amp;mdash;this was computed using &lt;a href="http://en.wikipedia.org/wiki/SHA_hash_functions"&gt;SHA1&lt;/a&gt;. You can compute the checksum by bringing up a terminal window and changing to the directory which contains the downloaded file. Issue the following command:&lt;/p&gt;

&lt;pre&gt;$ &lt;span style="font-weight:bold;"&gt;openssl sha1 SecurityBlanket-Full.tar.gz&lt;/span&gt; 
SHA1(SecurityBlanket-Full.tar.gz)= &lt;span style="color: red"&gt;8b322fc0d04654dffc064959554ce8838d611459&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Compare the long string above with the fingerprint sent to you in the email. The above fingerprint is &lt;b&gt;just an example&lt;/b&gt; so, compare your results with the one provided in the email. Next, extract the archive and run the install script:&lt;/p&gt;

&lt;pre&gt;# &lt;span style="font-weight:bold;"&gt;tar zxf SecurityBlanket-Full.tar.gz&lt;/span&gt; 
# &lt;span style="font-weight:bold;"&gt;cd SecurityBlanket-20090804_1049/&lt;/span&gt;     
# &lt;span style="font-weight:bold;"&gt;./install.sh&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Of course, the archive and directory names are dependent on the version you've downloaded.&lt;/p&gt;

&lt;p&gt;All of our packages are delivered in RPM format with the exception of our Solaris variant. There are some package dependencies so, it is recommend you have a &lt;a href="http://yum.baseurl.org/"&gt;YUM&lt;/a&gt; server available or your vendor CD. In particular, the following packages are not &lt;i&gt;always&lt;/i&gt; installed by default: &lt;tt&gt;libxml2-python&lt;/tt&gt; and &lt;tt&gt;libxslt-python&lt;/tt&gt;. If you are going to use the the graphical interface, then you must make sure that you have Firefox v3.0.1 or later.&lt;/p&gt; 

&lt;p&gt;For more detailed installation procedures and information on Security Blanket features, check out the &lt;a href="http://www.trustedcs.com/documents/SecurityBlanket_UserGuide.pdf"&gt;User's Guide&lt;/a&gt; which is included with the product.&lt;/p&gt;

&lt;h4&gt;Step 3: Enter Your License Key&lt;/h4&gt;
&lt;p&gt;The first step is to obtain your license key. In order to do this, we will need the MAC address (HWaddr) of your primary ethernet interface. The quickest way to do this is to bring up a terminal window and execute:&lt;/p&gt;

&lt;pre&gt;# &lt;span style="font-weight:bold;"&gt;ifconfig eth0&lt;/span&gt;
eth0      Link encap:Ethernet  HWaddr &lt;span style="color: red"&gt;00:23:AE:79:E0:F0&lt;/span&gt;  
          inet addr:192.168.1.30  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::223:aeff:fe79:e0f0/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2120055 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1273447 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:589140441 (561.8 MiB)  TX bytes:1276769864 (1.1 GiB)
          Memory:fe6e0000-fe700000&lt;/pre&gt;

&lt;p&gt;The MAC address is a hexadecimal number so, the only acceptable values are 0&amp;ndash;9 and A&amp;ndash;F. If you are a &lt;i&gt;trial&lt;/i&gt; customer, send this number to the sales person. Otherwise, follow the instructions in the email provided to you in your receipt.&lt;/p&gt;

&lt;p&gt;Once you have received your key, you can register the product through the graphical interface by selecting &lt;span style="font-weight:bold;"&gt;Applications &amp;#x279C; System Tools &amp;#x279C; Security Blanket&lt;/span&gt; and then &lt;span style="font-weight:bold;"&gt;Help &amp;#x279C; Register&lt;/span&gt;. Then just enter your new key (&lt;span style="font-style:italic;"&gt;click on image to enlarge&lt;/span&gt;):&lt;/p&gt;
&lt;br/&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_EACT8Hhim20/Snhi3pXLaSI/AAAAAAAAAFI/HxZTzej28BY/s1600-h/Screenshot-Register+Application.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 90px;" src="http://4.bp.blogspot.com/_EACT8Hhim20/Snhi3pXLaSI/AAAAAAAAAFI/HxZTzej28BY/s200/Screenshot-Register+Application.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5366147664147343650" /&gt;&lt;/a&gt;

&lt;h4&gt;Step 4: Scan &amp; Lock down Your System&lt;/h4&gt;
&lt;p&gt;On the initial screen, you can now load a profile by selecting the &lt;span style="font-weight:bold;"&gt;Load Profile&lt;/span&gt; button in the upper left corner. Next, select an industry standard profile such as &lt;span style="font-weight:bold;"&gt;STIG&lt;/span&gt;. This will bring up the &lt;span style="font-weight:bold;"&gt;Manage Profile&lt;/span&gt; screen as shown below (&lt;span style="font-style:italic;"&gt;click on image to enlarge&lt;/span&gt;):&lt;/p&gt;
&lt;br/&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EACT8Hhim20/SnhtOfzdI-I/AAAAAAAAAFQ/RMXUnwN8kSk/s1600-h/SB-manage.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 132px;" src="http://1.bp.blogspot.com/_EACT8Hhim20/SnhtOfzdI-I/AAAAAAAAAFQ/RMXUnwN8kSk/s200/SB-manage.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5366159051834860514" /&gt;&lt;/a&gt;

&lt;p&gt;From here, you can include or exclude modules as you see fit. As you select a module, a description of the module appears in the right window. The &lt;a href="http://www.trustedcs.com/documents/SecurityBlanket_Modules.pdf"&gt;Modules Guide&lt;/a&gt; which comes with the product provides more details than shown in the graphical interface.&lt;/p&gt;

&lt;p&gt;Once you are satisfied with the list of modules in your profile, just click on the &lt;span style="font-weight:bold;"&gt;Scan System&lt;/span&gt; button on the left toolbar. Then choose &lt;span style="font-style:italic;"&gt;Quick&lt;/span&gt; or &lt;span style="font-style:italic;"&gt;Complete&lt;/span&gt; scan and click the &lt;span style="font-weight:bold;"&gt;Scan System&lt;/span&gt; button. Don't worry, no changes will be made to your system yet. After your scan is complete, click on the &lt;span style="font-weight:bold;"&gt;Manage Actions&lt;/span&gt; button on the left toolbar (&lt;span style="font-style:italic;"&gt;click on image to enlarge&lt;/span&gt;):&lt;/p&gt;
&lt;br/&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_EACT8Hhim20/SnhwJ43r8wI/AAAAAAAAAFg/bg0EBrUnbUo/s1600-h/sb-manage-actions.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 132px;" src="http://1.bp.blogspot.com/_EACT8Hhim20/SnhwJ43r8wI/AAAAAAAAAFg/bg0EBrUnbUo/s200/sb-manage-actions.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5366162271199032066" /&gt;&lt;/a&gt;

&lt;p&gt;Failed modules will be in red and will have the default &lt;span style="font-weight:bold;"&gt;Planned Action&lt;/span&gt; of &lt;span style="fon
