<?xml version="1.0"?>
<rdf:RDF
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:foaf="http://xmlns.com/foaf/0.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns="http://purl.org/rss/1.0/"
>
<channel rdf:about="http://selinuxnews.org/planet/">
	<title>Planet SELinux</title>
	<link>http://selinuxnews.org/planet/</link>
	<description>Planet SELinux - http://selinuxnews.org/planet/</description>

	<items>
		<rdf:Seq>
			<rdf:li rdf:resource="http://intrajp.no-ip.com/nucleus/index.php?itemid=784" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/22347.html" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/himainu/20080826#1219761570" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/himainu/20080825#1219668016" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/himainu/20080825#1219668015" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=726" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=728" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=724" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-15117118.post-7231077139461294935" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/himainu/20080823#1219420391" />
			<rdf:li rdf:resource="http://james-morris.livejournal.com/33086.html" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=717" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/himainu/20080820#1219238328" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=715" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=712" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/himainu/20080814#1218699591" />
			<rdf:li rdf:resource="urn:lj:livejournal.com:atom1:paulmoore:1758" />
			<rdf:li rdf:resource="http://www.calebcase.com/2 at http://www.calebcase.com" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/22020.html" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=697" />
			<rdf:li rdf:resource="http://intrajp.no-ip.com/nucleus/index.php?itemid=783" />
			<rdf:li rdf:resource="urn:lj:livejournal.com:atom1:paulmoore:1329" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=681" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=675" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=673" />
			<rdf:li rdf:resource="http://james-morris.livejournal.com/33001.html" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=671" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=666" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/21868.html" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=659" />
			<rdf:li rdf:resource="http://www.calebcase.com/4 at http://www.calebcase.com" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=639" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/himainu/20080727#1217097061" />
			<rdf:li rdf:resource="http://www.calebcase.com/3 at http://www.calebcase.com" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/himainu/20080726#1217012826" />
			<rdf:li rdf:resource="http://james-morris.livejournal.com/32669.html" />
			<rdf:li rdf:resource="urn:lj:livejournal.com:atom1:paulmoore:1162" />
			<rdf:li rdf:resource="urn:lj:livejournal.com:atom1:paulmoore:964" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/himainu/20080725#1216928692" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=651" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/himainu/20080724#1216839043" />
			<rdf:li rdf:resource="http://james-morris.livejournal.com/32381.html" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/himainu/20080723#1216772420" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/himainu/20080722#1216723637" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/21531.html" />
			<rdf:li rdf:resource="http://ubuntu-tutorials.com/?p=737" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/himainu/20080722#1216665685" />
			<rdf:li rdf:resource="http://james-morris.livejournal.com/32158.html" />
			<rdf:li rdf:resource="http://intrajp.no-ip.com/nucleus/index.php?itemid=782" />
			<rdf:li rdf:resource="http://kaigai.sblo.jp/article/17132174.html" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/21355.html" />
			<rdf:li rdf:resource="http://james-morris.livejournal.com/31766.html" />
			<rdf:li rdf:resource="http://james-morris.livejournal.com/31714.html" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/himainu/20080713#1215953215" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=635" />
			<rdf:li rdf:resource="http://intrajp.no-ip.com/nucleus/index.php?itemid=781" />
			<rdf:li rdf:resource="http://intrajp.no-ip.com/nucleus/index.php?itemid=780" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/21067.html" />
			<rdf:li rdf:resource="http://kaigai.sblo.jp/article/16822614.html" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/himainu/20080710#1215698209" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/20931.html" />
			<rdf:li rdf:resource="http://james-morris.livejournal.com/31240.html" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=629" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/himainu/20080708#1215518831" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/himainu/20080705#1215223269" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/20701.html" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-7673377107942959487.post-6425643029900332435" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/20327.html" />
			<rdf:li rdf:resource="http://kaigai.sblo.jp/article/16514214.html" />
			<rdf:li rdf:resource="http://intrajp.no-ip.com/nucleus/index.php?itemid=779" />
			<rdf:li rdf:resource="http://intrajp.no-ip.com/nucleus/index.php?itemid=778" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=622" />
			<rdf:li rdf:resource="http://mentalrootkit.org/?p=22" />
			<rdf:li rdf:resource="http://www.usefulsecurity.com/?p=24" />
			<rdf:li rdf:resource="http://kaigai.sblo.jp/article/16275099.html" />
			<rdf:li rdf:resource="http://kaigai.sblo.jp/article/16242797.html" />
			<rdf:li rdf:resource="http://kaigai.sblo.jp/article/16152005.html" />
			<rdf:li rdf:resource="http://ubuntu-tutorials.com/?p=679" />
			<rdf:li rdf:resource="http://james-morris.livejournal.com/31096.html" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-7673377107942959487.post-2801797623482753676" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-15117118.post-976913486262757654" />
			<rdf:li rdf:resource="http://ubuntu-tutorials.com/?p=667" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/20210.html" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/19955.html" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=604" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/himainu/20080604#1212582361" />
			<rdf:li rdf:resource="http://intrajp.no-ip.com/nucleus/index.php?itemid=777" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/himainu/20080601#1212323063" />
			<rdf:li rdf:resource="http://intrajp.no-ip.com/nucleus/index.php?itemid=776" />
			<rdf:li rdf:resource="http://intrajp.no-ip.com/nucleus/index.php?itemid=775" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/himainu/20080528#1211980206" />
			<rdf:li rdf:resource="http://james-morris.livejournal.com/30813.html" />
			<rdf:li rdf:resource="http://intrajp.no-ip.com/nucleus/index.php?itemid=774" />
			<rdf:li rdf:resource="http://james-morris.livejournal.com/30541.html" />
			<rdf:li rdf:resource="http://intrajp.no-ip.com/nucleus/index.php?itemid=773" />
			<rdf:li rdf:resource="http://intrajp.no-ip.com/nucleus/index.php?itemid=772" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=592" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/himainu/20080523#1211552966" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=585" />
			<rdf:li rdf:resource="http://securityblog.org/brindle/?p=24" />
		</rdf:Seq>
	</items>
</channel>

<item rdf:about="http://intrajp.no-ip.com/nucleus/index.php?itemid=784">
	<title>Shintaro Fujiwara: segatex-6.70 ??</title>
	<link>http://intrajp.no-ip.com/nucleus/index.php?itemid=784</link>
	<content:encoded>I should fix sub program, segatex alert audit, which is a independent c program should pop up alert notice when violation occurs.&lt;br /&gt;
I wrote this one hoping to be like setroubleshoot.&lt;br /&gt;
But in fact, I have scarce knowledge on kernel which I found file-oriented alert program.&lt;br /&gt;
In a sense it's OK, but when it comes to the real world, it is not working well.&lt;br /&gt;
I make it pops up every several seconds or minutes when some file stamp which I created differs from former one.&lt;br /&gt;
&lt;br /&gt;
So, I should re-write this totally to co-ordinate with kernel thing and alert properly.&lt;br /&gt;
&lt;br /&gt;
Maybe I should ask kernel masters like Mr. J.M. or other people I respect.&lt;br /&gt;
&lt;br /&gt;
Thanks to the help from them, I evolved from several years ago and now I can write c++ program allright, so maybe I will be happy to contribute more to the security world.&lt;br /&gt;
&lt;br /&gt;
My job is security itself, you know that...&lt;br /&gt;</content:encoded>
	<dc:date>2008-08-27T11:50:33+00:00</dc:date>
</item>
<item rdf:about="http://danwalsh.livejournal.com/22347.html">
	<title>Dan Walsh: Top three things to understand in fixing SELinux problems.</title>
	<link>http://danwalsh.livejournal.com/22347.html</link>
	<content:encoded>Almost all SELInux problems fall into one of the following three categories.&amp;nbsp; While this might be an over simplification, I think it is a good thing for a new user to understand.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;font size=&quot;4&quot;&gt;1. &lt;/font&gt;&lt;font size=&quot;4&quot;&gt;SELinux is all about labeling&lt;/font&gt;&lt;br /&gt;Every process and object on the machine has a label associated with it, if your files are not labeled correctly access might be denied.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;/b&gt;If a file is mislabeled a confined application might not be allowed access to the mislabeled file.&amp;nbsp; If an executable is mislabeled, it may not transition to the correct label when executing, causing access violations and potentially causing it to&amp;nbsp; mislabel files it creates.&amp;nbsp; Processes and objects on the machines have labels.&amp;nbsp; If the labeling is correct everything should work.&amp;nbsp; Sometimes an admin decides to change the default labeling on the system.&amp;nbsp; If an admin wants to store&amp;nbsp; apache web pages in a unusual location, /srv/myweb.&amp;nbsp; The admin needs to tell SELinux that the files stored there need to be accessible to the web server process.&amp;nbsp; He does this by setting the labeling correctly in the system.&amp;nbsp;&amp;nbsp; The apache process is allowed to access files labeled httpd_sys_content_t.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;# semanage fcontext -a -t httpd_sys_content_t '/srv/myweb(/.*)?'&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;This command tells the SELinux datastore that the /src/myweb directory and all files under it should be&amp;nbsp; labeled httpd_sys_content_t.&amp;nbsp; Tools like restorecon and rpm read this datastore when they are labeling or relabeling files.&amp;nbsp; Note, however that the semanage command will not change the actual labels on files on your machine.&amp;nbsp; You still need to execute restorecon to fix the labels.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;# restorecon -R /srv/myweb&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;restorecon reads the SELinux datastore to determine how files under /srv/myweb&amp;nbsp; should be labeled and then fixes them.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;# matchpathcon /srv/myweb &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;matchpathcon reads the SELinux datastore and prints the default label for the specified path&lt;br /&gt;&lt;br /&gt;&lt;font size=&quot;4&quot;&gt;&lt;b&gt;2. You have to tell SELinux about how a confined process is being run.&lt;/b&gt;&lt;br /&gt;&lt;font size=&quot;2&quot;&gt;A confined process/application can be run in many different ways.&amp;nbsp;&amp;nbsp; You need to tell SELinux about how you are configuring the application to run, so SELinux will allow it the proper access.&amp;nbsp;&lt;/font&gt;&lt;/font&gt; SELinux does not do this automatically,&amp;nbsp; SELinux has builtin if/then/else rules called booleans that allow you to tweak the predefined rules to allow different access.&amp;nbsp; If&amp;nbsp; you set up you apache web server to talk to a mysql server, you need to set a boolean to tell SELinux this is ok.&amp;nbsp; You can do this with the setsebool command.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;# setsebool -P httpd_can_network_connect_db 1&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Tools like system-config-selinux or getsebool -a will list all of the possible booleans.&amp;nbsp; On the latest Fedora systems you can run SELinux error messages (avc)&amp;nbsp; through audit2allow -w (audit2why).&amp;nbsp; This checks to see if any boolean could be set to allow the access.&amp;nbsp; setroubleshoot is also pretty good at diagnosing problems.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;font size=&quot;4&quot;&gt;3.&amp;nbsp; SELinux rules are evolving and applications are sometimes broken&lt;/font&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;General errors in policy or applications can cause SELInux access denials.&amp;nbsp; Sometimes an application is just broken or the SELinux policy has never seen the confined application run the code path that it is running.&amp;nbsp; While the application is working correctly, SELinux is denying it access.&amp;nbsp; You can add custom policy to your system simply by piping the SELinux error messages through audit2allow.&amp;nbsp; Say a new version of postgresql comes out that SELinux is mistakenly denying access to a resource which it should be allowed to access.&amp;nbsp; You can use audit2allow to build a custom policy module that can be installed on your system to allow the access.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;# grep postgresql /var/log/audit/audit.log | audit2allow -R -M mypostgresql&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;This command will generate a local policy module which will allow all accesses that are currently being denied..&lt;br /&gt;&lt;i&gt;&lt;br /&gt;# semodule -i mypostgresql.pp &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;This command installs the local policy modifications to your system.&amp;nbsp; You probably want to report the SELinux errors to bugzilla or a mailing list so your local modifications can be added to the distribution's policy or upstream.</content:encoded>
	<dc:date>2008-08-26T16:25:14+00:00</dc:date>
	<dc:creator>dwalsh@redhat.com</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/himainu/20080826#1219761570">
	<title>Yuichi Nakamura: [SELinux]先日のオタワのレポート記事</title>
	<link>http://d.hatena.ne.jp/himainu/20080826#1219761570</link>
	<content:encoded>公開された。 http://www.atmarkit.co.jp/fsecurity/special/127ottawa/ottawa01.html 金曜はCELFでオタワの様子を紹介予定です。意外とオタワ後のイベントが多いです。 http://tree.celinuxforum.org/CelfPubWiki/JapanTechnicalJamboree22</content:encoded>
	<dc:date>2008-08-26T14:39:30+00:00</dc:date>
	<dc:creator>himainu</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/himainu/20080825#1219668016">
	<title>Yuichi Nakamura: [SELinux] OpenSuseにSELinux</title>
	<link>http://d.hatena.ne.jp/himainu/20080825#1219668016</link>
	<content:encoded>http://selinuxnews.org/wp/index.php/2008/08/21/opensuse-111-to-enable-selinux/ SuSEもSELinuxサポートを入れるらしい。 AppArmor、本格的に活動低下なのだろうか。。。。</content:encoded>
	<dc:date>2008-08-25T12:40:16+00:00</dc:date>
	<dc:creator>himainu</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/himainu/20080825#1219668015">
	<title>Yuichi Nakamura: [SELinux] レッドハットやFedora Projectのサーバに不正侵入</title>
	<link>http://d.hatena.ne.jp/himainu/20080825#1219668015</link>
	<content:encoded>http://www.atmarkit.co.jp/news/200808/25/redhat.html targetedポリシだったら、SSHのアカウント取られてログインされたら、SELinux使ってようと意味無かったりするし。。。</content:encoded>
	<dc:date>2008-08-25T12:40:15+00:00</dc:date>
	<dc:creator>himainu</dc:creator>
</item>
<item rdf:about="http://etbe.coker.com.au/?p=726">
	<title>Russell Coker (security): Is SE Linux Unixish?</title>
	<link>http://etbe.coker.com.au/2008/08/25/is-se-linux-unixish/</link>
	<content:encoded>&lt;p&gt;In a comment on my &lt;a href=&quot;http://etbe.coker.com.au/2008/08/23/apparmor-is-dead/&quot;&gt;AppArmor is dead post [1]&lt;/a&gt; someone complained that SE Linux is not &amp;#8220;&lt;b&gt;Unixish&lt;/b&gt;&amp;#8220;.&lt;/p&gt;
&lt;p&gt;The security model in Unix is almost exclusively &lt;a href=&quot;http://en.wikipedia.org/wiki/Discretionary_Access_Control&quot;&gt;Discretionary Access Control (DAC) [2]&lt;/a&gt;.  This means that any process that owns a resource can grant access to the resource to other processes without restriction.  For example a user can run &amp;#8220;&lt;b&gt;chmod 777 ~&lt;/b&gt;&amp;#8221; and grant every other user on the system the ability to access their files (and take over their account by modifying ~/.login and similar files).  I say that it&amp;#8217;s almost exclusively DAC because there are some things that a user can not give away, for example they can not permit a program running under a different non-root UID to ptrace their processes.  But for file and directory access it&amp;#8217;s entirely discretionary.&lt;/p&gt;
&lt;p&gt;SE Linux is based around the concept of &lt;a href=&quot;http://en.wikipedia.org/wiki/Mandatory_access_control&quot;&gt;Mandatory Access Control (MAC) [3]&lt;/a&gt;.  This means that the system security policy (as defined by the people who developed the distribution and the local sysadmin) can not be overridden by the user.  When a daemon is prevented from accessing files in a user&amp;#8217;s home directory by the SE Linux policy and the user is not running in the unconfined_t domain there is no possibility of them granting access.&lt;/p&gt;
&lt;p&gt;SE Linux has separate measures for protecting integrity and confidentiality.  An option is to use &lt;a href=&quot;http://en.wikipedia.org/wiki/Multilevel_security&quot;&gt;MultiLevel Security (MLS) [4]&lt;/a&gt;, but a more user-friendly option is MCS (Multi-Category Security).&lt;/p&gt;
&lt;p&gt;The design of SE Linux is based on the concept of having as much of the security policy as possible being loaded at boot time.  The design of the Unix permissions model was based on the concept of using the minimal amount of memory at a time when 1M of RAM was a big machine.  An access control policy is comprised of two parts, file labels (which is UID, GID, permissions, and maybe ACLs for Unix access controls and a &amp;#8220;security context&amp;#8221; for SE Linux) and a policy which determines how those file labels are used.  The policy in the Unix system is compiled into the kernel and is essentially impossible to change.  The SE Linux policy is loaded at boot time, and the most extreme changes to the policy will at most require a reboot.&lt;/p&gt;
&lt;p&gt;The policy language used for SE Linux is based on the concept of deny by default (everything that is not specifically permitted is denied) and access controls apply to all operations.  The Unix access control is mostly permissive and many operations (such as seeing more privileged processes in the output of &amp;#8220;ps&amp;#8221;) can not be denied on a standard Unix system.&lt;/p&gt;
&lt;p&gt;So it seems that in many ways SE Linux is not &amp;#8220;Unixish&amp;#8221;, and it seems to me that any system which makes a Unix system reasonably secure could also be considered to be &amp;#8220;not Unixish&amp;#8221;.  Unix just wasn&amp;#8217;t designed for security, not that it is bad by the standards of modern server and desktop OSs.&lt;/p&gt;
&lt;p&gt;Of course many of the compromises in the design of Unix (such as having all login sessions recorded in a single &lt;b&gt;/var/run/utmp&lt;/b&gt; file and having all user accounts stored in a single &lt;b&gt;/etc/passwd&lt;/b&gt; file) impact SE Linux systems.  But some of them can be worked around, and others will be fixed eventually.&lt;/p&gt;
&lt;p&gt;&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;[1] &lt;a href=&quot;http://etbe.coker.com.au/2008/08/23/apparmor-is-dead/&quot;&gt;http://etbe.coker.com.au/2008/08/23/apparmor-is-dead/&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[2] &lt;a href=&quot;http://en.wikipedia.org/wiki/Discretionary_Access_Control&quot;&gt;http://en.wikipedia.org/wiki/Discretionary_Access_Control&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[3] &lt;a href=&quot;http://en.wikipedia.org/wiki/Mandatory_access_control&quot;&gt;http://en.wikipedia.org/wiki/Mandatory_access_control&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[4] &lt;a href=&quot;http://en.wikipedia.org/wiki/Multilevel_security&quot;&gt;http://en.wikipedia.org/wiki/Multilevel_security&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;http://etbe.coker.com.au/?p=726&amp;amp;akst_action=share-this&quot; title=&quot;E-mail this, post to del.icio.us, etc.&quot; id=&quot;akst_link_726&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;Share This&lt;/a&gt;
&lt;/p&gt;</content:encoded>
	<dc:date>2008-08-25T08:58:27+00:00</dc:date>
	<dc:creator>etbe</dc:creator>
</item>
<item rdf:about="http://etbe.coker.com.au/?p=728">
	<title>Russell Coker (security): Play Machine Downtime</title>
	<link>http://etbe.coker.com.au/2008/08/24/play-machine-downtime/</link>
	<content:encoded>&lt;p&gt;From the 13th to the 14th of August my &lt;a href=&quot;http://www.coker.com.au/selinux/play.html&quot;&gt;Play Machine [1]&lt;/a&gt; was offline.  There was a power failure for a few seconds and the machine didn&amp;#8217;t boot correctly.  As I had a lot of work to do I left it offline for a day before fixing it.  The reason it didn&amp;#8217;t boot was that due to an issue with the GRUB package it was trying to boot a non-Xen kernel with Xen, this would cause the Xen Dom0 load to abort and it would then reboot after 5 seconds - and automatically repeat the process.  The problem is that &lt;b&gt;update-grub&lt;/b&gt; in Lenny will generate boot entries for Xen kernels to boot without Xen and for non-Xen kernels to boot with Xen.&lt;/p&gt;
&lt;p&gt;Two days ago someone launched a DOS attack on my Play Machine and I&amp;#8217;ve only just put it back online.  I&amp;#8217;ve changed the ulimit settings a bit, that won&amp;#8217;t make DOS attacks impossible, just force the attacker to use a little bit more effort.&lt;/p&gt;
&lt;p&gt;&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;[1] &lt;a href=&quot;http://www.coker.com.au/selinux/play.html&quot;&gt;http://www.coker.com.au/selinux/play.html&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;http://etbe.coker.com.au/?p=728&amp;amp;akst_action=share-this&quot; title=&quot;E-mail this, post to del.icio.us, etc.&quot; id=&quot;akst_link_728&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;Share This&lt;/a&gt;
&lt;/p&gt;</content:encoded>
	<dc:date>2008-08-23T22:39:22+00:00</dc:date>
	<dc:creator>etbe</dc:creator>
</item>
<item rdf:about="http://etbe.coker.com.au/?p=724">
	<title>Russell Coker (security): AppArmor is Dead</title>
	<link>http://etbe.coker.com.au/2008/08/23/apparmor-is-dead/</link>
	<content:encoded>&lt;p&gt;For some time there have been two mainstream &lt;a href=&quot;http://en.wikipedia.org/wiki/Mandatory_access_control&quot;&gt;Mandatory Access Control (MAC) [1]&lt;/a&gt; systems for Linux.  &lt;a href=&quot;http://www.nsa.gov/selinux/&quot;&gt;SE Linux [2]&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Apparmor&quot;&gt;AppArmor [3]&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://news.cnet.com/8301-13580_3-9796140-39.html&quot;&gt;In late 2007 Novell laid off almost all the developers of AppArmor [4]&lt;/a&gt; with the aim of having the community do all the coding.  &lt;a href=&quot;http://blogs.msdn.com/michael_howard/archive/2008/01/17/crispin-cowan-joins-the-windows-security-team.aspx&quot;&gt;Crispin Cowan (the founder and leader of the AppArmor project) was later hired by Microsoft, which probably killed the chances for ongoing community development [5]&lt;/a&gt;.  &lt;a href=&quot;http://blogs.msdn.com/crispincowan/default.aspx&quot;&gt;Crispin has an MSDN blog, but with only one post so far (describing UAC) [6]&lt;/a&gt;, hopefully he will start blogging more prolifically in future.&lt;/p&gt;
&lt;p&gt;Now &lt;a href=&quot;http://news.opensuse.org/2008/08/20/opensuse-to-add-selinux-basic-enablement-in-111/&quot;&gt;SUSE is including SE Linux support in OpenSUSE 11.1 [7]&lt;/a&gt;.  They say that they will not ship policies and SE Linux specific tools such as &amp;#8220;checkpolicy&amp;#8221;, but instead they will be available from &amp;#8220;repositories&amp;#8221;.  Maybe this is some strange SUSE thing, but for most Linux users when something is in a &amp;#8220;repository&amp;#8221; then it&amp;#8217;s shipped as part of the distribution.  The SUSE announcement also included the line &amp;#8220;&lt;b&gt;This is particularly important for organizations that have already standardized on SELinux, but could not even test-drive SUSE Linux Enterprise before without major work and changes&lt;/b&gt;&amp;#8220;.  The next step will be to make SE Linux the default and AppArmor the one that exists in a repository, and the step after that will be to remove AppArmor.&lt;/p&gt;
&lt;p&gt;In a way it&amp;#8217;s a pity that AppArmor is going away so quickly.  The lack of competition is not good for the market, and homogenity isn&amp;#8217;t good for security.  But OTOH this means more resources will be available for SE Linux development which will be a good thing.&lt;/p&gt;
&lt;p&gt;&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;[1] &lt;a href=&quot;http://en.wikipedia.org/wiki/Mandatory_access_control&quot;&gt;http://en.wikipedia.org/wiki/Mandatory_access_control&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[2] &lt;a href=&quot;http://www.nsa.gov/selinux/&quot;&gt;http://www.nsa.gov/selinux/&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[3] &lt;a href=&quot;http://en.wikipedia.org/wiki/Apparmor&quot;&gt;http://en.wikipedia.org/wiki/Apparmor&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[4] &lt;a href=&quot;http://news.cnet.com/8301-13580_3-9796140-39.html&quot;&gt;http://news.cnet.com/8301-13580_3-9796140-39.html&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[5]&lt;a href=&quot;http://blogs.msdn.com/michael_howard/archive/2008/01/17/crispin-cowan-joins-the-windows-security-team.aspx&quot;&gt; http://blogs.msdn.com/michael_howard/archive/2008/01/17/crispin-cowan-joins-the-windows-security-team.aspx&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[6] &lt;a href=&quot;http://blogs.msdn.com/crispincowan/default.aspx&quot;&gt;http://blogs.msdn.com/crispincowan/default.aspx&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[7]&lt;a href=&quot;http://news.opensuse.org/2008/08/20/opensuse-to-add-selinux-basic-enablement-in-111/&quot;&gt; http://news.opensuse.org/2008/08/20/opensuse-to-add-selinux-basic-enablement-in-111/&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;http://etbe.coker.com.au/?p=724&amp;amp;akst_action=share-this&quot; title=&quot;E-mail this, post to del.icio.us, etc.&quot; id=&quot;akst_link_724&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;Share This&lt;/a&gt;
&lt;/p&gt;</content:encoded>
	<dc:date>2008-08-23T00:47:53+00:00</dc:date>
	<dc:creator>etbe</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-15117118.post-7231077139461294935">
	<title>Jeronimo Zucco (selinux): openSUSE irá adotar SELinux na versão 11.1</title>
	<link>http://jczucco.blogspot.com/2008/08/opensuse-ir-adotar-selinux-na-verso-111.html</link>
	<content:encoded>Foi anunciado na lista opensuse.devel que o SELinux será disponibilizado a partir da versão 11.1 do openSUSE Linux. O AppArmor ainda será a opção default.&lt;br /&gt;&lt;br /&gt;Link para o anúncio:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://article.gmane.org/gmane.linux.suse.opensuse.devel/16096&quot;&gt;http://article.gmane.org/gmane.linux.suse.opensuse.devel/16096&lt;/a&gt;</content:encoded>
	<dc:date>2008-08-22T17:28:31+00:00</dc:date>
	<dc:creator>jczucco (noreply@blogger.com)</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/himainu/20080823#1219420391">
	<title>Yuichi Nakamura: [SELinux]カーネル読書会</title>
	<link>http://d.hatena.ne.jp/himainu/20080823#1219420391</link>
	<content:encoded>先日のオタワの土産話をしてきた。国際会議にチャレンジしたい気分な人が増えればと思います。 会場の楽天さんはとても立派かつスタッフの方々も沢山手伝ってくれていた。楽天さん凄い。  KaiGaiさんの話 ピザの前後、KaiGaiさんが話をしていたが、お腹が空いていて、 かれいにスルーしてしまいました。ごめんなさい。 PHPのスレッドごとにドメインを割り当て、SQLインジェクションの被害を防げるらしい。 KaiGaiさんの話を試せるサイト： http://kaigai.myhome.cx/index.php ...</content:encoded>
	<dc:date>2008-08-22T15:53:11+00:00</dc:date>
	<dc:creator>himainu</dc:creator>
</item>
<item rdf:about="http://james-morris.livejournal.com/33086.html">
	<title>James Morris: Nano HOWTO: Getting started with libvirt hacking</title>
	<link>http://james-morris.livejournal.com/33086.html</link>
	<content:encoded>How to build &lt;a href=&quot;http://libvirt.org/&quot;&gt;libvirt&lt;/a&gt; from git on Fedora:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;code&gt;mkdir ~/rpmbuild&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;(cd ~/rpmbuild &amp;amp;&amp;amp; mkdir BUILD BUILDROOT RPMS SOURCES SPECS SRPMS)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;git clone git://git.et.redhat.com/libvirt.git&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;cd libvirt&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;git checkout -b mystuff&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;export AUTOBUILD_INSTALL_ROOT=$HOME/builder&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;./autobuild.sh&lt;/code&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;The above will clone the tree, checkout a branch to hack on, build and test the code, then generate source and binary RPMS.  You'll also be set then to do local manual builds.&lt;br /&gt;&lt;br /&gt;Thanks to &lt;a href=&quot;http://berrange.com/index&quot;&gt;danpb&lt;/a&gt; for clues.</content:encoded>
	<dc:date>2008-08-22T09:20:56+00:00</dc:date>
</item>
<item rdf:about="http://etbe.coker.com.au/?p=717">
	<title>Russell Coker (security): DNS Secondaries and Web Security</title>
	<link>http://etbe.coker.com.au/2008/08/21/dns-secondaries-web-security/</link>
	<content:encoded>&lt;p&gt;At the moment there are ongoing security issues related to web based services and DNS hijacking.  &lt;a href=&quot;http://www.dailyack.com/2008/08/cookie-hijacking.html&quot;&gt;the Daily Ack has a good summary of the session hijacking issue [1]&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For a long time it has been generally accepted that you should configure a DNS server to not allow random machines on the Internet to copy the entire zone.  Not that you should have any secret data there anyway, but it&amp;#8217;s regarded as just a precautionary layer of security by obscurity.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.doxpara.com/?p=1215&quot;&gt;Dan Kaminsky (who brought the current DNS security issue to everyone&amp;#8217;s attention) has described some potential ways to alleviate the problem [2]&lt;/a&gt;.  One idea is to use random case in DNS requests (which are case insensitive but case preserving), so if you were to lookup &lt;b&gt;wWw.cOkEr.CoM.aU&lt;/b&gt; and the result was returned with different case then you would know that it was forged.&lt;/p&gt;
&lt;p&gt;Two options which have been widely rejected are using TCP for DNS (which is fully supported for the case where an answer can not fit in a single UDP packet) and sending requests twice (to square the number of combinations that would need to be guessed).  They have been rejected due to the excessive load on the servers (which are apparently already near capacity).&lt;/p&gt;
&lt;p&gt;One option that does not seem to get mentioned is the possibility to use multiple source IP addresses, so instead of merely having 2^16 ports to choose from you could multiply that by as many IP addresses as you have available.  In the past I&amp;#8217;ve worked for ISPs that could have dedicated a /22 (1024 IP addresses) to their DNS proxy if it would have increased the security of their customers - an ISP of the scale that has 1024 spare IP addresses available is going to be a major target of such attacks!  Also with some fancy firewall/router devices it would not be impossible to direct all port 53 traffic through the DNS proxies.  That would mean that an ISP with 200,000 broadband customers online could use a random IP address from that pool of 200,000 IP addresses for every DNS request.  While attacking a random port choice out of 65500 ports is possible, if it was 65500 ports over a pool of 200,000 IP addresses it would be extremely difficult (I won&amp;#8217;t claim it to be impossible).&lt;/p&gt;
&lt;p&gt;One problem with the consideration that has been given to TCP is that it doesn&amp;#8217;t account for the other uses of TCP, such as for running DNS secondaries.&lt;/p&gt;
&lt;p&gt;In Australia we have two major ISPs (Telstra and Optus) and four major banks (ANZ, Commonwealth, NAB, and Westpac).  It shouldn&amp;#8217;t be difficult for arrangements to be made for the major ISPs to have their recursive DNS servers (the caching servers that their customers talk to) act as slaves for the DNS zones related to those four banks (which might be 12 zones or more given the use of different zones for stock-broking etc).  If that was combined with a firewall preventing the regular ISP customers (the ones who are denied access to port 25 to reduce the amount of spam) from receiving any data from the Internet with a source port of 53 then the potential for attacks on Australian banks would be dramatically decreased.  I note that the Westpac bank has DNS secondaries run by both Optus and Telstra (which makes sense for availability reasons if nothing else), so it seems that the Telstra and Optus ISP services could protect their customers who use Westpac without any great involvement from the bank.&lt;/p&gt;
&lt;p&gt;Banks have lots of phone lines and CTI systems.  It would be easy for each bank to have a dedicated phone number (which is advertised in the printed phone books, in the telephone &amp;#8220;directory assistance&amp;#8221; service, and in brochures available in bank branches - all sources which are more difficult to fake than Internet services) which gave a recorded message of a list of DNS zone names and the IP addresses for the master data.  Then every sysadmin of every ISP could mirror the zones that would be of most use to their customers.&lt;/p&gt;
&lt;p&gt;Another thing that banks could do would be to create a mailing list for changes to their DNS servers for the benefit of the sysadmins who want to protect their customers.  Signing mail to such a list with a GPG key and having the fingerprint available from branches should not be difficult to arrange.&lt;/p&gt;
&lt;p&gt;Another possibility would be to use the ATM network to provide security relevant data.  Modern ATMs have reasonably powerful computers which are used to display bank adverts when no-one is using them.  Having an option to press a button on the ATM to get a screen full of Internet banking security details of use to a sysadmin should be easy to implement.&lt;/p&gt;
&lt;p&gt;For full coverage (including all the small building societies and credit unions) it would be impractical for every sysadmin to have a special case for every bank.  But again there is a relatively easy solution.  A federal agency that deals with fraud could maintain a list of zone names and master IP addresses for every financial institution in the country and make it available on CD.  If the CD was available for collection from a police station, court-house, the registry of births, deaths, and marriages, or some other official government office then it should not have any additional security risks.  Of course you wouldn&amp;#8217;t want to post such CDs, even with public key signing (which many people don&amp;#8217;t check properly) there would be too much risk of things going wrong.&lt;/p&gt;
&lt;p&gt;In a country such as the US (which has an unreasonably large number of banks) it would not be practical to make direct deals between ISPs and banks.  But it should be practical to implement a system based on a federal agency distributing CDs with configuration files for BIND and any other DNS servers that are widely used (is any other DNS server widely used?).&lt;/p&gt;
&lt;p&gt;Of course none of this would do anything about the issue of Phishing email and typo domain name registration.  But it would be good to solve as much as we can.&lt;/p&gt;
&lt;p&gt;&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;[1] &lt;a href=&quot;http://www.dailyack.com/2008/08/cookie-hijacking.html&quot;&gt;http://www.dailyack.com/2008/08/cookie-hijacking.html&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[2] &lt;a href=&quot;http://www.doxpara.com/?p=1215&quot;&gt;http://www.doxpara.com/?p=1215&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;http://etbe.coker.com.au/?p=717&amp;amp;akst_action=share-this&quot; title=&quot;E-mail this, post to del.icio.us, etc.&quot; id=&quot;akst_link_717&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;Share This&lt;/a&gt;
&lt;/p&gt;</content:encoded>
	<dc:date>2008-08-21T01:31:24+00:00</dc:date>
	<dc:creator>etbe</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/himainu/20080820#1219238328">
	<title>Yuichi Nakamura: [組込み]BusyBoxの連載記事</title>
	<link>http://d.hatena.ne.jp/himainu/20080820#1219238328</link>
	<content:encoded>id:hshinjiさんの記事が更新されている。 http://monoist.atmarkit.co.jp/fembedded/index/busyboxtech.html 家電などにも、地味にBusyBoxは載っています。組込みLinuxの必須アイテムです。</content:encoded>
	<dc:date>2008-08-20T13:18:48+00:00</dc:date>
	<dc:creator>himainu</dc:creator>
</item>
<item rdf:about="http://etbe.coker.com.au/?p=715">
	<title>Russell Coker (security): Ownership of the Local SE Linux Policy</title>
	<link>http://etbe.coker.com.au/2008/08/19/ownership-local-se-linux-policy/</link>
	<content:encoded>&lt;p&gt;A large part of the disagreement about the way to manage the policy seems to be based on who will be the primary &amp;#8220;&lt;b&gt;owner&lt;/b&gt;&amp;#8221; of the policy on the machine.  This isn&amp;#8217;t a problem that only applies to SE Linux, the same issue applies for various types of configuration files and scripts throughout the process of distribution development.  Having a range of modules which can be considered configuration data that come from a single source seems to make SE Linux policy unique among other packages.  The reasons for packaging all Apache modules in the main package seem a lot clearer.&lt;/p&gt;
&lt;p&gt;One idea that keeps cropping up is that as the policy is modular it should be included in daemon packages and the person maintaining the distribution package of the policy should maintain it.  The reason for this request seems to usually be based on the idea that the person who packages a daemon for a distribution knows more about how it works than anyone else, I believe that this is false in most cases.  When I started working on SE Linux I had a reasonable amount of experience in maintaining Debian packages of daemons and server processes, but I had to learn a lot about how things REALLY work to be able to write good policy.  Also if we were to have policy modules included in the daemon packages, then those packages would need to be updated whenever there were serious changes to the SE Linux policy.  For example Debian/Unstable flip-flopped on MCS support recently, changing the policy packages to re-enable MCS was enough pain, getting 50 daemon packages updated would have been unreasonably painful.  Then of course there is the case where two daemons need to communicate, if the &lt;b&gt;interface&lt;/b&gt; which is provided with one policy module has to be updated before another module can be updated and they are in separate packages then synchronised updates to two separate packages might be required for a single change to the upstream policy.  I believe that the idea of having policy modules owned by the maintainers of the various daemon packages is not viable.  I also believe that most people who package daemons would violently oppose the idea of having to package SE Linux policy if they realised what would be required of them.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.calebcase.com/node/2&quot;&gt;Caleb Case seems to believe that ownership of policy can either be based on the distribution developer or the local sys-admin with apparently little middle-ground [1]&lt;/a&gt;.  In the section titled &amp;#8220;&lt;b&gt;The Evils of Single Policy Packages&lt;/b&gt;&amp;#8221; he suggests that if an application is upgraded for a security fix, and that upgrade requires a new policy, then it requires a new policy for the entire system if all the policy is in the same package.  However the way things currently work is that upgrading a Debian SE Linux policy package does not install any of the new modules.  They are stored under &lt;b&gt;/usr/share/selinux/default&lt;/b&gt; but the active modules are under &lt;b&gt;/etc/selinux/default/modules/active&lt;/b&gt;.  An example of just such an upgrade is the &lt;a href=&quot;http://lists.debian.org/debian-security-announce/2008/msg00201.html&quot;&gt;Debian Security Advisory DSA-1617-1 for the SE Linux policy for Etch to address the recent BIND issue [2]&lt;/a&gt;.  In summary the new version of BIND didn&amp;#8217;t work well with the SE Linux policy, so an update was released to fix it.  When the updated SE Linux policy package is installed it will upgrade the &lt;b&gt;bind.pp&lt;/b&gt; module if the previous version of the package was known to have the version of bind.pp that didn&amp;#8217;t allow &lt;b&gt;named&lt;/b&gt; to bind() to most UDP ports - the other policy modules are not touched.  I think that this is great evidence to show that the way things currently work in Debian work well.  For the hypothetical case where a user had made local modifications to the &lt;b&gt;bind.pp&lt;/b&gt; policy module, they could simply put the policy package on hold - I think it&amp;#8217;s safe to assume that anyone who cares about security will read the changelogs for all updates to released versions of Debian, so they would realise the need to do this.&lt;/p&gt;
&lt;p&gt;Part of Caleb&amp;#8217;s argument rests on the supposed need for end users to modify policy packages (IE to build their own packages from modified source).  I run many SE Linux machines, and since the release of the &amp;#8220;&lt;b&gt;modular&lt;/b&gt;&amp;#8221; policy (which first appeared in Fedora Core 5, Debian/Etch, and Red Hat Enterprise Linux 5) I have never needed to make such a modification.  I modify policy regularly for the benefit of Debian users and have a number of test machines to try it out.  But for the machines where I am a sysadmin I just create a local module that permits the access that is needed.  The only reason why someone would need to modify an existing module is to remove privileges or to change automatic domain transition rules.  Changing automatic domain transitions is a serious change to the policy which is not something that a typical user would want to do - if they were to do such things then they would probably grab the policy source and rebuild all the policy packages.  Removing privileges is not something that a typical sysadmin desires, the reference policy is reasonably strict and users generally don&amp;#8217;t look for ways to tighten up the policy.  In almost all cases it seems best to consider that the policy modules which are shipped by the distribution are owned by the distribution not the sysadmin.  The sysadmin will decide which policy modules to load, what roles and levels to assign to users with the &lt;b&gt;semanage&lt;/b&gt; tool, and what local additions to add to the policy.  For the CentOS systems I run I use the Red Hat policy, I don&amp;#8217;t believe that there is a benefit for me to change the policy that Red Hat ships, and I think that for people who have less knowledge about SE Linux policy than me there are more reasons not to change such policy and less reasons to do so.&lt;/p&gt;
&lt;p&gt;Finally Caleb provides a suggestion for managing policy modules by having sym-links to the modules that you desire.  Of course there is nothing preventing the existence of a &lt;b&gt;postfix.pp&lt;/b&gt; file on the system provided by a package while there is a local &lt;b&gt;postfix.pp&lt;/b&gt; file which is the target of the sym-link (so the sym-link idea does not support the idea of having multiple policy packages).  With the way that policy modules can be loaded from any location, the only need for sym-links is if you want to have an automatic upgrade script that can be overridden for some modules.  I have no objection to adding such a feature to the Debian policy packages if someone sends me a patch.&lt;/p&gt;
&lt;p&gt;Caleb also failed to discuss how policy would be initially loaded if packaged on a per-module basis.  If for example I had a package selinux-policy-default-postfix which contains the file &lt;b&gt;postfix.pp&lt;/b&gt;, how would this package get installed?  I am not aware of the Debian package dependencies (or those of any other distribution) being about to represent that the &lt;b&gt;postfix&lt;/b&gt; package depends on &lt;b&gt;selinux-policy-default-postfix&lt;/b&gt; if and only if the &lt;b&gt;selinux-policy-default&lt;/b&gt; package is installed.  Please note that I am not suggesting that we add support for such things, a package management system that can solve Sudoku based on package dependency rules is not something that I think would be useful or worth having.  As I noted in &lt;a href=&quot;http://etbe.coker.com.au/2008/08/18/se-linux-policy-packaging-distribution/&quot;&gt;my previous post about how to package SE Linux policy for distributions [3]&lt;/a&gt; the current Debian policy packages have code in the postinst (which I believe originated with Erich Schubert) to load policy modules that match the Debian packages on the system.  This means that initially setting up the policy merely requires installing the &lt;b&gt;selinux-policy-default&lt;/b&gt; package and rebooting.  I am inclined to reject any proposed change which makes the initial install of of the policy more difficult than this.&lt;/p&gt;
&lt;p&gt;After Debian/Lenny is released I plan to make some changes to the policy.  One thing that I want to do is to have a Debconf option to allow users to choose to automatically upgrade their running policy whenever they upgrade the Debian policy package, this would probably only apply to changes within one release (IE it wouldn&amp;#8217;t cause an automatic upgrade from Lenny+1 policy to Lenny+2).  Another thing I would like to do is to have the policy modules which are currently copied to &lt;b&gt;/etc/selinux/default/modules/active&lt;/b&gt; instead be hard linked when the source is a system directory.  That would save about 12M of disk space on some of my systems.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve taken the unusual step of writing two blog posts in response to Caleb&amp;#8217;s post not because I want to criticise him (he has done a lot of good work), but because he is important in the SE Linux community and his post deserves the two hours I have spent writing responses to it.  While writing these posts I have noticed a number of issues that can be improved, I invite suggestions from Caleb and others on how to make such improvements.&lt;/p&gt;
&lt;p&gt;&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;[1] &lt;a href=&quot;http://www.calebcase.com/node/2&quot;&gt;http://www.calebcase.com/node/2&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[2]&lt;a href=&quot;http://lists.debian.org/debian-security-announce/2008/msg00201.html&quot;&gt; http://lists.debian.org/debian-security-announce/2008/msg00201.html&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[3]&lt;a href=&quot;http://etbe.coker.com.au/2008/08/18/se-linux-policy-packaging-distribution/&quot;&gt; http://etbe.coker.com.au/2008/08/18/se-linux-policy-packaging-distribution/&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;http://etbe.coker.com.au/?p=715&amp;amp;akst_action=share-this&quot; title=&quot;E-mail this, post to del.icio.us, etc.&quot; id=&quot;akst_link_715&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;Share This&lt;/a&gt;
&lt;/p&gt;</content:encoded>
	<dc:date>2008-08-19T12:16:35+00:00</dc:date>
	<dc:creator>etbe</dc:creator>
</item>
<item rdf:about="http://etbe.coker.com.au/?p=712">
	<title>Russell Coker (security): SE Linux Policy Packaging for a Distribution</title>
	<link>http://etbe.coker.com.au/2008/08/18/se-linux-policy-packaging-distribution/</link>
	<content:encoded>&lt;p&gt;&lt;a href=&quot;http://www.calebcase.com/node/2&quot;&gt;Caleb Case (Ubuntu contributer and Tresys employee) has written about the benefits of using separate packages for SE Linux policy modules [1]&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Firstly I think it&amp;#8217;s useful to consider some other large packages that could be split into multiple packages.  The first example that springs to mind is &lt;b&gt;coreutils&lt;/b&gt; which used to be &lt;b&gt;textutils&lt;/b&gt;, &lt;b&gt;shellutils&lt;/b&gt;, and &lt;b&gt;fileutils&lt;/b&gt;.  Each of those packages contained many programs and could conceivably have been split.  Some of the utilities in that package are replaced for most use, for example no-one uses the &lt;b&gt;cksum&lt;/b&gt; utility, generally &lt;b&gt;md5sum&lt;/b&gt; and &lt;b&gt;sha1sum&lt;/b&gt; (which are in the same package) are used instead.  Also the &lt;b&gt;pinky&lt;/b&gt; command probably isn&amp;#8217;t even known by most users who use &lt;b&gt;finger&lt;/b&gt; instead (apart from newer Unix users who don&amp;#8217;t even know what finger is).  So in spite of the potential benefit of splitting the package (or maintaining the previous split) it was decided that it would be easier for everyone to have a single package.  The merge of the three packages was performed upstream, but there was nothing preventing the Debian package maintainer from splitting the package - apart from the inconvenience to everyone.  The coreutils package in Etch takes 10M of disk space when installed, as it&amp;#8217;s almost impossible to buy a new hard drive smaller than 80G that doesn&amp;#8217;t seem to be a problem for most users.&lt;/p&gt;
&lt;p&gt;The second example is the X server which has separate packages for each video card.  One thing to keep in mind about the X server is that the video drivers don&amp;#8217;t change often.  While it is quite possible to remove a hard drive from one machine and install it in another, or duplicate a hard drive to save the effort of a re-install (I have done both many times) they are not common operations in the life of a system.  Of course when you do require such an update you need to first install the correct package (out of about 60 choices), which can be a challenge.  I suspect that most Debian systems have all the video driver packages installed (along with drivers for wacom tablets and other hardware devices that might be used) as that appears to be the default.  So it seems likely that a significant portion of the users have all the packages installed and therefore get no benefit from the split package.&lt;/p&gt;
&lt;p&gt;Now let&amp;#8217;s consider the disk space use of the &lt;b&gt;selinux-policy-default&lt;/b&gt; package - it&amp;#8217;s 24M when installed.  Of that 4.9M is in the &lt;b&gt;base.pp&lt;/b&gt; file (the core part of the policy which is required), then there&amp;#8217;s 848K for the X server (which is going to be loaded on all Debian systems that have X clients installed - &lt;a href=&quot;http://marc.info/?l=selinux&amp;#038;m=121789588709977&amp;#038;w=2&quot;&gt;due to an issue with /tmp/.ICE-unix labelling [2]&lt;/a&gt;).  Then there&amp;#8217;s 784K for the Postfix policy (which is larger than it needs to be - I&amp;#8217;ve been planning to fix this for the past four years or so) and 696K for the SSH policy (used by almost everyone).  The next largest is 592K for the Unconfined policy, the number of people who choose not to use this will be small, and as it&amp;#8217;s enabled by default it seems impractical to provide a way of removing it.&lt;/p&gt;
&lt;p&gt;One possibility for splitting the policy is to create a separate package of modules used for the less common daemons and services, if modules for INN, Cyrus, distcc, ipsec, kerberos, ktalk, nis, PCMCIA, pcscd, RADIUS, rshd, SASL, and UUCP were in a separate package then that would reduce the installed size of the main package by 1.9M while providing no change in functionality to the majority of users.&lt;/p&gt;
&lt;p&gt;One thing to keep in mind is that each package at a minimum will have a changelog and a copyright file (residing in a separate directory under /usr/share/doc) and three files as part of the dpkg data store, each of which takes up at least one allocation unit on disk (usually 4K).  So adding one extra package will add at least 24K of disk space to every system that installs it (or 32K if the package has postinst and postrm scripts).  This is actually a highly optimal case, the current policy packages (&lt;b&gt;selinux-policy-default&lt;/b&gt; and &lt;b&gt;selinux-policy-mls&lt;/b&gt;) each take 72K of disk space for their doc directory.&lt;/p&gt;
&lt;p&gt;One of my SE Linux server sytems (randomly selected) has 23 policy modules installed, if they were in separate packages there would be a minimum of 552K of disk space used by packaging, 736K if there were postinst and postrm scripts, and as much as 2M if the doc directory for each package was similar to the current doc directories).  As the system in question needs 5796K of policy modules, the 2M of overhead would make it approach 8M of disk space.  So it would only be a saving of 16M over the current situation.  While saving that amount of disk space is a good thing, I think that when balanced against the usability issues it&amp;#8217;s not worth-while.&lt;/p&gt;
&lt;p&gt;Currently the SE Linux policy packages will determine what applications are installed and automatically load policy packages to match.  I don&amp;#8217;t believe that it&amp;#8217;s possible to have a package post-inst script install other packages (and if it is possible I don&amp;#8217;t think it&amp;#8217;s desirable).  Therefore to have separate packages would make a significant difference to the ease of use, it seems that the best way to manage it would be to have the core policy package include a script to install the other packages.&lt;/p&gt;
&lt;p&gt;Finally there&amp;#8217;s the issue of when you recognise the need for a policy module.  It&amp;#8217;s not uncommon for me to do some work for a client while on a train, bus, or plane journey.  I will grab packages needed to simulate a configuration that the client desires and then work out how to get it going correctly while on the journey.  While it would not be a problem for me (I always have the SE Linux policy source and all packages on hand) I expect that many people who have similar needs might find themself a long way from net access without the policy package that they need to do their work.  Sure such people could do their work in permissive mode, but that would encourage them to deploy in permissive mode too and thus defeat the goals of the SE Linux project (in terms of having wide-spread adoption).&lt;/p&gt;
&lt;p&gt;My next post on this topic will cover the issue of custom policy.&lt;/p&gt;
&lt;p&gt;Updated to note that Caleb is a contributor to Ubuntu not a developer.&lt;/p&gt;
&lt;p&gt;&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;[1] &lt;a href=&quot;http://www.calebcase.com/node/2&quot;&gt;http://www.calebcase.com/node/2&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[2] &lt;a href=&quot;http://marc.info/?l=selinux&amp;#038;m=121789588709977&amp;#038;w=2&quot;&gt;http://marc.info/?l=selinux&amp;#038;m=121789588709977&amp;#038;w=2&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;http://etbe.coker.com.au/?p=712&amp;amp;akst_action=share-this&quot; title=&quot;E-mail this, post to del.icio.us, etc.&quot; id=&quot;akst_link_712&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;Share This&lt;/a&gt;
&lt;/p&gt;</content:encoded>
	<dc:date>2008-08-18T10:57:10+00:00</dc:date>
	<dc:creator>etbe</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/himainu/20080814#1218699591">
	<title>Yuichi Nakamura: [SELinux] オタワの話</title>
	<link>http://d.hatena.ne.jp/himainu/20080814#1218699591</link>
	<content:encoded>LWN.netにSMACKの話が載っている。 http://lwn.net/Articles/292291/ ついでに組込みSELinuxとかμ種ITの話も載っている。 よい記念になった。</content:encoded>
	<dc:date>2008-08-14T07:39:51+00:00</dc:date>
	<dc:creator>himainu</dc:creator>
</item>
<item rdf:about="urn:lj:livejournal.com:atom1:paulmoore:1758">
	<title>Paul Moore: Fallback Label Configuration Example</title>
	<link>http://paulmoore.livejournal.com/1758.html</link>
	<content:encoded>One of the new features added to the &lt;a href=&quot;http://kernelnewbies.org/Linux_2_6_25&quot;&gt;2.6.25&lt;/a&gt; release of the Linux Kernel was the ability to specify fallback peer labels using NetLabel.  This made it possible for system administrators to specify a peer label to be used in the absence of a peer labeling protocol such as CIPSO or Labeled IPsec.  In this post I'll try to provide a quick introduction on how to configure NetLabel to provide fallback peer labels.&lt;br /&gt;&lt;br /&gt;The first step is to make sure you have all the right kernel and userspace bits in place.  Any standard Linux distribution kernel 2.6.25 or greater that has NetLabel support should work.  In addition to the kernel you will need to make sure the userspace utility, &lt;i&gt;netlabelctl&lt;/i&gt;, supports the new configuration options; this requires &lt;a href=&quot;http://sourceforge.net/project/showfiles.php?group_id=174379&quot;&gt;netlabel_tools&lt;/a&gt; version 0.18 or greater.  Once you have verified that you have the right versions installed and running, you can verify everything by running the following commands.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;
# netlabelctl -p mgmt version
NetLabel protocol version : 2
# netlabelctl -h
NetLabel Control Utility, version 0.18 (libnetlabel 0.18)
 Usage: netlabelctl [&amp;lt;flags&amp;gt;] &amp;lt;module&amp;gt; [&amp;lt;commands&amp;gt;]

 Flags:
   -h        : help/usage message
   -p        : make the output pretty
   -t &amp;lt;secs&amp;gt; : timeout
   -v        : verbose mode

 Modules and Commands:
  mgmt : NetLabel management
    version
    protocols
  map : Domain/Protocol mapping
    add default|domain:&amp;lt;domain&amp;gt; protocol:&amp;lt;protocol&amp;gt;[,&amp;lt;extra&amp;gt;]
    del default|domain:&amp;lt;domain&amp;gt;
    list
  unlbl : Unlabeled packet handling
    accept on|off
    add default|interface:&amp;lt;DEV&amp;gt; address:&amp;lt;ADDR&amp;gt;[/&amp;lt;MASK&amp;gt;]
                                label:&amp;lt;LABEL&amp;gt;
    del default|interface:&amp;lt;DEV&amp;gt; address:&amp;lt;ADDR&amp;gt;[/&amp;lt;MASK&amp;gt;]
    list
  cipsov4 : CIPSO/IPv4 packet handling
    add trans doi:&amp;lt;DOI&amp;gt; tags:&amp;lt;T1&amp;gt;,&amp;lt;Tn&amp;gt;
            levels:&amp;lt;LL1&amp;gt;=&amp;lt;RL1&amp;gt;,&amp;lt;LLn&amp;gt;=&amp;lt;RLn&amp;gt;
            categories:&amp;lt;LC1&amp;gt;=&amp;lt;RC1&amp;gt;,&amp;lt;LCn&amp;gt;=&amp;lt;RCn&amp;gt;
    add pass doi:&amp;lt;DOI&amp;gt; tags:&amp;lt;T1&amp;gt;,&amp;lt;Tn&amp;gt;
    del doi:&amp;lt;DOI&amp;gt;
    list [doi:&amp;lt;DOI&amp;gt;]
&lt;/pre&gt;&lt;br /&gt;The first command checks to see that the kernel speaks version 2 of the NetLabel control protocol which means that it understands the new fallback peer label configuration options.  The second command verifies that you have &lt;i&gt;netlabelctl&lt;/i&gt; version 0.18 installed and that it supports the fallback configuration commands that we will be using.  If everything looks okay it is time to move on to the next step, building a test tool that we can use to verify the configuration.  Obviously this isn't a strict requirement for configuring the fallback label mechanism but it is a nice way to verify that your configuration is correct.  The test tool I will be using here is a simple little test program I wrote some time ago to test basic peer label functionality for IPv4 TCP sockets, I call it &lt;a href=&quot;http://free.linux.hp.com/~pmoore/files_lj/getpeercon_server.c&quot;&gt;getpeercon_server&lt;/a&gt;.  Once you have downloaded the C source file you will need to compile it with the following command, if you are on a Fedora system make sure you have the libselinux-devel package installed.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;
# gcc -o getpeercon_server getpeercon_server.c -lselinux
# ./getpeercon_server
usage: ./getpeercon_server &amp;lt;port&amp;gt;
&lt;/pre&gt;&lt;br /&gt;As you can see the tool is very simple and takes a single argument, the TCP port to bind to a listen for connections.  If you start the server on port 5000 and connect to it with telnet, netcat, or some other simple TCP application you should see something similar to what is shown below.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;
# ./getpeercon_server 5000
-&amp;gt; creating socket ... ok
-&amp;gt; listening on TCP port 5000 ... ok
-&amp;gt; waiting ... connect(127.0.0.1,NO_CONTEXT)
Hello NetLabel Fans!
-&amp;gt; connection closed
-&amp;gt; waiting ...
&lt;/pre&gt;&lt;br /&gt;In the example above we can see that a client connected from localhost, 127.0.0.1, and there was no peer label information provided with the connection, NO_CONTEXT.  Now lets configure a fallback peer label for localhost and try it again.  Adding a fallback label is relatively simple and can be done with a single command.  However, the example below executes two commands.  The first command adds a fallback label, &quot;system_u:object_r:netlabel_peer_t:s0&quot;, to all traffic coming over the loopback interface, &quot;lo&quot;, from localhost, 127.0.0.1.  The second command displays all of configured fallback labels; not a necessary step but helpful to ensure that you configured everything correctly.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;
# netlabelctl unlbl add interface:lo address:127.0.0.1 \
                        label:system_u:object_r:netlabel_peer_t:s0
# netlabelctl -p unlbl list
Accept unlabeled packets : on
Configured NetLabel address mappings (1)
 interface: lo
   address: 127.0.0.1/32
    label: &quot;system_u:object_r:netlabel_peer_t:s0&quot;
&lt;/pre&gt;&lt;br /&gt;Now, lets try our simple connection test again with our newly established fallback label configuration.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;
# ./getpeercon_server 5000
-&amp;gt; creating socket ... ok
-&amp;gt; listening on TCP port 5000 ... ok
-&amp;gt; waiting ... connect(127.0.0.1,system_u:object_r:netlabel_peer_t:s0)
Fallback Labels Are Really Cool!
-&amp;gt; connection closed
-&amp;gt; waiting ...
&lt;/pre&gt;&lt;br /&gt;If you look at the output you will notice almost everything is the same except for one important thing, instead of NO_CONTEXT the test tool is displaying the fallback label we just configured.  The kernel treats the NetLabel fallback label just the same as a normal peer label taken from a CIPSO tag or Labeled IPsec Security Association.  This means that not only is the fallback label passed to applications that request it, it is also used when enforcing the LSM's network security policy; in this case SELinux.  However, it is important to remember that the fallback labels are overridden by peer labeling protocols.  As a result, if both fallback peer label information and Labeled IPsec peer label information is available then the kernel will use the Labeled IPsec peer label information and ignore the fallback peer labels.  Fallback peer labels can be configured based on the network interface, network address, and netmask or just network address and netmask when the default network interface is chosen.&lt;br /&gt;&lt;br /&gt;Before you start making use of the NetLabel fallback labels, there are a few things you should take into consideration.  First, while the fallback functionality was included in Linux Kernel 2.6.25 there was a small bug which prevented some IPv6 fallback labels from being displayed correctly using the &amp;quot;netlabelctl -p unlbl list&amp;quot; command; this has been &lt;a href=&quot;http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=59d88c00cafe5192b058abf4f3ce17c2e27d1c09&quot;&gt;fixed&lt;/a&gt; in kernel 2.6.26.  Second, Fedora has not yet adopted version 0.18 of &lt;i&gt;netlabel_tools&lt;/i&gt; which means that you will need to download and build &lt;i&gt;netlabelctl&lt;/i&gt; separately to take advantage of the new fallback functionality.  A Red Hat bugzilla &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=439833&quot;&gt;entry&lt;/a&gt; has been filed to get the latest &lt;i&gt;netlabel_tools&lt;/i&gt; package included in Fedora.&lt;br /&gt;&lt;br /&gt;Test tool download: &lt;a href=&quot;http://free.linux.hp.com/~pmoore/files_lj/getpeercon_server.c&quot;&gt;getpeercon_server&lt;/a&gt;&lt;br /&gt;NetLabel userspace download: &lt;a href=&quot;http://sourceforge.net/project/showfiles.php?group_id=174379&quot;&gt;netlabel_tools version 0.18&lt;/a&gt;&lt;br /&gt;Fedora bugzilla entry: &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=439833&quot;&gt;RH BZ #439833&lt;/a&gt;</content:encoded>
	<dc:date>2008-08-13T22:00:43+00:00</dc:date>
</item>
<item rdf:about="http://www.calebcase.com/2 at http://www.calebcase.com">
	<title>Caleb Case: Handling of SELinux in Distros Allowing for Controlled Updates and Local Policies</title>
	<link>http://www.calebcase.com/node/2</link>
	<content:encoded>&lt;p&gt;The current modus operandus of policies as distributed by distros lumps all the policy into one big package. This results in any local policy modifications being wiped away whenever the distro pushes an update to policy. A more ideal situation is to have per module policy packages and a local policy config that allow for per module updates and local policy overrides. &lt;a href=&quot;http://www.calebcase.com/node/2&quot;&gt;Read More&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.calebcase.com/node/2&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2008-08-13T20:43:37+00:00</dc:date>
	<dc:creator>Caleb Case</dc:creator>
</item>
<item rdf:about="http://danwalsh.livejournal.com/22020.html">
	<title>Dan Walsh: Boolean Lockdown Wizard</title>
	<link>http://danwalsh.livejournal.com/22020.html</link>
	<content:encoded>I have been playing around with a new way of representing booleans.&amp;nbsp; I wanted to create a lockdown wizard, that could be used to to lockdown an SELinux system and then extract the lockdown booleans&amp;nbsp; file, so that you could apply it to multiple machines.&lt;br /&gt;&lt;br /&gt;Each section lists the current booleans settings for that module.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;You can either enable/disable or restore the default settings on booleans.&lt;br /&gt;&lt;br /&gt;You can jump ahead to a particular module.&lt;br /&gt;&lt;br /&gt;Try it out by installing &lt;br /&gt;policycoreutils-gui-2.0.52-8.fc9 for Fedora-9&lt;br /&gt;policycoreutils-gui-2.0.54-6.fc10 for Fedora 10.&lt;br /&gt;&lt;br /&gt;Run system-config-selinux/choose booleans and select lockdown&lt;br /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; src=&quot;http://people.fedoraproject.org/~dwalsh/SELinux/lockdown/lockdown1.jpg&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; src=&quot;http://people.fedoraproject.org/~dwalsh/SELinux/lockdown/lockdown2.jpg&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; src=&quot;http://people.fedoraproject.org/~dwalsh/SELinux/lockdown/lockdown3.jpg&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The data in the boolean lockdown is generated off of the installed policy.&amp;nbsp; I would like to see the data in the installed policy become more robust so that we could make the tool better.&amp;nbsp; Is there some way we could define what is secure and what is not?&amp;nbsp; Maybe explain what is allowed in more detail when the boolean is turned on and what is denied when it is turned off.&lt;br /&gt;&lt;br /&gt;A nice feature of this gui is that in the final step you can make the current machine have the boolean settings and you can save these settings to be applied to other machines.&lt;br /&gt;&lt;br /&gt;If you save the settings as boolean_file, you can then copy it to any other Fedora 9 machine and execute&lt;br /&gt;&lt;br /&gt;# semanage boolean -m -F boolean_file&lt;br /&gt;&lt;br /&gt;We hope to eventually make this part of IPA,&amp;nbsp; So you can destribute your SELinux settings around the environment.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;</content:encoded>
	<dc:date>2008-08-11T17:48:38+00:00</dc:date>
	<dc:creator>dwalsh@redhat.com</dc:creator>
</item>
<item rdf:about="http://etbe.coker.com.au/?p=697">
	<title>Russell Coker (security): Executable Stacks in Lenny</title>
	<link>http://etbe.coker.com.au/2008/08/11/executable-stacks-lenny/</link>
	<content:encoded>&lt;p&gt;One thing that I would like to get fixed for Lenny is the shared objects which can reduce the security of a system.  &lt;a href=&quot;http://etbe.coker.com.au/2007/10/07/executable-stack-and-shared-objects/&quot;&gt;Almost a year ago I blogged about the libsmpeg0 library which is listed as requiring an executable stack [1]&lt;/a&gt;.  I submitted a two-line patch which fixes the problem while making no code changes (the patch gives the same result as running &amp;#8220;&lt;b&gt;execstack -c&lt;/b&gt;&amp;#8221; on the resulting shared object).&lt;/p&gt;
&lt;p&gt;My previous post documents the results of the problem when running SE Linux (a process is not permitted to run and an AVC message is logged).  Some people might incorrectly think that this is merely a SE Linux functionality issue.&lt;/p&gt;
&lt;p&gt;The program &lt;b&gt;paxtest&lt;/b&gt; (which is in Debian but is i386 only) tests for a variety of kernel security features in terms of memory management.  To demonstrate the problem that is caused by this issue I ran the commands &amp;#8220;&lt;b&gt;paxtest kiddie&lt;/b&gt;&amp;#8221; and &amp;#8220;&lt;b&gt;LD_PRELOAD=/usr/lib/libsmpeg-0.4.so.0 paxtest kiddie&lt;/b&gt;&amp;#8220;. The difference is that the test named &amp;#8220;&lt;b&gt;Executable stack&lt;/b&gt;&amp;#8221; returns a result of &lt;b&gt;Vulnerable&lt;/b&gt; when the object is loaded.&lt;/p&gt;
&lt;p&gt;This means for example that attacks which rely on an executable stack will be permitted if the &lt;b&gt;libsmpeg-0.4.so.0&lt;/b&gt; shared object is loaded.  So for example a program that loads the library and which takes data from the Internet (EG FreeCiv in network mode) will become vulnerable to attacks which rely on an executable stack because of this bug!&lt;/p&gt;
&lt;p&gt;My &lt;a href=&quot;http://etbe.coker.com.au/2007/10/19/my-se-linux-etch-repository/&quot;&gt;Etch SE Linux repository has had a libsmpeg0 package which fixes  this bug on i386 for almost a year [2]&lt;/a&gt; (the AMD64 packages are more recent).  I have now added packages to fix this bug to &lt;a href=&quot;http://doc.coker.com.au/computers/installing-se-linux-on-lenny/&quot;&gt;my Lenny SE Linux repository [3]&lt;/a&gt;.  I have also volunteered to NMU the package for Lenny.  It seems that it would be rather embarrassing for everyone concerned systems were vulnerable to attack because of a two-line patch not being applied for almost a year.&lt;/p&gt;
&lt;p&gt;I expect that the Release Team will be very accepting of package updates for Lenny which have patches to address this issue.  A patch that has one line per assembler file (in the worst-case) to mark the object code is very easy to review.  The results of the patch can be tested easily, and failure to have such a patch opens potential security holes.  Package maintainers who can&amp;#8217;t fix the assembly code can always run &amp;#8220;&lt;b&gt;execstack -c&lt;/b&gt;&amp;#8221; in the build scripts to give the same result.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://lintian.debian.org/tags/shlib-with-executable-stack.html&quot;&gt;Lintian performs checks for executable stacks and the results are archived here [4]&lt;/a&gt;.  There are currently 36 packages which contain binaries listed as needing executable stacks, I would be surprised if more than 6 of them actually contain shared objects that need an executable stack.  If you use a package that is on that list then please test whether an executable stack is required by running &amp;#8220;&lt;b&gt;execstack -c&lt;/b&gt;&amp;#8221; on the shared object and see if it still works.  If a test of most of the high-level operations of the program in question can be completed successfully without an executable stack then it&amp;#8217;s a strong indication that it&amp;#8217;s not needed.  Note that &lt;b&gt;execstack&lt;/b&gt; is in the &lt;b&gt;prelink&lt;/b&gt; package.  I am happy to help with writing the patches to the packages and using my repositories to distribute the packages, but am not going to do so unless I can work with someone who uses the program in question and can test it&amp;#8217;s functions.  As an example of such testing I played a game of Frozen Bubble to test out the &lt;b&gt;libsmpeg0&lt;/b&gt; patch.&lt;/p&gt;
&lt;p&gt;&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;[1]&lt;a href=&quot;http://etbe.coker.com.au/2007/10/07/executable-stack-and-shared-objects/&quot;&gt; http://etbe.coker.com.au/2007/10/07/executable-stack-and-shared-objects/&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[2]&lt;a href=&quot;http://etbe.coker.com.au/2007/10/19/my-se-linux-etch-repository/&quot;&gt; http://etbe.coker.com.au/2007/10/19/my-se-linux-etch-repository/&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[3]&lt;a href=&quot;http://doc.coker.com.au/computers/installing-se-linux-on-lenny/&quot;&gt; http://doc.coker.com.au/computers/installing-se-linux-on-lenny/&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[4]&lt;a href=&quot;http://lintian.debian.org/tags/shlib-with-executable-stack.html&quot;&gt; http://lintian.debian.org/tags/shlib-with-executable-stack.html&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;http://etbe.coker.com.au/?p=697&amp;amp;akst_action=share-this&quot; title=&quot;E-mail this, post to del.icio.us, etc.&quot; id=&quot;akst_link_697&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;Share This&lt;/a&gt;
&lt;/p&gt;</content:encoded>
	<dc:date>2008-08-10T23:56:08+00:00</dc:date>
	<dc:creator>etbe</dc:creator>
</item>
<item rdf:about="http://intrajp.no-ip.com/nucleus/index.php?itemid=783">
	<title>Shintaro Fujiwara: OSC2008 at Nagoya</title>
	<link>http://intrajp.no-ip.com/nucleus/index.php?itemid=783</link>
	<content:encoded>I will be at Nagoya-City University tomorrow.&lt;br /&gt;
I will demonstrate SELinux.&lt;br /&gt;
Come on everybody !!&lt;br /&gt;
&lt;br /&gt;
http://www.ospn.jp/osc2008-nagoya/</content:encoded>
	<dc:date>2008-08-08T13:18:05+00:00</dc:date>
</item>
<item rdf:about="urn:lj:livejournal.com:atom1:paulmoore:1329">
	<title>Paul Moore: Linux Foundation Presentation Video</title>
	<link>http://paulmoore.livejournal.com/1329.html</link>
	<content:encoded>Thanks to James Morris for pointing out that the &lt;a href=&quot;http://paulmoore.livejournal.com/964.html&quot;&gt;Linux Foundation Japan&lt;/a&gt; videos are now &lt;a href=&quot;http://www.linux-foundation.jp/modules/tinyd5/index.php?id=9&quot;&gt;online&lt;/a&gt;.  I've put a copy at the link below.  All I ask is that you remember I had been in Japan less than a day when this was filmed and was still dealing with a 13 hour time difference :)&lt;br /&gt;&lt;br /&gt;Video download: &lt;a href=&quot;http://free.linux.hp.com/~pmoore/files_lj/labeled_networking-lfjapan-07092008.flv&quot;&gt;Introduction to Labeled Networking on Linux&lt;/a&gt;</content:encoded>
	<dc:date>2008-08-04T23:07:27+00:00</dc:date>
</item>
<item rdf:about="http://etbe.coker.com.au/?p=681">
	<title>Russell Coker (security): Lenny SE Linux on the Desktop</title>
	<link>http://etbe.coker.com.au/2008/08/04/lenny-se-linux-on-the-desktop/</link>
	<content:encoded>&lt;p&gt;I have been asked about the current status of Lenny SE Linux on the Desktop.&lt;/p&gt;
&lt;p&gt;The first thing to consider is the combinations of policies and configurations.  I will number them if only for the purpose of this post, if the numbering is considered generally helpful it could be more widely adopted to describe configurations.&lt;/p&gt;
&lt;p&gt;&lt;ol&gt;&lt;br /&gt;
&lt;li&gt;Default configuration.  This has the default policy and is configured with all users having the domain &lt;b&gt;unconfined_t&lt;/b&gt; and daemons such as POP servers are allowed to access home directories of type &lt;b&gt;unconfined_home_dir_t&lt;/b&gt;.  This allows such daemons to attack privileged user accounts.&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Some restricted users.  This is the same as above but with some users restricted.  Daemons such as POP servers are only allowed to access the home directories of restricted users.  This means that if a user is to have an unconfined account and receive email they must have two Unix accounts or receive their mail under /var/spool/mail.  This is one &lt;b&gt;setsebool&lt;/b&gt; command and one (or maybe a few) &amp;#8220;&lt;b&gt;semanage login -m&lt;/b&gt;&amp;#8221; commands from the default configuration.&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;All users restricted.  The system administrator has the domain &lt;b&gt;sysadm_t&lt;/b&gt; and users have domains such as &lt;b&gt;user_t&lt;/b&gt;.  This requires a few more &lt;b&gt;semanage&lt;/b&gt; commands.  It is equivalent to the old &lt;b&gt;strict&lt;/b&gt; policy.&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;MLS.  This is anything that is based around the MLS policy.&lt;/li&gt;&lt;br /&gt;
&lt;/ol&gt;&lt;/p&gt;
&lt;p&gt;Currently I have two Desktop machines running Lenny (a test machine and my EeePC) and one server.  I have only just switched my test machine to enforcing mode so have no good data on it (apart from the fact that I can boot it up and login - which is always a good start).  The server is running in permissive mode because I have not yet written the policy to allow the POP server to read from unconfined_home_dir_t.  I could get it working by switching from level 1 to level 2 or 3, but I want to get level 1 server policy working for the benefit of others else first.&lt;/p&gt;
&lt;p&gt;My EeePC however is fully functional, I have been doing some work on it - that mostly means running a ssh client under GNOME but that&amp;#8217;s OK (desktop environments such as GNOME and KDE are quite complex and demanding, getting a machine to boot and run such a desktop environment tests out many parts of the system).  It&amp;#8217;s only at level 1 for the moment because I want to get level 1 working everywhere before moving to the higher levels.  I want to get things ready for real users ASAP.  With the way the policy is managed now it will be possible to move from level 1 to 2 or 3 without rebooting or interrupting running services.  So once users have systems running well at level 1 they can easily increase the security at a later date.&lt;/p&gt;
&lt;p&gt;The problems that I have had are due to text relocations in libraries (&lt;a href=&quot;http://etbe.coker.com.au/2007/02/10/execmod/&quot;&gt;see my previous post about execmod permission [1]&lt;/a&gt;).  I&amp;#8217;ve &lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=493678&quot;&gt;filed bug report #493678 against libtheora0 [2]&lt;/a&gt; in regard to this issue and included a patch from Fedora (which disables the non-relocatable assembly code in question).  It seems that upstream have some new assembler code to try and fix this issue, so hopefully we&amp;#8217;ll have something that can make it into Lenny!&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve &lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=493705&quot;&gt;filed bug report #493705 against libswscale0 for the same issue [3]&lt;/a&gt;.  I included a patch to turn off the assembler code in question but that was not well received.  If anyone has some i386 assembler skill and some spare time I would appreciate it if you could try and find a way to make the code position independent while losing little or no performance.&lt;/p&gt;
&lt;p&gt;One thing to note is that I am now using an Opteron 1212 (2.0GHz dual-core) system for compiling, I run the i386 DomU with a 64bit kernel (I expect that 32bit user-space runs faster with a 64bit kernel than a 32bit kernel), and the disks are reasonably fast.  Even so it takes about 15 minutes to build libswscale0 and the other packages from the same source tree.  Previously I was using a 1.0GHz Pentium-3 for my Lenny i386 development until I had the libswscale0 build process go for more than 90 minutes before running out of disk space!  If your build machine is old enough to only be 32bit then you should probably plan on watching a movie or going to bed while the build is in progress.&lt;/p&gt;
&lt;p&gt;I have built packages that work around the above bugs and included them in &lt;a href=&quot;http://etbe.coker.com.au/2008/07/31/installing-se-linux-on-lenny/&quot;&gt;my Lenny repository [4]&lt;/a&gt;.  If you take the packages from that repository plus the Lenny packages then you should have a functional desktop system at level 1.  I would appreciate it if people would start testing that and providing feedback.  One important issue is the discovery of libraries that want shared stacks, text relocations, and executable memory.  The deadline for fixing them properly is even more of a problem due to the number of people who have to be involved in a solution (as compared to the policy where I can do it on my own).&lt;/p&gt;
&lt;p&gt;One finally problem is &lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=493524&quot;&gt;a bug in xdm which causes it to give the wrong context for login sessions due to having an old version of the SE Linux related code [5]&lt;/a&gt;.  Due to a combination of this and some policy bugs you can not login with xdm.  This is not a hugely important issue as most people will use &lt;b&gt;gdm&lt;/b&gt; (which has the newer patch) or &lt;b&gt;kdm&lt;/b&gt; (which has no SE Linux patch but can use &lt;b&gt;pam_selinux.so&lt;/b&gt;).  Also another option is &lt;b&gt;wdm&lt;/b&gt; which works with &lt;b&gt;pam_selinux.so&lt;/b&gt;.  I&amp;#8217;ve had a response to my bug report suggesting that there&amp;#8217;s a bug in the patch (which was taken from gdm so maybe there&amp;#8217;s a bug in gdm code too).  I haven&amp;#8217;t responded to that yet as I&amp;#8217;ve been concentrating on the things that will make the most impact for Lenny.&lt;/p&gt;
&lt;p&gt;At this stage I&amp;#8217;m still unsure of when the release team will cut me off and prevent further SE Linux related fixes from going in Lenny.  I need at least one more update to the policy packages before Lenny is released.  I could release one right now with some useful improvements over what is currently in unstable, but am waiting until I get some other things fixed.&lt;/p&gt;
&lt;p&gt;If I get everything fully working at level 1 (both client and server) before Lenny then I will provide a similar status report for users and testers of levels 2 and 3.  I don&amp;#8217;t expect that I will even get a chance to test level 4 (MLS) properly before Lenny releases.&lt;/p&gt;
&lt;p&gt;&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;[1] &lt;a href=&quot;http://etbe.coker.com.au/2007/02/10/execmod/&quot;&gt;http://etbe.coker.com.au/2007/02/10/execmod/&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[2] &lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=493678&quot;&gt;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=493678&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[3] &lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=493705&quot;&gt;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=493705&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[4] &lt;a href=&quot;http://etbe.coker.com.au/2008/07/31/installing-se-linux-on-lenny/&quot;&gt;http://etbe.coker.com.au/2008/07/31/installing-se-linux-on-lenny/&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[5] &lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=493524&quot;&gt;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=493524&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;http://etbe.coker.com.au/?p=681&amp;amp;akst_action=share-this&quot; title=&quot;E-mail this, post to del.icio.us, etc.&quot; id=&quot;akst_link_681&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;Share This&lt;/a&gt;
&lt;/p&gt;</content:encoded>
	<dc:date>2008-08-04T12:42:45+00:00</dc:date>
	<dc:creator>etbe</dc:creator>
</item>
<item rdf:about="http://etbe.coker.com.au/?p=675">
	<title>Russell Coker (security): Upgrading SE Linux Policy</title>
	<link>http://etbe.coker.com.au/2008/08/02/upgrading-se-linux-policy/</link>
	<content:encoded>&lt;p&gt;When I first packaged the SE Linux policy for Debian the only way to adjust the policy was to edit the source files and recompile.  Often changes that you might desire involved changing macros so while it would have been theoretically possible to just tack a few type definitions and allow rules at the end, you often wanted to change a macro to have a change apply all through the policy.  To deal with that I had the policy source installed on all machines and the package update policy would compile it into a binary form and load it into the kernel.&lt;/p&gt;
&lt;p&gt;Now there was the issue of merging user changes with changes from a new policy package.  For most configuration files on a Unix system you can just leave any files that are modified by the user, not taking the new default configuration might cause the user to miss out on some new features - but presumably they were happy with the way it worked in the past.  However due to inter-dependencies this wasn&amp;#8217;t possible for SE Linux, if one file was not ungraded due to user changes and other files related to it were then the result could be a compile failure.&lt;/p&gt;
&lt;p&gt;Another issue was the fact that a newer version of the policy might permit operations that the sys-admin did not desire and therefore not meet their security goals, or it might not permit operations that are essential to the operation of the system and interrupt service.&lt;/p&gt;
&lt;p&gt;To solve this I wrote a script that prompted for upgrades to policy source files and allowed the sys-admin to choose which files to upgrade.  This worked reasonably well in the early days when the number of files was small.  But as the policy increased in size it became increasingly painful to upgrade the policy with as many as 100 questions being asked.&lt;/p&gt;
&lt;p&gt;The solution to this (as implemented in Fedora Core 5, Debian/Etch, and newer distributions) was to have binary policy modules that maintain their dependencies.  Now there are binary policy modules which can be loaded at will (the default install for Debian only installs modules that match the installed programs) and the modules can have optional sections with dependencies.  So if you remove a module that defines a domain and there are other modules which have rules to allow communication with that domain then the optional sections of policy in the other modules is disabled when the domain becomes undefined.  This solves the technical issues related to module inter-dependencies but the issue of intent and interaction with the rest of the system remains.&lt;/p&gt;
&lt;p&gt;With Red Hat distributions the solution has been to upgrade the running policy every time the policy package is upgraded and be cautious when changing policy.  They do a good job of the upgrade process (including relabeling files when the file contexts change) and in terms of policy changes I have not heard complaints from users about that.  Users who don&amp;#8217;t want a newer version of the policy can always put the package on hold.&lt;/p&gt;
&lt;p&gt;For the Debian distribution after Lenny I plan to have a policy upgrade process that relabels files and a &lt;b&gt;debconf&lt;/b&gt; question as to whether package upgrades should upgrade the policy.  But for Lenny the freeze is already in progress so it seems to late to make such changes.  Instead I&amp;#8217;m going to upload a new version of the &lt;b&gt;selinux-basics&lt;/b&gt; package with a program named &lt;b&gt;selinux-policy-upgrade&lt;/b&gt; that will upgrade all the policy modules that are in use.  This is not the ideal solution, but I think it will keep Lenny users reasonably happy.&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;http://etbe.coker.com.au/?p=675&amp;amp;akst_action=share-this&quot; title=&quot;E-mail this, post to del.icio.us, etc.&quot; id=&quot;akst_link_675&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;Share This&lt;/a&gt;
&lt;/p&gt;</content:encoded>
	<dc:date>2008-08-02T03:16:06+00:00</dc:date>
	<dc:creator>etbe</dc:creator>
</item>
<item rdf:about="http://etbe.coker.com.au/?p=673">
	<title>Russell Coker (security): Postfix and chroot</title>
	<link>http://etbe.coker.com.au/2008/08/02/postfix-and-chroot/</link>
	<content:encoded>&lt;p&gt;I have written a script named postfix-nochroot to disable the chroot functionality of Postfix.  I plan to initially include this in the &lt;b&gt;selinux-basics&lt;/b&gt; package in Debian, but if the script was adopted by the Postfix package or some other package that seems more appropriate then I would remove it from selinux-basics.&lt;/p&gt;
&lt;p&gt;The reason for disabling chroot is that when running SE Linux the actions of the various Postfix processes are restricted greatly, such that granting chroot access would increase the privileges.  Another issue is the creation of the chroot environment, the Postfix package in Debian will recreate the files needed for the chroot under /var/spool/postfix when it is started.  The first problem with this is that when a package is ugraded the chroot environment won&amp;#8217;t be upgraded (with the exceptions of some packages that have special code to restart Postfix) and when the sys-admin edits files under /etc those changes won&amp;#8217;t be mirrored in the chroot environment either.&lt;/p&gt;
&lt;p&gt;The real problem when running SE Linux is that it requires extra privileges to be granted to the Postfix processes (to be able to call &lt;b&gt;chroot()&lt;/b&gt;).  While the SE Linux policy places much greater restrictions on the actions of daemons than a chroot would.  For example a non-chrooted daemon process running with SE Linux will not be able to see most processes in &lt;b&gt;ps&lt;/b&gt; output (it will be able to see that processes exist through entries under &lt;/p&gt;/proc, but without the ability to search the subdirectories of &lt;b&gt;/proc&lt;/b&gt; related to other processes it won&amp;#8217;t be able to see what they are).
&lt;p&gt;It would be possible for my script to be used as the first step towards making a Postfix installation automatically use a chroot when SE Linux is disabled or in permissive mode, and not use a chroot when SE Linux is in enforcing mode.  I&amp;#8217;ve probably done about half the work that is needed if this was the end goal, but I have no great interest in such configuration and no time to work on it.  I would be prepared to accept patches from other people who want to go in this direction.&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;http://etbe.coker.com.au/?p=673&amp;amp;akst_action=share-this&quot; title=&quot;E-mail this, post to del.icio.us, etc.&quot; id=&quot;akst_link_673&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;Share This&lt;/a&gt;
&lt;/p&gt;</content:encoded>
	<dc:date>2008-08-02T01:24:23+00:00</dc:date>
	<dc:creator>etbe</dc:creator>
</item>
<item rdf:about="http://james-morris.livejournal.com/33001.html">
	<title>James Morris: LF Japan Symposium Video</title>
	<link>http://james-morris.livejournal.com/33001.html</link>
	<content:encoded>It seems the videos from the recent &lt;a href=&quot;http://www.linux-foundation.jp/modules/tinyd5/index.php?id=9&quot;&gt;LF Japan Symposium&lt;/a&gt; are up, including &lt;a href=&quot;http://www.linux-foundation.jp/uploads/seminar20080709/lf-jm.flv&quot;&gt;my talk on the SELinux project&lt;/a&gt; (139MB FLV).  It's really odd seeing yourself giving a talk -- I'm making myself watch so I can see what to try and improve in the future.&lt;br /&gt;&lt;br /&gt;And yes, &quot;so&quot; is totally the new &quot;um&quot;.</content:encoded>
	<dc:date>2008-08-01T04:36:01+00:00</dc:date>
</item>
<item rdf:about="http://etbe.coker.com.au/?p=671">
	<title>Russell Coker (security): selinux-activate</title>
	<link>http://etbe.coker.com.au/2008/08/01/selinux-activate/</link>
	<content:encoded>&lt;p&gt;I have written a script for Debian named &lt;b&gt;selinux-activate&lt;/b&gt; which is included in &lt;b&gt;selinux-basics&lt;/b&gt; version &lt;b&gt;0.3.3+nmu1&lt;/b&gt; (which I have uploaded to Debian/Unstable).  The script when run with no parameters will change the GRUB configuration to include &lt;b&gt;selinux=1&lt;/b&gt; on the kernel command-line and enable SE Linux support in the PAM modules for &lt;b&gt;login&lt;/b&gt;, &lt;b&gt;gdm&lt;/b&gt;, and &lt;b&gt;kdm&lt;/b&gt;.  One issue with this is that if you run the command before installing kdm or gdm then you won&amp;#8217;t have the pam configuration changed - but as it&amp;#8217;s OK to run the script multiple times this shouldn&amp;#8217;t be a problem.&lt;/p&gt;
&lt;p&gt;The new selinux-basics package will also force a reboot after relabelling all filesystems.  I had tested &amp;#8220;&lt;b&gt;umount -a ; reboot -f&lt;/b&gt;&amp;#8221; but discovered that &amp;#8220;&lt;b&gt;reboot -f&lt;/b&gt;&amp;#8221; causes filesystem corruption in some situations (my EeePC running an encrypted LVM volume on an SD card had this problem).  So I now use a regular &amp;#8220;&lt;b&gt;reboot&lt;/b&gt;&amp;#8220;.&lt;/p&gt;
&lt;p&gt;If no-one points out any serious flaws I plan to ask the release team to include this version of &lt;b&gt;selinux-basics&lt;/b&gt; in Lenny.  I believe that it will make it significantly easier to install SE Linux while also reducing the incidence of systems being damaged due to mistakes.  If you edit the GRUB configuration file by hand then there is a risk of a typo making a system unbootable.&lt;/p&gt;
&lt;p&gt;The package in question is already in my Lenny repository, see &lt;a href=&quot;http://etbe.coker.com.au/2008/07/31/installing-se-linux-on-lenny/&quot;&gt;my previous post about Lenny SE Linux for details [1]&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;[1] &lt;a href=&quot;http://etbe.coker.com.au/2008/07/31/installing-se-linux-on-lenny/&quot;&gt;http://etbe.coker.com.au/2008/07/31/installing-se-linux-on-lenny/&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;http://etbe.coker.com.au/?p=671&amp;amp;akst_action=share-this&quot; title=&quot;E-mail this, post to del.icio.us, etc.&quot; id=&quot;akst_link_671&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;Share This&lt;/a&gt;
&lt;/p&gt;</content:encoded>
	<dc:date>2008-08-01T01:11:18+00:00</dc:date>
	<dc:creator>etbe</dc:creator>
</item>
<item rdf:about="http://etbe.coker.com.au/?p=666">
	<title>Russell Coker (security): Installing SE Linux on Lenny</title>
	<link>http://etbe.coker.com.au/2008/07/31/installing-se-linux-on-lenny/</link>
	<content:encoded>&lt;p&gt;Currently Debian/Lenny contains all packages needed to run SE Linux apart from the policy.  The policy package is missing because it needs to sit in unstable for a while before migrating to testing (Lenny), and I keep fixing bugs and uploading new versions.&lt;/p&gt;
&lt;p&gt;I have set up my own APT repository for SE Linux packages (&lt;a href=&quot;http://etbe.coker.com.au/2007/10/19/my-se-linux-etch-repository/&quot;&gt;as I did for Etch [1]&lt;/a&gt;).  The difference is that it&amp;#8217;s working now (for i386 and AMD64) while I released my Etch repository some time after the release of Etch.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;gpg &amp;#45;-keyserver hkp://subkeys.pgp.net &amp;#45;-recv-key F5C75256&lt;br /&gt;
 gpg -a &amp;#45;-export F5C75256 | apt-key add -&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;To enable the use of my repository you must first run the above two commands to retrieve and install my GPG key (take appropriate measures to verify that you have the correct key).&lt;/p&gt;
&lt;p&gt;&lt;b&gt;deb http://www.coker.com.au lenny selinux&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Then add the above line to &lt;b&gt;/etc/apt/sources.list&lt;/b&gt; and run &amp;#8220;&lt;b&gt;apt-get update&lt;/b&gt;&amp;#8221; to download the list of packages.&lt;/p&gt;
&lt;p&gt;Next run the command &amp;#8220;&lt;b&gt;apt-get install selinux-policy-default selinux-basics&lt;/b&gt;&amp;#8221; to install all the necessary packages and then &amp;#8220;&lt;b&gt;touch /.autorelabel&lt;/b&gt;&amp;#8221; to cause the filesystems to be labeled on the next boot.  Edit the file &lt;b&gt;/boot/grub/menu.lst&lt;/b&gt; and add &amp;#8220;&lt;b&gt;selinux=1&lt;/b&gt;&amp;#8221; to the end of the line which starts with &amp;#8220;&lt;b&gt;# kopt=&lt;/b&gt;&amp;#8221; and then run the command &lt;b&gt;update-grub&lt;/b&gt; to apply this change.&lt;/p&gt;
&lt;p&gt;Then reboot and the filesystems will be relabeled.  Init will be running in the wrong context so you have to reboot again before everything is running correctly (I am thinking of having the autorelabel process automatically do the second reboot).&lt;/p&gt;
&lt;p&gt;For future reference please use &lt;a href=&quot;http://doc.coker.com.au/computers/installing-se-linux-on-lenny/&quot;&gt;the page on my documents blog - I will update it regularly as needed [2]&lt;/a&gt;.  This post will not be changed when it becomes outdated in a few days.&lt;/p&gt;
&lt;p&gt;&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;[1] &lt;a href=&quot;http://etbe.coker.com.au/2007/10/19/my-se-linux-etch-repository/&quot;&gt;http://etbe.coker.com.au/2007/10/19/my-se-linux-etch-repository/&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[2] &lt;a href=&quot;http://doc.coker.com.au/computers/installing-se-linux-on-lenny/&quot;&gt;http://doc.coker.com.au/computers/installing-se-linux-on-lenny/&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;http://etbe.coker.com.au/?p=666&amp;amp;akst_action=share-this&quot; title=&quot;E-mail this, post to del.icio.us, etc.&quot; id=&quot;akst_link_666&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;Share This&lt;/a&gt;
&lt;/p&gt;</content:encoded>
	<dc:date>2008-07-31T06:20:18+00:00</dc:date>
	<dc:creator>etbe</dc:creator>
</item>
<item rdf:about="http://danwalsh.livejournal.com/21868.html">
	<title>Dan Walsh: How do I enable SELinux if I had it disabled?</title>
	<link>http://danwalsh.livejournal.com/21868.html</link>
	<content:encoded>Say you want to leave the dark side of SELinux disabled and you want to turn it on for the first time.&amp;nbsp; Here are the steps to enable it.&lt;br /&gt;&lt;br /&gt;You need to edit the /etc/selinux/config file or use system-config-selinux and change the machine to enforcing or permissive.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;If the machine was never labeled or not for a very long time you will probably need to boot in permissive mode.&amp;nbsp; The boot sequence will automatically trigger a relabel, but in enforcing mode there is a good chance that some confined domain (udev?, mount?) will get denied before the system gets a chance to fix the labels.&lt;br /&gt;&lt;br /&gt;If you want the machine to be in enforcing mode you can set the flag in the file to enforcing but boot the kernel with the enforcing=0 flag.&lt;br /&gt;&lt;br /&gt;reboot.&lt;br /&gt;&lt;br /&gt;You should see the machine start the relabeling.&amp;nbsp; The relabeling will output a &quot;*&quot; for each 1000 files it relabels.&amp;nbsp; This should take at least 10 minutes and maybe longer depending on the number of files on your local disks.&lt;br /&gt;&lt;br /&gt;Now when the machine finishes booting.&amp;nbsp; You should be ready to login.&lt;br /&gt;&lt;br /&gt;If you are running on Fedora 9 your SELinux login setup should look like&lt;br /&gt;&lt;br /&gt;# semanage login -l&lt;br /&gt;&lt;br /&gt;Login Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELinux User&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MLS/MCS Range&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;__default__&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unconfined_u&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s0-s0:c0.c1023&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;root&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unconfined_u&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s0-s0:c0.c1023&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;system_u&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; system_u&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s0-s0:c0.c1023&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;If you have something different you cab fix it using the following commands:&lt;br /&gt;&lt;br /&gt;# semanage user -a -S targeted -P user -R &quot;unconfined_r system_r&quot; -r s0-s0:c0.c1023 unconfined_u &lt;br /&gt;# semanage login -m -S targeted&amp;nbsp; -s &quot;unconfined_u&quot; -r s0-s0:c0.c1023 __default__&lt;br /&gt;# semanage login -m -S targeted&amp;nbsp; -s &quot;unconfined_u&quot; -r s0-s0:c0.c1023 root&lt;br /&gt;# semanage user -a -S targeted&amp;nbsp; -P user -R guest_r guest_u&lt;br /&gt;# semanage user -a -S targeted&amp;nbsp; -P user -R xguest_r xguest_u &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now you can put the machine into enforcing mode and you should be able to login as a normal user, knowing you have SELinux protecting your system.</content:encoded>
	<dc:date>2008-07-30T15:08:19+00:00</dc:date>
	<dc:creator>dwalsh@redhat.com</dc:creator>
</item>
<item rdf:about="http://etbe.coker.com.au/?p=659">
	<title>Russell Coker (security): SE Linux in Lenny Status</title>
	<link>http://etbe.coker.com.au/2008/07/29/se-linux-in-lenny-status/</link>
	<content:encoded>&lt;p&gt;SE Linux is almost ready to use in Lenny.  Currently I am waiting on the packages &lt;b&gt;libsepol1&lt;/b&gt; version &lt;b&gt;2.0.30-2&lt;/b&gt;, &lt;b&gt;policycoreutils&lt;/b&gt; &lt;b&gt;2.0.49-3&lt;/b&gt;, and &lt;b&gt;selinux-policy-default&lt;/b&gt; version &lt;b&gt;0.0.20080702-4&lt;/b&gt; to make their way to testing.  The first two should get there soon, the policy will take a little longer as I just made a new upload today (to make it correctly depend on libsepol1 and also some policy fixes).&lt;/p&gt;
&lt;p&gt;Update: &lt;b&gt;libsepol1&lt;/b&gt; version &lt;b&gt;2.0.30-2&lt;/b&gt; and &lt;b&gt;policycoreutils&lt;/b&gt; &lt;b&gt;2.0.49-3&lt;/b&gt; are now in Lenny (testing).  Now I&amp;#8217;m just waiting for the policy.&lt;/p&gt;
&lt;p&gt;Ideally we would be able to pin the apt repositories to take just the packages we want from Unstable (&lt;a href=&quot;http://jaqque.sbih.org/kplug/apt-pinning.html&quot;&gt;here is a document on how it&amp;#8217;s supposed to work [1]&lt;/a&gt;).  That doesn&amp;#8217;t work, so I also tried setting &amp;#8220;&lt;b&gt;APT::Default-Release &amp;#8220;stable&amp;#8221;;&lt;/b&gt;&amp;#8221; in &lt;b&gt;/etc/apt/apt.conf&lt;/b&gt; (as suggested on IRC).  This gave better results than pinning (which seems to not work at all) but it still wanted to take unreasonably large numbers of packages from unstable.&lt;/p&gt;
&lt;p&gt;Currently to get SE Linux in Lenny (Testing) working you must first upgrade everything to the testing versions, then install &lt;b&gt;libsepol1&lt;/b&gt; from Unstable (this is really important as until a few hours ago the Policy packages in Unstable didn&amp;#8217;t depend on it).  Then you install &lt;b&gt;policycoreutils&lt;/b&gt; and finally the policy package which will be &lt;b&gt;selinux-policy-default&lt;/b&gt; for almost everyone - I have not tested the MLS package (&lt;b&gt;selinux-policy-mls&lt;/b&gt;) and it&amp;#8217;s quite likely that it won&amp;#8217;t work well.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=486120&quot;&gt;The policycoreutils package has a bug related to Python libraries [2]&lt;/a&gt; which I don&amp;#8217;t know how to fix.  Any advice would be appreciated.  It&amp;#8217;s obvious that the package name needs to not contain a hyphen, but what the name should be and where the files should be stored.  The release team have been pretty cooperative with my requests so far to get broken things fixed, hopefully I&amp;#8217;ll find a solution to this (and the other similar issues) soon enough to avoid any great inconvenience to them.  I&amp;#8217;m sure that they will agree that significantly broken packages (which have syntax errors in scripts) need to be fixed before release.&lt;/p&gt;
&lt;p&gt;There are also some last minute policy issues that need to be fixed.  To properly test this I&amp;#8217;m now running the server for my blog and mail server on Lenny with SE Linux.  I think that I&amp;#8217;m only one policy bug away from running in enforcing mode.&lt;/p&gt;
&lt;p&gt;While the situation is pretty difficult at the moment (I&amp;#8217;ve had a report forwarded to me from an OLS delegate who tried Lenny SE Linux with the older policy packages and got a bad result), I believe that once Lenny is released we will have the best ever support for SE Linux.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.debian.org/security/2008/dsa-1617&quot;&gt;The Debian security team recently released an update to the SE Linux policy packages to match the recent updates to BIND [3]&lt;/a&gt;.  I was grateful that they did this - and without any significant involvement from me.  I was asked to advise on the patch that they had written, I confirmed that it looked good (which took hardly any effort), and they did the rest (which appears to be a moderate amount of work).  Given the situation it would have been understandable if they had decided that it was something that could be worked around.&lt;/p&gt;
&lt;p&gt;I expect that SE Linux on Lenny will get more users than on Etch, so therefore more issues of this nature will be discovered so I expect to have more interaction with the Debian security group in future.&lt;/p&gt;
&lt;p&gt;&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;[1] &lt;a href=&quot;http://jaqque.sbih.org/kplug/apt-pinning.html&quot;&gt;http://jaqque.sbih.org/kplug/apt-pinning.html&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[2] &lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=486120&quot;&gt;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=486120&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[3] &lt;a href=&quot;http://www.debian.org/security/2008/dsa-1617&quot;&gt;http://www.debian.org/security/2008/dsa-1617&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;http://etbe.coker.com.au/?p=659&amp;amp;akst_action=share-this&quot; title=&quot;E-mail this, post to del.icio.us, etc.&quot; id=&quot;akst_link_659&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;Share This&lt;/a&gt;
&lt;/p&gt;</content:encoded>
	<dc:date>2008-07-29T13:39:43+00:00</dc:date>
	<dc:creator>etbe</dc:creator>
</item>
<item rdf:about="http://www.calebcase.com/4 at http://www.calebcase.com">
	<title>Caleb Case: Cuil</title>
	<link>http://www.calebcase.com/node/4</link>
	<content:encoded>&lt;p&gt;I just tried &lt;a href=&quot;http://www.cuil.com&quot;&gt;Cuil&lt;/a&gt; for the first time and I have to admit I'm left wanting. A common search for me is &quot;wiki &amp;lt;something&amp;gt;&quot;. I do this mainly because Wikipedia's own search engine isn't serviceable. However, running a similar search through Cuil netted me nada. Not only did it fail to find me what I wanted, but it also failed to do so in a timely manner. The search is sloooooooow. Which I suspect might have something to do with it Cuil showing up on Google News today (and hence may be experiencing some rather large traffic). Even still, it looks like the engine is pulling down images from the websites is finds to display next to their links and summaries (which takes time and can result in the page simply not ever finishing to load). Which leaves me with the interface. I do _not_ want 3 columns that I have to scroll. Now if they had given me, say, the option to shrink the summaries, eliminate the pictures, make everything fit on a single screen without scrolling, and shortcut keys for switching to the next page... well then maybe. As it stands, I'd say its pretty much unusable.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.calebcase.com/node/4&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2008-07-28T14:10:10+00:00</dc:date>
	<dc:creator>Caleb Case</dc:creator>
</item>
<item rdf:about="http://etbe.coker.com.au/?p=639">
	<title>Russell Coker (security): Biba and BLP for Network Services</title>
	<link>http://etbe.coker.com.au/2008/07/28/biba-and-blp-for-network-services/</link>
	<content:encoded>&lt;p&gt;&lt;a href=&quot;http://lastinfirstout.blogspot.com/2008/07/presumed-hostile-your-application-is.html&quot;&gt;Michael Janke has written an interesting article about data flows in networks [1]&lt;/a&gt;, he describes how data from the Internet should be considered to have low integrity (he refers to it as &amp;#8220;untrusted&amp;#8221;) and that as you get closer to the more important parts of the system it needs to be of higher integrity.&lt;/p&gt;
&lt;p&gt;It seems to me that his ideas are very similar in concept to &lt;a href=&quot;http://en.wikipedia.org/wiki/Biba_Integrity_Model&quot;&gt;the Biba Integrity Model [2]&lt;/a&gt;.  The Biba model is based around the idea that a process can only write data to a resource that is of equal or lower integrity and only read data from a resource that is of equal or higher integrity, this is often summarised as &amp;#8220;&lt;b&gt;no read-down and no write-up&lt;/b&gt;&amp;#8220;.  In a full implementation of Biba the OS would label all data (including network data) as to it&amp;#8217;s integrity level and prevent any communication that violates the model (except of course for certain privileged programs - for example the file or database that stores user passwords must have high integrity but any user can run the program to change their password).  A full Biba implementation would not work for a typical Internet service, but considering some of the concepts of Biba while designing an Internet service should lead to a much better design (as demonstrated in Michael&amp;#8217;s post).&lt;/p&gt;
&lt;p&gt;While considering the application of Biba to network design it makes sense to also consider consider &lt;a href=&quot;http://en.wikipedia.org/wiki/Bell-LaPadula_model&quot;&gt;the Bell LaPadula model (BLP) [3]&lt;/a&gt;.  In computer systems designed for military use a combination of Biba and BLP is not uncommon, while a strict combination of those technologies would be an almost insurmountable obstacle to development of Internet services I think it&amp;#8217;s worth considering the concepts.&lt;/p&gt;
&lt;p&gt;BLP is a system that is primarily designed around the goal of protecting data confidentiality.  Every process (subject) has a sensitivity label (often called a &amp;#8220;clearance&amp;#8221;) which is comprised of a sensitivity level and a set of categories and every resource that a process might access (object) also has a sensitivity label (often called a &amp;#8220;classification&amp;#8221;).  If the clearance of the subject dominates the classification of the object (IE the level is equal or greater and the set of categories is a super-set) then read access is permitted, if the clearance of the subject is dominated by the classification of the object then write access is permitted, and the clearance and classification have to be equal for read/write access to be permitted.  This is often summarised as &amp;#8220;&lt;b&gt;no write-down and no read-up&lt;/b&gt;&amp;#8220;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=0650&amp;#038;db=bks&amp;#038;fname=/SGI_EndUser/books/TCMW_UG/sgi_html/ch02.html&quot;&gt;SGI has published a lot of documentation for their Trusted Irix (TRIX) product on the net, the section about mandatory access control covers Biba and BBLP [4]&lt;/a&gt;.  I recommend that most people who read my blog not read the description of how Biba and BLP works, it will just give you nightmares.&lt;/p&gt;
&lt;p&gt;The complexity of either Biba or BLP (including categories) is probably too great for consideration when designing network services which have much lower confidentiality requirements (even the loss of a few million credit card numbers is trivial compared to some of the potential results of leaks of confidential military data).  But a simpler case of BLP with only levels is worth considering.  You might have credit card numbers stored in a database classified as &amp;#8220;Top Secret&amp;#8221; and not allow less privileged processes to read from it.  The data about customers addresses and phone numbers might be classified as &amp;#8220;Secret&amp;#8221; and all the other data might merely be &amp;#8220;Classified&amp;#8221;.&lt;/p&gt;
&lt;p&gt;One way of using the concepts of Biba and BLP in the design of a complex system would be to label every process and data store in the system according to it&amp;#8217;s integrity and classification/clearance.  Then for the situations where data flows to processes with lower clearance the code could be well designed and audited to ensure that it does not leak data.  For situations where data of low integrity (EG data from a web browser) is received by a process of high integrity (EG the login screen) the code would have to be designed and audited to ensure that it correctly parsed the data and didn&amp;#8217;t allow SQL injection or other potential attacks.&lt;/p&gt;
&lt;p&gt;I expect that many people who have experience with Biba and BLP will be rolling their eyes while reading this.  The situation that we are dealing with in regard to PHP and SQL attacks over the Internet is quite different to the environments where proper implementations of Biba and BLP are deployed.  We need to do what we can to try and improve things, and I think that the best way of improving things in terms of web application security would involve thinking about clearance and integrity as separate issues in the design phase.&lt;/p&gt;
&lt;p&gt;&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;[1]&lt;a href=&quot;http://lastinfirstout.blogspot.com/2008/07/presumed-hostile-your-application-is.html&quot;&gt; http://lastinfirstout.blogspot.com/2008/07/presumed-hostile-your-application-is.html&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[2] &lt;a href=&quot;http://en.wikipedia.org/wiki/Biba_Integrity_Model&quot;&gt;http://en.wikipedia.org/wiki/Biba_Integrity_Model&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[3] &lt;a href=&quot;http://en.wikipedia.org/wiki/Bell-LaPadula_model&quot;&gt;http://en.wikipedia.org/wiki/Bell-LaPadula_model&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[4]&lt;a href=&quot;http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=0650&amp;#038;db=bks&amp;#038;fname=/SGI_EndUser/books/TCMW_UG/sgi_html/ch02.html&quot;&gt; http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=0650&amp;#038;db=bks&amp;#038;fname=/SGI_EndUser/books/TCMW_UG/sgi_html/ch02.html&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;http://etbe.coker.com.au/?p=639&amp;amp;akst_action=share-this&quot; title=&quot;E-mail this, post to del.icio.us, etc.&quot; id=&quot;akst_link_639&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;Share This&lt;/a&gt;
&lt;/p&gt;</content:encoded>
	<dc:date>2008-07-28T09:00:50+00:00</dc:date>
	<dc:creator>etbe</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/himainu/20080727#1217097061">
	<title>Yuichi Nakamura: [SELinux] Linux Symposium　最終日</title>
	<link>http://d.hatena.ne.jp/himainu/20080727#1217097061</link>
	<content:encoded>Smackの発表 Smackネ申が、Smackのシンプルっぷりを力説。途中、SELinux軍団からツッコミが何度も入る。 以下話の内容を列挙。   Smackは、MAC（データへのアクセス制御)のみを提供。settimeofdayなど特権は範囲外。特権はcapabilityを使ってくれとのこと  Smackのアクセス制御モデル。図解だと一目で分かった。   システムラベル3種類_、^、*。   _は、全てのsubjectからreadonly, ^は全てのobjectにreadアクセス、*は、全てのs ...</content:encoded>
	<dc:date>2008-07-26T18:31:01+00:00</dc:date>
	<dc:creator>himainu</dc:creator>
</item>
<item rdf:about="http://www.calebcase.com/3 at http://www.calebcase.com">
	<title>Caleb Case: Source code highlighting!</title>
	<link>http://www.calebcase.com/node/3</link>
	<content:encoded>&lt;p&gt;&lt;div class=&quot;geshifilter&quot;&gt;&lt;pre class=&quot;geshifilter-python&quot;&gt;&lt;ol&gt;&lt;li&gt;&lt;div&gt;&lt;span&gt;class&lt;/span&gt; Lambda&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;:&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;        &lt;span&gt;pass&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;conf = Lambda&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;conf.&lt;span&gt;source&lt;/span&gt; = Lambda&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;conf.&lt;span&gt;source&lt;/span&gt;.&lt;span&gt;highlight&lt;/span&gt; = &lt;span&gt;True&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;span&gt;def&lt;/span&gt; clap&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;:&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;        &lt;span&gt;print&lt;/span&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;&amp;quot;*clap*&lt;span&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt; * &lt;span&gt;3&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;span&gt;if&lt;/span&gt; conf.&lt;span&gt;source&lt;/span&gt;.&lt;span&gt;highlight&lt;/span&gt; &lt;span&gt;is&lt;/span&gt; &lt;span&gt;True&lt;/span&gt;:&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;        clap&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;....&lt;/p&gt;
&lt;p&gt;Ok that was silly, but you get the idea. Source code highlighting is available (even in the comments):&lt;/p&gt;
&lt;p&gt;&lt;div class=&quot;geshifilter&quot;&gt;&lt;pre class=&quot;geshifilter-xml&quot;&gt;&lt;ol&gt;&lt;li&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&amp;lt;code&lt;/span&gt; &lt;span&gt;type&lt;/span&gt;=&lt;span&gt;&amp;quot;python&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;...&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&amp;lt;/code&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;Check out the &lt;a href=&quot;http://www.calebcase.com/filter/tips&quot;&gt;input filter tips&lt;/a&gt; for more information on using the source code highlighter.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.calebcase.com/node/3&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2008-07-26T03:10:05+00:00</dc:date>
	<dc:creator>Caleb Case</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/himainu/20080726#1217012826">
	<title>Yuichi Nakamura: [SELinux] Linux Symposium 3日目</title>
	<link>http://d.hatena.ne.jp/himainu/20080726#1217012826</link>
	<content:encoded>私の発表 終わった！！質問がいくつかあった。   μ種ITはLabeled Networkをサポートしてるのか？   Labeled networkのほうがパフォーマンス出ると思うよと言っていた気がするのだが。。。    Androidの仕事はオープンなのか？  Montavistaのmicro SELinuxとの関係は？  など。micro SELinuxは、他でも聞かれる。micro SELinuxは中身は不明だが、SELinuxの布教としては良かったようだ。 Joshua Brindle氏に、呼 ...</content:encoded>
	<dc:date>2008-07-25T19:07:06+00:00</dc:date>
	<dc:creator>himainu</dc:creator>
</item>
<item rdf:about="http://james-morris.livejournal.com/32669.html">
	<title>James Morris: OLS Slides + Macbook fail</title>
	<link>http://james-morris.livejournal.com/32669.html</link>
	<content:encoded>&lt;a href=&quot;http://namei.org/presentations/ols-2008-selinux-talk.pdf&quot;&gt;Here are the slides&lt;/a&gt; from my OLS talk, although &lt;a href=&quot;http://namei.org/ols-2008-selinux-paper.pdf&quot;&gt;the paper&lt;/a&gt; is way more useful.&lt;br /&gt;&lt;br /&gt;For those who attended Dan Walsh's talk on confining the user, you can find the slides &lt;a href=&quot;http://selinuxproject.org/files/2008_selinux_developer_summit/ols/2008_ols_dwalsh_confining_the_user.pdf&quot;&gt;here&lt;/a&gt;.  Quite a few people expressed interest in them during the talk, and Dan sent them to me for some reason, so there you go.&lt;br /&gt;&lt;br /&gt;***&lt;br /&gt;&lt;br /&gt;Btw, my MacBook seems to never work with projectors (thanks to Paul Moore for lending me his laptop for the talk).  It's relatively recent and has the following graphics stuff:&lt;br /&gt;&lt;tt&gt;&lt;br /&gt;00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (rev 03)&lt;br /&gt;00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (rev 03)&lt;br /&gt;&lt;/tt&gt;&lt;br /&gt;Nothing seems to work: rebooting with the cable attached (VGA text mode works, but not X), exhaustive messing about with xrandr, hitting the laptop with a hammer etc.  Does anyone know something else I can try?</content:encoded>
	<dc:date>2008-07-25T09:59:24+00:00</dc:date>
</item>
<item rdf:about="urn:lj:livejournal.com:atom1:paulmoore:1162">
	<title>Paul Moore: SELinux Developer's Summit 2008</title>
	<link>http://paulmoore.livejournal.com/1162.html</link>
	<content:encoded>I'm at &lt;a href=&quot;http://www.linuxsymposium.org&quot;&gt;OLS&lt;/a&gt; right now, but the day before OLS started we held this year's &lt;a href=&quot;http://www.selinuxproject.org/page/Developer_Summit_2008&quot;&gt;SELinux Developer's Summit&lt;/a&gt; as part of OLS's mini-summit program.  This year's summit was a bit of a departure from previous years in that the summit consisted of several short presentations and was open to everyone.  Personally, I thought it went very well, with lots of good work-in-progress presentations, my favorite kind, and plenty of discussion.  My own contribution, an update on the state of SELinux Labeled Networking, can be found below.  James Morris has posted all of the slides on the &lt;a href=&quot;http://www.selinuxproject.org/page/Developer_Summit_2008/Schedule&quot;&gt;schedule&lt;/a&gt; page, so you can check out what was discussed if you weren't able to make it to Ottawa this year.&lt;br /&gt;&lt;br /&gt;Hopefully we will be able to continue having regular SELinux Developer Summits in the future that are similar to the one this year.  There is even some talk about extending future summits to include both a presentation day and a hack-fast day.  I can't remember who proposed the hack-fest day, but I like it.  Especially if we hold it in Hawaii :)&lt;br /&gt;&lt;br /&gt;Presentation download: &lt;a href=&quot;http://free.linux.hp.com/~pmoore/files_lj/labeled_networking-ols-07222008.pdf&quot;&gt;State of SELinux Labeled Networking&lt;/a&gt;</content:encoded>
	<dc:date>2008-07-25T01:41:02+00:00</dc:date>
</item>
<item rdf:about="urn:lj:livejournal.com:atom1:paulmoore:964">
	<title>Paul Moore: The Importance of Documentation</title>
	<link>http://paulmoore.livejournal.com/964.html</link>
	<content:encoded>When I think about all of the items on my Linux Labeled Networking todo list one of the items that stands out the most is the lack of good, useful documentation.  Oh sure, there is some documentation available, for instance Joshua Brindle's &lt;a href=&quot;http://securityblog.org/brindle/2007/05/28/secure-networking-with-selinux&quot;&gt;blog post&lt;/a&gt; about Labeled IPsec on SELinux, but most of it is quickly becoming dated and no longer a good fit with current kernels and tools.  A big part of the problem is the amount of ongoing development which makes it difficult to spend much time writing documentation.  I've managed to convince myself that development of user requested features is more important than documentation, but I suppose that does little to help people who are trying to use and configure the existing labeled networking features.&lt;br /&gt;&lt;br /&gt;While I still think development is more important, we still have a lot of usability functionality to implement, I am going to try and do a better job of documenting the Linux Labeled Networking features.  Part of that effort is the creation of this blog where I plan to talk about Linux Labeled Networking development and related topics.  To kick things off I've posted slides from a presentation I gave earlier this week at the &lt;a href=&quot;http://www.linux-foundation.jp/modules/eguide&quot;&gt;Linux Foundation's Japan Symposium&lt;/a&gt;, the presentation is designed to be a quick introduction to labeled networking on Linux including overviews of Secmark, NetLabel, and Labeled IPsec.&lt;br /&gt;&lt;br /&gt;Presentation download: &lt;a href=&quot;http://free.linux.hp.com/~pmoore/files_lj/labeled_networking-lfjapan-07092008.pdf&quot;&gt;Introduction to Labeled Networking on Linux&lt;/a&gt;</content:encoded>
	<dc:date>2008-07-24T23:00:53+00:00</dc:date>
</item>
<item rdf:about="http://d.hatena.ne.jp/himainu/20080725#1216928692">
	<title>Yuichi Nakamura: [SELinux] Linux Symposium二日目</title>
	<link>http://d.hatena.ne.jp/himainu/20080725#1216928692</link>
	<content:encoded>James Morrisの講演 James Morrisの話があった。ここ1，2年のSELinuxの進歩についての講演。 種ITやKaiGaiさんの仕事とかも紹介されてた。 周りを見渡してみると、ジオ（モビルスーツ）のような人が非常に多い。が、席の広さは日本とかわらないのが不思議。隣に座られると動けジオ！って感じ。メタボな人に対して人種差別的な扱いをしている我が国はグローバル化に出遅れてますな。 SELinuxネ申とホテルが同じで、エレベータで遭遇し、対話してしまった。日本のSELinux開発の状況 ...</content:encoded>
	<dc:date>2008-07-24T19:44:52+00:00</dc:date>
	<dc:creator>himainu</dc:creator>
</item>
<item rdf:about="http://etbe.coker.com.au/?p=651">
	<title>Russell Coker (security): SE Linux Policy Loading</title>
	<link>http://etbe.coker.com.au/2008/07/24/se-linux-policy-loading/</link>
	<content:encoded>&lt;p&gt;One of the most significant tasks performed by a SE Linux system is loading the &amp;#8220;&lt;b&gt;policy&lt;/b&gt;&amp;#8220;.  The policy is the set of rules which determine what actions are permitted by each &lt;b&gt;domain