<?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://danwalsh.livejournal.com/23391.html" />
			<rdf:li rdf:resource="http://james-morris.livejournal.com/33982.html" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/23118.html" />
			<rdf:li rdf:resource="http://james-morris.livejournal.com/33622.html" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/himainu/20080904#1220538166" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/himainu/20080904#1220537559" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=752" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/22860.html" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/himainu/20080903#1220442949" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/himainu/20080903#1220442948" />
			<rdf:li rdf:resource="http://securityblog.org/brindle/?p=25" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/22627.html" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=748" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/himainu/20080831#1220185464" />
			<rdf:li rdf:resource="http://kaigai.sblo.jp/article/18544392.html" />
			<rdf:li rdf:resource="http://kaigai.sblo.jp/article/18543947.html" />
			<rdf:li rdf:resource="http://james-morris.livejournal.com/33360.html" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/himainu/20080829#1219981818" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-7673377107942959487.post-6996845116388908430" />
			<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:Seq>
	</items>
</channel>

<item rdf:about="http://danwalsh.livejournal.com/23391.html">
	<title>Dan Walsh: SELinux and Chrome followup.</title>
	<link>http://danwalsh.livejournal.com/23391.html</link>
	<content:encoded>Just reading though&lt;a href=&quot;http://selinuxnews.org/planet/&quot;&gt; http://selinuxnews.org/planet/&lt;/a&gt; I&amp;nbsp;noticed that &lt;a href=&quot;http://securityblog.org/brindle/2008/09/02/web-browsers-security-and-google-chrome/&quot;&gt;Joshua Brindle&lt;/a&gt; and &lt;a href=&quot;http://etbe.coker.com.au/2008/09/02/google-chrome-the-security-implications/&quot;&gt;Russell Coker&lt;/a&gt; have both blogged on using SELinux and Chrome together. &amp;nbsp; Both do a&amp;nbsp; better job describing what could be done then I did. &amp;nbsp;&lt;br /&gt;&lt;br /&gt;What is the old expression&lt;br /&gt;&lt;h3&gt;&lt;span&gt;&lt;strong&gt;Great Minds Think Alike (Fools Seldom Differ?)&lt;/strong&gt;&lt;/span&gt;&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;</content:encoded>
	<dc:date>2008-09-05T12:38:22+00:00</dc:date>
	<dc:creator>dwalsh@redhat.com</dc:creator>
</item>
<item rdf:about="http://james-morris.livejournal.com/33982.html">
	<title>James Morris: Memory protections followup</title>
	<link>http://james-morris.livejournal.com/33982.html</link>
	<content:encoded>Following up on a couple of the comments on my &lt;a href=&quot;http://james-morris.livejournal.com/33622.html&quot;&gt;last entry&lt;/a&gt; on SELinux memory protections vs. Zend Optimizer:&lt;br /&gt;&lt;br /&gt;The policy does indeed look like it was generated automatically by &lt;i&gt;audit2why&lt;/i&gt; or similar.  This very clearly highlights a core problem with &quot;learning mode&quot; security schemes, which can blindly encapsulate dangerous behavior in a buggy application, or even an attack in progress.  This issue was previously expounded by Josh Brindle in &lt;a href=&quot;http://securityblog.org/brindle/2006/03/25/security-anti-pattern-status-quo-encapsulation/&quot;&gt;Status Quo Encapsulation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Such techniques do have their place, although it is always recommended that such resulting policy be reviewed.  Again, it is easy to &lt;a href=&quot;http://selinuxproject.org/page/User_Resources&quot;&gt;find help&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It's unfortunate that some vendors promote automated policy generation schemes as a core usability feature, leading many people  to assume that this is a great idea, and even the way things are supposed to work.&lt;br /&gt;&lt;br /&gt;Of course, nobody would ever capitalize on peoples' combined fear and lack of expertise in an area and sell a &quot;miracle&quot; solution which doesn't quite work.  No, that would never happen.&lt;br /&gt;&lt;br /&gt;As H.L. Mencken and some character on the single episode of CSI I suffered through said: &lt;i&gt;&quot;... there is always an easy solution to every problem — neat, plausible and wrong.&quot;&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;The idea that the problem of OS security can be solved effortlessly with the click of a mouse should be raising alarm bells in everyone's heads by now, surely ?</content:encoded>
	<dc:date>2008-09-04T23:53:36+00:00</dc:date>
</item>
<item rdf:about="http://danwalsh.livejournal.com/23118.html">
	<title>Dan Walsh: SELinux and Chrome</title>
	<link>http://danwalsh.livejournal.com/23118.html</link>
	<content:encoded>After reading the &lt;a href=&quot;http://www.google.com/googlebooks/chrome/&quot;&gt;Google Chrome announcement/comic book&lt;/a&gt;, I&amp;nbsp;got to thinking &lt;br /&gt;&lt;em&gt;&lt;br /&gt;&lt;/em&gt;&lt;strong&gt;&lt;em&gt;How could SELinux and Chrome work together?&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The comic book says that Chrome can run each tab in a different processes, allowing you to isolate processes from each other.&amp;nbsp; If a tab processes crashes because of a bug it will only bring down that tab, not the entire web browser.&amp;nbsp; We have this in Fedora 9, in that we can run most of the plug-ins in a separate processes from Firefox, nsplugin.&amp;nbsp; If a plug-in causes the process to crash, the nsplugin program crashes not Firefox.&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://danwalsh.livejournal.com/15700.html&quot;&gt;You can use SELinux to lock  down the nsplugin process to prevent it from attacking our system.&amp;nbsp; &lt;/a&gt; The nice thing from an SELinux point of view is that we did not need to change Firefox to make this happen.&amp;nbsp; Since Firefox executed nsplugin (npviewer.bin), we can write policy that says when a user (unconfined_t) execs an executable labeled nsplugin_exec_t, SELinux will transition to process labeled nsplugin_t.&lt;br /&gt;&lt;br /&gt;With Chrome we might be able to take this further.&amp;nbsp; Imagine Chrome could differentiate between external and internal web sites, then the main Chrome processes could create two tabs running under different SELinux contexts.&amp;nbsp; Say chrome_trusted_t and chrome_untrusted_t,&amp;nbsp; You could isolate these processes from each other and maybe allow chrome_trusted_t to read and write anywhere on the file system while chrome_untrusted_t could only read/write the ~/untrusted directory, labeled untrusted_content_home_t.&amp;nbsp;&amp;nbsp; With labeled networking you could set up a proxy server that would only accept connections from processes labeled chrome_untrusted_t.&amp;nbsp; If a user is reading a Company Confidential web site in one tab, and connected to www.espn.com on another tab, SELinux would prevent the untrusted tab from reading the trusted tabs content.&lt;br /&gt;&lt;br /&gt;This would require changes to Chrome code, but the SELinux code to do this is fairly simple.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Pseudo Code&lt;br /&gt;&lt;br /&gt;Depending on how Chrome works.&lt;br /&gt;&lt;br /&gt;User enters an external web site:&lt;br /&gt;&lt;br /&gt;If chrome just forks a new process it would:&lt;br /&gt;&lt;br /&gt;child = fork();&lt;br /&gt;if (Child) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (selinux_is_enabled()) {&lt;br /&gt;&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; setcontext(&amp;quot;user_u:user_r:chrome_untrusted_t&amp;quot;); &lt;br /&gt;&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; ... /*&amp;nbsp;Run the tab process */&lt;br /&gt;&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; exit()&lt;br /&gt;&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;&lt;br /&gt;or &lt;br /&gt;&lt;br /&gt;if chrome forks and execs a new process.&lt;br /&gt;&lt;br /&gt;child = fork();&lt;br /&gt;if (Child) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (selinux_is_enabled()) {&lt;br /&gt;&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; setexeccon(&amp;quot;user_u:user_r:chrome_untrusted_t&amp;quot;); &lt;br /&gt;&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; exec()&amp;nbsp; /* exec the tab process */&lt;br /&gt;&lt;br /&gt;&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; setexeccon(NULL);&amp;nbsp; /*&amp;nbsp;This sets that system back to default behaviour, if exec failed */&lt;br /&gt;&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;&lt;br /&gt;Policy would have to be written to allow a transition from unconfined_t to chrome_untrusted_t, since the kernel will verify all transitions.&lt;br /&gt;&lt;br /&gt;Any enterprising grad students looking for a project?&lt;br /&gt;&lt;br /&gt;I&amp;nbsp;could imagine similar changes could be done in Apache (mod_*), sshd, Samba.&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;</content:encoded>
	<dc:date>2008-09-04T18:50:05+00:00</dc:date>
	<dc:creator>dwalsh@redhat.com</dc:creator>
</item>
<item rdf:about="http://james-morris.livejournal.com/33622.html">
	<title>James Morris: SELinux memory protections are your friend</title>
	<link>http://james-morris.livejournal.com/33622.html</link>
	<content:encoded>I don't know what a Zend Optimizer is, but it apparently does not play well with SELinux.  I've encountered a &lt;a href=&quot;http://codepoets.co.uk/joys-selinux-server&quot;&gt;blog entry&lt;/a&gt; by someone who has tried to do the right thing and keep SELinux enabled, after finding the code for a policy module which makes this stuff work.&lt;br /&gt;&lt;br /&gt;I was surprised when I saw the &lt;a href=&quot;https://akela.mendelu.cz/~ruprich/tlachy/zend_selinux.html&quot;&gt;source of the module&lt;/a&gt;, which includes:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;allow httpd_t self:process execstack;&lt;br /&gt;allow httpd_t self:process execmem;&lt;br /&gt;allow httpd_t self:process execheap;&lt;br /&gt;allow httpd_t usr_t:file execute;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;When loaded, this will enable the web server to execute memory on its heap, stack or certain types of executable memory allocated via mmap(2).  These are well-known attack vectors and disable some very important memory protection mechanisms.  See Ulrich Drepper's &lt;a href=&quot;http://people.redhat.com/drepper/selinux-mem.html&quot;&gt;SELinux Memory Protection Tests&lt;/a&gt; for details.&lt;br /&gt;&lt;br /&gt;The file execute permission is also very concerning, as it allows the web server to execute generically labeled user files.  Combined with disabled memory protections, and third-party software using unsafe memory execution techniques, I'd recommend being cautious about deploying this solution.&lt;br /&gt;&lt;br /&gt;What I would suggest, if you don't understand the security policy, is to run it by your nearest SELinux community.  Many mailing lists and IRC channels exist where people will be able to help: see &lt;a href=&quot;http://selinuxproject.org/page/User_Resources&quot;&gt;User Resources&lt;/a&gt; from the SELinux Project Wiki.&lt;br /&gt;&lt;br /&gt;It's important to note that whatever this code is supposed to be doing (apparently, dealing with some form of source code obfuscation), techniques such as making a stack executable are inherently insecure and should &lt;b&gt;never&lt;/b&gt; be necessary.&lt;br /&gt;&lt;br /&gt;SELinux really is trying to help you here, and free expert advice is merely an email away.  At the very least, someone will be able to explain what the risks are, and help you make an informed decision on how to proceed: perhaps it will be better for your particular requirements to allow certain accesses rather than disabling SELinux for the entire system.  And if the code is not trying to do something dangerous, an SELinux developer may write a simple module for you to load to work around the issue.</content:encoded>
	<dc:date>2008-09-04T14:54:24+00:00</dc:date>
</item>
<item rdf:about="http://d.hatena.ne.jp/himainu/20080904#1220538166">
	<title>Yuichi Nakamura: [その他]XDev2008に行ってきた</title>
	<link>http://d.hatena.ne.jp/himainu/20080904#1220538166</link>
	<content:encoded>三浦さんと対談してきた。対談というのは初体験だったので、緊張しましたが面白かったです。 http://itpro.nikkeibp.co.jp/article/NEWS/20080904/314176/ 聞きに来てくださった方、三浦さん、日経BPの方々、ありがとうございました。</content:encoded>
	<dc:date>2008-09-04T14:22:46+00:00</dc:date>
	<dc:creator>himainu</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/himainu/20080904#1220537559">
	<title>Yuichi Nakamura: [SELinux][AppArmor] AppArmor死亡確認？</title>
	<link>http://d.hatena.ne.jp/himainu/20080904#1220537559</link>
	<content:encoded>Russellのblogで、AppArmor死亡説がとなえられた。 http://etbe.coker.com.au/2008/08/23/apparmor-is-dead/ で、大量にコメントがついてた。コメントでは、SELinuxへの不満の声も見られる。  で、なんと、MSに逝かれたAppArmorの元ネ申が、ブログで反応。 http://blogs.msdn.com/crispincowan/archive/2008/09/02/go-ahead-make-my-day.aspx ちょっと誇張し ...</content:encoded>
	<dc:date>2008-09-04T14:12:39+00:00</dc:date>
	<dc:creator>himainu</dc:creator>
</item>
<item rdf:about="http://etbe.coker.com.au/?p=752">
	<title>Russell Coker (security): Random Opinions, Expert Opinions, and Facts about AppArmor</title>
	<link>http://etbe.coker.com.au/2008/09/04/opinions-facts-apparmor/</link>
	<content:encoded>&lt;p&gt;My previous post &lt;a href=&quot;http://etbe.coker.com.au/2008/08/23/apparmor-is-dead/&quot;&gt;titled AppArmor is Dead [1]&lt;/a&gt; has inspired a number of reactions.  Some of them have been unsubstantiated opinions, well everyone has an opinion so this doesn&amp;#8217;t mean much.  I believe that opinions of experts matter more, &lt;a href=&quot;http://blogs.msdn.com/crispincowan/archive/2008/09/02/go-ahead-make-my-day.aspx&quot;&gt;Crispin responded to my post and made some reasonable points [2]&lt;/a&gt; (although I believe that he is overstating the ease of use case).  I take Crispin&amp;#8217;s response a lot more seriously than most of the responses because of his significant experience in commercial computer security work.  The opinion of someone who has relevant experience in the field in question matters a lot more than the opinion of random computer users!&lt;/p&gt;
&lt;p&gt;Finally there is the issue of facts.  Of the people who don&amp;#8217;t agree with me, Crispin seems to be the first to acknowledge that Novell laying off AppArmor developers and adding SE Linux support are both bad signs for AppArmor.  The fact that Red Hat and Tresys have been assigning more people to SE Linux development in the same time period that SUSE has been laying people off AppArmor development seems to be a clear indication of the way that things are goind.&lt;/p&gt;
&lt;p&gt;One thing that Crispin and I understand is the amount of work involved in maintaining a security system.  You can&amp;#8217;t just develop something and throw it to the distributions.  There is ongoing work required in tracking kernel code changes, and when there is application support there is also a need to track changes to application code (and replacements of system programs).  Also there is a need to add new features.  Currently the most significant new feature development in SE Linux is related to X access controls - this is something that every security system for Linux needs to do (currently none of them do it).  It&amp;#8217;s a huge amount of work, but the end result will be that compromising one X client that is running on your desktop will not automatically grant access to all the other windows.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;http://news.cnet.com/8301-13580_3-9796140-39.html&quot;&gt;CNET article about Novell laying off the AppArmor developers [3]&lt;/a&gt; says &amp;#8216;&lt;b&gt;&amp;#8220;An open-source AppArmor community has developed. We&amp;#8217;ll continue to partner with this community,&amp;#8221; though the company will continue to develop aspects of AppArmor&lt;/b&gt;&amp;#8216; and attributes that to Novell spokesman Bruce Lowry.&lt;/p&gt;
&lt;p&gt;Currently there doesn&amp;#8217;t seem to be an AppArmor community, &lt;a href=&quot;http://freshmeat.net/projects/apparmor/&quot;&gt;the Freshmeat page for AppArmor still lists Crispin as the owner and has not been updated since 2006 [4]&lt;/a&gt;, it also links to hosting on Novell&amp;#8217;s site.  &lt;a href=&quot;http://en.wikipedia.org/wiki/Apparmor&quot;&gt;The Wikipedia page for AppArmor also lists no upstream site other than Novell [4]&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://forge.novell.com/pipermail/apparmor-dev/&quot;&gt;The AppArmor development list hosted by SUSE is getting less than 10 posts per month recently [6]&lt;/a&gt;.  &lt;a href=&quot;http://forge.novell.com/pipermail/apparmor-general/&quot;&gt;The AppArmor general list had a good month in January with a total of 23 messages (including SPAM) [7]&lt;/a&gt;, but generally gets only a few messages a month.&lt;/p&gt;
&lt;p&gt;The fact that &lt;a href=&quot;http://forge.novell.com/modules/xfmod/project/memberlist.php?group_id=1864&quot;&gt;Crispin is still listed as the project leader [8]&lt;/a&gt; says a lot about how the project is managed at Novell!&lt;/p&gt;
&lt;p&gt;So the question is, how can AppArmor&amp;#8217;s prospects be improved?  &lt;a href=&quot;http://linsec.ca/blog/2008/09/03/crispin-responds-to-allegations-that-apparmor-is-dying/&quot;&gt;A post on linsec.ca notes that Mandriva is using AppArmor, getting more distribution support would be good [9]&lt;/a&gt;, but the most important thing in that regard will be contributing patches back and dedicating people to do upstream work (Red Hat does a huge amount of upstream development for SE Linux and a significant portion of my Debian work goes upstream).&lt;/p&gt;
&lt;p&gt;It seems to me that the most important thing is to have an active community.  Have a primary web site (maybe hosted by Novell, maybe SourceForge or something else) that is accurate and current.  Have people giving talks about AppArmor at conferences to promote it to developers.  Then try to do something to get some buzz about the technology, &lt;a href=&quot;http://www.coker.com.au/selinux/play.html&quot;&gt;my SE Linux Play Machines inspired a lot of interest in the SE Linux technology [10]&lt;/a&gt;.  If something similar was done with AppArmor then it would get some interest.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m not interested in killing AppArmor (I suspect that Crispin&amp;#8217;s insinuations were aimed at others).  If my posts on this topic inspire more work on AppArmor and Linux security in general then I&amp;#8217;m happy.  As Crispin notes the real enemy is his employer (he doesn&amp;#8217;t quite say that - but it&amp;#8217;s my interpretation of his post).&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://blogs.msdn.com/crispincowan/archive/2008/09/02/go-ahead-make-my-day.aspx&quot;&gt; http://blogs.msdn.com/crispincowan/archive/2008/09/02/go-ahead-make-my-day.aspx&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[3] &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;[4] &lt;a href=&quot;http://freshmeat.net/projects/apparmor/&quot;&gt;http://freshmeat.net/projects/apparmor/&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[5] &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;[6] &lt;a href=&quot;http://forge.novell.com/pipermail/apparmor-dev/&quot;&gt;http://forge.novell.com/pipermail/apparmor-dev/&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[7] &lt;a href=&quot;http://forge.novell.com/pipermail/apparmor-general/&quot;&gt;http://forge.novell.com/pipermail/apparmor-general/&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[8]&lt;a href=&quot;http://forge.novell.com/modules/xfmod/project/memberlist.php?group_id=1864&quot;&gt; http://forge.novell.com/modules/xfmod/project/memberlist.php?group_id=1864&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[9]&lt;a href=&quot;http://linsec.ca/blog/2008/09/03/crispin-responds-to-allegations-that-apparmor-is-dying/&quot;&gt; http://linsec.ca/blog/2008/09/03/crispin-responds-to-allegations-that-apparmor-is-dying/&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[10] &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=752&amp;amp;akst_action=share-this&quot; title=&quot;E-mail this, post to del.icio.us, etc.&quot; id=&quot;akst_link_752&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-09-04T10:52:30+00:00</dc:date>
	<dc:creator>etbe</dc:creator>
</item>
<item rdf:about="http://danwalsh.livejournal.com/22860.html">
	<title>Dan Walsh: Nasty SELinux redirection AVC's</title>
	<link>http://danwalsh.livejournal.com/22860.html</link>
	<content:encoded>One of the things that makes SELinux hard to understand is it's handling of shell redirection.&amp;nbsp; A query on the Fedora SELinux list by Richard Johnson asks about how to handle SELinux avc's when redirection rpm output.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;When installing a policy rpm, one cannot log the install activity w/o&amp;nbsp; generating avc errors.&amp;nbsp; For example:&lt;br /&gt;&amp;nbsp;&lt;br /&gt;rpm -i lsb-ft-asn-selinux &amp;gt; /var/log/rpm-update.log&lt;br /&gt;&amp;nbsp;&lt;br /&gt;produces the following violation:&lt;br /&gt;&amp;nbsp;&lt;br /&gt;type=SYSCALL msg=audit(1219774608.030:789): arch=c000003e syscall=59 success=yes exit=0 a0=be952e0 a1=be93390 a2=be958f0 a3=8 items=0 ppid=2848 pid=2875 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=ttyS1 ses=2 comm=&amp;quot;restorecon&amp;quot; exe=&amp;quot;/sbin/restorecon&amp;quot; subj=root:system_r:restorecon_t:s0-s0:c0.c1023 key=(null)&lt;br /&gt;type=AVC msg=audit(1219774608.030:789): avc:&amp;nbsp; denied&amp;nbsp; { write } for pid=2875 comm=&amp;quot;restorecon&amp;quot; path=&amp;quot;/var/log/rpm-update.log&amp;quot; dev=md2 ino=2694055 scontext=root:system_r:restorecon_t:s0-s0:c0.c1023 tcontext=root:object_r:var_log_t:s0 tclass=file&lt;br /&gt;&lt;br /&gt;The problems seems to stem from recording the %post script's attempts to relabel files affected by the policy, specifically:&lt;br /&gt;&lt;br /&gt; /sbin/restorecon -F -R -v /opt/ft/sbin/sra_alarm;&lt;br /&gt;/sbin/restorecon -F -R -v /etc/opt/ft/asn;&lt;br /&gt;/sbin/restorecon -F -R -v /var/opt/ft/asn;&lt;br /&gt;/sbin/restorecon -F -R -v /var/opt/ft/log;&lt;br /&gt;&lt;br /&gt;So what is going on here?&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The shell is creating a /var/log/rpm-update.log. Most likely the process that is running the shell is running as unconfined_t, and unconfined_t does not have a transition rule for files in var_log_t directories.&amp;nbsp; (var_log_t is the label of the /var/log directory)&amp;nbsp; The rpm-update.log file gets created with the var_log_t label.&amp;nbsp; The shell&amp;nbsp; opens the file for write and redirects the stdout of rpm and all of its children process to this file.&lt;br /&gt;&lt;br /&gt;When rpm is started it transitions to rpm_t and the SELinux kernel checks if rpm_t is able to write to files labeled var_log_t, since rpm_t is an unconfined domain it is allowed.&amp;nbsp; rpm will hand the open file descriptor to all of its decendants. rpm executes it's scripts as rpm_script_t (Also unconfined).&amp;nbsp; When rpm_script_t executes an application with a transition rule define, the SELinux kernel checks to see if the new domain is allowed to write to var_log_t.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;In the case above rpm_script_t transitions to restorecon_t when it execs files labeled restorecon_exec_t.&amp;nbsp; The SELinux kernel checks if restorecon_t is allowed to write to a file labeled var_log_t, restorecon_t is not allowed so the kernel reports the AVC.&amp;nbsp; It also closes the open file descriptor and replaces it with a file descriptor to /dev/null.&amp;nbsp; restorecon is then started and actually runs to a successfull completion,&amp;nbsp; however no output with go to rpm-update.log.&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;So what should the admin do about this?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I can think of a few choices.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;He can ignore it.&amp;nbsp; Since the restorecon does not need to output anything, the installation completed and the AVC's are basically meaningless.&amp;nbsp; He can even tell setroubleshoot to not show the AVC's/&lt;/li&gt;&lt;li&gt;He can add a local custom policy module, to allow domains to output to var_log_t, Using audit2allow -M&amp;nbsp;mypol&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;rpm -i lsb-ft-asn-selinux &amp;gt;&amp;gt; /var/log/rpm-update.log&lt;/span&gt;&lt;/li&gt;&lt;li&gt;would be better since it will only add append.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;He attempt to find a label for file and label it correctly such that all domains can append to it.&amp;nbsp; rpm_log_t might work.&lt;/li&gt;&lt;li&gt;He can stick a cat in the middle of the command&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;&lt;span&gt;rpm -i lsb-ft-asn-selinux&amp;nbsp; | cat &amp;gt; /var/log/rpm-update.log&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;In this case bash opens the file as var_log_t and hands the open descriptor to cat which is also running as unconfined_t, but in this case bash sets the commands stdout to be a open fd descriptor to a unconfined_t.&amp;nbsp; Most domains can &amp;quot;use&amp;quot; unconfined_t fd, so the AVC dissapears.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;strong&gt;Fedora 10 - OPEN access check to the rescue:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;This is a difficult thing to comprehend and we are trying to eliminate some of these AVC's.&amp;nbsp; SELinux in Fedora 10 has added an OPEN check.&amp;nbsp; This checks whether an application actually attempts to open a file rather then just tries to read/write the file.&amp;nbsp; Before the OPEN check policy writers were not able to differentiate between an application actually actively going out and opening files versus being handed open file descriptors from processes like the shell.&lt;br /&gt;&lt;br /&gt;So in Fedora 10 we will allow confined applications to read/write files in places users commonly redirect output.&amp;nbsp; (user_home_t, user_tmp_t, logfiles).&amp;nbsp; While denying the &amp;quot;open&amp;quot; access.&amp;nbsp;&amp;nbsp; If you see an OPEN access being denied, you should be very wary of this access and really investigate what is going on.&amp;nbsp; If a cracker broke into a confined domain and got to a shell, he would probably be actively attempting to OPEN files.&lt;/span&gt;</content:encoded>
	<dc:date>2008-09-03T16:22:01+00:00</dc:date>
	<dc:creator>dwalsh@redhat.com</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/himainu/20080903#1220442949">
	<title>Yuichi Nakamura: [SELinux] 開発体制変更</title>
	<link>http://d.hatena.ne.jp/himainu/20080903#1220442949</link>
	<content:encoded>いつのまにやら、開発体制というか環境が変わっている。  開発ポータル ユーザランドの開発のポータルが↓のサイトに移ったようだ http://oss.tresys.com/projects/selinux 他にも、 http://selinuxproject.org/page/Main_Page というページがあるが、関係がよく分からない。  refpolicyメーリングリスト refpolicyに関する議論は、refpolicy mlに移った模様。 http://oss.tresys.com/mail ...</content:encoded>
	<dc:date>2008-09-03T11:55:49+00:00</dc:date>
	<dc:creator>himainu</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/himainu/20080903#1220442948">
	<title>Yuichi Nakamura: [組込み] gccの小技集</title>
	<link>http://d.hatena.ne.jp/himainu/20080903#1220442948</link>
	<content:encoded>ELC2008における、Gene Sally氏の発表をまとめたもの。 結構この手の小技って、職場毎に一子相伝的に受け継がれていて、 色々と隠れている気がする。 http://elinux.org/GCC_Tips</content:encoded>
	<dc:date>2008-09-03T11:55:48+00:00</dc:date>
	<dc:creator>himainu</dc:creator>
</item>
<item rdf:about="http://securityblog.org/brindle/?p=25">
	<title>Joshua Brindle: Web browsers, security and Google Chrome</title>
	<link>http://securityblog.org/brindle/2008/09/02/web-browsers-security-and-google-chrome/</link>
	<content:encoded>&lt;p&gt;Securing web browsers has always been a little tricky. With so many web applications available today, including corporate intranet sites, email and so on with confidential or proprietary information it is always a bit troublesome that web browsers essentially run in one security domain. The last thing I want is for a teller at my bank to go to some site that ends up getting bank info from another tab.  &lt;span id=&quot;more-25&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div class=&quot;entry&quot;&gt;
&lt;div&gt;
&lt;p&gt;There have been several improvements in the web browsing space though. Microsoft Internet Explorer has protected mode but that doesn’t use system based access control to enforce separation of internal web pages from external ones, for example. On Linux we’ve started using nsplugin to load plugins (flash, whatever) into a separate process. This is particularly nice on SELinux systems since we can transition those plugins into a domain that can’t do much, such as read files in home directories, access the network, etc. Dan Walsh has a nice writeup about this at &lt;a title=&quot;http://danwalsh.livejournal.com/15700.html&quot; href=&quot;http://danwalsh.livejournal.com/15700.html&quot; target=&quot;_blank&quot;&gt;his blog&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;That still doesn’t separate sites of differing security domains (my bank, joke site my friend sent in an email, the company sharepoint server, etc) into separate processes that cannot interact with each other.&lt;/p&gt;
&lt;p&gt;I had a customer once that actually augmented Firefox to be a multi-level browser. This was a Trusted Solaris solution and really didn’t address the problem. All of the sites were still inside the same browser process and they had only augmented it to try and keep that data separate. Something that used process and domain separation would be better. If we trusted the web browser to not leak data none of this would be necessary!&lt;/p&gt;
&lt;p&gt;The best we can hope for is manually separating browsers. I’ve blogged in the past about using network access controls in SELinux to ensure an ‘internal’ browser can’t browse the the internet, and an ‘internet’ browser can’t browse into the intranet. This requires user intervention to understand and keep track of multiple browsers, hardly an elegant solution. Surely there is a better way.&lt;/p&gt;
&lt;p&gt;Now comes Google Chrome, a shiny (haha) new browser that has some great ideas. Google also published an interesting &lt;a title=&quot;http://blogoscoped.com/google-chrome/&quot; href=&quot;http://blogoscoped.com/google-chrome/&quot; target=&quot;_blank&quot;&gt;set of comics&lt;/a&gt; that describe some of the ideas and features.&lt;/p&gt;
&lt;p&gt;The ones I found most interesting: Each tab is rendered in a separate process, plugins run in a separate process and a javascript virtual machine. This means tabs shouldn’t be able to get data from other tabs (now I don’t have to worry about crazy scary Myspace pages reading my bank account number).&lt;/p&gt;
&lt;p&gt;There are a couple things to worry about, first they claim plugins are poorly written and therefore must have access to all tabs (which is particularly scary given the Flash vulnerabilities as of late). The ideal solution is to have a plugin process per-rendering process, this would keep plugins from interacting with each other and other rendering processes. They claim this is a long term goal, that they would work with plugin writers to make this easier, we can only hope.&lt;/p&gt;
&lt;p&gt;Second, and much more worrisome is on slide 29, the claim that they know their sandboxing works because they wrote it, wrong! If we trusted the applications to begin with we’d have no need for additional access control.&lt;/p&gt;
&lt;p&gt;Now all this brings me to my main point. Granted Chrome is only available for Windows at the moment but hopefully it’ll be available on Linux before long. And then we might have something interesting to work on. Different security domains for different sites? That would be great. Different domains for plugins? Yes! SELinux enforced sandboxes? &lt;/p&gt;
&lt;p&gt;So here is the idea: We label sites by dns name or IP and have Chrome execute the rendering processes in different domains. *.tresys.com would run in internal_website_t and not be able to send data to the internet! my bank site would run in bank_website_t and only be able to send data to my banks address. Even if I have some sort of browser or plugin exploit going on it won’t matter, only data can be sent to the appropriate place (this is the beauty of mandatory access control, even a broken application can’t do anything bad). This should work because Chrome even creates new rendering processes if you jump from one domain to another (It does this today). If I go to facebook and then to myspace in the same tab a new process is created for myspace. I’d like to go so far as to put the javascript vm in another process, since it is executing dynamically generated code, or else we’ll have to give the rendering process the ability to execheap, execstack, not a good permission to give something already susceptable to vulnerabilities. &lt;/p&gt;
&lt;p&gt;What is the net result of this? It is like the manual separation I and others have talked about before but from the user perspective it is seamless. Tabs in the same browser running in different security domains without the users knowledge, seamless mandatory security on web browsing, I can’t wait!&lt;/p&gt;
&lt;p&gt;If this should happen to reach any of the Chrome developers I’d love to talk to you about the possibilites. Combining this browser (which is excellent BTW, I’m using it to write this blog post) with the mandatory separation afforded by SELinux would make an incredibly powerful platform for securing web applications.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</content:encoded>
	<dc:date>2008-09-03T00:15:09+00:00</dc:date>
	<dc:creator>Joshua Brindle</dc:creator>
</item>
<item rdf:about="http://danwalsh.livejournal.com/22627.html">
	<title>Dan Walsh: I am backup on  planet.fedoraproject.org</title>
	<link>http://danwalsh.livejournal.com/22627.html</link>
	<content:encoded>When fedoraproject.org site was rebuilt in the last couple of weeks, I&amp;nbsp;guess I&amp;nbsp;missed the message that you needed to put a .planet file in your people.fedoraproject.org home dir in order to have the planet see your blogs, sorry about that.&amp;nbsp; Well I&amp;nbsp;have fixed this.&amp;nbsp; But you might have missed some of my blogs.&amp;nbsp; The best one, IMHO, was:&lt;br /&gt;&lt;a href=&quot;http://danwalsh.livejournal.com/22347.html&quot;&gt;&lt;br /&gt;&lt;font color=&quot;#c00000&quot;&gt;&lt;i&gt;&lt;b&gt;Top three things to understand in fixing SELinux problems&lt;/b&gt;&lt;/i&gt;&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So here is a link to it.&lt;br /&gt;&lt;br /&gt;Back to Bugzilla.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;</content:encoded>
	<dc:date>2008-09-02T19:16:13+00:00</dc:date>
	<dc:creator>dwalsh@redhat.com</dc:creator>
</item>
<item rdf:about="http://etbe.coker.com.au/?p=748">
	<title>Russell Coker (security): Google Chrome - the Security Implications</title>
	<link>http://etbe.coker.com.au/2008/09/02/google-chrome-the-security-implications/</link>
	<content:encoded>&lt;p&gt;&lt;a href=&quot;http://googleblog.blogspot.com/2008/09/fresh-take-on-browser.html&quot;&gt;Google have announced a new web browser - Chrome [1]&lt;/a&gt;.  It is not available for download yet, &lt;a href=&quot;http://www.google.com/googlebooks/chrome/&quot;&gt;currently there is only a comic book explaining how it will work [2]&lt;/a&gt;.  The comic is of very high quality and will help in teaching novices about how computers work.  I think it would be good if we had a set of comics that explained all the aspects of how computers work.&lt;/p&gt;
&lt;p&gt;One noteworthy feature is the process model of Chrome.  Most browsers seem to aim to have all tabs and windows in the same process which means that they can all crash together.  Chrome has a separate process for each tab so when a web site is a resource hog it will be apparent which tab is causing the performance problem.  Also when you navigate from site A to site B they will apparently execute a new process (this will make the back-arrow a little more complex to implement).&lt;/p&gt;
&lt;p&gt;A stated aim of the process model is to execute a new process for each site to clear out the memory address space.  This is similar to the design feature of SE Linux where a process execution is needed to change security context so that a clean address space is provided (preventing leaks of confidential data and attacks on process integrity).  The use of multiple processes in Chrome is just begging to have SE Linux support added.  Having tabs opened with different security contexts based on the contents of the site in question and also having multiple stores of cookie data and password caches labeled with different contexts is an obvious development.&lt;/p&gt;
&lt;p&gt;Without having seen the code I can&amp;#8217;t guess at how difficult it will be to implement such features.  But I hope that when a clean code base is provided by a group of good programmers (Google has hired some really good people) then the result would be a program that is extensible.&lt;/p&gt;
&lt;p&gt;They describe Chrome as having a sandbox based security model (as opposed to the Vista modem which is based on &lt;a href=&quot;http://en.wikipedia.org/wiki/Biba_Integrity_Model&quot;&gt;the Biba Integrity Model [3]&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s yet to be determined whether Chrome will live up to the hype (although I think that Google has a good record of delivering what they promise).  But even if Chrome isn&amp;#8217;t as good as I hope, they have set new expectations of browser features and facilities that will drive the market.&lt;/p&gt;
&lt;p&gt;Update: &lt;a href=&quot;http://www.google.com/chrome&quot;&gt;Chrome is now released [4]&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;Thanks to Martin for pointing out that I had misread the security section.  It&amp;#8217;s Vista not Chrome that has the three-level Biba implementation.&lt;/p&gt;
&lt;p&gt;&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;[1] &lt;a href=&quot;http://googleblog.blogspot.com/2008/09/fresh-take-on-browser.html&quot;&gt;http://googleblog.blogspot.com/2008/09/fresh-take-on-browser.html&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[2] &lt;a href=&quot;http://www.google.com/googlebooks/chrome/&quot;&gt;http://www.google.com/googlebooks/chrome/&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[3] &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;[4] &lt;a href=&quot;http://www.google.com/chrome&quot;&gt;http://www.google.com/chrome&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=748&amp;amp;akst_action=share-this&quot; title=&quot;E-mail this, post to del.icio.us, etc.&quot; id=&quot;akst_link_748&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-09-02T12:44:35+00:00</dc:date>
	<dc:creator>etbe</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/himainu/20080831#1220185464">
	<title>Yuichi Nakamura: [その他]makedepand</title>
	<link>http://d.hatena.ne.jp/himainu/20080831#1220185464</link>
	<content:encoded>今更知ったコマンド。makefileの依存関係を自動的に作ってくれる。手書きでうっていた私は一体orz</content:encoded>
	<dc:date>2008-08-31T12:24:24+00:00</dc:date>
	<dc:creator>himainu</dc:creator>
</item>
<item rdf:about="http://kaigai.sblo.jp/article/18544392.html">
	<title>KaiGai Kohei: gitメモ</title>
	<link>http://kaigai.sblo.jp/article/18544392.html</link>
	<content:encoded>&lt;a href=&quot;http://www.celinuxforum.org/CelfPubWiki/JapanTechnicalJamboree22&quot;&gt;CELinux Forum Japan Technical Jamboree&lt;/a&gt;で、ルネサスの岩松さんから git についてのお話。&lt;br /&gt;&lt;br /&gt;ちょうど、前の日に James Morris が俺のパッチを security-testing-2.6 ツリーの next ブランチにマージしたと言ってきたものの、リモートのリポジトリのブランチを手元に持ってくる方法がわからなかったので、これ幸いと質問。&lt;br /&gt;&lt;br /&gt;最後のLTの時間までの間にわざわざ資料を作って教えて頂きました。多謝。&lt;br /&gt;キーワードは --track で、手元のブランチが追跡すべきリモートのブランチを指定する事。これで、リモートが更新された時にも git-pull で取ってこれる。&lt;br /&gt;&lt;br /&gt;以下は、security-testing-2.6ツリーからnextブランチを引っ張ってくる例&lt;pre&gt;[kaigai@masu repo]$ git-clone git://git.kernel.org/(略)/security-testing-2.6.git&lt;br /&gt;Initialized empty Git repository in /home/kaigai/repo/security-testing-2.6/.git/&lt;br /&gt;remote: Counting objects: 897923, done.&lt;br /&gt;remote: Compressing objects: 100% (161001/161001), done.&lt;br /&gt;remote: Total 897923 (delta 749238), reused 884130 (delta 735518)&lt;br /&gt;Receiving objects: 100% (897923/897923), 218.38 MiB | 2810 KiB/s, done.&lt;br /&gt;Resolving deltas: 100% (749238/749238), done.&lt;br /&gt;Checking out files: 100% (24333/24333), done.&lt;br /&gt;[kaigai@masu repo]$ cd security-testing-2.6&lt;br /&gt;[kaigai@masu security-testing-2.6]$ git-checkout &lt;b&gt;--track -b next origin/next&lt;/b&gt;&lt;/pre&gt;先ずは普通に git-clone をした後、git-checkout コマンドの -b next で、新しいブランチ（名前: next）を作成する。で、このブランチは origin/next をトラッキング（--track）するという事を指定する。&lt;br /&gt;&lt;br /&gt;これで、nextブランチのコピーを手元に持ってこれる。&lt;br /&gt;無事に git-log で自分のパッチがコミットされている事を確認できた。めでたしめでたし。&lt;pre&gt;commit d9250dea3f89fe808a525f08888016b495240ed4&lt;br /&gt;Author: KaiGai Kohei &lt;br /&gt;Date:   Thu Aug 28 16:35:57 2008 +0900&lt;br /&gt;&lt;br /&gt;    SELinux: add boundary support and thread context assignment&lt;br /&gt;&lt;br /&gt;    The purpose of this patch is to assign per-thread security context&lt;br /&gt;    under a constraint. It enables multi-threaded server application&lt;br /&gt;    to kick a request handler with its fair security context, and&lt;br /&gt;    helps some of userspace object managers to handle user's request.&lt;br /&gt;&lt;/pre&gt;</content:encoded>
	<dc:date>2008-08-29T13:46:59+00:00</dc:date>
	<dc:creator>KaiGai</dc:creator>
</item>
<item rdf:about="http://kaigai.sblo.jp/article/18543947.html">
	<title>KaiGai Kohei: TYPEBOUNSとマルチスレッド</title>
	<link>http://kaigai.sblo.jp/article/18543947.html</link>
	<content:encoded>&lt;a href=&quot;http://git.kernel.org/?p=linux/kernel/git/jmorris/security-testing-2.6.git;a=commit;h=d9250dea3f89fe808a525f08888016b495240ed4&quot;&gt;SELinux: add boundary support and thread context assignment&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;先月から議論を続けていたパッチがカーネルにマージされた。&lt;br /&gt;linux-next経由2.6.28行きという形になるだろう。&lt;br /&gt;このパッチの目的は、WebサーバやAPサーバがクライアントのリクエストを処理する際に、リクエストハンドラ（例えばPHPスクリプト）をクライアントに応じた適切な権限で実行する事である。&lt;br /&gt;&lt;br /&gt;Apacheに手を入れ、PHPスクリプトを呼び出す前にSELinuxのセキュリティコンテキストを設定すれば良いではないかと思うなかれ。スそう単純でない問題があるのである。&lt;br /&gt;近頃のWeb/APサーバはマルチスレッド化で性能を稼ぐ事が多々あるが、SELinuxはスレッド単位でのドメイン付与を認めていない。１プロセス＝１ドメインなのである。&lt;br /&gt;&lt;br /&gt;しかし、そんな事を言っていては埒が開かないのでと考えた末に出てきたアイデアが『元々のドメインに比べて、&lt;b&gt;権限が完全に縮退&lt;/b&gt;している場合に限り、スレッド単位のドメイン遷移を認める』というものであった。&lt;br /&gt;&lt;br /&gt;スレッドはメモリ空間を共有しており、OSが捕捉する事なく他のスレッドが読み出した情報を参照できるが、元のドメインよりも弱い権限で動いている限り、当該メモリ空間に存在してはならない情報がドメインの内部に入ってくる事はない。&lt;br /&gt;&lt;img src=&quot;http://kaigai.sakura.ne.jp/sblo_files/kaigai/image/080829_bounds.png&quot; width=&quot;512&quot; height=&quot;336&quot; border=&quot;0&quot; align=&quot;&quot; alt=&quot;080829_bounds.png&quot; /&gt;&lt;br /&gt;上の図は、各ドメインの権限をベン図で示したもの。&lt;br /&gt;httpd_php_tドメインは、完全にhttpd_tドメインに包含されており、この場合 httpd_t → httpd_php_t への遷移は可能。一方、httpd_perl_tドメインはhttpd_tに無い権限を持っているため、ドメイン遷移は認められない。&lt;br /&gt;&lt;br /&gt;このドメイン間の強弱関係を規定するのが、新しくポリシー構文に追加した TYPEBOUNDS 文である。&lt;br /&gt;&lt;pre&gt;書式：&lt;br /&gt;  TYPEBOUNDS &amp;lt;境界ドメイン&amp;gt; &amp;lt;被制約ドメイン&amp;gt; [, &amp;lt;被制約ドメイン&amp;gt; ... ] ;&lt;br /&gt;例：&lt;br /&gt;  TYPEBOUNDS httpd_t httpd_php_t ;&lt;/pre&gt;この一文を追加する事で、httpd_php_tドメインの権限は、決してhttpd_tドメインを越える事は無くなる。無理やりパーミッションを与えても、実行時にマスクされるので無駄。&lt;br /&gt;&lt;br /&gt;で、スレッドにドメインを設定する際には、既存のlibselinuxのAPIである setcon() を利用するが、この時、呼出しプロセスがマルチスレッド化されている場合、『&lt;b&gt;新しいドメインが、元のドメインを境界ドメインとして持つ&lt;/b&gt;』事がドメイン遷移の条件になる。&lt;br /&gt;&lt;br /&gt;これを使う事で、Web/APサーバがユーザのリクエストを処理する際に、ユーザに応じた適切な権限を割り当てる事が可能になる。&lt;br /&gt;&lt;br /&gt;大仰に言えば、SELinuxがWeb Application Flawの悪夢に対して処方箋となるための第一歩。技術の普及という点でも、今まで全く関係の無かったWeb2.0の人たちとの接点を作ると言うのは大きい。&lt;br /&gt;SELinuxの普及にはキラーアプリケーションが必要だとかねがね言ってきたが、Webとの連携はブレークスルーとなり得るか。今後の展開を乞うご期待。</content:encoded>
	<dc:date>2008-08-29T13:31:30+00:00</dc:date>
	<dc:creator>KaiGai</dc:creator>
</item>
<item rdf:about="http://james-morris.livejournal.com/33360.html">
	<title>James Morris: Linux Plumbers Conference</title>
	<link>http://james-morris.livejournal.com/33360.html</link>
	<content:encoded>I'll be attending the &lt;a href=&quot;http://linuxplumbersconf.org/&quot;&gt;Linux Plumbers Conference&lt;/a&gt; in Portland OR a few weeks from now.  It seems like a really useful event for developers, and even a little unusual in that Linus will be giving a git tutorial.&lt;br /&gt;&lt;br /&gt;If there's anyone attending who'd like to meet up &amp;amp; discuss SELinux, especially distro integration issues and similar, let me know.  Kees Cook from the Ubuntu project will be there, so if we have enough people, it might also be worth organizing a BoF session (it seems there are currently slots available).&lt;br /&gt;&lt;br /&gt;Similarly, if anyone is interested in discussing the integration of MAC security with KVM (i.e. &lt;a href=&quot;http://selinuxproject.org/page/SVirt&quot;&gt;sVirt&lt;/a&gt; -- a project I'll discuss in more detail soon), also let me know.</content:encoded>
	<dc:date>2008-08-29T06:14:24+00:00</dc:date>
</item>
<item rdf:about="http://d.hatena.ne.jp/himainu/20080829#1219981818">
	<title>Yuichi Nakamura: [組込み] CELF Jamboree 22</title>
	<link>http://d.hatena.ne.jp/himainu/20080829#1219981818</link>
	<content:encoded>今日は大雨の影響か、人が少ない。ちょっとオタワの様子を報告してきた。 午後はKaiGaiさんの話がある。  前にいるKaiGaiさんと話した。 TODOは、今こそSELinux入門！  コンパイルを早くするにはどうすればいいのかという話題が興味深かった。VMWare上でやるなら、単純にVMWare toolsを入れるだけでも早くなるというのは、発見だった。VMWare toolsはスルーしてたので。その他、分散コンパイルとか、分散コンパイルのためにLive CD作っちゃえとか、色々あるんだなぁ</content:encoded>
	<dc:date>2008-08-29T03:50:18+00:00</dc:date>
	<dc:creator>himainu</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-7673377107942959487.post-6996845116388908430">
	<title>Andrey Markelov (SELinux): Новый &quot;Мастер&quot; в system-config-selinux</title>
	<link>http://markelov.blogspot.com/2008/08/system-config-selinux.html</link>
	<content:encoded>&lt;div&gt;&lt;span&gt;Ден&lt;/span&gt; &lt;span&gt;Уолш&lt;/span&gt; &lt;a href=&quot;http://danwalsh.livejournal.com/22020.html&quot;&gt;рассказал&lt;/a&gt; о добавлении в утилиту &lt;span&gt;system&lt;/span&gt;-&lt;span&gt;config&lt;/span&gt;-&lt;span&gt;selinux&lt;/span&gt; мастера  &lt;span&gt;Boolean&lt;/span&gt; &lt;span&gt;Lockdown&lt;/span&gt; &lt;span&gt;Wizard&lt;/span&gt;. Он позволяет включать/выключать/сбрасывать в значение по умолчанию переключатели &lt;span&gt;SELinux&lt;/span&gt; (&lt;span&gt;booleans&lt;/span&gt;).  Самое приятное отличие этого мастера от пункта &lt;span&gt;Boolean&lt;/span&gt; в &lt;span&gt;system&lt;/span&gt;-&lt;span&gt;config&lt;/span&gt;-&lt;span&gt;selinux&lt;/span&gt; - это возможность на финальном шаге через &lt;span&gt;GUI&lt;/span&gt; сохранить текущее значение переключателей в файл.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;Ih2E3d&quot;&gt;  &lt;a href=&quot;http://4.bp.blogspot.com/_Uszw0G717TQ/SLZ6Rku9AJI/AAAAAAAAANU/MFAA80S9Z28/s1600-h/Lockdown.png&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/_Uszw0G717TQ/SLZ6Rku9AJI/AAAAAAAAANU/MFAA80S9Z28/s200/Lockdown.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5239509658829127826&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Когда поддержка сформированных таким образом файлов будет добавлена в &lt;span&gt;IPA&lt;/span&gt;, системный администратор сможет централизованно применять соответствующие настройки ко всем или части машин на предприятии.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;Ih2E3d&quot;&gt;  Пока же можно воспользоваться командой:&lt;br /&gt;&lt;br /&gt;[root@f9 ~]#  semanage boolean -m -F my_boolean_file.txt&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Обновленный пакет находится в &lt;span&gt;репозитории&lt;/span&gt; &lt;span&gt;updates&lt;/span&gt;-&lt;span&gt;testing&lt;/span&gt;. Чтобы попробовать работу с новым мастером, нужно включить этот &lt;span&gt;репозиторий&lt;/span&gt;.&lt;/div&gt;</content:encoded>
	<dc:date>2008-08-28T15:16:01+00:00</dc:date>
	<dc:creator>Andrey Markelov (noreply@blogger.com)</dc:creator>
</item>
<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. Reposted</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;Update: &lt;a href=&quot;http://etbe.coker.com.au/2008/09/04/opinions-facts-apparmor/&quot;&gt;I&amp;#8217;ve written some more about this topic in a later post [8]&lt;/a&gt;.&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;li&gt;[8]&lt;a href=&quot;http://etbe.coker.com.au/2008/09/04/opinions-facts-apparmor/&quot;&gt; http://etbe.coker.com.au/2008/09/04/opinions-facts-apparmor/&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:48: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.htm