<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://homeostasis.scs.carleton.ca/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Falaca</id>
	<title>Soma-notes - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://homeostasis.scs.carleton.ca/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Falaca"/>
	<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php/Special:Contributions/Falaca"/>
	<updated>2026-04-22T13:51:51Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=OSWebSec:_Exokernels&amp;diff=17441</id>
		<title>OSWebSec: Exokernels</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=OSWebSec:_Exokernels&amp;diff=17441"/>
		<updated>2012-10-17T18:20:19Z</updated>

		<summary type="html">&lt;p&gt;Falaca: /* Formal proof */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Exokernels==&lt;br /&gt;
&lt;br /&gt;
[[File:ExterminateHWAbstractions.jpg|thumb|Key idea of Engler et al. in &#039;&#039;Exokernel: an operating system architecture for application-level resource managementp&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
===Portability===&lt;br /&gt;
Portability is a major concern with exokernels: In addition to the work required to port the exokernel to different hardware, you also have to port all programs to it since the exokernel provides a different API depending on what hardware it is running on.&lt;br /&gt;
&lt;br /&gt;
The goal of exokernels was to make the system minimal, but at the end of the day you end up adding onto it and providing things like POSIX semantics anyway, and therefore introducing vulnerabilities into your system.&lt;br /&gt;
&lt;br /&gt;
Extensibility is mentioned as a key advantage of exokernels, but modern OSs are quite extensible anyway: You can write kernel modules/device drivers, file systems, etc.&lt;br /&gt;
&lt;br /&gt;
===Exokernels for what?===&lt;br /&gt;
The authors mention that many of the hardware abstractions offered by the kernel end up slowing down some specialized applications. But for a monolithic kernel this is no problem: You can just add APIs for specialized tasks to reduce overhead. So who exactly will go through all the pain of using an exokernel, when they can just take an open source OS like Linux and modify it to suit their needs?&lt;br /&gt;
&lt;br /&gt;
===Formal proof===&lt;br /&gt;
The authors made some big compromises in order to make a formal proof for their exokernel possible:&lt;br /&gt;
* They restricted themselves to a subset of the C language (e.g., no function pointers)&lt;br /&gt;
* Gimped concurrency&lt;br /&gt;
* Interrupt handling&lt;br /&gt;
* Memory allocation (none)&lt;br /&gt;
&lt;br /&gt;
They designed their kernel for uniprocessor systems. How do you verify a multi-threaded kernel? Even without verification, modern kernels took &#039;&#039;&#039;a lot&#039;&#039;&#039; of work to reach a state where they work correctly.&lt;br /&gt;
&lt;br /&gt;
==Microkernels==&lt;br /&gt;
Microkernel subsystems depend on each other to get things done. There are too many tightly coupled services passing around too much data. Compromising one component can allow you to compromise others. &#039;&#039;Where&#039;s the win?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
All optimizations that are done to improve microkernels can also be done to monolithic kernels. In class we discussed [http://en.wikipedia.org/wiki/OpenBinder, binder], an IPC system originally designed for microkernels, which has now been implemented for Linux and is used in Android.&lt;br /&gt;
&lt;br /&gt;
==Microkernels vs. Exokernels==&lt;br /&gt;
Exokernels appear as hardware to the applications running on it, whereas microkernels provide abstractions.&lt;br /&gt;
&lt;br /&gt;
Some barriers (e.g., user/kernel space) are natural, others aren&#039;t. If you try to create barriers where it doesn&#039;t make sense to do so, you simply end up breaking too many holes through them make things work correctly. From a security perspective, this brings you back to the same situation you started with because of all the holes that you&#039;ve created.&lt;/div&gt;</summary>
		<author><name>Falaca</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=OSWebSec:_Exokernels&amp;diff=17440</id>
		<title>OSWebSec: Exokernels</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=OSWebSec:_Exokernels&amp;diff=17440"/>
		<updated>2012-10-17T18:19:03Z</updated>

		<summary type="html">&lt;p&gt;Falaca: /* Portability */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Exokernels==&lt;br /&gt;
&lt;br /&gt;
[[File:ExterminateHWAbstractions.jpg|thumb|Key idea of Engler et al. in &#039;&#039;Exokernel: an operating system architecture for application-level resource managementp&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
===Portability===&lt;br /&gt;
Portability is a major concern with exokernels: In addition to the work required to port the exokernel to different hardware, you also have to port all programs to it since the exokernel provides a different API depending on what hardware it is running on.&lt;br /&gt;
&lt;br /&gt;
The goal of exokernels was to make the system minimal, but at the end of the day you end up adding onto it and providing things like POSIX semantics anyway, and therefore introducing vulnerabilities into your system.&lt;br /&gt;
&lt;br /&gt;
Extensibility is mentioned as a key advantage of exokernels, but modern OSs are quite extensible anyway: You can write kernel modules/device drivers, file systems, etc.&lt;br /&gt;
&lt;br /&gt;
===Exokernels for what?===&lt;br /&gt;
The authors mention that many of the hardware abstractions offered by the kernel end up slowing down some specialized applications. But for a monolithic kernel this is no problem: You can just add APIs for specialized tasks to reduce overhead. So who exactly will go through all the pain of using an exokernel, when they can just take an open source OS like Linux and modify it to suit their needs?&lt;br /&gt;
&lt;br /&gt;
===Formal proof===&lt;br /&gt;
The authors made some big compromises in order to make a formal proof for their exokernel possible:&lt;br /&gt;
* They restricted themselves to a subset of the C language&lt;br /&gt;
* Gimped concurrency&lt;br /&gt;
* Interrupt handling&lt;br /&gt;
* Memory allocation (none)&lt;br /&gt;
&lt;br /&gt;
They designed their kernel for uniprocessor systems. How do you verify a multi-threaded kernel? Even without verification, modern kernels took &#039;&#039;&#039;a lot&#039;&#039;&#039; of work to reach a state where they work correctly.&lt;br /&gt;
&lt;br /&gt;
==Microkernels==&lt;br /&gt;
Microkernel subsystems depend on each other to get things done. There are too many tightly coupled services passing around too much data. Compromising one component can allow you to compromise others. &#039;&#039;Where&#039;s the win?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
All optimizations that are done to improve microkernels can also be done to monolithic kernels. In class we discussed [http://en.wikipedia.org/wiki/OpenBinder, binder], an IPC system originally designed for microkernels, which has now been implemented for Linux and is used in Android.&lt;br /&gt;
&lt;br /&gt;
==Microkernels vs. Exokernels==&lt;br /&gt;
Exokernels appear as hardware to the applications running on it, whereas microkernels provide abstractions.&lt;br /&gt;
&lt;br /&gt;
Some barriers (e.g., user/kernel space) are natural, others aren&#039;t. If you try to create barriers where it doesn&#039;t make sense to do so, you simply end up breaking too many holes through them make things work correctly. From a security perspective, this brings you back to the same situation you started with because of all the holes that you&#039;ve created.&lt;/div&gt;</summary>
		<author><name>Falaca</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=OSWebSec:_Exokernels&amp;diff=17439</id>
		<title>OSWebSec: Exokernels</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=OSWebSec:_Exokernels&amp;diff=17439"/>
		<updated>2012-10-17T18:17:43Z</updated>

		<summary type="html">&lt;p&gt;Falaca: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Exokernels==&lt;br /&gt;
&lt;br /&gt;
[[File:ExterminateHWAbstractions.jpg|thumb|Key idea of Engler et al. in &#039;&#039;Exokernel: an operating system architecture for application-level resource managementp&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
===Portability===&lt;br /&gt;
Portability is a major concern with exokernels: In addition to the work required to port the exokernel to different hardware, you also have to port all programs to it since the exokernel provides a different API depending on what hardware it is running on.&lt;br /&gt;
&lt;br /&gt;
The goal of exokernels was to make the system minimal, but at the end of the day you end up adding onto it and providing things like POSIX semantics anyway.&lt;br /&gt;
&lt;br /&gt;
Extensibility is mentioned as a key advantage of exokernels, but modern OSs are quite extensible anyway: You can write kernel modules/device drivers, file systems, etc.&lt;br /&gt;
&lt;br /&gt;
===Exokernels for what?===&lt;br /&gt;
The authors mention that many of the hardware abstractions offered by the kernel end up slowing down some specialized applications. But for a monolithic kernel this is no problem: You can just add APIs for specialized tasks to reduce overhead. So who exactly will go through all the pain of using an exokernel, when they can just take an open source OS like Linux and modify it to suit their needs?&lt;br /&gt;
&lt;br /&gt;
===Formal proof===&lt;br /&gt;
The authors made some big compromises in order to make a formal proof for their exokernel possible:&lt;br /&gt;
* They restricted themselves to a subset of the C language&lt;br /&gt;
* Gimped concurrency&lt;br /&gt;
* Interrupt handling&lt;br /&gt;
* Memory allocation (none)&lt;br /&gt;
&lt;br /&gt;
They designed their kernel for uniprocessor systems. How do you verify a multi-threaded kernel? Even without verification, modern kernels took &#039;&#039;&#039;a lot&#039;&#039;&#039; of work to reach a state where they work correctly.&lt;br /&gt;
&lt;br /&gt;
==Microkernels==&lt;br /&gt;
Microkernel subsystems depend on each other to get things done. There are too many tightly coupled services passing around too much data. Compromising one component can allow you to compromise others. &#039;&#039;Where&#039;s the win?&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
All optimizations that are done to improve microkernels can also be done to monolithic kernels. In class we discussed [http://en.wikipedia.org/wiki/OpenBinder, binder], an IPC system originally designed for microkernels, which has now been implemented for Linux and is used in Android.&lt;br /&gt;
&lt;br /&gt;
==Microkernels vs. Exokernels==&lt;br /&gt;
Exokernels appear as hardware to the applications running on it, whereas microkernels provide abstractions.&lt;br /&gt;
&lt;br /&gt;
Some barriers (e.g., user/kernel space) are natural, others aren&#039;t. If you try to create barriers where it doesn&#039;t make sense to do so, you simply end up breaking too many holes through them make things work correctly. From a security perspective, this brings you back to the same situation you started with because of all the holes that you&#039;ve created.&lt;/div&gt;</summary>
		<author><name>Falaca</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=File_talk:ExterminateHWAbstractions.jpg&amp;diff=17418</id>
		<title>File talk:ExterminateHWAbstractions.jpg</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=File_talk:ExterminateHWAbstractions.jpg&amp;diff=17418"/>
		<updated>2012-10-11T02:32:20Z</updated>

		<summary type="html">&lt;p&gt;Falaca: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Falaca</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=OSWebSec:_Exokernels&amp;diff=17417</id>
		<title>OSWebSec: Exokernels</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=OSWebSec:_Exokernels&amp;diff=17417"/>
		<updated>2012-10-11T01:48:57Z</updated>

		<summary type="html">&lt;p&gt;Falaca: Created page with &amp;quot;File:ExterminateHWAbstractions.jpg&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:ExterminateHWAbstractions.jpg]]&lt;/div&gt;</summary>
		<author><name>Falaca</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=File_talk:ExterminateHWAbstractions.jpg&amp;diff=17416</id>
		<title>File talk:ExterminateHWAbstractions.jpg</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=File_talk:ExterminateHWAbstractions.jpg&amp;diff=17416"/>
		<updated>2012-10-11T01:48:08Z</updated>

		<summary type="html">&lt;p&gt;Falaca: Created page with &amp;quot;File:ExterminateHWAbstractions.jpg&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:ExterminateHWAbstractions.jpg]]&lt;/div&gt;</summary>
		<author><name>Falaca</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=File:ExterminateHWAbstractions.jpg&amp;diff=17415</id>
		<title>File:ExterminateHWAbstractions.jpg</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=File:ExterminateHWAbstractions.jpg&amp;diff=17415"/>
		<updated>2012-10-11T01:47:03Z</updated>

		<summary type="html">&lt;p&gt;Falaca: Key idea presented in papers by Engler et al.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Key idea presented in papers by Engler et al.&lt;/div&gt;</summary>
		<author><name>Falaca</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=MashupOS&amp;diff=17396</id>
		<title>MashupOS</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=MashupOS&amp;diff=17396"/>
		<updated>2012-10-04T13:52:59Z</updated>

		<summary type="html">&lt;p&gt;Falaca: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Protection and communication abstractions for web browsers in MashupOS&lt;br /&gt;
&lt;br /&gt;
This paper appears in SOSP &#039;07 Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles, Pages 1-16. The audience is primarily OS researchers, as opposed to web/security researchers.&lt;br /&gt;
&lt;br /&gt;
* Motivation for the work&lt;br /&gt;
** Authors refer to browsers as &amp;quot;multi-principal operating environments&amp;quot; where mutually distrusting web sites, as principals, interact in a single page on the client side, sharing the underlying browser resources. This is compared to PC operating environments where mutually distrusting users share host resources.&lt;br /&gt;
** However, the authors argue that today&#039;s browsers do not employ OS abstractions, and instead provide limited all-or-nothing trust models, and are therefore only suitable for a single-principal system. They aim to fix this with MashupOS.&lt;br /&gt;
&lt;br /&gt;
* Principles of MashupOS&lt;br /&gt;
** Match all common trust levels&lt;br /&gt;
** Strike a balance between ease-of-use and security&lt;br /&gt;
** Easy adoption and no unintended behaviours (i.e. provide fallback mechanisms for legacy browsers)&lt;br /&gt;
&lt;br /&gt;
* Principals and Resources&lt;br /&gt;
** In OS, the principal is a user or group. In the Web, the principal is the owner of some Web content.&lt;br /&gt;
** Resources:&lt;br /&gt;
*** Memory: heap of script objects&lt;br /&gt;
*** Persistent state: Cookies&lt;br /&gt;
*** Display: HTML DOM&lt;br /&gt;
*** Network communications: Ability to send and receive messages outside application.&lt;br /&gt;
&lt;br /&gt;
* Existing trust relationship between content providers and integrators: All-or-nothing. Authors identify four types of content, for which they implement various abstractions&lt;br /&gt;
** Isolated content: Completely isolated from other sites.&lt;br /&gt;
** Access-controlled content: Content that is isolated but allows message-passing across domains to give mediated access.&lt;br /&gt;
** Open content&lt;br /&gt;
** Unauthorized content: Content which the integrator an directly access, but does not trust to access the integrator&#039;s resources.&lt;br /&gt;
&lt;br /&gt;
* Paper puts heavy emphasis on Sandboxing and isolation &lt;br /&gt;
&lt;br /&gt;
* What they implemented:&lt;br /&gt;
** &amp;lt;ServiceInstance&amp;gt; abstraction for isolation, fault containment, and as the unit of resource allocation and CommRequest for cross-domain communications.&lt;br /&gt;
*** Controlled communication between service instances is allowed through the CommRequest abstraction - can be thought of as &amp;quot;ports&amp;quot;. Allows separate components to talk to each other through the parent , but never directly child to child.&lt;br /&gt;
*** Comparable to starting a new process in Linux - each is allocated its own resources&lt;br /&gt;
*** Friv: combines properties of a &amp;lt;div&amp;gt; and &amp;lt;iframe&amp;gt;. Acts as the display which each service instance connects to.&lt;br /&gt;
** &amp;lt;Sandbox&amp;gt; and &amp;lt;OpenSandbox&amp;gt; abstractions to enable the provision of unauthorized content without overtrusting it. This is also said to help in combating XSS attacks.&lt;br /&gt;
*** &amp;lt;Sandbox&amp;gt;: Private unauthrozed content that is hosted at and belongs to the integrator.&lt;br /&gt;
*** &amp;lt;Opensandbox&amp;gt;: May be hosted by any domain.&lt;br /&gt;
&lt;br /&gt;
*Questions&lt;br /&gt;
** Is the new Cross-Origin Resource Sharing comparable to what the authors were referring to as &amp;quot;Verified Origin Policy&amp;quot; (VOP)? Does this solve all the problems with Same Origin Policy (SOP)?&lt;br /&gt;
** Seamless iframes - how similar are they to frivs?&lt;br /&gt;
&lt;br /&gt;
* What was implemented&lt;br /&gt;
** Proxy server and MME filter&lt;br /&gt;
&lt;br /&gt;
* What the testing was&lt;br /&gt;
** Running speed tests not security test , Anil said WHY ? mabey because OS conference cares about speed&lt;br /&gt;
** Open sandbox was not implemented&lt;br /&gt;
** only one service instance per friv&lt;br /&gt;
&lt;br /&gt;
* Conclusions&lt;br /&gt;
** Mostly a theoretical paper&lt;br /&gt;
*** But interesting&lt;br /&gt;
&lt;br /&gt;
* Notes&lt;br /&gt;
** Table 1 does a good job at relating the various content types/trust levels with the associated abstractions&lt;br /&gt;
** Figure 2 &amp;lt;---- for what they did&lt;br /&gt;
** Figure 3 &amp;lt;--- for what they did and how it works&lt;/div&gt;</summary>
		<author><name>Falaca</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=MashupOS&amp;diff=17395</id>
		<title>MashupOS</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=MashupOS&amp;diff=17395"/>
		<updated>2012-10-04T13:41:49Z</updated>

		<summary type="html">&lt;p&gt;Falaca: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Protection and communication abstractions for web browsers in MashupOS&lt;br /&gt;
&lt;br /&gt;
This paper appears in SOSP &#039;07 Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles, Pages 1-16. The audience is primarily OS researchers, as opposed to web/security researchers.&lt;br /&gt;
&lt;br /&gt;
* Motivation for the work&lt;br /&gt;
** Authors refer to browsers as &amp;quot;multi-principal operating environments&amp;quot; where mutually distrusting web sites, as principals, interact in a single page on the client side, sharing the underlying browser resources. This is compared to PC operating environments where mutually distrusting users share host resources.&lt;br /&gt;
** However, the authors argue that today&#039;s browsers do not employ OS abstractions, and instead provide limited all-or-nothing trust models, and are therefore only suitable for a single-principal system. They aim to fix this with MashupOS.&lt;br /&gt;
&lt;br /&gt;
* Principles of MashupOS&lt;br /&gt;
** Match all common trust levels&lt;br /&gt;
** Strike a balance between ease-of-use and security&lt;br /&gt;
** Easy adoption and no unintended behaviours (i.e. provide fallback mechanisms for legacy browsers)&lt;br /&gt;
&lt;br /&gt;
* Principals and Resources&lt;br /&gt;
** In OS, the principal is a user or group. In the Web, the principal is the owner of some Web content.&lt;br /&gt;
** Resources:&lt;br /&gt;
*** Memory: heap of script objects&lt;br /&gt;
*** Persistent state: Cookies&lt;br /&gt;
*** Display: HTML DOM&lt;br /&gt;
*** Network communications: Ability to send and receive messages outside application.&lt;br /&gt;
&lt;br /&gt;
* Existing trust relationship between content providers and integrators: All-or-nothing. Authors identify four types of content, for which they implement various abstractions&lt;br /&gt;
** Isolated content: Completely isolated from other sites.&lt;br /&gt;
** Access-controlled content: Content that is isolated but allows message-passing across domains to give mediated access.&lt;br /&gt;
** Open content&lt;br /&gt;
** Unauthorized content: Content which the integrator an directly access, but does not trust to access the integrator&#039;s resources.&lt;br /&gt;
&lt;br /&gt;
* Paper puts heavy emphasis on Sandboxing and isolation &lt;br /&gt;
&lt;br /&gt;
* What they implemented:&lt;br /&gt;
** &amp;lt;ServiceInstance&amp;gt; abstraction for isolation, fault containment, and as the unit of resource allocation and CommRequest for cross-domain communications.&lt;br /&gt;
*** Controlled communication between service instances is allowed through the CommRequest abstraction - can be thought of as &amp;quot;ports&amp;quot;. Allows separate components to talk to each other through the parent , but never directly child to child.&lt;br /&gt;
*** Comparable to starting a new process in Linux - each is allocated its own resources&lt;br /&gt;
*** Friv: combines properties of a &amp;lt;div&amp;gt; and &amp;lt;iframe&amp;gt;. Acts as the display which each service instance connects to.&lt;br /&gt;
** &amp;lt;Sandbox&amp;gt; and &amp;lt;OpenSandbox&amp;gt; abstractions to enable the provision of unauthorized content without overtrusting it. This is also said to help in combating XSS attacks.&lt;br /&gt;
*** &amp;lt;Sandbox&amp;gt;: Private unauthrozed content that is hosted at and belongs to the integrator.&lt;br /&gt;
*** &amp;lt;Opensandbox&amp;gt;: May be hosted by any domain.&lt;br /&gt;
&lt;br /&gt;
** vop &amp;lt;-- Do we want to talk about&lt;br /&gt;
** sop &amp;lt;-- Do we want to talk about&lt;br /&gt;
* What was implemented&lt;br /&gt;
** Proxy server and MME filter&lt;br /&gt;
**&lt;br /&gt;
* What the testing was&lt;br /&gt;
** Running speed tests not security test , Anil said WHY ? mabey because OS conference cares about speed&lt;br /&gt;
** Open sandbox was not implemented&lt;br /&gt;
** only one service instance per friv&lt;br /&gt;
* Conclusions&lt;br /&gt;
** Mostly a theoretical paper&lt;br /&gt;
*** But interesting&lt;br /&gt;
** Notes&lt;br /&gt;
*** Do we want to show figure 2 &amp;lt;---- for what they did&lt;br /&gt;
*** Do we want to show figure 3 &amp;lt;--- for what they did and how it works&lt;/div&gt;</summary>
		<author><name>Falaca</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=MashupOS&amp;diff=17394</id>
		<title>MashupOS</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=MashupOS&amp;diff=17394"/>
		<updated>2012-10-04T13:16:23Z</updated>

		<summary type="html">&lt;p&gt;Falaca: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Protection and communication abstractions for web browsers in MashupOS&lt;br /&gt;
&lt;br /&gt;
This paper appears in SOSP &#039;07 Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles, Pages 1-16. The audience is primarily OS researchers, as opposed to web/security researchers.&lt;br /&gt;
&lt;br /&gt;
* Motivation for the work&lt;br /&gt;
** Authors refer to browsers as &amp;quot;multi-principal operating environments&amp;quot; where mutually distrusting web sites, as principals, interact in a single page on the client side, sharing the underlying browser resources. This is compared to PC operating environments where mutually distrusting users share host resources.&lt;br /&gt;
** However, the authors argue that today&#039;s browsers do not employ OS abstractions, and instead provide limited all-or-nothing trust models, and are therefore only suitable for a single-principal system. They aim to fix this with MashupOS.&lt;br /&gt;
&lt;br /&gt;
* Principles of MashupOS&lt;br /&gt;
** Match all common trust levels&lt;br /&gt;
** Strike a balance between ease-of-use and security&lt;br /&gt;
** Easy adoption and no unintended behaviours (i.e. provide fallback mechanisms for legacy browsers)&lt;br /&gt;
&lt;br /&gt;
* Principals and Resources&lt;br /&gt;
** In OS, the principal is a user or group. In the Web, the principal is the owner of some Web content.&lt;br /&gt;
** Resources:&lt;br /&gt;
*** Memory: heap of script objects&lt;br /&gt;
*** Persistent state: Cookies&lt;br /&gt;
*** Display: HTML DOM&lt;br /&gt;
*** Network communications: Ability to send and receive messages outside application.&lt;br /&gt;
&lt;br /&gt;
* Authors identify four types of content, for which they implement various abstractions&lt;br /&gt;
** Isolated content&lt;br /&gt;
** Access-controlled content&lt;br /&gt;
** Open content&lt;br /&gt;
** Unauthorized content&lt;br /&gt;
&lt;br /&gt;
* Paper puts heavy emphasis on Sandboxing and isolation &lt;br /&gt;
&lt;br /&gt;
* What they implemented:&lt;br /&gt;
** &amp;lt;ServiceInstance&amp;gt; abstraction for isolation, fault containment, and as the unit of resource allocation and CommRequest for cross-domain communications.&lt;br /&gt;
** &amp;lt;Sandbox&amp;gt; and &amp;lt;OpenSandbox&amp;gt; abstractions to enable the provision of unauthorized content without overtrusting it. This is also said to help in combating XSS attacks.&lt;br /&gt;
&lt;br /&gt;
** Sandbox&lt;br /&gt;
*** private that is hosted at and belongs to the integrator ??&lt;br /&gt;
** Opensandbox&lt;br /&gt;
*** Ment for any scripted hosted on any domain&lt;br /&gt;
** Service Instance&lt;br /&gt;
*** think starting a new process in linux - each alocated it&#039;s own resources&lt;br /&gt;
*** each service request &lt;br /&gt;
** Commservice request - aka &amp;quot;Ports&amp;quot;&lt;br /&gt;
*** Allows separate components to talk to each other threw the parent , but never directly child to child&lt;br /&gt;
** friv&lt;br /&gt;
*** the display driver each service instances needs it own display aka friv&lt;br /&gt;
** vop &amp;lt;-- Do we want to talk about&lt;br /&gt;
** sop &amp;lt;-- Do we want to talk about&lt;br /&gt;
* What was implemented&lt;br /&gt;
** Proxy server and MME filter&lt;br /&gt;
**&lt;br /&gt;
* What the testing was&lt;br /&gt;
** Running speed tests not security test , Anil said WHY ? mabey because OS conference cares about speed&lt;br /&gt;
** Open sandbox was not implemented&lt;br /&gt;
** only one service instance per friv&lt;br /&gt;
* Conclusions&lt;br /&gt;
** Mostly a theoretical paper&lt;br /&gt;
*** But interesting&lt;br /&gt;
** Notes&lt;br /&gt;
*** Do we want to show figure 2 &amp;lt;---- for what they did&lt;br /&gt;
*** Do we want to show figure 3 &amp;lt;--- for what they did and how it works&lt;/div&gt;</summary>
		<author><name>Falaca</name></author>
	</entry>
</feed>