<?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=Gbint</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=Gbint"/>
	<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php/Special:Contributions/Gbint"/>
	<updated>2026-05-01T12:27:06Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_8&amp;diff=6181</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_8&amp;diff=6181"/>
		<updated>2010-12-02T04:34:46Z</updated>

		<summary type="html">&lt;p&gt;Gbint: /* Work In Progress */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Group Members&lt;br /&gt;
&lt;br /&gt;
Trevor Bonesaw Malone - tmalone@connect.carleton.ca //FIRST POST!&lt;br /&gt;
&lt;br /&gt;
Qi Zhang   - qzhang13@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
Gregory Bint - gbint@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
Gautam Akiwate - gakiwate@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
Corey Ling - cling@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
Sarah Liske&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Work Plan ==&lt;br /&gt;
&lt;br /&gt;
As Trevor intimated, we should have clear division of work going forward.  This is sort of the break down as I see it.  Please edit as you think of new ideas!&lt;br /&gt;
&lt;br /&gt;
* Background Concepts&lt;br /&gt;
** Information Flow Theory. (Implicit and Explicit Flows.) --Done[--[[User:Gautam|Gautam]] 03:54, 28 November 2010 (UTC)]&lt;br /&gt;
** What is dynamic taint analysis --Done[--[[User:Gautam|Gautam]] 05:07, 28 November 2010 (UTC)]&lt;br /&gt;
** What is the difference between dynamic and static analysis --Done[--[[User:Gautam|Gautam]] 03:54, 30 November 2010 (UTC)]]&lt;br /&gt;
* Research Problem&lt;br /&gt;
** How do we build a DTA engine for a phone? - done, but by who?&lt;br /&gt;
** Why do we want to?  (information misuse) - done, but by who?&lt;br /&gt;
* Contribution&lt;br /&gt;
** How did they implement their DTA engine (Done: --[[User:Cling|Cling]] 04:50, 26 November 2010 (UTC))&lt;br /&gt;
** What did they find about information misuse (Done: --[[User:Cling|Cling]] 04:50, 26 November 2010 (UTC))&lt;br /&gt;
** Compared to the existing taint tracking approaches. [[User:Zhangqi|Zhangqi]] 07:11, 27 November 2010 (UTC)&lt;br /&gt;
** (What else should be in the contributions? Anything need fleshing out?) (Working on that now :) ) sliske&lt;br /&gt;
* Critique&lt;br /&gt;
**Added two paragraphs at the end of the present critique. Please incorporate it into your content as you deem fit.--[[User:Gautam|Gautam]] 09:07, 30 November 2010 (UTC) &lt;br /&gt;
**^ done. fleshed out critique, and added a bit about how taintdroid doesn&#039;t track implicit flow. Also reworded (the entire essay) for clarity where necessary/checked spelling. It would be a good idea for everyone to read it over once for spelling/clarity before thursday, just in case something doesn&#039;t make sense - sliske&lt;br /&gt;
* References&lt;br /&gt;
** The article has 61 references!  We can probably use some of them&lt;br /&gt;
**whee! reading papers and sticking in information as need be. Also working out how to cite properly, as there are two citations used currently&lt;br /&gt;
**references added and citations taken care of. will go over fill in a few places where information may be lacking after class sliske&lt;br /&gt;
**Referencing is a little askew. The numbers don&#039;t match the papers as listed in the referencing. Also the papers are usually cited with a number and enclosed in &amp;quot;[]&amp;quot;&lt;br /&gt;
**thanks for giving the paper a read over/noticing that :)&lt;br /&gt;
&lt;br /&gt;
List of information we need to find external sources for:&lt;br /&gt;
* History of taint analysis&lt;br /&gt;
* History of privacy research relating to smart phones&lt;br /&gt;
&lt;br /&gt;
== Work In Progress ==&lt;br /&gt;
&lt;br /&gt;
Log what you are working on *right now* so that other people don&#039;t try to do the same thing.  Make sure to clear your name from here when you are done.&lt;br /&gt;
&lt;br /&gt;
* Gregory Bint:  Research Problem&lt;br /&gt;
&lt;br /&gt;
* Gautam Akiwate:  Background Concepts&lt;br /&gt;
** Any resources on Dynamic taint Analysis would be appreciated!&lt;br /&gt;
&lt;br /&gt;
* Qi Zhang, Corey Ling: Contributions&lt;br /&gt;
&lt;br /&gt;
* Trevor Malone: Critique&lt;br /&gt;
&lt;br /&gt;
* Sarah Liske: References and Questions, Clarity/Spelling.&lt;br /&gt;
&lt;br /&gt;
== Some Notes from the Video ==&lt;br /&gt;
&lt;br /&gt;
Tracking of privacy sensitive data through Dynamic Taint Analysis (aka. Taint Tracking).  The trick is to mark private data as it sourced, and then follow those marks until (unless) they leave the phone.&lt;br /&gt;
	&lt;br /&gt;
Android phones run Java apps, which are compiled into DEX, and then run on top of the Dalvik VM.  It is this VM that we modify so that we can support the storage and tracking of taint tags.&lt;br /&gt;
&lt;br /&gt;
Taint sources&lt;br /&gt;
* low -bandwidth sensors&lt;br /&gt;
** Location&lt;br /&gt;
** Accelerometer&lt;br /&gt;
* High-bandwidth sensors&lt;br /&gt;
** Mic&lt;br /&gt;
** Camera&lt;br /&gt;
* Information DB&lt;br /&gt;
** Address book&lt;br /&gt;
** SMS storage&lt;br /&gt;
* Device ID&lt;br /&gt;
** IMEI&lt;br /&gt;
** IMSI   (don&#039;t actually track this one because of false positives)&lt;br /&gt;
** ICC_ID&lt;br /&gt;
** Phone Number&lt;br /&gt;
&lt;br /&gt;
Taint sink  (where marked data can leave the phone)&lt;br /&gt;
* Network Taint Sink&lt;br /&gt;
&lt;br /&gt;
Taint propagation&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
Taint tags are stored in memory interleaved with the variables they are tracking&lt;br /&gt;
&lt;br /&gt;
Some standard Data Flow technique is used to propagate these tags, especially as one variable that is marked may be assigned to another, so now that variable needs to be tracked as well.&lt;br /&gt;
&lt;br /&gt;
Tracks explicit flows of data, not implicit&lt;br /&gt;
	To fully capture implicit flows, you need to do static analysis, which is hard with closed-source apps, and cannot be done real-time&lt;br /&gt;
	&lt;br /&gt;
Implicit flows are not tracked&lt;br /&gt;
* Implicit flows can involve &amp;quot;taint-scope&amp;quot;, tracking based on conditionals in code&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
&lt;br /&gt;
The goal is to create a real time tracking system, so the TaintDroid&#039;s performance impact is of some importance&lt;br /&gt;
&lt;br /&gt;
14% CPU overhead&lt;br /&gt;
4.4% memory overhead&lt;br /&gt;
&lt;br /&gt;
Macro benchmarks  (to get a feel for what the phone&#039;s usability is like with TD running)&lt;br /&gt;
* App load:  3%  (2ms) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Findings ===&lt;br /&gt;
&lt;br /&gt;
20 out of 30 tested applications share data in a way that is not expected.&lt;br /&gt;
&lt;br /&gt;
67 of 105 flagged pieces of data leaving the device had no obviously legitimate purpose (verified by the authors).&lt;br /&gt;
&lt;br /&gt;
Many apps sent location data and other unique identifiers to advertising servers.&lt;br /&gt;
&lt;br /&gt;
Most apps do not mention anything to the user.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
&lt;br /&gt;
Tracks only explicit data flows.&lt;br /&gt;
&lt;br /&gt;
An application *could* launder the tags off of the data, if they really wanted to hide this sort of thing from TaintDroid.&lt;br /&gt;
&lt;br /&gt;
There are methods that could be used to protect against this, but they go against the goal of a light-weight, real-time tracking system.  TD is not necessarily about catching truly malicious programs, but rather just those that leak information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Why do apps take this information?&lt;br /&gt;
* Lazy;  in the demo video, the wallpaper app seems to use the IMEI just as a ready made unique ID&lt;br /&gt;
* Overzealous;  the developer might thing they *need* the data for something, but actually &lt;br /&gt;
* Ads;  advertises do seem a little presumptuous in their data collection&lt;br /&gt;
* Spying;  bosses or spouses&lt;br /&gt;
* Malicious;  &lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
=== QA Period ===&lt;br /&gt;
&lt;br /&gt;
Q:  how do we prevent a malicious app from removing a taint attribute on a file&lt;br /&gt;
&lt;br /&gt;
A:  TD operates a too low a level for this to be a problem;  TD assumes that the native code is trusted&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q:  It seems like you had a lot of false positives&lt;br /&gt;
&lt;br /&gt;
A:  The point of this tool was to identify privacy sensitive information as having left the phone, not whether or not a privacy violation has taken place.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q: Now that TD is released; couldn&#039;t malicious apps use some of the methods described in the paper to get around it?    &lt;br /&gt;
&lt;br /&gt;
A: Well, yes, but it is not just about maliciousness, it could just laziness or over-zealous ad stuff.&lt;br /&gt;
&lt;br /&gt;
==Other Information==&lt;br /&gt;
&lt;br /&gt;
Hey guys, thought I would just post a generalized paragraph about our essay.&lt;br /&gt;
&lt;br /&gt;
In today’s society, Smartphones are the new big thing. To me that’s what makes this paper so interesting. This paper focuses on private information in android phones and the misuse of this information. The misuse of information includes the SIM card, the ID of the device, or the phone number. TaintDroid is used on smart phones with an efficient taint tracking and analysis system. It has the ability to track sensitive data from multiple sources and examines the misuse of such data. In their study, out of 80 popular third-party applications, TaintDroid monitored that 68 applications had potential misuse of user’s private data. This tool is great for knowing with applications are safe and which are not, so your private data can remained private.&lt;br /&gt;
&lt;br /&gt;
Also, we should really think of splitting up the work in some way. If some people have specific sections they would like to do lets figure that out now so we can divide the workload and get it done over the next couple of days. I don&#039;t personally care what part I&#039;m going to have to do, so lets get this going. Any other information people wanna post feel free the more the better, even if we don&#039;t end up using it.&lt;br /&gt;
&lt;br /&gt;
[[user:Tmalone|Trevor Malone]]&lt;br /&gt;
&lt;br /&gt;
Hey guys! Anything else we need to get done? Let me know and I can help in anyway possible.&lt;br /&gt;
&lt;br /&gt;
[[user:Tmalone|Trevor Malone]]&lt;br /&gt;
&lt;br /&gt;
==Relevant Sources==&lt;br /&gt;
*NEWSOME,J.,AND SONG,D.Dynamic Taint Analysis for Automatic Detection, Analysis, and Signature Generation of Exploits on Commodity Software.      [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.83.2141&amp;amp;rep=rep1&amp;amp;type=pdf Dynamic Taint Analysis for Automatic Detection]&lt;br /&gt;
&amp;lt;u&amp;gt;Seems to be THE Dynamic Taint Analysis Paper.Talks about implementation on TaintCheck. Could be also useful for critique section&amp;lt;/u&amp;gt; -[Gautam]&lt;/div&gt;</summary>
		<author><name>Gbint</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_8&amp;diff=5839</id>
		<title>COMP 3000 Essay 2 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_8&amp;diff=5839"/>
		<updated>2010-11-30T22:40:22Z</updated>

		<summary type="html">&lt;p&gt;Gbint: /* Questions */ answers&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=TaintDroid: An Information-Flow Tracking System for Realtime Privacy Monitoring on Smartphones=&lt;br /&gt;
&#039;&#039;&#039;Authors:&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
* William Enck, Patrick McDaniel &#039;&#039;The Pennsylvania State University&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* Peter Gilbert, Landon P. Cox &#039;&#039;Duke University&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
* Byung-Gon Chun, Jaeyeon Jung Anmol N. Sheth &#039;&#039;Intel Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://appanalysis.org/tdroid10.pdf Direct Link]&lt;br /&gt;
&lt;br /&gt;
[http://www.appanalysis.org/ Official Website]&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=qnLujX1Dw4Y Video Demonstration]&lt;br /&gt;
&lt;br /&gt;
=Background Concepts=&lt;br /&gt;
To follow these ideas in this paper, the ideas which form the basis of this theory have to be understood. All in all, the following two concepts can be said to be central to understanding this paper.&amp;lt;br&amp;gt;&lt;br /&gt;
==Information Flow==&lt;br /&gt;
Information flow as the name suggests is the transfer of information. This transfer of information can be between two processes or within a given process, for example, between variables. [REF] Information Flow Theory tries to quantify this flow of information into a mathematical model.&amp;lt;br&amp;gt; &lt;br /&gt;
In a security model the information flow can be categorized into:&amp;lt;br&amp;gt; &lt;br /&gt;
===Explicit Flow===&lt;br /&gt;
Explicit flow is when information subject to security classifications is transferred to a variable or process which is not subject to the same or higher level of security, causing a security breach. [REF] The breach occurs because information is now more visible than it was intended to be. An example of explicit flow is shown below:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;PRIVATE VAR &amp;lt;big&amp;gt;secure&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
PUBLIC VAR &amp;lt;big&amp;gt;notsecure&amp;lt;br&amp;gt;&lt;br /&gt;
notsecure = secure&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
The information in &amp;lt;i&amp;gt;&#039;secure&#039;&amp;lt;/i&amp;gt; which is PRIVATE is transferred to &amp;lt;i&amp;gt;&#039;notsecure&#039;&amp;lt;/i&amp;gt; which is PUBLIC which is an information leak. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Implicit Flow===&lt;br /&gt;
Implicit Flow is when information subject to security classifications is deduced indirectly. This the leakage of information occurs through the program control flow. [REF] Depending on the flow of the program the secure information can be compromised, as shown below&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;PRIVATE VAR &amp;lt;big&amp;gt;secure&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
PUBLIC VAR &amp;lt;big&amp;gt;notsecure&amp;lt;br&amp;gt;&lt;br /&gt;
if secure=&amp;quot;blah blah&amp;quot; then:&amp;lt;br&amp;gt;&lt;br /&gt;
insecure=1&amp;lt;br&amp;gt;&lt;br /&gt;
else:&amp;lt;br&amp;gt;&lt;br /&gt;
insecure=0&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Since can determine the value of information in &amp;lt;i&amp;gt;secure&amp;lt;/i&amp;gt; using logic statements, we can indirectly access the secure information. Information leak due to implicit flows is much harder to detect and protect from, due to the indirect nature of implicit flows.&lt;br /&gt;
&lt;br /&gt;
==Taint Analysis==&lt;br /&gt;
&lt;br /&gt;
The basic premise of taint analysis is to follow the information flow of &amp;quot;tainted&amp;quot; variables to ensure that they do not create a security breach. Any variable that can be modified directly or indirectly by the user and can become a security vulnerability is &amp;quot;tainted&amp;quot;. Through various operations the &amp;quot;taint&amp;quot; can be passed from variable to variable, propagating it. When a tainted variable is used to execute potentially dangerous commands a breach is logged, allowing detection of possible security concerns. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Dynamic Taint Analysis===&lt;br /&gt;
Taint Analysis done at run-time is called as Dynamic Taint Analysis. The approach used in dynamic taint analysis is to label data originating from untrusted sources as tainted. The analysis keeps track of all the tainted data in memory and when such data is used in a potentially dangerous situation, a leak is detected. This approach offers the capabilities to detect most input validation vulnerabilities with a very low false positive rate. However, the execution of the program is slower because of the additional checks being preformed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Static Taint Analysis===&lt;br /&gt;
Static taint analysis is the technique used for detecting the over approximation of the set of instructions that are influenced by user input. The set of tainted instructions is computed statically by analyzing the sources of the program. The main advantage for static taint analysis is that it takes into account all the possible execution paths of the program. On the other hand the analysis may not be as accurate as a dynamic analysis because the static analysis does not have access to any additional run-time information of the program. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Mathematical Model===&lt;br /&gt;
&amp;lt;code&amp;gt;For all variables V = {T,U} ;T are tainted and U are untainted:&amp;lt;br&amp;gt;&lt;br /&gt;
Using &amp;lt;big&amp;gt;⊕&amp;lt;/big&amp;gt;: V x V -&amp;gt; V, x, y ∈ V &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;&lt;br /&gt;
x&amp;lt;big&amp;gt;⊕&amp;lt;/big&amp;gt;y = T; x = T OR y = T&amp;lt;br&amp;gt;&lt;br /&gt;
x&amp;lt;big&amp;gt;⊕&amp;lt;/big&amp;gt;y = U, if x = U AND y = U&lt;br /&gt;
&amp;lt;/big&amp;gt;&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is now easy to see that whenever a tainted variable is used by another variable, the variable that used the tainted variable becomes tainted as well; the taint is propagated. Taking this further we can see that, if needed, we can tag variables as tainted by attaching to them a tainted tag, which can then be tracked or used as wanted. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;Note: The paper talks about Dynamic Taint Analysis. TaintDroid makes ingenious use of &amp;quot;taint&amp;quot; to taint variables that are of value and tracks their progress. Though in the actual context of Taint Analysis &amp;quot;taint&amp;quot; is used for untrusted information however in this case the &amp;quot;taint&amp;quot; variables are infact important private data. (Just in case if it confused someone :D)&amp;lt;br&amp;gt; For more detailed information on Taint Analysis refer &amp;quot;Detecting Software Vulnerabilities Static Taint Analysis&amp;quot;[2]&amp;lt;/i&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
* Background on the taint data tracking method, how it has been used in other systems (i.e. not phones)&lt;br /&gt;
* A reader&#039;s digest version of any new articles about this kind of security vulnerability on phones, on apps that collect more personal data than users would expect.&lt;br /&gt;
&lt;br /&gt;
=Research problem=&lt;br /&gt;
&lt;br /&gt;
In today’s society, smartphones are a prominent new technology. Smartphones, by their nature, are linked into many private details of our lives, including not only classic data like our contact list, but new kinds of data smartphones make available, such as location data. Smartphones also have the ability to download and run third party applications which can connect to the internet; indeed, this is why we call them &amp;quot;smart&amp;quot;. Except for the odd tunnel or elevator, these phones are constantly connected to the internet. When you combine third party applications with an internet connection on a device that stores an immense amount of personal data, you suddenly find yourself unsure of how your data is being used; what is to stop a third party application from disseminating our private information? As it turns out, very little.&lt;br /&gt;
&lt;br /&gt;
A telling example of this is a wallpaper application that sends your phone number back to the developer. Once the app is running on your phone, it can typically access any of the information on your phone that it has been given permission to access, and it is not necessarily clear when the application has accessed data, or what it is doing with it.&lt;br /&gt;
&lt;br /&gt;
The authors of this paper set out to try to understand what kind of information is being collected and where that information is being sent, and in order to do that, they first needed to build a means of tracking that information.&lt;br /&gt;
&lt;br /&gt;
The strategy they chose is called Dynamic Taint Analysis, sometimes called Taint Tracking. The basic idea being to mark (or &#039;&#039;taint&#039;&#039;) sensitive information at its source, and to then follow that mark as the data moves through a system. In the context of this paper, if ever we should see marked data leave the network interface of the phone, then we know that some sensitive information has been disseminated.&lt;br /&gt;
&lt;br /&gt;
There are many difficulties associated with implementing such a system on a smartphone. Their design goals were to create a light-weight, minimal overhead, real-time tracking system that runs directly on a real phone, with real applications.  To be really useful, the tracking system must not impact the user experience too heavily.&lt;br /&gt;
&lt;br /&gt;
Some implementation difficulties are:&lt;br /&gt;
* Smart phones are resource constrained. Processing power and memory are limited, and any processing that we do perform will consume battery power. If the tracking system is to be real-time, the phone must be considered &amp;quot;usable&amp;quot; by the end user, and so the system must be truly light weight.&lt;br /&gt;
* Third party applications arrive in a compiled format; we cannot analyze their source code.&lt;br /&gt;
* Applications may do complex things with the sensitive data. It is unlikely that the application will simply read a location from the GPS and dump it straight out over the network. More likely is that the application will use that data in some way, or combine it with other data, before it is sent.  We need to be able to track sensitive data throughout this entire process if we hope to perform any useful analysis.&lt;br /&gt;
* Applications can share information with other applications, meaning that our tracking has to work across multiple processes.&lt;br /&gt;
* The tracking must operate on a real phone, not a simulated one. With a simulated system, where we control the virtual hardware and memory, we can be certain that we can see everything that an application might do. On a real device, how can we get low-level enough to see everything the applications do?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;How does this problem relate to past related work?&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Contribution=&lt;br /&gt;
The main contribution of the TaintDroid paper is not that they achieved information flow tracking, but that they made it efficient enough to run in real time on real constrained hardware devices with minimal overhead. As stated &amp;quot;TaintDroid only incurs an approximate 14% CPU overhead and an approximate 4.4% memory overhead for simultaneously tracking 32 taint markings per data unit.&amp;quot; [CITE] It should also be noted that the 14% CPU over-head is only in regards to a &amp;quot;CPU-bound micro-benchmark and imposes negligible overhead on interactive third-party applications.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This low overhead is achieved by modifying the code directly at the Java Virtual Machine (JVM) layer of the Android system to provide variable-level tracking. This allows direct control over how and what private information, such as location details from the GPS, is stored and accessed. Next, they modified the Java Native Interface (JNI) to provide message-level tracking which allows them to monitor inter-process, a.k.a. inter-application, communications. This also allows them to &amp;quot;patch the taint propagation on return.&amp;quot; [CITE] so they can keep track of information transfer via native code. Finally, by modifying the network interface and secondary storage interfaces they are able to provide file-level taint tracking which enables them to ensure &amp;quot;persistent information conservatively retains its taint markings.&amp;quot; [CITE].&lt;br /&gt;
&lt;br /&gt;
Another contribution of TaintDroid is accuracy of tracking sensitive data. Unlike existing solutions that rely on heavy-weight, whole-system emulation, the virtualized architecture of Android allows four levels of taint propagation: variable, method, message, and file. The granularity and flow semantics that TaintDroid offers highly influences the performance and accuracy of TaintDroid. Existing taint tracking approaches, like Panorama Taint System, rely on instruction-level dynamic taint analysis using whole system emulation. This method can lead to the system preforming from 2-20 times slower than normal, which is not suitable at all for the trend of realtime analysis. Moreover, instruction-level tracking faces a serious problem, taint explosion. When we use some complex instructions such as CMPXCHG, REP MOV,the stack pointer may become falsely tainted or taint loss. However, TaintDorid solved this problem with the combination of 4 levels of tracking. For example, the variable level allows TaintDroid to provide flow semantics for taint propagation, allowing distinction between different data pointers at different levels to ensure accuracy.&lt;br /&gt;
&lt;br /&gt;
By combining these four levels (variable, method, message and file) of taint tracking, TaintDroid was able to effectively track 30 randomly selected, popular, 3rd party android applications. In doing so TaintDroid correctly flagged 105 instances of tainted information transmission. Of these 105, only 35 were legitimate risks. It also determined that 50% of the applications submitted the users location to advertising servers and 5 of the applications transmitted the users device ID, phone number and SIM card serial number. Clearly, the higher granularity is needed and TaintDroid is providing a step in the right direction, by providing a highly efficient real time tracking system.&lt;br /&gt;
&lt;br /&gt;
=Critique=&lt;br /&gt;
&lt;br /&gt;
==Style==&lt;br /&gt;
This paper has quite a bit of information, but has a very strong structure in explaining what TaintDroid is and what it does, which makes it easy to read. The paper begins with a high-level overview of TaintDroid, then explains the history followed by an explanation of sources that are tracked by TaintDroid and its design. It continues with test results and the strengths and weaknesses of TaintDroid, with references to related work. &amp;lt;br&amp;gt;&lt;br /&gt;
Readability of the paper could be improved by explaining more of the Android phone architecture first, before beginning the overview of the TaintDroid process. That way the concepts of the implementation would be easier to understand. Another possible improvement would be for this paper to provide some solutions to the problem it found, by suggesting future smartphone security measures, or what possible updates to current programs can be implemented to further improve the tracking of misuse of information, and even prevent it from occurring. &lt;br /&gt;
&lt;br /&gt;
==Content==&lt;br /&gt;
Challenges of monitoring network disclosure of privacy sensitive information are well outlined, as are TaintDroid&#039;s workarounds for these challenges. TaintDroid uses dynamic taint analysis to find a way around the challenges, using a taint source as the targeted sensitive information, and a taint marking to identify the information type. It is easy to see that this research was effective, due to the impressive number of information leaks that were found. TaintDroid effectively identifies information misuse at a high percentage. However, while the implementation is strong in that the overhead is so low and accuracy is high, there are trade-offs that were incurred to meet that overhead. For example, TaintDroid only tracks data flow and does not track control flow, which means there are ways to bypass the TaintDroid filters. There are also other issues, particularly in Taint Tag Storage, which are due to the fact that most string objects have the same tag. Because of the similar tags, it is possible for false positives to occur.&amp;lt;br&amp;gt;&lt;br /&gt;
Further more, TaintDroid is a firmware modification, not an application which raises the questions of its usability by the average user. Being a firmware modification drastically reduces its usability unless &#039;Android System&#039; itself incorporates these changes which is highly unlikely as the overheads, in this case a memory overhead of 4.4%, an IPC overhead of 27% and an overall 14% overhead, are on the higher side in an already resource constrained smartphone.&amp;lt;br&amp;gt;&lt;br /&gt;
For example, consider a possible alternative implementation of TaintDroid. TaintDroid is incorporated in the firmware and hence incurs an additional overhead as the user uses the phone. Consider the implementation of &#039;TaintCheck&#039; on an x86 platform.[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.83.2141&amp;amp;rep=rep1&amp;amp;type=pdf] TaintCheck performs dynamic taint analysis on a program by running the program in its own emulation environment. This allows TaintCheck to monitor and control the program’s execution at a fine-grained level. All the TaintCheck needs is the binary which it the rewrites and uses it in its own emulated environment. What this essentially means is that &#039;TaintCheck&#039; is a mechanism that can perform dynamic taint analysis by performing binary rewriting at run time on an emulated envioronment. Taking this further, we can consider an implementation of TaintDroid based on similar lines. One can then envision an application in which you uploaded the &#039;application binary&#039; and then TaintDroid would return a result of whether the application is safe or not. This has the advantage of being needed to run just once before installation and hence the overheads won&#039;t be much of a concern. This can even allow TaintDroid to incorporate signature based detection of &#039;malacious applications&#039;.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
REFERENCES&lt;br /&gt;
&lt;br /&gt;
=Questions=&lt;br /&gt;
From Anil&#039;s questions:&lt;br /&gt;
* What is one source of false positives in TaintDroid? (In other words, what kind of code/data behavior leads to false alarms?)&lt;br /&gt;
** Answer: Some applications are making legitimate use of sensitive data; for example, Google Maps needs to know your location in order to work, and the use of this data is known by the user.  TaintDroid cannot know whether the user has consented to the use of some data, and so flags it as a leak.&lt;br /&gt;
* What part of Android was modified for TaintDroid? Is this part of Android&#039;s kernel? Explain briefly. &lt;br /&gt;
** The Dalvic VM is modified.  Dalvic is the java virtual machine used by Android to run user applications.  Although Dalvic is a core part of the Android operating system, it is &amp;lt;u&amp;gt;not&amp;lt;/u&amp;gt; a part of the kernel. Dalvic runs on top of the Android kernel (itself a Linux kernel) as a user process.  All third party user applications run on top of Dalvic, however, so it is a sufficiently &amp;quot;low-level&amp;quot; point of the system to implement taint tracking.&lt;br /&gt;
&lt;br /&gt;
Additional questions:&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
[] DENNING, D. E. [http://www.cs.georgetown.edu/~denning/infosec/lattice76.pdf A Lattice Model of Secure Information Flow].&lt;br /&gt;
Communications of the ACM 19, 5 (May 1976), 236–243.&amp;lt;br&amp;gt;&lt;br /&gt;
[]D CEARA, ML POTET et.al [http://tanalysis.googlecode.com/files/DumitruCeara_BSc.pdf Detecting Software Vulnerabilities Static Taint Analysis] GINP ENSIMAG GoogleCode(2009)&amp;lt;br&amp;gt;&lt;br /&gt;
[] NEWSOME,J.,AND SONG,D. [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.83.2141&amp;amp;rep=rep1&amp;amp;type=pdf Dynamic Taint Analysis for Automatic Detection, Analysis, and Signature Generation of Exploits on Commodity Software] Proceedings of the Network and Distributed System Security Symposium (NDSS 2005)&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gbint</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_8&amp;diff=5831</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_8&amp;diff=5831"/>
		<updated>2010-11-30T22:33:29Z</updated>

		<summary type="html">&lt;p&gt;Gbint: /* Work In Progress */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Group Members&lt;br /&gt;
&lt;br /&gt;
Trevor Bonesaw Malone - tmalone@connect.carleton.ca //FIRST POST!&lt;br /&gt;
&lt;br /&gt;
Qi Zhang   - qzhang13@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
Gregory Bint - gbint@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
Gautam Akiwate - gakiwate@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
Corey Ling - cling@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
Sarah Liske&lt;br /&gt;
&lt;br /&gt;
==Relevant Sources==&lt;br /&gt;
*NEWSOME,J.,AND SONG,D.Dynamic Taint Analysis for Automatic Detection, Analysis, and Signature Generation of Exploits on Commodity Software.      [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.83.2141&amp;amp;rep=rep1&amp;amp;type=pdf Dynamic Taint Analysis for Automatic Detection]&lt;br /&gt;
&amp;lt;u&amp;gt;Seems to be THE Dynamic Taint Analysis Paper.Talks about implementation on TaintCheck. Could be also useful for critique section&amp;lt;/u&amp;gt; -[Gautam]&lt;br /&gt;
&lt;br /&gt;
== Work Plan ==&lt;br /&gt;
&lt;br /&gt;
As Trevor intimated, we should have clear division of work going forward.  This is sort of the break down as I see it.  Please edit as you think of new ideas!&lt;br /&gt;
&lt;br /&gt;
* Background Concepts&lt;br /&gt;
** Information Flow Theory. (Implicit and Explicit Flows.) --Done[--[[User:Gautam|Gautam]] 03:54, 28 November 2010 (UTC)]&lt;br /&gt;
** What is dynamic taint analysis --Done[--[[User:Gautam|Gautam]] 05:07, 28 November 2010 (UTC)]&lt;br /&gt;
** What is the difference between dynamic and static analysis&lt;br /&gt;
* Research Problem&lt;br /&gt;
** How do we build a DTA engine for a phone?&lt;br /&gt;
** Why do we want to?  (information misuse)&lt;br /&gt;
* Contribution&lt;br /&gt;
** How did they implement their DTA engine (Done: --[[User:Cling|Cling]] 04:50, 26 November 2010 (UTC))&lt;br /&gt;
** What did they find about information misuse (Done: --[[User:Cling|Cling]] 04:50, 26 November 2010 (UTC))&lt;br /&gt;
** Compared to the existing taint tracking approaches. [[User:Zhangqi|Zhangqi]] 07:11, 27 November 2010 (UTC) (Added something. Still looking for other examples,in progress)&lt;br /&gt;
** (What else should be in the contributions? Anything need fleshing out?) (Working on that now :) sliske&lt;br /&gt;
* Critique&lt;br /&gt;
**Added two paragraphs at the end of the present critique. Please incorporate it into your content as you deem fit.--[[User:Gautam|Gautam]] 09:07, 30 November 2010 (UTC) (done)&lt;br /&gt;
* References&lt;br /&gt;
** The article has 61 references!  We can probably use some of them&lt;br /&gt;
&lt;br /&gt;
List of information we need to find external sources for:&lt;br /&gt;
* History of taint analysis&lt;br /&gt;
* History of privacy research relating to smart phones&lt;br /&gt;
&lt;br /&gt;
== Work In Progress ==&lt;br /&gt;
&lt;br /&gt;
Log what you are working on *right now* so that other people don&#039;t try to do the same thing.  Make sure to clear your name from here when you are done.&lt;br /&gt;
&lt;br /&gt;
* Gregory Bint:  Research Problem&lt;br /&gt;
** Need to find some history on smart phone security research for the second part.&lt;br /&gt;
&lt;br /&gt;
* Gautam Akiwate:  Background Concepts&lt;br /&gt;
** Any resources on Dynamic taint Analysis would be appreciated!&lt;br /&gt;
&lt;br /&gt;
* Corey Ling: Contributions (Qi Zhang) &lt;br /&gt;
&lt;br /&gt;
* Trevor Malone: Critique&lt;br /&gt;
&lt;br /&gt;
* Sarah Liske: References and Questions, Clarity/Spelling.&lt;br /&gt;
&lt;br /&gt;
== Some Notes from the Video ==&lt;br /&gt;
&lt;br /&gt;
Tracking of privacy sensitive data through Dynamic Taint Analysis (aka. Taint Tracking).  The trick is to mark private data as it sourced, and then follow those marks until (unless) they leave the phone.&lt;br /&gt;
	&lt;br /&gt;
Android phones run Java apps, which are compiled into DEX, and then run on top of the Dalvik VM.  It is this VM that we modify so that we can support the storage and tracking of taint tags.&lt;br /&gt;
&lt;br /&gt;
Taint sources&lt;br /&gt;
* low -bandwidth sensors&lt;br /&gt;
** Location&lt;br /&gt;
** Accelerometer&lt;br /&gt;
* High-bandwidth sensors&lt;br /&gt;
** Mic&lt;br /&gt;
** Camera&lt;br /&gt;
* Information DB&lt;br /&gt;
** Address book&lt;br /&gt;
** SMS storage&lt;br /&gt;
* Device ID&lt;br /&gt;
** IMEI&lt;br /&gt;
** IMSI   (don&#039;t actually track this one because of false positives)&lt;br /&gt;
** ICC_ID&lt;br /&gt;
** Phone Number&lt;br /&gt;
&lt;br /&gt;
Taint sink  (where marked data can leave the phone)&lt;br /&gt;
* Network Taint Sink&lt;br /&gt;
&lt;br /&gt;
Taint propagation&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
Taint tags are stored in memory interleaved with the variables they are tracking&lt;br /&gt;
&lt;br /&gt;
Some standard Data Flow technique is used to propagate these tags, especially as one variable that is marked may be assigned to another, so now that variable needs to be tracked as well.&lt;br /&gt;
&lt;br /&gt;
Tracks explicit flows of data, not implicit&lt;br /&gt;
	To fully capture implicit flows, you need to do static analysis, which is hard with closed-source apps, and cannot be done real-time&lt;br /&gt;
	&lt;br /&gt;
Implicit flows are not tracked&lt;br /&gt;
* Implicit flows can involve &amp;quot;taint-scope&amp;quot;, tracking based on conditionals in code&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
&lt;br /&gt;
The goal is to create a real time tracking system, so the TaintDroid&#039;s performance impact is of some importance&lt;br /&gt;
&lt;br /&gt;
14% CPU overhead&lt;br /&gt;
4.4% memory overhead&lt;br /&gt;
&lt;br /&gt;
Macro benchmarks  (to get a feel for what the phone&#039;s usability is like with TD running)&lt;br /&gt;
* App load:  3%  (2ms) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Findings ===&lt;br /&gt;
&lt;br /&gt;
20 out of 30 tested applications share data in a way that is not expected.&lt;br /&gt;
&lt;br /&gt;
67 of 105 flagged pieces of data leaving the device had no obviously legitimate purpose (verified by the authors).&lt;br /&gt;
&lt;br /&gt;
Many apps sent location data and other unique identifiers to advertising servers.&lt;br /&gt;
&lt;br /&gt;
Most apps do not mention anything to the user.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
&lt;br /&gt;
Tracks only explicit data flows.&lt;br /&gt;
&lt;br /&gt;
An application *could* launder the tags off of the data, if they really wanted to hide this sort of thing from TaintDroid.&lt;br /&gt;
&lt;br /&gt;
There are methods that could be used to protect against this, but they go against the goal of a light-weight, real-time tracking system.  TD is not necessarily about catching truly malicious programs, but rather just those that leak information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Why do apps take this information?&lt;br /&gt;
* Lazy;  in the demo video, the wallpaper app seems to use the IMEI just as a ready made unique ID&lt;br /&gt;
* Overzealous;  the developer might thing they *need* the data for something, but actually &lt;br /&gt;
* Ads;  advertises do seem a little presumptuous in their data collection&lt;br /&gt;
* Spying;  bosses or spouses&lt;br /&gt;
* Malicious;  &lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
=== QA Period ===&lt;br /&gt;
&lt;br /&gt;
Q:  how do we prevent a malicious app from removing a taint attribute on a file&lt;br /&gt;
&lt;br /&gt;
A:  TD operates a too low a level for this to be a problem;  TD assumes that the native code is trusted&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q:  It seems like you had a lot of false positives&lt;br /&gt;
&lt;br /&gt;
A:  The point of this tool was to identify privacy sensitive information as having left the phone, not whether or not a privacy violation has taken place.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q: Now that TD is released; couldn&#039;t malicious apps use some of the methods described in the paper to get around it?    &lt;br /&gt;
&lt;br /&gt;
A: Well, yes, but it is not just about maliciousness, it could just laziness or over-zealous ad stuff.&lt;br /&gt;
&lt;br /&gt;
==Other Information==&lt;br /&gt;
&lt;br /&gt;
Hey guys, thought I would just post a generalized paragraph about our essay.&lt;br /&gt;
&lt;br /&gt;
In today’s society, Smartphones are the new big thing. To me that’s what makes this paper so interesting. This paper focuses on private information in android phones and the misuse of this information. The misuse of information includes the SIM card, the ID of the device, or the phone number. TaintDroid is used on smart phones with an efficient taint tracking and analysis system. It has the ability to track sensitive data from multiple sources and examines the misuse of such data. In their study, out of 80 popular third-party applications, TaintDroid monitored that 68 applications had potential misuse of user’s private data. This tool is great for knowing with applications are safe and which are not, so your private data can remained private.&lt;br /&gt;
&lt;br /&gt;
Also, we should really think of splitting up the work in some way. If some people have specific sections they would like to do lets figure that out now so we can divide the workload and get it done over the next couple of days. I don&#039;t personally care what part I&#039;m going to have to do, so lets get this going. Any other information people wanna post feel free the more the better, even if we don&#039;t end up using it.&lt;br /&gt;
&lt;br /&gt;
[[user:Tmalone|Trevor Malone]]&lt;/div&gt;</summary>
		<author><name>Gbint</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_8&amp;diff=5627</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_8&amp;diff=5627"/>
		<updated>2010-11-27T17:58:58Z</updated>

		<summary type="html">&lt;p&gt;Gbint: /* Work In Progress */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Group Members&lt;br /&gt;
&lt;br /&gt;
Trevor Bonesaw Malone - tmalone@connect.carleton.ca //FIRST POST!&lt;br /&gt;
&lt;br /&gt;
Qi Zhang   - qzhang13@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
Gregory Bint - gbint@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
Gautam Akiwate - gakiwate@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
Corey Ling - cling@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
==Relevant Sources==&lt;br /&gt;
*NEWSOME,J.,AND SONG,D.Dynamic Taint Analysis for Automatic Detection, Analysis, and Signature Generation of Exploits on Commodity Software.      [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.83.2141&amp;amp;rep=rep1&amp;amp;type=pdf Dynamic Taint Analysis for Automatic Detection]&lt;br /&gt;
&amp;lt;u&amp;gt;Seems to be THE Dynamic Taint Analysis Paper.Talks about implementation on TaintCheck. Could be also useful for critique section&amp;lt;/u&amp;gt; -[Gautam]&lt;br /&gt;
&lt;br /&gt;
== Work Plan ==&lt;br /&gt;
&lt;br /&gt;
As Trevor intimated, we should have clear division of work going forward.  This is sort of the break down as I see it.  Please edit as you think of new ideas!&lt;br /&gt;
&lt;br /&gt;
* Background Concepts&lt;br /&gt;
** Information Flow Theory. (Implicit and Explicit Flows.)&lt;br /&gt;
** What is dynamic taint analysis&lt;br /&gt;
** What is the difference between dynamic and static analysis&lt;br /&gt;
* Research Problem&lt;br /&gt;
** How do we build a DTA engine for a phone?&lt;br /&gt;
** Why do we want to?  (information misuse)&lt;br /&gt;
* Contribution&lt;br /&gt;
** How did they implement their DTA engine (Done: --[[User:Cling|Cling]] 04:50, 26 November 2010 (UTC))&lt;br /&gt;
** What did they find about information misuse (Done: --[[User:Cling|Cling]] 04:50, 26 November 2010 (UTC))&lt;br /&gt;
** Compared to the existing taint tracking approaches. [[User:Zhangqi|Zhangqi]] 07:11, 27 November 2010 (UTC) (Added something. Still looking for other examples,in progress)&lt;br /&gt;
** (What else should be in the contributions? Anything need fleshing out?)&lt;br /&gt;
* Critique&lt;br /&gt;
* References&lt;br /&gt;
** The article has 61 references!  We can probably use some of them&lt;br /&gt;
&lt;br /&gt;
List of information we need to find external sources for:&lt;br /&gt;
* History of taint analysis&lt;br /&gt;
* History of privacy research relating to smart phones&lt;br /&gt;
&lt;br /&gt;
== Work In Progress ==&lt;br /&gt;
&lt;br /&gt;
Log what you are working on *right now* so that other people don&#039;t try to do the same thing.  Make sure to clear your name from here when you are done.&lt;br /&gt;
&lt;br /&gt;
* Gregory Bint:  Research Problem&lt;br /&gt;
** I&#039;ve got what you will hopefully find to be a reasonable introduction to the problem.  I&#039;ve tried to ask mostly questions here, expecting the details to be covered in Background Concepts and in Contributions.&lt;br /&gt;
** I&#039;m going to try to find some history on smart phone security research for the second part.&lt;br /&gt;
&lt;br /&gt;
* Gautam Akiwate:  Background Concepts&lt;br /&gt;
** Any resources on Dynamic taint Analysis would be appreciated!&lt;br /&gt;
&lt;br /&gt;
* Corey Ling: Contributions (Qi Zhang) &lt;br /&gt;
&lt;br /&gt;
* Trevor Malone: Critique&lt;br /&gt;
&lt;br /&gt;
== Some Notes from the Video ==&lt;br /&gt;
&lt;br /&gt;
Tracking of privacy sensitive data through Dynamic Taint Analysis (aka. Taint Tracking).  The trick is to mark private data as it sourced, and then follow those marks until (unless) they leave the phone.&lt;br /&gt;
	&lt;br /&gt;
Android phones run Java apps, which are compiled into DEX, and then run on top of the Dalvik VM.  It is this VM that we modify so that we can support the storage and tracking of taint tags.&lt;br /&gt;
&lt;br /&gt;
Taint sources&lt;br /&gt;
* low -bandwidth sensors&lt;br /&gt;
** Location&lt;br /&gt;
** Accelerometer&lt;br /&gt;
* High-bandwidth sensors&lt;br /&gt;
** Mic&lt;br /&gt;
** Camera&lt;br /&gt;
* Information DB&lt;br /&gt;
** Address book&lt;br /&gt;
** SMS storage&lt;br /&gt;
* Device ID&lt;br /&gt;
** IMEI&lt;br /&gt;
** IMSI   (don&#039;t actually track this one because of false positives)&lt;br /&gt;
** ICC_ID&lt;br /&gt;
** Phone Number&lt;br /&gt;
&lt;br /&gt;
Taint sink  (where marked data can leave the phone)&lt;br /&gt;
* Network Taint Sink&lt;br /&gt;
&lt;br /&gt;
Taint propagation&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
Taint tags are stored in memory interleaved with the variables they are tracking&lt;br /&gt;
&lt;br /&gt;
Some standard Data Flow technique is used to propagate these tags, especially as one variable that is marked may be assigned to another, so now that variable needs to be tracked as well.&lt;br /&gt;
&lt;br /&gt;
Tracks explicit flows of data, not implicit&lt;br /&gt;
	To fully capture implicit flows, you need to do static analysis, which is hard with closed-source apps, and cannot be done real-time&lt;br /&gt;
	&lt;br /&gt;
Implicit flows are not tracked&lt;br /&gt;
* Implicit flows can involve &amp;quot;taint-scope&amp;quot;, tracking based on conditionals in code&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
&lt;br /&gt;
The goal is to create a real time tracking system, so the TaintDroid&#039;s performance impact is of some importance&lt;br /&gt;
&lt;br /&gt;
14% CPU overhead&lt;br /&gt;
4.4% memory overhead&lt;br /&gt;
&lt;br /&gt;
Macro benchmarks  (to get a feel for what the phone&#039;s usability is like with TD running)&lt;br /&gt;
* App load:  3%  (2ms) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Findings ===&lt;br /&gt;
&lt;br /&gt;
20 out of 30 tested applications share data in a way that is not expected.&lt;br /&gt;
&lt;br /&gt;
67 of 105 flagged pieces of data leaving the device had no obviously legitimate purpose (verified by the authors).&lt;br /&gt;
&lt;br /&gt;
Many apps sent location data and other unique identifiers to advertising servers.&lt;br /&gt;
&lt;br /&gt;
Most apps do not mention anything to the user.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
&lt;br /&gt;
Tracks only explicit data flows.&lt;br /&gt;
&lt;br /&gt;
An application *could* launder the tags off of the data, if they really wanted to hide this sort of thing from TaintDroid.&lt;br /&gt;
&lt;br /&gt;
There are methods that could be used to protect against this, but they go against the goal of a light-weight, real-time tracking system.  TD is not necessarily about catching truly malicious programs, but rather just those that leak information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Why do apps take this information?&lt;br /&gt;
* Lazy;  in the demo video, the wallpaper app seems to use the IMEI just as a ready made unique ID&lt;br /&gt;
* Overzealous;  the developer might thing they *need* the data for something, but actually &lt;br /&gt;
* Ads;  advertises do seem a little presumptuous in their data collection&lt;br /&gt;
* Spying;  bosses or spouses&lt;br /&gt;
* Malicious;  &lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
=== QA Period ===&lt;br /&gt;
&lt;br /&gt;
Q:  how do we prevent a malicious app from removing a taint attribute on a file&lt;br /&gt;
&lt;br /&gt;
A:  TD operates a too low a level for this to be a problem;  TD assumes that the native code is trusted&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q:  It seems like you had a lot of false positives&lt;br /&gt;
&lt;br /&gt;
A:  The point of this tool was to identify privacy sensitive information as having left the phone, not whether or not a privacy violation has taken place.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q: Now that TD is released; couldn&#039;t malicious apps use some of the methods described in the paper to get around it?    &lt;br /&gt;
&lt;br /&gt;
A: Well, yes, but it is not just about maliciousness, it could just laziness or over-zealous ad stuff.&lt;br /&gt;
&lt;br /&gt;
==Other Information==&lt;br /&gt;
&lt;br /&gt;
Hey guys, thought I would just post a generalized paragraph about our essay.&lt;br /&gt;
&lt;br /&gt;
In today’s society, Smartphones are the new big thing. To me that’s what makes this paper so interesting. This paper focuses on private information in android phones and the misuse of this information. The misuse of information includes the SIM card, the ID of the device, or the phone number. TaintDroid is used on smart phones with an efficient taint tracking and analysis system. It has the ability to track sensitive data from multiple sources and examines the misuse of such data. In their study, out of 80 popular third-party applications, TaintDroid monitored that 68 applications had potential misuse of user’s private data. This tool is great for knowing with applications are safe and which are not, so your private data can remained private.&lt;br /&gt;
&lt;br /&gt;
Also, we should really think of splitting up the work in some way. If some people have specific sections they would like to do lets figure that out now so we can divide the workload and get it done over the next couple of days. I don&#039;t personally care what part I&#039;m going to have to do, so lets get this going. Any other information people wanna post feel free the more the better, even if we don&#039;t end up using it.&lt;br /&gt;
&lt;br /&gt;
[[user:Tmalone|Trevor Malone]]&lt;/div&gt;</summary>
		<author><name>Gbint</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_8&amp;diff=5424</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_8&amp;diff=5424"/>
		<updated>2010-11-23T01:02:04Z</updated>

		<summary type="html">&lt;p&gt;Gbint: /* Work In Progress */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Group Members&lt;br /&gt;
&lt;br /&gt;
Trevor Bonesaw Malone - tmalone@connect.carleton.ca //FIRST POST!&lt;br /&gt;
&lt;br /&gt;
Qi Zhang   - qzhang13@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
Gregory Bint - gbint@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
Gautam Akiwate - gakiwate@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
==Relevant Sources==&lt;br /&gt;
*NEWSOME,J.,AND SONG,D.Dynamic Taint Analysis for Automatic Detection, Analysis, and Signature Generation of Exploits on Commodity Software.      [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.83.2141&amp;amp;rep=rep1&amp;amp;type=pdf Dynamic Taint Analysis for Automatic Detection]&lt;br /&gt;
&amp;lt;u&amp;gt;Seems to be THE Dynamic Taint Analysis Paper.Talks about implementation on TaintCheck. Could be also useful for critique section&amp;lt;/u&amp;gt; -[Gautam]&lt;br /&gt;
&lt;br /&gt;
== Work Plan ==&lt;br /&gt;
&lt;br /&gt;
As Trevor intimated, we should have clear division of work going forward.  This is sort of the break down as I see it.  Please edit as you think of new ideas!&lt;br /&gt;
&lt;br /&gt;
* Background Concepts&lt;br /&gt;
** Information Flow Theory. (Implicit and Explicit Flows.)&lt;br /&gt;
** What is dynamic taint analysis&lt;br /&gt;
** What is the difference between dynamic and static analysis&lt;br /&gt;
* Research Problem&lt;br /&gt;
** How do we build a DTA engine for a phone?&lt;br /&gt;
** Why do we want to?  (information misuse)&lt;br /&gt;
* Contribution&lt;br /&gt;
** How did they implement their DTA engine&lt;br /&gt;
** What did they find about information misuse&lt;br /&gt;
* Critique&lt;br /&gt;
* References&lt;br /&gt;
** The article has 61 references!  We can probably use some of them&lt;br /&gt;
&lt;br /&gt;
List of information we need to find external sources for:&lt;br /&gt;
* History of taint analysis&lt;br /&gt;
* History of privacy research relating to smart phones&lt;br /&gt;
&lt;br /&gt;
== Work In Progress ==&lt;br /&gt;
&lt;br /&gt;
Log what you are working on *right now* so that other people don&#039;t try to do the same thing.  Make sure to clear your name from here when you are done.&lt;br /&gt;
&lt;br /&gt;
* Gregory Bint:  Research Problem&lt;br /&gt;
** I&#039;ve got what you will hopefully find to be a reasonable introduction to the problem.  I&#039;ve tried to ask mostly questions here, expecting the details to be covered in Background Concepts and in Contributions.&lt;br /&gt;
** I&#039;m going to try to find some history on smart phone security research for the second part.&lt;br /&gt;
** Should we move the Research Problem *above* Background Concepts?  It might serve as a better lead in that way.&lt;br /&gt;
&lt;br /&gt;
* Gautam Akiwate:  Background Concepts&lt;br /&gt;
** Any resources on Dynamic taint Analysis would be appreciated!&lt;br /&gt;
&lt;br /&gt;
* Qi Zhang: Contributions&lt;br /&gt;
&lt;br /&gt;
== Some Notes from the Video ==&lt;br /&gt;
&lt;br /&gt;
Tracking of privacy sensitive data through Dynamic Taint Analysis (aka. Taint Tracking).  The trick is to mark private data as it sourced, and then follow those marks until (unless) they leave the phone.&lt;br /&gt;
	&lt;br /&gt;
Android phones run Java apps, which are compiled into DEX, and then run on top of the Dalvik VM.  It is this VM that we modify so that we can support the storage and tracking of taint tags.&lt;br /&gt;
&lt;br /&gt;
Taint sources&lt;br /&gt;
* low -bandwidth sensors&lt;br /&gt;
** Location&lt;br /&gt;
** Accelerometer&lt;br /&gt;
* High-bandwidth sensors&lt;br /&gt;
** Mic&lt;br /&gt;
** Camera&lt;br /&gt;
* Information DB&lt;br /&gt;
** Address book&lt;br /&gt;
** SMS storage&lt;br /&gt;
* Device ID&lt;br /&gt;
** IMEI&lt;br /&gt;
** IMSI   (don&#039;t actually track this one because of false positives)&lt;br /&gt;
** ICC_ID&lt;br /&gt;
** Phone Number&lt;br /&gt;
&lt;br /&gt;
Taint sink  (where marked data can leave the phone)&lt;br /&gt;
* Network Taint Sink&lt;br /&gt;
&lt;br /&gt;
Taint propagation&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
Taint tags are stored in memory interleaved with the variables they are tracking&lt;br /&gt;
&lt;br /&gt;
Some standard Data Flow technique is used to propagate these tags, especially as one variable that is marked may be assigned to another, so now that variable needs to be tracked as well.&lt;br /&gt;
&lt;br /&gt;
Tracks explicit flows of data, not implicit&lt;br /&gt;
	To fully capture implicit flows, you need to do static analysis, which is hard with closed-source apps, and cannot be done real-time&lt;br /&gt;
	&lt;br /&gt;
Implicit flows are not tracked&lt;br /&gt;
* Implicit flows can involve &amp;quot;taint-scope&amp;quot;, tracking based on conditionals in code&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
&lt;br /&gt;
The goal is to create a real time tracking system, so the TaintDroid&#039;s performance impact is of some importance&lt;br /&gt;
&lt;br /&gt;
14% CPU overhead&lt;br /&gt;
4.4% memory overhead&lt;br /&gt;
&lt;br /&gt;
Macro benchmarks  (to get a feel for what the phone&#039;s usability is like with TD running)&lt;br /&gt;
* App load:  3%  (2ms) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Findings ===&lt;br /&gt;
&lt;br /&gt;
20 out of 30 tested applications share data in a way that is not expected.&lt;br /&gt;
&lt;br /&gt;
67 of 105 flagged pieces of data leaving the device had no obviously legitimate purpose (verified by the authors).&lt;br /&gt;
&lt;br /&gt;
Many apps sent location data and other unique identifiers to advertising servers.&lt;br /&gt;
&lt;br /&gt;
Most apps do not mention anything to the user.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
&lt;br /&gt;
Tracks only explicit data flows.&lt;br /&gt;
&lt;br /&gt;
An application *could* launder the tags off of the data, if they really wanted to hide this sort of thing from TaintDroid.&lt;br /&gt;
&lt;br /&gt;
There are methods that could be used to protect against this, but they go against the goal of a light-weight, real-time tracking system.  TD is not necessarily about catching truly malicious programs, but rather just those that leak information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Why do apps take this information?&lt;br /&gt;
* Lazy;  in the demo video, the wallpaper app seems to use the IMEI just as a ready made unique ID&lt;br /&gt;
* Overzealous;  the developer might thing they *need* the data for something, but actually &lt;br /&gt;
* Ads;  advertises do seem a little presumptuous in their data collection&lt;br /&gt;
* Spying;  bosses or spouses&lt;br /&gt;
* Malicious;  &lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
=== QA Period ===&lt;br /&gt;
&lt;br /&gt;
Q:  how do we prevent a malicious app from removing a taint attribute on a file&lt;br /&gt;
&lt;br /&gt;
A:  TD operates a too low a level for this to be a problem;  TD assumes that the native code is trusted&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q:  It seems like you had a lot of false positives&lt;br /&gt;
&lt;br /&gt;
A:  The point of this tool was to identify privacy sensitive information as having left the phone, not whether or not a privacy violation has taken place.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q: Now that TD is released; couldn&#039;t malicious apps use some of the methods described in the paper to get around it?    &lt;br /&gt;
&lt;br /&gt;
A: Well, yes, but it is not just about maliciousness, it could just laziness or over-zealous ad stuff.&lt;br /&gt;
&lt;br /&gt;
==Other Information==&lt;br /&gt;
&lt;br /&gt;
Hey guys, thought I would just post a generalized paragraph about our essay.&lt;br /&gt;
&lt;br /&gt;
In today’s society, Smartphones are the new big thing. To me that’s what makes this paper so interesting. This paper focuses on private information in android phones and the misuse of this information. The misuse of information includes the SIM card, the ID of the device, or the phone number. TaintDroid is used on smart phones with an efficient taint tracking and analysis system. It has the ability to track sensitive data from multiple sources and examines the misuse of such data. In their study, out of 80 popular third-party applications, TaintDroid monitored that 68 applications had potential misuse of user’s private data. This tool is great for knowing with applications are safe and which are not, so your private data can remained private.&lt;br /&gt;
&lt;br /&gt;
Also, we should really think of splitting up the work in some way. If some people have specific sections they would like to do lets figure that out now so we can divide the workload and get it done over the next couple of days. I don&#039;t personally care what part I&#039;m going to have to do, so lets get this going. Any other information people wanna post feel free the more the better, even if we don&#039;t end up using it.&lt;br /&gt;
&lt;br /&gt;
[[user:Tmalone|Trevor Malone]]&lt;/div&gt;</summary>
		<author><name>Gbint</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_8&amp;diff=5423</id>
		<title>COMP 3000 Essay 2 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_8&amp;diff=5423"/>
		<updated>2010-11-23T00:57:05Z</updated>

		<summary type="html">&lt;p&gt;Gbint: /* Research problem */   I&amp;#039;ve tried to ask mostly questions here, with the details supposedly in Background concepts or in Contribution&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Paper=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&amp;lt;big&amp;gt;TaintDroid: An Information-Flow Tracking System for Realtime Privacy Monitoring on Smartphones&amp;lt;/big&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Authors:&lt;br /&gt;
* William Enck, &#039;&#039;The Pennsylvania State University&#039;&#039;&lt;br /&gt;
* Peter Gilbert, &#039;&#039;Duke University&#039;&#039;&lt;br /&gt;
* Byung-Gon Chun, &#039;&#039;Intel Labs&#039;&#039;&lt;br /&gt;
* Landon P. Cox, &#039;&#039;Duke University&#039;&#039;&lt;br /&gt;
* Jaeyeon Jung, &#039;&#039;Intel Labs&#039;&#039;&lt;br /&gt;
* Patrick McDaniel, &#039;&#039;The Pennsylvania State University&#039;&#039;&lt;br /&gt;
* Anmol N. Sheth, &#039;&#039;Intel Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Official Website: http://www.appanalysis.org/&lt;br /&gt;
&lt;br /&gt;
Direct Link to Paper: http://appanalysis.org/tdroid10.pdf&lt;br /&gt;
&lt;br /&gt;
Video demonstration of TaintDroid in action: http://www.youtube.com/watch?v=qnLujX1Dw4Y&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Background Concepts=&lt;br /&gt;
Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
* Background on Information Flow Theory. Explicit and Implicit Flow.&lt;br /&gt;
* Background on the taint data tracking method, how it has been used in other systems (i.e. not phones)&lt;br /&gt;
* A reader&#039;s digest version of any new articles about this kind of security vulnerability on phones, on apps that collect more personal data than users would expect.&lt;br /&gt;
&lt;br /&gt;
=Research problem=&lt;br /&gt;
&lt;br /&gt;
In today’s society, smartphones are the new big thing.   Smartphones, by their nature, are linked into many private details of our lives, including not only classic data like our contact list, but new kinds of data unique to smartphones, such as location data.  Except for the odd tunnel or elevator, these phones are constantly connected to the internet.   Smartphones also have the ability to download and run third party applications;  indeed, this is why we call them &amp;quot;smart&amp;quot;.  When you combine third party applications with an internet connection, you suddenly find yourself unsure of how your data is being used, that is, what is to stop a third party application from disseminating our private information?   As it turns out, very little.&lt;br /&gt;
&lt;br /&gt;
A telling example of this is a wallpaper application that sends your phone number back to the developer.  Once the app is running on your phone, it can typically access any of the information on your phone, and it is not necessarily clear when it has done so, or what it is doing with it.&lt;br /&gt;
&lt;br /&gt;
The authors of this paper set out to try to understand what kind of information is being collected and where that information is being sent, and in order to do that, they first needed to build a means of tracking that information.&lt;br /&gt;
&lt;br /&gt;
The strategy they chose is called Dynamic Taint Analysis, sometimes called Taint Tracking.  The basic idea being to mark (&#039;&#039;taint&#039;&#039;) sensitive information at its source, and to then follow that mark as it moves through a system.  In the context of this paper, if ever we should see marked data leave the network interface of the phone, then we know that some sensitive information has been disseminated.&lt;br /&gt;
&lt;br /&gt;
There are many difficulties associated with implementing such a system on a smartphone.  Their design goals were to create a light-weight, minimal overhead, real-time tracking system that runs directly on a real phone, with real applications.  To be really useful, the tracking system must not impact the user experience too heavily.&lt;br /&gt;
&lt;br /&gt;
Some of the difficulties include&lt;br /&gt;
* Smart phones are resource constrained.   Processing power and memory are limited, and any processing that we do perform will consume battery power.  If the tracking system is to be real-time, and for the phone to be considered &amp;quot;usable&amp;quot; by the end user, the system must be truly light weight.&lt;br /&gt;
* Third party applications arrive in a compiled format;  we cannot analyze their source code.&lt;br /&gt;
* Applications may do complex things with the sensitive data.  It is unlikely that the application will simply read a location from the GPS and dump it straight out over the network.  More likely is that the application will use that data in someway, or combine it with other data, before it is sent.  We need to be able to track sensitive data throughout this entire process if we hope to perform any useful analysis.&lt;br /&gt;
* Applications can share information with other applications, meaning that our tracking has to work across multiple processes.&lt;br /&gt;
* The tracking must operate on a real phone, not a simulated one.  With a simulated system, where we control the virtual hardware and memory, we can be certain that we can see everything that an application might do.  On a real device, how can we get &amp;quot;low enough&amp;quot; to see everything the applications do?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;How does this problem relate to past related work?&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Contribution=&lt;br /&gt;
What are the research contribution(s) of this work? Specifically, what are the key research results, and what do they mean? (What was implemented? Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
=Critique=&lt;br /&gt;
What is good and not-so-good about this paper? You may discuss both the style and content; be sure to ground your discussion with specific references. Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references). Place your bibliographic entries in this section.&lt;/div&gt;</summary>
		<author><name>Gbint</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_8&amp;diff=5411</id>
		<title>COMP 3000 Essay 2 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_8&amp;diff=5411"/>
		<updated>2010-11-22T23:36:43Z</updated>

		<summary type="html">&lt;p&gt;Gbint: /* Research problem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Paper=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&amp;lt;big&amp;gt;TaintDroid: An Information-Flow Tracking System for Realtime Privacy Monitoring on Smartphones&amp;lt;/big&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Authors:&lt;br /&gt;
* William Enck, &#039;&#039;The Pennsylvania State University&#039;&#039;&lt;br /&gt;
* Peter Gilbert, &#039;&#039;Duke University&#039;&#039;&lt;br /&gt;
* Byung-Gon Chun, &#039;&#039;Intel Labs&#039;&#039;&lt;br /&gt;
* Landon P. Cox, &#039;&#039;Duke University&#039;&#039;&lt;br /&gt;
* Jaeyeon Jung, &#039;&#039;Intel Labs&#039;&#039;&lt;br /&gt;
* Patrick McDaniel, &#039;&#039;The Pennsylvania State University&#039;&#039;&lt;br /&gt;
* Anmol N. Sheth, &#039;&#039;Intel Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Official Website: http://www.appanalysis.org/&lt;br /&gt;
&lt;br /&gt;
Direct Link to Paper: http://appanalysis.org/tdroid10.pdf&lt;br /&gt;
&lt;br /&gt;
Video demonstration of TaintDroid in action: http://www.youtube.com/watch?v=qnLujX1Dw4Y&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Background Concepts=&lt;br /&gt;
Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
* Background on Information Flow Theory. Explicit and Implicit Flow.&lt;br /&gt;
* Background on the taint data tracking method, how it has been used in other systems (i.e. not phones)&lt;br /&gt;
* A reader&#039;s digest version of any new articles about this kind of security vulnerability on phones, on apps that collect more personal data than users would expect.&lt;br /&gt;
&lt;br /&gt;
=Research problem=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;note:  the underlined headings are just for organizing thoughts!  They should be removed before the due date!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;What is the research problem being addressed by the paper?&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dynamic Taint Analysis has been around for a while (TODO when, where).  The key contribution here is in producing an effective taint tracking system that can run in real-time on a device with serious constraints on performance and battery life, without impacting the end-user experience on the device too greatly.&lt;br /&gt;
&lt;br /&gt;
Key issues with Dynamic Taint Analysis on a smart phone:&lt;br /&gt;
* Scarce system resources&lt;br /&gt;
* Effectiveness of analysis on a non-simulated platform&lt;br /&gt;
* Must be real-time and light-weight; the device has to remain &amp;quot;usable&amp;quot; in the eyes of the end user.&lt;br /&gt;
Other Issues Due to Applications:&lt;br /&gt;
* Applications are entrusted with several types of privacy sensitive information&lt;br /&gt;
* Applications share information with each other&lt;br /&gt;
* Applications are already compiled; we cannot access the source code&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&amp;quot;Other Issues&amp;quot; important to mention as it leads to important design choices like Message level tracking etc.&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Having created this system, the goal of the paper then turns to that of the misuse of identifying or private information stored on a smart phone.  The researchers found that a large majority of the applications they tested were sharing information in ways that a user might not expect.  The classic example is the wallpaper app that sends your phone number back to the developer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;How does this problem relate to past related work?&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Contribution=&lt;br /&gt;
What are the research contribution(s) of this work? Specifically, what are the key research results, and what do they mean? (What was implemented? Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
=Critique=&lt;br /&gt;
What is good and not-so-good about this paper? You may discuss both the style and content; be sure to ground your discussion with specific references. Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references). Place your bibliographic entries in this section.&lt;/div&gt;</summary>
		<author><name>Gbint</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_8&amp;diff=5389</id>
		<title>COMP 3000 Essay 2 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_8&amp;diff=5389"/>
		<updated>2010-11-22T21:59:00Z</updated>

		<summary type="html">&lt;p&gt;Gbint: /* Research problem */   rough work;  jotting out ideas&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Paper=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&amp;lt;big&amp;gt;TaintDroid: An Information-Flow Tracking System for Realtime Privacy Monitoring on Smartphones&amp;lt;/big&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Authors:&lt;br /&gt;
* William Enck, &#039;&#039;The Pennsylvania State University&#039;&#039;&lt;br /&gt;
* Peter Gilbert, &#039;&#039;Duke University&#039;&#039;&lt;br /&gt;
* Byung-Gon Chun, &#039;&#039;Intel Labs&#039;&#039;&lt;br /&gt;
* Landon P. Cox, &#039;&#039;Duke University&#039;&#039;&lt;br /&gt;
* Jaeyeon Jung, &#039;&#039;Intel Labs&#039;&#039;&lt;br /&gt;
* Patrick McDaniel, &#039;&#039;The Pennsylvania State University&#039;&#039;&lt;br /&gt;
* Anmol N. Sheth, &#039;&#039;Intel Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Official Website: http://www.appanalysis.org/&lt;br /&gt;
&lt;br /&gt;
Direct Link to Paper: http://appanalysis.org/tdroid10.pdf&lt;br /&gt;
&lt;br /&gt;
Video demonstration of TaintDroid in action: http://www.youtube.com/watch?v=qnLujX1Dw4Y&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Background Concepts=&lt;br /&gt;
Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
* Background on Information Flow Theory. Explicit and Implicit Flow.&lt;br /&gt;
* Background on the taint data tracking method, how it has been used in other systems (i.e. not phones)&lt;br /&gt;
* A reader&#039;s digest version of any new articles about this kind of security vulnerability on phones, on apps that collect more personal data than users would expect.&lt;br /&gt;
&lt;br /&gt;
=Research problem=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;note:  the underlined headings are just for organizing thoughts!  They should be removed before the due date!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;What is the research problem being addressed by the paper?&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dynamic Taint Analysis has been around for a while (TODO when, where).  The key contribution here is in producing an effective taint tracking system that can run in real-time on a device with serious constraints on performance and battery life, without impacting the end-user experience on the device too greatly.&lt;br /&gt;
&lt;br /&gt;
Key issues with Dynamic Taint Analysis on a smart phone:&lt;br /&gt;
* Scarce system resources&lt;br /&gt;
* Effectiveness of analysis on a non-simulated platform&lt;br /&gt;
* Must be real-time and light-weight; the device has to remain &amp;quot;usable&amp;quot; in the eyes of the end user.&lt;br /&gt;
&lt;br /&gt;
Having created this system, the goal of the paper then turns to that of the misuse of identifying or private information stored on a smart phone.  The researchers found that a large majority of the applications they tested were sharing information in ways that a user might not expect.  The classic example is the wallpaper app that sends your phone number back to the developer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;How does this problem relate to past related work?&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Contribution=&lt;br /&gt;
What are the research contribution(s) of this work? Specifically, what are the key research results, and what do they mean? (What was implemented? Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
=Critique=&lt;br /&gt;
What is good and not-so-good about this paper? You may discuss both the style and content; be sure to ground your discussion with specific references. Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references). Place your bibliographic entries in this section.&lt;/div&gt;</summary>
		<author><name>Gbint</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_8&amp;diff=5388</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_8&amp;diff=5388"/>
		<updated>2010-11-22T21:56:39Z</updated>

		<summary type="html">&lt;p&gt;Gbint: work plan&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Group Members&lt;br /&gt;
&lt;br /&gt;
Trevor Bonesaw Malone - tmalone@connect.carleton.ca //FIRST POST!&lt;br /&gt;
&lt;br /&gt;
Qi Zhang   - qzhang13@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
Gregory Bint - gbint@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
Gautam Akiwate - gakiwate@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Work Plan ==&lt;br /&gt;
&lt;br /&gt;
As Trevor intimated, we should have clear division of work going forward.  This is sort of the break down as I see it.  Please edit as you think of new ideas!&lt;br /&gt;
&lt;br /&gt;
* Background Concepts&lt;br /&gt;
** What is dynamic taint analysis&lt;br /&gt;
** What is the difference between dynamic and static analysis&lt;br /&gt;
* Research Problem&lt;br /&gt;
** How do we build a DTA engine for a phone?&lt;br /&gt;
** Why do we want to?  (information misuse)&lt;br /&gt;
* Contribution&lt;br /&gt;
** How did they implement their DTA engine&lt;br /&gt;
** What did they find about information misuse&lt;br /&gt;
* Critique&lt;br /&gt;
* References&lt;br /&gt;
** The article has 61 references!  We can probably use some of them&lt;br /&gt;
&lt;br /&gt;
List of information we need to find external sources for:&lt;br /&gt;
* History of taint analysis&lt;br /&gt;
* History of privacy research relating to smart phones&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Work In Progress ==&lt;br /&gt;
&lt;br /&gt;
Log what you are working on *right now* so that other people don&#039;t try to do the same thing.  Make sure to clear your name from here when you are done.&lt;br /&gt;
&lt;br /&gt;
* Gregory Bint:  Research Problem&lt;br /&gt;
** If someone wants to find some sources for some of the questions I&#039;m asking, that would be helpful!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Some Notes from the Video ==&lt;br /&gt;
&lt;br /&gt;
Tracking of privacy sensitive data through Dynamic Taint Analysis (aka. Taint Tracking).  The trick is to mark private data as it sourced, and then follow those marks until (unless) they leave the phone.&lt;br /&gt;
	&lt;br /&gt;
Android phones run Java apps, which are compiled into DEX, and then run on top of the Dalvik VM.  It is this VM that we modify so that we can support the storage and tracking of taint tags.&lt;br /&gt;
&lt;br /&gt;
Taint sources&lt;br /&gt;
* low -bandwidth sensors&lt;br /&gt;
** Location&lt;br /&gt;
** Accelerometer&lt;br /&gt;
* High-bandwidth sensors&lt;br /&gt;
** Mic&lt;br /&gt;
** Camera&lt;br /&gt;
* Information DB&lt;br /&gt;
** Address book&lt;br /&gt;
** SMS storage&lt;br /&gt;
* Device ID&lt;br /&gt;
** IMEI&lt;br /&gt;
** IMSI   (don&#039;t actually track this one because of false positives)&lt;br /&gt;
** ICC_ID&lt;br /&gt;
** Phone Number&lt;br /&gt;
&lt;br /&gt;
Taint sink  (where marked data can leave the phone)&lt;br /&gt;
* Network Taint Sink&lt;br /&gt;
&lt;br /&gt;
Taint propagation&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
Taint tags are stored in memory interleaved with the variables they are tracking&lt;br /&gt;
&lt;br /&gt;
Some standard Data Flow technique is used to propagate these tags, especially as one variable that is marked may be assigned to another, so now that variable needs to be tracked as well.&lt;br /&gt;
&lt;br /&gt;
Tracks explicit flows of data, not implicit&lt;br /&gt;
	To fully capture implicit flows, you need to do static analysis, which is hard with closed-source apps, and cannot be done real-time&lt;br /&gt;
	&lt;br /&gt;
Implicit flows are not tracked&lt;br /&gt;
* Implicit flows can involve &amp;quot;taint-scope&amp;quot;, tracking based on conditionals in code&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
&lt;br /&gt;
The goal is to create a real time tracking system, so the TaintDroid&#039;s performance impact is of some importance&lt;br /&gt;
&lt;br /&gt;
14% CPU overhead&lt;br /&gt;
4.4% memory overhead&lt;br /&gt;
&lt;br /&gt;
Macro benchmarks  (to get a feel for what the phone&#039;s usability is like with TD running)&lt;br /&gt;
* App load:  3%  (2ms) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Findings ===&lt;br /&gt;
&lt;br /&gt;
20 out of 30 tested applications share data in a way that is not expected.&lt;br /&gt;
&lt;br /&gt;
67 of 105 flagged pieces of data leaving the device had no obviously legitimate purpose (verified by the authors).&lt;br /&gt;
&lt;br /&gt;
Many apps sent location data and other unique identifiers to advertising servers.&lt;br /&gt;
&lt;br /&gt;
Most apps do not mention anything to the user.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
&lt;br /&gt;
Tracks only explicit data flows.&lt;br /&gt;
&lt;br /&gt;
An application *could* launder the tags off of the data, if they really wanted to hide this sort of thing from TaintDroid.&lt;br /&gt;
&lt;br /&gt;
There are methods that could be used to protect against this, but they go against the goal of a light-weight, real-time tracking system.  TD is not necessarily about catching truly malicious programs, but rather just those that leak information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Why do apps take this information?&lt;br /&gt;
* Lazy;  in the demo video, the wallpaper app seems to use the IMEI just as a ready made unique ID&lt;br /&gt;
* Overzealous;  the developer might thing they *need* the data for something, but actually &lt;br /&gt;
* Ads;  advertises do seem a little presumptuous in their data collection&lt;br /&gt;
* Spying;  bosses or spouses&lt;br /&gt;
* Malicious;  &lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
=== QA Period ===&lt;br /&gt;
&lt;br /&gt;
Q:  how do we prevent a malicious app from removing a taint attribute on a file&lt;br /&gt;
&lt;br /&gt;
A:  TD operates a too low a level for this to be a problem;  TD assumes that the native code is trusted&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q:  It seems like you had a lot of false positives&lt;br /&gt;
&lt;br /&gt;
A:  The point of this tool was to identify privacy sensitive information as having left the phone, not whether or not a privacy violation has taken place.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q: Now that TD is released; couldn&#039;t malicious apps use some of the methods described in the paper to get around it?    &lt;br /&gt;
&lt;br /&gt;
A: Well, yes, but it is not just about maliciousness, it could just laziness or over-zealous ad stuff.&lt;br /&gt;
&lt;br /&gt;
==Other Information==&lt;br /&gt;
&lt;br /&gt;
Hey guys, thought I would just post a generalized paragraph about our essay.&lt;br /&gt;
&lt;br /&gt;
In today’s society, Smartphones are the new big thing. To me that’s what makes this paper so interesting. This paper focuses on private information in android phones and the misuse of this information. The misuse of information includes the SIM card, the ID of the device, or the phone number. TaintDroid is used on smart phones with an efficient taint tracking and analysis system. It has the ability to track sensitive data from multiple sources and examines the misuse of such data. In their study, out of 80 popular third-party applications, TaintDroid monitored that 68 applications had potential misuse of user’s private data. This tool is great for knowing with applications are safe and which are not, so your private data can remained private.&lt;br /&gt;
&lt;br /&gt;
Also, we should really think of splitting up the work in some way. If some people have specific sections they would like to do lets figure that out now so we can divide the workload and get it done over the next couple of days. I don&#039;t personally care what part I&#039;m going to have to do, so lets get this going. Any other information people wanna post feel free the more the better, even if we don&#039;t end up using it.&lt;br /&gt;
&lt;br /&gt;
[[user:Tmalone|Trevor Malone]]&lt;/div&gt;</summary>
		<author><name>Gbint</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_8&amp;diff=5217</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_8&amp;diff=5217"/>
		<updated>2010-11-20T04:33:14Z</updated>

		<summary type="html">&lt;p&gt;Gbint: /* QA Period */  formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Group Members&lt;br /&gt;
&lt;br /&gt;
Trevor Bonesaw Malone - tmalone@connect.carleton.ca //FIRST POST!&lt;br /&gt;
&lt;br /&gt;
Qi Zhang   - qzhang13@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
Gregory Bint - gbint@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
Gautam Akiwate - gakiwate@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Some Notes from the Video ==&lt;br /&gt;
&lt;br /&gt;
Tracking of privacy sensitive data through Dynamic Taint Analysis (aka. Taint Tracking).  The trick is to mark private data as it sourced, and then follow those marks until (unless) they leave the phone.&lt;br /&gt;
	&lt;br /&gt;
Android phones run Java apps, which are compiled into DEX, and then run on top of the Dalvik VM.  It is this VM that we modify so that we can support the storage and tracking of taint tags.&lt;br /&gt;
&lt;br /&gt;
Taint sources&lt;br /&gt;
* low -bandwidth sensors&lt;br /&gt;
** Location&lt;br /&gt;
** Accelerometer&lt;br /&gt;
* High-bandwidth sensors&lt;br /&gt;
** Mic&lt;br /&gt;
** Camera&lt;br /&gt;
* Information DB&lt;br /&gt;
** Address book&lt;br /&gt;
** SMS storage&lt;br /&gt;
* Device ID&lt;br /&gt;
** IMEI&lt;br /&gt;
** IMSI   (don&#039;t actually track this one because of false positives)&lt;br /&gt;
** ICC_ID&lt;br /&gt;
** Phone Number&lt;br /&gt;
&lt;br /&gt;
Taint sink  (where marked data can leave the phone)&lt;br /&gt;
* Network Taint Sink&lt;br /&gt;
&lt;br /&gt;
Taint propagation&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
Taint tags are stored in memory interleaved with the variables they are tracking&lt;br /&gt;
&lt;br /&gt;
Some standard Data Flow technique is used to propagate these tags, especially as one variable that is marked may be assigned to another, so now that variable needs to be tracked as well.&lt;br /&gt;
&lt;br /&gt;
Tracks explicit flows of data, not implicit&lt;br /&gt;
	To fully capture implicit flows, you need to do static analysis, which is hard with closed-source apps, and cannot be done real-time&lt;br /&gt;
	&lt;br /&gt;
Implicit flows are not tracked&lt;br /&gt;
* Implicit flows can involve &amp;quot;taint-scope&amp;quot;, tracking based on conditionals in code&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
&lt;br /&gt;
The goal is to create a real time tracking system, so the TaintDroid&#039;s performance impact is of some importance&lt;br /&gt;
&lt;br /&gt;
14% CPU overhead&lt;br /&gt;
4.4% memory overhead&lt;br /&gt;
&lt;br /&gt;
Macro benchmarks  (to get a feel for what the phone&#039;s usability is like with TD running)&lt;br /&gt;
* App load:  3%  (2ms) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Findings ===&lt;br /&gt;
&lt;br /&gt;
20 out of 30 tested applications share data in a way that is not expected.&lt;br /&gt;
&lt;br /&gt;
67 of 105 flagged pieces of data leaving the device had no obviously legitimate purpose (verified by the authors).&lt;br /&gt;
&lt;br /&gt;
Many apps sent location data and other unique identifiers to advertising servers.&lt;br /&gt;
&lt;br /&gt;
Most apps do not mention anything to the user.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
&lt;br /&gt;
Tracks only explicit data flows.&lt;br /&gt;
&lt;br /&gt;
An application *could* launder the tags off of the data, if they really wanted to hide this sort of thing from TaintDroid.&lt;br /&gt;
&lt;br /&gt;
There are methods that could be used to protect against this, but they go against the goal of a light-weight, real-time tracking system.  TD is not necessarily about catching truly malicious programs, but rather just those that leak information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Why do apps take this information?&lt;br /&gt;
* Lazy;  in the demo video, the wallpaper app seems to use the IMEI just as a ready made unique ID&lt;br /&gt;
* Overzealous;  the developer might thing they *need* the data for something, but actually &lt;br /&gt;
* Ads;  advertises do seem a little presumptuous in their data collection&lt;br /&gt;
* Spying;  bosses or spouses&lt;br /&gt;
* Malicious;  &lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
=== QA Period ===&lt;br /&gt;
&lt;br /&gt;
Q:  how do we prevent a malicious app from removing a taint attribute on a file&lt;br /&gt;
&lt;br /&gt;
A:  TD operates a too low a level for this to be a problem;  TD assumes that the native code is trusted&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q:  It seems like you had a lot of false positives&lt;br /&gt;
&lt;br /&gt;
A:  The point of this tool was to identify privacy sensitive information as having left the phone, not whether or not a privacy violation has taken place.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q: Now that TD is released; couldn&#039;t malicious apps use some of the methods described in the paper to get around it?    &lt;br /&gt;
&lt;br /&gt;
A: Well, yes, but it is not just about maliciousness, it could just laziness or over-zealous ad stuff.&lt;/div&gt;</summary>
		<author><name>Gbint</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_8&amp;diff=5216</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_8&amp;diff=5216"/>
		<updated>2010-11-20T04:32:44Z</updated>

		<summary type="html">&lt;p&gt;Gbint: my notes from the video;  please add!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Group Members&lt;br /&gt;
&lt;br /&gt;
Trevor Bonesaw Malone - tmalone@connect.carleton.ca //FIRST POST!&lt;br /&gt;
&lt;br /&gt;
Qi Zhang   - qzhang13@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
Gregory Bint - gbint@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
Gautam Akiwate - gakiwate@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Some Notes from the Video ==&lt;br /&gt;
&lt;br /&gt;
Tracking of privacy sensitive data through Dynamic Taint Analysis (aka. Taint Tracking).  The trick is to mark private data as it sourced, and then follow those marks until (unless) they leave the phone.&lt;br /&gt;
	&lt;br /&gt;
Android phones run Java apps, which are compiled into DEX, and then run on top of the Dalvik VM.  It is this VM that we modify so that we can support the storage and tracking of taint tags.&lt;br /&gt;
&lt;br /&gt;
Taint sources&lt;br /&gt;
* low -bandwidth sensors&lt;br /&gt;
** Location&lt;br /&gt;
** Accelerometer&lt;br /&gt;
* High-bandwidth sensors&lt;br /&gt;
** Mic&lt;br /&gt;
** Camera&lt;br /&gt;
* Information DB&lt;br /&gt;
** Address book&lt;br /&gt;
** SMS storage&lt;br /&gt;
* Device ID&lt;br /&gt;
** IMEI&lt;br /&gt;
** IMSI   (don&#039;t actually track this one because of false positives)&lt;br /&gt;
** ICC_ID&lt;br /&gt;
** Phone Number&lt;br /&gt;
&lt;br /&gt;
Taint sink  (where marked data can leave the phone)&lt;br /&gt;
* Network Taint Sink&lt;br /&gt;
&lt;br /&gt;
Taint propagation&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
Taint tags are stored in memory interleaved with the variables they are tracking&lt;br /&gt;
&lt;br /&gt;
Some standard Data Flow technique is used to propagate these tags, especially as one variable that is marked may be assigned to another, so now that variable needs to be tracked as well.&lt;br /&gt;
&lt;br /&gt;
Tracks explicit flows of data, not implicit&lt;br /&gt;
	To fully capture implicit flows, you need to do static analysis, which is hard with closed-source apps, and cannot be done real-time&lt;br /&gt;
	&lt;br /&gt;
Implicit flows are not tracked&lt;br /&gt;
* Implicit flows can involve &amp;quot;taint-scope&amp;quot;, tracking based on conditionals in code&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
&lt;br /&gt;
The goal is to create a real time tracking system, so the TaintDroid&#039;s performance impact is of some importance&lt;br /&gt;
&lt;br /&gt;
14% CPU overhead&lt;br /&gt;
4.4% memory overhead&lt;br /&gt;
&lt;br /&gt;
Macro benchmarks  (to get a feel for what the phone&#039;s usability is like with TD running)&lt;br /&gt;
* App load:  3%  (2ms) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Findings ===&lt;br /&gt;
&lt;br /&gt;
20 out of 30 tested applications share data in a way that is not expected.&lt;br /&gt;
&lt;br /&gt;
67 of 105 flagged pieces of data leaving the device had no obviously legitimate purpose (verified by the authors).&lt;br /&gt;
&lt;br /&gt;
Many apps sent location data and other unique identifiers to advertising servers.&lt;br /&gt;
&lt;br /&gt;
Most apps do not mention anything to the user.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
&lt;br /&gt;
Tracks only explicit data flows.&lt;br /&gt;
&lt;br /&gt;
An application *could* launder the tags off of the data, if they really wanted to hide this sort of thing from TaintDroid.&lt;br /&gt;
&lt;br /&gt;
There are methods that could be used to protect against this, but they go against the goal of a light-weight, real-time tracking system.  TD is not necessarily about catching truly malicious programs, but rather just those that leak information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Why do apps take this information?&lt;br /&gt;
* Lazy;  in the demo video, the wallpaper app seems to use the IMEI just as a ready made unique ID&lt;br /&gt;
* Overzealous;  the developer might thing they *need* the data for something, but actually &lt;br /&gt;
* Ads;  advertises do seem a little presumptuous in their data collection&lt;br /&gt;
* Spying;  bosses or spouses&lt;br /&gt;
* Malicious;  &lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
=== QA Period ===&lt;br /&gt;
&lt;br /&gt;
Q:  how do we prevent a malicious app from removing a taint attribute on a file&lt;br /&gt;
A:  TD operates a too low a level for this to be a problem;  TD assumes that the native code is trusted&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q:  It seems like you had a lot of false positives&lt;br /&gt;
A:  The point of this tool was to identify privacy sensitive information as having left the phone, not whether or not a privacy violation has taken place.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q: Now that TD is released; couldn&#039;t malicious apps use some of the methods described in the paper to get around it?    &lt;br /&gt;
A: Well, yes, but it is not just about maliciousness, it could just laziness or over-zealous ad stuff.&lt;/div&gt;</summary>
		<author><name>Gbint</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_8&amp;diff=5209</id>
		<title>COMP 3000 Essay 2 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_8&amp;diff=5209"/>
		<updated>2010-11-20T01:34:43Z</updated>

		<summary type="html">&lt;p&gt;Gbint: added title, author info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Paper=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&amp;lt;big&amp;gt;TaintDroid: An Information-Flow Tracking System for Realtime Privacy Monitoring on Smartphones&amp;lt;/big&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Authors:&lt;br /&gt;
* William Enck, &#039;&#039;The Pennsylvania State University&#039;&#039;&lt;br /&gt;
* Peter Gilbert, &#039;&#039;Duke University&#039;&#039;&lt;br /&gt;
* Byung-Gon Chun, &#039;&#039;Intel Labs&#039;&#039;&lt;br /&gt;
* Landon P. Cox, &#039;&#039;Duke University&#039;&#039;&lt;br /&gt;
* Jaeyeon Jung, &#039;&#039;Intel Labs&#039;&#039;&lt;br /&gt;
* Patrick McDaniel, &#039;&#039;The Pennsylvania State University&#039;&#039;&lt;br /&gt;
* Anmol N. Sheth, &#039;&#039;Intel Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Official Website: http://www.appanalysis.org/&lt;br /&gt;
&lt;br /&gt;
Direct Link to Paper: http://appanalysis.org/tdroid10.pdf&lt;br /&gt;
&lt;br /&gt;
Video demonstration of TaintDroid in action: http://www.youtube.com/watch?v=qnLujX1Dw4Y&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Background Concepts=&lt;br /&gt;
Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
* Background on the taint data tracking method, how it has been used in other systems (i.e. not phones)&lt;br /&gt;
* A reader&#039;s digest version of any new articles about this kind of security vulnerability on phones, on apps that collect more personal data than users would expect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Research problem=&lt;br /&gt;
What is the research problem being addressed by the paper? How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
=Contribution=&lt;br /&gt;
What are the research contribution(s) of this work? Specifically, what are the key research results, and what do they mean? (What was implemented? Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
=Critique=&lt;br /&gt;
What is good and not-so-good about this paper? You may discuss both the style and content; be sure to ground your discussion with specific references. Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references). Place your bibliographic entries in this section.&lt;/div&gt;</summary>
		<author><name>Gbint</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_8&amp;diff=5174</id>
		<title>COMP 3000 Essay 2 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_8&amp;diff=5174"/>
		<updated>2010-11-18T02:20:25Z</updated>

		<summary type="html">&lt;p&gt;Gbint: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Paper=&lt;br /&gt;
The paper&#039;s title, authors, and their affiliations. Include a link to the paper and any particularly helpful supplementary information.&lt;br /&gt;
&lt;br /&gt;
=Background Concepts=&lt;br /&gt;
Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
* Background on the taint data tracking method, how it has been used in other systems (i.e. not phones)&lt;br /&gt;
* A reader&#039;s digest version of any new articles about this kind of security vulnerability on phones, on apps that collect more personal data than users would expect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Research problem=&lt;br /&gt;
What is the research problem being addressed by the paper? How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
=Contribution=&lt;br /&gt;
What are the research contribution(s) of this work? Specifically, what are the key research results, and what do they mean? (What was implemented? Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
=Critique=&lt;br /&gt;
What is good and not-so-good about this paper? You may discuss both the style and content; be sure to ground your discussion with specific references. Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references). Place your bibliographic entries in this section.&lt;/div&gt;</summary>
		<author><name>Gbint</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_8&amp;diff=5173</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_8&amp;diff=5173"/>
		<updated>2010-11-18T02:17:24Z</updated>

		<summary type="html">&lt;p&gt;Gbint: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Group Members&lt;br /&gt;
&lt;br /&gt;
Trevor Bonesaw Malone - tmalone@connect.carleton.ca //FIRST POST!&lt;br /&gt;
&lt;br /&gt;
Qi Zhang   - qzhang13@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
Gregory Bint - gbint@connect.carleton.ca&lt;/div&gt;</summary>
		<author><name>Gbint</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Lab_4_2010&amp;diff=4853</id>
		<title>COMP 3000 Lab 4 2010</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Lab_4_2010&amp;diff=4853"/>
		<updated>2010-11-02T14:57:17Z</updated>

		<summary type="html">&lt;p&gt;Gbint: how to add a custom grub menu&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All of the following should be done with an Ubuntu 10.04 distribution or equivalent.  We recommend experimenting in a virtual environment because some of the exercises could make your system unbootable.  (In fact, take a snapshot of your working system before starting these exercises so you can easily revert.)&lt;br /&gt;
&lt;br /&gt;
==Questions==&lt;br /&gt;
&lt;br /&gt;
# Change the grub command line at boot to limit the total available RAM to 256M.  You&#039;ll need to get to select an entry and edit it from within grub.&lt;br /&gt;
# Add a new grub menu item which limits the standard kernel to 256M.&lt;br /&gt;
# Add a second virtual disk and make it bootable: put the kernel and initial ram disk on it and then install grub.  Can you boot off of this disk?  What does it do?  &lt;br /&gt;
# Examine the standard kernel&#039;s initial ram disk (initrd).  What program is first run in this environment?  What does it do?&lt;br /&gt;
# Modify the standard initial RAM disk so it pauses for 10 seconds and prints a message to the console on boot.&lt;br /&gt;
# What programs does upstart start on boot?&lt;br /&gt;
&lt;br /&gt;
==Hints==&lt;br /&gt;
&lt;br /&gt;
Please add your hints below to help your fellow students!&lt;br /&gt;
&lt;br /&gt;
=== Pro-tip ===&lt;br /&gt;
sudo update-grub (important!!! guess what it does!!!)&lt;br /&gt;
&lt;br /&gt;
===Kernel command line options===&lt;br /&gt;
&lt;br /&gt;
===GRUB configuration===&lt;br /&gt;
&lt;br /&gt;
*On Ubuntu the user configuration is stored in /etc/default/grub, while system grub configuration is in /etc/grub.d.  The main grub files are stored in /boot/grub.  You can update grub&#039;s config with the update-grub command.&lt;br /&gt;
*to limit RAM, go to /etc/default/grub, and change default boot options so that mem=256M is included.&lt;br /&gt;
&lt;br /&gt;
=== Adding a new grub menu item ===&lt;br /&gt;
&lt;br /&gt;
You need to edit the /etc/grub.d/40_custom file.  You can add custom menu items there using:&lt;br /&gt;
&lt;br /&gt;
   menuentry &amp;quot;my menu item name&amp;quot;&lt;br /&gt;
   {&lt;br /&gt;
       boot parameters go here&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
To find out what boot parameters you need, reboot your system and look at the grub boot menu (hold down shift if your grub menu is being hidden by default, or comment out the GRUB_HIDDEN_* items in /etc/default/grub)&lt;br /&gt;
&lt;br /&gt;
Once at the grub menu, select the default Linux boot item (the first one), and press &#039;e&#039;;  What you will then be shown is the grub script necessary to start Linux.  To make your own menu item, you want to add all of these things, exactly as seen, plus any extra kernel parameters (like mem=256M)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===How GRUB works===&lt;br /&gt;
&lt;br /&gt;
===Making a disk bootable===&lt;br /&gt;
&lt;br /&gt;
===Examining RAM disks===&lt;br /&gt;
&lt;br /&gt;
*Ubuntu (Debian) store initial RAM disks in the cpio format.  &#039;zcat &amp;lt;file&amp;gt; | cpio -i&#039; will extract its contents.&lt;br /&gt;
&lt;br /&gt;
===Upstart/init===&lt;br /&gt;
&lt;br /&gt;
Upstart &amp;quot;jobs&amp;quot; are config (.conf) files in /etc/init that require one of two options an &amp;quot;exec&amp;quot; line or a &amp;quot;script&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The exec line allows the upstart to just simply execute a script elsewhere, while script allows you to shell script in the upstart job.&lt;br /&gt;
&lt;br /&gt;
A special upstart job is rc.conf which maintains the original runlevel init.d scripts. You will see that rc.conf simply executes all the /etc/init.d scripts.&lt;br /&gt;
&lt;br /&gt;
See more on upstart jobs at http://upstart.ubuntu.com/getting-started.html&lt;br /&gt;
&lt;br /&gt;
For those using the newer versions of Ubuntu and thus using Grub2&lt;br /&gt;
https://help.ubuntu.com/community/Grub2&lt;/div&gt;</summary>
		<author><name>Gbint</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Midterm_review_2010&amp;diff=4816</id>
		<title>Talk:COMP 3000 Midterm review 2010</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Midterm_review_2010&amp;diff=4816"/>
		<updated>2010-10-20T15:16:24Z</updated>

		<summary type="html">&lt;p&gt;Gbint: discussing 11 and 12&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--[[User:Gbint|Gbint]] 15:16, 20 October 2010 (UTC)  I think that questions 11 and 12 are the most foreign concepts to me, as I have never had the opportunity to be around an object-based or database-based file system.  Both of these ideas center around providing storage at a level more intelligent than just a block, with meta data and permissions sort of built-in rather than bolted on as an afterthought (a mature afterthought, sure, but its all still just blocks).&lt;br /&gt;
&lt;br /&gt;
Current OFS and DbFS systems seem to just be an abstraction on top of blocks, though, even if it is implemented on the HDD controller. Do you think we will see storage systems where the basic unit of storage is something other a block?&lt;/div&gt;</summary>
		<author><name>Gbint</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_9&amp;diff=2867</id>
		<title>COMP 3000 Essay 1 2010 Question 9</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_9&amp;diff=2867"/>
		<updated>2010-10-10T22:52:29Z</updated>

		<summary type="html">&lt;p&gt;Gbint: better reference for end-to-end zfs paper&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Question=&lt;br /&gt;
&lt;br /&gt;
What requirements distinguish the Zettabyte File System (ZFS) from traditional file systems? How are those requirements realized in ZFS, and how do other operating systems address those same requirements? (Please discuss legacy, current, and in-development systems.)&lt;br /&gt;
&lt;br /&gt;
=Answer=&lt;br /&gt;
&lt;br /&gt;
ZFS was developed by Sun Microsystems (now owned by Oracle) as a server class file systems.  This differs from most file systems which were developed as desktop file systems that could be used by servers.  With the server being the target for the file system particular attention was paid to data integrity, size and speed.&lt;br /&gt;
&lt;br /&gt;
One of the most significant ways in which the ZFS differs from traditional file systems is the level of abstraction.  While a traditional file system abstracts away the physical properties of the media upon which it lies i.e. hard disk, flash drive, CD-ROM, etc. ZFS abstracts away if the file system lives one or many different pieces of hardware or media.  Examples include a single hard drive, an array of hardrives, a number of hard drives on non co-located systems.&lt;br /&gt;
&lt;br /&gt;
One of the mechanisms that allows this abstraction is that the volume manager which is normally a program separate from the file system in traditional file systems is moved into ZFS.&lt;br /&gt;
&lt;br /&gt;
ZFS is a 128-bit file system allowing this allows addressing of 2&amp;lt;sup&amp;gt;128&amp;lt;/sup&amp;gt; bytes of storage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Major Features of ZFS ===&lt;br /&gt;
&lt;br /&gt;
====Physical Layer Abstraction====&lt;br /&gt;
&lt;br /&gt;
* volume management and file system all in one&lt;br /&gt;
* file systems on top of zpools on top of vdevs on top of physical devices&lt;br /&gt;
* file systems easily and often span over many physical devices.&lt;br /&gt;
* ridiculous capacity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Data Integrity====&lt;br /&gt;
&lt;br /&gt;
At the lowest level, ZFS uses checksums for every block of data that is written to disk.  The checksum is checked whenever data is read to ensure that data has not been corrupted in some way.  The idea is that if either the block or the checksum is corrupted, then recalculating the checksum for the block will result in a mismatch between the calculated and stored checksums.  It is possible that both the block and checksum record could be corrupted, but the probability of the corruption being such that the corrupted block&#039;s checksum matches the corrupted checksum is exceptionally low.&lt;br /&gt;
&lt;br /&gt;
In the event that a bad checksum is found, replication of data, in the form of &amp;quot;Ditto Blocks&amp;quot; provide an opportunity for recovery.  A block pointer in ZFS is actually capable of pointing to multiple blocks, each of which contains duplicate data.  By default, duplicate blocks are only stored for file system metadata, but this can be expanded to user data blocks as well.  When a bad checksum is read, ZFS is able to follow one of the other pointers in the block pointer to hopefully find a healthy block.&lt;br /&gt;
&lt;br /&gt;
RAID setups are particularly well suited to ZFS, since there is already an abstraction between the physical storage and the zpools.  Besides protecting from outright total disk failure, if a bad checksum is found, there is the possibility that one of the alternate disks has a healthy version. If these errors accumulate, it can signal an impending drive failure.  When a drive does fail, some of our tolerance for data loss is consumed; that is, the system is operating at less than 100% redundancy (however that is defined for the system at hand). To address this, ZFS supports &amp;quot;hot spares&amp;quot;, idle drives that can be brought online automatically when another drive fails so that full redundancy can be rebuilt with minimal delay, hopefully in time for the next drive failure.&lt;br /&gt;
&lt;br /&gt;
With block-by-block data integrity well in hand, ZFS also employs a transactional update model to ensure that higher level data structures remain consistent. Rather than use a journal to allow for quick consistency checking in the event of a system crash, ZFS uses a copy-on-write model.  New disk structures are written out in a detached state.  Once these structures have been written and checked, then they are connected to the existing disk structures in one atomic write, with the structures they replace becoming disconnected.&lt;br /&gt;
&lt;br /&gt;
At the user level, ZFS supports file-system snapshots.  Essentially, a clone of the entire file system at a certain point in time is created.  In the event of accidental file deletion, a user can access an older version out of a recent snapshot.&lt;br /&gt;
&lt;br /&gt;
====Data Deduplication====&lt;br /&gt;
&lt;br /&gt;
Data Deduplication is a method of interfile storage compression, based around the idea of storing any one block of unique data only once physically, and logically linking that block to each file that contains that data.  Effective use of data deduplication can reduce the space and power requirements of physical storage, but only if you have data that lends itself to deduplication.&lt;br /&gt;
&lt;br /&gt;
Data Deduplication schemes are typically implemented using hash-tables, and can be applied to whole files, sub files (blocks), or as a patch set.   There is an inherit trade off between the granularity of your deduplication algorithm and the resources needed to implement it.   In general, as you consider smaller blocks of data for deduplication, you increase your &amp;quot;fold factor&amp;quot;, that is, the difference between the logical storage provided vs. the physical storage needed.  At the same time, however, smaller blocks means more hash table overhead and more CPU time needed for deduplication and for reconstruction.&lt;br /&gt;
&lt;br /&gt;
The actual analysis and deduplication of incoming files can occur in-band or out-of-band.  In-band deduplication means that the file is analyzed as it arrives at the storage server, and written to disk in its already compressed state.  While this method requires the least over all storage capacity, resource constraints of the server may limit the speed at which new data can be ingested.   In particular, the server must have enough memory to store the entire deduplication hash table in memory for fast comparisons.  With out-of-band deduplication, inbound files are written to disk without any analysis (so, in the traditional way).  A background process analyzes these files at a later time to perform the compression.  This method means higher overall disk I/O is needed, which can be a problem if the disk (or disk array) is already at I/O capacity.&lt;br /&gt;
&lt;br /&gt;
In the case of ZFS, which is typically hosted as a server-side file system, the server itself performs all of the deduplication and reconstruction; the entire process is transparent to the client.  ZFS assumes that it is running on a highly multi-threaded operating system and that CPU cycles are in greater abundance than disk I/O cycles, and thus performs the deduplication in-band.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* Mandagere, N., Zhou, P., Smith, M. A., and Uttamchandani, S. 2008. [http://portal.acm.org.proxy.library.carleton.ca/citation.cfm?id=1462739 Demystifying data deduplication]. In Proceedings of the ACM/IFIP/USENIX Middleware &#039;08 Conference Companion  (Leuven, Belgium, December 01 - 05, 2008). Companion &#039;08. ACM, New York, NY, 12-17.&lt;br /&gt;
&lt;br /&gt;
* Geer, D.; , [http://ieeexplore.ieee.org.proxy.library.carleton.ca/xpls/abs_all.jsp?arnumber=4712493 &amp;quot;Reducing the Storage Burden via Data Deduplication,&amp;quot;] Computer , vol.41, no.12, pp.15-17, Dec. 2008&lt;br /&gt;
&lt;br /&gt;
* Bonwick, J.; [http://blogs.sun.com/bonwick/en_US/entry/zfs_dedup ZFS Deduplication]. Jeff Bonwick&#039;s Blog. November 2, 2009.&lt;br /&gt;
&lt;br /&gt;
* Andrew Li, Department of Computing Macquarie University, Zettabyte File System Autopsy: Digital Crime Scene Investigation for Zettabyte File System&lt;br /&gt;
&lt;br /&gt;
* Zhang, Yupu and Rajimwale, Abhishek and Arpaci-Dusseau, Andrea C. and Arpaci-Dusseau, Remzi H.; [http://www.usenix.org/events/fast10/tech/full_papers/zhang.pdf End-to-end Data Integrity for File Systems: A ZFS Case Study]. FAST&#039;10: Proceedings of the 8th USENIX conference on File and storage technologies. USENIX Association, Berkley, CA, USA.&lt;/div&gt;</summary>
		<author><name>Gbint</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_9&amp;diff=2866</id>
		<title>COMP 3000 Essay 1 2010 Question 9</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_9&amp;diff=2866"/>
		<updated>2010-10-10T22:48:50Z</updated>

		<summary type="html">&lt;p&gt;Gbint: added reference&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Question=&lt;br /&gt;
&lt;br /&gt;
What requirements distinguish the Zettabyte File System (ZFS) from traditional file systems? How are those requirements realized in ZFS, and how do other operating systems address those same requirements? (Please discuss legacy, current, and in-development systems.)&lt;br /&gt;
&lt;br /&gt;
=Answer=&lt;br /&gt;
&lt;br /&gt;
ZFS was developed by Sun Microsystems (now owned by Oracle) as a server class file systems.  This differs from most file systems which were developed as desktop file systems that could be used by servers.  With the server being the target for the file system particular attention was paid to data integrity, size and speed.&lt;br /&gt;
&lt;br /&gt;
One of the most significant ways in which the ZFS differs from traditional file systems is the level of abstraction.  While a traditional file system abstracts away the physical properties of the media upon which it lies i.e. hard disk, flash drive, CD-ROM, etc. ZFS abstracts away if the file system lives one or many different pieces of hardware or media.  Examples include a single hard drive, an array of hardrives, a number of hard drives on non co-located systems.&lt;br /&gt;
&lt;br /&gt;
One of the mechanisms that allows this abstraction is that the volume manager which is normally a program separate from the file system in traditional file systems is moved into ZFS.&lt;br /&gt;
&lt;br /&gt;
ZFS is a 128-bit file system allowing this allows addressing of 2&amp;lt;sup&amp;gt;128&amp;lt;/sup&amp;gt; bytes of storage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Major Features of ZFS ===&lt;br /&gt;
&lt;br /&gt;
====Physical Layer Abstraction====&lt;br /&gt;
&lt;br /&gt;
* volume management and file system all in one&lt;br /&gt;
* file systems on top of zpools on top of vdevs on top of physical devices&lt;br /&gt;
* file systems easily and often span over many physical devices.&lt;br /&gt;
* ridiculous capacity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Data Integrity====&lt;br /&gt;
&lt;br /&gt;
At the lowest level, ZFS uses checksums for every block of data that is written to disk.  The checksum is checked whenever data is read to ensure that data has not been corrupted in some way.  The idea is that if either the block or the checksum is corrupted, then recalculating the checksum for the block will result in a mismatch between the calculated and stored checksums.  It is possible that both the block and checksum record could be corrupted, but the probability of the corruption being such that the corrupted block&#039;s checksum matches the corrupted checksum is exceptionally low.&lt;br /&gt;
&lt;br /&gt;
In the event that a bad checksum is found, replication of data, in the form of &amp;quot;Ditto Blocks&amp;quot; provide an opportunity for recovery.  A block pointer in ZFS is actually capable of pointing to multiple blocks, each of which contains duplicate data.  By default, duplicate blocks are only stored for file system metadata, but this can be expanded to user data blocks as well.  When a bad checksum is read, ZFS is able to follow one of the other pointers in the block pointer to hopefully find a healthy block.&lt;br /&gt;
&lt;br /&gt;
RAID setups are particularly well suited to ZFS, since there is already an abstraction between the physical storage and the zpools.  Besides protecting from outright total disk failure, if a bad checksum is found, there is the possibility that one of the alternate disks has a healthy version. If these errors accumulate, it can signal an impending drive failure.  When a drive does fail, some of our tolerance for data loss is consumed; that is, the system is operating at less than 100% redundancy (however that is defined for the system at hand). To address this, ZFS supports &amp;quot;hot spares&amp;quot;, idle drives that can be brought online automatically when another drive fails so that full redundancy can be rebuilt with minimal delay, hopefully in time for the next drive failure.&lt;br /&gt;
&lt;br /&gt;
With block-by-block data integrity well in hand, ZFS also employs a transactional update model to ensure that higher level data structures remain consistent. Rather than use a journal to allow for quick consistency checking in the event of a system crash, ZFS uses a copy-on-write model.  New disk structures are written out in a detached state.  Once these structures have been written and checked, then they are connected to the existing disk structures in one atomic write, with the structures they replace becoming disconnected.&lt;br /&gt;
&lt;br /&gt;
At the user level, ZFS supports file-system snapshots.  Essentially, a clone of the entire file system at a certain point in time is created.  In the event of accidental file deletion, a user can access an older version out of a recent snapshot.&lt;br /&gt;
&lt;br /&gt;
====Data Deduplication====&lt;br /&gt;
&lt;br /&gt;
Data Deduplication is a method of interfile storage compression, based around the idea of storing any one block of unique data only once physically, and logically linking that block to each file that contains that data.  Effective use of data deduplication can reduce the space and power requirements of physical storage, but only if you have data that lends itself to deduplication.&lt;br /&gt;
&lt;br /&gt;
Data Deduplication schemes are typically implemented using hash-tables, and can be applied to whole files, sub files (blocks), or as a patch set.   There is an inherit trade off between the granularity of your deduplication algorithm and the resources needed to implement it.   In general, as you consider smaller blocks of data for deduplication, you increase your &amp;quot;fold factor&amp;quot;, that is, the difference between the logical storage provided vs. the physical storage needed.  At the same time, however, smaller blocks means more hash table overhead and more CPU time needed for deduplication and for reconstruction.&lt;br /&gt;
&lt;br /&gt;
The actual analysis and deduplication of incoming files can occur in-band or out-of-band.  In-band deduplication means that the file is analyzed as it arrives at the storage server, and written to disk in its already compressed state.  While this method requires the least over all storage capacity, resource constraints of the server may limit the speed at which new data can be ingested.   In particular, the server must have enough memory to store the entire deduplication hash table in memory for fast comparisons.  With out-of-band deduplication, inbound files are written to disk without any analysis (so, in the traditional way).  A background process analyzes these files at a later time to perform the compression.  This method means higher overall disk I/O is needed, which can be a problem if the disk (or disk array) is already at I/O capacity.&lt;br /&gt;
&lt;br /&gt;
In the case of ZFS, which is typically hosted as a server-side file system, the server itself performs all of the deduplication and reconstruction; the entire process is transparent to the client.  ZFS assumes that it is running on a highly multi-threaded operating system and that CPU cycles are in greater abundance than disk I/O cycles, and thus performs the deduplication in-band.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* Mandagere, N., Zhou, P., Smith, M. A., and Uttamchandani, S. 2008. [http://portal.acm.org.proxy.library.carleton.ca/citation.cfm?id=1462739 Demystifying data deduplication]. In Proceedings of the ACM/IFIP/USENIX Middleware &#039;08 Conference Companion  (Leuven, Belgium, December 01 - 05, 2008). Companion &#039;08. ACM, New York, NY, 12-17.&lt;br /&gt;
&lt;br /&gt;
* Geer, D.; , [http://ieeexplore.ieee.org.proxy.library.carleton.ca/xpls/abs_all.jsp?arnumber=4712493 &amp;quot;Reducing the Storage Burden via Data Deduplication,&amp;quot;] Computer , vol.41, no.12, pp.15-17, Dec. 2008&lt;br /&gt;
&lt;br /&gt;
* Bonwick, J.; [http://blogs.sun.com/bonwick/en_US/entry/zfs_dedup ZFS Deduplication]. Jeff Bonwick&#039;s Blog. November 2, 2009.&lt;br /&gt;
&lt;br /&gt;
* Andrew Li, Department of Computing Macquarie University, Zettabyte File System Autopsy: Digital Crime Scene Investigation for Zettabyte File System&lt;br /&gt;
&lt;br /&gt;
* Zhang, Y.; [http://www.cs.wisc.edu/wind/Publications/zfs-corruption-fast10.pdf End-to-end Data Integrity for File Systems: A ZFS Case Study]. FAST&#039;10: Proceedings of the 8th USENIX conference on File and storage technologies. USENIX Association, Berkley, CA, USA.&lt;/div&gt;</summary>
		<author><name>Gbint</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_9&amp;diff=2865</id>
		<title>COMP 3000 Essay 1 2010 Question 9</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_9&amp;diff=2865"/>
		<updated>2010-10-10T22:46:14Z</updated>

		<summary type="html">&lt;p&gt;Gbint: added some real meat to the data integrity section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Question=&lt;br /&gt;
&lt;br /&gt;
What requirements distinguish the Zettabyte File System (ZFS) from traditional file systems? How are those requirements realized in ZFS, and how do other operating systems address those same requirements? (Please discuss legacy, current, and in-development systems.)&lt;br /&gt;
&lt;br /&gt;
=Answer=&lt;br /&gt;
&lt;br /&gt;
ZFS was developed by Sun Microsystems (now owned by Oracle) as a server class file systems.  This differs from most file systems which were developed as desktop file systems that could be used by servers.  With the server being the target for the file system particular attention was paid to data integrity, size and speed.&lt;br /&gt;
&lt;br /&gt;
One of the most significant ways in which the ZFS differs from traditional file systems is the level of abstraction.  While a traditional file system abstracts away the physical properties of the media upon which it lies i.e. hard disk, flash drive, CD-ROM, etc. ZFS abstracts away if the file system lives one or many different pieces of hardware or media.  Examples include a single hard drive, an array of hardrives, a number of hard drives on non co-located systems.&lt;br /&gt;
&lt;br /&gt;
One of the mechanisms that allows this abstraction is that the volume manager which is normally a program separate from the file system in traditional file systems is moved into ZFS.&lt;br /&gt;
&lt;br /&gt;
ZFS is a 128-bit file system allowing this allows addressing of 2&amp;lt;sup&amp;gt;128&amp;lt;/sup&amp;gt; bytes of storage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Major Features of ZFS ===&lt;br /&gt;
&lt;br /&gt;
====Physical Layer Abstraction====&lt;br /&gt;
&lt;br /&gt;
* volume management and file system all in one&lt;br /&gt;
* file systems on top of zpools on top of vdevs on top of physical devices&lt;br /&gt;
* file systems easily and often span over many physical devices.&lt;br /&gt;
* ridiculous capacity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Data Integrity====&lt;br /&gt;
&lt;br /&gt;
At the lowest level, ZFS uses checksums for every block of data that is written to disk.  The checksum is checked whenever data is read to ensure that data has not been corrupted in some way.  The idea is that if either the block or the checksum is corrupted, then recalculating the checksum for the block will result in a mismatch between the calculated and stored checksums.  It is possible that both the block and checksum record could be corrupted, but the probability of the corruption being such that the corrupted block&#039;s checksum matches the corrupted checksum is exceptionally low.&lt;br /&gt;
&lt;br /&gt;
In the event that a bad checksum is found, replication of data, in the form of &amp;quot;Ditto Blocks&amp;quot; provide an opportunity for recovery.  A block pointer in ZFS is actually capable of pointing to multiple blocks, each of which contains duplicate data.  By default, duplicate blocks are only stored for file system metadata, but this can be expanded to user data blocks as well.  When a bad checksum is read, ZFS is able to follow one of the other pointers in the block pointer to hopefully find a healthy block.&lt;br /&gt;
&lt;br /&gt;
RAID setups are particularly well suited to ZFS, since there is already an abstraction between the physical storage and the zpools.  Besides protecting from outright total disk failure, if a bad checksum is found, there is the possibility that one of the alternate disks has a healthy version. If these errors accumulate, it can signal an impending drive failure.  When a drive does fail, some of our tolerance for data loss is consumed; that is, the system is operating at less than 100% redundancy (however that is defined for the system at hand). To address this, ZFS supports &amp;quot;hot spares&amp;quot;, idle drives that can be brought online automatically when another drive fails so that full redundancy can be rebuilt with minimal delay, hopefully in time for the next drive failure.&lt;br /&gt;
&lt;br /&gt;
With block-by-block data integrity well in hand, ZFS also employs a transactional update model to ensure that higher level data structures remain consistent. Rather than use a journal to allow for quick consistency checking in the event of a system crash, ZFS uses a copy-on-write model.  New disk structures are written out in a detached state.  Once these structures have been written and checked, then they are connected to the existing disk structures in one atomic write, with the structures they replace becoming disconnected.&lt;br /&gt;
&lt;br /&gt;
At the user level, ZFS supports file-system snapshots.  Essentially, a clone of the entire file system at a certain point in time is created.  In the event of accidental file deletion, a user can access an older version out of a recent snapshot.&lt;br /&gt;
&lt;br /&gt;
====Data Deduplication====&lt;br /&gt;
&lt;br /&gt;
Data Deduplication is a method of interfile storage compression, based around the idea of storing any one block of unique data only once physically, and logically linking that block to each file that contains that data.  Effective use of data deduplication can reduce the space and power requirements of physical storage, but only if you have data that lends itself to deduplication.&lt;br /&gt;
&lt;br /&gt;
Data Deduplication schemes are typically implemented using hash-tables, and can be applied to whole files, sub files (blocks), or as a patch set.   There is an inherit trade off between the granularity of your deduplication algorithm and the resources needed to implement it.   In general, as you consider smaller blocks of data for deduplication, you increase your &amp;quot;fold factor&amp;quot;, that is, the difference between the logical storage provided vs. the physical storage needed.  At the same time, however, smaller blocks means more hash table overhead and more CPU time needed for deduplication and for reconstruction.&lt;br /&gt;
&lt;br /&gt;
The actual analysis and deduplication of incoming files can occur in-band or out-of-band.  In-band deduplication means that the file is analyzed as it arrives at the storage server, and written to disk in its already compressed state.  While this method requires the least over all storage capacity, resource constraints of the server may limit the speed at which new data can be ingested.   In particular, the server must have enough memory to store the entire deduplication hash table in memory for fast comparisons.  With out-of-band deduplication, inbound files are written to disk without any analysis (so, in the traditional way).  A background process analyzes these files at a later time to perform the compression.  This method means higher overall disk I/O is needed, which can be a problem if the disk (or disk array) is already at I/O capacity.&lt;br /&gt;
&lt;br /&gt;
In the case of ZFS, which is typically hosted as a server-side file system, the server itself performs all of the deduplication and reconstruction; the entire process is transparent to the client.  ZFS assumes that it is running on a highly multi-threaded operating system and that CPU cycles are in greater abundance than disk I/O cycles, and thus performs the deduplication in-band.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* Mandagere, N., Zhou, P., Smith, M. A., and Uttamchandani, S. 2008. [http://portal.acm.org.proxy.library.carleton.ca/citation.cfm?id=1462739 Demystifying data deduplication]. In Proceedings of the ACM/IFIP/USENIX Middleware &#039;08 Conference Companion  (Leuven, Belgium, December 01 - 05, 2008). Companion &#039;08. ACM, New York, NY, 12-17.&lt;br /&gt;
* Geer, D.; , [http://ieeexplore.ieee.org.proxy.library.carleton.ca/xpls/abs_all.jsp?arnumber=4712493 &amp;quot;Reducing the Storage Burden via Data Deduplication,&amp;quot;] Computer , vol.41, no.12, pp.15-17, Dec. 2008&lt;br /&gt;
* Bonwick, J.; [http://blogs.sun.com/bonwick/en_US/entry/zfs_dedup ZFS Deduplication]. Jeff Bonwick&#039;s Blog. November 2, 2009.&lt;br /&gt;
&lt;br /&gt;
* Andrew Li, Department of Computing Macquarie University, Zettabyte File System Autopsy: Digital Crime Scene Investigation for Zettabyte File System&lt;/div&gt;</summary>
		<author><name>Gbint</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_9&amp;diff=2668</id>
		<title>Talk:COMP 3000 Essay 1 2010 Question 9</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_9&amp;diff=2668"/>
		<updated>2010-10-09T16:29:49Z</updated>

		<summary type="html">&lt;p&gt;Gbint: comments&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Essay Format ==&lt;br /&gt;
&lt;br /&gt;
I started working on the main page.  The bullets are to be expanded. Other group are are working in their respective discussion pages but I think it&#039;s all right to put our work in progress on the front page.  Thoughts?--[[User:Lmundt|Lmundt]] 16:14, 6 October 2010 (UTC)&lt;br /&gt;
* [[User:Gbint|Gbint]] 02:03, 7 October 2010 (UTC) Lmundt;  what do you think of listing the capacities of the file system under major features?  I was thinking that we could overview the features in brief, then delve into each one individually.&lt;br /&gt;
* --[[User:Lmundt|Lmundt]] 14:31, 7 October 2010 (UTC) I was thinking about the major structure... I like what your suggesting in one section. So here is the structure I am thinking of.&lt;br /&gt;
&lt;br /&gt;
* Intro &lt;br /&gt;
* Section One ZFS&lt;br /&gt;
** Major feature 1&lt;br /&gt;
** Major feature 2&lt;br /&gt;
** Major feature 3 &lt;br /&gt;
* Section Two Legacy File Systems&lt;br /&gt;
** Legacy File System1( FAT32 ) - what it does&lt;br /&gt;
** Legacy File System2( ext2 ) - what it does&lt;br /&gt;
** Contrast them with ZFS&lt;br /&gt;
* Section Three Current File Systems&lt;br /&gt;
** NTFS?&lt;br /&gt;
** ext4?&lt;br /&gt;
** Contrast them with ZFS&lt;br /&gt;
* Section Four future file Systems&lt;br /&gt;
** BTRFS&lt;br /&gt;
** WinFS or ??&lt;br /&gt;
** Contrast them with ZFS&lt;br /&gt;
* Conclusion&lt;br /&gt;
&lt;br /&gt;
What does everyone think of this format?   While everyone should contribute to section one we could divvy up the rest.&lt;br /&gt;
&lt;br /&gt;
[[User:Gbint|Gbint]] 16:29, 9 October 2010 (UTC) The layout looks good; I filled out the data dedup section. I think it has reasonable coverage while staying away from becoming it&#039;s own essay just on deduplication.&lt;br /&gt;
&lt;br /&gt;
The legacy file systems are really not even in the same world as ZFS, so I think the contrasting section should cover a lot of how storage needs have changed.&lt;br /&gt;
&lt;br /&gt;
The current file systems are capable of being expanded into large pools of storage with good redundancy and even advanced features like data deduplication, but they are only a component in a chain of tools (like ext4 + lvm + mdraid + opendedup) rather than an full end-to-end solution.&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
&lt;br /&gt;
Not from your group. Found a file which goes to the heart of your problem&lt;br /&gt;
[http://www.oracle.com/technetwork/server-storage/solaris/overview/zfs-14990&lt;br /&gt;
2.pdf ZFSDatasheet]&lt;br /&gt;
[[User:Gautam|Gautam]] 22:50, 5 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Thanks will take a look at that.--[[User:Lmundt|Lmundt]] 16:12, 6 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:Gbint|Gbint]] 01:45, 7 October 2010 (UTC) paper from Sun engineers explaining why they came to build ZFS, the problems they wanted to solve:  &lt;br /&gt;
* PDF:  http://www.timwort.org/classp/200_HTML/docs/zfs_wp.pdf&lt;br /&gt;
* HTML: http://74.125.155.132/scholar?q=cache:6Ex3KbFo4lYJ:scholar.google.com/+zettabyte+file+system&amp;amp;hl=en&amp;amp;as_sdt=2000&lt;br /&gt;
&lt;br /&gt;
Excellent article.[[User:Lmundt|Lmundt]] 14:24, 7 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Not too exciting but it looks like an easy read http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars [[User:Lmundt|Lmundt]] 14:40, 7 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
the [http://en.wikipedia.org/wiki/Comparison_of_file_systems wikipedia comparison] has some good tables, and if you click the various categories you can learn quite a bit about the various important features //not your group. [[User:Rift|Rift]] 18:56, 7 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Hey, I&#039;m not from your group but I found this slideshow that was really handy in the assignment! http://www.slideshare.net/Clogeny/zfs-the-last-word-in-filesystems - nshires&lt;br /&gt;
&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hey there. I&#039;m not a member of your group. But you guys might want to look at this Wiki-page from the SolarisInternals website. I used it today for our assignment, a lot of interesting and in-depth breakdown of the ZFS file system: http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide#ZFS_Performance_Considerations&lt;br /&gt;
&lt;br /&gt;
-- Munther&lt;/div&gt;</summary>
		<author><name>Gbint</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_9&amp;diff=2666</id>
		<title>COMP 3000 Essay 1 2010 Question 9</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_9&amp;diff=2666"/>
		<updated>2010-10-09T16:22:05Z</updated>

		<summary type="html">&lt;p&gt;Gbint: skeletal pla section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Question=&lt;br /&gt;
&lt;br /&gt;
What requirements distinguish the Zettabyte File System (ZFS) from traditional file systems? How are those requirements realized in ZFS, and how do other operating systems address those same requirements? (Please discuss legacy, current, and in-development systems.)&lt;br /&gt;
&lt;br /&gt;
=Answer=&lt;br /&gt;
&lt;br /&gt;
ZFS was developed by Sun Microsystems (now owned by Oracle) as a server class file systems.  This differs from most file systems which were developed as desktop file systems that could be used by servers.  With the server being the target for the file system particular attention was paid to data integrity, size and speed.&lt;br /&gt;
&lt;br /&gt;
One of the most significant ways in which the ZFS differs from traditional file systems is the level of abstraction.  While a traditional file system abstracts away the physical properties of the media upon which it lies i.e. hard disk, flash drive, CD-ROM, etc. ZFS abstracts away if the file system lives one or many different pieces of hardware or media.  Examples include a single hard drive, an array of hardrives, a number of hard drives on non co-located systems.&lt;br /&gt;
&lt;br /&gt;
One of the mechanisms that allows this abstraction is that the volume manager which is normally a program separate from the file system in traditional file systems is moved into ZFS.&lt;br /&gt;
&lt;br /&gt;
ZFS is a 128-bit file system allowing this allows addressing of 2&amp;lt;sup&amp;gt;128&amp;lt;/sup&amp;gt; bytes of storage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Major Features of ZFS ===&lt;br /&gt;
&lt;br /&gt;
====Physical Layer Abstraction====&lt;br /&gt;
&lt;br /&gt;
* volume management and file system all in one&lt;br /&gt;
* file systems on top of zpools on top of vdevs on top of physical devices&lt;br /&gt;
* file systems easily and often span over many physical devices.&lt;br /&gt;
* ridiculous capacity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Data Integrity====&lt;br /&gt;
&lt;br /&gt;
* Checksums&lt;br /&gt;
* self monitoring/self healing using mirroring/copy-on-write.&lt;br /&gt;
* transactional based file IO&lt;br /&gt;
* system snapshots.&lt;br /&gt;
&lt;br /&gt;
====Data Deduplication====&lt;br /&gt;
&lt;br /&gt;
Data Deduplication is a method of interfile storage compression, based around the idea of storing any one block of unique data only once physically, and logically linking that block to each file that contains that data.  Effective use of data deduplication can reduce the space and power requirements of physical storage, but only if you have data that lends itself to deduplication.&lt;br /&gt;
&lt;br /&gt;
Data Deduplication schemes are typically implemented using hash-tables, and can be applied to whole files, sub files (blocks), or as a patch set.   There is an inherit trade off between the granularity of your deduplication algorithm and the resources needed to implement it.   In general, as you consider smaller blocks of data for deduplication, you increase your &amp;quot;fold factor&amp;quot;, that is, the difference between the logical storage provided vs. the physical storage needed.  At the same time, however, smaller blocks means more hash table overhead and more CPU time needed for deduplication and for reconstruction.&lt;br /&gt;
&lt;br /&gt;
The actual analysis and deduplication of incoming files can occur in-band or out-of-band.  In-band deduplication means that the file is analyzed as it arrives at the storage server, and written to disk in its already compressed state.  While this method requires the least over all storage capacity, resource constraints of the server may limit the speed at which new data can be ingested.   In particular, the server must have enough memory to store the entire deduplication hash table in memory for fast comparisons.  With out-of-band deduplication, inbound files are written to disk without any analysis (so, in the traditional way).  A background process analyzes these files at a later time to perform the compression.  This method means higher overall disk I/O is needed, which can be a problem if the disk (or disk array) is already at I/O capacity.&lt;br /&gt;
&lt;br /&gt;
In the case of ZFS, which is typically hosted as a server-side file system, the server itself performs all of the deduplication and reconstruction; the entire process is transparent to the client.  ZFS assumes that it is running on a highly multi-threaded operating system and that CPU cycles are in greater abundance than disk I/O cycles, and thus performs the deduplication in-band.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* Mandagere, N., Zhou, P., Smith, M. A., and Uttamchandani, S. 2008. [http://portal.acm.org.proxy.library.carleton.ca/citation.cfm?id=1462739 Demystifying data deduplication]. In Proceedings of the ACM/IFIP/USENIX Middleware &#039;08 Conference Companion  (Leuven, Belgium, December 01 - 05, 2008). Companion &#039;08. ACM, New York, NY, 12-17.&lt;br /&gt;
* Geer, D.; , [http://ieeexplore.ieee.org.proxy.library.carleton.ca/xpls/abs_all.jsp?arnumber=4712493 &amp;quot;Reducing the Storage Burden via Data Deduplication,&amp;quot;] Computer , vol.41, no.12, pp.15-17, Dec. 2008&lt;br /&gt;
* Bonwick, J.; [http://blogs.sun.com/bonwick/en_US/entry/zfs_dedup ZFS Deduplication]. Jeff Bonwick&#039;s Blog. November 2, 2009.&lt;/div&gt;</summary>
		<author><name>Gbint</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_9&amp;diff=2665</id>
		<title>COMP 3000 Essay 1 2010 Question 9</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_9&amp;diff=2665"/>
		<updated>2010-10-09T16:14:40Z</updated>

		<summary type="html">&lt;p&gt;Gbint: added some real meat to the deduplication section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Question=&lt;br /&gt;
&lt;br /&gt;
What requirements distinguish the Zettabyte File System (ZFS) from traditional file systems? How are those requirements realized in ZFS, and how do other operating systems address those same requirements? (Please discuss legacy, current, and in-development systems.)&lt;br /&gt;
&lt;br /&gt;
=Answer=&lt;br /&gt;
&lt;br /&gt;
ZFS was developed by Sun Microsystems (now owned by Oracle) as a server class file systems.  This differs from most file systems which were developed as desktop file systems that could be used by servers.  With the server being the target for the file system particular attention was paid to data integrity, size and speed.&lt;br /&gt;
&lt;br /&gt;
One of the most significant ways in which the ZFS differs from traditional file systems is the level of abstraction.  While a traditional file system abstracts away the physical properties of the media upon which it lies i.e. hard disk, flash drive, CD-ROM, etc. ZFS abstracts away if the file system lives one or many different pieces of hardware or media.  Examples include a single hard drive, an array of hardrives, a number of hard drives on non co-located systems.&lt;br /&gt;
&lt;br /&gt;
One of the mechanisms that allows this abstraction is that the volume manager which is normally a program separate from the file system in traditional file systems is moved into ZFS.&lt;br /&gt;
&lt;br /&gt;
ZFS is a 128-bit file system allowing this allows addressing of 2&amp;lt;sup&amp;gt;128&amp;lt;/sup&amp;gt; bytes of storage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Major Features of ZFS ===&lt;br /&gt;
&lt;br /&gt;
====Data Integrity====&lt;br /&gt;
&lt;br /&gt;
* Checksums&lt;br /&gt;
* self monitoring/self healing using mirroring/copy-on-write.&lt;br /&gt;
* transactional based file IO&lt;br /&gt;
* system snapshots.&lt;br /&gt;
&lt;br /&gt;
====Data Deduplication====&lt;br /&gt;
&lt;br /&gt;
Data Deduplication is a method of interfile storage compression, based around the idea of storing any one block of unique data only once physically, and logically linking that block to each file that contains that data.  Effective use of data deduplication can reduce the space and power requirements of physical storage, but only if you have data that lends itself to deduplication.&lt;br /&gt;
&lt;br /&gt;
Data Deduplication schemes are typically implemented using hash-tables, and can be applied to whole files, sub files (blocks), or as a patch set.   There is an inherit trade off between the granularity of your deduplication algorithm and the resources needed to implement it.   In general, as you consider smaller blocks of data for deduplication, you increase your &amp;quot;fold factor&amp;quot;, that is, the difference between the logical storage provided vs. the physical storage needed.  At the same time, however, smaller blocks means more hash table overhead and more CPU time needed for deduplication and for reconstruction.&lt;br /&gt;
&lt;br /&gt;
The actual analysis and deduplication of incoming files can occur in-band or out-of-band.  In-band deduplication means that the file is analyzed as it arrives at the storage server, and written to disk in its already compressed state.  While this method requires the least over all storage capacity, resource constraints of the server may limit the speed at which new data can be ingested.   In particular, the server must have enough memory to store the entire deduplication hash table in memory for fast comparisons.  With out-of-band deduplication, inbound files are written to disk without any analysis (so, in the traditional way).  A background process analyzes these files at a later time to perform the compression.  This method means higher overall disk I/O is needed, which can be a problem if the disk (or disk array) is already at I/O capacity.&lt;br /&gt;
&lt;br /&gt;
In the case of ZFS, which is typically hosted as a server-side file system, the server itself performs all of the deduplication and reconstruction; the entire process is transparent to the client.  ZFS assumes that it is running on a highly multi-threaded operating system and that CPU cycles are in greater abundance than disk I/O cycles, and thus performs the deduplication in-band.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* Mandagere, N., Zhou, P., Smith, M. A., and Uttamchandani, S. 2008. [http://portal.acm.org.proxy.library.carleton.ca/citation.cfm?id=1462739 Demystifying data deduplication]. In Proceedings of the ACM/IFIP/USENIX Middleware &#039;08 Conference Companion  (Leuven, Belgium, December 01 - 05, 2008). Companion &#039;08. ACM, New York, NY, 12-17.&lt;br /&gt;
* Geer, D.; , [http://ieeexplore.ieee.org.proxy.library.carleton.ca/xpls/abs_all.jsp?arnumber=4712493 &amp;quot;Reducing the Storage Burden via Data Deduplication,&amp;quot;] Computer , vol.41, no.12, pp.15-17, Dec. 2008&lt;br /&gt;
* Bonwick, J.; [http://blogs.sun.com/bonwick/en_US/entry/zfs_dedup ZFS Deduplication]. Jeff Bonwick&#039;s Blog. November 2, 2009.&lt;/div&gt;</summary>
		<author><name>Gbint</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_9&amp;diff=2442</id>
		<title>Talk:COMP 3000 Essay 1 2010 Question 9</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_9&amp;diff=2442"/>
		<updated>2010-10-07T02:05:38Z</updated>

		<summary type="html">&lt;p&gt;Gbint: reorg of discussion page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Essay Format ==&lt;br /&gt;
&lt;br /&gt;
I started working on the main page.  The bullets are to be expanded. Other group are are working in their respective discussion pages but I think it&#039;s all right to put our work in progress on the front page.  Thoughts?--[[User:Lmundt|Lmundt]] 16:14, 6 October 2010 (UTC)&lt;br /&gt;
* [[User:Gbint|Gbint]] 02:03, 7 October 2010 (UTC) Lmundt;  what do you think of listing the capacities of the file system under major features?  I was thinking that we could overview the features in brief, then delve into each one individually.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
&lt;br /&gt;
Not from your group. Found a file which goes to the heart of your problem&lt;br /&gt;
[http://www.oracle.com/technetwork/server-storage/solaris/overview/zfs-149902.pdf ZFSDatasheet]&lt;br /&gt;
[[User:Gautam|Gautam]] 22:50, 5 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Thanks will take a look at that.--[[User:Lmundt|Lmundt]] 16:12, 6 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:Gbint|Gbint]] 01:45, 7 October 2010 (UTC) paper from Sun engineers explaining why they came to build ZFS, the problems they wanted to solve:  &lt;br /&gt;
* PDF:  http://www.timwort.org/classp/200_HTML/docs/zfs_wp.pdf&lt;br /&gt;
* HTML: http://74.125.155.132/scholar?q=cache:6Ex3KbFo4lYJ:scholar.google.com/+zettabyte+file+system&amp;amp;hl=en&amp;amp;as_sdt=2000&lt;/div&gt;</summary>
		<author><name>Gbint</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_9&amp;diff=2441</id>
		<title>Talk:COMP 3000 Essay 1 2010 Question 9</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_9&amp;diff=2441"/>
		<updated>2010-10-07T02:03:42Z</updated>

		<summary type="html">&lt;p&gt;Gbint: /* Sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sources ==&lt;br /&gt;
&lt;br /&gt;
Not from your group. Found a file which goes to the heart of your problem&lt;br /&gt;
[http://www.oracle.com/technetwork/server-storage/solaris/overview/zfs-149902.pdf ZFSDatasheet]&lt;br /&gt;
[[User:Gautam|Gautam]] 22:50, 5 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Thanks will take a look at that.--[[User:Lmundt|Lmundt]] 16:12, 6 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
I started working on the main page.  The bullets are to be expanded. Other group are are working in their respective discussion pages but I think it&#039;s all right to put our work in progress on the front page.  Thoughts?--[[User:Lmundt|Lmundt]] 16:14, 6 October 2010 (UTC)&lt;br /&gt;
* [[User:Gbint|Gbint]] 02:03, 7 October 2010 (UTC) Lmundt;  what do you think of listing the capacities of the file system under major features?  I was thinking that we could overview the features in brief, then delve into each one individually.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:Gbint|Gbint]] 01:45, 7 October 2010 (UTC) paper from Sun engineers explaining why they came to build ZFS, the problems they wanted to solve:  &lt;br /&gt;
* PDF:  http://www.timwort.org/classp/200_HTML/docs/zfs_wp.pdf&lt;br /&gt;
* HTML: http://74.125.155.132/scholar?q=cache:6Ex3KbFo4lYJ:scholar.google.com/+zettabyte+file+system&amp;amp;hl=en&amp;amp;as_sdt=2000&lt;/div&gt;</summary>
		<author><name>Gbint</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_9&amp;diff=2439</id>
		<title>COMP 3000 Essay 1 2010 Question 9</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_9&amp;diff=2439"/>
		<updated>2010-10-07T02:01:08Z</updated>

		<summary type="html">&lt;p&gt;Gbint: added data deduplication to the overview of ZFS features;  minor editing of existing text&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Question=&lt;br /&gt;
&lt;br /&gt;
What requirements distinguish the Zettabyte File System (ZFS) from traditional file systems? How are those requirements realized in ZFS, and how do other operating systems address those same requirements? (Please discuss legacy, current, and in-development systems.)&lt;br /&gt;
&lt;br /&gt;
=Answer=&lt;br /&gt;
&lt;br /&gt;
ZFS was developed by Sun Microsystems (now owned by Oracle) as a server class file systems.  This differs from most file systems which were developed as desktop file systems that could be used by servers.  With the server being the target for the file system particular attention was paid to data integrity, size and speed.&lt;br /&gt;
&lt;br /&gt;
One of the most significant ways in which the ZFS differs from traditional file systems is the level of abstraction.  While a traditional file system abstracts away the physical properties of the media upon which it lies i.e. hard disk, flash drive, CD-ROM, etc. ZFS abstracts away if the file system lives one or many different pieces of hardware or media.  Examples include a single hard drive, an array of hardrives, a number of hard drives on non co-located systems.&lt;br /&gt;
&lt;br /&gt;
One of the mechanisms that allows this abstraction is that the volume manager which is normally a program separate from the file system in traditional file systems is moved into ZFS.&lt;br /&gt;
&lt;br /&gt;
ZFS is a 128-bit file system allowing this allows addressing of 2&amp;lt;sup&amp;gt;128&amp;lt;/sup&amp;gt; bytes of storage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Major Features of ZFS ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Data Integrity&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Checksums&lt;br /&gt;
* self monitoring/self healing using mirroring/copy-on-write.&lt;br /&gt;
* transactional based file IO&lt;br /&gt;
* system snapshots.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Data Deduplication&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Duplicated data is recorded only once physically, with those blocks mapped to multiple files.  Think of an email database where there may be 100 copies of the same message with the same 20MB attachment.  Overall physical storage required can be reduced, which can have important consequences for data center power, space, and cooling needs.&lt;/div&gt;</summary>
		<author><name>Gbint</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_9&amp;diff=2434</id>
		<title>Talk:COMP 3000 Essay 1 2010 Question 9</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_9&amp;diff=2434"/>
		<updated>2010-10-07T01:45:29Z</updated>

		<summary type="html">&lt;p&gt;Gbint: Added source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sources ==&lt;br /&gt;
&lt;br /&gt;
Not from your group. Found a file which goes to the heart of your problem&lt;br /&gt;
[http://www.oracle.com/technetwork/server-storage/solaris/overview/zfs-149902.pdf ZFSDatasheet]&lt;br /&gt;
[[User:Gautam|Gautam]] 22:50, 5 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Thanks will take a look at that.--[[User:Lmundt|Lmundt]] 16:12, 6 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
I started working on the main page.  The bullets are to be expanded. Other group are are working in their respective discussion pages but I think it&#039;s all right to put our work in progress on the front page.  Thoughts?--[[User:Lmundt|Lmundt]] 16:14, 6 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:Gbint|Gbint]] 01:45, 7 October 2010 (UTC) paper from Sun engineers explaining why they came to build ZFS, the problems they wanted to solve:  &lt;br /&gt;
* PDF:  http://www.timwort.org/classp/200_HTML/docs/zfs_wp.pdf&lt;br /&gt;
* HTML: http://74.125.155.132/scholar?q=cache:6Ex3KbFo4lYJ:scholar.google.com/+zettabyte+file+system&amp;amp;hl=en&amp;amp;as_sdt=2000&lt;/div&gt;</summary>
		<author><name>Gbint</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_7&amp;diff=2354</id>
		<title>Talk:COMP 3000 Essay 1 2010 Question 7</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_7&amp;diff=2354"/>
		<updated>2010-10-05T19:50:31Z</updated>

		<summary type="html">&lt;p&gt;Gbint: Added a link to a paper&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Group 7 ==&lt;br /&gt;
&lt;br /&gt;
Let us start out by listing down our names and email id (preffered). &lt;br /&gt;
&lt;br /&gt;
Gautam Akiwate         &amp;lt;gautam.akiwate@gmail.com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
&lt;br /&gt;
[[User:Gbint|Gbint]] 19:50, 5 October 2010 (UTC) Not in this group, but I thought that this paper was excellent: http://www.sandia.gov/~rcmurph/doc/qt_paper.pdf&lt;/div&gt;</summary>
		<author><name>Gbint</name></author>
	</entry>
</feed>