<?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://etbe.coker.com.au/?p=1839" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=1833" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-5240359826706545510.post-4989369607950802009" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/kaigai/20100227" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/kaigai/20100227/1267222854" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/kaigai/20100227/1267222853" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/kaigai/20100227/1267222852" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/kaigai/20100227/1267222204" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/kaigai/20100227/1267222203" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/kaigai/20100227/1267221409" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/kaigai/20100227/1267221163" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/kaigai/20100227/1267221162" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/kaigai/20100227/1267220532" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/kaigai/20100227/1267219855" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/35420.html" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-5240359826706545510.post-4979036344025783724" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-5024703430482213163.post-4928461313376429315" />
			<rdf:li rdf:resource="http://intrajp.no-ip.com/nucleus/?itemid=3" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/35127.html" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-15117118.post-4027305150466239207" />
			<rdf:li rdf:resource="urn:lj:livejournal.com:atom1:paulmoore:5536" />
			<rdf:li rdf:resource="urn:lj:livejournal.com:atom1:paulmoore:5194" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/34903.html" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-7673377107942959487.post-6678427690171840198" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/34765.html" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-5024703430482213163.post-6107822133917796557" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/34557.html" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/34279.html" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/33728.html" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/33287.html" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-5240359826706545510.post-8578843398418873152" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/33090.html" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-5240359826706545510.post-6930836094501982826" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=1488" />
			<rdf:li rdf:resource="http://blog.namei.org/?p=231" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/kaigai/20091204/1259939032" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-5240359826706545510.post-6554397293158893009" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=1462" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/kaigai/20091120/1258716549" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-5240359826706545510.post-3614157649569909828" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-5240359826706545510.post-3484329159219895907" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-5240359826706545510.post-7811549643051986260" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=1419" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-5240359826706545510.post-7009199857974381878" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-5240359826706545510.post-3059150468917232562" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-15117118.post-3646008750328936619" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=1399" />
			<rdf:li rdf:resource="http://securityblog.org/brindle/?p=55" />
			<rdf:li rdf:resource="http://securityblog.org/brindle/?p=51" />
			<rdf:li rdf:resource="http://blog.namei.org/?p=227" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-5240359826706545510.post-1111704768328209545" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-5024703430482213163.post-1254384423721238855" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-15117118.post-126636015980316145" />
			<rdf:li rdf:resource="http://blog.namei.org/?p=221" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/32976.html" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-5024703430482213163.post-1511886773288714711" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/32430.html" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/32018.html" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/31888.html" />
			<rdf:li rdf:resource="http://blog.namei.org/?p=214" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/31604.html" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/31247.html" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-5024703430482213163.post-9182037528389825455" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-5024703430482213163.post-5249869767884565499" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/31146.html" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/30837.html" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-5024703430482213163.post-6304393634263861890" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=1358" />
			<rdf:li rdf:resource="urn:lj:livejournal.com:atom1:paulmoore:4969" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/kaigai/20090902/1251897393" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-7673377107942959487.post-7277917062087725929" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/kaigai/20090830/1251590757" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=1348" />
			<rdf:li rdf:resource="http://eparis.livejournal.com/891.html" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/30565.html" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-5240359826706545510.post-7134186085478035392" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/kaigai/20090822/1250907751" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/kaigai/20090822/1250907750" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/kaigai/20090822/1250907749" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/kaigai/20090822" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/30335.html" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=1340" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/kaigai/20090818/1250596607" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=1328" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=1324" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/himainu/20090812#1250086973" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-15117118.post-8595550265063210024" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/himainu/20090808#1249702662" />
			<rdf:li rdf:resource="http://d.hatena.ne.jp/himainu/20090808#1249702661" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=1262" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-5240359826706545510.post-7494387305498081485" />
			<rdf:li rdf:resource="http://blog.namei.org/?p=212" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/30084.html" />
			<rdf:li rdf:resource="http://eparis.livejournal.com/606.html" />
			<rdf:li rdf:resource="http://blog.namei.org/?p=206" />
			<rdf:li rdf:resource="http://etbe.coker.com.au/?p=1253" />
			<rdf:li rdf:resource="http://blog.namei.org/?p=196" />
			<rdf:li rdf:resource="http://intrajp.no-ip.com/nucleus/?itemid=12" />
			<rdf:li rdf:resource="http://danwalsh.livejournal.com/29790.html" />
			<rdf:li rdf:resource="http://intrajp.no-ip.com/nucleus/?itemid=11" />
		</rdf:Seq>
	</items>
</channel>

<item rdf:about="http://etbe.coker.com.au/?p=1839">
	<title>Russell Coker (security): Designing a Secure Linux System</title>
	<link>http://etbe.coker.com.au/2010/03/08/designing-secure-linux/</link>
	<content:encoded>&lt;h3&gt;The Threat&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;http://www.schneier.com/blog/archives/2010/03/mariposa_botnet.html&quot;&gt;Bruce Schneier&amp;#8217;s blog post about the Mariposa Botnet has an interesting discussion in the comments about how to make a secure system [1]&lt;/a&gt;.  Note that the threat is considered to be remote attackers, that means viruses and trojan horses &amp;#8211; which includes infected files run from USB devices (IE you aren&amp;#8217;t safe just because you aren&amp;#8217;t on the Internet).  The threat we are considering is not people who can replace hardware in the computer (people who have physical access to it which includes people who have access to where it is located or who are employed to repair it).  This is the most common case, the risk involved in stealing a typical PC is far greater than the whatever benefit might be obtained from the data on it &amp;#8211; a typical computer user is at risk of theft only for the resale value of a second-hand computer.&lt;/p&gt;
&lt;p&gt;So the question is, how do can we most effectively use free software to protect against such threats?&lt;/p&gt;
&lt;p&gt;The first restriction is that the hardware in common use is cheap and has little special functionality for security.  Systems that have a &lt;a href=&quot;http://en.wikipedia.org/wiki/Trusted_Platform_Module&quot;&gt;TPM&lt;/a&gt; seem unlikely to provide a useful benefit due to the TPM being designed more for &lt;a href=&quot;http://en.wikipedia.org/wiki/Digital_rights_management&quot;&gt;Digital Restrictions Management&lt;/a&gt; than for protecting the user &amp;#8211; and due to TPM not being widely enough used.&lt;/p&gt;
&lt;h3&gt;The BIOS and the Bootloader&lt;/h3&gt;
&lt;p&gt;It seems that the first thing that is needed is a BIOS that is reliable.  If an attacker manages to replace the BIOS then it could do exciting things like modifying the code of the kernel at boot time.  It seems quite plausible for the real-mode boot loader code to be run in a VM86 session and to then have it&amp;#8217;s memory modified before it starts switches to protected mode.  Every BIOS update is a potential attack.  &lt;a href=&quot;http://www.coreboot.org/Welcome_to_coreboot&quot;&gt;Coreboot replaces the default PC BIOS, it initialises the basic hardware and then executes an OS kernel or boot loader [2]&lt;/a&gt; (the &lt;a href=&quot;http://en.wikipedia.org/wiki/Coreboot&quot;&gt;Coreboot Wikipedia page has a good summary&lt;/a&gt;).  The hardest part of the system startup process is initialising the hardware, Coreboot has that solved for 213 different motherboards.&lt;/p&gt;
&lt;p&gt;If engineers were allowed to freely design hardware without interference then probably a significant portion of the computers in the market would have a little switch to disable the write line for the flash BIOS.  I heard a rumor that in the days of 286 systems a vendor of a secure OS shipped a scalpel to disable the hardware ability to leave protected mode, cutting a track on the motherboard is probably still an option.  Usually once a system is working you don&amp;#8217;t want to upgrade the BIOS.&lt;/p&gt;
&lt;p&gt;One of the payloads for Coreboot is GRUB.  &lt;a href=&quot;http://grub.enbug.org/FeatureRequests&quot;&gt;The Grub Feature Requests page has as it&amp;#8217;s first entry &amp;#8220;Option to check signatures of the bootchain up to the cryptsetup/luksOpen: MBR, grub partition, kernel, initramfs&amp;#8221; [3]&lt;/a&gt;.  Presumably this would allow a GPG signature to be checked so that a kernel and initrd would only be used if they came from a known good source.  With this feature we could only boot a known good kernel.&lt;/p&gt;
&lt;h3&gt;How to run User Space&lt;/h3&gt;
&lt;p&gt;The next issue is how to run the user-space.  There has been no shortage of Linux kernel exploits and I think it&amp;#8217;s reasonable to assume that there will continue to be a large number of exploits.  Some of the kernel flaws will be known by the bad guys for some time before there are patches, some of them will have patches which don&amp;#8217;t get applied as quickly as desired.  I think we have to assume that the Linux kernel will be compromised.  Therefore the regular user applications can&amp;#8217;t be run against a kernel that has direct hardware access.&lt;/p&gt;
&lt;p&gt;It seems to me that the best way to go is to have the Linux kernel run in a virtual environment such as &lt;a href=&quot;http://en.wikipedia.org/wiki/Xen&quot;&gt;Xen&lt;/a&gt; or &lt;a href=&quot;http://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine&quot;&gt;KVM&lt;/a&gt;.  That means you have a hypervisor (Xen+Linux or Linux+KVM+QEMU) that controls the hardware and creates the environment for the OS image that the user interacts with.  The hypervisor could create multiple virtual machines for different levels of data in a similar manner to the &lt;a href=&quot;http://en.wikipedia.org/wiki/NetTop&quot;&gt;NSA NetTop project&lt;/a&gt;, not that this is really a required part of solving the general secure Internet terminal problem but as it would be a tiny bit of extra work you might as well do it.&lt;/p&gt;
&lt;p&gt;One problem with using a hypervisor is that the video hardware tends to want to use features such as bus-mastering to give best performance.  Apparently KVM has &lt;a href=&quot;http://en.wikipedia.org/wiki/Iommu&quot;&gt;IOMMU&lt;/a&gt; support so it should be possible to grant a virtual machine enough hardware access to run 3D graphics at full speed without allowing it to break free.&lt;/p&gt;
&lt;h3&gt;Maintaining the Virtual Machine Image&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;http://sites.google.com/a/chromium.org/dev/chromium-os/chromiumos-design-docs/system-hardening&quot;&gt;Google has a good design for the ChromiumOS in terms of security [4]&lt;/a&gt;.  They are using &lt;a href=&quot;http://lxr.linux.no/linux+v2.6.30/Documentation/cgroups/&quot;&gt;CGroups [5]&lt;/a&gt; to control access to device nodes in jails, RAM, CPU time, and other resources.  They also have some intrusion detection which can prompt a user to perform a hardware reset.  Some of the features would need to be implemented in a different manner for a full desktop system but most of the Google design features would work well.&lt;/p&gt;
&lt;p&gt;For an OS running in a virtual machine when an intrusion is detected it would be best to have the hypervisor receive a message by some defined interface (maybe a line of text printed on the &amp;#8220;console&amp;#8221;) and then terminate and restart the virtual machine.  Dumping the entire address space of the virtual machine would be a good idea too, with typical RAM sizes at around 4G for laptops and desktops and typical storage sizes at around 200G for laptops and 2T for new desktops it should be easy to store a few dumps in case they are needed.&lt;/p&gt;
&lt;p&gt;The amount of data received by a typical ADSL link is not that great.  Apart from the occasional big thing (like downloading a movie or listening to Internet radio for a long time) most data transfers are from casual web browsing which doesn&amp;#8217;t involve that much data.  A hypervisor could potentially store the last few gigabytes of data that were received which would then permit forensic analysis if the virtual machine was believed to be compromised.  With cheap SATA disks in excess of 1TB it would be conceivable to store the last few years of data transfer (with downloaded movies excluded) &amp;#8211; but such long-term storage would probably involve risks that would outweigh the rewards, probably storing no more than 24 hours of data would be best.&lt;/p&gt;
&lt;p&gt;Finally in terms of applying updates and installing new software the only way to do this would be via the hypervisor as you don&amp;#8217;t want any part of the virtual machine to be able to write to it&amp;#8217;s data files or programs.  So if the user selects to install a new application then the request &amp;#8220;please install application X&amp;#8221; would have to be passed to the hypervisor.  After the application is installed a reboot of the virtual machine would be needed to apply the change.  This is a common experience for mobile phones (where you even have to reboot if the telco changes some of their network settings) and it&amp;#8217;s something that MS-Windows users have become used to &amp;#8211; but it would get a negative reaction from the more skilled Linux users.&lt;/p&gt;
&lt;h3&gt;Would this be Accepted?&lt;/h3&gt;
&lt;p&gt;The question is, if we built this would people want to use it?  The NetTop functionality of having two OSs interchangeable on the one desktop would attract some people.  But most users don&amp;#8217;t desire greater security and would find some reason to avoid this.  They would claim that it lowered the performance (even for aspects of performance where benchmarks revealed no difference) and claim that they don&amp;#8217;t need it.&lt;/p&gt;
&lt;p&gt;At this time it seems that computer security isn&amp;#8217;t regarded as a big enough problem for users.  It seems that the same people who will avoid catching a train because one mugging made it to the TV news will happily keep using insecure computers in spite of the huge number of cases of fraud that are reported all the time.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[1]&lt;a href=&quot;http://www.schneier.com/blog/archives/2010/03/mariposa_botnet.html&quot;&gt; http://www.schneier.com/blog/archives/2010/03/mariposa_botnet.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[2]&lt;a href=&quot;http://www.coreboot.org/Welcome_to_coreboot&quot;&gt; http://www.coreboot.org/Welcome_to_coreboot&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[3]&lt;a href=&quot;http://grub.enbug.org/FeatureRequests&quot;&gt; http://grub.enbug.org/FeatureRequests&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[4]&lt;a href=&quot;http://sites.google.com/a/chromium.org/dev/chromium-os/chromiumos-design-docs/system-hardening&quot;&gt; http://sites.google.com/a/chromium.org/dev/chromium-os/chromiumos-design-docs/system-hardening&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[5]&lt;a href=&quot;http://lxr.linux.no/linux+v2.6.30/Documentation/cgroups/&quot;&gt; http://lxr.linux.no/linux+v2.6.30/Documentation/cgroups/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded>
	<dc:date>2010-03-08T05:05:22+00:00</dc:date>
	<dc:creator>etbe</dc:creator>
</item>
<item rdf:about="http://etbe.coker.com.au/?p=1833">
	<title>Russell Coker (security): Opera and Trusting Applications vs Trusting Servers</title>
	<link>http://etbe.coker.com.au/2010/03/04/opera-trust-applications-vs-servers/</link>
	<content:encoded>&lt;h3&gt;The Opera-Mini Dispute&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;http://counternotions.com/2010/02/18/mini/&quot;&gt;I have just read an interesting article about the Opera browser [1]&lt;/a&gt;.  The article is very critical of Opera-Mini on the iPhone for many reasons &amp;#8211; most of which don&amp;#8217;t interest me greatly.  There are lots of technical trade-offs that you can make when designing an application for a constrained environment (EG a phone with low resolution and low bandwidth).&lt;/p&gt;
&lt;p&gt;What does interest me is the criticism of the Opera Mini browser for proxying all Internet access (including HTTPS) through their own servers, this has been getting some traction around the Internet.  Now it is obvious that if you have one server sitting on the net that proxies connections to lots of banks then there will be potential for abuse.  What apparently isn&amp;#8217;t obvious to as many people is the fact that you have to trust the application.&lt;/p&gt;
&lt;h3&gt;Causes of Software Security Problems&lt;/h3&gt;
&lt;p&gt;When people think about computer security they usually think about worms and viruses that exploit existing bugs in software and about Trojan horse software that the user has to be tricked into running.  These are both significant problems.&lt;/p&gt;
&lt;p&gt;But another problem is that of malicious software releases.  I think that this is significantly different from Trojan horses because instead of having an application which was written for the sole purpose of tricking people (as is most similar to Greek history) you have an application that was written by many people who genuinely want to make a good product but you have a single person or small group that hijacks it.&lt;/p&gt;
&lt;p&gt;Rumor has it that rates well in excess of $10,000 are sometimes paid for previously unknown security vulnerabilities in widely used software.  It seems likely that a programmer who was in a desperate financial situation could bolster their salary by deliberately putting bugs in software and then selling the exploits, this would not be a trivial task (making such bugs appear to be genuine mistakes would take some skill) &amp;#8211; but there are lots of people who could do it and plausibly deny any accusation other than carelessness.  There have been many examples of gambling addicts who have done more foolish things to fund their habit.&lt;/p&gt;
&lt;p&gt;I don&amp;#8217;t think it&amp;#8217;s plausible to believe that every security flaw which has been discovered in widely used software was there purely as the result of a mistake.  Given the huge number of programmers who have the skill needed to deliberately introduce a security flaw into the source of a program and conceal it from their colleagues I think it&amp;#8217;s quite likely that someone has done so and attempted to profit from it.&lt;/p&gt;
&lt;p&gt;Note that even if it could be proven that it was impossible to profit from creating a security flaw in a program that would not be sufficient to prove that it never happened.  There is plenty of evidence of people committing crimes in the mistaken belief that it would be profitable for them.&lt;/p&gt;
&lt;h3&gt;Should We Trust a Proprietary Application or an Internet Server?&lt;/h3&gt;
&lt;p&gt;I agree with the people who don&amp;#8217;t like the Opera proxy idea, I would rather run a web browser on my phone that directly accesses the Internet.  But I don&amp;#8217;t think that the web browser that is built in to my current smart-phone is particularly secure.  It seems usual for a PC to need a security update for the base OS or the web browser at least once a year while mobile phones have a standard service life of two years without any updates.  I suspect that there is a lot of flawed code running on smart phones that never get updated.&lt;/p&gt;
&lt;p&gt;It seems to me that the risks with Opera are the single point of failure of the proxy server in addition to the issues of code quality while the risks with the browser that is on my smart-phone is just the quality of the code.  I suspect that Opera may do a better job of updating their software to fix security issues so this may mitigate the risk from using their proxy.&lt;/p&gt;
&lt;p&gt;At the moment China is producing a significant portion of the world&amp;#8217;s smart-phones.  Some brands like LG are designed and manufactured in China, others are manufactured in China for marketing/engineering companies based in Europe and the US.  &lt;a href=&quot;http://www.faluninfo.net/&quot;&gt;A casual browse of information regarding Falun Gong makes the character of the Chinese leadership quite clear [2]&lt;/a&gt;, I think that everything that comes out of China should be considered to be less trustworthy than equivalent products from Europe and the US.  So I think that anyone who owns a Chinese mobile phone and rails against the Opera Mini hasn&amp;#8217;t considered the issue enough.&lt;/p&gt;
&lt;p&gt;I don&amp;#8217;t think it&amp;#8217;s possible to prove that an Opera Mini with it&amp;#8217;s proxy is more or less of a risk than a Chinese smart-phone.  I&amp;#8217;m quite happy with my &lt;a href=&quot;http://etbe.coker.com.au/2009/05/31/lg-u990-viewty/&quot;&gt;LG Viewty [3]&lt;/a&gt; &amp;#8211; but I wouldn&amp;#8217;t use it for Internet banking or checking my main email account.&lt;/p&gt;
&lt;p&gt;Also we have to keep in mind that mobile phones are really owned by telephone companies.  You might pay for your phone or even get it &amp;#8220;&lt;b&gt;unlocked&lt;/b&gt;&amp;#8221; so you can run it on a different network, but you won&amp;#8217;t get the custom menus of your telco removed.  Most phones are designed to meet the needs of telcos not users and I doubt that secure Internet banking is a priority for a telco.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Update:&lt;/b&gt;  You can buy unlocked mobile phones.  But AFAIK the Android is the only phone which might be described as not being designed for the needs of the telcos over the needs of the users.  So while you can get a phone without custom menus for a telco, you probably can&amp;#8217;t get a phone that was specifically designed for what you want to do.&lt;/p&gt;
&lt;h3&gt;The Scope of the Problem&lt;/h3&gt;
&lt;p&gt;Mobile phones are not the extent of the problem, I think that anyone who buys a PC from a Chinese manufacturer and doesn&amp;#8217;t immediately wipe the hard drive and do a fresh OS install is taking an unreasonable risk.  The same thing goes for anyone who buys a PC from a store where it&amp;#8217;s handled by low wage employees, I can imagine someone on a minimum income accepting a cash payment to run some special software on every PC before it goes out the door &amp;#8211; that wouldn&amp;#8217;t be any more difficult or risky than the employees who copy customer credit card numbers (a reasonably common crime).&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s also quite conceivable that any major commercial software company could have a rogue employee who is deliberately introducing bugs into it&amp;#8217;s software.  That includes Apple.  If the iPhone OS was compromised before it shipped then the issue of browser security wouldn&amp;#8217;t matter much.&lt;/p&gt;
&lt;p&gt;I agree that having the minimum possible number of potential security weak points is a good idea.  They should allow Opera Mini users to select that HTTPS traffic should not be proxied.  But I don&amp;#8217;t think that merely not using a proxy would create a safe platform for Internet banking.  In terms of mobile phones most things are done in the wrong way to try and get more money out of the users.  Choose whichever phone or browser you want and it will probably still be a huge security risk.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://laforge.gnumonks.org/weblog/2010/02/13/#20100213-six_weeks_to_bcch&quot;&gt;Harald Welte is doing some really good work on developing free software for running a GSM network [4]&lt;/a&gt;.  But until that project gets to the stage of being widely usable I think that we just have to accept a certain level of security risk when using mobile phones.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[1]&lt;a href=&quot;http://counternotions.com/2010/02/18/mini/&quot;&gt; http://counternotions.com/2010/02/18/mini/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[2]&lt;a href=&quot;http://www.faluninfo.net/&quot;&gt; http://www.faluninfo.net/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[3]&lt;a href=&quot;http://etbe.coker.com.au/2009/05/31/lg-u990-viewty/&quot;&gt; http://etbe.coker.com.au/2009/05/31/lg-u990-viewty/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[4]&lt;a href=&quot;http://laforge.gnumonks.org/weblog/2010/02/13/#20100213-six_weeks_to_bcch&quot;&gt; http://laforge.gnumonks.org/weblog/2010/02/13/#20100213-six_weeks_to_bcch&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded>
	<dc:date>2010-03-04T13:41:31+00:00</dc:date>
	<dc:creator>etbe</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-5240359826706545510.post-4989369607950802009">
	<title>Thomas Biege (Security): New RESTful Fuzzer and RoR Code-Scanner on Gitorious</title>
	<link>http://thetoms-random-thoughts.blogspot.com/2010/03/new-restful-fuzzer-and-ror-code-scanner.html</link>
	<content:encoded>&lt;p&gt;To better update my code and to improve collaboration I pushed my code to &lt;a href=&quot;http://www.gitorious.org/&quot;&gt;gitorious&lt;/a&gt;.&lt;br /&gt;&lt;!-- BlogCounter Code START --&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;fuzz-cmdline: Unix command-line tool fuzzer: &lt;a href=&quot;http://gitorious.org/fuzzer/fuzz-cmdline&quot;&gt;http://gitorious.org/fuzzer/fuzz-cmdline&lt;/a&gt;&lt;/li&gt;&lt;li&gt;fuzz-xmlrpc: XML-RPC, RESTful, HTTP file upload, POST/PUT URL fuzzer: &lt;a href=&quot;http://gitorious.org/fuzzer/fuzz-xmlrpc&quot;&gt;http://gitorious.org/fuzzer/fuzz-xmlrpc&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;ror-sec-scanner: Ruby on Rails source-code vulnerability scanner:  &lt;a href=&quot;http://gitorious.org/code-scanner/ror-sec-scanner&quot;&gt;http://gitorious.org/code-scanner/ror-sec-scanner&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;http://www.blogcounter.de/&quot; id=&quot;bclink&quot; title=&quot;kostenloser Counter fuer Weblogs&quot;&gt;&lt;span id=&quot;bccount&quot;&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.blogcounter.de/&quot;&gt;&lt;img alt=&quot;Weblog counter&quot; src=&quot;http://track.blogcounter.de/log.php?id=thetom_blog&quot; /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;br /&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5240359826706545510-4989369607950802009?l=thetoms-random-thoughts.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2010-03-01T00:36:50+00:00</dc:date>
	<dc:creator>Thomas (noreply@blogger.com)</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/kaigai/20100227">
	<title>KaiGai Kohei: バンクーバレポート</title>
	<link>http://d.hatena.ne.jp/kaigai/20100227</link>
	<content:encoded>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;Mixiからの転載&lt;/p&gt;
		&lt;/div&gt;</content:encoded>
	<dc:date>2010-02-26T22:40:09+00:00</dc:date>
	<dc:creator>kaigai</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/kaigai/20100227/1267222854">
	<title>KaiGai Kohei: バンクーバレポート（その９／帰国編）</title>
	<link>http://d.hatena.ne.jp/kaigai/20100227/1267222854</link>
	<content:encoded>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;最終デンマーク戦を観戦して、King Edwards駅から Canada Train で Richmond Brighouse駅へ &lt;/p&gt;
			&lt;p&gt;そして、バスで宿へ帰る。この時間帯、帰りのバスである410系統は30分毎なので、結構待つ &lt;/p&gt;
			&lt;p&gt;事になる。 &lt;/p&gt;
			&lt;p&gt;しばらくすると、バスがやってきた。401系統…だめぽ。 &lt;/p&gt;
			&lt;p&gt;またしばらくすると、バスがやってきた。403系統…だめぽ。 &lt;/p&gt;
			&lt;p&gt;さらに、バスがやってきた。NOT IN SERVICE…だめぽ、と思ったら、運転手が &lt;/p&gt;
			&lt;p&gt;『お前ら、何のバス待ってるんだ？』 &lt;/p&gt;
			&lt;p&gt;「410」 &lt;/p&gt;
			&lt;p&gt;「410」 &lt;/p&gt;
			&lt;p&gt;「402」 &lt;/p&gt;
			&lt;p&gt;「410」 &lt;/p&gt;
			&lt;p&gt;『よし、俺に任せろ』 &lt;/p&gt;
			&lt;p&gt;という事で、そのバスは410系統に早代わり。カナダのバスってフリーダムなのねｗｗｗｗ &lt;/p&gt;
			&lt;p&gt;宿に帰ると、もう疲れ果てたって感じ。 &lt;/p&gt;
			&lt;p&gt;風呂に入る。欧米の風呂はシャワーを浴びるように作られているが、知らん。風呂だ風呂。お湯を張って久々にリラックス。 &lt;/p&gt;
			&lt;br /&gt;

			&lt;p&gt;翌朝、宿のオーナーがバンクーバ国際空港まで送ってくれることになっていたので、そそくさと荷造り。まだ全身的な倦怠感は残る。 &lt;/p&gt;
			&lt;p&gt;飛行機の中は結構冷えるので、観戦中に来ていたバイク用のオーバーパンツを着込む。 &lt;/p&gt;
			&lt;p&gt;Richmondから空港に向かう間、スピードスケートの会場、Olympic ovalが見える。 &lt;/p&gt;
			&lt;p&gt;高速道を走り、五輪のモニュメントを脇目に、空港が見えてくると、もう一度、この場所を訪れることがあるかなーと、ちょっと感慨に浸る。 &lt;/p&gt;
			&lt;p&gt;空港で遅い朝ごはん。なんせ、昨日の夕方から何も食べてないので本当に腹ペコ。 &lt;/p&gt;
			&lt;p&gt;何か文化侵略くさいレストラン（写真）があるが、ピザとかハンバーガーもねーだろという事で、チャーハンと酢豚と麻婆豆腐のセットを頼む。 &lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100225042556&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100225/20100225042556.jpg&quot; alt=&quot;f:id:kaigai:20100225042556j:image:w320&quot; title=&quot;f:id:kaigai:20100225042556j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;セキュリティチェックを抜けて、職場その他へのお土産品を探す。 &lt;/p&gt;
			&lt;p&gt;おや、オリンピック公式ショップが。そういえば、みっちゃさんにカウベルを探しといてと &lt;/p&gt;
			&lt;p&gt;頼まれてた事を思い出すと…あった。即購入。 &lt;/p&gt;
			&lt;p&gt;その他、メープルシロップのお菓子等を購入して５３番搭乗口へ。 &lt;/p&gt;
			&lt;p&gt;まだしばらく時間がある。眠い。気がつくと、ソファに横になってて、搭乗時間の５分前だった。 &lt;/p&gt;
			&lt;p&gt;わさわさと機内に乗り込む。 &lt;/p&gt;
			&lt;p&gt;機内ではひたすら寝るのと、読書と、あとMixiの日記を書いてたｗ &lt;/p&gt;
			&lt;p&gt;帰りの機内では『FREE-無料からお金を生み出す新戦略-』を読了 &lt;/p&gt;
			&lt;p&gt;興味深い視点が提起されていた。これはまたどっかでレビュー書きたい。 &lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100225091925&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100225/20100225091925.jpg&quot; alt=&quot;f:id:kaigai:20100225091925j:image:w320&quot; title=&quot;f:id:kaigai:20100225091925j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;エアカナダの機内食はこんな感じ（写真）。&lt;/p&gt;
			&lt;p&gt;普段JALユーザの俺様には貧相に見えるけど、普通のエコノミーだとこんなもんかな？ &lt;/p&gt;
			&lt;p&gt;たださすがに、JALの機内食とエアカナダの機内食の間に、３〜４万円の価値の差は見出せない。 &lt;/p&gt;
			&lt;p&gt;成田に到着。総武線が信号故障の影響で成田エキスプレスの運転再開の目途が立っていないらしい。 &lt;/p&gt;
			&lt;p&gt;まぁ、安いしスカイライナーで帰るか。日暮里乗換えで、目黒から東急線。 &lt;/p&gt;
			&lt;p&gt;西小山に帰って、いつもの駅前の定食屋で肉野菜炒めライスを注文。 &lt;/p&gt;
			&lt;p&gt;なんか帰ってきた実感がする。 &lt;/p&gt;
			&lt;p&gt;疲れた。本格的に風邪をひかないよう、ビタミンウォーターを購入して帰宅。 &lt;/p&gt;
			&lt;p&gt;畳の上の布団は素晴らしい。 &lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100226175828&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100226/20100226175828.jpg&quot; alt=&quot;f:id:kaigai:20100226175828j:image:w320&quot; title=&quot;f:id:kaigai:20100226175828j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;写真はお土産の一部。まだ部屋の片付けとか、CASの景品一覧のぶんたまさんへの送付とか色々あるけど、とにかく疲れた。寝る。 &lt;/p&gt;
			&lt;p&gt;以上、KaiGaiのバンクーバ訪問珍道中でした。&lt;/p&gt;
		&lt;/div&gt;</content:encoded>
	<dc:date>2010-02-26T22:20:54+00:00</dc:date>
	<dc:creator>kaigai</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/kaigai/20100227/1267222853">
	<title>KaiGai Kohei: バンクーバレポート（その８／対デンマーク戦編）</title>
	<link>http://d.hatena.ne.jp/kaigai/20100227/1267222853</link>
	<content:encoded>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;２月２３日　１９：００　vs デュポン姉妹率いるデンマーク戦 &lt;/p&gt;
			&lt;p&gt;今回の観戦ツアーの最後の試合であり、既に予選敗退が決まった日本代表チームにとっても、 &lt;/p&gt;
			&lt;p&gt;バンクーバ五輪での最後のゲームである。バグパイプの演奏に先導されて入場してくる選手達。感慨深い。 &lt;/p&gt;
			&lt;p&gt;試合前、カーラー各位のメッセージを書いた国旗をポールに結んでいたところ、実況席の小林さんに発見され、記念の一枚。残り試合も解説頑張って下さい。 &lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100224111730&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100224/20100224111730.jpg&quot; alt=&quot;f:id:kaigai:20100224111730j:image:w320&quot; title=&quot;f:id:kaigai:20100224111730j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;試合開始。 &lt;/p&gt;
			&lt;p&gt;1END/2ENDは静かな攻防。 &lt;/p&gt;
			&lt;p&gt;試合が動いたのは3END。相手のスルーを契機に、テイクの打ち合いからガードを配してのゲームになる。だが、本橋さんのガードが僅かストーン半個ずれたのを見逃してくれず、ダブルテイクアウトで局面がひっくり返る。そして目黒さん、痛恨のスルー。 &lt;/p&gt;
			&lt;p&gt;見てたのは横からだけど、ちょっと幅に対してウェイトが強かった気がする。 &lt;/p&gt;
			&lt;p&gt;最後にドローをきっちり置かれて０−３。ありゃりゃ。 &lt;/p&gt;
			&lt;p&gt;4ENDも、目黒さんの１投目でロールしたかったけども、反対方向に流れて３点ならず。 &lt;/p&gt;
			&lt;p&gt;２点返して２−３。おっしゃまだまだ。 &lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100224124653&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100224/20100224124653.jpg&quot; alt=&quot;f:id:kaigai:20100224124653j:image:w320&quot; title=&quot;f:id:kaigai:20100224124653j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;5END、途中で相手のダブルテイクアウトもあったり、タップバックがずれたりと、緊迫した場面もあったけど、目黒さんがポケットにきっちりフリーズを決めて、１点取らせて２−４。 &lt;/p&gt;
			&lt;p&gt;6END、中継を見れなかった人にはイマイチラストショットの意図が分からなかったとの事。&lt;/p&gt;
			&lt;p&gt;これは目黒さん、完全に３点を取ろうとしたショットでした。本橋さんの２投目、自身の１投目が完全にティー前を支配できず、微妙にNo.2/4だったので、相手のNo.1を押して自分のNo.2を押し、相手はピールアウトさせつつ、押したNo.2で相手No.3をアウトにしようという作戦。 &lt;/p&gt;
			&lt;p&gt;角度が完璧なら自分のNo.4は動かないので、もし自分がスキップでも同じ選択をしたと思う（成功するかどうかは置いておいてｗ） &lt;/p&gt;
			&lt;p&gt;ただ、ちょっとウェイトが強すぎて、自分のNo.4ストーンにまで接触してしまった。 &lt;/p&gt;
			&lt;p&gt;ノーマルダウンくらいのウェイトで、微妙なアングルの調整はスイーパーに任せた方が上手く行ったかも。何はともあれ、同点に追いつく。４−４ &lt;/p&gt;
			&lt;p&gt;7END、クリーンな展開を保ってブランク。綺麗にセンターガードを置けたんだけども、ロールする方向が逆になったり、ステイしたりと、なかなかジャムな展開を作れない。 &lt;/p&gt;
			&lt;p&gt;まずいな．．．偶数エンドでの後攻を取られたぞ。 &lt;/p&gt;
			&lt;p&gt;8END。石崎さんのショットは結果論ながら綺麗なダブルセンターガードの形になる。 &lt;/p&gt;
			&lt;p&gt;先攻だけども結構期待できる…が、山浦さんのカマーが前を割ってしまった。 &lt;/p&gt;
			&lt;p&gt;前後に距離のあるセンターガードだと、カマー合戦になりがちなので、スチールの展開もアリかと思ったが…。 &lt;/p&gt;
			&lt;p&gt;山浦さん２投目、本橋さん２投目でダブルテイクアウトを狙うも決まらず。&lt;/p&gt;
			&lt;p&gt;この辺、微妙な、それこそ数cmのレベルのコントロールで相手に分があった気がする。 &lt;/p&gt;
			&lt;p&gt;目黒さんのラストショット、観客席からの視点だと思わず『やめて！萌絵ちゃん！』と叫びたいくらいのアクロバティック 赤→赤→黄→黄 のアングル・レイズ・ダブルテイクアウト &lt;/p&gt;
			&lt;p&gt;でも、ここでうまく処理できないと、３点を献上した上に、10END先攻という展開。&lt;/p&gt;
			&lt;p&gt;『がんばれ！目黒！』と祈るが、無情にもアングルがついた当たり方で、相手のストーンを動かすことはできず。嗚呼、４−７ &lt;/p&gt;
			&lt;p&gt;9END、そりゃ逃げにかかるよな…。 &lt;/p&gt;
			&lt;p&gt;結局、折角の後攻も１点を取らされる形に。 &lt;/p&gt;
			&lt;p&gt;ただ、２点スチールと、３点後攻と、難易度的には変わらないかも。 &lt;/p&gt;
			&lt;p&gt;応援席も一段とボルテージが上がって『日本！』コール。既に試合の終わったカナダの応援団も混じって『NIPPON!!』コール。まるでホーム会場のようだ。 &lt;/p&gt;
			&lt;p&gt;10END、なんとか２点を取りたいところだが．．．． &lt;/p&gt;
			&lt;p&gt;あぁぁぁぁ、、、石崎さんの置いたガードが見事にウィックでずらされた。なんて憎々しい。 &lt;/p&gt;
			&lt;p&gt;目黒さん、なんとか反転攻勢をしようとガードを置くが、ことごとくヒットで打たれて、刻々と残り少なくなっていくストーン。&lt;/p&gt;
			&lt;p&gt;本橋さんは相手ストーンの裏にカマーを試みるも、ヒットできる位置。目黒さんの２投目もカマーすることができず、これを弾かれたところでコンシード。残念！ &lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100224145031&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100224/20100224145031.jpg&quot; alt=&quot;f:id:kaigai:20100224145031j:image:w320&quot; title=&quot;f:id:kaigai:20100224145031j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;これで、チーム青森のバンクーバオリンピックは終わり。 &lt;/p&gt;
			&lt;p&gt;試合が終わった後、静けさを取り戻したシートの周りを名残惜しそうにぐるりと一週歩いて、観客席の各区画ごとに応援へのお礼をしていた目黒さん・本橋さんの姿が印象的でした。 &lt;/p&gt;
			&lt;br /&gt;

			&lt;p&gt;観客席からは「ありがとう！」「胸張って日本へ帰って来いよ！」の声 &lt;/p&gt;
			&lt;p&gt;外野からは色々とノイズが聞こえてくるかもしれないけども、チーム青森が全国のカーラーの代表として世界の競合と全力を尽くして戦ったという事は、なんら恥じることの無い事実。&lt;/p&gt;
			&lt;p&gt;３勝６敗（８位）という成績だったのは、勝負の時の運もあるし、100%の力でぶつかり合った結果の力不足という事もあるだろう。 &lt;/p&gt;
			&lt;p&gt;誰のミスがどーのこーのとか、そういうのはコーチなり協会なりがきちっと分析して、今後の強化方針にフィードバックすれば良いだけ。 &lt;/p&gt;
			&lt;p&gt;自分としては、わざわざ地球の裏側に出向いてまでその場の空気の中でゲームを見る事ができたというだけでも、素晴らしい経験だったように思う。 &lt;/p&gt;
			&lt;p&gt;チーム青森／チーム日本に拍手！！&lt;/p&gt;
		&lt;/div&gt;</content:encoded>
	<dc:date>2010-02-26T22:20:53+00:00</dc:date>
	<dc:creator>kaigai</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/kaigai/20100227/1267222852">
	<title>KaiGai Kohei: バンクーバレポート（その０／出発編）</title>
	<link>http://d.hatena.ne.jp/kaigai/20100227/1267222852</link>
	<content:encoded>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;厳密に言うと、これは出発前の記録でもあるわけだが。 &lt;/p&gt;
			&lt;p&gt;プロデュースド by せりあさんによる、女子カーリング『日本 vs イギリス』の観戦イベントに参加、その足で成田空港に向かっているNEXの車内でこの日記を書いている。 &lt;/p&gt;
			&lt;p&gt;六本木のシダックスに参集、およそ20数名程度が集まって応援。 &lt;/p&gt;
			&lt;p&gt;今日は土曜日の12:30〜ＮＨＫ総合での生中継と、まさにバンクーバ五輪を通して、最も多くの人に観戦の機会があったゲームではなかろうか。 &lt;/p&gt;
			&lt;p&gt;（さすがに平日2:00AMとか7:00AMは厳しいよね・・・） &lt;/p&gt;
			&lt;p&gt;放送時間の関係で３ＥＮＤ、日本１−０英国で日本先攻の場面から。 &lt;/p&gt;
			&lt;p&gt;目黒のラストショットでピールアウトになってしまうミスが出たものの、 英国スキップエヴァ・ミューヘッドのラストもピールできずステイ。&lt;/p&gt;
			&lt;p&gt;１点取らせる事に成功。 &lt;/p&gt;
			&lt;p&gt;後攻の４ＥＮＤ、相手のラストはNo.1/2を確保しに行くドローだったが、ウェイト強く若干奥に行ってしまう。No.1/2ではあるが、距離近くダブルテイクアウトが可能な位置。 &lt;/p&gt;
			&lt;p&gt;目黒さんの本来の作戦は、左→右と当てて両方を出す狙いだったんだろうけど、少しワイドに出て右→左に当たって３点。 &lt;/p&gt;
			&lt;p&gt;前にある石を避けるタイトなラインを狙わなくちゃいけないから、ナローにだけは出ちゃいけないという心理だったのかな…。非常によく理解できる（笑 &lt;/p&gt;
			&lt;p&gt;５ＥＮＤは２点返されて、４−３とリード、後攻を持っておやつタイムに。 &lt;/p&gt;
			&lt;p&gt;前の中国戦ではイマイチというか、いま二つだった近江屋さんが後半に素晴らしい働きを見せる。何ＥＮＤだったか少し定かじゃないけども、狭いラインをジャストのウェイトで通してセンター近くのストーンに当てて、石半個分をずらすロールとかがビシビシ決まっていたので、目黒さんも楽だったんじゃないかと思う。 &lt;/p&gt;
			&lt;p&gt;（あ、しかし一本ヌルーがあったような…。） &lt;/p&gt;
			&lt;p&gt;後半はかなりタイトなライン取りを要求するショットが沢山あったけども、チームＪＡＰＡＮの精度が神がかり的。本橋さんのダブルテイクアウトとか、目黒さんのレイズテイクアウトとか、完全にお腹一杯です本当にありがとうございました状態。 &lt;/p&gt;
			&lt;p&gt;６ＥＮＤは少し英国に形を作られたものの、目黒さんのこれぞスキップというドローで１点。事なきを得る。５−３ &lt;/p&gt;
			&lt;p&gt;７ＥＮＤ、確か本橋さんが長距離のダブルテイクアウトとか、近江屋さんの神ロールがあり、最終的に１点スチール。６−３ &lt;/p&gt;
			&lt;p&gt;８ＥＮＤ、英国には非常に難しい陣形に。センターの日本のストーンの後ろに、英国、さらに日本の石が団子状態。しかも、前はがっちりガード。 &lt;/p&gt;
			&lt;p&gt;これを見ていたぶんたまさん、１点スチールは間違いないと信じてトイレに。 &lt;/p&gt;
			&lt;p&gt;だが、英国はここで信じられない（Amazing!）なショットを選択。10時方向の石にヒットさせ、ストーンの方向を変えてセンターに。見事ヒット！ &lt;/p&gt;
			&lt;p&gt;微妙に最後のストーンが中心に近く、英国が一点を返して６−４ &lt;/p&gt;
			&lt;p&gt;後攻の９ＥＮＤ、日本としてはこのエンドブランクでも良いはずだけど、盤面がゴチャゴチャしはじめる。スキップ目黒のラスト１投を残した段階で、相手にNo.1/2。ガードストーンに守られている。最後のＥＮＤで後攻ということを考えても、２点までなら取られても大丈夫な場面。 &lt;/p&gt;
			&lt;p&gt;俺なら3/4は見えている相手No.2を10時方向から押して、ダブルで出せたら儲けもの。残して相手に１点でもいいやと思いそうな場面（しかも目黒さんは左利きだし）。 &lt;/p&gt;
			&lt;p&gt;しかし、目黒さんの選択は、味方の石をピンポイントで押して、相手のNo.1/2の両方を弾き出す Amazing! Amazing! Amazing! な一投。狙って本当に決めてしまうのがすごい。 &lt;/p&gt;
			&lt;p&gt;ニュースなんかでは『大量５点を奪って突き放した』という書き方が多いけれども、これ、実際はそこに至る試合展開の中で、英国に対して大量失点のリスクを犯してでも先攻でスチールを狙わざるを得ないという流れを作ったという事だわな。 &lt;/p&gt;
			&lt;p&gt;マジで見ごたえのある神ゲーム。そして、土曜日の午後という、日本の視聴者に優しい時間帯にＮＨＫの地上波でこのゲームを放映できた意味は限りなく大きいように思う。 &lt;/p&gt;
			&lt;p&gt;実はこの試合、（ドメスティックに）解説はぶんたまさんがしていて、小林さんの解説はあまり聞けてなかったんだけど &lt;/p&gt;
			&lt;p&gt;『カーリング』コミュニティ『【ネタバレ】予選 イギリス戦』トピックでの書き込み &lt;/p&gt;
			&lt;blockquote&gt;
			&lt;p&gt;今日の小林さん &lt;/p&gt;
			&lt;p&gt;序盤「カーリングが分からない人のために解説する（キリッ」 &lt;/p&gt;
			&lt;p&gt;中盤「相手の国のためにも中立に解説する（キリッ」 &lt;/p&gt;
			&lt;p&gt;終盤「イエース！イエース！イエーーーーーーース！！！！」 &lt;/p&gt;
			&lt;p&gt;たすけてｗｗｗｗｗｗｗｗｗｗｗ &lt;/p&gt;
			&lt;/blockquote&gt;
			&lt;p&gt;これは見てみたいｗｗｗｗ &lt;/p&gt;
			&lt;br /&gt;

			&lt;p&gt;試合終了後は、六本木から地下鉄で東京駅。NEXに乗って成田空港に。 &lt;/p&gt;
			&lt;p&gt;19:00成田発バンクーバ行きのAirCanada便に搭乗。普段はJALでごじゃるので、第一ターミナルは確か初体験だったような気がする。 &lt;/p&gt;
			&lt;p&gt;一応、夜に出て朝に着く予定のフライトなので、機内では睡眠を心がける。 &lt;/p&gt;
			&lt;p&gt;「青森ドロップキッカーズ」読了。機内食を食べてみて、JALは頑張ってるんだなぁというのを実感。 &lt;/p&gt;
			&lt;p&gt;翌、現地時間の10:56に現地に到着。ブリティッシュ・コロンビアの島の上を通過し、入り組んだ海岸線の奥に広がるバンクーバの町並みは綺麗。 &lt;/p&gt;
			&lt;p&gt;雨が多いと聞いていたが、現地は雲一つない快晴。 &lt;/p&gt;
			&lt;p&gt;日本時間では朝。ちーと眠いが、これから宿からカーリングの行われている Vancouver Olympic Center へ公共交通機関を使って行く予行練習。 &lt;/p&gt;
			&lt;p&gt;あと、ダウンタウンで飯を食うことにしよう。この辺、コンビニの一つもないのよね。住宅街だし。&lt;/p&gt;
		&lt;/div&gt;</content:encoded>
	<dc:date>2010-02-26T22:20:52+00:00</dc:date>
	<dc:creator>kaigai</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/kaigai/20100227/1267222204">
	<title>KaiGai Kohei: バンクーバレポート（その７／対スウェーデン戦編）</title>
	<link>http://d.hatena.ne.jp/kaigai/20100227/1267222204</link>
	<content:encoded>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;翌２３日は、私のオリンピック観戦の最終日。 &lt;/p&gt;
			&lt;p&gt;疲れは残っているが、少し厚着をして観戦に臨めば、破滅的な状況にはなるまい。 &lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100224015049&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100224/20100224015049.jpg&quot; alt=&quot;f:id:kaigai:20100224015049j:image:w320:left&quot; title=&quot;f:id:kaigai:20100224015049j:image:w320:left&quot; class=&quot;hatena-fotolife hatena-image-left&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100224021558&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100224/20100224021558.jpg&quot; alt=&quot;f:id:kaigai:20100224021558j:image:w320&quot; title=&quot;f:id:kaigai:20100224021558j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;朝７時に目が覚め、準備して7:55頃出立。一昨日の経験からすれば、これできちんと &lt;/p&gt;
			&lt;p&gt;1ENDから観戦できるはず・・・甘かった。 &lt;/p&gt;
			&lt;p&gt;入り口のセキュリティチェック待ちで長蛇の列が。結局、入場できたのは9:10頃。 &lt;/p&gt;
			&lt;p&gt;これで、9:00〜の試合は２回とも遅刻という事になるが、前回は逆転勝利を収めたロシア戦。&lt;/p&gt;
			&lt;p&gt;ゲン担ぎという事で前向きに考える。 &lt;/p&gt;
			&lt;p&gt;実はスウェーデン戦はかなり疲労困憊だったので、写真を撮るのを忘れていた。 &lt;/p&gt;
			&lt;p&gt;体調的には実はそれくらい辛かった。。。。 &lt;/p&gt;
			&lt;p&gt;でも、試合の要点は忘れないうちに書いておくのだ。 &lt;/p&gt;
			&lt;p&gt;まず、最初のポイントは3END &lt;/p&gt;
			&lt;p&gt;相手がNo.1-3まで持っている状況で、目黒さんの選択は、ちょい強めのドローウェイトで僅かに押せる可能性のあるNo.4ストーンを軽く押してハウス中心部に。 &lt;/p&gt;
			&lt;p&gt;このショットが決まった瞬間、このエンドはスチールだと思った。いやマジで。 &lt;/p&gt;
			&lt;p&gt;でも、ノルベリは自分のストーンにアングルを付けて当て、背後の日本No.1をピールアウト。 &lt;/p&gt;
			&lt;p&gt;何が起こったのか、正直よくわからんかった。 &lt;/p&gt;
			&lt;p&gt;が、これでスウェーデン３点。かなりまずい状況。 &lt;/p&gt;
			&lt;p&gt;ただ、中盤の5END/6ENDは立ち直ってゲームの展開を支配していた。 &lt;/p&gt;
			&lt;p&gt;5END。ダブルセンターガードからジャムな展開を作り、相手サードのドローがショートしてバイターの位置で止まったところで、目黒さんのショットが決まってNo.1-3 &lt;/p&gt;
			&lt;p&gt;相手に１点取らせて後攻をゲト &lt;/p&gt;
			&lt;p&gt;6END。途中、相手のストーンがハウスに溜まるいやな展開になりかけたが、本橋さんのフリーズが決まって、相手はそれを出し切れず。ノルベリに際どい場所に置かれるものの、目黒さんも丁寧に叩いて味方の石を出すことなくステイ。３点返す！５−６！ &lt;/p&gt;
			&lt;p&gt;次の7END、目黒さん最後のショットで痛恨のスルー。これ、現地ではよく分からなかったんだけど、ニュースでは何かゴミを噛んだとか言っていた。痛すぎる。。。 &lt;/p&gt;
			&lt;p&gt;確かに、ほぼ満員の会場で、防寒着の綿とかが結構飛んでいた。クリーンは重要。 &lt;/p&gt;
			&lt;p&gt;ただ、角度的にはかなり難しい所（スウェーデンNo.1ステイの可能性も高い）だから、ティー奥のスウェーデンの石にくっつけても良かったとは思うんだな。 &lt;/p&gt;
			&lt;p&gt;事実上、これでゲームは決まったみたいな感じ。 &lt;/p&gt;
			&lt;p&gt;逃げ切りにかかるスウェーデン、こっちがガードを置いてもウィックで外しにかかるし。 &lt;/p&gt;
			&lt;p&gt;うわー、見てて憎々しい。でも上手ぇ。 &lt;/p&gt;
			&lt;p&gt;シートのギリギリに飛ぶけど、アウトにならない絶妙なショット。 &lt;/p&gt;
			&lt;p&gt;コーナーガードを基点になんとか組み立てようとするも、要所でダブルテイクアウト…。 &lt;/p&gt;
			&lt;p&gt;結局、9END終了時点で10-6。点差はかなり絶望的なんだけど、チームで長い相談の後、目黒さん、最後の可能性がある限りは試合を続けることを決断。 &lt;/p&gt;
			&lt;p&gt;隣のシートでは、スイスが5ENDくらい連続でスチールして早々に米国を下している。 &lt;/p&gt;
			&lt;p&gt;そういった事も頭をよぎったのかも。 &lt;/p&gt;
			&lt;p&gt;ただ、粘りはしたものの、最終的には目黒さんのラストショットを前に数学的な可能性も消滅し、コンシード。残念無念…。 &lt;/p&gt;
			&lt;br /&gt;

			&lt;br /&gt;

			&lt;p&gt;この後、試合会場を後にして、バンクーバのダウンタウンに向かった。 &lt;/p&gt;
			&lt;p&gt;飯を食べるためと、どこかスターバックスのソファーで寝るためｗｗｗ &lt;/p&gt;
			&lt;p&gt;本当に体調的に辛くて、このまま歩き回っていたら死ぬかと思った。 &lt;/p&gt;
			&lt;p&gt;なので、昼ご飯は日本食。TERIYAKI Beafというのを食った。そこそこ美味かった。 &lt;/p&gt;
			&lt;p&gt;その後、ソファのあるスタバを探す。あった。 &lt;/p&gt;
			&lt;p&gt;その前に、市内でこんなアトラクションを見つける。 &lt;/p&gt;
			&lt;p&gt;
&lt;a href=&quot;http://d.hatena.ne.jp/video/niconico/sm9850141&quot; alt=&quot;この動画を含む日記&quot;&gt;&lt;img src=&quot;http://d.hatena.ne.jp/images/d_entry.gif&quot; alt=&quot;D&quot; border=&quot;0&quot; title=&quot;この動画を含む日記&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;乗ってみようかと思ったが、すごい長蛇の列。ショッピングと違ってなかなか進まないので、マジ３時間コースとか思って諦める。 &lt;/p&gt;
			&lt;p&gt;さすがにこの体調で３時間も立ちっぱなしだと最後の試合の前に倒れるｗｗｗｗ &lt;/p&gt;
			&lt;p&gt;バンクーバ、意外に乾燥しててノドが痛かったので、スタバでチャイ・ラテとフルーツ盛り合わせを購入してソファーでうとうと。幸せ。。。。 &lt;/p&gt;
			&lt;p&gt;気がつくと、もう３時半。外では雨が降り出している。これがバンクーバの典型的な気候らしい。 &lt;/p&gt;
			&lt;p&gt;ここまでの３日間、全くの快晴続きだったので雨具は持ってなかったが、諦めて購入。 &lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100224080241&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100224/20100224080241.jpg&quot; alt=&quot;f:id:kaigai:20100224080241j:image:w320&quot; title=&quot;f:id:kaigai:20100224080241j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;雨のバンクーバ市内の写真をお楽しみください。 &lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100224080311&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100224/20100224080311.jpg&quot; alt=&quot;f:id:kaigai:20100224080311j:image:w320&quot; title=&quot;f:id:kaigai:20100224080311j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100224080805&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100224/20100224080805.jpg&quot; alt=&quot;f:id:kaigai:20100224080805j:image:w320&quot; title=&quot;f:id:kaigai:20100224080805j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;トロリーバスが走っている！電池型の電気自動車より燃費はいいかも。 &lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100224080952&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100224/20100224080952.jpg&quot; alt=&quot;f:id:kaigai:20100224080952j:image:w320&quot; title=&quot;f:id:kaigai:20100224080952j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;五輪公式ショップの隣のドラッグストアで、公式グッズの半額セール。 &lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100224081744&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100224/20100224081744.jpg&quot; alt=&quot;f:id:kaigai:20100224081744j:image:w320&quot; title=&quot;f:id:kaigai:20100224081744j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;あまった時間で、再度オリンピック公式ショップへ。連れの人へのお土産と、みっちゃさんに頼まれていたカウベルを探しに。なんか、五輪終了が近付くにつれて値下げされてるような気がするんだが…。（一昨日、80CADで買ったジャージが、64CADで売られてた。ショボンヌ）&lt;/p&gt;
		&lt;/div&gt;</content:encoded>
	<dc:date>2010-02-26T22:10:04+00:00</dc:date>
	<dc:creator>kaigai</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/kaigai/20100227/1267222203">
	<title>KaiGai Kohei: バンクーバレポート（その６／Vancouver Curling Club編）</title>
	<link>http://d.hatena.ne.jp/kaigai/20100227/1267222203</link>
	<content:encoded>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;スイス戦の終了後、Vancouver Olympic Center隣接のVancouver Curling Club(VCC)を訪問する。オリンピック期間中、VCCでは Curling Clinic と題して、非会員の人にもカーリングの指導をするという企画を行っており、講師として長野五輪銀メダリストの Mike Harris を呼んでいる。まぁ、120CADくらいの参加費が必要なので、決して安くはないんだけど…。 &lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100223095421&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100223/20100223095421.jpg&quot; alt=&quot;f:id:kaigai:20100223095421j:image:w320&quot; title=&quot;f:id:kaigai:20100223095421j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100223120413&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100223/20100223120413.jpg&quot; alt=&quot;f:id:kaigai:20100223120413j:image:w320&quot; title=&quot;f:id:kaigai:20100223120413j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;駄菓子菓子、実際にVCCの建物（100年くらい歴史のある由緒正しいクラブらしく、由緒ある建物である。）を訪れて受付を済ませてみると、この時間帯の申込者は自分１名だったらしい。というわけで、Mike Harrisとマンツーマンでレッスンを受けることになる。参加費が安くないなんてつぶやいてマジごめんなさい。 &lt;/p&gt;
			&lt;p&gt;何回かインターン・アウトターンの両方のデリバリーを観察して、３つ指摘事項があるとの事。 &lt;/p&gt;
			&lt;p&gt;一つは、ストーンを持つ腕が真っ直ぐに伸びていて &quot;extension&quot; が無いこと。 &lt;/p&gt;
			&lt;p&gt;肘を180度伸ばすのではなく、（例えば）160度程度に保っておいて、蹴り出したは良いがヒットのウェイトが足りないとか、ラインが微妙にずれてるとか、そういう場合の微調整をできるようにするのだとか。 &lt;/p&gt;
			&lt;p&gt;確かに、翌日のゲームで本橋のテイクショットを観察してて、最後に押してパワーを与える時に、一度引いて押し出すという動作をしていたように思える。 &lt;/p&gt;
			&lt;p&gt;日本のコーチングでは、基本的に腕を伸ばしてブレないようにすると教わったハズだけども、それも一長一短って事か。 &lt;/p&gt;
			&lt;p&gt;Make Harris曰く「君は常に正しい方向・強さで蹴り出せるのか？私は無理だ。なので、微調整は必要なんだよ。」との事。確かにそりゃ無理な相談だ。 &lt;/p&gt;
			&lt;p&gt;あと、インターンの時にストーンが身体の正面にきていないので、リリースの時に余分な斜め角度が付いてしまい、他の人よりも余分にカールするんじゃないか？と言われた。 &lt;/p&gt;
			&lt;p&gt;そｗｗｗれｗｗｗかｗｗｗ &lt;/p&gt;
			&lt;p&gt;確かに、試合で例えばhibiki-cさんの後に同じラインで自分が投げたら、自分のストーンが余分にカールしてガードに当たったりした事が何度かあった。そんな所に原因があったのね！！ &lt;/p&gt;
			&lt;p&gt;何度かVCCの氷でデリバリーの練習をしてみて驚いたのは、本当によく曲がる事。体感で8-10フット程度は曲がったんじゃないかなぁ。山中湖で壁→中心のラインと同じくらい、右にも左にも曲がる。これだけ左右に自由自在だと、カマーを使った戦略も楽しいだろうなぁ…。たぶん、ロングガードにしなくても、３の位置にガードを置いても十分成立するだろうな。 &lt;/p&gt;
			&lt;p&gt;最後のは、俺みたく背が高い人はグライダー（スタビライザー）を使うのは止めたほうがいいんじゃない？って話。スタビライザーを使うとデリバリーの姿勢が低くなるので、背が高い人だと重心の上下移動が大きくなり、バランスを崩しやすい。 &lt;/p&gt;
			&lt;p&gt;そもそもスタビライザを使い始めたのって、TCCの講習会でＯ澤さんに「ブラシを脇で抱える形になってるので、背骨が&quot;く&quot;の字型になってる」との指摘があり、ブラシを抱えずに済むにはスタビライザーという事だったんだけど、今だとどうだろう。 &lt;/p&gt;
			&lt;p&gt;あと、スイーピングについての新しい豆知識。 &lt;/p&gt;
			&lt;p&gt;基本的にスイープは左右２人でやるけども、常にそれが正しいわけではないと。 &lt;/p&gt;
			&lt;p&gt;２年ほど前から言われ始めた事として、ストーンから遠い方のスイーパーは、ストーンを動かしたい方向を掃く。つまり、より強くカールさせたいのであれば、ストーンから遠い方のスイーパーは曲がるべき方向を掃く。逆にカールさせたくなければ、進行方向を掃く。ブラシの位置が身体から離れると体重が乗らないので、例えば左側にカールさせるなら、スイーパー２人が左側に居てもＯＫ。 &lt;/p&gt;
			&lt;p&gt;確かこれは、園部さんに聞いたことがある。チーム長野でのアレンジかもしれないけど、カールの方向によって、左右どちらのスイーパーが石に近い方を掃くかを決めるとの事。カマーで攻める時なんかは1cmでも大きくカールさせたい訳だし、こういった差が、ゲーム展開上の違いに繋がってくるのかも。 &lt;/p&gt;
			&lt;p&gt;あと、ウェイトを正しく出すには、ストップウォッチを使った練習が大切との事。 &lt;/p&gt;
			&lt;p&gt;これは、やり方的に我々のやってきた方法で良かったようだ。ただ、内的感覚でバック−ホグ 3.xx 秒みたいのを身に付けるには、もっと練習の頻度が必要だわ。 &lt;/p&gt;
			&lt;p&gt;んで、「これあげるよ」と、Make Harrisの使ってるストップウォッチをもらう。うわー、ありがてぇ！ &lt;/p&gt;
			&lt;p&gt;一通りレッスンが終わった後、Goldlineのお姉さんが来ているとかで紹介される。 &lt;/p&gt;
			&lt;p&gt;「俺のブルームはGoldlineだよ。軽くてすっげー気に入ってる。」と話したらなぜかハイタッチで挨拶。営業担当の人ってのは、あれくらいノリが良くないとダメなんだろう。きっと。 &lt;/p&gt;
			&lt;p&gt;なんか色々貰って来た。メープルの葉のロゴが入ったブラシヘッド×２（１個はサイン入り）、長野五輪のポストカード、ピンバッジ。 &lt;/p&gt;
			&lt;p&gt;極めつけは↓の写真。「恐れ多い」に対応する英単語のボキャブラリーを知らなかったので、ただオロオロするばかり。長野五輪の銀メダルを見せてもらって記念撮影（えへ）。 &lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100223114411&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100223/20100223114411.jpg&quot; alt=&quot;f:id:kaigai:20100223114411j:image:w320&quot; title=&quot;f:id:kaigai:20100223114411j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;あと、夜になって女子のカナダ代表チームが練習に来るという事で『サイン貰っちゃいなよ』と急かされてこんな事に。 &lt;/p&gt;
			&lt;p&gt;カーリングに使ってるジャージに Cori Bartell のサインを。 &lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100223145815&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100223/20100223145815.jpg&quot; alt=&quot;f:id:kaigai:20100223145815j:image:w320&quot; title=&quot;f:id:kaigai:20100223145815j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;でも、大会期間中の代表選手に何を話しかけたらいいかなんて分かんないよ。 &lt;/p&gt;
			&lt;p&gt;要約すると「金メダル目指して頑張って下さい。応援してます。」ぐらい（汗 &lt;/p&gt;
			&lt;p&gt;VCCを後にすると、まだ19:00くらいだったので、午前中にちょっとうろついたYele Townという町で飯を食いにいく。この町並みは好き。もう少し日程に余裕を持って行けばよかった。試合が〜22:00とかだと、あまり普通のレストランは開いてないので、真っ当なレストランでの夕食はこれ一回じゃなかろうか（汗） &lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100223130807&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100223/20100223130807.jpg&quot; alt=&quot;f:id:kaigai:20100223130807j:image:w320&quot; title=&quot;f:id:kaigai:20100223130807j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;レストラン・パブ街のメニューを見ながら、美味しそうな物はないかと歩く。 &lt;/p&gt;
			&lt;p&gt;非常に豊満な乳のお姉さんが調理しているグリル。いかんいかん、あれは紛い物だと自分に言い聞かせる。 &lt;/p&gt;
			&lt;p&gt;ある店の前でメニューを見ていると「IKA SUGATAYAKI」とか「TEMPURA」とか書いてある。気になって聞いてみる。 &lt;/p&gt;
			&lt;p&gt;「ここ、アジアンレストラン？」 &lt;/p&gt;
			&lt;p&gt;「いや、タイ料理」 &lt;/p&gt;
			&lt;p&gt;「でも、メニューの一部は日本料理に見えるんだけど」 &lt;/p&gt;
			&lt;p&gt;「大丈夫、辛い味付けをしているから」 &lt;/p&gt;
			&lt;p&gt;・・・辛い味付けをすればタイ料理になるのか・・・ &lt;/p&gt;
			&lt;p&gt;でも、面倒臭くなったので、結局、このお店でお食事。 &lt;/p&gt;
			&lt;p&gt;トムヤンクンとライス、ビーフグリルとデザートを注文。満腹になったので、デザートを注文していた事を忘れて店から出てしまったんだけど、店員さんが後で追いかけて来て、デザートをパック詰めにして持って来てくれた。好感度ＵＰ。早食いですまん。 &lt;/p&gt;
			&lt;p&gt;そんなこんなで、宿に帰ると22:00頃。ちょっと睡眠不足と疲労の蓄積がハンパないので、日記の更新は諦めて寝る。&lt;/p&gt;
		&lt;/div&gt;</content:encoded>
	<dc:date>2010-02-26T22:10:03+00:00</dc:date>
	<dc:creator>kaigai</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/kaigai/20100227/1267221409">
	<title>KaiGai Kohei: バンクーバレポート（その５／対スイス戦編）</title>
	<link>http://d.hatena.ne.jp/kaigai/20100227/1267221409</link>
	<content:encoded>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;そろそろ睡眠不足が祟って眠い。体調が良くない感じ。 &lt;/p&gt;
			&lt;p&gt;頼むから、最後の試合を観戦する明日まではもってほしい。 &lt;/p&gt;
			&lt;p&gt;今大会の関ヶ原決戦とも思えるスイス戦。 &lt;/p&gt;
			&lt;p&gt;同じ三敗同士というのが信じられないくらい正確なショットで置いてくる。 &lt;/p&gt;
			&lt;p&gt;で、こちらはどんどん苦しい状況でショットを打たざるを得なくなる。 &lt;/p&gt;
			&lt;p&gt;例えば、1ENDは途中まで完全に2点ゴチの流れだったわけだけども、本橋さんのテイクが左にロールすべきところ、そのままステイしちゃったために、日本のNo.1/2が近い状況になり、結果はダブルテイクアウト。目黒さんは結局１点を取らされる事になってしまった。 &lt;/p&gt;
			&lt;p&gt;でも、実際にロールするのとステイするのでは、当たる位置の違いは3cm程度。 &lt;/p&gt;
			&lt;p&gt;要は、そのレベルの違いをコントロールできないと、世界で勝つのは難しいって事なんだなぁ、、、、とか思った。 &lt;/p&gt;
			&lt;p&gt;結局、日本の挙げた４点は全て後攻のエンド。オットーに終始試合を支配され続けていたという点で、今後がちょっと心配な一戦でした。&lt;/p&gt;
			&lt;p&gt;他力本願だけども決勝Ｔの望みはまだ消えていないので、なんとか残り２試合、気持ちを切り替えて頑張ってほしい。 &lt;/p&gt;
			&lt;p&gt;あと、ひとつ気になったチーム青森の投げ方。 &lt;/p&gt;
			&lt;p&gt;ヒットロールを狙うときに、右側にロールさせたいとしたら、左側からインターンで投げているけども、右側からアウトターンで投げた方がイージーじゃないか？？これだと、当たるアングルをスイープで調整できるし。。。。 &lt;/p&gt;
			&lt;p&gt;今日もヒットロールのアングルを間違えて失敗に終わった作戦が何度かあったけど、これってどうなんだろう。 &lt;/p&gt;
			&lt;p&gt;青森レベルのチームなら、反対からのラインに修正するだけで容易に対応できそうな気がするんだけどなぁ。。。。&lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100223092720&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100223/20100223092720.jpg&quot; alt=&quot;f:id:kaigai:20100223092720j:image:w320&quot; title=&quot;f:id:kaigai:20100223092720j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100223093439&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100223/20100223093439.jpg&quot; alt=&quot;f:id:kaigai:20100223093439j:image:w320&quot; title=&quot;f:id:kaigai:20100223093439j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100223094209&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100223/20100223094209.jpg&quot; alt=&quot;f:id:kaigai:20100223094209j:image:w320&quot; title=&quot;f:id:kaigai:20100223094209j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;関係ないですが、写真はアンナちゃん（ロシアのスキップ：アンナ＝シドロヴァ）のモノ。 &lt;/p&gt;
			&lt;p&gt;需要が多そうな感じがしたので、コンシードの後のエンドに撮影してましたｗｗｗ&lt;/p&gt;
		&lt;/div&gt;</content:encoded>
	<dc:date>2010-02-26T21:56:49+00:00</dc:date>
	<dc:creator>kaigai</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/kaigai/20100227/1267221163">
	<title>KaiGai Kohei: その４（対ドイツ編）</title>
	<link>http://d.hatena.ne.jp/kaigai/20100227/1267221163</link>
	<content:encoded>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;というわけで、ドイツ戦。 &lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100222111541&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100222/20100222111541.jpg&quot; alt=&quot;f:id:kaigai:20100222111541j:image:w320&quot; title=&quot;f:id:kaigai:20100222111541j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;入り口からカナダ人ノリノリである。 &lt;/p&gt;
			&lt;p&gt;街中のいたるところで、突然『レッツゴ〜♪カナダ♪』と歌いだすｗｗｗ &lt;/p&gt;
			&lt;p&gt;会場に入ると、昨日、Mixiの「Ｇｏ！バンクーバ」コミュニティに記念写真をアップしておられた某氏の姿を見つける。同じ業者を通じてチケットを手配したので、近い場所に席が配置されたのか…という事は、明日の試合（JOC割り当て分）はきっと青森関係者の近くだなｗ &lt;/p&gt;
			&lt;p&gt;持参したメッセージ入り日の丸のセッティングにご協力いただく。 &lt;/p&gt;
			&lt;p&gt;日本のカーラー諸氏にも見えるように、日本の試合のシートの裏側の低めの位置にスタンバイ &lt;/p&gt;
			&lt;p&gt;そろそろ眠いので、各エンドの詳細云々よりも気がついた点。 &lt;/p&gt;
			&lt;p&gt;あまり負け試合を細かく書きたい気にならないというのもあるが。 &lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100222142048&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100222/20100222142048.jpg&quot; alt=&quot;f:id:kaigai:20100222142048j:image:w320&quot; title=&quot;f:id:kaigai:20100222142048j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;この試合も、クリーンゲームから。もしかして、序盤のシンプルな展開は、後半で時間を使うための布石なのかしら？ &lt;/p&gt;
			&lt;p&gt;ただ、目黒さんは先攻の時に相手に一点取らせるためにクリーンな展開を取る傾向があるように見えるけども、オリンピックのレベルともなると、なかなか教科書通りには運ばないようだ。昨日今日と、あまり成功率は高くないように思う。&lt;/p&gt;
			&lt;p&gt;目黒さんのショット自体は冴えてると思うし、いざという時に一投で局面を打開する力は持って &lt;/p&gt;
			&lt;p&gt;いるんだから、もっと自信を持って投げてもいいと思うんだけどねぇ。 &lt;/p&gt;
			&lt;p&gt;6END、ハウス後方の相手No.1/2を一気に弾き出して２点を確保したみたいに。 &lt;/p&gt;
			&lt;p&gt;あれ、後ろからみるとかなりタイトなラインを通した上に、しっかり曲げて２個のストーンの間にドンピシャで当ててる。かなりすごい。 &lt;/p&gt;
			&lt;p&gt;7END、これは１点取らせる局面が成功したケース。ただ、点差と残りENDを考えてもスチール狙いでも良かったんじゃないかと思える。ドイツの後攻ラストショットの選択がどうも自分には腑に落ちない。ハウスに日本のストーンが３つあり、トリプルも不可能な局面なら、あえてヒットロールなんかしなくても、バッキング付きのドローでいいじゃんとか思うんだけど。 &lt;/p&gt;
			&lt;p&gt;8ENDは逆に１点取らされる格好。9END、うまくガードの裏、ハウスのセンター付近に石を密集させて、隙あらばスチールの構え。だが、相手スキップの一投は Amazing! &lt;/p&gt;
			&lt;p&gt;10時方向からロールさせ、中央の団子に当ててプッシュ。9ENDで2点を奪われてしまった…。 &lt;/p&gt;
			&lt;p&gt;10END、置きに来る日本をロシアが弾く展開だが、ロシアのミスもあって何とかハウス内にストーンを2個置ける展開に。ロシアはタイムアウトのあと、なぜかドローに切り替える。&lt;/p&gt;
			&lt;p&gt;中央付近に溜まった石は、No.1日本、No.2ロシア、No.3日本。 &lt;/p&gt;
			&lt;p&gt;ここで目黒さんの選択は、ロングガードをギリギリでかわして、No.2ロシアだけを叩いて後方に、自分はステイしてエキストラという青写真だったと思う。 &lt;/p&gt;
			&lt;p&gt;最終的には投げたストーンの当たりが薄すぎて、No.3圏外にまでロールしたわけだけども、まさかあのラインを狙ってくる＆通してくるとは思わなかった。お見事、ナイストライ。 &lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100222135731&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100222/20100222135731.jpg&quot; alt=&quot;f:id:kaigai:20100222135731j:image:w320&quot; title=&quot;f:id:kaigai:20100222135731j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;その後、カナダ−中国戦を最後まで見てから宿に帰る。 &lt;/p&gt;
			&lt;p&gt;カナダのスキップが、最後のドローをガードストーンに当ててしまった時（この瞬間、中国の &lt;/p&gt;
			&lt;p&gt;勝ち）に、中国のサードがぽん、と隣に立ってたスキップ王さんの腰を叩いたのが印象的。 &lt;/p&gt;
			&lt;p&gt;相手のミスで決まっただけに、大騒ぎするのもカーリング精神に反するんだろうけども、やっぱりカナダに勝つってのはそれくらい嬉しい事なんだろうなと推測。 &lt;/p&gt;
			&lt;p&gt;写真は中国−カナダ戦の一コマ。なんてレベルの高い試合をしてるんだ！！ &lt;/p&gt;
			&lt;p&gt;で、エキストラまで見てしまったので、宿に着いたのはまた23:00頃。 &lt;/p&gt;
			&lt;p&gt;しかも、風呂の照明が壊れていて風呂に入れない。朝風呂にする。うがー！！&lt;/p&gt;
		&lt;/div&gt;</content:encoded>
	<dc:date>2010-02-26T21:52:43+00:00</dc:date>
	<dc:creator>kaigai</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/kaigai/20100227/1267221162">
	<title>KaiGai Kohei: バンクーバレポート（その３／市内観光編）</title>
	<link>http://d.hatena.ne.jp/kaigai/20100227/1267221162</link>
	<content:encoded>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;さて、大逆転のロシア戦の後はしばらく時間があるので、ダウンタウンに買い物に。 &lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100222055855&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100222/20100222055855.jpg&quot; alt=&quot;f:id:kaigai:20100222055855j:image:w320&quot; title=&quot;f:id:kaigai:20100222055855j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;まずはお腹が減ったので、フードコートで食事。 &lt;/p&gt;
			&lt;p&gt;そして、スタバのwireless internetを使ってmixi日記に書き込んだり。 &lt;/p&gt;
			&lt;p&gt;要は、東京でいう百貨店みたいな場所で、いろんなブティックとかが集まっている。 &lt;/p&gt;
			&lt;p&gt;興味ないのでパスパスと思っていたら、『OLSON』という店の名前を見つけたので、 &lt;/p&gt;
			&lt;p&gt;そのフロアに行ってみると…。 &lt;/p&gt;
			&lt;p&gt;『OLSEN』という婦人服のブランドだった。紛らわしいわ！ &lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100222060301&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100222/20100222060301.jpg&quot; alt=&quot;f:id:kaigai:20100222060301j:image:w320&quot; title=&quot;f:id:kaigai:20100222060301j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;写真は、紳士服のコーナーで見かけたマネキン。 &lt;/p&gt;
			&lt;p&gt;うむ、やはりカーリングは紳士淑女のたしなみという事ですな。 &lt;/p&gt;
			&lt;p&gt;ぶんたまさんに、CASの賞品にオリンピック関連グッズを買ってきてほしいと頼まれているので、 &lt;/p&gt;
			&lt;p&gt;五輪公式ショップに行ってみる。デパートの一角が五輪公式ショップという事で、混みすぎないよう入場制限をしている。 &lt;/p&gt;
			&lt;p&gt;「中に入るにはどこへ行けば？」 &lt;/p&gt;
			&lt;p&gt;「そこを出て左に曲がったところから入ってくれ」 &lt;/p&gt;
			&lt;p&gt;外に出ると、長蛇の列。なんじゃこりゃー！！&lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100222080657&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100222/20100222080657.jpg&quot; alt=&quot;f:id:kaigai:20100222080657j:image:w320&quot; title=&quot;f:id:kaigai:20100222080657j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;しかし、意外に行列の掃けるのが早く、３０分程度で中に入れる。 &lt;/p&gt;
			&lt;p&gt;日本の感覚だと３時間コースの行列に見えたんだけどｗｗｗｗ &lt;/p&gt;
			&lt;p&gt;中は五輪関連グッズ。 &lt;/p&gt;
			&lt;p&gt;カナダ人の間で大流行の五輪ミトン（手袋）を買って帰りたかったんだけど、SOLD OUTで残念無念。子供用のしかなかった。Mixi情報によると、空港のショップには置いてあるらしい。&lt;/p&gt;
			&lt;p&gt;で、自分用含めもさもさっとお土産を購入。&lt;/p&gt;
			&lt;p&gt;個人的に一番気に入ってるのは、五輪記念コインの詰め合わせ。 &lt;/p&gt;
			&lt;p&gt;（まぁ、ＣＡＳの商品になるんだけど） &lt;/p&gt;
			&lt;p&gt;自分向けには、カーリングの時のウェア。はい、これから白色から灰色に変わります。 &lt;/p&gt;
			&lt;p&gt;オリンピックのロゴ入りｗｗ &lt;/p&gt;
			&lt;p&gt;てな事をしているうちに、17時。日本−ドイツ戦は19時〜なので、King Edward駅に移動することに。&lt;/p&gt;
		&lt;/div&gt;</content:encoded>
	<dc:date>2010-02-26T21:52:42+00:00</dc:date>
	<dc:creator>kaigai</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/kaigai/20100227/1267220532">
	<title>KaiGai Kohei: バンクーバレポート（その２／対ロシア戦）</title>
	<link>http://d.hatena.ne.jp/kaigai/20100227/1267220532</link>
	<content:encoded>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;Vancouver City Centerのスターバックスから。&lt;/p&gt;
			&lt;p&gt;今日は 9:00〜 vsロシア戦、19:00〜 vsドイツ戦を観戦の予定。 &lt;/p&gt;
			&lt;p&gt;昨日は男子の試合を観戦していて、宿に着いたら23:00、日記を書いたら25:00になっていたので、念のため、目覚ましを6:30にセットして寝た。 &lt;/p&gt;
			&lt;p&gt;だが、目が覚めたら8:10だった（←氏ね）。やばいやばいやばいやばい。 &lt;/p&gt;
			&lt;p&gt;とりあえず、５分で準備して宿を飛び出す。 &lt;/p&gt;
			&lt;p&gt;見ると、向かいの角を４１０系統のバスが今まさに曲がろうとしているではないか。 &lt;/p&gt;
			&lt;p&gt;手を振りながら全力疾走。バスを待っててくれた運ちゃん、ありがとう。 &lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100222020746&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100222/20100222020746.jpg&quot; alt=&quot;f:id:kaigai:20100222020746j:image:w320&quot; title=&quot;f:id:kaigai:20100222020746j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;RichmondからSkyTrainに乗って、King Edwardで降車。シャトルバスに乗ってOlympic Centerに向かう。到着すると、、時刻は8:55。だが、テロ対策の手荷物検査の列がもどかしい。 &lt;/p&gt;
			&lt;p&gt;結局、会場に入れたのは2ENDの近江屋さんが投げているあたり。 &lt;/p&gt;
			&lt;p&gt;ただ、展開的には3ENDまでは小林さんも解説のしようがない感じだったので、とりあえずＯＫ &lt;/p&gt;
			&lt;p&gt;4END、石崎さんのウェイトがずれたところを攻められ、この試合初めて石がハウスの中に溜まる展開に。目黒さんのショットも、相手の後ろに回り込むには至らず、ラストはウェイトが弱く早めにカールして、ハウスの中にある相手の３個が丸々得点に。 &lt;/p&gt;
			&lt;p&gt;5END、ダブルコーナーガードが外されたので、カマーで攻めていくけども、隠れ切らずにその度にロールを決められてかなりピンチ。目黒さんのラストショットは４フット内に入らなきゃいけないけども、これもウェイトが少し弱く、早めにカールしてしまう。 &lt;/p&gt;
			&lt;p&gt;それでも、No.4/5よりは内側まで持って来た。近江屋さんの「HURRY！！」の声が非常に悲壮だった。&lt;/p&gt;
			&lt;p&gt;ここまで０−６でおやつタイム。自分の周囲一角は日本人ばかりだったんだけど、かなり深刻なムードが。 &lt;/p&gt;
			&lt;br /&gt;

			&lt;p&gt;6ENDもダブルコーナーガードを外され、漂う重い空気。 &lt;/p&gt;
			&lt;p&gt;駄菓子菓子、目黒が２投で局面をひっくり返した。 &lt;/p&gt;
			&lt;p&gt;目黒一投目、相手のセンターティー前のストーンを打ってロール。完全にロシアの石の裏側に回りこむ。ロシア、ここでタイムアウト。 &lt;/p&gt;
			&lt;p&gt;ロシアはセンターにカム（悪くても２点？）を狙うが、ショート気味でガードに接触。&lt;/p&gt;
			&lt;p&gt;目黒のラストは、正確にロシアの石を叩き、少し本橋の投げたNo.3にかすったものの、３点を返す。 &lt;/p&gt;
			&lt;p&gt;まだ点差は３点あるんだけども、目黒さんにすればこれで一息つけたし、ロシアにしてみれば焦りが生まれたんじゃなかろうか。7END以降、ずいぶん迷う場面が増えた気がする。 &lt;/p&gt;
			&lt;p&gt;7END、ここから石崎さんに代わって山浦さんが入る。で、オーダーも山浦→近江屋→本橋→目黒の順に変更。これって、ルール的にありなんだっけ？？ &lt;/p&gt;
			&lt;p&gt;先攻の7END、ティー前のハウス中心付近の攻防。 &lt;/p&gt;
			&lt;p&gt;このエンドも、目黒の２投で局面を一気にひっくり返した。 &lt;/p&gt;
			&lt;p&gt;目黒一投目、２個並んでいたロシアのNo.1/2ストーンをロングガードをかわして見事にダブルテイクアウト。２投目、あと40cm手前だったら Perfect! だったが、見事にNo.1/2/3/4を確保してロシアのラストショットを待つ。ロシアのスキップ、ガードに触れるのを恐れたか、少しワイドに出たため、日本のストーンに触れることなくティー奥へ。&lt;/p&gt;
			&lt;p&gt;３点＋３点を失った後、３点＋３点を取り戻してゲームは振り出しへ戻る。 &lt;/p&gt;
			&lt;p&gt;8ENDはうって変わってクリーンゲーム。だけど、近江屋さんが一本ヌルーしてしまった関係でロシアにNo.1/2を作られてしまい、ダブルテイクアウトもできなかったので２点を失って６−８に。 &lt;/p&gt;
			&lt;p&gt;あと、このエンドの途中にカナダ−米国戦がコンシード。ひときわ大きな拍手が。 &lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100222050944&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100222/20100222050944.jpg&quot; alt=&quot;f:id:kaigai:20100222050944j:image:w320&quot; title=&quot;f:id:kaigai:20100222050944j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;9END、ロシアはセンターの６〜８フットの位置に鉄壁のガードを置くも、近江屋のロール、本橋のドロー、目黒のドローが素晴らしい位置に決まって、後攻ラストショットの時点でNo.1/2/3を確保の状況。 &lt;/p&gt;
			&lt;p&gt;仮に赤を動かしでもしたら大事なので、目黒さんの選択は10時方向ハウス外の相手ストーンを使ったヒットロール。まぁ、これならセーフティ…ってウェイト強くない！？ &lt;/p&gt;
			&lt;p&gt;これ、ロシアのストーンの後ろを通過して事なきを得たけど、当たる角度がもう少しフラットなら味方を叩いたんじゃ…。 &lt;/p&gt;
			&lt;p&gt;とにもかくにも、１点リードの10ENDは見ごたえがあった。 &lt;/p&gt;
			&lt;p&gt;本橋のショットが相手の石を叩いて、ハウスの隅に2cmほど引っかかった状態。13時方向ハウスの20cmほど手前にロシアの石が。 &lt;/p&gt;
			&lt;p&gt;ロシアとしては、No.1/2の状況を作って２点取りたい。日本としては、ハウスの中心付近にもう一個置いてダブルロールインを防ぎつつ、１点を取らせたい。 &lt;/p&gt;
			&lt;p&gt;となると、ダブルロールインの方が先か、ハウス内のロシアストーンをテイクアウトしつつ、中心近くにステイするのが先か。結果的に、本橋さんの２投目でヒットステイ。ロシアは１点取るしかなく、日本後攻でエキストラエンドに。 &lt;/p&gt;
			&lt;p&gt;ちなみに、9ENDの辺りから、カナダが既にコンシードしてしまったため、手持ち無沙汰なカナダの観客が『日本チャチャチャ！』に参加。地響きのような…（笑 &lt;/p&gt;
			&lt;p&gt;エキストラエンド、ロシアは前を固めるし、日本はそれを外していく・・・が、最終的にはロングガードの裏にロシアのNo.1ストーンという局面。目黒のラストショットはコントロールウェイトで手前のストーンをかわして奥を狙う。イエスのコールがかかった瞬間、まさかナローに出たかと凍りつく（横からではラインがわからない）が、すぐに「ウォー」のコール。綺麗にNo.1ストーンに吸い込まれるようにヒットして勝負あり。 &lt;/p&gt;
			&lt;p&gt;最初０−６の局面ではもうダメかとも思ったけれども、何とか頑張って取り返してくれた。諦めないそのタフさがすごい！ &lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100222042243&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100222/20100222042243.jpg&quot; alt=&quot;f:id:kaigai:20100222042243j:image:w320&quot; title=&quot;f:id:kaigai:20100222042243j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;あと、関係ないけどロシアの選手はみんな美人そろいですごい。&lt;/p&gt;
			&lt;p&gt;背が高くてみんなモデルみたい。試合そっちのけで眺めていたのは秘密だ（嘘&lt;/p&gt;
		&lt;/div&gt;</content:encoded>
	<dc:date>2010-02-26T21:42:12+00:00</dc:date>
	<dc:creator>kaigai</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/kaigai/20100227/1267219855">
	<title>KaiGai Kohei: バンクーバレポート（その１／男子カーリング編）</title>
	<link>http://d.hatena.ne.jp/kaigai/20100227/1267219855</link>
	<content:encoded>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;という事で、無事に宿に到着。 &lt;/p&gt;
			&lt;p&gt;今回宿泊したのは、バンクーバの南側、リッチモンドにある民宿。 &lt;/p&gt;
			&lt;p&gt;一応、到着した20日に試合観戦の予定がなかったものの、明日の朝に迷ったりしないように、会場までのルートを確認がてら出かけることにする。 &lt;/p&gt;
			&lt;p&gt;（注： この時点で、日本−英国戦観戦イベントから機中で仮眠しただけで起きっぱなしｗｗ眠いんじゃ！！） &lt;/p&gt;
			&lt;p&gt;バンクーバ／リッチモンド市内は、スカイリンク社の運営する公共交通機関が整備されていて、結構いろんな所に行くのに重宝する。しかも、五輪期間中はチケットの提示だけで運賃は必要ないため、タクシーを使ったりするより格段に安く移動できる。 &lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100221085311&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100221/20100221085311.jpg&quot; alt=&quot;f:id:kaigai:20100221085311j:image:w320&quot; title=&quot;f:id:kaigai:20100221085311j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;で、リッチモンドの中心部までは SkyTrain という都市鉄道が来ているのだが、宿はもう少しバスを乗り継いだ所にある。深夜になると30分に1本程度に本数が減るので、19:00〜の試合の時などは注意が必要。 &lt;/p&gt;
			&lt;p&gt;SkyTrainは、丸の内線と同じように、レールの他に電力供給用のレールが敷設してある。これは地下部分の工事費削減のためか。&lt;/p&gt;
			&lt;p&gt;リッチモンドから橋を渡ってバンクーバに入ると、鉄道は地下部分へ入る。15分程度で、Vancouver Olympic Center最寄の King Edward 駅に到着。 &lt;/p&gt;
			&lt;p&gt;どうでもいいが、カナダにこの手の命名多いな。 &lt;/p&gt;
			&lt;p&gt;前に PGcon2008 で行ったオタワにも King Edward Street てあった。 &lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100221100255&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100221/20100221100255.jpg&quot; alt=&quot;f:id:kaigai:20100221100255j:image:w320&quot; title=&quot;f:id:kaigai:20100221100255j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;一応、会場への経路を確認して、まぁ、一時間くらいは移動時間を見ておかないとな…と思っていると、なんと当日券の売り場が。 &lt;/p&gt;
			&lt;p&gt;手持ちのチケットは、日本チームの出場する５試合のみだったが、せっかくの機会だし、世界最高水準のカナダ男子のゲームでも見ておくかと思って、チケットを購入。19:00〜の試合を観戦することにした。 &lt;/p&gt;
			&lt;p&gt;中へ入る前には、空港の保安区画みたいな手荷物検査があるので、これも早めの入場が必要な様子。食べ物・飲み物は中で買える。味はどうか知らないが。 &lt;/p&gt;
			&lt;p&gt;トイレは簡易トイレが大量に設置されているが、かなり不潔なので、できればお世話になりたくない。 &lt;/p&gt;
			&lt;p&gt;中へ入ると、急傾斜のスタンドに赤色の観客がびっしり。でも、これは仮設スタンドなのか？ &lt;/p&gt;
			&lt;p&gt;カナダの応援は「Go〜カナダ〜ドカ！ドカ！ドカ！」と足元を踏み鳴らすので、かなり大きく響く。 &lt;/p&gt;
			&lt;p&gt;日本チャチャチャは所詮手拍子なので、ボリューム的にかなり劣勢。どうしたものか。 &lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20100221113413&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20100221/20100221113413.jpg&quot; alt=&quot;f:id:kaigai:20100221113413j:image:w320&quot; title=&quot;f:id:kaigai:20100221113413j:image:w320&quot; class=&quot;hatena-fotolife&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;観戦したカナダ−英国の試合。かなり別次元の戦い。まるで宇宙人（not 鳩山）同士のゲームのようだ。 &lt;/p&gt;
			&lt;p&gt;なんであんなに弱いコントロールウェイトでピンポイントで狙ったところに当てて、ストーン半個分だけロールとかいう芸当が1ENDのうちに３回も４回も出てくるのか。 &lt;/p&gt;
			&lt;p&gt;女子ではチーム青森がなんとか世界水準の相手とタメを張れてるが、男子でＳＣ軽井沢が出て行ったときに、こういう相手にどうやって戦うんだろう。&lt;/p&gt;
			&lt;p&gt;で、ＳＣ軽井沢に続くチームが今の日本にどれくらい存在するんだろう。 &lt;/p&gt;
			&lt;p&gt;少し絶望的な気分を感じた。。。。 &lt;/p&gt;
			&lt;p&gt;まぁ、地道にカーリングの裾野を広げていくしかないんだろうけどもね。 &lt;/p&gt;
			&lt;p&gt;全てのシートで試合が終わったのが22:00頃。 &lt;/p&gt;
			&lt;p&gt;それからスカイトレインとバスを乗り継いで、宿に着いたのが23:00頃。 &lt;/p&gt;
			&lt;p&gt;なんか、深夜のバスは怪しい。黒人の集団が大騒ぎしてるし、タバコのように見えるけど煙の出ない何か得体のしれない物を吸ってるオバチャンとかいるし。&lt;/p&gt;
			&lt;p&gt;次からは、22:00終了のゲームのときはタクシーを捕まえた方がいいかも。 &lt;/p&gt;
			&lt;p&gt;明日は、対ロシア戦と対ドイツ戦を観戦。 &lt;/p&gt;
			&lt;p&gt;決勝Ｔ進出を考えると、絶対に落とせない戦い。頑張って応援してきます。&lt;/p&gt;
		&lt;/div&gt;</content:encoded>
	<dc:date>2010-02-26T21:30:55+00:00</dc:date>
	<dc:creator>kaigai</dc:creator>
</item>
<item rdf:about="http://danwalsh.livejournal.com/35420.html">
	<title>Dan Walsh: audit2allow ?   Why not audit2dontaudit?</title>
	<link>http://danwalsh.livejournal.com/35420.html</link>
	<content:encoded>In Fedora 12 and Red Hat&amp;nbsp;Enterprise Linux 6,&amp;nbsp; I&amp;nbsp; added a new flag to audit2allow, -D or --dontaudit.&amp;nbsp; This option tells audit2allow to generate dontaudit rules rather then allow rules.&lt;br /&gt;&lt;span&gt;&lt;br /&gt;# audit2allow -a&lt;br /&gt;&lt;br /&gt;#============= smokeping_t ==============&lt;br /&gt;allow smokeping_t bin_t:file { read execute open execute_no_trans };&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;vs&lt;br /&gt;&lt;span&gt;&lt;br /&gt;# audit2allow -aD&lt;br /&gt;&lt;br /&gt;#============= smokeping_t ==============&lt;br /&gt;dontaudit smokeping_t bin_t:file { read execute open execute_no_trans };&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you want to allow the access and do not want SELinux pestering you, this is a great option.&lt;br /&gt;&lt;br /&gt;A great example of where this is handy is vbetool.&lt;br /&gt;&lt;span&gt;&lt;br /&gt;man vbetool&lt;br /&gt;...&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vbetool - run real-mode video BIOS code to alter hardware state&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;vbetool is run at boot time and during suspend and resume.&amp;nbsp; It requires mmap_zero access to run properly which is denied by default. &amp;nbsp;This access is considered dangerous and is described in a previous &lt;a href=&quot;http://danwalsh.livejournal.com/30084.html&quot;&gt;blog&lt;/a&gt;.&amp;nbsp; Luckily most machines do not need vbetool to run successfully.&amp;nbsp; However, SELinux complains to the audit system on each boot and suspend/resume about vbetool requesting mmap_zero.&amp;nbsp; vbetool does not work,&amp;nbsp; but it does not cause anything on your machine to not work.&amp;nbsp; &lt;br /&gt;&lt;strong&gt;&lt;br /&gt;How would I&amp;nbsp;shut up the AVC?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;# grep vbetool /var/log/audit/audit.log | audit2allow -DM myvbetool&lt;br /&gt;# semodule -i myvbetool.pp&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This will stop the AVC&amp;nbsp;without allowing a dangerous access.&lt;br /&gt;&lt;span&gt;&lt;br /&gt;# cat myvbetool.te&lt;br /&gt;module myvbetool 1.0;&lt;br /&gt;&lt;br /&gt;require {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; type vbetool_t;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; class memprotect mmap_zero;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#============= vbetool_t ==============&lt;br /&gt;#!!!! This avc can be allowed using the boolean 'mmap_low_allowed'&lt;br /&gt;&lt;br /&gt;dontaudit vbetool_t self:memprotect mmap_zero;&lt;/span&gt;&lt;br /&gt;</content:encoded>
	<dc:date>2010-02-24T18:03:25+00:00</dc:date>
	<dc:creator>dwalsh@redhat.com</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-5240359826706545510.post-4979036344025783724">
	<title>Thomas Biege (Security): The harder you fight the weaker you are.</title>
	<link>http://thetoms-random-thoughts.blogspot.com/2010/02/harder-you-fight-weaker-you-are.html</link>
	<content:encoded>&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/user/Profile.aspx?UserID=56729&quot;&gt;Shawn Hernan&lt;/a&gt; from Microsoft &lt;a href=&quot;http://blogs.msdn.com/shawnhernan/archive/2010/02/13/microsoft-s-many-eyeballs-and-the-security-development-lifecycle.aspx&quot;&gt;spills some oil in the closed-source vs. open-source fire&lt;/a&gt; again. How boring you think ...?&lt;br /&gt;&lt;/p&gt;&lt;p&gt;I think so too - boring - and want to give a view of this topic that is more in touch with reality than the unsuccessful attempt to put open-source in a bad light by using ancient Greek logic (which is used wrong by the way b/c it is based on statistical/conditional premises not on axioms), random cites from MS-biased people as well as wisdoms (Voltaire - I think it was him - once said: &quot;A wisdom is no proof.&quot; - I really like the contradiction in it :) )&lt;/p&gt;&lt;p&gt;Shawn also stumbles over his own rebuttal and says MS code is more secure because:&lt;br /&gt;&lt;/p&gt;&lt;blockquote&gt;And it’s not like Microsoft source code is restricted to Microsoft personnel. There are more than a &lt;a href=&quot;http://www.microsoft.com/resources/sharedsource/Licensing/default.mspx&quot;&gt;dozen different programs&lt;/a&gt; through which organizations and individuals can gain access to Microsoft source code.&lt;/blockquote&gt;&lt;br /&gt;Well this is rounded off by too many wrong assumptions and biased thinking... no problem, this is what happens if you are not open. (Sorry can't resist.)&lt;br /&gt;&lt;br /&gt;Well let's stop comparing apples with oranges here.&lt;br /&gt;&lt;br /&gt;It has to be recognized that the mindset as well as the fundamentals of open-source and closed-source software are too different that nobody should try to compare them regarding security. But we can learn from each other. To repeat: I like the SDL and MS (and others) can only benefit from opening their code (Solaris would be dead for a long time if it just stays closed). Fact is that open-source does not make software more secure by default but this is especially true for closed software. But openness increases trust, adaptability, autonomy and agility - it is modern and democratic! And that is the main fact that matters for me! And for you?&lt;br /&gt;&lt;br /&gt;This is just my personal opinion but hopefully not mine alone. ;)&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.blogcounter.de/&quot; id=&quot;bclink&quot; title=&quot;kostenloser Counter fuer Weblogs&quot;&gt;&lt;span id=&quot;bccount&quot;&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.blogcounter.de/&quot;&gt;&lt;img alt=&quot;Weblog counter&quot; src=&quot;http://track.blogcounter.de/log.php?id=thetom_blog&quot; /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;br /&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5240359826706545510-4979036344025783724?l=thetoms-random-thoughts.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2010-02-18T03:58:48+00:00</dc:date>
	<dc:creator>Thomas (noreply@blogger.com)</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-5024703430482213163.post-4928461313376429315">
	<title>Dominick Grift: About apache_content_template</title>
	<link>http://selinux-mac.blogspot.com/2010/02/about-apachecontenttemplate.html</link>
	<content:encoded>In refpolicy there are about eight modules that have calls to apache_content_template in their private policy. These template calls are located in optional policy blocks. This is so that these modules do not depend on the apache module being present. &lt;br /&gt;&lt;br /&gt;The problem is that seven out of these eight modules have file context specifications containing a executable type, that is declared in the apache content template, in their file context file. As far as i know file context specifications are never optional.&lt;br /&gt;&lt;br /&gt;So even though calls to apache content template are optional, they really aren't because the file context specifications that accompany them are not optional.&lt;br /&gt;&lt;br /&gt;This means that eight modules depend on the apache module being installed. Try to de-install the apache module (semodule -r apache) and you will be presented with some very unclear errors. Most people will not know what to do.&lt;br /&gt;&lt;br /&gt;So how can we fix that?&lt;br /&gt;&lt;br /&gt;Well here is an example. We use the apache_cgi_domain() instead:&lt;br /&gt;&lt;br /&gt;########################################&lt;br /&gt;#&lt;br /&gt;# BackupPC admin private declarations.&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;type backuppc_admin_t, backuppc_domains;&lt;br /&gt;type backuppc_admin_exec_t;&lt;br /&gt;domain_type(backuppc_admin_t)&lt;br /&gt;domain_entry_file(backuppc_admin_t, backuppc_admin_exec_t)&lt;br /&gt;role system_r types backuppc_admin_t;&lt;br /&gt;&lt;br /&gt;########################################&lt;br /&gt;#&lt;br /&gt;# BackupPC admin private policy.&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;optional_policy(`&lt;br /&gt; apache_cgi_domain(backuppc_admin_t, backuppc_admin_exec_t)&lt;br /&gt;')&lt;br /&gt;&lt;br /&gt;/usr/share/BackupPC/sbin/BackupPC_Admin     -- gen_context(system_u:object_r:backuppc_admin_exec_t, s0)&lt;br /&gt;&lt;br /&gt;This way we can make the call to apache_cgi_domain() *really* optional. It is a bit more work initially but in my view this is maintainable unlike apache_content_template.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5024703430482213163-4928461313376429315?l=selinux-mac.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2010-02-14T13:59:33+00:00</dc:date>
	<dc:creator>Dominick &quot;domg472&quot; Grift (noreply@blogger.com)</dc:creator>
</item>
<item rdf:about="http://intrajp.no-ip.com/nucleus/?itemid=3">
	<title>Shintaro Fujiwara: segatex-7.791 released !!</title>
	<link>http://intrajp.no-ip.com/nucleus/?itemid=3</link>
	<content:encoded>Hi !&lt;br /&gt;
segatex-7.791 released as F12 friendly and having new refpolicy.&lt;br /&gt;
Now you can edit any files in the system.&lt;br /&gt;
If there are any bugs, please let me know at shintaro.fujiwara@gmail.com.&lt;br /&gt;
Thanks.&lt;a href=&quot;http://intrajp.no-ip.com/nucleus/media/1/20100210-screenshot.jpg&quot;&gt;20100210-screenshot.jpg&lt;/a&gt;</content:encoded>
	<dc:date>2010-02-09T13:04:25+00:00</dc:date>
</item>
<item rdf:about="http://danwalsh.livejournal.com/35127.html">
	<title>Dan Walsh: Another blog on writing SELinux Policy - Icecast</title>
	<link>http://danwalsh.livejournal.com/35127.html</link>
	<content:encoded>The bug report &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=561817&quot;&gt;https://bugzilla.redhat.com/show_bug.cgi?id=561817&lt;/a&gt; triggered me to write a blog on writing policy.&amp;nbsp; Some people think writing SELinux policy is difficult. I figured I would show how quickly it can be done.&lt;br /&gt;&lt;br /&gt;&lt;a name=&quot;cutid1&quot;&gt;&lt;/a&gt;The bug report shows rtkit-daemon trying to setsched on a process running with the type intirc_t.&amp;nbsp; initrc_t is the default domain for all init script process and programs run from them.&amp;nbsp; By default n targeted policy, initrct_t is an unconfined domain.&amp;nbsp; We would prefer all daemons in Fedora have a policy defined. &amp;nbsp; I asked the bug reporter what bug caused the AVC.&amp;nbsp; He identified the icecast daemon as one of the initrc_t deamons.&amp;nbsp; Here is how I wrote the policy for it.&lt;br /&gt;&lt;br /&gt;Note: This example was done on F13/Rawhide but it could have been done on Fedora  12 or Red Hat Enterprise Linux 6, when it ships.&lt;br /&gt;&lt;br /&gt;Knowing nothing about icecast, I figured I could get a pretty good start writing policy using sepolgen and rpm.&lt;br /&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;br /&gt;rpm -qi icecast&lt;br /&gt;...&lt;br /&gt;Summary&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : ShoutCast compatible streaming media server&lt;br /&gt;Description :&lt;br /&gt;Icecast is a streaming media server which currently supports Ogg Vorbis and MP3 audio streams. It can be used to create an Internet radio station or a privately running jukebox and many things in between.&amp;nbsp; It is very versatile in that new formats can be added relatively easily and supports open standards for communication and interaction.&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;I login as root and cd /root&lt;br /&gt;&lt;font color=&quot;#999999&quot;&gt;# sepolgen /usr/bin/icecast&lt;br /&gt;Created the following files:&lt;br /&gt;Type Enforcement file&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ./icecast.te&lt;br /&gt;Interface file&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ./icecast.if&lt;br /&gt;File Contexts file&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ./icecast.fc&lt;br /&gt;Setup Script&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; ./icecast.sh&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;This is the initial icecast.te file generated by sepolgen&lt;br /&gt;&lt;font color=&quot;#999999&quot;&gt;policy_module(icecast,1.0.0)&lt;br /&gt;&lt;br /&gt;########################################&lt;br /&gt;#&lt;br /&gt;# Declarations&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;type icecast_t;&lt;br /&gt;type icecast_exec_t;&lt;br /&gt;init_daemon_domain(icecast_t, icecast_exec_t)&lt;br /&gt;&lt;br /&gt;permissive icecast_t;&lt;br /&gt;&lt;br /&gt;type icecast_initrc_exec_t;&lt;br /&gt;init_script_file(icecast_initrc_exec_t)&lt;br /&gt;&lt;br /&gt;type icecast_var_run_t;&lt;br /&gt;files_pid_file(icecast_var_run_t)&lt;br /&gt;&lt;br /&gt;type icecast_log_t;&lt;br /&gt;logging_log_file(icecast_log_t)&lt;br /&gt;&lt;br /&gt;########################################&lt;br /&gt;#&lt;br /&gt;# icecast local policy&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;allow icecast_t self:capability { setgid setuid };&lt;br /&gt;allow icecast_t self:process { fork signal };&lt;br /&gt;&lt;br /&gt;# Init script handling&lt;br /&gt;domain_use_interactive_fds(icecast_t)&lt;br /&gt;&lt;br /&gt;# internal communication is often done using fifo and unix sockets.&lt;br /&gt;allow icecast_t self:fifo_file rw_fifo_file_perms;&lt;br /&gt;allow icecast_t self:unix_stream_socket create_stream_socket_perms;&lt;br /&gt;&lt;br /&gt;files_read_etc_files(icecast_t)&lt;br /&gt;&lt;br /&gt;miscfiles_read_localization(icecast_t)&lt;br /&gt;&lt;br /&gt;manage_dirs_pattern(icecast_t, icecast_var_run_t,&amp;nbsp; icecast_var_run_t)&lt;br /&gt;manage_files_pattern(icecast_t, icecast_var_run_t,&amp;nbsp; icecast_var_run_t)&lt;br /&gt;files_pid_filetrans(icecast_t, icecast_var_run_t, { file dir })&lt;br /&gt;&lt;br /&gt;manage_dirs_pattern(icecast_t, icecast_log_t,&amp;nbsp; icecast_log_t)&lt;br /&gt;manage_files_pattern(icecast_t, icecast_log_t,&amp;nbsp; icecast_log_t)&lt;br /&gt;logging_log_filetrans(icecast_t, icecast_log_t, { file dir } )&lt;br /&gt;&lt;br /&gt;auth_use_nsswitch(icecast_t)&lt;br /&gt;&lt;br /&gt;sysnet_dns_name_resolve(icecast_t)&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;Looks good, but before I continued I wanted to know if I could find any add&lt;br /&gt;Now I decided to look at the output of rpm -ql icecast&lt;br /&gt;&lt;br /&gt;&lt;font color=&quot;#999999&quot;&gt;# rpm -ql icecast&lt;br /&gt;/etc/icecast.xml&lt;br /&gt;/etc/logrotate.d/icecast&lt;br /&gt;/etc/rc.d/init.d/icecast&lt;br /&gt;/usr/bin/icecast&lt;br /&gt;/usr/share/doc/icecast-2.3.2&lt;br /&gt;...&lt;br /&gt;/usr/share/icecast&lt;br /&gt;/usr/share/icecast/admin&lt;br /&gt;/usr/share/icecast/admin/listclients.xsl&lt;br /&gt;...&lt;br /&gt;/usr/share/icecast/web&lt;br /&gt;/usr/share/icecast/web/auth.xsl&lt;br /&gt;....&lt;br /&gt;/usr/share/man/man1/icecast.1.gz&lt;br /&gt;/var/log/icecast&lt;br /&gt;/var/run/icecast&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;/etc/logrotate.d/icecast cought my eye, so I investigated.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;font color=&quot;#999999&quot;&gt;# cat /etc/logrotate.d/icecast&lt;br /&gt;/var/log/icecast/*log {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; missingok&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; notifempty&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sharedscripts&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; postrotate&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /bin/kill -HUP `cat /var/run/icecast/icecast.pid 2&amp;gt;/dev/null` 2&amp;gt; /dev/null || true&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; endscript&lt;br /&gt;}&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;I know that logrotate runs as logrotate_t, it will need to send a signal to icecast_t.&amp;nbsp; I need to add an interface to icecast.if for this&lt;br /&gt;&lt;br /&gt;&lt;font color=&quot;#999999&quot;&gt;########################################&lt;br /&gt;## &amp;lt;summary&amp;gt;&lt;br /&gt;##&amp;nbsp;&amp;nbsp;&amp;nbsp; Allow domain signal icecast &lt;br /&gt;## &amp;lt;/summary&amp;gt;&lt;br /&gt;## &amp;lt;param name=&amp;quot;domain&amp;quot;&amp;gt;&lt;br /&gt;##&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;summary&amp;gt;&lt;br /&gt;##&amp;nbsp;&amp;nbsp;&amp;nbsp; Domain to not audit.&lt;br /&gt;##&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/summary&amp;gt;&lt;br /&gt;## &amp;lt;/param&amp;gt;&lt;br /&gt;#&lt;br /&gt;interface(`icecast_signal',`&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gen_require(`&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; type icecast_t;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ')&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; allow $1 icecast_t:process signal;&lt;br /&gt;')&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;In icecast.te I added the following&lt;br /&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;br /&gt;gen_require(`&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; type logrotate_t;&lt;br /&gt;')&lt;br /&gt;&lt;br /&gt;icecast_signal(logrotate_t)&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;Although I will eventually put this into logrotate.te&lt;br /&gt;&lt;br /&gt;I also noted /usr/share/icecast in the icecast package seems to be apache content.&lt;br /&gt;&lt;br /&gt;&lt;font color=&quot;#999999&quot;&gt;/usr/share/icecast&lt;br /&gt;/usr/share/icecast/admin&lt;br /&gt;/usr/share/icecast/admin/listclients.xsl&lt;br /&gt;...&lt;br /&gt;/usr/share/icecast/web&lt;br /&gt;/usr/share/icecast/web/auth.xsl&lt;br /&gt;....&lt;br /&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;br /&gt;I figured I would add &lt;br /&gt;&lt;font color=&quot;#999999&quot;&gt;/usr/share/icecast(/.*)?&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; gen_context(system_u:object_r:httpd_sys_content_t,s0)&lt;/font&gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;to icecast.fc for now,  eventually this should go in apache.fc in the policy package. &lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;br /&gt;Finally the original idea for writing this policy was caused by the AVC &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;pre class=&quot;bz_comment_text&quot;&gt;
allow rtkit_daemon_t initrc_t:process setsched;   
&lt;/pre&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt; But I am creating a policy that will label icecast as icecast_t rather then initrc_t.&amp;nbsp; I need to look for an interface that allows rtkit_daemon_t to setsched.&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&amp;nbsp; Upstream SELinux Policy will not accept any &amp;quot;te&amp;quot; files that include types that are defined in a different policy file (rtkit_daemon_t).&amp;nbsp; This means, I need to find an interface that will allow rktkit_daemon_t to setched on my process type, icecast_t.&amp;nbsp; SELinux interface definitions are installed in  the /usr/share/selinux/devel/include directory tree.&amp;nbsp; Grepping through  this for the correct interface, I find:&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font color=&quot;#999999&quot;&gt;grep -R rtkit_daemon_t.*setsched /usr/share/selinux/devel/include &lt;br /&gt;/usr/share/selinux/devel/include/services/rtkit.if:&amp;nbsp;&amp;nbsp;&amp;nbsp; allow rtkit_daemon_t $1:process { getsched setsched };&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;Looking into &lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;/usr/share/selinux/devel/include/services/rtkit.if, &lt;/font&gt;I see this access is granted using the&lt;i&gt; interface rtkit_daemon_system_domain&lt;/i&gt;, which &amp;nbsp; I add to icecast.te.&lt;br /&gt;&lt;br /&gt;optional_policy(`&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rtkit_daemon_system_domain(icecast_t)&lt;br /&gt;')&lt;br /&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;br /&gt;The optional_policy block will allow my policy to be installed systems that might not have rtkit policy defined.&lt;br /&gt;&lt;br /&gt;Compile and install the policy.&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#999999&quot;&gt;# sh icecast.sh &lt;br /&gt;Building and Loading Policy&lt;br /&gt;+ make -f /usr/share/selinux/devel/Makefile&lt;br /&gt;Compiling targeted icecast module&lt;br /&gt;/usr/bin/checkmodule:&amp;nbsp; loading policy configuration from tmp/icecast.tmp&lt;br /&gt;/usr/bin/checkmodule:&amp;nbsp; policy configuration loaded&lt;br /&gt;/usr/bin/checkmodule:&amp;nbsp; writing binary representation (version 10) to  tmp/icecast.mod&lt;br /&gt;Creating targeted icecast.pp policy package&lt;br /&gt;rm tmp/icecast.mod tmp/icecast.mod.fc&lt;br /&gt;+ /usr/sbin/semodule -i icecast.pp&lt;/font&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color=&quot;#000000&quot;&gt;I also want to set the correct apache labels for icecast.&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;font color=&quot;#999999&quot;&gt;# restorecon -R -v /usr/share/icecast/&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#999999&quot;&gt;restorecon reset /usr/share/icecast context system_u:object_r:usr_t:s0-&amp;gt;system_u:object_r:httpd_sys_content_t:s0&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;# service icecast start&lt;br /&gt;Starting icecast streaming daemon:&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;&amp;nbsp;&amp;nbsp; [&amp;nbsp; OK&amp;nbsp; ]&lt;br /&gt;# service icecast stop&lt;br /&gt;Shutting down icecast streaming daemon:&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; OK&amp;nbsp; ]&lt;br /&gt;&lt;br /&gt;&lt;font color=&quot;#000000&quot;&gt;The daemon runs and creates avc messages.&amp;nbsp; Now I use the audit2allow command to generate allow rules.&lt;br /&gt;&lt;br /&gt;&lt;font color=&quot;#999999&quot;&gt;# audit2allow -la&lt;br /&gt;#============= icecast_t ==============&lt;br /&gt;allow icecast_t self:capability { sys_nice dac_override };&lt;br /&gt;allow icecast_t self:process { setsched getsched };&lt;br /&gt;#!!!! This avc can be allowed using the boolean 'allow_ypbind'&lt;br /&gt;&lt;br /&gt;allow icecast_t self:tcp_socket listen;&lt;br /&gt;allow icecast_t soundd_port_t:tcp_socket name_bind;&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;While audit2allow suggested the allow_ypbind boolean, I realize that is not necessary.&amp;nbsp;&amp;nbsp; lets examine the allow rules.&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font color=&quot;#999999&quot;&gt;allow icecast_t self:capability {  sys_nice dac_override };&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font color=&quot;#999999&quot;&gt;allow icecast_t self:process {  setsched getsched };&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;The sys_nice, getched and setsched&amp;nbsp; permissions are caused by icecast_t setting its priority, which is probably ok.&amp;nbsp; dac_override means that UID protection is being overridden.&amp;nbsp; Looking closer at icecast I notice that the daemon runs as the icecast user and the avc is probably caused by writing to the /var/run/icecast directory.&amp;nbsp; If this directory when owned by icecast, it probably would not generate this avc, but I am not sure.&amp;nbsp; I will allow it for now.&amp;nbsp; And open a bug with the icecast team to see if the directory should be owned by icecast.&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font color=&quot;#999999&quot;&gt;allow icecast_t self:tcp_socket  listen;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font color=&quot;#999999&quot;&gt;allow icecast_t  soundd_port_t:tcp_socket name_bind;&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;Since &lt;i&gt;rpm -qi&lt;/i&gt; told me that icecast is a &amp;quot;streaming media server&amp;quot;, &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;Icecast listening on a soundd_port seems legitimate.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;I will add full permissions to the tcp_socket to icecast_t by adding the line.&lt;br /&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;br /&gt;allow icecast_t self:tcp_socket create_stream_socket_perms;&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;Note: SELinux permission macros are defined in /usr/share/selinux/devel/include/support/obj_perm_sets.spt. &amp;nbsp; The sepolgen generated policy gave Icecast the ability to connect to tcp_sockets via the macro sysnet_dns_name_resolve(icecast_t).&amp;nbsp; This macro allows icecast_t to connect to the dns port via tcp_socket.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;I can not use soundd_port_t in my te file since I did not define this type.&amp;nbsp; I need to find an interface that allows icecast_t to bind to the soundd_port_t tcp port.&amp;nbsp;&amp;nbsp; Grepping through the SELinux interface files for the correct interface, if find:&lt;br /&gt;&lt;br /&gt;&lt;font color=&quot;#999999&quot;&gt;# grep -R interface.*soundd_port /usr/share/selinux/devel/include | grep tcp | grep bind&lt;br /&gt;/usr/share/selinux/devel/include/kernel/corenetwork.if:interface(`corenet_tcp_bind_soundd_port',`&lt;br /&gt;/usr/share/selinux/devel/include/kernel.xml:&amp;lt;interface name=&amp;quot;corenet_tcp_bind_soundd_port&amp;quot; lineno=&amp;quot;59287&amp;quot;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;corenet_tcp_bind_soundd_port looks like the correct interface.&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font color=&quot;#999999&quot;&gt;corenet_tcp_bind_soundd_port(icecast_t)&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;br /&gt;After I compile and install my policy,&amp;nbsp; I restart the daemon and get no additional avc messages.&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;If I knew how to test icecast, I  would run all lots of tests on it and and gather the avc  messages.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&amp;nbsp; But I have Rawhide :^).&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;font color=&quot;#999999&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&amp;nbsp; I can just add my policy into rawhide and have people who actually use icecast generate AVC messages.&amp;nbsp; Since the icecast policy runs in permissive mode, SELinux should not break icecast while I gather avc messages. &lt;br /&gt;&lt;br /&gt;Total time to write this policy was less then a half hour.&amp;nbsp; It took me a lot longer to write this blog.&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;zemanta-pixie&quot;&gt;&lt;img src=&quot;http://img.zemanta.com/pixy.gif?x-id=d1807c4e-cc42-87c0-9521-591643d92fb8&quot; alt=&quot;&quot; class=&quot;zemanta-pixie-img&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;zemanta-pixie&quot;&gt;&amp;nbsp;&lt;/div&gt;</content:encoded>
	<dc:date>2010-02-04T18:41:15+00:00</dc:date>
	<dc:creator>dwalsh@redhat.com</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-15117118.post-4027305150466239207">
	<title>Jeronimo Zucco (selinux): Vídeo da apresentação sobre SELinux no FISL 10</title>
	<link>http://jczucco.blogspot.com/2010/01/video-da-apresentacao-sobre-selinux-no.html</link>
	<content:encoded>&lt;span&gt;English version bellow.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Abaixo segue o vídeo da apresentação feita por mim e pelo &lt;a href=&quot;http://ulissescastro.wordpress.com&quot;&gt;Ulisses Castro&lt;/a&gt; no &lt;a href=&quot;http://fisl.softwarelivre.org/10/www/&quot;&gt;FISL-10 Forum Internacional de Software Livre&lt;/a&gt;, realizado em Junho de 2009.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://stream.softwarelivre.org/video/selinux-everyday-sysadmins&quot;&gt;http://stream.softwarelivre.org/video/selinux-everyday-sysadmins&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id=&quot;__ss_1669044&quot;&gt;&lt;a href=&quot;http://www.slideshare.net/guest552ebe/selinux-for-everyday-sysadmins-fisl-10&quot; title=&quot;SELinux for Everyday SysAdmins - FISL 10&quot;&gt;SELinux for Everyday SysAdmins - FISL 10&lt;/a&gt;&lt;div&gt;View more &lt;a href=&quot;http://www.slideshare.net/&quot;&gt;presentations&lt;/a&gt; from &lt;a href=&quot;http://www.slideshare.net/guest552ebe&quot;&gt;guest552ebe&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.slideshare.net/guest552ebe/selinux-for-everyday-sysadmins-fisl-10&quot;&gt;http://www.slideshare.net/guest552ebe/selinux-for-everyday-sysadmins-fisl-10&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Na demonstração, confinamos uma &lt;a href=&quot;http://www.gnucitizen.org/blog/cve-2009-1151-phpmyadmin-remote-code-execution-proof-of-concept/&quot;&gt;PoC&lt;/a&gt; de uma vulnerabilidade do PhpMyAdmin (&lt;a href=&quot;http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1151&quot;&gt;CVE-2009-1151&lt;/a&gt;), mostrando a sua exploração com selinux habilitado e desabilitado.&lt;br /&gt;&lt;br /&gt;Obrigado a todos que puderam comparecer na apresentação.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;br /&gt;English version:&lt;/span&gt;&lt;br /&gt;Follow bellow the video of presentation that I've made with &lt;a href=&quot;http://ulissescastro.wordpress.com&quot;&gt;Ulisses Castro&lt;/a&gt; in &lt;a href=&quot;http://fisl.softwarelivre.org/10/www/&quot;&gt;FISL-10 Free Software Internacional Forum&lt;/a&gt;, in June of 2009.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id=&quot;__ss_1669044&quot;&gt;&lt;a href=&quot;http://www.slideshare.net/guest552ebe/selinux-for-everyday-sysadmins-fisl-10&quot; title=&quot;SELinux for Everyday SysAdmins - FISL 10&quot;&gt;SELinux for Everyday SysAdmins - FISL 10&lt;/a&gt;&lt;div&gt;View more &lt;a href=&quot;http://www.slideshare.net/&quot;&gt;presentations&lt;/a&gt; from &lt;a href=&quot;http://www.slideshare.net/guest552ebe&quot;&gt;guest552ebe&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.slideshare.net/guest552ebe/selinux-for-everyday-sysadmins-fisl-10&quot;&gt;http://www.slideshare.net/guest552ebe/selinux-for-everyday-sysadmins-fisl-10&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the demonstration, we have confined a &lt;a href=&quot;http://www.gnucitizen.org/blog/cve-2009-1151-phpmyadmin-remote-code-execution-proof-of-concept/&quot;&gt;PoC&lt;/a&gt; of a vulnerability of PhpMyAdmin (&lt;a href=&quot;http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1151&quot;&gt;CVE-2009-1151&lt;/a&gt;), with selinux enabled and disabled.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Thanks to all who could attend the presentation.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/15117118-4027305150466239207?l=jczucco.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2010-01-24T21:14:52+00:00</dc:date>
	<dc:creator>Jeronimo Zucco (jczucco@gmail.com)</dc:creator>
</item>
<item rdf:about="urn:lj:livejournal.com:atom1:paulmoore:5536">
	<title>Paul Moore: Enabling the Network Ingress/Egress Controls</title>
	<link>http://paulmoore.livejournal.com/5536.html</link>
	<content:encoded>There have been quite a few questions lately about how to enable the SELinux network ingress/egress controls on recent Fedora releases.  This is good because it means people actually want to use this stuff, but it is also bad because it tells me that I haven't done a very good job explaining how to use them.  Actually, looking back on this site I see that while I've written about the &lt;a href=&quot;http://paulmoore.livejournal.com/2128.html&quot;&gt;ingress/egress controls&lt;/a&gt; I haven't described how you would enable them on a modern Linux distribution.  Ooops.&lt;br /&gt;&lt;br /&gt;However, fear not faithful readers and confused administrators, for this is post shall explain, in four easy steps, how to enable the SELinux network ingress/egress controls.  Without further ado, let's begin ...&lt;br /&gt;&lt;br /&gt;The first step is to ensure you have the &lt;i&gt;netlabel_tools&lt;/i&gt; package installed.  This is necessary because the &lt;i&gt;netlabel_tools&lt;/i&gt; package contains the &lt;i&gt;netlabelctl&lt;/i&gt; application which we will be using to configure NetLabel in the final step.  Using &lt;i&gt;yum&lt;/i&gt; you should be able to install &lt;i&gt;netlabel_tools&lt;/i&gt; with the following command:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;
# yum install netlabel_tools
&lt;/pre&gt;&lt;br /&gt;After you have installed the &lt;i&gt;netlabel_tools&lt;/i&gt; package the next step is to ensure you have a SELinux policy module loaded which defines at least two new types: one to be assigned to a network interface and another to be assigned to network traffic.  To be honest, you'll probably want to create more than just those two types but that will be dependent on your particular configuration; for more information I suggest you look at my &lt;a href=&quot;http://paulmoore.livejournal.com/2128.html&quot;&gt;original post on the ingress/egress controls&lt;/a&gt; where I go into more detail on the policy aspect of these controls.  Regardless of what you decide, for the example here I will be using &quot;foo_netif_t&quot; for the network interface type and &quot;foo_peer_t&quot; for the network traffic type.&lt;br /&gt;&lt;br /&gt;With the SELinux policy module loaded and our new types defined, it is time to assign our new network interface type to an interface on the system.  We use the &lt;i&gt;semanage&lt;/i&gt; tool to manipulate the SELinux types assigned to network interfaces, in order to add a type to an interface, &quot;eth2&quot; in this example, we use the following command:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;
# semanage interface -a -t foo_netif_t eth2
&lt;/pre&gt;&lt;br /&gt;We can verify that the interface is assigned the correct type with the following command:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;
# semanage interface -l
SELinux Interface              Context
eth2                           system_u:object_r:foo_netif_t:s0
&lt;/pre&gt;&lt;br /&gt;Now that we have the network interface labeled the final step is to setup some form of peer labeling on the network.  For many of you not using CIPSO or labeled IPsec, this means configuring &lt;a href=&quot;http://paulmoore.livejournal.com/1758.html&quot;&gt;NetLabel's static/fallback labels&lt;/a&gt;.  In this example, we are going to configure all of the IPv4 and IPv6 traffic entering the system via &quot;eth2&quot; as having the &quot;foo_peer_t&quot; label; we do this with the following command:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;
# netlabelctl unlbl add interface:eth2 address:0.0.0.0/0 label:system_u:object_r:foo_peer_t:s0
# netlabelctl unlbl add interface:eth2 address:::/0 label:system_u:object_r:foo_peer_t:s0
&lt;/pre&gt;&lt;br /&gt;We can verify the configuration with the following command:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;
# netlabelctl -p unlbl list
Accept unlabeled packets : on
Configured NetLabel address mappings (2)
 interface: eth2
   address: 0.0.0.0/0
    label: &quot;system_u:object_r:foo_peer_t:s0&quot;
   address: ::/0
    label: &quot;system_u:object_r:foo_peer_t:s0&quot;
&lt;/pre&gt;&lt;br /&gt;At this point the SELinux network ingress/egress control should be up and running on your system.  As a reminder, you'll want to be sure to have all the right allow rules for these new controls in your SELinux policy as simply adding the types without the allow rules could result in a total loss of network access; because of this I recommend you do this with SELinux in permissive mode until you are comfortable with how the system operates.&lt;br /&gt;&lt;br /&gt;Good luck, and as usual, if you have any problems or questions feel free to leave a comment below.</content:encoded>
	<dc:date>2010-01-22T22:35:42+00:00</dc:date>
</item>
<item rdf:about="urn:lj:livejournal.com:atom1:paulmoore:5194">
	<title>Paul Moore: LinuxCon NetLabel Presentation</title>
	<link>http://paulmoore.livejournal.com/5194.html</link>
	<content:encoded>I'm more than a little late posting this, but below you'll find a copy of the NetLabel presentation I gave at this past year's LinuxCon.  Sure, it is old news, but if you ever wanted to know what NetLabel does and why it exists in the first place this is still good stuff.&lt;br /&gt;&lt;br /&gt;Presentation download: &lt;a href=&quot;http://free.linux.hp.com/~pmoore/files_lj/netlabel-linuxcon-09212009.pdf&quot;&gt;NetLabel: What, Why &amp;amp; Where&lt;/a&gt;</content:encoded>
	<dc:date>2010-01-22T21:47:06+00:00</dc:date>
</item>
<item rdf:about="http://danwalsh.livejournal.com/34903.html">
	<title>Dan Walsh: Why doen't SELinux give me the full path in an error message?</title>
	<link>http://danwalsh.livejournal.com/34903.html</link>
	<content:encoded>Lets examine the SELinux error message; the AVC.  &lt;br /&gt;(Not something I like to do in a blog since AVC messages are scary)&lt;br /&gt;&lt;br /&gt;node=holycross.devel.redhat.com type=&lt;b&gt;AVC&lt;/b&gt; msg=audit(12/13/2006 11:28:14.395:952) : avc:  denied  { getattr } for  pid=7236 comm=&lt;b&gt;vsftpd&lt;/b&gt; name=public_html dev=&lt;b&gt;dm-0&lt;/b&gt; ino=&lt;b&gt;9601649&lt;/b&gt; scontext=system_u:system_r:ftpd_t:s0 tcontext=system_u:object_r:httpd_sys_content_t:s0 tclass=&lt;b&gt;dir&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;node=holycross.devel.redhat.com type=&lt;b&gt;SYSCALL&lt;/b&gt; msg=audit(12/13/2006 11:28:14.395:952) : arch=i386 syscall=&lt;b&gt;lstat64&lt;/b&gt; success=no exit=0 &lt;br /&gt;a0=8495230 a1=849c830 a2=874ff4 a3=328d28 items=0 ppid=7234 pid=7236 auid=dwalsh uid=dwalsh gid=dwalsh euid=dwalsh suid=dwalsh fsuid=dwalsh egid=dwalsh sgid=dwalsh fsgid=dwalsh tty=(none) comm=vsftpd exe=&lt;b&gt;/usr/sbin/vsftpd&lt;/b&gt; subj=system_u:system_r:ftpd_t:s0 key=(null) &lt;br /&gt;&lt;br /&gt;This&lt;b&gt; &lt;/b&gt;AVC&lt;b&gt; &lt;/b&gt;message consists of two records, the actual &lt;b&gt;AVC&lt;/b&gt; record and the &lt;b&gt;SYSCALL&lt;/b&gt; record.  The kernel generates both records when the SELinux system denies an access.  This AVC message indicates that SELinux prevented &lt;b&gt;/usr/sbin/vsftpd&lt;/b&gt; from the &lt;b&gt;getattr&lt;/b&gt; access on a &lt;b&gt;dir&lt;/b&gt; named &lt;b&gt;public_html&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Which public_html directory? &lt;/b&gt;&lt;br /&gt;Notice, the AVC records do not show the full path to public_html?   Performance is the reason the kernel does not provide the full path.  The kernel needs to allocate memory for the path before every syscall is called and then free it, when the syscall does not generate an error in  order to add the full path to the AVC.   Since AVC's should happen infrequently, the kernel reporting the full path is not considered worth the overhead.  The AVC records do include the device, &lt;b&gt;dm-0&lt;/b&gt;, and the inode, &lt;b&gt;&lt;b&gt;9601649.   &lt;/b&gt;&lt;/b&gt;You can use the device and inode information to find the correct path if the file/directory still exists.  &lt;br /&gt;&lt;br /&gt;&lt;font color=&quot;#0036ff&quot;&gt;# find / -inum &lt;b&gt;&lt;b&gt;9601649&lt;/b&gt;&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;But that is going to take a long time.&lt;br /&gt;&lt;br /&gt;The setroubleshoot tools uses the locate program to attempt to reassemble the path.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;# locate -r /public_html$&lt;br /&gt;/home/dwalsh/public_html&lt;br /&gt;/home/obama/public_html&lt;br /&gt;...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then setroubleshoot uses stat to get the inode of each file returned and compares it to the ino in the AVC message, if they match it analyzes the full path.   Of course you have to have mlocate package installed and running in a cron job to gather the paths.&lt;br /&gt;&lt;br /&gt;Sometimes AVC messages refer to mountpoints. In these cases the kernel reports the access against name=&amp;quot;/&amp;quot;.   This is not necessarily the top level &amp;quot;/&amp;quot; that humans understand, but the root of the mounted file system.  For example, if an AVC was generated against a file system mounted at /var, the kernel would say the name was &amp;quot;/&amp;quot; and report the device.  Setroubleshoot attempts to translate the path &amp;quot;/&amp;quot; into &amp;quot;/var&amp;quot; by searching the mount table for a machine device.&lt;br /&gt;&lt;br /&gt;Sometimes AVC messages do not even report the name.  For example look at this AVC message.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;node=freddi type=&lt;b&gt;AVC&lt;/b&gt; msg=audit(1263843455.583:203): avc:  denied  { &lt;b&gt;dac_override&lt;/b&gt; } for  pid=6050 comm=&amp;quot;&lt;b&gt;plymouthd&lt;/b&gt;&amp;quot; capability=1 scontext=system_u:system_r:plymouthd_t:s0 tcontext=system_u:system_r:plymouthd_t:s0 tclass=&lt;b&gt;capability&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;node=freddi type=&lt;b&gt;SYSCALL&lt;/b&gt; msg=audit(1263843455.583:203): arch=c000003e syscall=&lt;b&gt;open&lt;/b&gt; success=no exit=-19 a0=d13a60 a1=2 a2=0 a3=7fff3cad2310 items=0 ppid=1 pid=6050 auid=4294967295 &lt;b&gt;uid=0 gid=0&lt;/b&gt; euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm=&amp;quot;plymouthd&amp;quot; exe=&amp;quot;&lt;b&gt;/sbin/plymouthd&lt;/b&gt;&amp;quot; subj=system_u:system_r:plymouthd_t:s0 key=(null)&lt;br /&gt;&lt;br /&gt;These AVC records indicate that the &lt;b&gt;/sbin/plymouthd&lt;/b&gt; program was denied the &lt;b&gt;open&lt;/b&gt; access, because it required the &lt;b&gt;DAC_OVERRIDE capability&lt;/b&gt;.    Notice plymouthd is running as root (&lt;b&gt;&lt;b&gt;uid=0 gid=0&lt;/b&gt;&lt;/b&gt;).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What is the DAC_OVERRIDE capability?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;According to &lt;a href=&quot;http://danwalsh.livejournal.com/data/&amp;quot;http://www.selinuxbyexample.com/&amp;amp;quot&quot;&gt;SELinux By Example.&lt;/a&gt;  DAC_OVERRIDE allows a process to ignore Discretionary Access Controls including access lists. &lt;br /&gt;&lt;br /&gt;If a process running as root attempts to read a file in my homedir owned by dwalsh with -rw------- permissions, it would have to have DAC_OVERRIDE.&lt;br /&gt;&lt;br /&gt;This AVC message indicates that plymouthd tried to open some object (file/direcory/device) that root is not allowed to open, with standard permissions.  But with capability checking the kernel does give us any information about the target object.  This AVC access denial could simply be a file with the wrong permission bits or wrong ownership, and plymouthd would not need the access if the file permissions was fixed, but there is no way for us to figure it out from the AVC.  :^(&lt;br /&gt;&lt;br /&gt;In this case we can turn on full auditing.  This tells the kernel to save the path before each access check and report the path, if you generate an AVC.  I do this on my machine by adding a rule to watch write on /etc/shadow.  Add &lt;br /&gt;&lt;font color=&quot;#0036ff&quot;&gt;&lt;br /&gt;&lt;span&gt;# echo &amp;quot;-w /etc/shadow -p w&amp;quot; &amp;gt;&amp;gt; /etc/audit/audit.rules &lt;br /&gt;# service auditd restart&lt;/span&gt;&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;These commands will turn on full auditing mode on your system.  In this mode the kernel adds the &lt;b&gt;PATH&lt;/b&gt; record to the AVC message:&lt;br /&gt;&lt;br /&gt;node=holycross.devel.redhat.com type=&lt;b&gt;PATH&lt;/b&gt; msg=audit(12/13/2006 11:28:14.395:952) : name=&lt;b&gt;/home/dwalsh/public_html&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Making it clear which public_html directory is involved.&lt;br /&gt;&lt;br /&gt;When we suggested this to the person who reported the DAC_OVERRIDE problem above, he found that the /dev/fb device had permissions such that root could not open it.&lt;br /&gt;&lt;br /&gt;I run with full auditing turned on all the time, since I never notice any performance problems, most desktop users wouldn't.  &lt;br /&gt;If you want to turn off auditing you could remove the line and rerun &lt;br /&gt;&lt;span&gt;# service auditd restart.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You can also add and remove rules using auditctl.</content:encoded>
	<dc:date>2010-01-20T19:14:44+00:00</dc:date>
	<dc:creator>dwalsh@redhat.com</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-7673377107942959487.post-6678427690171840198">
	<title>Andrey Markelov (SELinux): AppArmor от Novell больше &quot;не от Novell&quot;?</title>
	<link>http://markelov.blogspot.com/2007/10/apparmor-novell-novell.html</link>
	<content:encoded>Когда говорят о мандатном контроле доступа (MAC) в Linux, обычно сравнивают Novell AppArmor (система более простая в использовании) и Fedora/RHEL SELinux (система, обеспечивающая более комплексную защиту). Так вот, на днях &lt;a href=&quot;http://www.news.com/8301-13580_3-9796140-39.html&quot;&gt;стало известно&lt;/a&gt;, что Novell уволил лидера проекта AppArmor Crispin Cowan вместе с еще четырьмя разработчиками, работавшими над этим проектом. Cowan, ошеломленный увольнением, не собирается бросать свое детище. Он создал консалтинговую компанию &lt;a href=&quot;http://www.mercenarylinux.com/&quot;&gt;Mercenary Linux&lt;/a&gt;, и, видимо, ждет, когда ее кто-нибудь поглотит: &quot;If somebody loves us and one day wants to acquire Mercenary, that's great.&quot;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7673377107942959487-6678427690171840198?l=markelov.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2010-01-17T00:21:12+00:00</dc:date>
	<dc:creator>Andrey Markelov (noreply@blogger.com)</dc:creator>
</item>
<item rdf:about="http://danwalsh.livejournal.com/34765.html">
	<title>Dan Walsh: If only there was  a tool that could sandbox the reading of random pdf files...</title>
	<link>http://danwalsh.livejournal.com/34765.html</link>
	<content:encoded>&lt;a href=&quot;http://www.darkreading.com/database_security/security/attacks/showArticle.jhtml?articleID=222300840&amp;amp;pgno=1&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;h2 class=&quot;headline&quot;&gt;&lt;a href=&quot;http://www.darkreading.com/database_security/security/attacks/showArticle.jhtml?articleID=222300840&amp;amp;pgno=1&quot;&gt; Spear-Phishing Attacks Out Of China Targeted Source Code, Intellectual  Property &lt;/a&gt;&lt;/h2&gt;  &lt;a href=&quot;http://www.darkreading.com/database_security/security/attacks/showArticle.jhtml?articleID=222300840&amp;amp;pgno=1&quot;&gt;&lt;font class=&quot;text&quot;&gt;&lt;b&gt; Attackers used intelligence, custom malware to access Google, Adobe, and other U.S. companies' systems &lt;/b&gt;&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Oh wait there is, &lt;a href=&quot;http://danwalsh.livejournal.com/31146.html&quot;&gt;SELinux sandbox.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;zemanta-pixie&quot;&gt;&lt;img class=&quot;zemanta-pixie-img&quot; alt=&quot;&quot; src=&quot;http://img.zemanta.com/pixy.gif?x-id=8213e798-9454-83e0-814b-4c9f3b6e6f47&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2010-01-14T18:26:18+00:00</dc:date>
	<dc:creator>dwalsh@redhat.com</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-5024703430482213163.post-6107822133917796557">
	<title>Dominick Grift: Test Git daemon policy.</title>
	<link>http://selinux-mac.blogspot.com/2010/01/test-git-daemon-policy.html</link>
	<content:encoded>Clone my latest selinux-modules git repository:&lt;br /&gt;&lt;br /&gt;git clone git://84.245.6.206/selinux-modules.git&lt;br /&gt;cd selinux-modules &amp;amp;&amp;amp; make -f /usr/share/selinux/devel/Makefile gitd.pp&lt;br /&gt;semodule -d git; semodule -i gitd.pp&lt;br /&gt;cp gitd.if /usr/share/selinux/devel/include/services/gitd.if&lt;br /&gt;&lt;br /&gt;To test the Git session server you should build a custom module calling the gitd_session_role template for your role:&lt;br /&gt;&lt;br /&gt;echo &quot;policy_module(mygittest, 1.0.0)&quot; &gt; mygittest.te;&lt;br /&gt;echo &quot;optional_policy(\`&quot; &gt;&gt; mygittest.te;&lt;br /&gt;echo &quot;gen_require(\`&quot; &gt;&gt; mygittest.te;&lt;br /&gt;echo &quot;# Assuming you want to test as unconfined_t&quot; &gt;&gt; mygittest.te;&lt;br /&gt;echo &quot;type unconfined_t;&quot; &gt;&gt; mygittest.te;&lt;br /&gt;echo &quot;role unconfined_r;&quot; &gt;&gt; mygittest.te;&lt;br /&gt;echo &quot;')&quot; &gt;&gt; mygittest.te;&lt;br /&gt;echo &quot;gitd_session_role(unconfined_r, unconfined_t)&quot; &gt;&gt; mygittest.te;&lt;br /&gt;echo &quot;')&quot; &gt;&gt; mygittest.te;&lt;br /&gt;&lt;br /&gt;make -f /usr/share/selinux/devel/Makefile mygittest.pp&lt;br /&gt;semodule -i mygittest.pp&lt;br /&gt;&lt;br /&gt;Make sure that port tcp:9418 open and that tcp-wrappers is configured to accept connectivity on this port.&lt;br /&gt;&lt;br /&gt;install git-daemon and its dependencies: yum install git-daemon.&lt;br /&gt;&lt;br /&gt;You must edit /etc/xinetd.d/git. set &quot;disable&quot; to &quot;no&quot;, &quot;server&quot; to &quot;/usr/libexec/git-core/git-daemon&quot;, and remove the &quot;daemon&quot; argument from &quot;server_args&quot;. Keep an eye on /var/log/messages in case it behaves strange.&lt;br /&gt;&lt;br /&gt;Restore the following contexts:&lt;br /&gt;&lt;br /&gt;restorecon -R -v /var/lib/git&lt;br /&gt;restorecon -v /usr/libexec/git-core/git-daemon&lt;br /&gt;restorecon -v ~/.gitconfig&lt;br /&gt;restorecon -v ~/public_git&lt;br /&gt;&lt;br /&gt;Start xinetd: service xinetd start.&lt;br /&gt;&lt;br /&gt;Set up a default git shell user for generic shared repositories:&lt;br /&gt;&lt;br /&gt;groupadd git&lt;br /&gt;useradd -Z git_shell_u -M -s /usr/bin/git-shell joe&lt;br /&gt;usermod -a -G git joe&lt;br /&gt;passwd joe&lt;br /&gt;&lt;br /&gt;Set up a bare &quot;test&quot; shared repostory:&lt;br /&gt;&lt;br /&gt;mkdir /var/lib/git/test.git&lt;br /&gt;cd /var/lib/git/test.git &amp;amp;&amp;amp; git --bare init&lt;br /&gt;chown -R root:git /var/lib/git/test.git&lt;br /&gt;chmod -R g+w /var/lib/git/test.git&lt;br /&gt;chmod -R g+s /var/lib/git/test.git&lt;br /&gt;chmod -R +t /var/lib/git/test.git&lt;br /&gt;&lt;br /&gt;From your &quot;normal&quot; user account clone the bare repository:&lt;br /&gt;&lt;br /&gt;git clone git://localhost/test.git&lt;br /&gt;cd test&lt;br /&gt;&lt;br /&gt;Make changes to it:&lt;br /&gt;&lt;br /&gt;echo &quot;test&quot; &gt; test;&lt;br /&gt;git init&lt;br /&gt;git add .&lt;br /&gt;git commit -a -s -m &quot;My initial commit.&quot;&lt;br /&gt;&lt;br /&gt;As user &quot;joe&quot; push to the shared repository:&lt;br /&gt;&lt;br /&gt;git push --all git+ssh://joe@localhost/var/lib/git/test.git&lt;br /&gt;git pull&lt;br /&gt;git status&lt;br /&gt;git show&lt;br /&gt;&lt;br /&gt;Testing Git session:&lt;br /&gt;&lt;br /&gt;Stop xinetd and in your &quot;normal&quot; (we are done with &quot;joe&quot; for now) user home directory make sure ~/public_git exists.&lt;br /&gt;restorecon -R -v /public_git&lt;br /&gt;Previously we called a &quot;gitd_session_role&quot; template for users operating in the unconfined_t domain. This means when your id -Z returns: unconfined_u:unconfined_r:unconfined_t:s0, git with the daemon option will run in a Git session SELinux environment for you.&lt;br /&gt;&lt;br /&gt;Create a new personal repository in ~/public_git:&lt;br /&gt;&lt;br /&gt;mkdir ~/public_git/hello&lt;br /&gt;cd ~/public_git/hello&lt;br /&gt;git init&lt;br /&gt;echo &quot;hello&quot; &gt; hello&lt;br /&gt;git add .&lt;br /&gt;git commit -a -s -m &quot;My initial commit.&quot;&lt;br /&gt;&lt;br /&gt;Serve your personal repository with the following command:&lt;br /&gt;&lt;br /&gt;git daemon --export-all --user-path=public_git&lt;br /&gt;&lt;br /&gt;In another terminal clone the repository:&lt;br /&gt;&lt;br /&gt;git clone git://localhost/~yourloginnamehere/hello&lt;br /&gt;&lt;br /&gt;Make a commit to it:&lt;br /&gt;&lt;br /&gt;cd hello&lt;br /&gt;echo &quot;bye&quot; &gt;&gt; hello&lt;br /&gt;git commit -a -s -m &quot;Add good bye&quot;&lt;br /&gt;&lt;br /&gt;Push the change to your personal repository:&lt;br /&gt;&lt;br /&gt;git push --all ssh://yourloginnamehere@localhost/~/public_git/hello&lt;br /&gt;&lt;br /&gt;Hosting personal repositories with Git system daemon.&lt;br /&gt;&lt;br /&gt;Stop your Git session daemon (ctrl-c) and start xinetd.&lt;br /&gt;&lt;br /&gt;Set the boolean to allow the Git system daemon to search user home directories for personal Git repositories to serve:&lt;br /&gt;&lt;br /&gt;setsebool gitd_system_enable_homedirs on&lt;br /&gt;&lt;br /&gt;Now clone the personal repository again:&lt;br /&gt;&lt;br /&gt;git clone git://localhost/~yourloginnamehere/hello&lt;br /&gt;cd hello&lt;br /&gt;echo &quot;hi&quot; &gt;&gt; hello&lt;br /&gt;git commit -a -s -m &quot;Added Hi.&quot;&lt;br /&gt;&lt;br /&gt;And push to the personal repository:&lt;br /&gt;&lt;br /&gt;git push --all ssh://yourloginnamehere@localhost/~/public_git/hello&lt;br /&gt;&lt;br /&gt;Create a customized Git Shell user that has access to a restricted shared repository (besides having access to any generic system repositories) Also create a restricted repository and allow our created Git shell user access to this new restricted repository.&lt;br /&gt;&lt;br /&gt;echo &quot;policy_module(secret_git_shell, 1.0.0)&quot; &gt; secret_git_shell.te;&lt;br /&gt;echo &quot;gitd_role_template(secret_git_shell)&quot; &gt;&gt; secret_git_shell.te;&lt;br /&gt;echo &quot;gitd_content_template(secret)&quot; &gt;&gt; secret_git_shell.te;&lt;br /&gt;echo &quot;gitd_content_delegation(secret_git_shell_t, gitd_secret_content_t)&quot; &gt;&gt; secret_git_shell.te;&lt;br /&gt;echo &quot;gen_user(secret_git_shell_u, user, secret_git_shell_r, s0, s0)&quot; &gt;&gt; secret_git_shell.te;&lt;br /&gt;&lt;br /&gt;echo &quot;/var/lib/git/secret\.git(/.*)? gen_context(system_u:object_r:gitd_secret_content_t, s0)&quot; &gt; secret_git_shell.fc;&lt;br /&gt;&lt;br /&gt;make -f /usr/share/selinux/devel/Makefile secret_git_shell.pp&lt;br /&gt;semodule -i secret_git_shell.pp&lt;br /&gt;&lt;br /&gt;Create a secret Git shell user:&lt;br /&gt;&lt;br /&gt;useradd -Z secret_git_shell_u -M -s /usr/bin/git-shell jane&lt;br /&gt;usermod -a -G git jane&lt;br /&gt;passwd jane&lt;br /&gt;&lt;br /&gt;Create a bare secret shared repository:&lt;br /&gt;&lt;br /&gt;mkdir /var/lib/git/secret.git&lt;br /&gt;cd /var/lib/git/secret.git &amp;amp;&amp;amp; git --bare init&lt;br /&gt;chown -R root:git /var/lib/git/secret.git&lt;br /&gt;chmod -R g+w /var/lib/git/secret.git&lt;br /&gt;chmod -R g+s /var/lib/git/secret.git&lt;br /&gt;chmod -R +t /var/lib/git/secret.git&lt;br /&gt;&lt;br /&gt;Restore the context of the secret repository:&lt;br /&gt;&lt;br /&gt;restorecon -R -v /var/lib/git/secret.git&lt;br /&gt;&lt;br /&gt;Everyone can read it but only jane can push to it. As a &quot;normal&quot; user clone the secret repository.&lt;br /&gt;&lt;br /&gt;git clone git://localhost/secret.git&lt;br /&gt;cd secret&lt;br /&gt;echo &quot;secret&quot; &gt; secret&lt;br /&gt;git init&lt;br /&gt;git add .&lt;br /&gt;git commit -a -s -m &quot;My first commit.&quot;&lt;br /&gt;&lt;br /&gt;Push it as user &quot;jane&quot;&lt;br /&gt;&lt;br /&gt;git push --all git+ssh://jane@localhost/var/lib/git/secret.git&lt;br /&gt;git pull&lt;br /&gt;git status&lt;br /&gt;git show&lt;br /&gt;&lt;br /&gt;Make another commit:&lt;br /&gt;&lt;br /&gt;echo &quot;Joe here&quot; &gt;&gt; secret&lt;br /&gt;git commit -a -s -m &quot;add Joe here&quot;&lt;br /&gt;&lt;br /&gt;Now try to push it as user &quot;joe&quot; (joe can push generic shared repositories but joe is not allowed to push to the secret repository)&lt;br /&gt;&lt;br /&gt;git push --all git+ssh://joe@localhost/var/lib/git/secret.git&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5024703430482213163-6107822133917796557?l=selinux-mac.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2010-01-14T11:27:29+00:00</dc:date>
	<dc:creator>Dominick &quot;domg472&quot; Grift (noreply@blogger.com)</dc:creator>
</item>
<item rdf:about="http://danwalsh.livejournal.com/34557.html">
	<title>Dan Walsh: I am now syndicated on the FedoraProject security planet.</title>
	<link>http://danwalsh.livejournal.com/34557.html</link>
	<content:encoded>If you go to&lt;a href=&quot;http://planet.fedoraproject.org/security&quot;&gt; http://planet.fedoraproject.org/security/&lt;/a&gt; you will see all Fedora people that have characterized their blogs as being interesting to security people.&lt;br /&gt;&lt;br /&gt;Fedora people can syndicate themselves by logging into their shell accounts on people.fedoraproject.org and create a file in their homedir called .planet or .planet.security.&lt;br /&gt;&lt;br /&gt;My file looks like&lt;br /&gt;&lt;br /&gt;&lt;font color=&quot;#3366ff&quot;&gt;more .planet&lt;br /&gt;[&lt;a href=&quot;http://www.livejournal.com/users/danwalsh/data/rss/]&quot;&gt;http://www.livejournal.com/users/danwalsh/data/rss/]&lt;/a&gt;&lt;br /&gt;name = Dan Walsh&lt;br /&gt;face = &lt;a href=&quot;http://dwalsh.fedorapeople.org/dwalsh.jpeg&quot;&gt;http://dwalsh.fedorapeople.org/dwalsh.jpeg&lt;/a&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;If the file is named .planet the blog will show up in &lt;a href=&quot;http://planet.fedoraproject.org&quot;&gt;http://planet.fedoraproject.org&lt;/a&gt;.&amp;nbsp; .planet.security will show the blog in &lt;a href=&quot;http://planet.fedoraproject.org/security&quot;&gt;http://planet.fedoraproject.org/security&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I have a symbolic link between the two files so my blog shows up in both places.&amp;nbsp; The security planet currently consists of most of the IPA guys and myself.&amp;nbsp; Hopefully others will join as it becomes more well known.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;zemanta-pixie&quot;&gt;&lt;img class=&quot;zemanta-pixie-img&quot; alt=&quot;&quot; src=&quot;http://img.zemanta.com/pixy.gif?x-id=7075f070-09ee-8586-b252-dd9a7837e66d&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2010-01-12T20:25:55+00:00</dc:date>
	<dc:creator>dwalsh@redhat.com</dc:creator>
</item>
<item rdf:about="http://danwalsh.livejournal.com/34279.html">
	<title>Dan Walsh: More on guestfish and SELinux</title>
	<link>http://danwalsh.livejournal.com/34279.html</link>
	<content:encoded>I am writing this blog in ScribeFire, hopefully it will work correctly.&lt;br /&gt;&lt;br /&gt;I have been talking to Richard Jones about guestfish and SELinux and he is trying his best to educate me.&lt;br /&gt;&lt;br /&gt;One of the things I did not understand is that &lt;a href=&quot;http://libguestfs.org/guestfs.3.html#architecture&quot;&gt;guestfish&lt;/a&gt; actually starts a kernel, it is sort of a mini virtual machine.&lt;br /&gt;&lt;br /&gt;Therefore load_policy would load into the the guest kernel, and not capable of harming the host os.&lt;br /&gt;&lt;br /&gt;Currently the administrator has to tell guestfish that it is using selinux, and even has a --selinux option.&amp;nbsp; Sadly this flag does work if you specify -i.&lt;br /&gt;&lt;br /&gt;# guestfish -i rhel5 --selinux&lt;br /&gt;guestfish: cannot use -i option with -a, -m, --listen, --remote or --selinux&lt;br /&gt;&lt;br /&gt;You can however execute&lt;br /&gt;&lt;br /&gt;guestfish `virt-inspector --fish rhel5` --selinux&lt;br /&gt;&amp;gt; &amp;lt;fs&amp;gt; sh &quot;load_policy&quot;&lt;br /&gt;&amp;gt; &amp;lt;fs&amp;gt; sh &quot;restorecon /etc/resolv.conf&quot;&lt;br /&gt;&lt;br /&gt;One problem I see with this is that guestfish should really figure out if the guest os is running selinux and then turn it on and load_policy by default.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=554829&quot;&gt;https://bugzilla.redhat.com/show_bug.cgi?id=554829&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Without fixing this problem, users of guestfish on selinux enabled systems have to be careful.&amp;nbsp; Because if you do not turn on the -selinux flag and load_policy, you could create files/directories without labels (file_t).&amp;nbsp; This could then cause the virtual machine to not work correctly when you boot it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;zemanta-pixie&quot;&gt;&lt;img class=&quot;zemanta-pixie-img&quot; alt=&quot;&quot; src=&quot;http://img.zemanta.com/pixy.gif?x-id=2f2d34aa-b5ea-8dd8-b5df-d69e63b158b4&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2010-01-12T20:10:36+00:00</dc:date>
	<dc:creator>dwalsh@redhat.com</dc:creator>
</item>
<item rdf:about="http://danwalsh.livejournal.com/33728.html">
	<title>Dan Walsh: SELinux and guestfish</title>
	<link>http://danwalsh.livejournal.com/33728.html</link>
	<content:encoded>Note:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; First let me apologize for the previous post.&amp;nbsp; For some reason livejournal.com was adding a bunch of line-breaks (&amp;lt;/br&amp;gt;) to my previous post when I submitted it. &amp;nbsp;I tried to remove it but the editor did not show them.&amp;nbsp;&amp;nbsp;Must be a bug with using tables in the editor.&lt;br /&gt;&lt;br /&gt;The other day, &lt;a href=&quot;http://rwmj.wordpress.com/2010/01/06/tip-autorelabel-a-vm/&quot;&gt;Richard Jones posted a blog on using guestfish to fix an SELinux issue.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After reading the blog, I&amp;nbsp;thought I would play around with guestfish a little bit.&amp;nbsp; He suggested that you could fix&amp;nbsp; a labelling issue on a virtual image by execute touch /.autorelabel and then booting the virtual image.&amp;nbsp;&amp;nbsp; &amp;nbsp;I&amp;nbsp;experimented around and found that you could execute the following command and fix the labels before the boot.&amp;nbsp; I have an virtual machine named f12.&lt;br /&gt;&lt;div class=&quot;entry&quot;&gt;&lt;p&gt;&lt;span&gt;# guestfish -i f12&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A potential easier solution to fix the labelling issue brought up in Richard's blog would be&lt;/p&gt; &lt;p&gt;&lt;span&gt;&amp;gt;&amp;lt;fs&amp;gt; sh &amp;ldquo;/sbin/setfiles -q  /etc/selinux/targeted/contexts/files/file_contexts /&amp;rdquo;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This command would correct the labels on the system.&amp;nbsp; It will run for while.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&amp;gt;&amp;lt;fs&amp;gt; sh &amp;quot;/usr/sbin/sestatus&amp;quot;&lt;br /&gt;SELinux status:&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  disabled&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;One problem with guestfish is that it does not setup the environment enough for the SELinux libraries to recognise that this is an SELinux environment.&amp;nbsp;&amp;nbsp; libselinux uses the /proc/filesystem and /selinux file systems to figure out if SELinux is enabled or not.&amp;nbsp; Since these file systems are not enabled, the tools are fooled into thinking the system is disabled.&amp;nbsp; This is both a good and a bad thing.&amp;nbsp; It is a good thing because tools like load_policy will not actually load the policy.&amp;nbsp; Loading policy could mess up your host machine.&amp;nbsp; S you were running on F12 and connected to a RHEL5 guest, if you loaded policy in the guest and it got loaded onto the host, you machine would probably break badly.&amp;nbsp; Not recognising SELinux is enabled on this os can be a bad thing in that tools like restorecon will not work.&amp;nbsp;&amp;nbsp; Restorecon exits on disabled machines.&amp;nbsp; Tools like setfiles and semanage can run on disabled machines.&amp;nbsp; Semanage requires you to specify the store (-s targeted) in order to work on a &amp;quot;disabled&amp;quot; machine.&amp;nbsp;&amp;nbsp;For example semanage user -l -s targeted.&lt;br /&gt; &lt;br /&gt;One possible use of this functionality would be to change the policy type on a guest os. If you wanted to turn the box into an MLS&amp;nbsp;box you could execute.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&amp;gt;&amp;lt;fs&amp;gt; sh &amp;quot;/bin/sed s/SELINUXTYPE=.*/SELINUXTYPE=mls/g /etc/selinux/config&amp;quot;&lt;br /&gt;&amp;gt;&amp;lt;fs&amp;gt; sh &amp;quot;/sbin/setfiles -q /etc/selinux/mls/targeted/contexts/files/file_contexts /&amp;quot;&lt;br /&gt;&amp;gt;&amp;lt;fs&amp;gt; sync&lt;br /&gt;&amp;gt;&amp;lt;fs&amp;gt; sync&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Of course the mls policy would have had to be installed before this would work.&amp;nbsp; I don't think you can run yum install selinux-policy-mls from guestfish.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;If you wanted to change the ports that apache can listen on you could execute a command like:&lt;br /&gt;&lt;span&gt;&lt;br /&gt;&amp;gt;&amp;lt;fs&amp;gt; sh &amp;quot;/usr/sbin/semanage port -a -s targeted -t http_port_t -p tcp 81&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Someone seems to have built some SELinux code into guestfish and guestfs. (Not me).&lt;br /&gt;&lt;br /&gt;&lt;span&gt;set-selinux 0 or 1&lt;/span&gt;&lt;br /&gt;seems to set the boot flag to enable or disable SELinux (Enabled defaults to permissive mode)&lt;/p&gt;&lt;/div&gt;Not sure if this works, as examining the /etc/grub and /etc/selinux/config file is not modified.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;I think I&amp;nbsp;would tend to avoid using the built-in commands, as they do not seem to work correctly.&lt;br /&gt;</content:encoded>
	<dc:date>2010-01-11T18:42:59+00:00</dc:date>
	<dc:creator>dwalsh@redhat.com</dc:creator>
</item>
<item rdf:about="http://danwalsh.livejournal.com/33287.html">
	<title>Dan Walsh: Confined processes statistics in Fedora 12?</title>
	<link>http://danwalsh.livejournal.com/33287.html</link>
	<content:encoded>I often get asked how many processes are confined with SELinux.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;In RHEL4 we estimated around 15.&lt;br /&gt;In RHEL5 we estimated around 200.&lt;br /&gt;&lt;br /&gt;Well there is a cool tool called seinfo (setools package) that allows you query the installed policy for attributes and types,&amp;nbsp; as well as other policy features.&amp;nbsp; In SELinux, every process type has an attribute associated with it called &amp;quot;domain&amp;quot;.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;A good estimate of the number of different confined processes is to count the number of types with the domain attribute.&lt;br /&gt;&lt;span&gt;&lt;br /&gt;seinfo -adomain -x | tail -n +2 | wc -l&lt;br /&gt;513&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Note: I am removing the first line because it lists the attribute name.&lt;br /&gt;&lt;br /&gt;Not all domain types are confined. If we want to look at the number of unconfined domains, we can use the unconfined_domain attribute.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;seinfo -aunconfined_domain_type -x | tail -n +2 | wc -l&lt;br /&gt;52&lt;/span&gt;&lt;br /&gt;&lt;table width=&quot;200&quot; cellspacing=&quot;1&quot; cellpadding=&quot;1&quot; border=&quot;1&quot;&gt;&lt;caption&gt;Unconfined Domains&lt;/caption&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;bootloader_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;devicekit_power_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;ldconfig_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;unconfined_cronjob_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;unconfined_sendmail_t&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;setfiles_mac_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;initrc_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;ada_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;fsadm_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;kudzu_t&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;lvm_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;mdadm_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;mono_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;rpm_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;wine_t&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;unconfined_mount_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;prelink_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;anaconda_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;rpm_script_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;system_cronjob_t&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;tmpreaper_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;samba_unconfined_net_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;unconfined_notrans_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;unconfined_execmem_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;devicekit_disk_t&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;firstboot_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;samba_unconfined_script_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;unconfined_java_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;unconfined_mono_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;httpd_unconfined_script_t&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;depmod_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;insmod_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;kernel_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;livecd_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;apmd_t&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;clvmd_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;crond_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;inetd_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;init_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;udev_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;virtd_t&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;xend_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;nagios_unconfined_plugin_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;devicekit_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;remote_login_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;inetd_child_t&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;qemu_unconfined_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;unconfined_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;ricci_modcluster_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;useradd_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;xserver_t&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;If you disable the unconfined policy package, which I recommend.&lt;br /&gt;&lt;br /&gt;This leaves only user domains unconfined, along with some domains that do not make sense to confine.&amp;nbsp; (anaconda, firstboot, kernel,rpm)&lt;br /&gt;&lt;span&gt;&lt;br /&gt;# semodule -d unconfined&lt;br /&gt;seinfo -aunconfined_domain_type -x | tail -n +2 | wc -l&lt;br /&gt;14&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;table width=&quot;200&quot; cellspacing=&quot;1&quot; cellpadding=&quot;1&quot; border=&quot;1&quot;&gt;&lt;caption&gt;Unconfined User Domains&lt;/caption&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;unconfined_sendmail_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;rpm_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;unconfined_mount_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;anaconda_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;rpm_script_t&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;unconfined_notrans_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;unconfined_execmem_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;firstboot_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;unconfined_java_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;unconfined_mono_t&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;kernel_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;livecd_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;qemu_unconfined_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;unconfined_t&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;You can disable all unconfined domains by disabling unconfineduser module&lt;br /&gt;&lt;span&gt;&lt;br /&gt;# semodule -d unconfineduser&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Note: You need to setup all your users as confined users, before removing the unconfineduser module. &lt;br /&gt;Disabling the unconfined and unconfineduser policy modules is the equivalent of what we used to call strict policy.&lt;br /&gt;&lt;br /&gt;One other interesting domain is permissive domains.  Permissive domains can be listed with the --permissive qualifier.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;# seinfo --permissive -x | tail -n +3 | wc -l&lt;br /&gt;31&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;table width=&quot;200&quot; cellspacing=&quot;1&quot; cellpadding=&quot;1&quot; border=&quot;1&quot;&gt;&lt;caption&gt;Permissive Domains&lt;/caption&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;gitd_session_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;smoltclient_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;kdumpgui_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;sandbox_xserver_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;prelink_cron_system_t&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;abrt_helper_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;firewallgui_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;corosync_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;asterisk_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;dnsmasq_t&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;plymouth_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;chrome_sandbox_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;nut_upsd_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;plymouthd_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;ksmtuned_t&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;nagios_checkdisk_plugin_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;nagios_services_plugin_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;abrt_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;clogd_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;gitd_t&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;kdump_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;tgtd_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;tuned_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;nagios_system_plugin_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;nut_upsmon_t&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;rgmanager_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;certmonger_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;sectoolm_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;chronyd_t&lt;/td&gt;&lt;br /&gt;&lt;td&gt;nut_upsdrvctl_t&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;vhostmd_t&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;A couple of other interesting statistics.&lt;br /&gt;&lt;br /&gt;Total number of file types.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;seinfo -afile_type -x | tail -n +2&amp;nbsp; | wc -l&lt;br /&gt;1630&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In order to get the number of allow rules, you need to use sesearch&lt;br /&gt;&lt;span&gt;&lt;br /&gt;sesearch --allow | wc -l&lt;br /&gt;225042&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Dontaudit Rules&lt;br /&gt;&lt;br /&gt;&lt;span&gt;sesearch --dontaudit | wc -l&lt;br /&gt;106021&lt;br /&gt;&lt;/span&gt;</content:encoded>
	<dc:date>2010-01-06T17:23:19+00:00</dc:date>
	<dc:creator>dwalsh@redhat.com</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-5240359826706545510.post-8578843398418873152">
	<title>Thomas Biege (Security): ODF Fuzzer</title>
	<link>http://thetoms-random-thoughts.blogspot.com/2010/01/odf-fuzzer.html</link>
	<content:encoded>&lt;p&gt;An ODF fuzzer is available at: &lt;a href=&quot;http://gitorious.org/odf-fuzzer&quot;&gt;http://gitorious.org/odf-fuzzer&lt;/a&gt;&lt;br /&gt;&lt;!-- BlogCounter Code START --&gt;&lt;/p&gt;&lt;p&gt;It was written by Ravipriya Thushara... feel free to use it and report bugs! :-)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.blogcounter.de/&quot; id=&quot;bclink&quot; title=&quot;kostenloser Counter fuer Weblogs&quot;&gt;&lt;span id=&quot;bccount&quot;&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.blogcounter.de/&quot;&gt;&lt;img alt=&quot;Weblog counter&quot; src=&quot;http://track.blogcounter.de/log.php?id=thetom_blog&quot; /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;br /&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5240359826706545510-8578843398418873152?l=thetoms-random-thoughts.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2010-01-06T00:47:04+00:00</dc:date>
	<dc:creator>Thomas (noreply@blogger.com)</dc:creator>
</item>
<item rdf:about="http://danwalsh.livejournal.com/33090.html">
	<title>Dan Walsh: Whats new with Sandbox in Fedora 12?</title>
	<link>http://danwalsh.livejournal.com/33090.html</link>
	<content:encoded>Every time I demonstrate sandbox to some one, they say, &amp;quot;That's great, but can it do X, Y and Z?&amp;quot;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;I&amp;nbsp;have taken those suggestions along with some great patches from Josh Cogliati, I&amp;nbsp;have updated the sandbox tool.&lt;br /&gt;&lt;br /&gt;New Features:&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&amp;gt; man sandbox&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;SANDBOX(8)&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;  User Commands&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; SANDBOX(8)&lt;br /&gt; &lt;br /&gt; &lt;/span&gt;&lt;span&gt;NAME&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sandbox - Run cmd under an SELinux sandbox&lt;br /&gt; &lt;br /&gt; SYNOPSIS&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sandbox&amp;nbsp; [-l level ] [[-M | -X]&amp;nbsp; -H homedir -T tmpdir ] [-I  includefile&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ] [[-i file ]...] [ -t type ] cmd&lt;br /&gt;...&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -M&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Create a Sandbox&amp;nbsp; with&amp;nbsp; temporary&amp;nbsp; files&amp;nbsp; for&amp;nbsp; $HOME&amp;nbsp; and&amp;nbsp; /tmp,&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; defaults to sandbox_t&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -H homedir&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; Use alternate homedir to mount.&amp;nbsp; Defaults to temporary.  Requires&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; -X or -M.&lt;br /&gt; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -T tmpdir&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; Use alternate tempdir to mount.&amp;nbsp; Defaults to temporary.  Requires&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; -X or -M.&lt;/span&gt;&lt;br /&gt; &lt;span&gt;...&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -l&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Specify the  MLS/MCS&amp;nbsp; Security&amp;nbsp; Level&amp;nbsp; to&amp;nbsp; run&amp;nbsp; the&amp;nbsp; sandbox&amp;nbsp; in.&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; Defaults to random.&lt;br /&gt; ...&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Several people asked for a permanent Homedir and tmpdir, rather then blowing it away when you exit.&amp;nbsp; We added -H and -T qualifiers to  allow you to specify a homedir and/or tmpdir that sandbox will use and leave in tact when it completes. &lt;br /&gt;&lt;br /&gt;For example you can use&lt;br /&gt;&lt;span&gt;&lt;br /&gt;mkdir /tmp/myweb ~/myweb&lt;br /&gt;sandbox -X -T /tmp/myweb -H ~/myweb -t sandbox_web_t firefox danwalsh.livejournal.com&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then you can download any content, setup bookmarks ... and the sandbox will not remove them when you are done.&amp;nbsp;&amp;nbsp; If you later run a command with the same sandbox homedir and tmpdir, the content will be there.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;span&gt;sandbox -X -T /tmp/myweb -H ~/myweb -t sandbox_web_t firefox  danwalsh.livejournal.com&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You could use similar sandbox commands for games, you could use sandbox to stop any rogue game from attacking your system, but be able to save your levels.&lt;br /&gt;&lt;br /&gt;Note: You would not be able to run two sanbox at the same time with the same homedir.&amp;nbsp; Unless ....&amp;nbsp; Read on.&lt;br /&gt;&lt;br /&gt;I met Stephen&amp;nbsp; Smoogen at the Fedora Summit and he asked if we could use sandbox with MLS&amp;nbsp;environments. &amp;nbsp;&lt;br /&gt;I added a -l option to sandbox which allows you to select the MCS/MLS&amp;nbsp;level you wish to run at.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;span&gt;sandbox -X -l TopSecret ooffice ~/MySecrets.odf&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Should work on an MLS&amp;nbsp;X Station.&amp;nbsp; This would run a X Session at TopSecret running openoffice on a copy of MySecrets.odf.&lt;br /&gt;&lt;br /&gt;If you combine this with selection of levels, you can start to do stuff like&lt;br /&gt;&lt;span&gt;&lt;br /&gt;mkdir ~/homedir_TopSecret  /tmp/tmp_TopSecret&lt;br /&gt;chcon -t TopSecret ~/homedir_TopSecret  /tmp/tmp_TopSecret&lt;br /&gt;sandbox -X -l TopSecret -H ~/homedir_TopSecret -I  /tmp/tmp_TopSecret xterm&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;And now you are running an xterm at TopSecret on permanent files that are TopSecret. &amp;nbsp; I&amp;nbsp;actually like this better then Xace, but that is for another blog.&lt;br /&gt;&lt;br /&gt;Note:&amp;nbsp; Fedora 12 has not been certified for LSPP, but you should be able to run MLS&amp;nbsp;policy on it.&lt;br /&gt;&lt;br /&gt;MLS&amp;nbsp;is not required, you can also specify an MCS&amp;nbsp;domain and the tool will still work,&amp;nbsp; This allows you to run two sandboxes at the same time with the same homedir/tmpdir. &lt;br /&gt;&lt;br /&gt;Finally we added the -M&amp;nbsp;which allow non -X sandboxes to run with temporary or permanent storage.&lt;br /&gt;&lt;br /&gt;Depending on the sandbox's you might have to add more privs to the SELinux types in order to get them to work. &amp;nbsp;For example, I&amp;nbsp;think we need a sandbox_games_t type.&amp;nbsp; Anyone want to take a stab.&lt;br /&gt;&lt;br /&gt;sandbox_x_domain_template(sandbox_games)&lt;br /&gt;&lt;br /&gt;Will get you started.&lt;br /&gt;&lt;br /&gt;Now if we could only get re-sizable Xephyr, or at least allow the user to specify the sandbox X window size.</content:encoded>
	<dc:date>2010-01-05T21:04:41+00:00</dc:date>
	<dc:creator>dwalsh@redhat.com</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-5240359826706545510.post-6930836094501982826">
	<title>Thomas Biege (Security): Command-Line Tool Fuzzer Beta 2</title>
	<link>http://thetoms-random-thoughts.blogspot.com/2010/01/command-line-tool-fuzzer-beta-2.html</link>
	<content:encoded>&lt;p&gt;Happy new year!&lt;/p&gt;&lt;p&gt;&lt;!-- BlogCounter Code START --&gt;On my train travel to Nuernberg I heavily rewrote fuzz-cmdline while testing it by fuzzing several setuid command-line tools on openSUSE 11.2.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.suse.de/%7Ethomas/projects/fuzz-cmdline/index.html&quot;&gt;fuzz-cmdline Beta 2 can be downloaded&lt;/a&gt; and tested now. Your comments are welcome.&lt;/p&gt;&lt;p&gt;What is new:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;removed Fuzzled framework and use own Fuzz.pm (this, unfortunately, disables the reload option of beta 1)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;more fuzzing data&lt;/li&gt;&lt;li&gt;combination of different fuzz types&lt;br /&gt;&lt;/li&gt;&lt;li&gt;better configuration&lt;/li&gt;&lt;li&gt;improved crash logging&lt;/li&gt;&lt;li&gt;...&lt;/li&gt;&lt;/ul&gt;TODO:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;'reload' option&lt;/li&gt;&lt;li&gt;also send data to stdin and local IPC constructs&lt;/li&gt;&lt;li&gt;better crash detection&lt;/li&gt;&lt;li&gt;more fine-tuning of fuzzing data&lt;/li&gt;&lt;li&gt;beep on crash (?)&lt;/li&gt;&lt;li&gt;re-enable gdb usage (?)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;...&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;http://www.blogcounter.de/&quot; id=&quot;bclink&quot; title=&quot;kostenloser Counter fuer Weblogs&quot;&gt;&lt;span id=&quot;bccount&quot;&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.blogcounter.de/&quot;&gt;&lt;img alt=&quot;Weblog counter&quot; src=&quot;http://track.blogcounter.de/log.php?id=thetom_blog&quot; /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;br /&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5240359826706545510-6930836094501982826?l=thetoms-random-thoughts.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2010-01-05T06:28:24+00:00</dc:date>
	<dc:creator>Thomas (noreply@blogger.com)</dc:creator>
</item>
<item rdf:about="http://etbe.coker.com.au/?p=1488">
	<title>Russell Coker (security): Play Machine Online Again</title>
	<link>http://etbe.coker.com.au/2009/12/15/play-machine-online-again/</link>
	<content:encoded>&lt;p&gt;I have returned from the US and my &lt;a href=&quot;http://www.coker.com.au/selinux/play.html&quot;&gt;SE Linux Play Machine [1]&lt;/a&gt; is online again.&lt;/p&gt;
&lt;p&gt;It was unfortunate that I forgot to pack one of my Play machine shirts, I ended up attending a meeting of the &lt;a href=&quot;http://www.sdforum.org/&quot;&gt;SDForum [2]&lt;/a&gt; on the topic of Cloud Security (it was a joint meeting of the Cloud Services and Security SIGs) and it would have been good to have been wearing a root password.&lt;/p&gt;
&lt;ul&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;li&gt;[2]&lt;a href=&quot;http://www.sdforum.org/&quot;&gt; http://www.sdforum.org/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded>
	<dc:date>2009-12-15T02:00:50+00:00</dc:date>
	<dc:creator>etbe</dc:creator>
</item>
<item rdf:about="http://blog.namei.org/?p=231">
	<title>James Morris: FOSS.IN/2009 – great conference, or greatest conference?</title>
	<link>http://blog.namei.org/2009/12/09/foss-in2009-great-conference-or-greatest-conference/</link>
	<content:encoded>&lt;p&gt;Last week, I attended &lt;a href=&quot;http://foss.in/&quot;&gt;FOSS.IN&lt;/a&gt;, which had its origins as a community event &lt;a href=&quot;http://linux-bangalore.org/blug/events/itcom99/&quot;&gt;ten years ago&lt;/a&gt;, and has evolved to become one of the world&amp;#8217;s leading Free and Open Source developer gatherings.   Even in the years I&amp;#8217;ve attended since 2005, it&amp;#8217;s been remarkable to see the progress of the event, from a somewhat traditional presentation-based conference with most attendees being end users, to a developer-oriented week where the main track talks are secondary, and where a lot of real work is done.&lt;/p&gt;
&lt;p&gt;This year, the program included Project of the Day sessions, where major FOSS projects held a mini-conferences.    I attended some of the &lt;a href=&quot;http://fedoraproject.org/wiki/Foss_in_2009&quot;&gt;Fedora PoTD sessions&lt;/a&gt;, including Joerg Simon&amp;#8217;s talk on creating a Fedora Security Spin.  An expo area was also assigned for major projects throughout the conference, where you&amp;#8217;d often find Fedora, KDE etc. folk hanging out &amp;#8212; hacking, chatting, and helping people who passed by (including myself, when my Macbook decided to have EFI issues with F12).&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;FOSS.IN/2009 by x_jamesmorris, on Flickr&quot; href=&quot;http://www.flickr.com/photos/x_jamesmorris/4165661072/&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2786/4165661072_2720c8b9b3.jpg&quot; alt=&quot;FOSS.IN/2009&quot; width=&quot;500&quot; height=&quot;375&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Fedora table at the FOSS expo area.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;There were also workshops (tutorials), and workout sessions, where groups of people would gather and work on a project for a period of hours or days (up to the full length of the conference).   Notable here were Harald Welte&amp;#8217;s GSM workout, and a well-attended hardware hacking workout, run by Milosch and Brita Meriac of &lt;a href=&quot;http://ccc.de/&quot;&gt;CCC&lt;/a&gt; and &lt;a href=&quot;http://www.blinkenlights.net/stereoscope&quot;&gt;Blinkenlights&lt;/a&gt; fame.  I think these ran all week.  There were also workouts for GNOME performance, the &lt;a href=&quot;http://www.sahana.lk/&quot;&gt;SAHANA&lt;/a&gt; disaster management system, &lt;a href=&quot;http://edu.kde.org/kstars/&quot;&gt;KStars&lt;/a&gt;, and web identity, to name a few that I can recall off-hand.  There really was an incredible amount of stuff going on.&lt;/p&gt;
&lt;p&gt;I participated in the Linux Kernel workout, which filled the final afternoon of the conference, as well as all the remaining room in the workout area.&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;FOSS.IN/2009 Kernel Workout Session by x_jamesmorris, on Flickr&quot; href=&quot;http://www.flickr.com/photos/x_jamesmorris/4160101260/&quot;&gt;&lt;img class=&quot;aligncenter&quot; src=&quot;http://farm3.static.flickr.com/2607/4160101260_d1fce4ea64.jpg&quot; alt=&quot;FOSS.IN/2009 Kernel Workout Session&quot; width=&quot;500&quot; height=&quot;375&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Linux Kernel Workout Session&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The kernel workout, which was organized by Kamalesh Babulal, included work on specific development tasks, and mentoring of new kernel developers.  It was a little chaotic at first, but ended up being a very productive session, and seemed to be over too soon.  I&amp;#8217;d suggest holding this over perhaps 2-3 entire days next year.&lt;/p&gt;
&lt;p&gt;I also gave a talk on SELinux Sandboxing internals, to demonstrate how to utilize various Linux OS features such as namespaces and Mandatory Accees Control (MAC) security, and also how useable and effective security can be implemented via high-level abstractions and encapsulation.  This was similar to the talk I gave at FOSS.MY (and will also give at &lt;a href=&quot;http://www.lca2010.org.nz/&quot;&gt;LCA&lt;/a&gt;), the slides of which may be found &lt;a href=&quot;http://namei.org/presentations/selinux-sandboxing-fossmy2009.pdf&quot;&gt;here&lt;/a&gt;.  I think it&amp;#8217;s very important for people to understand that there are no silver bullets for security, especially as we&amp;#8217;re working with an OS which was not designed with security primarily in mind.   At the lowest levels, security on a general purpose OS is inherently complicated, and like most other problems in computing, we solve this with layers of abstraction.  You don&amp;#8217;t need to understand the inner working of your CPU to play Scrabulous, for example.  I think we&amp;#8217;re gradually getting the message across, and I really hope to see more people engaged in helping to solve the always increasingly difficult problems in computer security.  We&amp;#8217;ve made a lot of progress overall, but still have a long way to go.&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;FOSS.IN/2009 by x_jamesmorris, on Flickr&quot; href=&quot;http://www.flickr.com/photos/x_jamesmorris/4165670492/&quot;&gt;&lt;img class=&quot;aligncenter&quot; src=&quot;http://farm3.static.flickr.com/2695/4165670492_62cd85f003.jpg&quot; alt=&quot;FOSS.IN/2009&quot; width=&quot;500&quot; height=&quot;375&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Preparing for the closing session&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;d like to give a special thanks to the FOSS.IN team, who are all volunteers, and who manage each year to organize a very complex event and provide truly great hospitality.  I missed the closing talk (and &lt;a href=&quot;http://www.flickr.com/photos/swatisani/4165913600/&quot;&gt;rock concert&lt;/a&gt;) to make a flight, although read that &lt;a href=&quot;http://atulchitnis.net/&quot;&gt;Atul Chitnis&lt;/a&gt; will be stepping back as leader of the event next year.   The conference as it is today reflects his personal vision for fostering core FOSS development activity in India, and it has been inspirational to witness the progress of this.  It will be interesting to see who steps up to lead the conference next, and where they will take it.&lt;/p&gt;</content:encoded>
	<dc:date>2009-12-09T10:19:03+00:00</dc:date>
	<dc:creator>jamesm</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/kaigai/20091204/1259939032">
	<title>KaiGai Kohei: データベース管理者ロールを考える</title>
	<link>http://d.hatena.ne.jp/kaigai/20091204/1259939032</link>
	<content:encoded>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;あまり有効に活用されているとは言い難いSELinuxのRBACだが、最近は地味にロールの種類が増えてきているようだ。&lt;/p&gt;
			&lt;p&gt;Reference Policy の policy/modules/roles 以下を見てみると、こんな感じで結構盛りだくさん。&lt;/p&gt;
			&lt;blockquote&gt;
			&lt;p&gt;$ ls *.te&lt;/p&gt;
			&lt;p&gt;[kaigai@ayu roles]$ ls *.te&lt;/p&gt;
			&lt;p&gt;auditadm.te&lt;/p&gt;
			&lt;p&gt;guest.te&lt;/p&gt;
			&lt;p&gt;logadm.te&lt;/p&gt;
			&lt;p&gt;secadm.te&lt;/p&gt;
			&lt;p&gt;staff.te&lt;/p&gt;
			&lt;p&gt;sysadm.te&lt;/p&gt;
			&lt;p&gt;unprivuser.te&lt;/p&gt;
			&lt;p&gt;webadm.te&lt;/p&gt;
			&lt;p&gt;xguest.te&lt;/p&gt;
			&lt;/blockquote&gt;
			&lt;p&gt;WebやAuditなど、特定用途に特化したROLEが定義されている。&lt;/p&gt;
			&lt;p&gt;つまり、この人たちはWeb関連のファイルや、Audit関連のファイルしか&lt;/p&gt;
			&lt;p&gt;アクセスできない。たとえ sudo を使って root の権限を取得したとしてもだ。&lt;/p&gt;
			&lt;p&gt;データベース管理に特化したROLEというのは定義されていなかった…というか、多分それは俺の仕事なので、dbadm というロールを追加するパッチを投稿した。&lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://oss.tresys.com/pipermail/refpolicy/2009-December/001804.html&quot; target=&quot;_blank&quot;&gt;http://oss.tresys.com/pipermail/refpolicy/2009-December/001804.html&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;今のところ、PostgreSQL関連のファイルとMySQL関連のファイル（動作未確認）を操作する事ができ、suやsudoを実行する事ができる。&lt;/p&gt;
			&lt;p&gt;加えて、SE-PostgreSQLの場合には CREATE TABLE などの DDL 文を実行して&lt;/p&gt;
			&lt;p&gt;スキーマ定義を行う事ができる。但し、SELECTやUPDATEなどのDML文の実行は、sepgsql_unconfined_admin条件変数によって制御する。&lt;/p&gt;
			&lt;p&gt;つまり、スキーマ定義はできるけども、ユーザデータの参照/更新は不可というデータベース管理者を作りたい。○racleのインスパイアという事だがｗ&lt;/p&gt;
			&lt;p&gt;更に、将来的には JLS のセッションで紹介したシステムイメージを実現するような形にしたい。&lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20091204233827&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20091204/20091204233827.png&quot; alt=&quot;f:id:kaigai:20091204233827p:image&quot; title=&quot;f:id:kaigai:20091204233827p:image&quot; class=&quot;hatena-fotolife&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;これは &quot;System-wide consistency in access control&quot; の最も先鋭的な例で、要は、データベース管理者であってもユーザデータを自由に参照/更新させたくないのであれば、そのアクセス手段に関係なく防がなくちゃいけないよね？というモデルである。&lt;/p&gt;
			&lt;p&gt;このポリシーの下では、データベース管理者はＳＱＬでのユーザデータへのアクセスは不可。ファイルの直接アクセスもSELinuxが防ぐ。&lt;/p&gt;
			&lt;p&gt;それだと、バックアップすら取得する事が不可能に思えるが、ポイントは、バックアップソフトを「起動する」事だけが可能。&lt;/p&gt;
			&lt;p&gt;起動されたバックアップソフトは、ドメイン遷移により、データベース全体をダンプするのに必要な権限を付与されて動作する。そして、管理者であっても中身を参照できないファイルに書き出しを行う。&lt;/p&gt;
			&lt;p&gt;したがって、確かにＤＢのバックアップは取得できるのだが、ＯＳとＤＢの連携により、管理者だからといって任意にそれを参照する事はできない。&lt;/p&gt;
			&lt;p&gt;こういう事を実現したいと思っている。&lt;/p&gt;
		&lt;/div&gt;</content:encoded>
	<dc:date>2009-12-04T15:03:52+00:00</dc:date>
	<dc:creator>kaigai</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-5240359826706545510.post-6554397293158893009">
	<title>Thomas Biege (Security): Windows Mobile Phones keep Data after cleaning the Storage</title>
	<link>http://thetoms-random-thoughts.blogspot.com/2009/12/windows-mobile-phones-keep-data-after.html</link>
	<content:encoded>&lt;p&gt;I want to sell my &lt;span&gt;HTC Touch Diamond&lt;/span&gt; on eBay, it contains a 4GB internal storage which I cleared and formated by using Settings-&gt;Clear Storage.&lt;/p&gt;&lt;p&gt;&lt;!-- BlogCounter Code START --&gt;In the past I never trusted this tool therefore I cleared the storage, copied a big random file to the phone and cleared it again. This time copying the random 4GB file tooks very long and I want to make sure I do not waste time with being too paranoid here.&lt;/p&gt;&lt;p&gt;Therefore I used my &lt;a href=&quot;http://www.suse.de/%7Ethomas/projects/jpeg-extract/index.html&quot;&gt;jpeg-extractor&lt;/a&gt; tool to extract everything that looks like a JPEG file from a raw disk/mem image of the internal storage. And after some minutes pictures popped up which are not on the original ROM but are images from podcasts and from the cam etc.&lt;/p&gt;&lt;p&gt;You, like I, already expect it, but this is the proof:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;Cleaning Windows Mobile Phones leaves personal Data on the Device.&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Take care what you sell on the Internet.&lt;/p&gt;&lt;p&gt;BTW, I always put a back-door on the phones I sell... just kidding. :-)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.blogcounter.de/&quot; id=&quot;bclink&quot; title=&quot;kostenloser Counter fuer Weblogs&quot;&gt;&lt;span id=&quot;bccount&quot;&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.blogcounter.de/&quot;&gt;&lt;img alt=&quot;Weblog counter&quot; src=&quot;http://track.blogcounter.de/log.php?id=thetom_blog&quot; /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;br /&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5240359826706545510-6554397293158893009?l=thetoms-random-thoughts.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2009-12-03T10:10:24+00:00</dc:date>
	<dc:creator>Thomas (noreply@blogger.com)</dc:creator>
</item>
<item rdf:about="http://etbe.coker.com.au/?p=1462">
	<title>Russell Coker (security): Play Machine Offline for 2 Weeks</title>
	<link>http://etbe.coker.com.au/2009/11/29/play-machine-offline-for-2-weeks/</link>
	<content:encoded>&lt;p&gt;I&amp;#8217;m about to leave for San Francisco, so my SE Linux Play Machine is turned off and will remain off until after I return.&lt;/p&gt;</content:encoded>
	<dc:date>2009-11-28T23:26:39+00:00</dc:date>
	<dc:creator>etbe</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/kaigai/20091120/1258716549">
	<title>KaiGai Kohei: [OSS/Linux] PostgreSQL Conference 2009 Japan</title>
	<link>http://d.hatena.ne.jp/kaigai/20091120/1258716549</link>
	<content:encoded>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;久々の更新ｗ&lt;/p&gt;
			&lt;p&gt;今日と明日は、PostgreSQL Conference 2009 Japan （主催： 日本PostgreSQLユーザ会） に参加 &lt;/p&gt;
			&lt;p&gt;私の発表は明日なので今日は聞くだけ。 &lt;/p&gt;
			&lt;p&gt;Bruce Momjian氏のPg_migratorの話題と、三三株式会社さんの名刺データ管理を提供する &lt;/p&gt;
			&lt;p&gt;SaaSソリューションのバックエンドにPostgreSQLを使っている事例が秀逸。 &lt;/p&gt;
			&lt;p&gt;Pg_migratorは、pg_dumpのコードの中にそれ対応のコードが何箇所か入っていたし、 &lt;/p&gt;
			&lt;p&gt;後々、調べておかないとと思っていただけに、意外と（予想通り？）単純な構造で &lt;/p&gt;
			&lt;p&gt;システムテーブルを置換するというモノで、これなら SE-PostgreSQL の将来的な &lt;/p&gt;
			&lt;p&gt;フル機能実装時でも大丈夫そう。 &lt;/p&gt;
			&lt;p&gt;名刺データのSaaSソリューションは、思いっきりシングルテナントで個人情報を &lt;/p&gt;
			&lt;p&gt;取り扱っているという、個人的には面白げな感じ。（セキュリティ的な意味で） &lt;/p&gt;
			&lt;p&gt;クエリによっては百行を越えるモノもあるとか言ってたが、本当にそれで大丈夫か、 &lt;/p&gt;
			&lt;p&gt;一々検証するのは本当に大変。 &lt;/p&gt;
			&lt;p&gt;そういう時に、プラットフォームでＭＡＣを提供できれば本当にありがたいと思う。 &lt;/p&gt;
			&lt;p&gt;レセプションでは、海外からのゲストを含む沢山の人が来ているので、重要人物には &lt;/p&gt;
			&lt;p&gt;重点的に接触。SE-PostgreSQLのレビューがなかなか進まないという問題があるので、 &lt;/p&gt;
			&lt;p&gt;直接話して協力を取り付ける。 &lt;/p&gt;
			&lt;p&gt;宴も盛り上がってきたところで、くじ引き大会。 &lt;/p&gt;
			&lt;p&gt;なんか、発表者全員のサイン入りＴシャツ（限定一枚）とかいうありがたい物をもらってしまった。&lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20091120202820&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20091120/20091120202820.jpg&quot; alt=&quot;f:id:kaigai:20091120202820j:image&quot; title=&quot;f:id:kaigai:20091120202820j:image&quot; class=&quot;hatena-fotolife&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;もちろん、自分も発表者なので、自分のサインも入っているｗ &lt;/p&gt;
			&lt;p&gt;私の発表は、明日の 14:20〜 &lt;/p&gt;
			&lt;p&gt;『LAPP/SELinux 〜 SE-PostgreSQL を用いたセキュア Web アプリケーション基盤〜』 &lt;/p&gt;
			&lt;p&gt;基本的に JLS の内容を踏襲した発表ですが、日本語で聞けるというのは大きいかもｗ &lt;/p&gt;
			&lt;p&gt;なお、下記のURLで、ustream中継されるとの事 ＞ 主に実家の親の人向け&lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://www.ustream.tv/channel/pgcon09j-a&quot; target=&quot;_blank&quot;&gt;http://www.ustream.tv/channel/pgcon09j-a&lt;/a&gt;&lt;/p&gt;
		&lt;/div&gt;</content:encoded>
	<dc:date>2009-11-20T11:29:09+00:00</dc:date>
	<dc:creator>kaigai</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-5240359826706545510.post-3614157649569909828">
	<title>Thomas Biege (Security): VirtualBox OSE: Guest can trigger Denial-of-Service at Host System</title>
	<link>http://thetoms-random-thoughts.blogspot.com/2009/11/virtualbox-ose-guest-can-trigger-denial.html</link>
	<content:encoded>&lt;p&gt;I am surprised - positively of course :) : Sun released an update for a denial-of-service problem in virtualbox-ose:&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://sunsolve.sun.com/search/document.do?assetkey=1-66-271149-1&quot;&gt;http://sunsolve.sun.com/search/document.do?assetkey=1-66-271149-1&lt;/a&gt;&lt;/p&gt;&lt;pre class=&quot;bz_comment_text&quot; id=&quot;comment_text_6&quot;&gt;CVE-2009-3940&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&lt;!-- BlogCounter Code START --&gt;&lt;/p&gt;&lt;p&gt;Details:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;On 10/08/09 13:44, Thomas Biege wrote:&lt;br /&gt;&gt; Hi,&lt;br /&gt;&gt; just a question: Is this a real bug?&lt;br /&gt;&gt;&lt;br /&gt;&gt; VirtualBox-3.0.6_OSE/src/VBox/Additions/linux/module&gt; grep -n -E &quot;XXX.*denial.*&quot;  *&lt;br /&gt;&gt;&lt;br /&gt;&gt; vboxmod.c:1032: rc = VbglGRAlloc(&amp;amp;reqFull, cbRequestSize, reqHeader.requestType); // XXX tom: denial of service! better use cbVanillaRequestSize?&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.blogcounter.de/&quot; id=&quot;bclink&quot; title=&quot;kostenloser Counter fuer Weblogs&quot;&gt;&lt;span id=&quot;bccount&quot;&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.blogcounter.de/&quot;&gt;&lt;img alt=&quot;Weblog counter&quot; src=&quot;http://track.blogcounter.de/log.php?id=thetom_blog&quot; /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;br /&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5240359826706545510-3614157649569909828?l=thetoms-random-thoughts.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2009-11-20T02:57:30+00:00</dc:date>
	<dc:creator>Thomas (noreply@blogger.com)</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-5240359826706545510.post-3484329159219895907">
	<title>Thomas Biege (Security): X-MAS Wish List for the SuSE Security-Team</title>
	<link>http://thetoms-random-thoughts.blogspot.com/2009/11/x-mas-wish-list-for-security-team.html</link>
	<content:encoded>&lt;a href=&quot;http://3.bp.blogspot.com/_YYeA-lwcHBA/SwWFK1GQMPI/AAAAAAAAAOk/EqhfjWtkbjQ/s1600/dscn1241.jpg&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_YYeA-lwcHBA/SwWFK1GQMPI/AAAAAAAAAOk/EqhfjWtkbjQ/s320/dscn1241.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5405873348826640626&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;Good Evening,&lt;br /&gt;&lt;/p&gt;&lt;p&gt;you may not have recognized it yet because of the bland climate (at least here in Germany) but X-MAS is approaching.&lt;/p&gt;&lt;p&gt;&lt;!-- BlogCounter Code START --&gt;It is the time of beginning, looking ahead, family and wishes.&lt;/p&gt;&lt;p&gt;I am nipping hot tea from a big cup and want to hear about your wishes... the wishes from our openSUSE community, our SLES customers, the SUSE family if you like.&lt;/p&gt;&lt;p&gt;What should the SuSE Security-Team improve for you and your business in the future?&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.suse.de/%7Ethomas/contact/index.html&quot;&gt;Write me a mail&lt;/a&gt; or leave me a comment!&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.blogcounter.de/&quot; id=&quot;bclink&quot; title=&quot;kostenloser Counter fuer Weblogs&quot;&gt;&lt;span id=&quot;bccount&quot;&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.blogcounter.de/&quot;&gt;&lt;img alt=&quot;Weblog counter&quot; src=&quot;http://track.blogcounter.de/log.php?id=thetom_blog&quot; /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;br /&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5240359826706545510-3484329159219895907?l=thetoms-random-thoughts.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2009-11-19T23:27:37+00:00</dc:date>
	<dc:creator>Thomas (noreply@blogger.com)</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-5240359826706545510.post-7811549643051986260">
	<title>Thomas Biege (Security): Common Vulnerability Scoring System, CVSS</title>
	<link>http://thetoms-random-thoughts.blogspot.com/2009/11/common-vulnerability-scoring-system.html</link>
	<content:encoded>&lt;p&gt;Dear Readers,&lt;/p&gt;&lt;p&gt;&lt;!-- BlogCounter Code START --&gt;you already may have recognized that we start using the CVSS v2 base score in our patch descriptions, security advisories and summary reports. If you want to know the details of CVSS, have a look at the &lt;a href=&quot;http://www.first.org/cvss/cvss-guide.html&quot;&gt;FIRST CVSS Guide&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;We should go away from our old and incomplete &quot;Security Metric&quot; which is a stupid^Wsimple metric I &quot;invented&quot; some years ago just to fill the gap.&lt;/p&gt;&lt;p&gt;CVSS is an industry standard which is used by other major vendors too. This allows our customers to rank the security updates we deliver and compare them to updates from other vendors that also use CVSS etc.&lt;/p&gt;&lt;p&gt;To not cause any additional work for us we use the base score as calculated by the people from the &lt;a href=&quot;http://web.nvd.nist.gov/view/vuln/search?execution=e2s1&quot;&gt;National Vulnerability Database&lt;/a&gt; (NVD) and no additional scoring for our system configuration (which even could change from version to version, therefore each SLES/openSUSE version would need an own CVSS score).&lt;/p&gt;&lt;p&gt;HTH&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.blogcounter.de/&quot; id=&quot;bclink&quot; title=&quot;kostenloser Counter fuer Weblogs&quot;&gt;&lt;span id=&quot;bccount&quot;&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.blogcounter.de/&quot;&gt;&lt;img alt=&quot;Weblog counter&quot; src=&quot;http://track.blogcounter.de/log.php?id=thetom_blog&quot; /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;br /&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5240359826706545510-7811549643051986260?l=thetoms-random-thoughts.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2009-11-19T09:31:47+00:00</dc:date>
	<dc:creator>Thomas (noreply@blogger.com)</dc:creator>
</item>
<item rdf:about="http://etbe.coker.com.au/?p=1419">
	<title>Russell Coker (security): Debian SSH and SE Linux</title>
	<link>http://etbe.coker.com.au/2009/11/17/debian-ssh-se-linux/</link>
	<content:encoded>&lt;p&gt;I have just filed Debian bug report &lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=556644&quot;&gt;#556644&lt;/a&gt; against the version of openssh-server in Debian/Unstable (Squeeze).  It has a patch that moves the code to set the SE Linux context for the child process before calling chroot.  Without this a chroot environment on a SE Linux system can only work correctly if &lt;b&gt;/proc&lt;/b&gt; and &lt;b&gt;/selinux&lt;/b&gt; are mounted in the chroot environment.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;deb http://www.coker.com.au squeeze selinux&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve created the above APT repository for Squeeze which has a package that fixes this bug.  I will continue to use that repository for a variety of SE Linux patches to Squeeze packages, at the moment it&amp;#8217;s packages from Unstable but I will also modify released packages as needed.&lt;/p&gt;
&lt;p&gt;The bug report &lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=498684&quot;&gt;#498684&lt;/a&gt; has a fix for a trivial uninitialised variable bug. The fix is also in my build.&lt;/p&gt;
&lt;p&gt;Also I filed the bug report &lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=556648&quot;&gt;#556648&lt;/a&gt; about the internal version of sftp being&lt;br /&gt;
incompatible with SE Linux (it doesn&amp;#8217;t involve an exec so the context doesn&amp;#8217;t change).  The correct thing to do is for sshd to refuse to run an internal sftpd at least if the system is in enforcing mode, and probably even in permissive mode.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;deb http://www.coker.com.au lenny selinux&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Update: I&amp;#8217;ve also backported my sshd changes to Lenny at the above APT repository.&lt;/p&gt;</content:encoded>
	<dc:date>2009-11-17T12:38:45+00:00</dc:date>
	<dc:creator>etbe</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-5240359826706545510.post-7009199857974381878">
	<title>Thomas Biege (Security): HDD encryption vs. secure deleting</title>
	<link>http://thetoms-random-thoughts.blogspot.com/2009/11/hdd-encryption-vs-secure-deleting.html</link>
	<content:encoded>&lt;p&gt;There are two ways to scramble private data on your hard-drive.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;!-- BlogCounter Code START --&gt;encrypt the device&lt;/li&gt;&lt;li&gt;clean sensitive files securely&lt;/li&gt;&lt;/ol&gt;In the past I used &lt;span&gt;secure delete&lt;/span&gt; to remove browser caches+history, tmp files, image thumbnails for preview etc. while shutting down my system and periodically using &lt;span&gt;cron&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;The pros of this method are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;better recovery of data in case of hardware failure&lt;/li&gt;&lt;li&gt;easy automatic backup&lt;/li&gt;&lt;li&gt;remote access to private data possible&lt;br /&gt;&lt;/li&gt;&lt;li&gt;no performance impact&lt;/li&gt;&lt;li&gt;no crypto algorithm dependency&lt;/li&gt;&lt;li&gt;...&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;But because the tool overwrites the same file several times with random data without caching and without delays the HDDs crash very early in their life. After three completely destroyed HDDs I decided to switch to HDD encryption. ;-)&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;http://www.blogcounter.de/&quot; id=&quot;bclink&quot; title=&quot;kostenloser Counter fuer Weblogs&quot;&gt;&lt;span id=&quot;bccount&quot;&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.blogcounter.de/&quot;&gt;&lt;img alt=&quot;Weblog counter&quot; src=&quot;http://track.blogcounter.de/log.php?id=thetom_blog&quot; /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;br /&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5240359826706545510-7009199857974381878?l=thetoms-random-thoughts.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2009-11-12T08:03:38+00:00</dc:date>
	<dc:creator>Thomas (noreply@blogger.com)</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-5240359826706545510.post-3059150468917232562">
	<title>Thomas Biege (Security): Command-Line Tool Fuzzer</title>
	<link>http://thetoms-random-thoughts.blogspot.com/2009/11/command-line-tool-fuzzer.html</link>
	<content:encoded>&lt;p&gt;Yesterday Marcus reminded me that I have written a &lt;a href=&quot;http://www.suse.de/%7Ethomas/projects/fuzz-cmdline/index.html&quot;&gt;Fuzzer for command-line tools&lt;/a&gt;... honestly I forgot this little PoC tool and it slept in my CVS repository for nearly 1.5 years. Until now, I put it &lt;a href=&quot;http://www.suse.de/%7Ethomas/projects/fuzz-cmdline/index.html&quot;&gt;online&lt;/a&gt;. Beta-testers are welcome.&lt;br /&gt;&lt;!-- BlogCounter Code START --&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.blogcounter.de/&quot; id=&quot;bclink&quot; title=&quot;kostenloser Counter fuer Weblogs&quot;&gt;&lt;span id=&quot;bccount&quot;&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.blogcounter.de/&quot;&gt;&lt;img alt=&quot;Weblog counter&quot; src=&quot;http://track.blogcounter.de/log.php?id=thetom_blog&quot; /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;br /&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5240359826706545510-3059150468917232562?l=thetoms-random-thoughts.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2009-11-10T23:52:42+00:00</dc:date>
	<dc:creator>Thomas (noreply@blogger.com)</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-15117118.post-3646008750328936619">
	<title>Jeronimo Zucco (selinux): Secure Virtualization with SELinux - sVirt</title>
	<link>http://jczucco.blogspot.com/2009/10/secure-virtualization-with-selinux.html</link>
	<content:encoded>Apresentação feita por &lt;a href=&quot;http://danwalsh.livejournal.com&quot;&gt;Dan Walsh&lt;/a&gt; no &lt;a href=&quot;http://www.redhat.com/promo/summit/2009/highlights/&quot;&gt;Red Hat Chicago Summit 2009&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;img border=&quot;0&quot; width=&quot;0&quot; height=&quot;0&quot; src=&quot;http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bT*xJmx*PTEyNTcwMTY4MjM3NDQmcHQ9MTI1NzAxNjkzMDQxMCZwPTE5ODY4MSZkPWozbDBneDdqZGsmZz*yJm89YWZiNzJkM2Y*Y2U1NGVjY2E1Yjc*MzhhODI1ZWMzODkmb2Y9MA==.gif&quot; /&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;a href=&quot;http://corp.kaltura.com&quot;&gt;video platform&lt;/a&gt;&lt;br /&gt;  &lt;a href=&quot;http://corp.kaltura.com/technology/video_management&quot;&gt;video management&lt;/a&gt;&lt;br /&gt;  &lt;a href=&quot;http://corp.kaltura.com/solutions/overview&quot;&gt;video solutions&lt;/a&gt;&lt;br /&gt;  &lt;a href=&quot;http://corp.kaltura.com/technology/video_player&quot;&gt;free video player&lt;/a&gt;&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/15117118-3646008750328936619?l=jczucco.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2009-10-31T18:28:50+00:00</dc:date>
	<dc:creator>Jeronimo Zucco (jczucco@gmail.com)</dc:creator>
</item>
<item rdf:about="http://etbe.coker.com.au/?p=1399">
	<title>Russell Coker (security): New Play Machine</title>
	<link>http://etbe.coker.com.au/2009/10/28/new-play-machine/</link>
	<content:encoded>&lt;p&gt;&lt;b&gt;Update:&lt;br /&gt;
Thanks to Sven Joachim and Andrew Pollock for informing me about /etc/init.d/mountoverflowtmp which exists to mount a tmpfs named overflow if /tmp is full at boot time.  It appears that the system was not compromised.  But regular reinstalls are always a good thing.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;On the 24th of August this year I noticed the following on my &lt;a href=&quot;http://www.coker.com.au/selinux/play.html&quot;&gt;SE Linux Play Machine [1]&lt;/a&gt;:&lt;br /&gt;
&lt;b&gt;root@play:/root# df&lt;br /&gt;
Filesystem&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  1K-blocks&amp;nbsp; &amp;nbsp; &amp;nbsp; Used Available Use% Mounted on&lt;br /&gt;
/dev/hda&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  1032088&amp;nbsp; &amp;nbsp; 938648&amp;nbsp; &amp;nbsp;  41012&amp;nbsp; 96% /&lt;br /&gt;
tmpfs&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 51296&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  0&amp;nbsp; &amp;nbsp;  51296&amp;nbsp;  0% /lib/init/rw&lt;br /&gt;
udev&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  10240&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 24&amp;nbsp; &amp;nbsp;  10216&amp;nbsp;  1% /dev&lt;br /&gt;
tmpfs&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 51296&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  4&amp;nbsp; &amp;nbsp;  51292&amp;nbsp;  1% /dev/shm&lt;br /&gt;
/dev/hdb&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 516040&amp;nbsp; &amp;nbsp;  17128&amp;nbsp; &amp;nbsp; 472700&amp;nbsp;  4% /root&lt;br /&gt;
/dev/hdc&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1024&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  8&amp;nbsp; &amp;nbsp; &amp;nbsp; 1016&amp;nbsp;  1% /tmp&lt;br /&gt;
overflow&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1024&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  8&amp;nbsp; &amp;nbsp; &amp;nbsp; 1016&amp;nbsp;  1% /tmp&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;The kernel message log had the following:&lt;br /&gt;
&lt;b&gt;[210511.546152] su[769]: segfault at 0 ip b7e324e3 sp bfa4b064&lt;br /&gt;
error 4 in libc-2.7.so[b7dbb000+158000]&lt;br /&gt;
[210561.527839] su[778]: segfault at 0 ip b7eb14e3 sp bfec84d4 error 4 in&lt;br /&gt;
libc-2.7.so[b7e3a000+158000]&lt;br /&gt;
[210585.270372] su[784]: segfault at 0 ip b7e044e3 sp bff1b534 error 4 in&lt;br /&gt;
libc-2.7.so[b7d8d000+158000]&lt;br /&gt;
[210595.855278] su[789]: segfault at 0 ip b7e014e3 sp bfd18324 error 4 in&lt;br /&gt;
libc-2.7.so[b7d8a000+158000]&lt;br /&gt;
[210639.496847] su[796]: segfault at 0 ip b7e874e3 sp bf99e7b4 error 4 in&lt;br /&gt;
libc-2.7.so[b7e10000+158000]&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Naturally this doesn&amp;#8217;t look good, the filesystem known as &amp;#8220;&lt;b&gt;overflow&lt;/b&gt;&amp;#8221; indicates a real problem.  It appears that the machine was compromised.  So I&amp;#8217;ve made archival copies of all the data and reinstalled it.&lt;/p&gt;
&lt;p&gt;As the weather here is becoming warmer I&amp;#8217;ve used new hardware for my new Play Machine.  The old system was a 1.8GHz Celeron with 1280M of RAM and two IDE disks in a RAID-1 array.  The new system is a P3-800 with 256M of RAM and a single IDE disk.  It&amp;#8217;s a Compaq Evo which runs from a laptop PSU and is particularly energy efficient and quiet.  The down-side is that there is no space for a second disk and only one RAM socket so I&amp;#8217;m limited to 256M &amp;#8211; that&amp;#8217;s just enough to run a Xen server with a single DomU.&lt;/p&gt;
&lt;p&gt;I put the new play machine online on Friday the 23rd of October after almost two months of down-time.&lt;/p&gt;
&lt;ul&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;/ul&gt;</content:encoded>
	<dc:date>2009-10-28T10:41:40+00:00</dc:date>
	<dc:creator>etbe</dc:creator>
</item>
<item rdf:about="http://securityblog.org/brindle/?p=55">
	<title>Joshua Brindle: The SELinux Documentation Project</title>
	<link>http://securityblog.org/brindle/2009/10/24/the-selinux-documentation-project/</link>
	<content:encoded>&lt;p&gt;One of the biggest complaints people have about SELinux is the lack of documentation. Indeed we had a nice group discussion with some users at Linux Plumbers Conference who once again brought this to our attention.&lt;/p&gt;
&lt;p&gt;The reason is simple. Most of us working on SELinux are developers. We don&amp;#8217;t like writing documentation. We&amp;#8217;d rather write blog entries explaining some aspect of SELinux instead of real documents. While this works when your primary audience are knowledgeable enough to find the blog entries, figure out how to apply the concepts to their problems and connect all the dots between here and there it isn&amp;#8217;t useful for new users or users trying to solve a simple problem.&lt;/p&gt;
&lt;p&gt;It is unfortunate, and some people over the years have helped us out, such as with the &lt;a title=&quot;Fedora SELinux User Guide&quot; href=&quot;http://docs.fedoraproject.org/selinux-user-guide/f10/en-US/&quot; target=&quot;_blank&quot;&gt;Fedora SELinux User Guide&lt;/a&gt;, but unfortunately we&amp;#8217;ve missed some users, particularly new ones, and we haven&amp;#8217;t aggregated these documents onto a distribution agnostic place with good organization.&lt;/p&gt;
&lt;p&gt;With that in mind I volunteered to start the SELinux Documentation Project during LPC. Basically the goal is to make user-problem focused documentation available at the official &lt;a title=&quot;selinux project site&quot; href=&quot;http://selinuxproject.org&quot; target=&quot;_blank&quot;&gt;SELinux project site&lt;/a&gt;. This will be a huge effort, writing original documentation, organizing it into consumable chunks and mining years of mail list posts, blog entries and other resources to deliver documents to users.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve already started putting up several pieces. One of the things I want to really focus on are SELinux &amp;#8216;recipes&amp;#8217;, short, to-the-point blurbs telling users how to do the things they want to do, like&lt;a href=&quot;http://selinuxproject.org/page/ApacheRecipes#Allow_Apache_to_connect_to_your_database_server&quot; target=&quot;_blank&quot;&gt; allowing apache to connect to their database server&lt;/a&gt;, or  how to &lt;a title=&quot;Adding a rule with audit2allow&quot; href=&quot;http://selinuxproject.org/page/Audit2allowRecipe&quot; target=&quot;_blank&quot;&gt;easily add a rule to their policy&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We also need a place where potential developers can go to &lt;a title=&quot;developer resources&quot; href=&quot;http://selinuxproject.org/page/Developers&quot; target=&quot;_blank&quot;&gt;easily get resources on developing SELinux&lt;/a&gt; so that our community can expand. Further a place where vendors can go to learn about what SELinux can do for their solution and how to get started using SELinux is a must.&lt;/p&gt;
&lt;p&gt;All that said, I can&amp;#8217;t do this alone. I&amp;#8217;ve started several pages and will continue doing so but if you are one of those strange souls with a propensity to document things, or you have recently gone through the pains of finding info in obscure places that you couldn&amp;#8217;t find elsewhere we could really use your help in expanding, organizing and centralizing documentation on &lt;a title=&quot;selinuxproject&quot; href=&quot;http://selinuxproject.org&quot; target=&quot;_blank&quot;&gt;selinuxproject.org&lt;/a&gt;. If you want to help you can email me at method at manicmethod.com or James Morris at jmorris at namei.org to get an account and start contributing.&lt;/p&gt;</content:encoded>
	<dc:date>2009-10-24T19:58:16+00:00</dc:date>
	<dc:creator>Joshua Brindle</dc:creator>
</item>
<item rdf:about="http://securityblog.org/brindle/?p=51">
	<title>Joshua Brindle: SELinux and RPM</title>
	<link>http://securityblog.org/brindle/2009/10/24/selinux-and-rpm/</link>
	<content:encoded>&lt;div id=&quot;_mcePaste&quot;&gt;Wow, I just noticed it&amp;#8217;s been a year since I&amp;#8217;ve blogged, that is not good.&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;That doesn&amp;#8217;t mean nothing has been going on though, we&amp;#8217;ve been quite busy around here.&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;First I&amp;#8217;d like to talk about a couple projects we are working on. The first is better integration of SELinux policies into RPM. We&amp;#8217;ve posted a patch set to the rpm-maint [1] mailing list and are awaiting feedback. To try out the patches yourself you can read the instructions on the project page at selinuxproject.org [2].&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;The current patch set basically makes RPM actually do stuff with the %policy tag, which it never did before. We&amp;#8217;ve also changed the %policy tag to be more flexible in allowing more information about the policies to be handled by RPM, such as policy modules that are being obsoleted. You can read the full description of the patches on the mail list postings [3].&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;This is only the first step in a long term project we have to make RPM more robust and reduce the amount of trust necessary in the package manager. We have several ideas of how to proceed but we haven&amp;#8217;t proven that they&amp;#8217;ll work yet (or that the RPM community will be interested in them). Suffice to say we basically want to break RPM into smaller pieces, each of which has a dedicated job to do, which can be confined by SELinux. Each step would require less trust that the packages aren&amp;#8217;t malicious and that the SELinux policy is correct and will enforce the security goals set forth by the packager. Once this is done we want to try running core parts of RPM in different security domains depending on different attributes about the package and who is running it, such as what certificates were used to sign the package, where the package came from, who is running RPM and so on.&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;The culmination of this effort would be to be able to download a 3rd party package and install it knowing that it will only be able to add its files to /opt, and not modify anything in /usr, /lib, /etc, etc. Further the scriptlets should be confined so that they can&amp;#8217;t add users to the system or any other security critical activities. This will be a truly exciting capability for Linux systems moving forward.&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;I delivered a presentation on this project at Linux Plumbers Conference last month in Portland. The slides [4] and video recording [5] are published on the web for those who are interested.&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;I&amp;#8217;ll talk about another project we are working on in my next blog post, which should be coming pretty soon.&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;[1] https://lists.rpm.org/mailman/listinfo/rpm-maint&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;[2] http://selinuxproject.org/page/RPM&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;[3] http://lists.rpm.org/pipermail/rpm-maint/2009-October/002561.html&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;[4] http://linuxplumbersconf.org/2009/slides/brindle-selinux-distribution-lpc-slides.pdf&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;[5] http://video.linuxfoundation.org/video/1569&lt;/div&gt;
&lt;p&gt;Wow, I just noticed it&amp;#8217;s been a year since I&amp;#8217;ve blogged, that is not good.&lt;/p&gt;
&lt;p&gt;That doesn&amp;#8217;t mean nothing has been going on though, we&amp;#8217;ve been quite busy around here.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;d like to talk about a couple projects we are working on. The first is better integration of SELinux policies into RPM. We&amp;#8217;ve posted a patch set to the &lt;a title=&quot;rpm-maint mailing list&quot; href=&quot;https://lists.rpm.org/mailman/listinfo/rpm-maint&quot; target=&quot;_blank&quot;&gt;rpm-maint&lt;/a&gt; mailing list and are awaiting feedback. To try out the patches yourself you can read the instructions on the &lt;a title=&quot;RPM Project page&quot; href=&quot;http://selinuxproject.org/page/RPM&quot; target=&quot;_blank&quot;&gt;project page at selinuxproject.org&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The current patch set basically makes RPM actually do stuff with the %policy tag, which it never did before. We&amp;#8217;ve also changed the %policy tag to be more flexible in allowing more information about the policies to be handled by RPM, such as policy modules that are being obsoleted. You can read the full description of the patches on the&lt;a href=&quot;http://lists.rpm.org/pipermail/rpm-maint/2009-October/002561.html&quot; target=&quot;_blank&quot;&gt; mail list postings&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This is only the first step in a long term project we have to make RPM more robust and reduce the amount of trust necessary in the package manager. We have several ideas of how to proceed but we haven&amp;#8217;t proven that they&amp;#8217;ll work yet (or that the RPM community will be interested in them). Suffice to say we basically want to break RPM into smaller pieces, each of which has a dedicated job to do, which can be confined by SELinux. Each step would require less trust that the packages aren&amp;#8217;t malicious and that the SELinux policy is correct and will enforce the security goals set forth by the packager. Once this is done we want to try running core parts of RPM in different security domains depending on different attributes about the package and who is running it, such as what certificates were used to sign the package, where the package came from, who is running RPM and so on.&lt;/p&gt;
&lt;p&gt;The culmination of this effort would be to be able to download a 3rd party package and install it knowing that it will only be able to add its files to /opt, and not modify anything in /usr, /lib, /etc, etc. Further the scriptlets should be confined so that they can&amp;#8217;t add users to the system or any other security critical activities. This will be a truly exciting capability for Linux systems moving forward.&lt;/p&gt;
&lt;p&gt;I delivered a presentation on this project at Linux Plumbers Conference last month in Portland. The &lt;a href=&quot;http://linuxplumbersconf.org/2009/slides/brindle-selinux-distribution-lpc-slides.pdf&quot; target=&quot;_blank&quot;&gt;slides&lt;/a&gt; and &lt;a title=&quot;video&quot; href=&quot;http://video.linuxfoundation.org/video/1569&quot; target=&quot;_blank&quot;&gt;video recording&lt;/a&gt; are published on the web for those who are interested.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ll talk about another project we are working on in my next blog post, which should be coming pretty soon.&lt;/p&gt;</content:encoded>
	<dc:date>2009-10-24T19:39:12+00:00</dc:date>
	<dc:creator>Joshua Brindle</dc:creator>
</item>
<item rdf:about="http://blog.namei.org/?p=227">
	<title>James Morris: SELinux Sandbox slides available, et cetera</title>
	<link>http://blog.namei.org/2009/10/24/selinux-sandbox-slides-available-et-cetera/</link>
	<content:encoded>&lt;p&gt;I&amp;#8217;ve just given a presentation on SELinux Sandboxing at &lt;a href=&quot;http://foss.my/2009/&quot;&gt;FOSS.my 2009&lt;/a&gt; in Kuala Lumpur &amp;#8212; the slides are available for download as a PDF file &lt;a href=&quot;http://selinuxproject.org/~jmorris/selinux-sandboxing-fossmy2009.pdf&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The presentation was an overview of sandboxing as a concept; how we can enhance it with MAC security; and how it&amp;#8217;s being implemented in Fedora 12 with SELinux.  I also discussed the need for a standard security API for Linux, so that developers will be more inclined to incorporate enhanced security support in their software, and to generally increase security adoption via standardization.  We&amp;#8217;ve seen this work well thus far with sVirt, so it should be feasible &lt;/p&gt;
&lt;p&gt;The SELinux Sandbox stuff will be familiar if you&amp;#8217;ve seen Dan Walsh&amp;#8217;s recent talks on the topic, although in this case, I included his cell phone number in the presentation if people have detailed questions, seeing as he&amp;#8217;s not here in person.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s been yet another busy conference trip, with KS and JLS last week &amp;#8212; I attended some of the JLS security talks and a Japanese Secure OS user group dinner.  It was a very interesting and productive time.&lt;/p&gt;
&lt;p&gt;I dented this a few days ago, but got no answer (and also dragged DaveM to see it &amp;#038; he couldn&amp;#8217;t figure it out, either): does anyone know what this mystery object is?&lt;br /&gt;
&lt;center&gt;&lt;a href=&quot;http://www.flickr.com/photos/x_jamesmorris/4028342077/&quot; title=&quot;Mystery object by x_jamesmorris, on Flickr&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2779/4028342077_572882990e_m.jpg&quot; width=&quot;180&quot; height=&quot;240&quot; alt=&quot;Mystery object&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;
It&amp;#8217;s a spinning, blue and white striped cone near the ceiling of an underground Tokyo subway entrance.&lt;/p&gt;</content:encoded>
	<dc:date>2009-10-24T08:00:13+00:00</dc:date>
	<dc:creator>jamesm</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-5240359826706545510.post-1111704768328209545">
	<title>Thomas Biege (Security): Local root via VBoxNetAdpCtl</title>
	<link>http://thetoms-random-thoughts.blogspot.com/2009/10/local-root-via-vboxnetadpctl.html</link>
	<content:encoded>&lt;p&gt;Our maintainer requested to set the sbit for &lt;span&gt;VBoxNetAdpCtl&lt;/span&gt; but a quick code review revealed that the code is vulnerable to shell command injection via &lt;span&gt;popen(3) &lt;/span&gt;and a possible buffer overflow. Both bugs were fixed &lt;a href=&quot;http://sunsolve.sun.com/search/document.do?assetkey=1-66-268188-1&quot;&gt;upstream by Sun&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Unfortunately there were no CVE-IDs assigned to this issues yet.&lt;/p&gt;&lt;p&gt;And to avoid confusions: We do not ship this tool setuid. :-)&lt;/p&gt;&lt;p&gt;Update:&lt;/p&gt;&lt;pre class=&quot;bz_comment_text&quot; id=&quot;comment_text_16&quot;&gt;CVE-2009-3692 for popen()&lt;br /&gt;CVE-2009-3704 for strncpy().&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href=&quot;http://www.blogcounter.de/&quot; id=&quot;bclink&quot; title=&quot;kostenloser Counter fuer Weblogs&quot;&gt;&lt;span id=&quot;bccount&quot;&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.blogcounter.de/&quot;&gt;&lt;img alt=&quot;Weblog counter&quot; src=&quot;http://track.blogcounter.de/log.php?id=thetom_blog&quot; /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;br /&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5240359826706545510-1111704768328209545?l=thetoms-random-thoughts.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2009-10-22T08:31:40+00:00</dc:date>
	<dc:creator>Thomas (noreply@blogger.com)</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-5024703430482213163.post-1254384423721238855">
	<title>Dominick Grift: Git daemon, SELinux and Fedora 12 Beta.</title>
	<link>http://selinux-mac.blogspot.com/2009/10/git-daemon-selinux-and-fedora-12-beta.html</link>
	<content:encoded>&lt;span&gt;&lt;span&gt;Recently i decided to redo my Git daemon domain and reinstall a Git daemon server.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;This article will explain the issues i had to consider.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;SELinux can be used to confined the Git daemon and Git Shell. I have not used SELinux in a optimal way here but i decided to implement a mix of MAC, DAC and Git ACL.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;As for SELinux i have installed the following module:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;gitd.te:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;[code]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;policy_module(gitd, 1.0.0)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;########################################&lt;/span&gt;&lt;br /&gt;&lt;span&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span&gt;# Git daemon global private declarations.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;#&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;attribute gitd_type;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;attribute gitd_content_type;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;type gitd_exec_t;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;# FIXME&lt;/span&gt;&lt;br /&gt;&lt;span&gt;type gitd_port_t;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;corenet_port(gitd_port_t)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;########################################&lt;/span&gt;&lt;br /&gt;&lt;span&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span&gt;# Git daemon system private declarations.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;#&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## Allow Git-shell to modify and execute public files&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## used for public file transfer services. Directories/Files must&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## be labeled public_content_rw_t.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;# gen_tunable(gitd_allow_anon_write, false)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## Allow Git daemon system to search home directories.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;gen_tunable(gitd_system_enable_homedirs, false)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## Allow Git daemon system to access cifs file systems.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;gen_tunable(gitd_system_use_cifs, false)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## Allow Git daemon system to access nfs file systems.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;gen_tunable(gitd_system_use_nfs, false)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;type gitd_system_t, gitd_type;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;inetd_service_domain(gitd_system_t, gitd_exec_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;role system_r types gitd_system_t;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;type gitd_shared_t, gitd_content_type;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;files_type(gitd_shared_t)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;# permissive gitd_system_t;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;########################################&lt;/span&gt;&lt;br /&gt;&lt;span&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span&gt;# Git shell private declarations.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;#&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;gen_require(`&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    attribute unpriv_userdomain, userdomain;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    class context contains;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;attribute gits_file_type;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;attribute gits_usertype;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;type gits_t, userdomain, gits_usertype, unpriv_userdomain;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;domain_type(gits_t)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;role gits_r types gits_t;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;allow system_r gits_r;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;corecmd_shell_entry_type(gits_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;corecmd_bin_entry_type(gits_t)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;domain_interactive_fd(gits_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;domain_user_exemption_target(gits_t)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;# permissive gits_t;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;########################################&lt;/span&gt;&lt;br /&gt;&lt;span&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span&gt;# Git daemon session session private declarations.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;#&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## Allow Git daemon session to bind&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## tcp sockets to all unreserved ports.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;gen_tunable(gitd_session_bind_all_unreserved_ports, false)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;type gitd_session_t, gitd_type;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;application_domain(gitd_session_t, gitd_exec_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;ubac_constrained(gitd_session_t)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;type gitd_personal_t, gitd_content_type;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;userdom_user_home_content(gitd_personal_t)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;# permissive gitd_session_t;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;########################################&lt;/span&gt;&lt;br /&gt;&lt;span&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span&gt;# Git daemon global private policy.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;#&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;allow gitd_type self:fifo_file rw_fifo_file_perms;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;allow gitd_type self:netlink_route_socket { create_socket_perms nlmsg_read };&lt;/span&gt;&lt;br /&gt;&lt;span&gt;allow gitd_type self:tcp_socket create_socket_perms;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;allow gitd_type self:udp_socket create_socket_perms;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;allow gitd_type self:unix_dgram_socket create_socket_perms;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;# FIXME&lt;/span&gt;&lt;br /&gt;&lt;span&gt;allow gitd_type gitd_port_t:tcp_socket name_bind;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;corenet_all_recvfrom_netlabel(gitd_type)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;corenet_all_recvfrom_unlabeled(gitd_type)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;corenet_tcp_sendrecv_all_if(gitd_type)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;corenet_tcp_sendrecv_all_nodes(gitd_type)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;corenet_tcp_sendrecv_all_ports(gitd_type)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;corenet_tcp_bind_all_nodes(gitd_type)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;corecmd_exec_bin(gitd_type)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;files_read_etc_files(gitd_type)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;files_read_usr_files(gitd_type)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;fs_search_auto_mountpoints(gitd_type)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;kernel_read_system_state(gitd_type)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;logging_send_syslog_msg(gitd_type)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;miscfiles_read_localization(gitd_type)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;sysnet_read_config(gitd_type)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;optional_policy(`&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    nis_use_ypbind(gitd_type)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;optional_policy(`&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    nscd_read_pid(gitd_type)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;########################################&lt;/span&gt;&lt;br /&gt;&lt;span&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span&gt;# Git daemon system repository private policy.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;#&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;list_dirs_pattern(gitd_system_t, gitd_content_type, gitd_content_type)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;read_files_pattern(gitd_system_t, gitd_content_type, gitd_content_type)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;files_search_var(gitd_system_t)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;# This will not work since git-shell needs to execute gitd content thus public content files.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;# There is currently no clean way to execute public content files.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;# miscfiles_read_public_files(gitd_system_t)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;tunable_policy(`gitd_system_enable_homedirs', `&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    userdom_search_user_home_dirs(gitd_system_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;tunable_policy(`gitd_system_enable_homedirs &amp;amp;&amp;amp; use_nfs_home_dirs', `&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    fs_list_nfs(gitd_system_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    fs_read_nfs_files(gitd_system_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;tunable_policy(`gitd_system_enable_homedirs &amp;amp;&amp;amp; use_samba_home_dirs', `&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    fs_list_cifs(gitd_system_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    fs_read_cifs_files(gitd_system_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;tunable_policy(`gitd_system_use_cifs', `&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    fs_list_cifs(gitd_system_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    fs_read_cifs_files(gitd_system_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;tunable_policy(`gitd_system_use_nfs', `&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    fs_list_nfs(gitd_system_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    fs_read_nfs_files(gitd_system_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;########################################&lt;/span&gt;&lt;br /&gt;&lt;span&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span&gt;# Git shell private policy.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;#&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;allow gits_t self:context contains;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;allow gits_t self:fifo_file rw_fifo_file_perms;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;corecmd_exec_bin(gits_t)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;kernel_read_system_state(gits_t)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;files_read_etc_files(gits_t)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;files_search_home(gits_t)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;gitd_execute_shared_files(gits_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;gitd_manage_shared_content(gits_t)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;miscfiles_read_localization(gits_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;# miscfiles_read_public_files(gits_t)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;ssh_rw_stream_sockets(gits_t)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;# FIXME&lt;/span&gt;&lt;br /&gt;&lt;span&gt;# This will not work since git-shell needs to execute gitd content thus public content files.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;# There is currently no clean way to execute public content files.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;# tunable_policy(`gitd_allow_anon_write', `&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    # miscfiles_exec_public_files(gits_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    # miscfiles_manage_public_files(gits_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;# ')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;tunable_policy(`gitd_system_enable_homedirs &amp;amp;&amp;amp; use_nfs_home_dirs', `&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    fs_exec_nfs_files(gits_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    fs_manage_nfs_dirs(gits_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    fs_manage_nfs_files(gits_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;tunable_policy(`gitd_system_enable_homedirs &amp;amp;&amp;amp; use_samba_home_dirs', `&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    fs_exec_cifs_files(gits_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    fs_manage_cifs_dirs(gits_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    fs_manage_cifs_files(gits_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;tunable_policy(`gitd_system_use_cifs', `&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    fs_exec_cifs_files(gits_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    fs_manage_cifs_dirs(gits_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    fs_manage_cifs_files(gits_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;tunable_policy(`gitd_system_use_nfs', `&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    fs_exec_nfs_files(gits_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    fs_manage_nfs_dirs(gits_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    fs_manage_nfs_files(gits_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;optional_policy(`&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    nscd_read_pid(gits_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;########################################&lt;/span&gt;&lt;br /&gt;&lt;span&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span&gt;# Git daemon session repository private policy.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;#&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;list_dirs_pattern(gitd_session_t, gitd_personal_t, gitd_personal_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;read_files_pattern(gitd_session_t, gitd_personal_t, gitd_personal_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;userdom_search_user_home_dirs(gitd_session_t)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;userdom_use_user_terminals(gitd_session_t)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;tunable_policy(`gitd_session_bind_all_unreserved_ports', `&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    corenet_tcp_bind_all_unreserved_ports(gitd_session_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;tunable_policy(`use_nfs_home_dirs', `&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    fs_list_nfs(gitd_session_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    fs_read_nfs_files(gitd_session_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;tunable_policy(`use_samba_home_dirs', `&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    fs_list_cifs(gitd_session_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    fs_read_cifs_files(gitd_session_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;')&lt;/span&gt;&lt;br /&gt;&lt;span&gt;[/code]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;gitd.if&lt;/span&gt;&lt;br /&gt;&lt;span&gt;[code]&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## Git daemon is a really simple server for Git repositories.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##        A really simple TCP git daemon that normally listens on&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##        port DEFAULT_GIT_PORT aka 9418. It waits for a&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##        connection asking for a service, and will serve that&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##        service if it is enabled.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##        It verifies that the directory has the magic file&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##        git-daemon-export-ok, and it will refuse to export any&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##        git directory that has not explicitly been marked for&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##        export this way (unless the --export-all parameter is&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##        specified). If you pass some directory paths as&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##        git-daemon arguments, you can further restrict the&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##        offers to a whitelist comprising of those.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##        By default, only upload-pack service is enabled, which&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##        serves git-fetch-pack and git-ls-remote clients, which&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##        are invoked from git-fetch, git-pull, and git-clone.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##        This is ideally suited for read-only updates, i.e.,&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##        pulling from git repositories.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##        An upload-archive also exists to serve git-archive.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;#######################################&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    Role access for Git daemon session.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    Role allowed access.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    User domain for the role.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span&gt;interface(`gitd_session_role', `&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    gen_require(`&lt;/span&gt;&lt;br /&gt;&lt;span&gt;        type gitd_session_t, gitd_exec_t, gitd_personal_t;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    ')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;    ########################################&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    #&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    # Git daemon session shared declarations.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    #&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;    ## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;    ## &lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    ## Allow transitions to the Git daemon&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    ## session domain.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    ## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;    ## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;    gen_tunable(gitd_session_transition, false)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;    role $1 types gitd_session_t;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;    ########################################&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    #&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    # Git daemon session shared policy.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    #&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;    tunable_policy(`gitd_session_transition', `&lt;/span&gt;&lt;br /&gt;&lt;span&gt;        domtrans_pattern($2, gitd_exec_t, gitd_session_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    ', `&lt;/span&gt;&lt;br /&gt;&lt;span&gt;        can_exec($2, gitd_exec_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    ')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;    allow $2 gitd_session_t:process { ptrace signal_perms };&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    ps_process_pattern($2, gitd_session_t)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;    exec_files_pattern($2, gitd_personal_t, gitd_personal_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    manage_dirs_pattern($2, gitd_personal_t, gitd_personal_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    manage_files_pattern($2, gitd_personal_t, gitd_personal_t)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;    relabel_dirs_pattern($2, gitd_personal_t, gitd_personal_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    relabel_files_pattern($2, gitd_personal_t, gitd_personal_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;########################################&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    Allow the specified domain to execute&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    Git daemon shared files.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    Domain allowed access.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span&gt;interface(`gitd_execute_shared_files', `&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    gen_require(`&lt;/span&gt;&lt;br /&gt;&lt;span&gt;        type gitd_shared_t;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    ')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;    exec_files_pattern($1, gitd_shared_t, gitd_shared_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    files_search_var($1)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;########################################&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    Allow the specified domain to manage&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    Git daemon shared content.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    Domain allowed access.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span&gt;interface(`gitd_manage_shared_content', `&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    gen_require(`&lt;/span&gt;&lt;br /&gt;&lt;span&gt;        type gitd_shared_t;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    ')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;    manage_dirs_pattern($1, gitd_shared_t, gitd_shared_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    manage_files_pattern($1, gitd_shared_t, gitd_shared_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    files_search_var($1)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;########################################&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    Allow the specified domain to manage&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    Git daemon personal content.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    Domain allowed access.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span&gt;interface(`gitd_manage_personal_content', `&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    gen_require(`&lt;/span&gt;&lt;br /&gt;&lt;span&gt;        type gitd_personal_t;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    ')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;    manage_dirs_pattern($1, gitd_personal_t, gitd_personal_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    manage_files_pattern($1, gitd_personal_t, gitd_personal_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    files_search_home($1)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;########################################&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    Allow the specified domain to read&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    Git daemon personal content.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    Domain allowed access.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span&gt;interface(`gitd_read_personal_content', `&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    gen_require(`&lt;/span&gt;&lt;br /&gt;&lt;span&gt;        type gitd_personal_t;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    ')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;    list_dirs_pattern($1, gitd_personal_t, gitd_personal_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    read_files_pattern($1, gitd_personal_t, gitd_personal_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    files_search_home($1)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;########################################&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    Allow the specified domain to read&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    Git daemon shared content.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    Domain allowed access.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span&gt;interface(`gitd_read_shared_content', `&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    gen_require(`&lt;/span&gt;&lt;br /&gt;&lt;span&gt;        type gitd_shared_t;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    ')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;    list_dirs_pattern($1, gitd_shared_t, gitd_shared_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    read_files_pattern($1, gitd_shared_t, gitd_shared_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    files_search_var($1)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;########################################&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    Allow the specified domain to relabel&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    Git daemon shared content.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    Domain allowed access.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span&gt;interface(`gitd_relabel_shared_content', `&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    gen_require(`&lt;/span&gt;&lt;br /&gt;&lt;span&gt;        type gitd_shared_t;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    ')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;    relabel_dirs_pattern($1, gitd_shared_t, gitd_shared_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    relabel_files_pattern($1, gitd_shared_t, gitd_shared_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    files_search_var($1)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;########################################&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    Allow the specified domain to relabel&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    Git daemon personal content.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    Domain allowed access.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span&gt;interface(`gitd_relabel_personal_content', `&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    gen_require(`&lt;/span&gt;&lt;br /&gt;&lt;span&gt;        type gitd_personal_t;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    ')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;    relabel_dirs_pattern($1, gitd_personal_t, gitd_personal_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    relabel_files_pattern($1, gitd_personal_t, gitd_personal_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    files_search_home($1)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;########################################&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    All of the rules required to administrate an&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    Git daemon system environment&lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    Prefix of the domain. Example, user would be&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    the prefix for the user_t domain.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    Domain allowed access.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    The role to be allowed to manage the Git daemon domain.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;##    &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;## &lt;/span&gt;&lt;br /&gt;&lt;span&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span&gt;interface(`gitd_system_admin', `&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    gen_require(`&lt;/span&gt;&lt;br /&gt;&lt;span&gt;        type gitd_system_t, gitd_exec_t;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    ')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;    allow $1 gitd_system_t:process { getattr ptrace signal_perms };&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;    kernel_search_proc($1)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    allow $1 git_system_t:dir list_dir_perms;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    read_files_pattern($1, gitd_system_t, gitd_system_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    read_lnk_files_pattern($1, gitd_system_t, gitd_system_t)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;    manage_files_pattern($1, gitd_exec_t, gitd_exec_t)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;    # This will not work since git-shell needs to execute gitd content thus public content files.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    # There is currently no clean way to execute public content files.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    # miscfiles_manage_public_files($1)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;    gitd_manage_shared_content($1)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    gitd_relabel_shared_content($1)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;    seutil_domtrans_setfiles($1)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;')&lt;/span&gt;&lt;br /&gt;&lt;span&gt;[/code]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;gitd.fc&lt;/span&gt;&lt;br /&gt;&lt;span&gt;[code]HOME_DIR/public_git(/.*)?                    gen_context(system_u:object_r:gitd_personal_t, s0)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;HOME_DIR/\.gitconfig                --        gen_context(system_u:object_r:gitd_personal_t, s0)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;/srv/git(/.*)?                            gen_context(system_u:object_r:gitd_shared_t, s0)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;/usr/libexec/git-core/git-daemon        --        gen_context(system_u:object_r:gitd_exec_t, s0)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;# Conflict with Fedora cgit fc spec.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;# /var/lib/git(/.*)?                        gen_context(system_u:object_r:gitd_shared_t, s0)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;[/code]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;I manually labelled tcp:9418 gitd_port_t&lt;/span&gt;&lt;br /&gt;&lt;span&gt;[code]&lt;/span&gt;&lt;br /&gt;&lt;span&gt;semanage port -a -t gitd_port_t -p tcp 9418&lt;/span&gt;&lt;br /&gt;&lt;span&gt;[/code]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I also manually added a SELinux user mapping:&lt;br /&gt;&lt;br /&gt;semanage user -a -L s0 -r s0 -R &quot;gits_r&quot; -P gits_u&lt;br /&gt;&lt;br /&gt;echo &quot;system_r:sshd_t:s0              gits_r:gits_t:s0&quot; &gt; /etc/selinux/targeted/contexts/users/gits_u&lt;br /&gt;&lt;br /&gt;&lt;span&gt;I edited /etc/xinetd.d/git:&lt;/span&gt;&lt;br /&gt;&lt;span&gt;[code]&lt;/span&gt;&lt;br /&gt;&lt;pre class=&quot;bz_comment_text&quot; id=&quot;comment_text_0&quot;&gt;&lt;span&gt;&lt;span&gt;# default: off&lt;/span&gt;&lt;br /&gt;&lt;span&gt;# description: The git dæmon allows git repositories to be exported using \&lt;/span&gt;&lt;br /&gt;&lt;span&gt;#       the git:// protocol.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;service git&lt;/span&gt;&lt;br /&gt;&lt;span&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span&gt;        disable         = no&lt;/span&gt;&lt;br /&gt;&lt;span&gt;        socket_type     = stream&lt;/span&gt;&lt;br /&gt;&lt;span&gt;        type            = UNLISTED&lt;/span&gt;&lt;br /&gt;&lt;span&gt;        port            = 9418&lt;/span&gt;&lt;br /&gt;&lt;span&gt;        wait            = no&lt;/span&gt;&lt;br /&gt;&lt;span&gt;        user            = nobody&lt;/span&gt;&lt;br /&gt;&lt;span&gt;#        server          = /usr/bin/git&lt;/span&gt;&lt;br /&gt;&lt;span&gt;#        server_args     = daemon --base-path=/srv/git --export-all&lt;/span&gt;&lt;br /&gt;&lt;span&gt;--user-path=public_git --syslog --inetd --verbose&lt;/span&gt;&lt;br /&gt;&lt;span&gt;        server          = /usr/libexec/git-core/git-daemon&lt;/span&gt;&lt;br /&gt;&lt;span&gt;        server_args     = --base-path=/srv/git --export-all&lt;/span&gt;&lt;br /&gt;&lt;span&gt;--user-path=public_git --syslog --inetd --verbose&lt;/span&gt;&lt;br /&gt;&lt;span&gt;        log_on_failure  += USERID&lt;/span&gt;&lt;br /&gt;&lt;span&gt;# xinetd doesn't do this by default. &lt;/span&gt;&lt;span class=&quot;bz_closed&quot;&gt;&lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=195265&quot; title=&quot;CLOSED ERRATA - xinetd doesn't listen on IPv6 by default.&quot;&gt;bug #195265&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;        flags           = IPv6&lt;/span&gt;&lt;br /&gt;&lt;span&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span&gt;[/code]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Basically the selinux policy has 3 parts. one part is for the gitd system inetd server. the second part is for running gitd as a unprivileged user, and the third part is policy for the system wide git-shell environment.&lt;br /&gt;So we secure the system wide gitd process, gitd process that users run and the git-shell process that is used to push pull to shared repositories.&lt;br /&gt;&lt;br /&gt;When you compile git-daemon, configured it like above and install the selinux module, restore the contexts of the paths in gitd.fc. then start xinetd: youll notice that inetd_t is not allowed to bind to gitd_port_t.&lt;br /&gt;You can simply use audit2allow with the -M option to allow inetd_t to bind to gitd_port on behalf of gitd_system_t&lt;br /&gt;&lt;br /&gt;I use DAC to give usergroups access to the particular repositories and i use git ACL to restrict access to branches, tags etc.&lt;br /&gt;&lt;br /&gt;I used this great web site do implement this:&lt;br /&gt;&lt;br /&gt;http://www.kernel.org/pub/software/scm/git/docs/everyday.html&lt;br /&gt;&lt;br /&gt;I wrote two simple scripts:&lt;br /&gt;&lt;br /&gt;1. to add new users&lt;br /&gt;2. to add new repostiries&lt;br /&gt;&lt;br /&gt;create_repository:&lt;br /&gt;&lt;br /&gt;crepo.sh:&lt;br /&gt;[code]&lt;br /&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;# crepo.sh &lt;br /&gt;&lt;br /&gt;groupadd $1 || exit 1;&lt;br /&gt;usermod -a -G $1 badabing || exit 1;&lt;br /&gt;&lt;br /&gt;mkdir /srv/git/$1.git || exit 1;&lt;br /&gt;chmod -R +t /srv/git/$1.git || exit 1;&lt;br /&gt;cd /srv/git/$1.git &amp;amp;&amp;amp; git --bare init || exit 1;&lt;br /&gt;&lt;br /&gt;cp /home/dgrift/create_repository/update /srv/git/$1.git/hooks/ || exit 1;&lt;br /&gt;cp /home/dgrift/create_repository/allowed-users /srv/git/$1.git/info/ || exit 1;&lt;br /&gt;&lt;br /&gt;chown -R nobody:$1 /srv/git/$1.git || exit 1;&lt;br /&gt;&lt;br /&gt;chmod -R g+s /srv/git/$1.git/branches || exit 1;&lt;br /&gt;chmod -R g+s /srv/git/$1.git/hooks || exit 1;&lt;br /&gt;chmod -R g+s /srv/git/$1.git/info || exit 1;&lt;br /&gt;chmod -R g+s /srv/git/$1.git/objects || exit 1;&lt;br /&gt;chmod -R g+s /srv/git/$1.git/refs || exit 1;&lt;br /&gt;chmod -R g+w /srv/git/$1.git || exit 1;&lt;br /&gt;&lt;br /&gt;exit 0;&lt;br /&gt;&lt;br /&gt;#EOF&lt;br /&gt;[/code]&lt;br /&gt;&lt;br /&gt;This script installs the git ACL files update and allowed-users:&lt;br /&gt;&lt;br /&gt;update:&lt;br /&gt;[code]&lt;br /&gt;http://www.kernel.org/pub/software/scm/git/docs/howto/update-hook-example.txt&lt;br /&gt;[/code]&lt;br /&gt;&lt;br /&gt;allowed-users:&lt;br /&gt;[code]&lt;br /&gt;refs/heads/master       badabing&lt;br /&gt;+refs/heads/pu          badabing&lt;br /&gt;refs/heads/bw/.*        badabing&lt;br /&gt;refs/heads/tmp/.*       .*&lt;br /&gt;refs/tags/v[0-9].*      badabing&lt;br /&gt;[/code]&lt;br /&gt;&lt;br /&gt;I also created a script to do part of what is required to add new users (i havent tested this script yet:&lt;br /&gt;&lt;br /&gt;[code]&lt;br /&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;# agits.sh  &lt;br /&gt;&lt;br /&gt;useradd -Z gits_u -s /usr/bin/git-shell $1 || exit 1;&lt;br /&gt;usermod -a -G sshusers,$2 $1 || exit 1;&lt;br /&gt;&lt;br /&gt;echo &quot;Do not forget to set a password!&quot;&lt;br /&gt;echo &quot;Manually add entries for $1 in /etc/security/namespace.conf!&quot;&lt;br /&gt;echo &quot;You may need to edit /srv/git/$2.git/info/allowed-users!&quot;&lt;br /&gt;&lt;br /&gt;# TODO: usrquota&lt;br /&gt;&lt;br /&gt;exit 0;&lt;br /&gt;[/code]&lt;br /&gt;&lt;br /&gt;By the way xinetd and selinux dont play nice so you may need to edit the xinetd init script:&lt;br /&gt;&lt;br /&gt;[code]&lt;br /&gt;https://bugzilla.redhat.com/show_bug.cgi?id=529681&lt;br /&gt;[/code]&lt;br /&gt;&lt;br /&gt;So that is basically it.&lt;br /&gt;The SELinux policy for the git system service should work by default. Additionally there are some booleans to to toggle for example to allow the git system service to also host personal repositories in ~/public_git, allow git to use any unreserved port for mass git repostory hosting. enable disable transition to git_session_t which is the user daemon.&lt;br /&gt;For this to work you must also enable git policy for users by creating a module:&lt;br /&gt;&lt;br /&gt;for example if you want unconfined users to transition to git domain if they run git daemon ...&gt;&lt;br /&gt;&lt;br /&gt;myunconfined.te:&lt;br /&gt;[code]&lt;br /&gt;policy_module(myunconfined, 0.0.1)&lt;br /&gt;optional_policy(`&lt;br /&gt;gen_require(`&lt;br /&gt; type unconfined_t;&lt;br /&gt;')&lt;br /&gt;&lt;br /&gt;git_session_role(unconfined_r, unconfined_t)&lt;br /&gt;[/code]&lt;br /&gt;&lt;br /&gt;build and install that:&lt;br /&gt;&lt;br /&gt;make -f /usr/share/selinux/devel/Makefile&lt;br /&gt;sudo semodule -i myunconfined.pp&lt;br /&gt;&lt;br /&gt;That should work and make unconfined_t users transition to git_session_t when they run git daemon ...&gt;&lt;br /&gt;&lt;br /&gt;For me this setup works, but i have not thoroughly tested the git_session_t domain yet.&lt;br /&gt;&lt;br /&gt;Would be nice to get some feedback so that i can improve this.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The git selinux policy is malformed above use the command below to pull the current gitd policy from my git repository&lt;br /&gt;&lt;br /&gt;git clone git://&lt;/span&gt;&lt;/span&gt;&lt;span id=&quot;ip&quot;&gt;&lt;span&gt;&lt;span&gt;82.197.205.60/selinux-modules.git&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5024703430482213163-1254384423721238855?l=selinux-mac.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2009-10-21T04:03:07+00:00</dc:date>
	<dc:creator>Dominick &quot;domg472&quot; Grift (noreply@blogger.com)</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-15117118.post-126636015980316145">
	<title>Jeronimo Zucco (selinux): Vídeos sobre SELinux da Linux Plumbers Conference 2009</title>
	<link>http://jczucco.blogspot.com/2009/10/videos-sobre-selinux-da-linux-plumbers.html</link>
	<content:encoded>Li no blog do &lt;a href=&quot;http://blog.namei.org/?p=221&quot;&gt;James Morris&lt;/a&gt; que foram disponibilizados vários vídeos sobre SELinux no &lt;a href=&quot;http://video.linuxfoundation.org/&quot;&gt;site de vídeos da Linux Foundation&lt;/a&gt;. Seguem abaixo:
&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://linuxplumbersconf.org/ocw/proposals/79&quot;&gt;Status of SELinux in Ubuntu&lt;/a&gt; by Caleb Case [&lt;a href=&quot;http://linuxplumbersconf.org/2009/slides/caleb-case-ubuntu.2009.3.pdf&quot;&gt;slides&lt;/a&gt;][&lt;a href=&quot;http://video.linuxfoundation.org/video/1563&quot;&gt;video&lt;/a&gt;]
&lt;br /&gt;&lt;/li&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://linuxplumbersconf.org/ocw/proposals/26&quot;&gt;Introducing SELinux Sandbox&lt;/a&gt; by Dan Walsh [&lt;a href=&quot;http://linuxplumbersconf.org/2009/slides/dan-walsh-selinux-sandbox.pdf&quot;&gt;slides&lt;/a&gt;][&lt;a href=&quot;http://video.linuxfoundation.org/video/1565&quot;&gt;video&lt;/a&gt;]
&lt;br /&gt;&lt;/li&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://linuxplumbersconf.org/ocw/proposals/58&quot;&gt;SELinux Policy Within Package Managers, Why Policy is Special&lt;/a&gt; by Joshua Brindle [&lt;a href=&quot;http://linuxplumbersconf.org/2009/slides/brindle-selinux-distribution-lpc-slides.pdf&quot;&gt;slides&lt;/a&gt;][&lt;a href=&quot;http://video.linuxfoundation.org/video/1569&quot;&gt;video&lt;/a&gt;]
&lt;br /&gt;&lt;/li&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://linuxplumbersconf.org/ocw/proposals/87&quot;&gt;XACE Demonstration and Discussion&lt;/a&gt; by Eamon Walsh [mostly demo][&lt;a href=&quot;http://video.linuxfoundation.org/video/1566&quot;&gt;video&lt;/a&gt;]  (meet the AVC cow!)
&lt;br /&gt;&lt;/li&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=&quot;http://linuxplumbersconf.org/ocw/proposals/43&quot;&gt;Making SELinux Easier to Use&lt;/a&gt; by Bryan Jacobson [&lt;a href=&quot;http://linuxplumbersconf.org/2009/slides/Bryan-Jacobson-Debora-Velarde-Plumbers09_SELinux_docs.pdf&quot;&gt;slides&lt;/a&gt;][&lt;a href=&quot;http://video.linuxfoundation.org/video/1562&quot;&gt;video&lt;/a&gt;]
&lt;br /&gt;&lt;/li&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/15117118-126636015980316145?l=jczucco.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2009-10-12T23:23:03+00:00</dc:date>
	<dc:creator>Jeronimo Zucco (jczucco@gmail.com)</dc:creator>
</item>
<item rdf:about="http://blog.namei.org/?p=221">
	<title>James Morris: Videos from the LPC security track</title>
	<link>http://blog.namei.org/2009/10/12/videos-from-the-lpc-security-track/</link>
	<content:encoded>&lt;p&gt;Several videos from the &lt;a href=&quot;http://linuxplumbersconf.org/2009/&quot;&gt;2009 Linux Plumbers Conference&lt;/a&gt; security track have been published at the Linux Foundation &lt;a href=&quot;http://video.linuxfoundation.org/&quot;&gt;video site&lt;/a&gt;.   Here&amp;#8217;s a listing with the relevant slides:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://linuxplumbersconf.org/ocw/proposals/72&quot;&gt;Linux Kernel Crypto API&lt;/a&gt; by Herbert Xu [&lt;a href=&quot;http://linuxplumbersconf.org/2009/slides/herbert-xu-crypto-200909.pdf&quot;&gt;slides&lt;/a&gt;][&lt;a href=&quot;http://video.linuxfoundation.org/video/1567&quot;&gt;video&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://linuxplumbersconf.org/ocw/proposals/79&quot;&gt;Status of SELinux in Ubuntu&lt;/a&gt; by Caleb Case [&lt;a href=&quot;http://linuxplumbersconf.org/2009/slides/caleb-case-ubuntu.2009.3.pdf&quot;&gt;slides&lt;/a&gt;][&lt;a href=&quot;http://video.linuxfoundation.org/video/1563&quot;&gt;video&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://linuxplumbersconf.org/ocw/proposals/26&quot;&gt;Introducing SELinux Sandbox&lt;/a&gt; by Dan Walsh [&lt;a href=&quot;http://linuxplumbersconf.org/2009/slides/dan-walsh-selinux-sandbox.pdf&quot;&gt;slides&lt;/a&gt;][&lt;a href=&quot;http://video.linuxfoundation.org/video/1565&quot;&gt;video&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://linuxplumbersconf.org/ocw/proposals/58&quot;&gt;SELinux Policy Within Package Managers, Why Policy is Special&lt;/a&gt; by Joshua Brindle [&lt;a href=&quot;http://linuxplumbersconf.org/2009/slides/brindle-selinux-distribution-lpc-slides.pdf&quot;&gt;slides&lt;/a&gt;][&lt;a href=&quot;http://video.linuxfoundation.org/video/1569&quot;&gt;video&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://linuxplumbersconf.org/ocw/proposals/87&quot;&gt;XACE Demonstration and Discussion&lt;/a&gt; by Eamon Walsh [mostly demo][&lt;a href=&quot;http://video.linuxfoundation.org/video/1566&quot;&gt;video&lt;/a&gt;]  (meet the AVC cow!)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://linuxplumbersconf.org/ocw/proposals/43&quot;&gt;Making SELinux Easier to Use&lt;/a&gt; by Bryan Jacobson [&lt;a href=&quot;http://linuxplumbersconf.org/2009/slides/Bryan-Jacobson-Debora-Velarde-Plumbers09_SELinux_docs.pdf&quot;&gt;slides&lt;/a&gt;][&lt;a href=&quot;http://video.linuxfoundation.org/video/1562&quot;&gt;video&lt;/a&gt;]&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Many thanks to the folk at LF and the LPC organizers, especially Niv (also for the HTML listing above).&lt;/p&gt;
&lt;p&gt;If you attended LPC, or make use of the videos or slide, please drop by &lt;a href=&quot;http://lwn.net/Articles/356259/&quot;&gt;this thread at LWN&lt;/a&gt; to say thanks.   If you have any suggestions for improvements, feel &lt;strong&gt;very&lt;/strong&gt; free to volunteer your time at the next event.&lt;/p&gt;</content:encoded>
	<dc:date>2009-10-11T22:43:40+00:00</dc:date>
	<dc:creator>jamesm</dc:creator>
</item>
<item rdf:about="http://danwalsh.livejournal.com/32976.html">
	<title>Dan Walsh: chomium-sandbox Policy.</title>
	<link>http://danwalsh.livejournal.com/32976.html</link>
	<content:encoded>I started writing a long blog last week on writing policy on Google Chromium Browser.&amp;nbsp; Saved it for my eyes only.&amp;nbsp; I finished writing it today and changed the date.&amp;nbsp; I then made it public, but for some reason the planets/aggregators&amp;nbsp; marked it as being written on Oct 2&lt;br /&gt;&lt;br /&gt;You might have missed it.&lt;br /&gt;&lt;br /&gt;Here is the link, if you are interested&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://danwalsh.livejournal.com/32759.html&quot;&gt;http://danwalsh.livejournal.com/32759.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;</content:encoded>
	<dc:date>2009-10-09T16:20:52+00:00</dc:date>
	<dc:creator>dwalsh@redhat.com</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-5024703430482213163.post-1511886773288714711">
	<title>Dominick Grift: My view on domains, domain types, roles, domain transitions and more.</title>
	<link>http://selinux-mac.blogspot.com/2009/10/my-view-on-domains-domain-types-roles.html</link>
	<content:encoded>&lt;span&gt;&lt;span&gt;A domain is an environment in which a process operates. That environment is defined by the access vectors where a particular process is the sources.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Sometimes people refer to types of processes as domains. This is technically incorrect. Types of processes are domain types.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;A domain is a general term for process environments. Processes can have different natures or properties. For example a user process environment can be called a domain and a process of a program can also be called a domain.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;In SELinux world we like to &quot;label&quot; everything. So instead of calling a user process environment a domain we call it a user domain. The type of a user process is called a user domain type although technically its a domain type since user processes are processes.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Besides user domains, there are more different domains. These domains are defined by who transitioned to them. For example, init daemons are started by init scripts. The init script process sandbox is called init script domain and process environments that init script domains transition to are called init daemon domains.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Examples of init daemon domains are the environment of the httpd_t init daemon domain type, or postgresql. The main property is that these processes are started by init scripts.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Process environments of programs that user process environments transition to are called application domains, and the type of such a process is called a application domain type.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;It depends on what transitions to what, that defines what domain it is. A cgi webapp that operates in its own environment is called a apache daemon domain if the httpd_t init daemon domain transitions to the process environment of a cgi webapp.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;There are many more such domains and they are defined by what domain transitioned to them.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Domain transitions occur upon entrypoints. An entrypoint is a defined path to usually a  executable file. Types of executable files are called executable file types. They are important in entrypoints to domains.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;For example:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;apache init script has a executable file type called for example httpd_initrc_exec_t.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;When the init_t domain type executes the file with executable file type httpd_initrc_exec_t,&lt;/span&gt;&lt;br /&gt;&lt;span&gt;the process of that executable file type will get the initrc_t domain type and the process will operate in the init script domain (init script process environment).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;The entrypoint is:&lt;/span&gt;&lt;br /&gt;&lt;span&gt;init_t -&gt; httpd_initrc_exec_t&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;This entrypoint leads to the initrc_t process environment. (init script domain)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Now this starts all over again when the process that has domain type initrc_t runs the apache executable.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Assuming in this example that /usr/sbin/httpd is apaches executable file and that it has a executable file type of httpd_exec_t.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;The entrypoint is:&lt;/span&gt;&lt;br /&gt;&lt;span&gt;initrc_t -&gt; httpd_exec_t&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;The init script domain type runs the apache executable file type. There is a rule that says:&lt;/span&gt;&lt;br /&gt;&lt;span&gt;when initrc_t executes httpd_exec_t, then transition to the httpd_t process environment type.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;initrc_t -&gt; httpd_exec_t -&gt; httpd_t&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;initrc_t is a (init script) domain type. policy where initrc_t is the source type is called a init script domain.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;httpd_exec_t is a executable file type.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;initrc_t -&gt; httpd_exec_t is the entrypoint to the httpd_t domain (type)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;httpd_t -&gt; is a (init daemon) domain type. policy where httpd_t is the source type is called a init daemon domain.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;There are api available that make transitioning to these types of domains easier.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;For example you can simply call the init_daemon_domain() interface if your process is started by a init script. proper calling of this single interface will take care of some of the declarations that are required. it will also set up a domain transition pattern.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;type myinitdaemondomaintype_t;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;type myinitdaemondomaintypeexecutablefiletype_t;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;init_daemon_domain(myinitdaemondomaintype_t, myinitdaemondomaintypeexecutablefiletype_t)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;This will instruct SELinux to let processes that run in the initrc_t init script domain that execute files with executable file type myinitdaemondomaintypeexecutablefiletype_t, domain transition to the myinitdaemondomaintype_t process enviroment and give that process the init daemon domain type.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;initrc_t -&gt; myinitdaemondomaintypeexecutablefiletype_t -&gt; myinitdaemondomaintype_t&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;This ofcourse requires that file files in question are labelled accordingly.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;application domains are handled a bit differently. This is mainly because of RBAC.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Role based access control is a mechanism that allows a single user to operate in various environments (user domains)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;This means that you must also define which role is allowed to use the target domain type.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;user_t: user domain type&lt;/span&gt;&lt;br /&gt;&lt;span&gt;userapp_exec_t: (application) executable file type of the application to transition to.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;userapp_t: application domain type&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;entrypoint:&lt;/span&gt;&lt;br /&gt;&lt;span&gt;user_t -&gt; userapp_exec_t&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Target of the entry point:&lt;/span&gt;&lt;br /&gt;&lt;span&gt;userapp_tRole of the user that this domain transition pattern is defined for:&lt;/span&gt;&lt;br /&gt;&lt;span&gt;user_r&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;type user_t;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;type userapp_exec_t;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;application_domain(user_t, userapp_exec_t)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;role user_r types userapp_t;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;domain_transition_pattern(user_t, userapp_exec_t, userapp_t)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Again same idea but its just a bit more complicated than the init daemon domain because users&lt;/span&gt;&lt;br /&gt;&lt;span&gt;(and applications started by users) can have different roles.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Applications started by init (system) can only have one role(system_r), So that makes the init daemon domains less complicated.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Explained:&lt;/span&gt;&lt;br /&gt;&lt;span&gt;When a user process that operates in the user_t user process environment runs a file with executable file type myapp_exec_t, then the process of that executable file type will run in the myapp_t application process environment (application domain).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Since users can have different roles we also define that particular role to have access to the application domain type.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;We also manually define a domain transition pattern (user_t -&gt; myapp_exec_t -&gt; myapp_t)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Keep in mind that domains transitioned to by users also have to deal with roles, unlike domain transitioned to by system processes. processes where the role field in the context is system_r.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Your policy source has many example of the different domains. If you want to write policy for a init daemon than look up an example of a init daemon domain in the source policy, and see if that can get you started. Idem ditto for application domains, apache daemon domains, xinet service domains, dbus service domains and etcetera.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;User domains are different. They arent started by other processes. instead a real person logs into the system and by running a tty or pts a new domain is initiated. These transtions are defined both in the user domain policy and selinux mappings, many of which can be defined with the semanage command.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;for example:&lt;/span&gt;&lt;br /&gt;&lt;span&gt;(real human) -&gt; tty_device_t -&gt; user_t&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;I wont go into much detail here but i want to touch on the different user domains to consider. Users can have different roles. Roles are mappings to domains. and as explained domain are environments in which processes operate, defined by the policy in which a domain type is a source.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;There are two different classes of user domain to consider. user domains that need a login environment, and user domains that do not need a login enviroment. i refer to them as primary and secondary user domains.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;An example of a primary login user domain is staff_t. A user can login to a system in the staff_t user domain.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;An example of a secundary user domain is webadm_t.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;A primary user domain can be allowed to domain transition via roles (RBAC) to this secondary user domain. Thus may not be required to login and have a home directory and etcetera. Secondary user domains are often used for environments that have super user privileges. Like for example the webadm_t environment allows a user process to manage the webserver environment.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Have a look at the different defined user domain in the source policy. look at both staff domain and webadm domain and keep in mind that the first is a primary domain and the latter a secondary domain. By mapping the webadm_r and staff_r roles to a selinux user and mapping  this selinux user to a linux login you can make selinux allow users that operate in the staff_t user domain to use Role based access control to domain transition to the secondary webadm_t user domain via sudo or su in conjunction with newrole.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5024703430482213163-1511886773288714711?l=selinux-mac.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2009-10-06T16:25:39+00:00</dc:date>
	<dc:creator>Dominick &quot;domg472&quot; Grift (noreply@blogger.com)</dc:creator>
</item>
<item rdf:about="http://danwalsh.livejournal.com/32430.html">
	<title>Dan Walsh: Writing SELinux policy just got easier.</title>
	<link>http://danwalsh.livejournal.com/32430.html</link>
	<content:encoded>&lt;strong&gt;Fedora 12 adds a command line interface to polgengui.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I wrote up polgengui a couple of years ago to make writing SELinux policy a little easier.&amp;nbsp; polgengui is a template based policy framework,&amp;nbsp; that ask the user a few questions, and then generate initial policy files to allow the policy writer to get started.&lt;br /&gt;&lt;br /&gt;Polgengui is not a policy editor, slide is available for that. &lt;br /&gt;&lt;br /&gt;polgengui asks  questions like:&lt;br /&gt;&lt;br /&gt;What is the name of the application?&amp;nbsp; What kind of application is it?&amp;nbsp; What files/directories does your app need write access?&amp;nbsp; Does it your app use Syslog?&amp;nbsp;&amp;nbsp;Etc.&lt;br /&gt;&lt;br /&gt;polgengui takes these answers and applies  templates from /usr/share/system-config-selinux/templates to generate policy.&amp;nbsp; These templates write policy that generates the types necessary to use with SELinux, and the common rules for interaction with these types.&amp;nbsp; These templates allow you to write policy that can easily be massaged into something acceptable by upstream.&lt;br /&gt;&lt;br /&gt;When I start writing policy, usually I&amp;nbsp;don't know that much about how the application runs or what files/directories it needs to write.&amp;nbsp;&amp;nbsp; I install the tool and run &lt;strong&gt;rpm -ql package &lt;/strong&gt;on it to see what directories the package maintainer includes with the tool.&amp;nbsp; I run  the tool and look for files it created for example in /var/run if it is a daemon or /tmp.&amp;nbsp; If the package has a directory like /var/run/package or /var/lib/package I add these directories&amp;nbsp; as writing directories.&amp;nbsp; Similarly If the rpm includes an initscript I add that to the policy. &amp;nbsp;I also use tools like &lt;strong&gt;nm&lt;/strong&gt; to see which functions the application calls.&amp;nbsp; I look for common functions like syslog, and I know to check the syslog button.&lt;br /&gt;&lt;br /&gt;Being&amp;nbsp; lazy, I did not like all the button clicking, I figured I&amp;nbsp;can script all of this. &amp;nbsp;So I have added sepolgen to Fedora 12.&lt;br /&gt;&lt;br /&gt;It is simply a command line tool used to generate the same policy as polgengui, but the policy writer does not need to answer any questions.&lt;br /&gt;&lt;br /&gt;sepolgen /usr/sbin/mydaemon&lt;br /&gt;&lt;br /&gt;Sepolgen does the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;rpm -qlf /usr/sbin/mydaemon&lt;br /&gt;&lt;ul&gt;&lt;li&gt;sepolgen scans for  paths like /var/lib, /var/run, /etc/init.d/rc.d/mydaemon and selects the appropriate templates.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;nm -D /usr/sbin/mydaemon &lt;br /&gt;&lt;ul&gt;&lt;li&gt;sepolgen scans for syslog, setuid, setgid, ... and adds the appropriate access.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;generate 4 files&lt;br /&gt;&lt;ul&gt;&lt;li&gt;mydaemon.te&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; #&amp;nbsp;All types and allow rules discovered for this daemon&lt;/li&gt;&lt;li&gt;mydaemon.if&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;&amp;nbsp; # Interfaces to be used with the types generated for this daemon&lt;/li&gt;&lt;li&gt;mydaemon.fc&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; # File context mapping between types and paths on disk&amp;nbsp;&lt;/li&gt;&lt;li&gt;mydaemon.sh &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; #&amp;nbsp;Helper shell script used to compile/install policy and then label the paths correctly&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;The policy writer then only needs to execute mydaemon.sh and the policy will be compiled installed and the daemon will be ready to start testing.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;begin:&lt;br /&gt;service mydaemon start&lt;br /&gt;run tests against mydaemon&lt;br /&gt;check for avc's&lt;br /&gt;if None&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Break;&lt;br /&gt;audit2allow -R&amp;nbsp;&amp;gt;&amp;gt;&amp;nbsp;mydaemon.te&lt;br /&gt;Verify the policy is good or fix it.&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;THis is the hard part :^(&lt;br /&gt;./mydaemon.sh&lt;br /&gt;goto begin&lt;br /&gt;&lt;br /&gt;Try it out.&lt;br /&gt;&lt;br /&gt;</content:encoded>
	<dc:date>2009-10-01T14:48:32+00:00</dc:date>
	<dc:creator>dwalsh@redhat.com</dc:creator>
</item>
<item rdf:about="http://danwalsh.livejournal.com/32018.html">
	<title>Dan Walsh: Who says the NSA does not have a sense of humor?</title>
	<link>http://danwalsh.livejournal.com/32018.html</link>
	<content:encoded>Eamon Walsh (no relation) of the NSA&amp;nbsp;presenting XAce at the Linux Plumbers Conference introduces the AVC&amp;nbsp;Cow. &amp;nbsp;Photo by James Morris. &lt;br /&gt;And know we are not going to make sealert display farm animals when SELinux reports an error.&amp;nbsp; :^)&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3433/3951228343_fa43782189_b.jpg&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;</content:encoded>
	<dc:date>2009-09-30T12:42:20+00:00</dc:date>
	<dc:creator>dwalsh@redhat.com</dc:creator>
</item>
<item rdf:about="http://danwalsh.livejournal.com/31888.html">
	<title>Dan Walsh: sandbox -X internals.</title>
	<link>http://danwalsh.livejournal.com/31888.html</link>
	<content:encoded>Here is&amp;nbsp; a talk from the Linux Plumbers Conference describing how sandbox -X&amp;nbsp;works.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://people.fedoraproject.org/~dwalsh/SELinux/Presentations/sandbox.pdf&quot;&gt;http://people.fedoraproject.org/~dwalsh/SELinux/Presentations/sandbox.pdf&lt;/a&gt;</content:encoded>
	<dc:date>2009-09-29T12:34:14+00:00</dc:date>
	<dc:creator>dwalsh@redhat.com</dc:creator>
</item>
<item rdf:about="http://blog.namei.org/?p=214">
	<title>James Morris: Portland Roundup</title>
	<link>http://blog.namei.org/2009/09/29/portland-roundup/</link>
	<content:encoded>&lt;p&gt;Last week was a busy one in Portland, starting with the &lt;a title=&quot;SELinux Developer Summit&quot; href=&quot;http://selinuxproject.org/page/Developer_Summit_2009&quot;&gt;SELinux Developer Summit&lt;/a&gt; on Sunday the 20th, followed by &lt;a title=&quot;LinuxCon&quot; href=&quot;http://events.linuxfoundation.org/events/linuxcon&quot;&gt;LinuxCon&lt;/a&gt; proper, and the &lt;a title=&quot;Linux Plumbers Conference 2009&quot; href=&quot;http://linuxplumbersconf.org/2009/&quot;&gt;Linux Plumbers Conference&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The SELinux event went very smoothly, with around twenty-five attendees from the core SELinux developer community.  Given tight travel budgets all-round, this level of attendance was very good to see.  I&amp;#8217;d like to thank Angela Brown, Craig Ross and the rest of the Linux Foundation team for making everything work perfectly for us (this was a co-located event ahead of LinuxCon).&lt;/p&gt;
&lt;p&gt;The day was divided into &lt;a href=&quot;http://selinuxproject.org/page/Developer_Summit_2009/Schedule&quot;&gt;two sessions&lt;/a&gt;: standard presentations in the morning, followed by a more open general session in the afternoon.  It was good to catch up on the latest development work and directions in the project, and also to bring the otherwise globally distributed team together in the same place.&lt;/p&gt;
&lt;div class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.flickr.com/photos/x_jamesmorris/3951218075/&quot;&gt;&lt;img title=&quot;SELinux Developer Summit Lunch Track&quot; src=&quot;http://farm3.static.flickr.com/2517/3951218075_c6307c5b80.jpg&quot; alt=&quot;SELinux Developer Summit Lunch Track&quot; width=&quot;500&quot; height=&quot;375&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;SELinux Developer Summit Lunch Track&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;The inaugural LinuxCon then ran for three days, with an expansive programme.  I gave a talk on adding extended attribute support to Linux NFSv3 &amp;#8212; the slides for which may be downloaded as &lt;a href=&quot;http://namei.org/presentations/linuxcon09_nfsv3xattrs.pdf&quot;&gt;PDF&lt;/a&gt; or viewed on &lt;a href=&quot;http://www.slideshare.net/jamesmorris/adding-extended-attribute-support-to-nfs&quot;&gt;slideshare&lt;/a&gt;.  I completed the initial code on the flight to the US and &lt;a href=&quot;http://thread.gmane.org/gmane.linux.file-systems/35475&quot;&gt;posted&lt;/a&gt; it from the hotel.  Feedback so far has been positive, although I haven&amp;#8217;t heard from the NFS maintainers yet (who are likely  busy with the merge window).  The rationale and technical approach is similar the NFSv3 ACL support which was merged some time ago; and the implementation is based on a fielded IRIX version (released under the GPL) &amp;#8212; both  factors which I hope will help with upstream acceptance.&lt;/p&gt;
&lt;p&gt;Also at LinuxCon: Dan Walsh gave a talk on &lt;a href=&quot;http://selinuxproject.org/page/SVirt&quot;&gt;sVirt&lt;/a&gt;, which I introduced earlier this year at LCA (and previewed of during a lightning talk last year at FOSS.MY).  It seems to have been well-received (see &lt;a href=&quot;http://lwn.net/Articles/353970/&quot;&gt;LWN coverage&lt;/a&gt;), and it&amp;#8217;s a good example of the high-level security abstractions which we can build once we have the underlying mechanisms in place.  In the case of sVirt, where we apply strong mandatory  isolation to process-based virtualization (e.g. SELinux+KVM), there is zero configuration &amp;#8212; it  configures itself automatically depending on which security model you have enabled.  It should work with any label security scheme, such as &lt;a href=&quot;http://www.schaufler-ca.com/&quot;&gt;Smack&lt;/a&gt;, and I&amp;#8217;ve also heard that the AppArmor folk have it working (even though sVirt was not explicitly designed for pathname security).&lt;/p&gt;
&lt;p&gt;
&lt;div class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.flickr.com/photos/x_jamesmorris/3951209191/&quot;&gt;&lt;img class=&quot; &quot; title=&quot;Only in Oregon&quot; src=&quot;http://farm3.static.flickr.com/2472/3951209191_f847d04df3.jpg&quot; alt=&quot;Only in Oregon - Voodoo Donuts&quot; width=&quot;500&quot; height=&quot;375&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Only in Oregon - Voodoo Donuts&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;Dan gave a LinuxCon lightning talk at Linux on yet another high-level security feature: &lt;a href=&quot;http://lwn.net/Articles/353203/&quot;&gt;Sandbox X&lt;/a&gt;, which extends the &lt;a href=&quot;http://blog.namei.org/2009/05/29/selinux-sandbox-and-ambient-authority/&quot;&gt;SELinux sandbox&lt;/a&gt; mechanism to the desktop by running applications in  isolated X servers via &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/Xephyr&quot;&gt;Xephyr&lt;/a&gt;.  He gave a full talk on this the Linux Plumbers Conference, slides of which may be found &lt;a href=&quot;http://selinuxproject.org/~jmorris/lpc09_security_microconf_slides/dan-walsh-selinux-sandbox.pdf&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
&lt;div class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.flickr.com/photos/x_jamesmorris/3951222035/in/set-72157622324246417&quot;&gt;&lt;img title=&quot;Dan Walsh - SELinux Sandbox&quot; src=&quot;http://farm3.static.flickr.com/2656/3951222035_ae3a323583.jpg&quot; alt=&quot;Dan Walsh - SELinux Sandbox&quot; width=&quot;500&quot; height=&quot;375&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Dan Walsh - SELinux Sandbox&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;I don&amp;#8217;t have the time to cover everything at LinuxCon &amp;#8212; check the web site for videos and slides.  Also see my &lt;a title=&quot;LinuxCon 2009&quot; href=&quot;http://www.flickr.com/photos/x_jamesmorris/sets/72157622324246417/&quot;&gt;flickr photo set&lt;/a&gt;.  It was a very impressive first conference, with LCA-quality social events and catering (Angela Brown has been quietly studying LCA, in fact) and certainly sets a new standard for such events in North America.  LinuxCon will be held in Boston next year &amp;#8212; I wonder what they&amp;#8217;ll come up with to beat &lt;a href=&quot;http://lwn.net/Articles/353898/&quot;&gt;bacon-maple donuts&lt;/a&gt; for breakfast.&lt;/p&gt;
&lt;p&gt;Following LinuxCon, the second Linux Plumbers Conference was held, and we were fortunate to get a double session for the &lt;a href=&quot;http://linuxplumbersconf.org/ocw/events/2009/tracks/2&quot;&gt;security&lt;/a&gt; microconf (a special thanks to Nivedita Singhvi and team for making this possible).  We had talks on several Linux security projects, including Herbert Xu with an update on the kernel crypto API, Caleb Case on SELinux in Ubuntu, David Safford on IMA, and Casey Schaufler on the Smack application ecosystem (some high-end televisions will soon be shipping with Smack, to isolate the applications of competing content providers).&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;http://linuxplumbersconf.org/ocw/proposals/87&quot;&gt;XACE talk&lt;/a&gt; was very interesting, as we&amp;#8217;re getting close to having workable support for MAC security inside X, which will allow the desktop to be locked down with fine-grained and comprehensive controls.  While typically envisaged for MLS use (e.g. having &amp;#8220;secret&amp;#8221; and &amp;#8220;unclassified&amp;#8221; desktop applications running on the same system), there are also many general purpose scenarios, such as separating your online banking session from your IRC chats.  It will be interesting to see what&amp;#8217;s possible when combining XACE window labeling with Sandbox X &amp;#8212; stay tuned.&lt;/p&gt;
&lt;p&gt;
&lt;div class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://www.flickr.com/photos/x_jamesmorris/3951228343/&quot;&gt;&lt;img title=&quot;XACE and AVC Cow - The future of the secure desktop&quot; src=&quot;http://farm4.static.flickr.com/3433/3951228343_fa43782189.jpg&quot; alt=&quot;XACE and AVC Cow - The future of the secure desktop&quot; width=&quot;500&quot; height=&quot;375&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;XACE and AVC Cow - The future of the secure desktop&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;Slides from the LPC microconf will be at the event web site soon, and I&amp;#8217;ve also made all them available for download &lt;a href=&quot;http://selinuxproject.org/~jmorris/lpc09_security_microconf_slides/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It was a fairly intense week &amp;#8212; three conferences plus the travel to and from Sydney, as well as the merge window opening a few days before.  I&amp;#8217;ve got a few weeks to recover and then it&amp;#8217;s Japan for the &lt;a href=&quot;http://events.linuxfoundation.org/events/kernel-summit&quot;&gt;Kernel Summit&lt;/a&gt; and &lt;a href=&quot;http://events.linuxfoundation.org/events/japan-linux-symposium/&quot;&gt;Japan Linux Symposium&lt;/a&gt;,  stopping in Kuala Lumpur on the way back for &lt;a href=&quot;http://foss.my/2009/&quot;&gt;FOSS.MY&lt;/a&gt; (where I&amp;#8217;ll be covering the latest in SELinux Sandboxing).&lt;/p&gt;
&lt;p&gt;**&lt;/p&gt;
&lt;p&gt;Note that you can now follow my micro-updates on &lt;a href=&quot;http://twitter.com/xjamesmorris&quot;&gt;twitter&lt;/a&gt;, which is bridged from my &lt;a href=&quot;http://identi.ca/jamesm&quot;&gt;identi.ca&lt;/a&gt; account.&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2009-09-29T00:38:39+00:00</dc:date>
	<dc:creator>jamesm</dc:creator>
</item>
<item rdf:about="http://danwalsh.livejournal.com/31604.html">
	<title>Dan Walsh: sVirt presentation at the Red Hat Summit</title>
	<link>http://danwalsh.livejournal.com/31604.html</link>
	<content:encoded>&lt;img border=&quot;0&quot; width=&quot;0&quot; height=&quot;0&quot; src=&quot;http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bHQ9MTI1MzY3MDk*NTQzOCZwdD*xMjUzNjcxMTI4NDczJnA9MTk4NjgxJmQ9ajNsMGd4N2pkayZuPWxpdmVqb3VybmFsJmc9MiZvPTIxYjJmYTYzZDVjYjRiOWQ5NGM3Njc3ZTlmMmU4Yjk4Jm9mPTA=.gif&quot; /&gt;</content:encoded>
	<dc:date>2009-09-23T01:58:51+00:00</dc:date>
	<dc:creator>dwalsh@redhat.com</dc:creator>
</item>
<item rdf:about="http://danwalsh.livejournal.com/31247.html">
	<title>Dan Walsh: How do I use sandbox -X</title>
	<link>http://danwalsh.livejournal.com/31247.html</link>
	<content:encoded>A couple of days ago I&amp;nbsp;blogged about a cool new feature in Fedora 12 called &lt;a href=&quot;http://danwalsh.livejournal.com/31146.html&quot;&gt;sandbox -X.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Today I want to write about how I&amp;nbsp;can use it within Firefox.&lt;br /&gt;&lt;br /&gt; You should not trust any data that I download from the internet.&amp;nbsp; Even trustworthy sites have been hacked with &lt;a href=&quot;http://it.slashdot.org/article.pl?sid=09/02/25/024211&quot;&gt;acroread vulnerabilities&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How do you setup firefox to run sandbox -X evince on pdf files?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;My first attempt failed.&amp;nbsp; Firefox does not allow you to specify a full command string to run downloaded content in, I needed to create a simple shell script.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;cat ~/bin/sandboxevince&lt;br /&gt;#!/bin/sh&lt;br /&gt;/usr/bin/sandbox -X evince $*&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When you create this, remember to &lt;br /&gt;&lt;span&gt;&lt;br /&gt;chmod +x ~/bin/sandboxevince&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In Firefox:&lt;ul&gt;&lt;li&gt;Select the Edit-&amp;gt;Preferences menu item, which brings up the &amp;quot;Firefox Preferences&amp;quot; dialog.&lt;/li&gt;&lt;li&gt;Select &amp;quot;Applications&amp;quot; and entered pdf into the search dialog.&amp;nbsp; This brought up evince as the default.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Select&amp;nbsp; the &amp;quot;use evince&amp;quot; menu and select other.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Select ~/bin/sandboxevince&lt;/li&gt;&lt;li&gt;Save&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Now I go to my&lt;a href=&quot;http://people.fedoraproject.org/~dwalsh/SELinux/Presentations/&quot;&gt; favorite  site,&amp;nbsp; &lt;/a&gt;and select a presentation&lt;br /&gt;&lt;br /&gt;sandbox -X evince runs great !!!&lt;br /&gt;&lt;br /&gt;You can go back and change all your acroread settings to use sandboxevince.&lt;br /&gt;&lt;br /&gt;You can do the same for OpenOffice&lt;br /&gt;&lt;br /&gt;&lt;span&gt;cat ~/bin/sandboxooffice&lt;br /&gt;#!/bin/sh&lt;br /&gt;/usr/bin/sandbox -X ooffice $*&lt;br /&gt;&lt;br /&gt;chmod +x ~/bin/sandboxooffice&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I searched for doc and changed that to use sandboxooffice&lt;br /&gt;&lt;br /&gt;I did notice that some extensions were not in the list.&amp;nbsp; I had to go to a page with a odf file on it and tell firefox to&amp;nbsp; use sandboxooffice for this type for now on.&lt;br /&gt;&lt;br /&gt;BTW,&amp;nbsp;&amp;nbsp; Firefox leaks open file descriptors like a sieve, so I will need to add dontaudit policy to cover these up. Firefox developers know about the leaks but say &amp;quot;they can not do much about the leaks,&amp;nbsp; since plugins get added with leaks all the time.&amp;quot;&lt;br /&gt;&lt;br /&gt;Now I can feel a little safer as I browse the web.&lt;br /&gt;&lt;br /&gt;It would be really great if firefox gave the ability to run all helper apps within a single command. &lt;br /&gt;&lt;br /&gt;Now off to do the same with thunderbird.&lt;br /&gt;</content:encoded>
	<dc:date>2009-09-18T16:11:44+00:00</dc:date>
	<dc:creator>dwalsh@redhat.com</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-5024703430482213163.post-9182037528389825455">
	<title>Dominick Grift: AVC Denials: Example</title>
	<link>http://selinux-mac.blogspot.com/2009/09/avc-denials-example.html</link>
	<content:encoded>&lt;span&gt;SELinux logs policy violations to /var/log/audit/audit.log if audit is installed and enabled. If audit is&lt;br /&gt;not installed or enabled, than SELinux sends policy violation notices to dmesg or /var/log/messages.&lt;br /&gt;&lt;br /&gt;The policy violations that SELinux logs are called AVC denials. AVC is an abbreviation for Access Vector&lt;br /&gt;Cache. Which is the SELinux cache with Access Vectors. Access vectors are the rules that govern access.&lt;br /&gt;&lt;br /&gt;Reading AVC denials properly helps troubleshoot issues. In this article i will talk about, and highlight&lt;br /&gt;some of the information you can retrieve from AVC denials. I will also touch on some of the tools that&lt;br /&gt;assist in listing, parsing and translating SELinux Access Vector Cache denials.&lt;br /&gt;&lt;br /&gt;Example of a AVC denial:&lt;br /&gt;&lt;br /&gt;avc:  denied  { getattr } for  pid=7604 comm=&quot;firefox&quot; path=&quot;/usr/lib64/firefox-3.5.3/firefox&quot; dev=dm-2 ino=1311607&lt;br /&gt;scontext=dgrift_u:dgrift_r:gwibber_t:s0-s0:c0.c1023 tcontext=system_u:object_r:mozilla_exec_t:s0 tclass=file&lt;br /&gt;&lt;br /&gt;The line above provides much information about what has been denied:&lt;br /&gt;&lt;br /&gt;1. What process was denied access.&lt;br /&gt;2. What domain type did the source process operate in when it was denied access.&lt;br /&gt;3. What object or subject was the source process denied access to.&lt;br /&gt;4. What was the object/subject type of the target.&lt;br /&gt;5. What permission was denied.&lt;br /&gt;6. What is the class of the target.&lt;br /&gt;7. What was the process identity of the source.&lt;br /&gt;8. What was the inode number of the target object.&lt;br /&gt;9. What happened.&lt;br /&gt;&lt;br /&gt;Security is about managing interaction. Interaction has a source and a target. Interaction involves atleast&lt;br /&gt;a subject as a source (an interacting party) and a subject or object as a target. The target of the&lt;br /&gt;interaction. Subjects are interacting entities, and object non-interacting entities. Subjects can interact&lt;br /&gt;with object, but subjects can also interact with other subjects.&lt;br /&gt;&lt;br /&gt;The target class in a AVC denial tells us what the class (origin) of the target in an interaction is.&lt;br /&gt;A source of a interaction is always a subject (interacting entity). Object can not interact and thus can&lt;br /&gt;never be a source of an interaction.&lt;br /&gt;&lt;br /&gt;Lets try and connect the dots and see if we can make sense of the example AVC denial above. We will try to&lt;br /&gt;answer each of our 9 questions in the check list:&lt;br /&gt;&lt;br /&gt;1. What process was denied access.&lt;br /&gt;&lt;br /&gt;comm=&quot;firefox&quot; shows use the name of the command that was run. The firefox program was denied access.&lt;br /&gt;&lt;br /&gt;2. What domain type did the source&lt;br /&gt;process operate in when it was denied access.&lt;br /&gt;&lt;br /&gt;scontext=dgrift_u:dgrift_r:gwibber_t:s0-s0:c0.c1023 shows that the source firefox was operating with the&lt;br /&gt;gwibber_t domain type. The type is the third field in the security context tuple.&lt;br /&gt;&lt;br /&gt;3. What object or subject was the source process denied access to.&lt;br /&gt;&lt;br /&gt;path=&quot;/usr/lib64/firefox-3.5.3/firefox&quot; Shows what the target of the source in this interaction was.&lt;br /&gt;&lt;br /&gt;4. What was the object/subject type of the target.&lt;br /&gt;&lt;br /&gt;tcontext=system_u:object_r:mozilla_exec_t:s0 shows the type of the target.&lt;br /&gt;&lt;br /&gt;5. What permission was denied.&lt;br /&gt;&lt;br /&gt;{ getattr } Shows the syscall (permission) that was denied.&lt;br /&gt;&lt;br /&gt;6. What is the class of the target.&lt;br /&gt;&lt;br /&gt;tclass=file shows that the class of the target in our interaction was file.&lt;br /&gt;&lt;br /&gt;7. What was the process identity of the source.&lt;br /&gt;&lt;br /&gt;pid=7604 shows that the process id of the source of our interaction was 7604&lt;br /&gt;&lt;br /&gt;8. What was the inode number of the target object.&lt;br /&gt;&lt;br /&gt;ino=131160 shows that the inode number of the target object in our interaction was 131160.&lt;br /&gt;&lt;br /&gt;9. What happened.&lt;br /&gt;&lt;br /&gt;denied shows that the particular Access Vector was denied.&lt;br /&gt;&lt;br /&gt;We have all the detail that we need to established *what* happend.&lt;br /&gt;&lt;br /&gt;1. The command /usr/bin/firefox was executed but some interacting entity.&lt;br /&gt;2. This command was executed with the gwibber_t domain type.&lt;br /&gt;3. The target of the source /usr/bin/firefox was /usr/lib64/firefox-3.5.3/firefox&lt;br /&gt;4. The type of the target was mozilla_exec_t&lt;br /&gt;5. The source /usr/bin/firefox that operated with the gwibber_t domain type was denied the &quot;getattr&quot;&lt;br /&gt;syscall on the target /usr/lib64/firefox-3.5.3/firefox that had type mozilla_exec_t.&lt;br /&gt;6. The class of the target /usr/lib64/firefox-3.5.3/firefox is a file (the target is a file object)&lt;br /&gt;7. The process of /usr/bin/firefox had the process id of 7604 when this Access vector occured.&lt;br /&gt;8. The inode number of the target file object is 131160&lt;br /&gt;9. Access was denied.&lt;br /&gt;&lt;br /&gt;These are the SELinux facts:&lt;br /&gt;&lt;br /&gt;the /usr/bin/firefox command was denied to get the attributes of the /usr/lib64/firefox-3.5.3/firefox file&lt;br /&gt;source domain type gwibber_t was denied get attribute of a file object with type mozilla_exec_t&lt;br /&gt;&lt;br /&gt;What this means is that there was no rule to allow this access, thus access was denied.&lt;br /&gt;&lt;br /&gt;From here on out things get less obvious:&lt;br /&gt;&lt;br /&gt;We know some facts but this has raised other questions:&lt;br /&gt;&lt;br /&gt;1. Are the types of the source and target correct?&lt;br /&gt;2. We know what was denied but we dont know why.&lt;br /&gt;3. Should we allow this access?&lt;br /&gt;4. Does it signal intrusion?&lt;br /&gt;5. If we allow it access what would be the best way to do it.&lt;br /&gt;6. What are the problems if we do it the other way?&lt;br /&gt;&lt;br /&gt;The reason that these questions are harder to answer is because it depends on the policy that is created by&lt;br /&gt;the policy author. But if you see an AVC denial we can usually narrow the cause down to:&lt;br /&gt;&lt;br /&gt;a. The source and/or the target is mislabelled (wrong type)&lt;br /&gt;b. It is a bug in policy.&lt;br /&gt;c. Intrusion was detected and prevented.&lt;br /&gt;&lt;br /&gt;So let's try to answer all these questions:&lt;br /&gt;&lt;br /&gt;1. Are the types of the source and target correct?&lt;br /&gt;&lt;br /&gt;This is the first thing we must verify. If the types are incorrect than we must correct them first to be able to learn the real reason&lt;br /&gt;about what happend. Objects sometimes get mislabelled. For example if created the object whilst you had SELinux disabled and forgot to&lt;br /&gt;restore the context. Another reason might be that you have moved the file from another location as opposed to copying it, and forgot&lt;br /&gt;the restore the context.&lt;br /&gt;&lt;br /&gt;How do we determine whether the types are correct? Well the answer is that we have to dig into some of the properties of the policy.&lt;br /&gt;We have to put ourselves into the shoes of the policy author.&lt;br /&gt;&lt;br /&gt;To verify whether the type of the source (gwibber_t) is correct we have to ask ourselves which policy module owns this type?&lt;br /&gt;This is a hard question to answer. Really the only way to figure this out is to grep for the gwibber_t type in the source of the&lt;br /&gt;policy. In this case there is a policy module installed called gwibber.&lt;br /&gt;&lt;br /&gt;For example:&lt;br /&gt;&lt;br /&gt;grep -r &quot;type gwibber_t&quot; Modules/&lt;br /&gt;&lt;br /&gt;We are looking for the declaration of the gwibber_t type. Types are usually declared in files with .te suffixes (type enforcement&lt;br /&gt;source policy files)&lt;br /&gt;&lt;br /&gt;So we could narrow our grep a bit:&lt;br /&gt;&lt;br /&gt;grep -r &quot;type gwibber_t&quot; Modules/ | grep &quot;\.te&quot;&lt;br /&gt;&lt;br /&gt;Modules/gwibber.te:type gwibber_t;&lt;br /&gt;Modules/gwibber.te:type gwibber_tmpfs_t;&lt;br /&gt;&lt;br /&gt;The type is declared in the gwibber.te source policy type enforcement file. We can now grep this file for the policy_module&lt;br /&gt;declaration to figure out what the name of the module is:&lt;br /&gt;&lt;br /&gt;grep policy_module Modules/gwibber.te&lt;br /&gt;policy_module(gwibber, 0.0.1)&lt;br /&gt;&lt;br /&gt;The policy module name is gwibber and the version number is 0.0.1, Now we can determine whether this module is installed:&lt;br /&gt;&lt;br /&gt;sudo /usr/sbin/semodule -l | grep gwibber&lt;br /&gt;gwibber 0.0.1&lt;br /&gt;&lt;br /&gt;The module is installed, we know that the type gwibber_t is owned by the gwibber module.&lt;br /&gt;&lt;br /&gt;Now we should figure out what the type of the firefox command is. the firefox command is located in /usr/bin/firefox.&lt;br /&gt;We can use ls -alZ /usr/sbin/firefox to determine the type of this command:&lt;br /&gt;&lt;br /&gt;-rwxr-xr-x. root root system_u:object_r:bin_t:s0       /usr/bin/firefox&lt;br /&gt;&lt;br /&gt;The type of the firefox command is bin_t. This type has a special property that is specific to the policy model. You could look up the&lt;br /&gt;properties of this type the same way that we are currently looking up the properties of type gwibber_t.&lt;br /&gt;&lt;br /&gt;But to not overly complicate things i will explain the main property of the bin_t type.&lt;br /&gt;&lt;br /&gt;The bin_t type is a generic type for executable files in bin and sbin directories. These commands get run with the domain type of the&lt;br /&gt;subject that executed the command. So if a process that was operating with the gwibber_t domain type executed a command with the bin_t&lt;br /&gt;type, than that command would run with the gwibber_t domain type.&lt;br /&gt;&lt;br /&gt;With this in we have to figure out whether processes with the gwibber_t domain type are allowed to execute files with the bin_t type:&lt;br /&gt;&lt;br /&gt;sudo sesearch --allow -s gwibber_t -t bin_t -c file -p execute&lt;br /&gt;Found 1 semantic av rules:&lt;br /&gt;   allow gwibber_t bin_t : file { ioctl read getattr lock execute execute_no_trans open } ;&lt;br /&gt;&lt;br /&gt;The sesearch command queries the policy store and looks if there is a rule which allows the source gwibber_t domain type to execute&lt;br /&gt;target objects of the files class with type bin_t.&lt;br /&gt;&lt;br /&gt;A line is returned confirming that this is allowed. This tells us that the source in our interaction is likely correclty labelled.&lt;br /&gt;This is what happened. Some process that run with the gwibber_t domain type ran /usr/bin/firefox which has the bin_t type causing the&lt;br /&gt;firefox command to run with the gwibber_t domain type.&lt;br /&gt;&lt;br /&gt;Now we need to determine whether the type of our target is correct. In our interaction that fortunatly is pretty easy.&lt;br /&gt;We know the path of our target: /usr/lib64/firefox-3.5.3/firefox&lt;br /&gt;We can run the matchpathcon command to see what type is defined for this location and if that defined type corresponds to the target&lt;br /&gt;type in our avc denial: mozilla_exec_t.&lt;br /&gt;&lt;br /&gt;sudo /sbin/matchpathcon /usr/lib64/firefox-3.5.3/firefox&lt;br /&gt;/usr/lib64/firefox-3.5.3/firefox        system_u:object_r:mozilla_exec_t:s0&lt;br /&gt;&lt;br /&gt;This confirms that the labelling in the interaction is correct for both source and target.&lt;br /&gt;&lt;br /&gt;Sometimes however, the full path of the target is not shown in a avc denial. In that case you can use the inode number to find the&lt;br /&gt;full path:&lt;br /&gt;&lt;br /&gt;find / -inum 131160&lt;br /&gt;/usr/lib64/firefox-3.5.3/firefox&lt;br /&gt;&lt;br /&gt;2. We know what was denied but we dont know why.&lt;br /&gt;&lt;br /&gt;This is another hard question to solve. We are no psychics. We cannot read the mind of the policy author.&lt;br /&gt;We can try:&lt;br /&gt;&lt;br /&gt;Should gwibber be able to run firefox? It should be able to run the default browser yes but in this case (the case where i am the&lt;br /&gt;policy author of the gwibber policy module) it was decided to not allow this funcionality. It is obvious that the gwibber_t domain&lt;br /&gt;type was not allowed the access/see (get attributes) the mozilla executable file with type mozilla_exec_t. So either that was done on&lt;br /&gt;purpose or it is a bug in the policy.&lt;br /&gt;&lt;br /&gt;3. Should we allow this access?&lt;br /&gt;3. Should we allow this access?&lt;br /&gt;4. Does it signal intrusion?&lt;br /&gt;5. If we allow it access what would be the best way to do it.&lt;br /&gt;6. What are the problems if we do it the other way?&lt;br /&gt;&lt;br /&gt;Another tough question. if we allow gwibber_t to get attributes of files with type mozilla_exec_t it will probably want more after&lt;br /&gt;that. Chances are that gwibber wants to execute the file (run firefox), since gwibber is designed to open pages in the default&lt;br /&gt;browser.&lt;br /&gt;&lt;br /&gt;If we want gwibber to be able to open the browser, do we want to allow gwibber_t to run the browser with the gwibber_t type or should&lt;br /&gt;we lets gwibber_t domain transition to the mozilla_t domain type? Well my personal opinion is to domain transition where ever possible&lt;br /&gt;but it depends on the situation. In this case a domain transition from gwibber_t to mozilla_t via mozilla_exec_t would likely be the&lt;br /&gt;best decision. However this requires that policy is written manually to make it do what we want it to do.&lt;br /&gt;&lt;br /&gt;But what if we just want to allow this single access vector? We could use the audit2allow tool to translate the avc denial into policy&lt;br /&gt;language and to create a module. Than we could load the created policy module into the policy store with the semodule command.&lt;br /&gt;&lt;br /&gt;echo &quot;avc:  denied  { getattr } for  pid=7604 comm=&quot;firefox&quot; path=&quot;/usr/lib64/firefox-3.5.3/firefox&quot; dev=dm-2 ino=1311607&lt;br /&gt;scontext=dgrift_u:dgrift_r:gwibber_t:s0-s0:c0.c1023 tcontext=system_u:object_r:mozilla_exec_t:s0 tclass=file&quot; | audit2allow -M&lt;br /&gt;mygwibber; sudo semodule -i mygwibber.pp&lt;br /&gt;&lt;br /&gt;Or we could do it ourselves:&lt;br /&gt;echo &quot;policy_module(mygwibber, 0.0.1)&quot; &gt; mygwibber.te;&lt;br /&gt;echo &quot;require { type gwibber_t, mozilla_exec_t; }&quot; &gt;&gt; mygwibber.te;&lt;br /&gt;echo &quot;allow gwibber.te mozilla_exec_t:file getattr;&quot; &gt;&gt; mygwibber.te;&lt;br /&gt;make -f /usr/share/selinux/devel/Makefile mygwibber.pp&lt;br /&gt;sudo semodule -i mygwibber.pp&lt;br /&gt;&lt;br /&gt;So:&lt;br /&gt;&lt;br /&gt;a. The source and/or the target is mislabelled (wrong type)&lt;br /&gt;&lt;br /&gt;The types were correct.&lt;br /&gt;&lt;br /&gt;b. It is a bug in policy.&lt;br /&gt;&lt;br /&gt;It is a bug in policy because we determined that it is usually behaviour for gwibber to try to run the default browser to display&lt;br /&gt;pages. Either we should allow it gwibber to run the browser (be it with the gwibber_t domain type or by domain transition with the&lt;br /&gt;mozilla_t domain type) or we should make sure that no AVC denials are displayed when gwibber_t tries to access the mozilla executable&lt;br /&gt;file with type mozilla_exec_t.&lt;br /&gt;&lt;br /&gt;The rule that i am going to implement is this:&lt;br /&gt;&lt;br /&gt;dontaudit gwibber_t mozilla_exec_t:file getattr;&lt;br /&gt;&lt;br /&gt;Which says if domain type gwibber_t tries to get attributes of files with type mozilla_exec_t than &quot;dontaudit&quot; which means do not&lt;br /&gt;print an avc denials (e.g. silently deny this)&lt;br /&gt;&lt;br /&gt;That is just my personal preference. Its not something fixed. It is my security decision, whether good or bad.&lt;br /&gt;&lt;br /&gt;c. Intrusion was detected and prevented.&lt;br /&gt;&lt;br /&gt;No not really an intrusion since gwibber is designed to open pages in the default web browser which is firefox. So it is expected&lt;br /&gt;behaviour. However i dont want to allow it. But i dont want to log the AVC denial when it happens either because its not important.&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5024703430482213163-9182037528389825455?l=selinux-mac.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2009-09-17T06:47:46+00:00</dc:date>
	<dc:creator>Dominick &quot;domg472&quot; Grift (noreply@blogger.com)</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-5024703430482213163.post-5249869767884565499">
	<title>Dominick Grift: A perspective on SELinux</title>
	<link>http://selinux-mac.blogspot.com/2009/09/perspective-on-selinux.html</link>
	<content:encoded>&lt;span&gt;&lt;span&gt;Many people think SELinux is complicated. SELinux is actually beautifully simple if you keep in mind that it &lt;/span&gt;&lt;br /&gt;&lt;span&gt;allows you to manage security very granular in computer systems which are very complex.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;In this article i will try to explain the basics of SELinux. The things you need to know to find your &lt;/span&gt;&lt;br /&gt;&lt;span&gt;way around the SELinux environment.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;SELinux can roughly be categorized in a few separate parts (ordered by importance):&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;1. The SELinux framework.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;* 2. The tools to manage SELinux.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;* 3. The policy.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;In this article i will talk about The SELinux framework and the Type enforcement security model.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Knowledge of the SELinux framework is fundamental. If you are familiar with this it will enable you to &lt;/span&gt;&lt;br /&gt;&lt;span&gt;find your way around the rest.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Knowledge of the different SELinux security models is also important in this part i will talk about how &lt;/span&gt;&lt;br /&gt;&lt;span&gt;the Type enforcement security model fits into the SELinux Framework.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;To learn about SELinux you have to know a bit about security and about computer systems.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;What is security? Security is managing parties in an interaction. So for example if you want to secure a &lt;/span&gt;&lt;br /&gt;&lt;span&gt;human sitting on a chair. You have to manage the human and the chair. The human interacts. this is &lt;/span&gt;&lt;br /&gt;&lt;span&gt;called a subject, the chair does not interact and this is called an object. You could create policy that allows &lt;/span&gt;&lt;br /&gt;&lt;span&gt;the human to sit on the chair but not stand on it. Standing on it may cause it to break.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;How do computer systems work? Computer systems are similar. processes are like humans. We call them &lt;/span&gt;&lt;br /&gt;&lt;span&gt;agents. A process therefore is a subject just like the human in my chair example. Processes interact. A &lt;/span&gt;&lt;br /&gt;&lt;span&gt;file in a computer system does not interact. The subject interacts with it. A file is a object. In a &lt;/span&gt;&lt;br /&gt;&lt;span&gt;computer system there are many classes of objects just like there are many kind of classes of object in &lt;/span&gt;&lt;br /&gt;&lt;span&gt;real life. My example was a chair but it could have been a bed or a bike etc. In a computer system a &lt;/span&gt;&lt;br /&gt;&lt;span&gt;object could be a file or a network port. Generally keep in mind that subjects interact and object get &lt;/span&gt;&lt;br /&gt;&lt;span&gt;interacted with.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;So simplified:&lt;/span&gt;&lt;br /&gt;&lt;span&gt;Real life: human, chair, sit&lt;/span&gt;&lt;br /&gt;&lt;span&gt;Computer system: process, file, read&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Humans can be categorized in many classes, the most obvious is man and woman but there are many types of &lt;/span&gt;&lt;br /&gt;&lt;span&gt;different humans. Processes in a computer system can also be categorized in many classes, for example a &lt;/span&gt;&lt;br /&gt;&lt;span&gt;process of a user or a process of a program. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Chairs can also be categorized in many classes. Theres rocket chairs and theres oother chairs as well, &lt;/span&gt;&lt;br /&gt;&lt;span&gt;but they are all chairs and objects. Objects in computer systems can also be categorized. There are &lt;/span&gt;&lt;br /&gt;&lt;span&gt;files and directories etcetera.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;If you want to manage all these subjects and objects than you will want to categorize them. So that you &lt;/span&gt;&lt;br /&gt;&lt;span&gt;can create policy for each.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Subjects interact, objects dont. Lets look at some policy for the examples i gave.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;real life:&lt;/span&gt;&lt;br /&gt;&lt;span&gt;allow man chair:rocket_chair sit;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span&gt;computer system:&lt;/span&gt;&lt;br /&gt;&lt;span&gt;allow user file:dir read;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;So in the real life example we allow a subject: human of the type: man to sit on a chair that is of the &lt;/span&gt;&lt;br /&gt;&lt;span&gt;class rocket_chair.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;In the computer system example we allow a subject: process of the type user to read a file that is of &lt;/span&gt;&lt;br /&gt;&lt;span&gt;the class dir.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Our rule start with allow to signal that we want to allow the rule that follows, than follow our source &lt;/span&gt;&lt;br /&gt;&lt;span&gt;of the interaction. Which is always a subject since subject interact and object do not. Next is the &lt;/span&gt;&lt;br /&gt;&lt;span&gt;target. targets can be either subject or objects. subjects can interact with other subjects. for example &lt;/span&gt;&lt;br /&gt;&lt;span&gt;a man talking with a woman. Next is the class of the target. in our man/woman interaction the class &lt;/span&gt;&lt;br /&gt;&lt;span&gt;would of the target human would be woman. The last part defines the permission. What interaction is &lt;/span&gt;&lt;br /&gt;&lt;span&gt;allowed? in our man/chair example the man is allowed to site on a rocket_chair in our computer system &lt;/span&gt;&lt;br /&gt;&lt;span&gt;example the user process is allowed to read a dir. In our recent man talks to woman example we allow a &lt;/span&gt;&lt;br /&gt;&lt;span&gt;man to talk to a woman.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;So back to SELinux. How does SELinux relates to all this. SELinux is for a large part in the kernel. It &lt;/span&gt;&lt;br /&gt;&lt;span&gt;is a framework. That means that SELinux provides us with some attributes so that we can create policy to &lt;/span&gt;&lt;br /&gt;&lt;span&gt;define what may and what may not. The attributes that SELinux provides are classes and permissions. &lt;/span&gt;&lt;br /&gt;&lt;span&gt;SELinux knows the classes of the parties involved in interaction in a computer system. It knows &lt;/span&gt;&lt;br /&gt;&lt;span&gt;subjects and the different classes of objects. SELinux also knows how subject interact with the &lt;/span&gt;&lt;br /&gt;&lt;span&gt;different object. In the real life example: SELinux knows theres a human interacting with a chair. It &lt;/span&gt;&lt;br /&gt;&lt;span&gt;knows the chair is a rocket chair and it know in what ways humans interact with chairs (sit for example)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;So the framework provides us with the attributes to create rules. What it cannot do is make further &lt;/span&gt;&lt;br /&gt;&lt;span&gt;destictions between different subjects and objects. And to be able to manage everything we must make &lt;/span&gt;&lt;br /&gt;&lt;span&gt;distinctions as much as possible. This is what policy authors do. They make categorize sources and &lt;/span&gt;&lt;br /&gt;&lt;span&gt;targets in an interaction. for example. SELinux knows a human wants to site in a chair. It even knows it &lt;/span&gt;&lt;br /&gt;&lt;span&gt;is a rocket chair. But what if we want to make a destinction between a yellow rocket chair and a red &lt;/span&gt;&lt;br /&gt;&lt;span&gt;rocket chair? We want to be able to allow the human to site in the red rocket chair but not the yellow &lt;/span&gt;&lt;br /&gt;&lt;span&gt;one. SELinux framework does not know the color, we do. This is where types come in.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Policy authors assign types to subjects and objects.  so in the real life example:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;allow human chair:rocket_chair sit;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;allow human_man_type red_chair_type:rocket_chair sit;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;In the computer system:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;allow process file:dir read;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;allow user_process_type home_file_type:dir read;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Types allow us to further categorize the parties in an interaction.&lt;/span&gt;&lt;br /&gt;&lt;span&gt; &lt;/span&gt;&lt;br /&gt;&lt;span&gt;If sufficient for now to know that the SELinux framework provides us with the classes and permission &lt;/span&gt;&lt;br /&gt;&lt;span&gt;attributes and that it allows us the further categorize the source and target in an interaction, be it &lt;/span&gt;&lt;br /&gt;&lt;span&gt;subjects or objects.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Type enforcement is a model where policy is enforcement for interaction between the types of the parties &lt;/span&gt;&lt;br /&gt;&lt;span&gt;involved. The types can be defined by the policy author and the best types depend on the environment. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;In a computer environment you might want to make a destinction between a log file and a library file, a &lt;/span&gt;&lt;br /&gt;&lt;span&gt;program or a user. In a real life environment you might want to make a destinction between man or woman, &lt;/span&gt;&lt;br /&gt;&lt;span&gt;red rocket chair or yellow rocket chair. It depends on what colors rocket chairs exist in you &lt;/span&gt;&lt;br /&gt;&lt;span&gt;environment. Types enable us to define the properties of our environment.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;By default all interaction is forbidden. if we want to allow something we have define what is allowed. &lt;/span&gt;&lt;br /&gt;&lt;span&gt;If there are many types and classes of parties in interaction in an environment you might be able to &lt;/span&gt;&lt;br /&gt;&lt;span&gt;imagine to amount of rules required to manage all this. For now it is sufficient to know that there are &lt;/span&gt;&lt;br /&gt;&lt;span&gt;also ways to group or tag different types.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;If you want a human to be able to sit on all colored rocket chairs you could for example tag the &lt;/span&gt;&lt;br /&gt;&lt;span&gt;red_chair_type and the yellow_chair_type to be colored_chair_types and use the tag to make one single &lt;/span&gt;&lt;br /&gt;&lt;span&gt;rule for both colored chairs.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;allow human_man_type colored_chair_types:rocket_chair sit;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;So that is a very important thing to understand about SELinux and security in general. The enforcement &lt;/span&gt;&lt;br /&gt;&lt;span&gt;of types is the most important security model of SELinux.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Besides the &quot;allow source target:target_class permission;&quot; rules, there is another thing to understand &lt;/span&gt;&lt;br /&gt;&lt;span&gt;and that is called a type transition. You can make one type transition to another type.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;For now it is suffice to know that subject and object types can be triggered to change. Subject types &lt;/span&gt;&lt;br /&gt;&lt;span&gt;can change via rules that define what should happen if a process executes a file and object &lt;/span&gt;&lt;br /&gt;&lt;span&gt;types can transition via rule that define what should happen if a file is created under a certain &lt;/span&gt;&lt;br /&gt;&lt;span&gt;parents type.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Type transitions help you futher categorize parties which will let you define rule for types in certain scenarios.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;This is the basics about SELinux. Types are configured by policy authors. The have special meanings and those meanings can vary per &lt;/span&gt;&lt;br /&gt;&lt;span&gt;policy. So the only thing that really always applies are classes and permissions they stay the same. Types are defined by humans and &lt;/span&gt;&lt;br /&gt;&lt;span&gt;to learn what a certail type is allowed you would have to reference the policy to determine that.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;And that is want you we are often confronted with, types. rules that govern how one type can interact with another. What we dont know &lt;/span&gt;&lt;br /&gt;&lt;span&gt;is what a certain type of a subject is supposed to be allowed to do to a certain type of a object.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;These things can be figured out by referencing the policy and asking yourself the question what is the meaning of the type? what are &lt;/span&gt;&lt;br /&gt;&lt;span&gt;its properties? This is what makes SELinux environments complex because policy is based on a policy authors vision on a system. And &lt;/span&gt;&lt;br /&gt;&lt;span&gt;that vision may differ per policy model and environment. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;SELinux itself is not complicated but if you want to manage a complex system you will have to create many different types and thats &lt;/span&gt;&lt;br /&gt;&lt;span&gt;where SELinux gets complex. If you have a simple system to manage than SELinux will also be simpeler. If you have a simple security &lt;/span&gt;&lt;br /&gt;&lt;span&gt;goal on a complex system you may also be able to implement a simpler policy that is targeted towards just reaching your simple &lt;/span&gt;&lt;br /&gt;&lt;span&gt;security goal.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Eventually its all just subjects, objects, classes and permissions when it comes to the SELinux framework and the type enforcement &lt;/span&gt;&lt;br /&gt;&lt;span&gt;security model. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;The more granular the policy to govern how subject can interact with objects gets,the complexer selinux gets. But this is the strenght &lt;/span&gt;&lt;br /&gt;&lt;span&gt;of SELinux: it allows you to define very granular what is allowed and what not in a system.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Blame the policy author and the policy for the complexity of managing your Security-Enhanced Linux ( i bet the policy author will &lt;/span&gt;&lt;br /&gt;&lt;span&gt;blame Linux ;) )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;A quick note about the tools:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;What are the tools for:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;labeling objects&lt;/span&gt;&lt;br /&gt;&lt;span&gt;parsing access vector denials&lt;/span&gt;&lt;br /&gt;&lt;span&gt;translating access vector denials to policy&lt;/span&gt;&lt;br /&gt;&lt;span&gt;finding suggestions to solutions for access vector denials&lt;/span&gt;&lt;br /&gt;&lt;span&gt;finding what type a object should have&lt;/span&gt;&lt;br /&gt;&lt;span&gt;changing types of objects&lt;/span&gt;&lt;br /&gt;&lt;span&gt;restoring types of objects&lt;/span&gt;&lt;br /&gt;&lt;span&gt;searching rules in the policy database&lt;/span&gt;&lt;br /&gt;&lt;span&gt;mapping linux logins to subject types&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5024703430482213163-5249869767884565499?l=selinux-mac.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2009-09-16T15:41:49+00:00</dc:date>
	<dc:creator>Dominick &quot;domg472&quot; Grift (noreply@blogger.com)</dc:creator>
</item>
<item rdf:about="http://danwalsh.livejournal.com/31146.html">
	<title>Dan Walsh: Cool things with SELinux...  Introducing sandbox -X</title>
	<link>http://danwalsh.livejournal.com/31146.html</link>
	<content:encoded>One of the downsides of working in security is that we seldom get to do cool things.&amp;nbsp; The desktop engineers, VM engineers, even kernel engineers get to&amp;nbsp; show off cool stuff.&amp;nbsp; But security guys usually only ever get to show how we&amp;nbsp; broke something, if that.&amp;nbsp; Sometimes all we can do is say &amp;quot;trust us, it's working.&amp;quot; But I think I have something cool to show off which I'm calling&amp;nbsp; &lt;strong&gt;sandbox -X&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;A little history.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Back in May, I&amp;nbsp;wrote a blog entry describing the&lt;a href=&quot;http://danwalsh.livejournal.com/28545.html&quot;&gt; &amp;quot;SELinux Sandbox&amp;quot;&lt;/a&gt;, , which provides a way to run a filter-type program within a locked-down sandbox.  This allows administrators to take untrusted content, run it through one or  more filters, and be able to trust that the content can't cause the filter programs to do evil things.&lt;br /&gt;&lt;br /&gt; As soon as I&amp;nbsp;released it, I&amp;nbsp;received email asking if It could be used to sandbox Acroread, and I had to say &amp;quot;Sorry, it can't do that&amp;quot;.&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;strong&gt; But why can't it do that?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt; Acroread and&amp;nbsp; most other desktop applications use multiple communication channels, interacting not just with stdin and stdout, but accessing configuration files, directly or using interprocess calls as with GConf, the X server and other applications, and usually have full run of the user's home directory.&amp;nbsp; A bug in a desktop application can be exploited to attack other  processes on the system through any of these channels.&amp;nbsp; Attempting to lock down access to these things usually just causes applications to break, or  at least degrades the user experience.&amp;nbsp; In a nutshell, there was no good,&amp;nbsp; general-purpose way to lock down Acroread, or that matter, any other desktop application.&lt;br /&gt;&lt;br /&gt;Over the years several attempts have been made to lock down Desktop apps, most of which have failed. &amp;nbsp;I&amp;nbsp;have often discouraged policy writers from attempting to write policy to lock down Firefox.&amp;nbsp; The main reason for this is the difficulty of locking down various information flows described above.&amp;nbsp; Tools like firefox are expected to be able to  read and write all over the homedir and need pretty full access to X.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SELinux is all about defining security goals.&amp;nbsp; &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;For example I might have a security goal that firefox application will not send email.&amp;nbsp; So I can check if my policy prevents firefox from sending email.&amp;nbsp; But my security goal can change depending on the content that I want to look at.&amp;nbsp; For whatever reason, I might want to allow OpenOffice to have full access to everything in my homedir when I launch it from the start menu, but when it&amp;nbsp; is launched from firefox on untrusted content, I only want OpenOffice to be able to display, print, or email that content, not my credit card data....&lt;br /&gt;&lt;br /&gt;I introduced xguest a year or so ago, and I've thought about why people liked the concept and the ways people were telling me they were using it.&amp;nbsp; (Xguest is the least privileged user, his homedir is cleared on exit, and he is only able to connect to http ports).&amp;nbsp; I have been told that some people use xguest to go to untrusted sites where they do not want to have bad data left behind. Others have told me they use xguest to run games, to make sure the downloaded games aren't allowed to do evil things.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How could I build a usable &amp;quot;xguest&amp;quot; tool that did this on an app by app basis?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;I started working on sandbox -X.&amp;nbsp; &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The first step was to create a new $HOMEDIR and new /tmp, and mount them over the real $HOMEDIR and /tmp.&lt;ul&gt;&lt;li&gt;sandbox -X creates new empty directories in the $HOMEDIR and /tmp&lt;/li&gt;&lt;li&gt;It labels these sandbox_x_file_t:MCS where MCS&amp;nbsp;is a randomly selected MCS&amp;nbsp;label&lt;/li&gt;&lt;li&gt;it then execs seunshare, specifying the new HOMEDIR&amp;nbsp;and new /tmp, as well as an SELinux context and the command to run&lt;/li&gt;&lt;li&gt;/usr/sbin/seunshare is a new setuid C Program&lt;br /&gt;&lt;ul&gt;&lt;li&gt;seunshare calls unshare (2) to&amp;nbsp; disassociate mount names from the process execution context,&lt;/li&gt;&lt;li&gt;seunshare  bind-mounts the sandbox HOMEDIR&amp;nbsp;and /tmp these over the current $HOMEDIR&amp;nbsp;and /tmp&lt;/li&gt;&lt;li&gt;seunshare then execs the shell under a sandbox_x_t:MCS context&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;When seunshare exits, sandbox&amp;nbsp; -X destroys the contents of the temporary $HOMEDIR&amp;nbsp;and /tmp&lt;/li&gt;&lt;li&gt;sandbox_x_t policy prevents anything running in the sandbox from using the network, touching any user home content, allowing it to only read/write to sandox_x_file_t, basically locking it down.&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;But what about X?&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I&amp;nbsp;decided not to use the X Access Control Extension (XAce) to provide separation since I&amp;nbsp;could never achieve the separation I wanted using it.&amp;nbsp;&lt;/li&gt;&lt;li&gt;I&amp;nbsp;use Xephyr to start a whole new X server. &amp;nbsp;This prevents XClients running within Xephyr from talking directly to the host X Server.&lt;/li&gt;&lt;li&gt;I&amp;nbsp;also use a window manager Matchbox which maximizes the app to the size of the xserver.&lt;/li&gt;&lt;/ul&gt;This gives me a fully locked down desktop session, in which I&amp;nbsp;can run almost any X&amp;nbsp;client application.&lt;br /&gt;&lt;br /&gt;Here are some examples&lt;br /&gt;&lt;br /&gt;&amp;gt;&amp;nbsp;&lt;span&gt;sandbox -X evince ~/Documents/RedHat/selinux_four_things.pdf&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;img src=&quot;http://people.fedoraproject.org/~dwalsh/SELinux/Presentations/sandbox-evince.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;&lt;br /&gt;This sandbox -X&amp;nbsp;session is running evince inside of a sandbox.&amp;nbsp; The sandbox tool actually copied the content into the new HOMEDIR&amp;nbsp;so that evince could see it.&lt;br /&gt;&lt;br /&gt;&amp;gt; &lt;span&gt;sandbox -X xterm&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://people.fedoraproject.org/~dwalsh/SELinux/Presentations/sandbox-xterm.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;&lt;br /&gt;This example lets me explore the locked down environment sandbox -X provides. Note that while I am still running with my UID, I am no longer running under  unconfined_t, but under sandbox_x_client_t:so:c17,c355.&amp;nbsp; There are no files in  my sandboxed home directory.&amp;nbsp; When I try to run a privileged command like sudo I'm not allowed to, and if I try to ssh our or send email, I'll be denied.  I do allow sandbox_x_t to connect to the printer ports to allow the evince  example above to be able to print, but I do not allow it to connect to most other network ports.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What if I want to use sandbox to confine my Firefox session?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;You can specify an alternate SELinux type. For Fedora 12 the sandbox_web_t to allow you to run firefox. sandbox_net_t is also available, which allows full network access.&lt;br /&gt;&lt;br /&gt;&amp;gt; &lt;span&gt;sandbox -X -t sandbox_web_t firefox danwalsh.livejournal.com&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://people.fedoraproject.org/~dwalsh/SELinux/Presentations/sandbox-firefox.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;You can even write your own policy, if you want.&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;sandbox_x_domain_template(sandbox_MYAPP)&lt;br /&gt;allow sandbox_MYAPP_client_t self:tcp_socket create_socket_perms;&lt;strong&gt;&lt;br /&gt;....&lt;br /&gt;&lt;br /&gt;Now I think that is cool... What do you think?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How do I try it out?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt; Install Raw Hide, or Fedora 12 when it comes out.&amp;nbsp; Install the policycoreutils-sandbox package if it is not installed.&amp;nbsp; (Sorry, but after  you install the package you will need to reboot to set up the mount space sharing.)&amp;nbsp; As a user, run: &lt;span&gt;&lt;br /&gt;&lt;br /&gt;sandbox -X COMMAND&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;There are some things I would like to see improved here.&amp;nbsp; &lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The main thing is that the Xephyr window is not resizable, so after the apps starts the app  can not be resized.&amp;nbsp; Maybe the X team will fix this, or provide a rootless X on X server, which would let us allow sandboxed applications to at least communicate with each other.&lt;/li&gt;&lt;li&gt;Cut and Paste does not work, But then, that's kind of the idea.&lt;/li&gt;&lt;li&gt;NFS&amp;nbsp;home directories do not currently work since NFS&amp;nbsp;does not support labeling.&lt;/li&gt;&lt;li&gt;This tool can generate lots of AVC's if you try to do evil stuff within your sandbox.&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;Future goals:&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;We would like to have the sandbox tool prompt you if any of the input to the sandbox has changed, so the user could decide whether or not to save the input.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Maybe allow sandbox to specify only a shared subdirectory of the users homedir, where the sandbox would be allowed to write.&amp;nbsp; You could say allow OpenOffice to save to ~/sandboxout&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;Other ideas welcome.&lt;/strong&gt;</content:encoded>
	<dc:date>2009-09-15T13:17:36+00:00</dc:date>
	<dc:creator>dwalsh@redhat.com</dc:creator>
</item>
<item rdf:about="http://danwalsh.livejournal.com/30837.html">
	<title>Dan Walsh: SELinux four things</title>
	<link>http://danwalsh.livejournal.com/30837.html</link>
	<content:encoded>I wrote this article a while ago to be posted in Red Hat Magazine. &amp;nbsp;But I have been told to post it elsewhere, not sure how to go about getting articles in other on line magazines, but I will post here.&lt;a href=&quot;http://people.fedoraproject.org/~dwalsh/SELinux/Presentations/selinux_four_things.pdf&quot;&gt;&lt;span&gt;&lt;strong&gt;&lt;br /&gt;&lt;br /&gt;What is SELinux trying to tell me?&lt;br /&gt; The 4 key causes of SELinux errors.&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I&amp;nbsp;also have a &lt;a href=&quot;http://people.fedoraproject.org/~dwalsh/SELinux/Presentations/selinux4things.odp&quot;&gt;slide deck&lt;/a&gt; presentation I&amp;nbsp;give that follows this paper.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;</content:encoded>
	<dc:date>2009-09-14T20:15:40+00:00</dc:date>
	<dc:creator>dwalsh@redhat.com</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-5024703430482213163.post-6304393634263861890">
	<title>Dominick Grift: Some SELinux experiences that i want to share with you:</title>
	<link>http://selinux-mac.blogspot.com/2009/09/some-selinux-experiences-that-i-want-to.html</link>
	<content:encoded>&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;Disclaimer: I am just thinking out loud here, and i am sure that in some cases i do not fully understand the complexity or the underlying ideas of, and behind the issues that i am about to describe. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;1. (not fedora specific)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;User space processes own files on tmpfs for pulseaudio. These user space processes want to read (and unlink) each others pulseaudio files on tmpfs. To facilitate this, it requires much policy and also by allowing a user space process to read another user space processes pulseaudio tmpfs files , you also give it access to the user space process non pulseaudio tmpfs files. which might not be desired.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;maybe somehow we can implement a attribute for user space processes pulseaudio files on tmpfs. and/or create a generic interface for this interaction. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;3. (fedora specific)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;xserver policy has been modified and xserver_user_x_domain_template and xserver_x_domain_template have been added. These templates could be used instead of xserver_user_client and xserver_common_app.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;By calling these templates other xserver related policy in the domain that call it can for a large part also be removed. The interfaces mentioned above include most of the required xserver policy for user and application processes to function.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;There are some notable exceptions:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;xserver_rw_xdm_home_files&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Also it appears that the interfaces mentioned above were designed with mls policy in mind. To be able to enable xserver object manager in a way that could benefit targeted policy i think a solution could be found so that xserver policy can be easily extended to provide a basic multi purpose useable policy for targeted as well ( maybe create interfaces for the various scenarios ) so that interfaces (or maybe tunable policy) can be called to make xserver object manager work in a basic form and/or specific form in targeted policy.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;So that the admin can easily extend xserver policy for his custom needs without having to write local policy himself or having to implement his own custom interfaces, at least as much as possible.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;An example of stuff that currently has no policy implemented but in many cases is required is for example the functionality to change mouse button (for left handed people) and the use of acceleration (3d)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Also we should keep in mind that there is a allow_write_xshm boolean that probably should be used where ever required instead of allowing access to this by adding fixed policy.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;My point is that i think xserver object manager could at least to some extend be usable in a targeted policy, and that it could be extendible. Currently in fedora there is no easy way to make openoffice work nice with XACE. I cannot extend its policy due to 'not within scope issues' (user domain prefixes). The java SELinux implementation suffers similar issues.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;3. (not fedora specific)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;This also brings me to staff and user domains. These domains do not have access to some devices (cannot rw to dri, cannot rw to wifi, webcam etc) maybe we should implement some booleans for this with a $1. e.g. userdom_$1_use_dri etc. or maybe create users domains that add this functionality. I think this is a requirement to makes confined domains acceptable for day-to-day GUI use. Also the allow_execmem boolean is a bit too coarse. Lets face it we are not close to a working none execmem/execstack environment yet. For example nautilus requires it, totem, etc. many of these apps run in the user domain. Setting allow_execmem would in my view be overkill to just allow a single user domain execmem permission. allow_$1_execmem, where $1 is a specific user domain would in my view be a reasonable temporary solution. In either case i do not think we should just ignore the issue.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;The &quot;easy&quot; access to execmem and devices like dri are in my view important to help make confined user domains usable for the general public in a GUI environment.&lt;/span&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5024703430482213163-6304393634263861890?l=selinux-mac.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2009-09-10T05:43:12+00:00</dc:date>
	<dc:creator>Dominick &quot;domg472&quot; Grift (noreply@blogger.com)</dc:creator>
</item>
<item rdf:about="http://etbe.coker.com.au/?p=1358">
	<title>Russell Coker (security): Ownership of Laptops for Work</title>
	<link>http://etbe.coker.com.au/2009/09/04/ownership-laptops-work/</link>
	<content:encoded>&lt;p&gt;&lt;a href=&quot;http://www.australianit.news.com.au/story/0,24897,26021336-15306,00.html&quot;&gt;Jetstar has announced some new changes to the way they manage their IT infrastructure [1]&lt;/a&gt;.  Some parts of it are obvious things that people have been doing (or wanting to do) for a long time &amp;#8211; such as using thin clients with no moving parts (not even cooling fans).&lt;/p&gt;
&lt;p&gt;But the really interesting part is their plan for managing laptops.  They are using a virtual machine image on a flash storage device that can run on any system.  So deploying a new system will only require installing the virtual machine software and inserting a storage device.  Moving a user&amp;#8217;s environment to a different system (EG due to hardware failure) will merely require inserting the storage device in a new system.&lt;/p&gt;
&lt;p&gt;That raises the issue of ownership of the device.  It seems that Jetstar are considering using systems that are owned by employees, Stephen Tame said &amp;#8220;&lt;b&gt;In two years&amp;#8217; time a laptop should be a condition of employment, and this includes bringing your own laptop&lt;/b&gt;&amp;#8220;.  When introducing that I expect there would be some resistance by employees who don&amp;#8217;t want to spend the money.  However&lt;br /&gt;
&lt;a href=&quot;http://etbe.coker.com.au/2008/06/16/cost-owning-car/&quot;&gt;I have previously estimated the costs of running a car [2]&lt;/a&gt; which works out to more than $1,650 per year for insurance, registration, basic maintenance, and the interest that would have been received if the car had not been purchased and the money had been invested.  Laptops can be purchased for significantly less than $1000 (currently the EeePC 701 is on sale for $219) and can be expected to last for three years or more if you are careful to avoid damage and don&amp;#8217;t run demanding software.  So a job that demands ownership of a laptop is asking for a much smaller financial investment than one which demands ownership of a car.  But I expect that many employees won&amp;#8217;t see it that way.&lt;/p&gt;
&lt;p&gt;The up-side for employees to bring their own laptops is that they can choose a model that suits their preference.  Everyone has preferences regarding the size of keys on a keyboard, the distance that they travel and the pressure required to register a key-press.  For desktop machines it&amp;#8217;s easy to swap keyboards but for laptops there is no such option.  Then there&amp;#8217;s the issue of the trade-off between physical size and weight vs display resolution, personal preferences in this regard will depend to some extent on the body mass and strength of the employee.&lt;/p&gt;
&lt;p&gt;Now there are a number of security issues related to personal laptop use.  Obviously if the laptop has a Trojan-horse program installed then it could sniff any data that goes past on the network.  The most trivial case of this could be addressed by running VPN software inside the emulated environment.  This would force a Trojan to compromise the virtual environment (EG by modifying the address space) or to compromise the files on disk (insert a Trojan inside the filesystem for the virtual environment).  The former would be tricky to get right while the latter would be trivial.  Both attack methods have been used in the past and proven to work.  This is why many companies prohibit their employees from connecting their own systems to the corporate network.&lt;/p&gt;
&lt;p&gt;One example of a system that is based around running virtual machines for all desktop operations is &lt;a href=&quot;http://en.wikipedia.org/wiki/NetTop&quot;&gt;the NSA NetTop project [3]&lt;/a&gt;.  NetTop involves a SE Linux system that runs multiple instances of VMWare for different desktop environments.  Each VMWare instance runs at a particular sensitivity level and uses a VPN connection to a back-end network running at the same level.  The aim of NetTop is to prevent applications in the different VMWare instances from communicating with each other.  The significant difference between a typical NetTop installation and what JetStar might be doing is that NetTop runs on a secure base &amp;#8211; it&amp;#8217;s hardware that has been purchased and installed by a military organisation and is run in a secure facility.  While personal laptops that are owned by employees can be expected to be infected with viruses and Trojan-horse programs.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://etbe.coker.com.au/2009/02/01/employment-packages/&quot;&gt;In the past I have suggested that an employment package for any skilled employee should include some budget for buying things that facilitate the work [4]&lt;/a&gt;.  It seems to me that a company like JetStar could best achieve their goals by assigning a budget to each new employee to buy a machine for their use.  The employee then gets to choose a machine up to that budget &amp;#8211; which would only be for work purposes.  Then when the employee leaves or the machine becomes due for replacement it could be sold at auction.  When considering all the costs involved in hiring a new person, spending something less than $1,000 to buy a laptop is nothing.&lt;/p&gt;
&lt;p&gt;Finally if buying machines for work purposes, you really don&amp;#8217;t want employees using them for surfing porn.  Porn sites tend to be particularly bad for malware distribution.  To reduce the incidence of such problems I think that work machines should have their sound hardware disabled and laptops should not be purchased with overly large displays.  There is no need to make work machines totally unsuitable for porn surfing (which would also make them less effective for work), but making them less suitable than a $500 budget PC should dramatically reduce the scope of the problem.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[1]&lt;a href=&quot;http://www.australianit.news.com.au/story/0,24897,26021336-15306,00.html&quot;&gt; http://www.australianit.news.com.au/story/0,24897,26021336-15306,00.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[2]&lt;a href=&quot;http://etbe.coker.com.au/2008/06/16/cost-owning-car/&quot;&gt; http://etbe.coker.com.au/2008/06/16/cost-owning-car/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[3]&lt;a href=&quot;http://en.wikipedia.org/wiki/NetTop&quot;&gt; http://en.wikipedia.org/wiki/NetTop&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[4]&lt;a href=&quot;http://etbe.coker.com.au/2009/02/01/employment-packages/&quot;&gt; http://etbe.coker.com.au/2009/02/01/employment-packages/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded>
	<dc:date>2009-09-04T10:40:13+00:00</dc:date>
	<dc:creator>etbe</dc:creator>
</item>
<item rdf:about="urn:lj:livejournal.com:atom1:paulmoore:4969">
	<title>Paul Moore: NetLabel Presentation and Tutorial at LinuxCon</title>
	<link>http://paulmoore.livejournal.com/4969.html</link>
	<content:encoded>In a few weeks I'll be giving a &lt;a href=&quot;http://events.linuxfoundation.org/lc09d3&quot;&gt;presentation&lt;/a&gt; and &lt;a href=&quot;http://events.linuxfoundation.org/lc09td3&quot;&gt;tutorial&lt;/a&gt; on NetLabel at &lt;a href=&quot;http://events.linuxfoundation.org/events/linuxcon&quot;&gt;LinuxCon&lt;/a&gt;.  Both as a speaker and as a member of the audience I've always felt that the best presentations/tutorials are the ones that cover what the audience is really interested in hearing.  The only problem is that in most cases the presentation material needs to be generated before the presenter ever meets the audience.  With that in mind, I'd like to reach out to all of you reading this entry and ask two simple questions:&lt;br /&gt;&lt;br /&gt; * What would you like to see in a NetLabel presentation?&lt;br /&gt; * What would you like to learn in a NetLabel tutorial?  &lt;br /&gt;&lt;br /&gt;Don't be shy now ;)</content:encoded>
	<dc:date>2009-09-03T22:04:23+00:00</dc:date>
</item>
<item rdf:about="http://d.hatena.ne.jp/kaigai/20090902/1251897393">
	<title>KaiGai Kohei: Japan Linux Symposium 2009 Early Registration</title>
	<link>http://d.hatena.ne.jp/kaigai/20090902/1251897393</link>
	<content:encoded>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;転載。&lt;/p&gt;
			&lt;p&gt;10月21日〜23日に開催のJapan Linux SymposiumのEarly Registration期間が〜9/15まで延長になったようだ。&lt;/p&gt;
			&lt;p&gt;特に学生さんは３日間通しのパスが$50USなので、この値段なら身銭切って申し込んでもいいと思う。&lt;/p&gt;
			&lt;p&gt;内容は英語でプロ向けだけど、お仕事としてＯＳＳ開発をやっている人がどんな事をやっているのか見てくるのは悪くないと思う。&lt;/p&gt;
			&lt;blockquote&gt;
			&lt;p&gt;==&amp;#62;国際技術シンポジウム「第１回Japan Linux Symposium」、早期割引期間延長！&lt;/p&gt;
			&lt;p&gt;早期割引の期間を２週間延長しました。9月15日までの登録者には、300USドルの参加料が200USドルになる割引特典が適用されます。&lt;/p&gt;
			&lt;p&gt;ぜひお早めに登録を！&lt;/p&gt;
			&lt;p&gt;(すでに登録をいただいている皆様、ご登録ありがとうございます。当日の参加をお待ちしております）&lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://www.linuxfoundation.jp/news-media/announcements/2009/08/jls&quot; target=&quot;_blank&quot;&gt;http://www.linuxfoundation.jp/news-media/announcements/2009/08/jls&lt;/a&gt;&lt;/p&gt;
			&lt;br /&gt;

			&lt;p&gt;==&amp;#62;アカデミック割引を追加&lt;/p&gt;
			&lt;p&gt;　Linuxの開発をより幅広く、特に学生の皆様に理解していただくために学生向けの特別参加料金を設定いたしました。学生の皆様、ぜひこの機会に登録ください。&lt;/p&gt;
			&lt;p&gt;対象者：学生（高校・高専・大学・短大在籍）の方&lt;/p&gt;
			&lt;p&gt;アカデミック割引参加料　$50&lt;/p&gt;
			&lt;p&gt;登録の際にアカデミックDiscount code &quot;JLS_50&quot;を入力してください。&lt;/p&gt;
			&lt;p&gt;なお、当日の受付で学生証などの提示をお願いいたします。&lt;/p&gt;
			&lt;p&gt;==&amp;#62;基調講演のみの登録は残りはわずか！&lt;/p&gt;
			&lt;p&gt; お早めに登録いただくか、セッションの方に登録をお願いいたします。&lt;/p&gt;
			&lt;p&gt;セッションに登録いただければ基調講演にもご参加いただけます。&lt;/p&gt;
			&lt;/blockquote&gt;
			&lt;p&gt;駄菓子菓子。今になってアカデミック向け$50USのディスカウントなんて出したら、申込み済みの学生さんがもしいたら怒らないだろうか？むむぅ。&lt;/p&gt;
		&lt;/div&gt;</content:encoded>
	<dc:date>2009-09-02T13:16:33+00:00</dc:date>
	<dc:creator>kaigai</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-7673377107942959487.post-7277917062087725929">
	<title>Andrey Markelov (SELinux): Развитие проекта sVirt в Fedora 11/RHEL</title>
	<link>http://markelov.blogspot.com/2009/09/svirt-fedora-11rhel.html</link>
	<content:encoded>&lt;div&gt;Я уже &lt;a href=&quot;http://markelov.blogspot.com/2009/02/svirt.html&quot;&gt;рассказывал&lt;/a&gt; в своем блоге о проекте sVirt, позволяющем изолировать при помощи мандатного контроля доступа гипервизор и отдельные виртуальные машины друг от друга. Если вы еще не знакомы с концепцией MAC, MLS и MSC, то вы можете почитать соответствующие&lt;a href=&quot;http://markelov.blogspot.com/search/label/SELinux&quot;&gt; записи в моем блоге с меткой SELinux&lt;/a&gt;.  Не буду повторяться, а просто скажу, что уникальные преимущества в плане защищенности, доступные в операционных системах общего назначения с открытым исходным кодом уже можно живьем &quot;пощупать&quot; и в системах виртуализации (Fedora 11), а с выходом RHEL 5.4 и внедрить на предприятии.&lt;br /&gt;&lt;br /&gt;В изначально реализованной политике для RHEL5, xend_t - домен в котором работает процесс Xen, не мог обойтись без права писать/читать не только в файлы xen_image_t, но и в физические устройства fixed_disk_device_t, поскольку в промышленной среде использование образов дисков вместо отдельных разделов, например на LVM, имеет ряд недостатков. Таким образом, злоумышленник из процесса xend_t в случае компрометации одной из виртуальных машин в принципе мог бы получить доступ как к самому хосту, так и к другим виртуальным машинам.&lt;br /&gt;&lt;br /&gt;Данная проблема в целом распространяется и на другие системы виртуализации - от Microsoft, VMware и других вендоров. От &quot;zero-day&quot; уязвимости в ОС виртуальной машины и гипервизора одновременно не застрахован никто. Однако в случае Fedora (и в будующем RHEL) решениеп такой проблемы теперь есть. Одной частью решения в Fedora 11 стал появившийся в libvirt механизм подключаемых модулей. Теперь специальный plug-in динамически присваивает метки файлам\устройствам &quot;на лету&quot; и стартует виртуальные машины в соответствующем домене SELinux. По умолчанию в Fedora процессы виртуальных машин работают в доменах svirt_t, а фалы/устройства имеют тип svirt_image_t.&lt;br /&gt;&lt;br /&gt;Описанное выше позволит защитить только операционную систему хоста (гипервизор) от атаки осуществляемой изнутри скомпрометированной виртуальной машины. Для изоляции же виртуальных машин друг от друга разработчики используют поддержку мультикатигорийной безопасности (подмножество реализации многоуровневой безопасности с одним и тем-же уровнем безопасности s0). За подробностями опять-же отправляю к предыдущим постам в блоге. Соответствующие друг-другу контексты и домены виртуальных машин с совпадающими категориями (как я уже сказал уровень безопасности при этом используется один и тот же) присваиваются libvirt случайным образом. Однако, при необходимости, администратор может задать их и статически. Подробнее почитать про sVirt можно в &lt;a href=&quot;http://danwalsh.livejournal.com/30565.html&quot;&gt;блоге Дэна Уолша&lt;/a&gt;, отвечающего в Red Hat за разработку SELinux.&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7673377107942959487-7277917062087725929?l=markelov.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2009-09-01T13:45:02+00:00</dc:date>
	<dc:creator>Andrey Markelov (noreply@blogger.com)</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/kaigai/20090830/1251590757">
	<title>KaiGai Kohei: まっちゃ445勉強会</title>
	<link>http://d.hatena.ne.jp/kaigai/20090830/1251590757</link>
	<content:encoded>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;虎ノ門、金沢工業大学のサテライトキャンパスをお借りして開催された、&lt;a href=&quot;http://d.hatena.ne.jp/ripjyr/20090829/1249856252&quot; target=&quot;_blank&quot;&gt;まっちゃ445勉強会&lt;/a&gt;に行ってきた。&lt;/p&gt;
			&lt;p&gt;自分としてはあまり馴染みのない分野なので、結構よい勉強になった。&lt;/p&gt;
			&lt;p&gt;体感的には、一日に100〜200通の迷惑メールを受け取っているような気がする。&lt;/p&gt;
			&lt;p&gt;まぁ、OSSの開発などでメールアドレスを公開しているのでこの辺は仕方ない。&lt;/p&gt;
			&lt;p&gt;本当にこんなのに引っ掛かる人が居るのかいな？と思うメールばかりだが、&lt;/p&gt;
			&lt;p&gt;まぁ、100万通ばら撒けば、1万人に1人のバカが100人は釣れるというロングテール戦略なんだろう。&lt;/p&gt;
			&lt;p&gt;浅見さんのS25Rと、佐藤さんのtaRgreyの話は、迷惑メールをばら撒くのに使われているボットネットワークの特性を活かした対策。&lt;/p&gt;
			&lt;p&gt;確かに、IP逆引きが不可能、相手先MTAの再送要求に応えないとか、接続を10秒で切っちゃうとかは通常のメールサーバでは考えにくい実装なので、迷惑メール発信源の判定基準としては面白い。&lt;/p&gt;
			&lt;p&gt;ただ、この辺の対策手法の寿命ってどれくらいだろうかとも考えてみた。&lt;/p&gt;
			&lt;p&gt;IP逆引きの問題は置いておいても、SMTPを真面目に実装しているかどうかというのは誰かがライブラリを作ってしまえば終わるんじゃないの？とか、MTAからの応答を遅延させてもスレッドを100個作って同時に複数のメールサーバに接続すれば、ボットの目的である『短時間に大量のメール』は達成されそうな気がする。&lt;/p&gt;
			&lt;p&gt;まぁ、一個の方法に頼らないというのはセキュリティの鉄則。&lt;/p&gt;
			&lt;p&gt;須藤さんの milter manager の話は面白かった。&lt;/p&gt;
			&lt;p&gt;というのも、迷惑メール対策ではなく、機密情報の漏えい対策として自分の考えていたアイデアに応用が効きそうだったので。&lt;/p&gt;
			&lt;p&gt;不勉強にして知らなかったが、milterというのはMTAが受信したメールの処理を進める際に、背後で動いてメールをどう処理するか（DROPするとか、ヘッダを挿入するとか）の意思決定を行うモジュール。&lt;/p&gt;
			&lt;p&gt;SELinuxの場合、getpeercon()というAPIにソケットのファイルディスクリプタを与えると、TCP/IP接続の相手先プロセスのセキュリティコンテキスト（ユーザ権限みたいなもの）を取得できる。&lt;/p&gt;
			&lt;p&gt;セキュリティコンテキストというのは所詮文字列なので、一旦、OSの機能を使ってそれを取得すれば、あとはSELinuxのポリシーに基づいてメールの配送を許可するか否かという意思決定を行うだけになる。&lt;/p&gt;
			&lt;p&gt;SELinuxのポリシーはファイルシステム等へのアクセス制御にも効いてくるので、、、&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt; 秘密情報にアクセスできるユーザは、メールに秘密情報が混じっている可能性があるので、外部へのメール送信を許可しない。&lt;/li&gt;
				&lt;li&gt; 秘密情報にアクセスできないユーザは、メールに秘密情報が混じっている可能性はないので、外部へのメール送信を許可してもよい。&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;というような判断を実装できそう。（アイデア自体は前から考えていたが）&lt;/p&gt;
			&lt;p&gt;あとで聞いてみたところ、milter自体はMTAの外側で動作するので、MTA自身がgetpeercon()を呼んで、文字列としてセキュリティコンテキストをmilterに渡す拡張が必要っぽいが、こういう pluggable な仕組みがあると、思わぬところで使い道が出てきそうなものだ。&lt;/p&gt;
			&lt;p&gt;懇親会。&lt;/p&gt;
			&lt;p&gt;新橋のTAPAで注文用の情報端末をリセットして管理モードでブートさせる会。&lt;/p&gt;
			&lt;p&gt;やっぱり、こういう面子の集まる会で、アルコールとガジェットを与えると、そうなりますねｗ&lt;/p&gt;
		&lt;/div&gt;</content:encoded>
	<dc:date>2009-08-30T00:05:57+00:00</dc:date>
	<dc:creator>kaigai</dc:creator>
</item>
<item rdf:about="http://etbe.coker.com.au/?p=1348">
	<title>Russell Coker (security): Free K-12 Text Books</title>
	<link>http://etbe.coker.com.au/2009/08/29/free-k-12-text-books/</link>
	<content:encoded>&lt;p&gt;&lt;a href=&quot;http://about.ck12.org/&quot;&gt;The CK12 project is developing free (CC by SA) textbooks for the K-12 market (with a current focus on the early years of high school) [1]&lt;/a&gt;.  Their primary aim seems to be flex-books &amp;#8211; text books that can be localised and modified to better suit the needs of the students.  But of course there are many other benefits, &lt;a href=&quot;http://etbe.coker.com.au/2008/05/24/school-bag-weight/&quot;&gt;according to my best estimates storing text books on an ebook reader or one of the lighter NetBooks is necessary to avoid childhooh back injuries [2]&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Another major benefit of flexible text books is the possibility of teaching a wider range of subjects.  A subject does not need the level of interest that is required to get a publishing contract (which generally means acceptance by the education department of a state) to have a text book.  Independent schools and home-schoolers can select subjects that are not in the mainstream curriculum.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://authors.ck12.org/wiki/&quot;&gt;The information for potential authors of text books is here (they didn&amp;#8217;t make it particularly easy to find) [3]&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;One thing I would like to see is a text book about computer security.  I really don&amp;#8217;t think that this would be an overly difficult subject for an 11yo who is interested in computers.  When I was 11 I read a text book on nuclear physics in the form of a comic book, I don&amp;#8217;t think that computer security is inherently more difficult or harder to teach than nuclear physics.  Naturally full coverage would require several texts aimed at different ages.  But that&amp;#8217;s possible too.  It would probably be easiest to start with an age of ~16.  Also as computer security is a subject that is both difficult at one end of the scale and essential at the other it would be necessary to have &lt;b&gt;A&lt;/b&gt; and &lt;b&gt;B&lt;/b&gt; streams (as is done with maths in the Australian education system).&lt;/p&gt;
&lt;p&gt;Please leave a comment if you are interested in participating in the development of computer security related text books.  Incidentally it would be good to get a contributor who has had experience in teaching teenagers even if they don&amp;#8217;t have any knowledge of computer security &amp;#8211; I don&amp;#8217;t expect to find someone with good technical skills and teaching experience.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[1]&lt;a href=&quot;http://about.ck12.org/&quot;&gt; http://about.ck12.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[2]&lt;a href=&quot;http://etbe.coker.com.au/2008/05/24/school-bag-weight/&quot;&gt; http://etbe.coker.com.au/2008/05/24/school-bag-weight/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[3]&lt;a href=&quot;http://authors.ck12.org/wiki/&quot;&gt; http://authors.ck12.org/wiki/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded>
	<dc:date>2009-08-29T04:55:49+00:00</dc:date>
	<dc:creator>etbe</dc:creator>
</item>
<item rdf:about="http://eparis.livejournal.com/891.html">
	<title>Eric Paris: SELinux hardening for mmap_min_addr protections</title>
	<link>http://eparis.livejournal.com/891.html</link>
	<content:encoded>So in the last article I talked about how SELinux systems provide stronger protections against mapping low memory regions for remote attacks, but are weaker against attacks from authenticated users running unconfined.&amp;nbsp; The surprise to users that their SELinux enabled system could be weaker to some class of attacks was labeled CVE-2009-2695.&lt;br /&gt;&lt;br /&gt;After a bit of thought I've decided the best way to address this is for LSMs to abandon the mmap_min_addr tunable altogether.&amp;nbsp; That tunable lets a root user disable protections.&amp;nbsp; Why would an LSM want a root user to be able to control it's protections at all?&amp;nbsp; What it protects should be defined entirely by the kernel and the policy.&amp;nbsp; So, what I've done is to separate out the mmap_min_addr root vs. non-root check and the LSM check.&amp;nbsp; There is a new hard coded at kernel compile time amount of memory protected by the LSM.&amp;nbsp; This is unrelated to the /proc/sys/vm/mmap_min_addr file.&amp;nbsp; You can set that to 0 and the LSM will still be able to protect low memory.&lt;br /&gt;&lt;br /&gt;So in upstream kernels (2.6.30-rc6ish and later) to map the 0 page you will need both CAP_SYS_RAWIO (root) and the SELinux memprotect/mmap_zero permission instead of only needing one or the other.&amp;nbsp; If you set /proc/sys/vm/mmap_min_addr to 0 you will still need the SELinux mamprotect/mmap_zero permission.&lt;br /&gt;&lt;br /&gt;Hurray until the next time someone finds a way to map the 0 page and a null pointer bug in the kernel (lots of the latter as of late)&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;bz_comment_text&quot;&gt;&lt;a href=&quot;http://git.kernel.org/linus/9c0d90103c7e0eb6e638e5b649e9f6d8d9c1b4b3&quot;&gt;http://git.kernel.org/linus/9c0d90103c7e0eb6e638e5b649e9f6d8d9c1b4b3&lt;/a&gt;
&lt;a href=&quot;http://git.kernel.org/linus/8cf948e744e0218af604c32edecde10006dc8e9e&quot;&gt;http://git.kernel.org/linus/8cf948e744e0218af604c32edecde10006dc8e9e&lt;/a&gt;
&lt;a href=&quot;http://git.kernel.org/linus/788084aba2ab7348257597496befcbccabdc98a3&quot;&gt;http://git.kernel.org/linus/788084aba2ab7348257597496befcbccabdc98a3&lt;/a&gt;
&lt;a href=&quot;http://git.kernel.org/linus/1d9959734a1949ea4f2427bd2d8b21ede6b2441c&quot;&gt;http://git.kernel.org/linus/1d9959734a1949ea4f2427bd2d8b21ede6b2441c&lt;/a&gt;&lt;/pre&gt;</content:encoded>
	<dc:date>2009-08-26T14:29:33+00:00</dc:date>
</item>
<item rdf:about="http://danwalsh.livejournal.com/30565.html">
	<title>Dan Walsh: Secure Virtualization Using SELinux (sVirt)</title>
	<link>http://danwalsh.livejournal.com/30565.html</link>
	<content:encoded>&lt;br /&gt;Next week I will be at the &lt;a href=&quot;http://www.redhat.com/promo/summit/2009/&quot;&gt;Red Hat Summit&lt;/a&gt; talking about SELinux, specifically &lt;a href=&quot;http://people.fedoraproject.org/~dwalsh/SELinux/Presentations/svirt.pdf&quot;&gt;sVirt,&amp;nbsp; Secure Virtualization.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;While virtualization seems to be next big thing, providing great opportunities in resource allocation, system management, savings on power and cooling, and the ability to grow and shrink resources depending on demand.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;But what about the security?&amp;nbsp; &lt;br /&gt;&lt;br /&gt;What happens when a cracker breaks into a virtual machine and takes it over?&amp;nbsp; What happens if there is a bug in the hypervisor?&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Before virtualization, we had isolated servers.&amp;nbsp; A cracker taking over one server meant that he controlled just that server. The cracker would then have to launch network attacks against other servers in the environment.&amp;nbsp; System administrators had lots of tools to defend against network attacks on machines: firewalls, network traffic analysis tools, intrusion detection tools, etc.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;After virtualization, we have multiple services running on the same host.&amp;nbsp; If a virtual machine is broken into, the cracker just needs to break though the hypervisor.&amp;nbsp; If a hypervisor vulnerability exists, the cracker can take over all of the virtual machines on the host.&amp;nbsp; He can even write into any virtual host images that are accessible from the host machine.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;This is very scary stuff. The question is not &amp;quot;if&amp;quot;, but &amp;quot;when&amp;quot;.&amp;nbsp; Hacker/cracker conventions are already examining hypervisor vulnerabilities.&amp;nbsp; Crackers have already broken though the xen hypervisor, as I documented in one of my previous &lt;a href=&quot;http://danwalsh.livejournal.com/25265.html&quot;&gt;blogs&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Now let's examine libvirtd/qemu/kvm in Fedora 11.&lt;br /&gt;&lt;br /&gt;libvirtd starts all virtual machines.&amp;nbsp; All virtual machines run as separate processes.&amp;nbsp; Virtual images are stored as files or devices like logical volumes and iscsi targets.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Hmmm, &lt;br /&gt;&lt;br /&gt;What is SELinux really good at?&lt;br /&gt;&lt;br /&gt;It is great at labeling processes, files, and devices.&amp;nbsp; It is great at defining rules on how labeled processes interact with labeled processes, files, and devices. &lt;br /&gt;&lt;br /&gt;Seems like a nice match.&amp;nbsp; SELinux can be used to mitigate the problems of a vulnerability in the hypervisor.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;But, you ask, &amp;quot;Didn't we do this in Red Hat Enterprise Linux 5?&amp;quot;&amp;nbsp; Yes, but we were still vulnerable to the Xen breakout.&lt;br /&gt;&lt;br /&gt;If you read the Xen vulnerability document, it explains the mechanism used to thwart SELinux protection in RHEL5.&amp;nbsp; The cracker realized that the xen process, labeled xend_t, was allowed to read/write all fixed disks labeled fixed_disk_device_t.&amp;nbsp; This allowed the cracker to break out of&amp;nbsp; the SELinux confinement by writing to the physical disk.&amp;nbsp; When I was writing policy for Xen in RHEL5, I had initially required the administrator to label volume xen image devices as xen_image_t.&amp;nbsp; The xen developers thought this was too difficult for the administrators to have to manage, and would cause too many failures.&amp;nbsp; We ran out of time to make the management tool do this automatically.&amp;nbsp; It was decided that usability was more important then security in this instance, and I had to allow this access.&amp;nbsp; I won't make that mistake again. &lt;br /&gt;&lt;br /&gt;In Fedora 11, James Morris, Daniel Berrange, myself and others&amp;nbsp; have added SELinux support to libvirt, in the form of &lt;a href=&quot;http://selinuxproject.org/page/SVirt&quot;&gt;sVirt&lt;/a&gt;.&amp;nbsp; We added a security plug-in architecture to libvirt that defaults to SELinux protection.&amp;nbsp; Theoretically you can use other security architectures.&amp;nbsp; libvirt dynamically labels the image files and starts the virtual machines with the correct labels.&amp;nbsp; This allows us to avoid the problem of the administrator having to remember to set the correct label on the image files and devices.&amp;nbsp; By default all virtual machines in F11 get labeled with the svirt_t type and all image files get the svirt_image_t type.&lt;br /&gt;&lt;br /&gt;SELinux policy has rules that allow the svirt_t processes to read/write svirt_image_t files and devices.&lt;br /&gt;&lt;br /&gt;This protection allows us to protect the host machine from any of its virtual machines.&amp;nbsp; A virtual machine will only be able to interact with the files and devices with the correct labels.&amp;nbsp; A compromised virtual machine would not be allowed to read my home directory, for example, even if the virtual machine is running as root.&lt;br /&gt;However, this &amp;quot;type&amp;quot; protection does not prevent one virtual machine from attacking another virtual machine.&amp;nbsp; We needed a way to label the domains and the image files with the same TYPES, but at the same time, stop virtual machine 1, running as svirt_t, attacking virtual machine 2,&amp;nbsp; which would also be running as svirt_t.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Multi Category Security (MCS) to the rescue!&lt;br /&gt;&lt;br /&gt;When we developed RHEL5 we added Multi Level Security (MLS) support.&amp;nbsp;&amp;nbsp; This involved adding a fourth field to the SELinux context.&lt;br /&gt;&lt;br /&gt;Originally in RHEL4 the SELinux context consisted of three fields (&amp;quot;USER:ROLE:TYPE&amp;quot;).&amp;nbsp; In RHEL5 the SELinux context consists of four fields (&amp;quot;USER:ROLE:TYPE:MLS&amp;quot;).&amp;nbsp; For example, files in the home directory could be labeled &amp;quot;system_u:system_r:user_home_t:TopSecretRecipe&amp;quot;.&amp;nbsp; The MLS labels define a sensitivity level (s0-s15) and category of the data (c0.c1023), TopSecretRecipe in the example above is a human-readable translation of a field like s15:c0.c36.&amp;nbsp; The MLS label allows MLS machines to not only label the file based on its use, user_home_t in this example, but also by the sensitivity and nature of its content, &amp;quot;TopSecretRecipe&amp;quot;.&lt;br /&gt;&lt;br /&gt;This field was only used in MLS policy.&amp;nbsp; We attempted to make use of it in our default policy (&amp;quot;targeted&amp;quot;), by only defining a single sensitivity level (&amp;quot;s0&amp;quot;) and allowing administrators to define categories.&amp;nbsp; We called this Multi Category Security (MCS).&amp;nbsp; The goal was to allow administrators and users to label their files based on the nature of their contents.&amp;nbsp; For example, system_u:object_r:database_t:PatientRecord could be a database which contained patient records.&amp;nbsp; For multiple reasons, MCS has not been&amp;nbsp; widely used.&amp;nbsp; I believe you are still better off defining a new SELinux type patient_record_database_t -- MCS does not afford the richness of access control that you can express with standard SELinux types.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;When we were developing sVirt, though, we realized that we could use MCS to provide us separation between two virtual machines running with the same SELinux type, svirt_t.&amp;nbsp; We designed libvirt to assign a different randomly-selected MCS label to each virtual machine and its associated virtual image.&amp;nbsp; libvirt guarantees that the MCS fields it selects are unique.&amp;nbsp; SELinux prevents different virtual machines&amp;nbsp; running with different MCS fields from interacting with each other or any of their content.&lt;br /&gt;&lt;br /&gt;For example, libvirt creates two virtual machines with these labels:&lt;br /&gt;&lt;br /&gt;&lt;table width=&quot;80%&quot; height=&quot;88&quot; cellspacing=&quot;1&quot; cellpadding=&quot;1&quot; border=&quot;1&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Name&lt;/td&gt;&lt;td&gt;Virtual Machine Process label&lt;/td&gt;&lt;td&gt;Virtual Machine Image Label&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Virtual Machine 1&lt;/td&gt;&lt;td&gt;system_u:system_r:svirt_t:s0:c0,c10&lt;/td&gt;&lt;td&gt;system_u:object_r:svirt_image_t:s0:c0,c10&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Virtual Machine 2&lt;/td&gt;&lt;td&gt;system_u:system_r:svirt_t:s0:c101,c230&lt;/td&gt;&lt;td&gt;system_u:object_r:svirt_image_t:s0:c101,c230&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;SELinux prevents virtual machine 1 (system_u:system_r:svirt_t:s0:c0,c10) from accessing virtual machine 2's image file (system_u:object_r:svirt_image_t:s0:c101,c230) -- the virtual machines can not attack each other.&lt;br /&gt;&lt;br /&gt;These are the labels libvirt assigns.&lt;br /&gt;&lt;br /&gt;&lt;table width=&quot;80%&quot; height=&quot;215&quot; cellspacing=&quot;1&quot; cellpadding=&quot;1&quot; border=&quot;1&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Name&lt;/td&gt;&lt;td&gt;SELinux Context&lt;/td&gt;&lt;td&gt;Description&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Virtual Machine Processes&lt;/td&gt;&lt;td&gt;system_u:system_r:svirt_t:MCS1&lt;/td&gt;&lt;td&gt;MCS1 is a randomly selected MCS field.&amp;nbsp; Currently we support ~500,000 labels.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Virtual Machine Image&lt;/td&gt;&lt;td&gt;system_u:object_r:svirt_image_t:MCS1&lt;/td&gt;&lt;td&gt;Only svirt_t processes with the same MCS fields are able to read/write these image files and devices.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Virtual Machine Shared Read/Write content&lt;/td&gt;&lt;td&gt;system_u:object_r:svirt_image_t:s0&lt;/td&gt;&lt;td&gt;All svirt_t processes are allowed to write to the svirt_image_t:s0 files and devices.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Virtual Machine Shared Shared Read Only content&lt;/td&gt;&lt;td&gt;system_u:object_r:svirt_content_t:s0&lt;/td&gt;&lt;td&gt;All svirt_t processes are able to read files/devices with this label.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Virtual Machine images&lt;/td&gt;&lt;td&gt;system_u:object_r:virt_content_t:s0&lt;/td&gt;&lt;td&gt;When a virtual machine exits, its image file is relabeled to the system default, which usually is virt_content_t:s0,&amp;nbsp; No svirt_t virtual processes are allowed to read files/devices with this label.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt; We also added the ability to do static labeling to sVirt.&amp;nbsp; Static labels allow the administrator to select a particular label, including the MCS/MLS field,&amp;nbsp; for a virtual machine.&amp;nbsp; The  virtual machine will always be started  with that label.&amp;nbsp; Administrator who run static virtual machines are responsible for setting the correct label on the image files.&amp;nbsp; libvirt will never modify the label of a statically-labelled virtual machine's content. This allows the sVirt component to run in an MLS&amp;nbsp;environment.&amp;nbsp; You can run multiple virtual machines on a libvirt system at different sensitivity levels. &lt;br /&gt;</content:encoded>
	<dc:date>2009-08-24T19:37:11+00:00</dc:date>
	<dc:creator>dwalsh@redhat.com</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-5240359826706545510.post-7134186085478035392">
	<title>Thomas Biege (Security): SELinux on openSUSE 11.2 Milestone 6</title>
	<link>http://thetoms-random-thoughts.blogspot.com/2009/08/selinux-on-opensuse-112-milestone-6.html</link>
	<content:encoded>&lt;p&gt;&lt;br /&gt;&lt;a href=&quot;http://en.opensuse.org/SELinux&quot;&gt;SELinux can be enabled via YaST's bootloader module easily now&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.blogcounter.de/&quot; id=&quot;bclink&quot; title=&quot;kostenloser Counter fuer Weblogs&quot;&gt;&lt;span id=&quot;bccount&quot;&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.blogcounter.de/&quot;&gt;&lt;img alt=&quot;Weblog counter&quot; src=&quot;http://track.blogcounter.de/log.php?id=thetom_blog&quot; /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;br /&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5240359826706545510-7134186085478035392?l=thetoms-random-thoughts.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2009-08-24T07:45:55+00:00</dc:date>
	<dc:creator>Thomas (noreply@blogger.com)</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/kaigai/20090822/1250907751">
	<title>KaiGai Kohei: 農業政策</title>
	<link>http://d.hatena.ne.jp/kaigai/20090822/1250907751</link>
	<content:encoded>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;修士論文のテーマが農業経済学だったので、最後にこれは付記しておきたい。&lt;/p&gt;
			&lt;p&gt;&lt;span&gt;民主党の所得保障政策は世紀の愚策で百害あって一利なし&lt;/span&gt;&lt;/p&gt;
			&lt;p&gt;農地の流動化が中々進まないので道半ばであるものの、基本的に自民党は、大規模で意欲ある農業経営体（農家を含む）に生産を集中させる事で、国内の農業基盤を強化する事を主張している。&lt;/p&gt;
			&lt;p&gt;一方、民主党は農家の赤字補填を基本とする『戸別所得保障制度』を打ち出している。アホか。&lt;/p&gt;
			&lt;p&gt;日本の農業基盤が脆弱なのは、戦後GHQの農地改革によって農地が分割された結果、規模の零細な農業経営体が大量に生まれた事に起因する。加えて、農地の資産価値は市街化区域に対して低く抑えられているが、場合によっては転用が認められ、農家に莫大な利益をもたらす事になる。しかし、農地転用の基準が不透明であるために「利益はでないけどとりあえず持っておく」的な行動を誘発し、農業生産に絶対必要な農地の集約が進まなかった。&lt;/p&gt;
			&lt;p&gt;（これに関しては、&lt;a href=&quot;http://www.amazon.co.jp/exec/obidos/search-handle-url?%5Fencoding=UTF8&amp;amp;search-type=ss&amp;amp;index=books-jp&amp;amp;field-author=%E7%A5%9E%E9%96%80%20%E5%96%84%E4%B9%85&quot; target=&quot;_blank&quot;&gt;明治学院大学・神門善久教授&lt;/a&gt;の著作を参照されたい。）&lt;/p&gt;
			&lt;p&gt;（ちなみに、数年前まで農地法の縛りで企業は農地を所有できなかった。小泉内閣の時にこれを緩和、一定要件の下で株式会社が農地を保有できるようになった。）&lt;/p&gt;
			&lt;p&gt;そもそも、生産費用と販売価格の差額の補填なんて事をしたら、本来は淘汰されるべき水準の農家でさえも事業を継続できる事になり、一向に農地の集約が進まず、ますます高コストな農産物が生まれるのは目に見えている。&lt;/p&gt;
			&lt;p&gt;日本の農家で所得が1,000万円を越えるような農家はわずか1.5%で、大半は、農業だけで食っていくのは難しいレベル。&lt;/p&gt;
			&lt;p&gt;だが、選挙では数が多い方が強い。言い換えれば、これは農業政策ではなく選挙対策なんだろう。&lt;/p&gt;
			&lt;p&gt;税金で総額2.6兆円の買収とはまったく恐れ入る。&lt;/p&gt;
			&lt;p&gt;結局、税金と高価な農産物という事で、このコストは消費者が負担する事になるわけか。馬鹿馬鹿しい。&lt;/p&gt;
			&lt;p&gt;あともう一つ。&lt;/p&gt;
			&lt;p&gt;食料自給率という言葉に惑わされてはならない。&lt;/p&gt;
			&lt;p&gt;仮に、カロリーベースで100%の自給率を達成できたとしても、その生産には機械を動かす必要がある。&lt;/p&gt;
			&lt;p&gt;機械には石油が必要だが、日本では石油は出ない。牛や豚の飼育には飼料が必要だが、その原材料はどこから調達するのか？&lt;/p&gt;
			&lt;p&gt;都営地下鉄の売店で売っている雑誌『WEDGE（９月号）』に面白い記事が載ってあった。ロシアの農場を使って日本の技術で農産物を生産するという話。これは読んでおいて損はない話しだと思う。&lt;/p&gt;
			&lt;p&gt;兎に角、国内に目を向けるだけじゃなくって、友好国に日本資本で農業生産拠点を作るとか、色々と戦略的に取り組んでも良いと思うのだが…。&lt;/p&gt;
			&lt;p&gt;一時の人気取りのために、先人の築いた財産を国民が白蟻のように食い潰すのは全くもってコリゴリだ。&lt;/p&gt;
		&lt;/div&gt;</content:encoded>
	<dc:date>2009-08-22T02:22:31+00:00</dc:date>
	<dc:creator>kaigai</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/kaigai/20090822/1250907750">
	<title>KaiGai Kohei: 雇用・労働問題</title>
	<link>http://d.hatena.ne.jp/kaigai/20090822/1250907750</link>
	<content:encoded>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;自民党は総花的だが、基本的には労働者の職業訓練および『70歳はつらつ現役プラン』が中心で、労働者の能力向上を通じた雇用機会の確保を狙っているように見える。&lt;/p&gt;
			&lt;p&gt;一方、民主党は製造業派遣の禁止と、最低賃金の引き上げ（\1,000/時）を明記しており、より弱者救済の色合いが濃い。&lt;/p&gt;
			&lt;p&gt;また、両党ともに、非正規労働者の正社員化を促進するとしている。&lt;/p&gt;
			&lt;p&gt;私からすれば、余計な事をしないという点で自民党案の方がベターである。&lt;/p&gt;
			&lt;p&gt;そもそも、労働市場にとってのここ20年間の最も大きな環境の変化といえば、中国・インドといった人口大国がグローバル市場に参入してきた事で、大きな流れとしては、これら地域の安価な労働力を使わなければ、各企業は価格競争力を維持できなくなったという事が挙げられる。&lt;/p&gt;
			&lt;p&gt;一方、正社員に対する身分保障が強すぎる（解雇・賃下げなど）ために、企業は既に雇用した労働力を削減する事がなかなか難しい。そのため、若年層の雇用を絞ってグローバルな環境変化への対応を行おうとした。それが就職氷河期・ロストジェネレーションと呼ばれる世代である。&lt;/p&gt;
			&lt;p&gt;そして、そういった環境の中で、日本国内での雇用機会を維持するためのアイデアが労働者派遣であった。&lt;/p&gt;
			&lt;p&gt;つまり、問題の本質は正規雇用と非正規雇用の対立などではなく、正社員の身分保障という規制がグローバル環境の変化に対する企業の対応を阻害し、その結果、産業の空洞化を防ぐための回避策だったと考える事ができる。&lt;/p&gt;
			&lt;p&gt;数年前に議論になりかけたが、解雇・賃下げルールの明確化を言っている政党が無いのがまったく残念である。&lt;/p&gt;
			&lt;p&gt;非正規雇用者の待遇を正社員に近付ける努力も必要だが、一方で、正社員の&quot;特権&quot;を時代に即したものに変えていく必要もある。民主党を応援している労働組合などは基本的に正社員の利害を守るための組織だが、それで割を食っているのは若い世代なのだ。&lt;/p&gt;
			&lt;p&gt;民主党がこの政策を実行したら、間違いなく失業者は増え、正社員一人あたりの負担は増えるだろう。&lt;/p&gt;
			&lt;p&gt;ちなみに、最低賃金の \1,000/時 への引き上げはある方法を使えば雇用を損なう事なく可能と思われる。&lt;/p&gt;
			&lt;p&gt;それは、物価水準を1.5倍にして、1ドル=150円にする事。&lt;/p&gt;
			&lt;p&gt;ただし、円建て資産の価値を根本的に棄損する（が、国の借金は目減りする）ほか、&lt;/p&gt;
			&lt;p&gt;年金生活者の生活を直撃する事になるだろう。&lt;/p&gt;
		&lt;/div&gt;</content:encoded>
	<dc:date>2009-08-22T02:22:30+00:00</dc:date>
	<dc:creator>kaigai</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/kaigai/20090822/1250907749">
	<title>KaiGai Kohei: 少子化対策</title>
	<link>http://d.hatena.ne.jp/kaigai/20090822/1250907749</link>
	<content:encoded>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;自民党は『幼児教育費（３〜５歳）の無償化』、民主党は『年額31万2,000円の子供手当ての創設』を主張している。&lt;/p&gt;
			&lt;p&gt;育児支援に対して幅広い支援が必要というのは、概ね全ての政党で合意している事だが、経済的支援にのみ注目している事に異議を唱えたい。&lt;/p&gt;
			&lt;p&gt;というのも、可処分所得が増えても、インフラ（例：保育所、幼稚園）が不足しているために十分なサービスを供給する事ができず、結果として、小さな子供を抱えた両親が自分の時間を育児のために拘束されることになり、その間は（一般に母親は）仕事に就くことができない。&lt;/p&gt;
			&lt;p&gt;両親の片方が仕事に出られない事の代替所得としては、民主党の『年額31万2,000円』ですら十分ではない。&lt;/p&gt;
			&lt;p&gt;両党ともに、保育所の待機児童の問題を提起しているが、総合職でバリバリ働いているお母さんにとっては、保育所の営業時間内に子供を預けて迎えに行くというのは現実的ではなかろう。&lt;/p&gt;
			&lt;p&gt;自分にとってはまだ将来の問題だが、『可処分所得』ではなく『可処分&lt;span&gt;時間&lt;/span&gt;』に注目してもらいたいものだ。&lt;/p&gt;
			&lt;p&gt;例えば、保育所の拡充と使い勝手の向上。仮に20万円/月の負担が必要だとしても、365日24時間預けられる保育園が利用できれば、有能な女性が子育てのためにキャリアを断念すると言った事もなくなるだろう（育児労働をアウトソーシングすると考えれば分かりやすい）。&lt;/p&gt;
			&lt;p&gt;また、育児労働が家庭内で完結せずに市場化する事で、内需の押し上げ効果も期待できる。&lt;/p&gt;
		&lt;/div&gt;</content:encoded>
	<dc:date>2009-08-22T02:22:29+00:00</dc:date>
	<dc:creator>kaigai</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/kaigai/20090822">
	<title>KaiGai Kohei: [俺コメ] 選挙だ選挙だ</title>
	<link>http://d.hatena.ne.jp/kaigai/20090822</link>
	<content:encoded>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20090822080038&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20090822/20090822080038.jpg&quot; alt=&quot;f:id:kaigai:20090822080038j:image&quot; title=&quot;f:id:kaigai:20090822080038j:image&quot; class=&quot;hatena-fotolife&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;衆議院総選挙も折り返し地点。各種世論調査によると民主党が300議席をうかがう勢いとかあるが、どうなる事やら…。&lt;/p&gt;
			&lt;p&gt;私の住んでいる東京５区（目黒区・世田谷区の一部）で立候補しているのは以下の４名&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt; 佐藤ゆかり（自民・現）&lt;/li&gt;
				&lt;li&gt; 手塚よしお（民主・元）&lt;/li&gt;
				&lt;li&gt; 宮本栄（共産・新）&lt;/li&gt;
				&lt;li&gt; 木下まこと（諸派・新）&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;俺は麻生さん大好きっ子だし、&lt;a href=&quot;http://mainichi.jp/select/seiji/09shuinsen/mai/kouji/area_meikan.php?mid=A13005004004&quot; target=&quot;_blank&quot;&gt;佐藤ゆかり氏の政策姿勢&lt;/a&gt;にも賛同なので、選挙区は『佐藤ゆかり』、比例区は『自民党』と書くつもりだ。&lt;/p&gt;
			&lt;p&gt;ただ、それでは面白くないので、一応、真面目に政策を考えてみる事にしたい。&lt;/p&gt;
			&lt;p&gt;まず、大枠として自分は２つの軸を考えている。&lt;/p&gt;
			&lt;p&gt;一つは、経済政策・社会福祉に対して政府がどれくらい関与すべきかという『大きな政府』か『小さな政府』かという軸。&lt;/p&gt;
			&lt;p&gt;『大きな政府』になれば、社会福祉は充実し政府支出は増加（＝伝統的な景気対策）するが、一方で、国民負担が増加すると共に、規制の強化や課税の強化に伴ってイノベーションのダイナミズムは縮小する。&lt;/p&gt;
			&lt;p&gt;逆に『小さな政府』になれば、経済に対する政府部門の関与は縮小し、規制緩和や減税に伴ってイノベーションが創出され、経済全体のパイが拡大すると共に、所得再分配機能の縮小に伴って格差の顕在化や、福祉に対する自助努力が求められる事になる。&lt;/p&gt;
			&lt;p&gt;もう一つの軸は、価値観・国家感に対する『強い政府』か『弱い政府』かという軸。&lt;/p&gt;
			&lt;p&gt;『強い政府』の極端なものが国家主義であり、『弱い政府』の極端なものが無政府主義である。&lt;/p&gt;
			&lt;p&gt;これは、外交・安全保障に対して日本が国際社会の中でどの様な役割を果たすのかという論点であり、歴史観の問題や伝統的な保革イデオロギーの残滓とも言える。&lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://f.hatena.ne.jp/kaigai/20090822081300&quot; class=&quot;hatena-fotolife&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://f.hatena.ne.jp/images/fotolife/k/kaigai/20090822/20090822081300.jpg&quot; alt=&quot;f:id:kaigai:20090822081300j:image&quot; title=&quot;f:id:kaigai:20090822081300j:image&quot; class=&quot;hatena-fotolife&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;で、この図は俺の&lt;span&gt;印象&lt;/span&gt;をマッピングしたもの。&lt;/p&gt;
			&lt;p&gt;今回の選挙公約を見る限り、自民・民主ともに政府支出の拡大を掲げており、大きな政府・小さな政府という軸では大きな差は無い。ただ、傾向としては民主党の政策の方が政府支出を拡大させる方向にある（例：子供手当て、農家所得保障など）。自民党の政策では政府支出は経済の安定化装置であり、最終的には民間の活力による成長路線への回帰をうたっている。&lt;/p&gt;
			&lt;p&gt;一方、価値観・国家感の軸では重複する面もあるものの、自民党は『やや強い政府』、民主党は『やや弱い政府』を中心に旧社会党メンバーらをはじめ『弱い政府』方向に広がっているように思える。&lt;/p&gt;
			&lt;p&gt;印象的なのは、自民党党大会では国旗が掲揚されているにも関わらず、民主党の党大会にはそれが無い事。（鹿児島の集会では遺憾な形で掲げられていたようだが…。）&lt;/p&gt;
			&lt;p&gt;僅か１年足らずの村山内閣時代の『村山談話』が未だに禍根を引きずっている事を考えると、４年以内に次の次の選挙があるとはいえ、これには不安を覚えざるを得ない。&lt;/p&gt;
			&lt;p&gt;自分としては『徹底的に小さな政府』と『やや強い政府』あたりが希望なのだが…政党レベルでは受け皿がねぇｗｗｗ&lt;/p&gt;
			&lt;br /&gt;

			&lt;p&gt;さて、いくつか関心のある政策イシューについて検討してみたい。&lt;/p&gt;
		&lt;/div&gt;</content:encoded>
	<dc:date>2009-08-22T00:00:00+00:00</dc:date>
	<dc:creator>kaigai</dc:creator>
</item>
<item rdf:about="http://danwalsh.livejournal.com/30335.html">
	<title>Dan Walsh: Suddenly lots of AVC's in Rawhide.</title>
	<link>http://danwalsh.livejournal.com/30335.html</link>
	<content:encoded>I&amp;nbsp;have tried to encourage people to run SELinux with a more tightly run system,&amp;nbsp; You can remove the unconifned module, and run almost all of your system as unconfined,&amp;nbsp; And you can remove the unconfineduser module if you want to confine all of your users.&amp;nbsp; But in order to have this work for many people, I have to see/fix whatever AVC's would happen with the packages removed. &lt;br /&gt;&lt;br /&gt;Temporarily in Rawhide I have changed the unconfined_domain()&amp;nbsp;interface to set permissive rather then unconfined. &amp;nbsp;This means that the &amp;quot;uncoonfined&amp;quot; domains will still be able to do everything they could before, but they will generate AVC's. &amp;nbsp;&lt;br /&gt;&lt;br /&gt;How do you tell if they are a permissive domain, you can look at the avc SYSCALL&amp;nbsp;record and if it has &amp;quot;success=yes&amp;quot;&amp;nbsp; you have a pretty good idea this is a permissive domain. &amp;nbsp;When the kernel says &amp;quot;success=yes&amp;quot; that means it did not block anything.&lt;br /&gt;&lt;br /&gt;setroubleshoot should also point this out.&lt;br /&gt;&lt;br /&gt;You can also  see the list of permissive domains using seinfo --permissive&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;seinfo --permissive&lt;br /&gt;&lt;br /&gt;Permissive Types: 50&lt;br /&gt;&amp;nbsp;&amp;nbsp; bootloader_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; devicekit_power_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; ModemManager_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; ldconfig_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; smoltclient_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; unconfined_cronjob_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; kdumpgui_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; sandbox_xserver_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; setfiles_mac_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; initrc_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; ada_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; fsadm_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; kudzu_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; lvm_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; mdadm_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; mono_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; wine_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; setroubleshoot_fixit_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; gconfdefaultsm_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; gnomesystemmm_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; prelink_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; anaconda_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; system_cronjob_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; tmpreaper_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; samba_unconfined_net_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; devicekit_disk_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; firstboot_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; samba_unconfined_script_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; httpd_unconfined_script_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; depmod_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; insmod_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; apmd_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; clvmd_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; crond_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; inetd_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; init_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; kdump_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; udev_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; virtd_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; xend_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; rtkit_daemon_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; devicekit_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; remote_login_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; inetd_child_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; unconfined_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; hddtemp_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; ricci_modcluster_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; ptchown_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; useradd_t&lt;br /&gt;&amp;nbsp;&amp;nbsp; xserver_t&lt;br /&gt;&lt;br /&gt;As we get closer to release I&amp;nbsp;will change the domains back to unconfined and remove most of the permissive flags.&lt;br /&gt;&lt;br /&gt;Thanks for your patients and keep send in the bug reports.</content:encoded>
	<dc:date>2009-08-20T13:58:51+00:00</dc:date>
	<dc:creator>dwalsh@redhat.com</dc:creator>
</item>
<item rdf:about="http://etbe.coker.com.au/?p=1340">
	<title>Russell Coker (security): Mail Server Security</title>
	<link>http://etbe.coker.com.au/2009/08/20/mail-server-security/</link>
	<content:encoded>&lt;p&gt;I predict that over the course of the next 10 years there will be more security problems discovered in Sendmail than in Postfix and Qmail combined.  I predict that the Sendmail problems will be greater in number and severity.&lt;/p&gt;
&lt;p&gt;I also predict that today&amp;#8217;s versions of Postfix and Qmail will still be usable in 10 years time, there will be no remote security problems discovered other than DoS attacks.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve been having arguments about MTA security with Sendmail fans for over 10 years.  I would appreciate it if the Sendmail fans would publish their own predictions, then we can wait 10 years and see who is more accurate.&lt;/p&gt;
&lt;p&gt;I don&amp;#8217;t recommend using Qmail (Postfix is what I use).  But I think he wrote code that is unlikely to be exploited.&lt;/p&gt;</content:encoded>
	<dc:date>2009-08-20T04:23:47+00:00</dc:date>
	<dc:creator>etbe</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/kaigai/20090818/1250596607">
	<title>KaiGai Kohei: [SELinux] セキュアOS塾-04</title>
	<link>http://d.hatena.ne.jp/kaigai/20090818/1250596607</link>
	<content:encoded>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;以下の日程で、４回目のセキュアOS塾を開催します。&lt;/p&gt;
			&lt;p&gt;今回は、SELinuxを用いたデータベースのセキュリティ強化機能である SE-PostgreSQL と、Oracleで類似機能を提供する Oracle Label Security を比較しつつ、データベースにおける強制アクセス制御機能の紹介します。&lt;/p&gt;
			&lt;p&gt; 日時：2009年9月4日(金) 19:00〜&lt;/p&gt;
			&lt;p&gt; 場所：日本オラクル 青山センター 13階 S7セミナールーム&lt;/p&gt;
			&lt;p&gt; テーマ：SE-PostgreSQL vs Oracle Label Security&lt;/p&gt;
			&lt;p&gt;詳細は、下記のイベント紹介をご覧ください&lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://www.secureos.jp/index.php?events/jsosjk04&quot; target=&quot;_blank&quot;&gt;http://www.secureos.jp/index.php?events/jsosjk04&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;参加登録は下記のページよりお願いします&lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;http://atnd.org/events/1299&quot; target=&quot;_blank&quot;&gt;http://atnd.org/events/1299&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;（※ 登録には、はてな、mixi、Yahoo!、Livedoor、FlickrのいずれかのIDが必要です）&lt;/p&gt;
			&lt;h4&gt; SE-PostgreSQL vs Oracle Label Security&lt;/h4&gt;
			&lt;p&gt;（講師：海外 浩平、田口 裕也）&lt;/p&gt;
			&lt;p&gt;SaaSやCloudといった言葉に代表されるように、情報システムの&quot;所有&quot;から&quot;利用&quot;という流れは、アウトソースされた巨大データベースへの情報資産の蓄積を加速させています。&lt;/p&gt;
			&lt;p&gt;言うまでもなく、このような環境で利用されるデータベースに対しては、セキュリティの強化は最優先で検討されるべき事項の一つです。&lt;/p&gt;
			&lt;p&gt;OSが&quot;標準&quot;のアクセス制御に加えて、より高度なセキュリティを実現するためSELinuxなどの強制アクセス制御を備えているのと同じように、幾つかのデータベース管理システム（RDBMS）では、SQLの仕様で定義されている&quot;標準&quot;のアクセス制御に加えて、独自の先進的なアクセス制御機構を備えているシステムが存在します。&lt;/p&gt;
			&lt;p&gt;今回のセキュアOS塾で取り上げる、SE-PostgreSQLやOracle Label Securityはその代表格と言えるでしょう。共に、利用者のDBアクセスに対して強制アクセス制御を適用し、しかも行レベルの細粒度で制御を行う事もできます。&lt;/p&gt;
			&lt;p&gt;今回のセキュアOS塾-04では、類似の機能を提供するSE-PostgreSQLとOracle Label Securityを比較する事で、互いのアクセス制御機構の特徴と強みを明らかにします。&lt;/p&gt;
			&lt;p&gt;セキュリティという側面から見たとき、OSSのRDBMSはSaaS/Cloudの基盤になり得るでしょうか？乞うご期待。&lt;/p&gt;
		&lt;/div&gt;</content:encoded>
	<dc:date>2009-08-18T11:56:47+00:00</dc:date>
	<dc:creator>kaigai</dc:creator>
</item>
<item rdf:about="http://etbe.coker.com.au/?p=1328">
	<title>Russell Coker (security): The Lack of Browser Security</title>
	<link>http://etbe.coker.com.au/2009/08/18/lack-of-browser-security/</link>
	<content:encoded>&lt;p&gt;For a long time the use of &lt;a href=&quot;http://en.wikipedia.org/wiki/HTTP_cookie&quot;&gt;HTTP cookies [1]&lt;/a&gt; for tracking the web browsing habits of users has been well known.  But I am not aware of any good solution to the problem.  A large part of the problem is the needless use of cookies, it seems that many blog servers use cookies even though they provide no benefit to the user.  A major culprit in this regard is the Google Analytics service which sets a cookie with a two year expiry time when you first visit a web site.  &lt;a href=&quot;http://www.customizegoogle.com/block-google-analytics-cookies.html&quot;&gt;The CustomizeGoogle.com Firefox plugin allows you to block the Google Analytics cookies [2]&lt;/a&gt; and much more.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s unfortunate that Firefox/Iceweasel seems to lack the cookie management functions of Konqueror.  Konqueror (the KDE web browser) can be configured to prompt the user for the appropriate action when a cookie is offered, the options include once-only accept or reject and permanent accept or reject status for the site in question.  Of course even this has some issues, when a web site is on the &amp;#8220;permanently block cookies&amp;#8221; list it is one that has obviously been viewed intensively on at least one occasion (IE many page views) or viewed on multiple occasions, in some situations this may be a fact that the user does not want revealed.  An option to store a list of the hashes of the names of web sites which should be blocked would be useful.  It&amp;#8217;s also unfortunate that Konqueror (like most browsers) is unable to use Firefox plugins, so given a choice between Konqueror and Firefox I&amp;#8217;m always going to lose some features.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Update:&lt;/b&gt; &lt;a href=&quot;http://blog.andrew.net.au/2009/08/17#firefox_cookie_handling&quot;&gt;Andrew Pollock points out that Firefox does allow you to control when cookies are accepted [5]&lt;/a&gt;.  It&amp;#8217;s listed as &amp;#8220;&lt;b&gt;Keep Until&lt;/b&gt;&amp;#8221; with the value of &amp;#8220;&lt;b&gt;ask me every time&lt;/b&gt;&amp;#8220;.&lt;/p&gt;
&lt;p&gt;The next issue relates to the storage of cookies.  It is a good security feature to have certain types of cookie expire after some period of time.  Unfortunately the expiry process requires that the user run the web browser in question.  So if for example my browser preferences were to change then I would probably end up with the cookies from the old browser remaining in my home directory for years after their planned expiry date.  My home directory has the untouched configuration and data files of many programs that I have not used for four years or more.  I&amp;#8217;m not sure whether any of them include cookies from web browsers (I have used many web browsers over the years).&lt;/p&gt;
&lt;p&gt;I think that the best solution to this problem would be to have a common directory such as &lt;b&gt;~/.session-state&lt;/b&gt; which has files with an MTIME indicating when they should expire.  A program that wants to store such session data could create a subdirectory such as &lt;b&gt;~/.session-state/Firefox&lt;/b&gt; and then use one file per cookie under that directory.  Then the user could have a cron job which deletes all session state files that are older than the current date.  Such a cron job would not need to know anything about the actual data in the files, it would just delete the files that are out of date.  The exact format of the files would be determined by the application, so if there were thousands of cookies (which would lead to a performance problem on some systems if one file was used for each) then there could be one file for each week (if deleting the old cookies as much as 6 days too late is a serious problem then you are probably going to suffer anyway).  Such a state directory could be used for any data which has a fixed expiry time, it would not need to be limited to cookies.&lt;/p&gt;
&lt;p&gt;This would be a minor misuse of the mtime field, but it&amp;#8217;s the most reliable way of implementing this and making it difficult to mess it up (in terms of exposing private data).  Note that the MTIME would not have to be the sole source of such data, an application such as Firefox could reset the MTIMEs on the files to values it considers appropriate (based on file name, file contents, or some metadata stored elsewhere).  It is expected that certain backup/restore operations among other things can result in the timestamp data on files being lost.&lt;/p&gt;
&lt;p&gt;Now cookies are not the extent of the problem.  &lt;a href=&quot;http://www.schneier.com/blog/archives/2009/08/flash_cookies.html&quot;&gt;It seems that Macromedia/Adobe have some similar functionality in the Flash player [3]&lt;/a&gt;, but the insidious thing is that Flash cookies are used to respawn HTTP cookies if the user deletes them!  After reading about that I discovered some Flash cookies that were stored on my laptop since 2005 (which was probably the last time I ran Flash).  It seems that if you desire security you need to first avoid software from companies that are at best disinterested and sometimes seem overtly hostile towards the privacy needs of users &amp;#8211; this is why I haven&amp;#8217;t used Flash on machines that matter to me for many years.  If I had a lot of spare time I would help out with the GNASH project.&lt;/p&gt;
&lt;p&gt;One thing I have been considering is to change my browsing habits to use a different account for untrusted content.  The switch user functionality that has been in most Linux distributions for a few years seems to have the potential to alleviate this.  I am considering setting up a system to allow me to ssh to a guest account to open a web browser window.  Then I can switch to the X desktop that has untrusted web sites open and read them.  It would be nice if I could extend a web browser to add an extra entry to the menu that is displayed when the secondary mouse button is pressed on a link, then I could make that run a script to launch the URL in a new window.  I could also use that when I&amp;#8217;m at home to launch the URL on a different system.&lt;/p&gt;
&lt;p&gt;One thing that I have to do is to get &lt;a href=&quot;http://james-morris.livejournal.com/25640.html&quot;&gt;XGuest (the SE Linux Kiosk Mode) [4]&lt;/a&gt; running in Debian.  It&amp;#8217;s been in Fedora since version 8.  With the XGuest used for untrusted browsing nothing gets stored.&lt;/p&gt;
&lt;p&gt;This is not the extent of security issues related to web browsing.  It&amp;#8217;s just a small set of issues that need to be fixed, we have to start somewhere.&lt;/p&gt;
&lt;p&gt;&lt;ul&gt;&lt;li&gt;[1]&lt;a href=&quot;http://en.wikipedia.org/wiki/HTTP_cookie&quot;&gt; http://en.wikipedia.org/wiki/HTTP_cookie&lt;/a&gt;&lt;/li&gt;&lt;li&gt;[2]&lt;a href=&quot;http://www.customizegoogle.com/block-google-analytics-cookies.html&quot;&gt; http://www.customizegoogle.com/block-google-analytics-cookies.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;[3]&lt;a href=&quot;http://www.schneier.com/blog/archives/2009/08/flash_cookies.html&quot;&gt; http://www.schneier.com/blog/archives/2009/08/flash_cookies.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;[4]&lt;a href=&quot;http://james-morris.livejournal.com/25640.html&quot;&gt; http://james-morris.livejournal.com/25640.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;[5]&lt;a href=&quot;http://blog.andrew.net.au/2009/08/17#firefox_cookie_handling&quot;&gt; http://blog.andrew.net.au/2009/08/17#firefox_cookie_handling&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2009-08-18T06:01:22+00:00</dc:date>
	<dc:creator>etbe</dc:creator>
</item>
<item rdf:about="http://etbe.coker.com.au/?p=1324">
	<title>Russell Coker (security): Why you should maintain old URLs</title>
	<link>http://etbe.coker.com.au/2009/08/17/maintain-old-urls/</link>
	<content:encoded>&lt;p&gt;Below is a message from the &lt;b&gt;thanks&lt;/b&gt; file on my &lt;a href=&quot;http://www.coker.com.au/selinux/play.html&quot;&gt;SE Linux play machine [1]&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Hello from San Juan, Puerto Rico!&lt;br /&gt;
I just found out about this server by reading the SELinux book from O&amp;#8217;Reilly.  The book is pretty old (2004) and I&amp;#8217;m glad to know the URL provided on the book still works!&lt;br /&gt;
All the best,&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;I had forgotten that the URL was included in the book.&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;</content:encoded>
	<dc:date>2009-08-16T21:35:27+00:00</dc:date>
	<dc:creator>etbe</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/himainu/20090812#1250086973">
	<title>Yuichi Nakamura: [SELinux] SELinuxのアクセス制御をアプリに</title>
	<link>http://d.hatena.ne.jp/himainu/20090812#1250086973</link>
	<content:encoded>とあるアプリケーションに対して、SELinuxを使ったアクセス制御を適用できないかと思っており、調べている。 お、まさに↓の人と同じ悩みだ。参考になる。 http://sourceforge.jp/projects/jsosug/lists/archive/users/2008-October/000034.html ↓あたりを読めばなんとなく分かるのだろうか。。  How to Write a Userspace Object Manager   http://www.engardelinux.or ...</content:encoded>
	<dc:date>2009-08-12T14:22:53+00:00</dc:date>
	<dc:creator>himainu</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-15117118.post-8595550265063210024">
	<title>Jeronimo Zucco (selinux): Vídeo - Tchelinux 2009 - Caxias do Sul - Entendendo o SELinux - Security Enhanced Linux</title>
	<link>http://jczucco.blogspot.com/2009/08/video-tchelinux-2009-caxias-do-sul.html</link>
	<content:encoded>Novo vídeo disponível no site &lt;a href=&quot;http://videos.tchelinux.org&quot;&gt;http://videos.tchelinux.org&lt;/a&gt;&lt;br /&gt;Palestra: Entendendo o SELinux - Security Enhanced Linux&lt;br /&gt;Palestrante: Jerônimo Zucco&lt;br /&gt;Data: 13/06/2009&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;http://vimeo.com/6023174&quot;&gt;Tchelinux 2009 - Caxias do Sul - FTEC: Entendendo o SELinux - Security Enhanced Linux&lt;/a&gt; from &lt;a href=&quot;http://vimeo.com/user1676127&quot;&gt;Douglas Schilling Landgraf&lt;/a&gt; on &lt;a href=&quot;http://vimeo.com&quot;&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Apresentação: &lt;a href=&quot;https://sites.google.com/site/zuccoweblog/EntendendooSELinux-SecurityEnhancedLinux.pdf&quot;&gt;https://sites.google.com/site/zuccoweblog/EntendendooSELinux-SecurityEnhancedLinux.pdf&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/15117118-8595550265063210024?l=jczucco.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2009-08-10T10:35:17+00:00</dc:date>
	<dc:creator>Jeronimo Zucco (jczucco@gmail.com)</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/himainu/20090808#1249702662">
	<title>Yuichi Nakamura: [SEEdit] 波地摩</title>
	<link>http://d.hatena.ne.jp/himainu/20090808#1249702662</link>
	<content:encoded>2002年からの種IT開発のまとめとして、 USENIX LISA（AppArmorの論文とか出たところ）に論文出して採択されました。 論文書くのは超大変でした（というかまだ最終版の直し中…） 学術論文っぽい構成の仕方とかあるようで、思考法を変える必要があった。 LISA 09は、波地摩開催です。昔開催されたSELinux Symposiumと同じ場所。     新型インフルエンザにだけはかからないようにしたいけど、 前の週ぐらいに絶妙のタイミングでJapan Linux Symposiumがある…  ...</content:encoded>
	<dc:date>2009-08-08T03:37:42+00:00</dc:date>
	<dc:creator>himainu</dc:creator>
</item>
<item rdf:about="http://d.hatena.ne.jp/himainu/20090808#1249702661">
	<title>Yuichi Nakamura: [セキュアOS][組込み] 組込みとセキュアＯＳ</title>
	<link>http://d.hatena.ne.jp/himainu/20090808#1249702661</link>
	<content:encoded>超久々の更新。 いつの間にやら、色々あった。  TOMOYO Linux TomoyoLinux on Android  http://sourceforge.jp/projects/tomoyo/docs/Part1_CELF_Jamboree_28_TOMOYOLinuxOutline.pdf http://sourceforge.jp/projects/tomoyo/docs/Part2_CELF_Jamboree_28_TOMOYO_on_Android.pdf  SMACK SMACK fo ...</content:encoded>
	<dc:date>2009-08-08T03:37:41+00:00</dc:date>
	<dc:creator>himainu</dc:creator>
</item>
<item rdf:about="http://etbe.coker.com.au/?p=1262">
	<title>Russell Coker (security): New Lamps for Old – Light Changing and Burglary</title>
	<link>http://etbe.coker.com.au/2009/07/29/new-lamps-for-old/</link>
	<content:encoded>&lt;p&gt;A few weeks ago I had a guy from &amp;#8220;enviro saver&amp;#8221; visit my home to replace incandescent globes with CFLs.  The original plan was to deliver a water-saver shower head as well but he told me that because I have solar hot water there are no renewable energy certificates in installing a shower head so I couldn&amp;#8217;t get one.&lt;/p&gt;
&lt;p&gt;The brochure they gave me at my local shopping center when I signed up for this claimed that they are &amp;#8220;acting on a genuine concern about the&lt;br /&gt;
environmental impact of our Australian lifestyle&amp;#8221;.  But it seems that renewable energy certificates and up-selling of Photo-Voltaic systems is the real aim.  I&amp;#8217;ve been planning to get a PV system installed so I&amp;#8217;ll be interested to see what they offer me.&lt;/p&gt;
&lt;p&gt;The CFLs that they gave me appeared to be very cheap ones.  They take about 500ms to start while the better ones appear to take less than 100ms.  It seems to be a reasonable business model to give people a few dollar&amp;#8217;s worth of cheap CFL lights in exchange for a good sales opportunity and some renewable energy certificates.&lt;/p&gt;
&lt;p&gt;This sort of thing has become popular enough that some thieves are copying the plan.  According to the reports people will knock on your door offering free CFL lights, case your home while installing them (got to check every room for old incandescent lights), and then rob it the next week if it looks like there are good things in there.&lt;/p&gt;
&lt;p&gt;The companies that offer a legitimate service of replacing lights apparently don&amp;#8217;t send people knocking on doors.  They have the customers sign up for the service in advance.&lt;/p&gt;
&lt;p&gt;But the solution to such problems seems obvious.  Firstly get the name of everyone who wants to enter your home.  If you signed up for a service then make sure you know who you called.  If someone appears on your doorstep then demand photo ID.  Camera phones are good things, if someone refuses to adequately identify themself then take their picture, note the number of their car, and give the details to the police.&lt;/p&gt;
&lt;p&gt;Keep a log of everything that seems relevant to home security, thieves may attack your home weeks after casing it, so you can&amp;#8217;t rely on your memory.  Also keep a log in a place where it&amp;#8217;s not likely to be stolen, storing it on a computer that is in your home would be a bad idea.&lt;/p&gt;</content:encoded>
	<dc:date>2009-07-29T09:28:27+00:00</dc:date>
	<dc:creator>etbe</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-5240359826706545510.post-7494387305498081485">
	<title>Thomas Biege (Security): openSUSE 11.2 M4 and SELinux</title>
	<link>http://thetoms-random-thoughts.blogspot.com/2009/07/opensuse-112-m4-and-selinux.html</link>
	<content:encoded>&lt;p&gt;This week was HackWeek, unfortunately I didn't had the time for hacking something because SELinux does not work in Milestone 4.&lt;/p&gt;&lt;p&gt;It looks like the new kernel in Milestone 4 for 11.2 needs some special switches to be pushed to enable SELinux.&lt;/p&gt;&lt;p&gt;&lt;!-- BlogCounter Code START --&gt;The kernel config defines &quot;apparmor&quot; as the default security framework which denys loading the &quot;selinuxfs&quot; etc.&lt;/p&gt;&lt;p&gt;Therefore you need to add the following parameters to the kernel boot parameter: &quot;security=selinux selinux=1 enforcing=0&quot;&lt;/p&gt;&lt;p&gt;I started working on a yast module for SELinux but I doubt I will finish it... if somebody wants to take over, let me know! :-)&lt;/p&gt;&lt;p&gt;Additionally a new &lt;span&gt;libselinux&lt;/span&gt; package was submitted that includes an updated &lt;span&gt;selinux-ready&lt;/span&gt; script. Pavol also submitted a new &lt;span&gt;policycoreutils&lt;/span&gt; package to fix a build failure.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.blogcounter.de/&quot; id=&quot;bclink&quot; title=&quot;kostenloser Counter fuer Weblogs&quot;&gt;&lt;span id=&quot;bccount&quot;&gt;kostenloser Counter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.blogcounter.de/&quot;&gt;&lt;img alt=&quot;Weblog counter&quot; src=&quot;http://track.blogcounter.de/log.php?id=thetom_blog&quot; /&gt;&lt;/a&gt; - &lt;/p&gt;&lt;br /&gt;&lt;!-- BlogCounter Code END --&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5240359826706545510-7494387305498081485?l=thetoms-random-thoughts.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2009-07-24T13:21:57+00:00</dc:date>
	<dc:creator>Thomas (noreply@blogger.com)</dc:creator>
</item>
<item rdf:about="http://blog.namei.org/?p=212">
	<title>James Morris: 2009 SELinux Developer Summit schedule published</title>
	<link>http://blog.namei.org/2009/07/24/2009-selinux-developer-summit-schedule-published/</link>
	<content:encoded>&lt;p&gt;We&amp;#8217;ve just published the &lt;a title=&quot;SELinux developer summit 2009 schedule&quot; href=&quot;http://selinuxproject.org/page/Developer_Summit_2009/Schedule&quot;&gt;schedule&lt;/a&gt; for this year&amp;#8217;s &lt;a title=&quot;SELinux developer summit 2009 home page&quot; href=&quot;http://selinuxproject.org/page/Developer_Summit_2009&quot;&gt;SELinux Developer Summit&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;From the announcement:&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;This year's event will be divided into two main sessions.

The first will be for traditional conference presentations which
were accepted via the CfP:

  * Labeled NFS Community Involvement - Dave Quigley (NSA)
  * Update on Flask/TE Support for X - Eamon Walsh (NSA)
  * Work on a Higher-Level Policy Language - James Carter (NSA)
  * Video Streaming in Policy Confined Environments - Philip Tricca (USAF)
  * A New Policy Infrastructure for SELinux Joshua Brindle (Tresys)
  * Policy Distribution Joshua Brindle (Tresys)
  * Refpolicy and Userspace Joshua Brindle (Tresys)
  * Analysis of Flask Policies in VM Systems Trent Jaeger (PSU) 

Aside from Josh's talks (which are combined into one 60-minute slot),
these are 30-minute slots.  For speakers, the recommended format is
20-minutes of presenting and 10-minutes of Q&amp;amp;A.

The second main session, after lunch, is intended to be fully
collaborative in that everyone in attendance may (and should) participate.
This is divided into three sections:

  * Lightning talks, 5 minutes each.  Any attendee may propose a lightning
    talk via the wiki or on the day.

  * Development sessions.  This is a flexible format where developers can
    work in small self-organized groups on specific tasks, taking
    advantage of the fact that we're all in the same place for the day.
    We'll discuss this further on the event mailing list -- it's important
    to identify tasks, teams and goals beforehand, and also to make sure
    everyone is set up to get straight to work on the day.

  * General project discussion.  We'll spend about an hour discussing
    project and development issues.  Candidate agenda items should
    first be posted to the event mailing list, and the agenda will be
    finalized immediately prior to the event.

For attendees who are yet to do so, ensure you are registered for
LinuxCon, which is co-hosting the event for us:

&lt;a href=&quot;http://events.linuxfoundation.org/events/linuxcon&quot;&gt;http://events.linuxfoundation.org/events/linuxcon&lt;/a&gt;

LinuxCon registration is a requirement for attending the SELinux Developer
Summit.  The current discounted registration rate ends on August 15th.&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;The development sessions idea comes from last year&amp;#8217;s development-oriented &lt;a title=&quot;foss.in web site&quot; href=&quot;http://foss.in/&quot;&gt;FOSS.IN&lt;/a&gt;, which I wrote about &lt;a title=&quot;foss.in 2008 wrap up&quot; href=&quot;http://blog.namei.org/2008/12/06/fossin2008-wrapup/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you&amp;#8217;re still considering whether to attend the SELinux Developer Summit, keep in mind that in addition to being part of &lt;a title=&quot;LinuxCon 2009&quot; href=&quot;http://events.linuxfoundation.org/events/linuxcon&quot;&gt;LinuxCon&lt;/a&gt;, there&amp;#8217;s also &lt;a title=&quot;Linux Plumbers Conference 2009&quot; href=&quot;http://linuxplumbersconf.org/2009/&quot;&gt;Linux Plumbers&lt;/a&gt; directly following that at the same venue, which includes a general Linux &lt;a href=&quot;http://lwn.net/Articles/341240/&quot;&gt;security microconf&lt;/a&gt;.  Travel budgets are tight for everyone this year, so hopefully the co-location of these events will help make a business case for people who are still working on travel approval.&lt;/p&gt;
&lt;p&gt;For those who can&amp;#8217;t make it, we&amp;#8217;ll try and ensure that all available materials and minutes from the event are published in a timely manner.   I&amp;#8217;d encourage those who are able to attend to blog/dent/tweet anything related to the event that they feel might be useful to others.&lt;/p&gt;</content:encoded>
	<dc:date>2009-07-24T02:05:53+00:00</dc:date>
	<dc:creator>jamesm</dc:creator>
</item>
<item rdf:about="http://danwalsh.livejournal.com/30084.html">
	<title>Dan Walsh: Confining the unconfined. Oxymoron?</title>
	<link>http://danwalsh.livejournal.com/30084.html</link>
	<content:encoded>When we first designed targeted policy, we defined a domain that allowed users and administrators to login and have the same access privileges they would have had if SELinux was disabled.&amp;nbsp; Similarly, we wanted to allow third party applications to be installed and run without requiring the administrator/user to write special policy rules for these applications.&amp;nbsp;&amp;nbsp; They would just work.&lt;br /&gt;&lt;br /&gt;We designed the unconfined domain for this.&lt;br /&gt;&lt;br /&gt;The unconfined domain originally was written as a rule like&lt;br /&gt;&lt;br /&gt;allow UNCONFINED_DOMAIN *:* *;&lt;br /&gt;&lt;br /&gt;meaning processes running as the unconfined_domain are allowed to do everything SELinux can deny.&amp;nbsp; Unconfined domains are thus an exception to the way an SELinux system is usually written.&lt;br /&gt;&lt;br /&gt;Over time we have had requests to add exceptions to the &amp;quot;unconfined can do anything&amp;quot; rule.&lt;br /&gt;&lt;br /&gt;We confine the unconfined domain in a&amp;nbsp; couple of different ways.&lt;br /&gt;&lt;br /&gt;One way to confine an unconfined domain is via process transitions.&amp;nbsp; We can write rules to specify that an unconfined_domain will transition into a different, confined, domain when it executes a program with a certain label.&lt;br /&gt;&lt;br /&gt;On most targeted systems, the init scripts run as initrc_t, an unconfined domain.&amp;nbsp; When an init script executes a file labeled httpd_exec_t, the process transitions to the httpd_t domain, a confined domain.&amp;nbsp; Another process that transitions from an unconfined domain to a confined one is the unconfined_t domain, the domain used by unconfined users.&amp;nbsp;&amp;nbsp; For example, when the unconfined user tries to set up a vpn connection using vpnc, the vpnc program transitions to vpnc_t, a confined domain. Currently in Rawhide, I count around 50 transitions from the unconfined_t domain to other domains.&lt;br /&gt;&lt;br /&gt;# sesearch --allow -s unconfined_t -c process -p transition | wc -l&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 50&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;A second way to confine the unconfined domains is to wrap specific allow rules within a boolean.&lt;br /&gt;&lt;br /&gt;We have changed the line&lt;br /&gt;&lt;br /&gt;allow UNCONFINED_DOMAIN *:* *;&lt;br /&gt;&lt;br /&gt;to something like&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Use any Linux capability.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; allow $1 self:capability all_capabilities;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; allow $1 self:fifo_file manage_fifo_file_perms;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Userland object managers&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; allow $1 self:nscd all_nscd_perms;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; allow $1 self:dbus all_dbus_perms;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; allow $1 self:passwd all_passwd_perms;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; allow $1 self:association all_association_perms;&lt;br /&gt;&lt;br /&gt;....&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; allow $1&amp;nbsp; self:process ~{ transition dyntransition execmem execstack execheap };&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; tunable_policy(`allow_execheap',`&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Allow making the stack executable via mprotect.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allow $1 self:process execheap;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ')&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; tunable_policy(`allow_execmem',`&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Allow making anonymous memory executable, e.g.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # for runtime-code generation or executable stack.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allow $1 self:process execmem;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ')&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;Wrapping the access within booleans gives the administrator the ability to decide whether or not to add limited confinement to the unconfined domains.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;For example, we restrict the unconfined users from executing memory that is both writable and executable at the same time.&amp;nbsp; This access can be tuned using these booleans: allow_execheap, allow_execmem, allow_execstack, allow_execmod.&lt;br /&gt;&lt;br /&gt;Denying this access allows us to stop a lot of buffer overflows from being exploited.&amp;nbsp; If a user downloads content that can cause applications like acroread or evince to overflow a buffer, these checks will prevent the execution of code in corrupted memory, protecting the user.&amp;nbsp; Since the permission checks prevent the execution of random code, they help secure the system.&lt;br /&gt;&lt;br /&gt;I would like to point out that these checks are trying to protect a user who is not trying to crack the system from being cracked.&amp;nbsp; These checks do nothing to prevent a cracker currently running as unconfined_t from attacking the system.&lt;br /&gt;&lt;br /&gt;Periodically we have added checks to try to harden the machine against broken or malicious applications running as unconfined_t from attacking the machine.&amp;nbsp; Most of these preventions are the equivalent of putting a garden fence around the prison,&amp;nbsp; i.e. they are easily gotten around.&amp;nbsp;&amp;nbsp; If a cracker gets into an SELinux box as unconfined_t, SELinux will prevent him from doing very little, since that is how unconfined_t is designed.&amp;nbsp; It is up to DAC to protect the system.&lt;br /&gt;&lt;br /&gt;Last week, Brad Spengler&amp;nbsp; revealed a vulnerability that allowed him to gain control of the kernel and in doing so is able to disable all security mechanisms including those of LSMs like SELinux.&amp;nbsp; this is a whole new vulnerability, although it is in the same class of bugs as one he reported a couple of years back, and in that case he was also able to turn off SELinux policy enforcement.&amp;nbsp; The mmap_zero check was added to the kernel to control whether or not applications would be allowed to map memory at the zero address.&amp;nbsp; A decision was made to treat this differently on systems with or without SELinux enabled.&amp;nbsp; On systems without SELinux, applications have to run as root or you need to disable the check on the entire system.&amp;nbsp;&amp;nbsp; On systems with SELinux enabled, this is decided by policy, and whether you are root or not is ignored.&amp;nbsp; One application that requires mmap_zero is wine. If you want to run wine apps on an SELinux disabled machine, you need to disable this check, for the entire system.&amp;nbsp; To run wine as a non-root user you need to&lt;br /&gt;lessen the security of every single program on the machine.&amp;nbsp; On a machine with SELinux enabled you can run wine as normal user, and still have the protection where all confined domains, even those running as root, can not subvirt the machine.&amp;nbsp; The only confined applications that have the mmap_zero privilege in RHEL5 are vbetool, xdm, xserver and wine.&amp;nbsp; In rawhide,&amp;nbsp; only wine and vbetool have the privilege.&amp;nbsp; All unconfined domains have a boolean, allow_unconfined_mmap_zero, wrapping the mmap_zero privilege.&amp;nbsp; In RHEL5 the boolean is enabled by default for backwards compatibilitally, as mmap_min_addr was introduced during the lifetime of RHEL5, allowing all unconfined domains to mmap_zero.&amp;nbsp; By default in Fedora 10, 11 and rawhide, the boolean is disabled, denying all unconfined domains the mmap_zero access.&amp;nbsp; We are not planning on changing the default in RHEL5, to maintain backawards compatability.&lt;br /&gt;&lt;br /&gt;You can toggle the boolean off by executing &lt;br /&gt;&lt;br /&gt;# setsebool -P allow_unconfined_mmap_low=0&lt;br /&gt;&lt;br /&gt;Note:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; There was a bug in policy in both Fedora and RHEL5 where unconfined_t, ignored the boolean.&amp;nbsp; This means unconfined_t could mmap_zero, whether or not the boolean was turned on. We have decided to change the unconfined_t domain to follow the boolean in updates. Versions: selinux-policy-3.5.13-66.fc10, selinux-policy-3.6.12-66.fc11, selinux-policy-3.6.22-1.fc12.noarch, selinux-policy-2.4.6-253.el5, have the fix.&lt;br /&gt;&lt;br /&gt;Brad figured out that unconfined_t domain ignores the boolean and is always allowed to mmap_zero.&amp;nbsp; The default logged in user on a targeted SELinux system has the ability to mmap_zero.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;But I question whether or not this is even worth doing.&amp;nbsp; We are putting a speed bump in front of a determined cracker.&amp;nbsp; If a cracker is logged in to a machine as the unconfined_t user he can easily compile the executable described by Brad, change its context to vbetool_exec_t, and then use runcon to execute the script with the mmap_zero privilege.&lt;br /&gt;&lt;br /&gt;$ /usr/sbin/getsebool allow_unconfined_mmap_low&lt;br /&gt;allow_unconfined_mmap_low --&amp;gt; off&lt;br /&gt;&lt;br /&gt;So the user downloads the cracker.&lt;br /&gt;&lt;br /&gt;$ ./cracker &lt;br /&gt;mmap: Permission denied&lt;br /&gt;&lt;br /&gt;SELinux is working, but the unconfined_t user can label his cracker app as vbetool_exec_t, (a tool that needs mmap_zero).&lt;br /&gt;&lt;br /&gt;chcon -t vbetool_exec_t ./cracker&lt;br /&gt;&lt;br /&gt;$ ./cracker &lt;br /&gt;mmap: Permission denied&lt;br /&gt;&lt;br /&gt;Notice that it still blew up.&amp;nbsp; This is because it does not transition from unconfined_t to vbetool_t, automatically.&lt;br /&gt;&lt;br /&gt;But how about.&lt;br /&gt;&lt;br /&gt;$ runcon -t initrc_t -- sh -c ./a.out&lt;br /&gt;got a NULL mapping...&lt;br /&gt;&lt;br /&gt;This succeeds because, there is a transition defined from unconfined_t to initrc_t, and also a transition from initrc_t to vbetool_t.&lt;br /&gt;&lt;br /&gt;In conclusion, this shows that the boolean preventing the unconfined_t domain or any other unconfined domains from performing mmap_zero is pretty useless in preventing a cracker from attacking the system.&lt;br /&gt;If you use unconfined_t users and a cracker gets to login as one, SELinux can not prevent mmap_zero.&lt;br /&gt;A cracker running as unconfined_t, can use just about any root exploit, just as if SELinux was disabled.&lt;br /&gt;&lt;br /&gt;In the future we need to better understand what it means to try to confine the unconfined user.</content:encoded>
	<dc:date>2009-07-21T18:37:27+00:00</dc:date>
	<dc:creator>dwalsh@redhat.com</dc:creator>
</item>
<item rdf:about="http://eparis.livejournal.com/606.html">
	<title>Eric Paris: mmap_min_addr on SELinux and non-SELinux systems</title>
	<link>http://eparis.livejournal.com/606.html</link>
	<content:encoded>There has been a lot of conversation about the difference in how the mmap_min_addr proteciton is applied on SELinux vs. non-SELinux systems and how these differences made it easier to exploit a recent kernel BUG on SELinux systems.&amp;nbsp; A number of people have claimed the SELinux made the system weaker.&amp;nbsp; It did, but in other ways it was still stronger.&amp;nbsp; I'm working to get the best of both worlds, but it isn't fair to claim a universal across the board weakening.&lt;br /&gt;&lt;br /&gt;We, the SELinux team, made a decision to not require CAP_SYS_RAWIO (non techies can think of this as root, or uid=0) for mapping the 0 page.&amp;nbsp; Instead we have an SELinux policy specific permission for this operation, mmap_zero. We made the choice to not require one to be root because WINE needs to do this operation and (sadly) there are a number of users out there who run windows applications inside WINE.&lt;br /&gt;&lt;br /&gt;Recently a kernel exploit was posted which works by mapping the 0 page, putting crafty info on that page, tickling a bug in the kernel, and winning (It is brilliant, as usual from Brad.)&amp;nbsp;&amp;nbsp; To get that 0 page mapped on a non-SELinux system he had to find a busted suid application (he found pulseaudio) and get that to map the page for him.&amp;nbsp; Since SELinux systems don't require root, he didn't need to find a busted suid application, he just had to map the 0 page and tickle the kernel bug.&lt;br /&gt;&lt;br /&gt;Now the claim comes out that SELinux systems are less secure than non-SELinux systems.&amp;nbsp; It's true, SELinux systems are weaker against authenticated logged in local users in this case.&amp;nbsp; But it's stronger against remote attacks.&amp;nbsp; What?&amp;nbsp; Yes, I agree completely that I need to strengthen the system against attacks from a malicious local user, but we do a much better job in this case if an attacker was trying to attack remotely.&lt;br /&gt;&lt;br /&gt;On a non-SELinux system if the attacker was able to subvert any network facing daemon they won.&amp;nbsp; They just tickled do the same thing.&amp;nbsp; Take over daemon remotely, use pulseaudio to map the page, tickle the kernel bug, win.&amp;nbsp; But what happens on an SELinux system?&amp;nbsp; It doesn't work!&amp;nbsp; Take over the network facing daemon, try the pulseaudio trick, crap, didn't get the page.&amp;nbsp; Try to map the zero page directly.&amp;nbsp; Crap it didn't work.&amp;nbsp; Now what?&amp;nbsp; You win, they lose.&amp;nbsp; SELinux is stronger than non-SELinux.&lt;br /&gt;&lt;br /&gt;This is because SELinux confines network facing daemons and doesn't give them permissions to map the 0 page.&amp;nbsp; It's not about root or non-root.&amp;nbsp; It's not about suid or non-suid.&amp;nbsp; It's about the SELinux domain not allowing the daemon to map the 0 page.&amp;nbsp; Yes, as an unconfined user you can map the page (and I'm looking at ways to fix that) but if your system is subverted remotely, you are likely much better protected with SELinux than without.</content:encoded>
	<dc:date>2009-07-21T17:00:24+00:00</dc:date>
</item>
<item rdf:about="http://blog.namei.org/?p=206">
	<title>James Morris: KCA slides, photos and videos</title>
	<link>http://blog.namei.org/2009/07/20/kca-slides-photos-and-videos/</link>
	<content:encoded>&lt;p&gt;I was in Brisbane last week to talk about Linux Kernel Security at &lt;a href=&quot;http://au.sun.com/sunnews/events/2009/kernel/index.jsp&quot;&gt;Kernel Conference Australia&lt;/a&gt; (KCA). &lt;/p&gt;
&lt;p&gt;The aims of the talk were to provide a general overview of security features in the Linux kernel,  and to examine   historical context around Unix security and how Linux is evolving to address modern security requirements.&lt;/p&gt;
&lt;p&gt;People may be interested in my slides.  They&amp;#8217;re available as a &lt;a href=&quot;http://namei.org/presentations/linux-kernel-security-kca09.pdf&quot;&gt;PDF&lt;/a&gt; download and via &lt;a href=&quot;http://www.slideshare.net/jamesmorris/linux-kernel-security-overview-kca-2009&quot;&gt;Slideshare&lt;/a&gt;.  Note that full speaker notes are included in the slides, in the second half of the deck.&lt;/p&gt;
&lt;p&gt;The conference was streamed live online, and the video from my talk may be viewed &lt;a href=&quot;http://www.ustream.tv/recorded/1814752&quot;&gt;here&lt;/a&gt;.  I&amp;#8217;m watching to see how the talk, and my speaking in general, might be improved.  As painful as this may be, it seems very effective in understanding what worked and what didn&amp;#8217;t.  I think I can tighten this talk up for possible future use, and focus more on how our development process&amp;mdash;not merely the technology&amp;mdash;helps address evolving security requirements.&lt;/p&gt;
&lt;p&gt;I later participated in an OS security panel with Cristina Cifuentes and Fernando Gont, the video of which is also &lt;a href=&quot;http://www.ustream.tv/recorded/1815405&quot;&gt;online&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve also uploaded a flickr &lt;a href=&quot;http://www.flickr.com/photos/x_jamesmorris/sets/72157621587882679/&quot;&gt;photo set&lt;/a&gt;.  Brisbane is a great location for a conference, especially in the southern hemisphere winter.&lt;/p&gt;
&lt;p&gt;It was unusual being the only Linux speaker at a conference.  I hope the talk was useful, if at least to encourage more thinking about security in operating systems.  &lt;/p&gt;
&lt;p&gt;The primary organizer of KCA, James MacPherson, has posted an &lt;a href=&quot;http://blogs.sun.com/jmcp/entry/kca2009_winding_down_1&quot;&gt;initial wrap-up&lt;/a&gt; of the conference.  If the conference continues&amp;mdash;I hope it does; it has a lot of potential for the Australian kernel R&amp;#038;D community&amp;mdash;I think it would be highly advantageous to more actively seek speakers (and even organizers), from the broader community.  One major local Linux kernel developer had a &lt;a href=&quot;http://airlied.livejournal.com/67154.html&quot;&gt;Linux kernel video talk rejected&lt;/a&gt;, which seemed odd given that similar talks were accepted (e.g. the new OpenSolaris sound system), and that an additional OpenSolaris talk was added to the program after the CfP closed.&lt;/p&gt;
&lt;p&gt;I understand that organizing conferences is difficult, so I hope this is taken as constructive feedback.  I&amp;#8217;d certainly be interested in helping review papers or otherwise help out in the future if the conference is held again, and if it is aimed at the broader community.&lt;/p&gt;</content:encoded>
	<dc:date>2009-07-20T03:35:33+00:00</dc:date>
	<dc:creator>jamesm</dc:creator>
</item>
<item rdf:about="http://etbe.coker.com.au/?p=1253">
	<title>Russell Coker (security): DRM and Rogue Employees</title>
	<link>http://etbe.coker.com.au/2009/07/19/drm-and-rogue-employees/</link>
	<content:encoded>&lt;p&gt;&lt;a href=&quot;http://blogs.zdnet.com/hardware/?p=4944&quot;&gt;ZDNet has an interesting article about Amazon unselling books to Kindle owners [1]&lt;/a&gt;.  Apparently the books Animal Farm and 1984 were added to the Kindle list by unauthorised people (&lt;a href=&quot;http://www.engadget.com/2009/07/17/amazon-remotely-deletes-orwell-e-books-from-kindles-unpersons-r/&quot;&gt;Engaget has the original story [2]&lt;/a&gt;).  So Amazon decided to just remove the books from the Kindles and refund the purchase price.&lt;/p&gt;
&lt;p&gt;Amazon has stated a plan to not unsell books in such situations in future &amp;#8211; although they will apparently reserve the right to do so if they wish.&lt;/p&gt;
&lt;p&gt;It seems to me that Amazon management are amazingly stupid.  One thing we need to consider is that Amazon employs a large number of people, some of whom will be criminals and some will act in irrational ways for various reasons.  Of the Amazon employees who won&amp;#8217;t consistently act in an honest and reliable way on behalf of their employer some will have access to the database which controls the content that is permitted on Kindles.  &lt;a href=&quot;http://www.quickonlinetips.com/archives/2009/01/journalspace-blogs-gone/&quot;&gt;The Journalspace fiasco should be sufficient proof of this problem [3]&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If a rogue employee wiped the database of sales in progress it would really hurt the Amazon business model, but if a rogue employee also unsold the existing works (stole property from customers) then it would be much worse.&lt;/p&gt;
&lt;p&gt;The &amp;#8220;features&amp;#8221; of the Kindle would be useful to anyone who wants to make some money shorting Amazon stock.  This should be of concern to the directors of Amazon.&lt;/p&gt;
&lt;p&gt;&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;[1]&lt;a href=&quot;http://blogs.zdnet.com/hardware/?p=4944&quot;&gt; http://blogs.zdnet.com/hardware/?p=4944&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[2]&lt;a href=&quot;http://www.engadget.com/2009/07/17/amazon-remotely-deletes-orwell-e-books-from-kindles-unpersons-r/&quot;&gt; http://www.engadget.com/2009/07/17/amazon-remotely-deletes-orwell-e-books-from-kindles-unpersons-r/&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[3]&lt;a href=&quot;http://www.quickonlinetips.com/archives/2009/01/journalspace-blogs-gone/&quot;&gt; http://www.quickonlinetips.com/archives/2009/01/journalspace-blogs-gone/&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2009-07-19T02:48:55+00:00</dc:date>
	<dc:creator>etbe</dc:creator>
</item>
<item rdf:about="http://blog.namei.org/?p=196">
	<title>James Morris: A brief note on the 2.6.30 kernel null pointer vulnerability</title>
	<link>http://blog.namei.org/2009/07/18/a-brief-note-on-the-2630-kernel-null-pointer-vulnerability/</link>
	<content:encoded>&lt;p&gt;This is just to note that the Red Hat Security Response team have issued a preliminary comment on the &lt;a href=&quot;http://lwn.net/Articles/341773/&quot;&gt;2.6.30 kernel null pointer vulnerability&lt;/a&gt;, as a comment in the associated &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=512284#c5&quot;&gt;bugzilla entry&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;&lt;em&gt;From&lt;span class=&quot;vcard&quot;&gt; Eugene Teo (Security Response Team)  2009-07-17 07:23:57 EDT&lt;/span&gt;&lt;/em&gt;

The Red Hat Security Response Team is aware of the Linux kernel local privilege
escalation exploit that is published in a number of security mailing lists and
websites. The flaw identified by &lt;a href=&quot;http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1897&quot;&gt;CVE-2009-1897&lt;/a&gt; is a null pointer dereference
vulnerability in the tun_chr_poll() function of the Linux kernel, introduced
via the upstream git commit 33dccbb0. This flaw affects kernel versions between
2.6.30-rc1 and &lt;s&gt;2.6.30-rc3&lt;/s&gt; 2.6.31-rc3 , and was addressed via the upstream
git commit 3c8a9c63.

The flaw affects only the Red Hat Enterprise Linux 5.4 beta kernel as the
upstream git commit 33dccbb0 was backported to the kernel as a normal bug fix.
We will be addressing this flaw in a future update to the beta kernel. It is
also possible to mitigate this flaw by ensuring that the permissions for
/dev/net/tun is restricted to root only.

The default SELinux policy, in Red Hat Enterprise Linux 5, allows processes in
the unconfined domains to map low memory in the kernel. The exploit did not
bypass the null pointer dereference protection in the Linux kernel. However, we
are updating the selinux-policy package to change this default configuration,
so that it prevents the unconfined processes from being able to map the low
memory. See &lt;a title=&quot;ON_QA - selinux policy allows addr 0 mappings by default&quot; href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=511143&quot;&gt;bug 511143&lt;/a&gt; for more information.

This issue does not affect any other released kernel in any Red Hat product.

In addition, future updates to Red Hat Enterprise Linux kernels may include the
'-fno-delete-null-pointer-checks' gcc CFLAGS. See:
&lt;a href=&quot;http://git.kernel.org/linus/a3ca86aea507904148870946d599e07a340b39bf&quot;&gt;http://git.kernel.org/linus/a3ca86aea507904148870946d599e07a340b39bf&lt;/a&gt;

We would like to thank Brad Spengler for bringing these issues to our
attention.&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;Note that I&amp;#8217;m not a member of the security response team: I&amp;#8217;m cc&amp;#8217;d on the bug and noticed the statement when it was posted.&lt;/p&gt;
&lt;p&gt;It is also worth highlighting that you should ensure that the permissions on
&lt;pre&gt;/dev/net/tun&lt;/pre&gt;
&lt;p&gt; are correct.  It should look like this:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;&lt;br /&gt;
# ls -l /dev/net/tun&lt;br /&gt;
crw------- 1 root root 10, 200 2009-07-07 09:52 /dev/net/tun&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;It&amp;#8217;s possible that some VPN package may change the permissions on this.&lt;/p&gt;
&lt;p&gt;In terms of the SELinux aspect of the exploit, I&amp;#8217;ve posted a brief comment in the LWN thread &lt;a href=&quot;http://lwn.net/Articles/341994/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Yes, there was a mistake in the SELinux policy, which allowed the unconfined user to bypass the mmap_min_addr check, which otherwise would have been enforced if the check was enabled (many disable it to get wine etc. working, btw, google &lt;em&gt;disable mmap_min_addr&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;This is being fixed in the policy.&lt;/p&gt;
&lt;p&gt;The lesson learned here is that more careful review of policy changes needs to happen, and to ask the question as to whether the policy is capable of weakening default security.&lt;/p&gt;
&lt;p&gt;The LSM interface is theoretically designed to only allow further restriction of access, but this is a special case, where we are applying policy to a kernel compilation option which can also have its value set via a sysctl. It&amp;#8217;s not a typical &amp;#8220;access this resource or not?&amp;#8221; decision.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;The policy bug is now fixed in the&lt;em&gt; selinux-policy-2.4.6-252.el5&lt;/em&gt; package.&lt;/p&gt;
&lt;p&gt;The challenge now is to try and ensure that we don&amp;#8217;t see this class of problem crop up again, for unusual cases such as this where the normally &amp;#8220;restrictive&amp;#8221; mode of LSM (i.e. where permissions can only be further restricted) does not apply.  We may need to rethink how this is managed in the kernel to reduce the possibility of such issues in LSM module policy, as the LSM API here appears to be violating the &lt;a href=&quot;http://ozlabs.org/~rusty/index.cgi/tech/2008-03-18.html&quot;&gt;Hard to Misuse&lt;/a&gt; design principle.&lt;/p&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2009-07-17T23:23:39+00:00</dc:date>
	<dc:creator>jamesm</dc:creator>
</item>
<item rdf:about="http://intrajp.no-ip.com/nucleus/?itemid=12">
	<title>Shintaro Fujiwara: To do for segatex-7.772</title>
	<link>http://intrajp.no-ip.com/nucleus/?itemid=12</link>
	<content:encoded>Fix segatex to relabel the system.&lt;br /&gt;
Fix segatex policy to manage home_dir.&lt;br /&gt;
Fix audit2allow.cpp to grep certain domain.&lt;br /&gt;
Incorporate misc commands like df,du.&lt;br /&gt;
Fix segatex policy to run rpm rightly.</content:encoded>
	<dc:date>2009-07-16T21:32:49+00:00</dc:date>
</item>
<item rdf:about="http://danwalsh.livejournal.com/29790.html">
	<title>Dan Walsh: Understanding SELinux</title>
	<link>http://danwalsh.livejournal.com/29790.html</link>
	<content:encoded>A colleague or mine, Andrew, was baffled by SELinux,&amp;nbsp; He ran&lt;br /&gt;&lt;br /&gt;sudo vpnc ./default.conf&lt;br /&gt;&lt;br /&gt;And an&amp;nbsp; SELinux denial message about vpnc_t trying to read a file labeled user_home_t.&amp;nbsp; He did not understand what was going on.&lt;br /&gt;&lt;br /&gt;Three people chimed in and gave him different ways to get around the SELinux denial.&lt;br /&gt;&lt;br /&gt;The first advised to label the file etc_t&lt;br /&gt;.&lt;br /&gt;&lt;div&gt;&lt;em&gt;chcon -t etc_t ./default.conf&lt;/em&gt;&lt;/div&gt;&lt;br /&gt;The second advised to build a custom policy using audit2allow. &lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;em&gt;grep vpnc /var/log/audit/audit.log | audit2allow -m myvpnc; semodule -i myvpnc.pp&lt;/em&gt;&lt;/div&gt;&lt;br /&gt;The third advised the user to edit the file /etc/vpnc/default.conf instead of a local file in his home dir.&lt;br /&gt;&lt;br /&gt;Andrew found all solutions worked, lets examine what is going on, and figure out which is the best solution. &lt;br /&gt;&lt;br /&gt;When Andrew logs into the system, SELinux assigns him the default SELinux user unconfined_t.&amp;nbsp; For the most part the unconfined user is allowed to do everything he can do if SELinux were disabled.&amp;nbsp; Some commands that the unconfined_t user execute have transitions rules that say when the unconfined_t user executes programs labeled vpnc_exec_t they will transition to a label of vpnc_t.&amp;nbsp; vpnc_t is a confined domain that is not allowed to read files in the users home directory, labeled user_home_t.&amp;nbsp; Since ./defaults.conf was created in Andrews home directory, SELinux denies access. &lt;br /&gt;&lt;br /&gt;In the first solution Andrew changed the label of the ./defaults.conf to etc_t, default label for files in /etc,&amp;nbsp; since vpnc_t is allowed to read files labeled etc_t, vpnc worked and Andrew has not changed the protection level on vpnc, application.&amp;nbsp; However Andrew now has a file in his home directory labeled etc_t.&amp;nbsp; The default rule for files created in the home directory is to label files user_home_t, so there is a reasonably good change that Andrew might mistakenly create a new default.conf file with the wrong label and get frustrated by SELinux in the future.&lt;br /&gt;&lt;br /&gt;The second solution was to use audit2allow to generate a new policy module to allow vpnc_t to read files labeled user_home_t.&amp;nbsp; While this works, you have just lowered the security level of your system.&amp;nbsp; By installing this policy you allow vpnc_t to read almost any file in your home directory.&amp;nbsp; So if vpnc_t becomes compromised, the hacker will not be prevented by SELinux for reading most content in your home directory.&lt;br /&gt;&lt;br /&gt;The third solution was to edit the files in the default location /etc/vpnc/default.conf.&amp;nbsp; The default label for these files are etc_t, and the containing directories label is etc_t, so an administrator editing files in this directory would create files by default labeled etc_t, so it is unlikely they will get mislabeled.&amp;nbsp; This is the solution that I would suggest, as best.&lt;br /&gt;&lt;br /&gt;As I wrote in the blog&lt;br /&gt;&lt;br /&gt;http://danwalsh.livejournal.com/22347.html&lt;br /&gt;&lt;br /&gt;SELinux is all about labeling, and as long as the labelling is correct SELinux is happy, otherwise it will complain.&amp;nbsp; &lt;br /&gt;</content:encoded>
	<dc:date>2009-07-15T12:44:14+00:00</dc:date>
	<dc:creator>dwalsh@redhat.com</dc:creator>
</item>
<item rdf:about="http://intrajp.no-ip.com/nucleus/?itemid=11">
	<title>Shintaro Fujiwara: segatex-7.771 released</title>
	<link>http://intrajp.no-ip.com/nucleus/?itemid=11</link>
	<content:encoded>Added seinfo in semanage tab.</content:encoded>
	<dc:date>2009-07-15T05:04:16+00:00</dc:date>
</item>

</rdf:RDF>
