<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">IJCNS</journal-id><journal-title-group><journal-title>International Journal of Communications, Network and System Sciences</journal-title></journal-title-group><issn pub-type="epub">1913-3715</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/ijcns.2012.52014</article-id><article-id pub-id-type="publisher-id">IJCNS-17613</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Computer Science&amp;Communications</subject></subj-group></article-categories><title-group><article-title>
 
 
  Research on User Permission Isolation for Multi-Users Service-Oriented Program
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>i</surname><given-names>Yu</given-names></name></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Jiang</surname><given-names>Wei</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Lin</surname><given-names>Li</given-names></name></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Zhan</surname><given-names>Jing</given-names></name></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Liang</surname><given-names>Peng</given-names></name></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Yingxu</surname><given-names>Lai</given-names></name></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Shupo</surname><given-names>Bu</given-names></name></contrib></contrib-group><aff id="aff1"><addr-line>College of Computer Science and Technology, Beijing University of Technology, Beijing, China</addr-line></aff><author-notes><corresp id="cor1">* E-mail:<email>j8w8@sohu.com(JW)</email>;</corresp></author-notes><pub-date pub-type="epub"><day>28</day><month>02</month><year>2012</year></pub-date><volume>05</volume><issue>02</issue><fpage>105</fpage><lpage>110</lpage><history><date date-type="received"><day>November</day>	<month>30,</month>	<year>2011</year></date><date date-type="rev-recd"><day>January</day>	<month>14,</month>	<year>2012</year>	</date><date date-type="accepted"><day>January</day>	<month>26,</month>	<year>2012</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
  For the super user privilege control problem in system services, a user permission isolation method is proposed. Based on virtualization technology, the permission limited environments are constructed for different users. According to privilege sets, the users, mapping relations are built among users, isolated domains and program modules. Besides, we give an algorithm for division of program permissions based on Concept Lattices. And the security strategies are designed for different isolated domains. Finally, we propose the implications of least privilege, and prove that the method eliminates the potential privileged users in system services.
 
</p></abstract><kwd-group><kwd>Least Privilege; Virtualization; Isolation; Privileged User; Domain; System Service</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>Currently, most of the operating systems (OSs) use identity-based authorization mechanism, and super user has all the permissions of the whole OS [<xref ref-type="bibr" rid="scirp.17613-ref1">1</xref>]. Once intruders get the identity of super user, they will get complete control of OS [2,3]. For example, a flaw in SENDMAIL prohibits the setuid operation, which results in the revocation of root privileges fails and intruders may use the flaw [<xref ref-type="bibr" rid="scirp.17613-ref3">3</xref>].</p><p>In OS, users access resources through processes. However, the system services have the specificity of running in the privileged kernel space. Once there are security vulnerabilities in service programs, the guest users will gain access to the privileged kernel space through system services. As a result, guest users will be able to access all system resources. In this case, guest becomes a potential super user. According to statistics, there will be a vulnerability at least per thousand lines of codes, so the potential super user is inevitable<img src="5-9701506\a1838b93-47a5-439d-84d7-89c9e76cc7f6.jpg" />.</p><p>For potential super user problem, a user permission isolation method is proposed in the paper. The permission limited environments are constructed for users with different permissions. Then we give a formal security policies and an algorithm for division of program permissions. Finally, we propose the implications of least privilege, and prove that the method eliminates the potential super users in system services.</p><p>The rest of the paper is organized as follows. Section 2 introduces the basic definition of the system. Section 3 presents user space isolation model (USIM), designs security policies and the algorithm for division of program permissions. Section 4 analyzes the proposed method. Section 5 describes related work. Finally, conclusions and future work are presented in the last section.</p></sec><sec id="s2"><title>2. Basic Definitions</title><p>The basic formal definitions are as follows.</p><p>Definition 1 A system <img src="5-9701506\ec5bff99-86fa-4ae1-b36f-3e8060941cc9.jpg" />is composed of &#183;&#160; a set S of states, with an initial state s<sub>0</sub>.</p><p>&#183;&#160; a set U of users, with an user is not only the OS user, but also the application’s user. For example, Samba, Remote Desktop, etc. The super user is denoted as<img src="5-9701506\6208c264-8ad5-47be-87a7-9e12ed5205b9.jpg" />, while guest user is denoted as<img src="5-9701506\0ccf3e57-f3f8-4827-983d-cafc7c8cc950.jpg" />.</p><p>&#183;&#160; a set P of processes.</p><p>&#183;&#160; a set A of actions.</p><p>&#183;&#160; a set O of objects.</p><p>&#183;&#160; together with the functions <img src="5-9701506\5cfb045d-b5ec-4ac4-90e8-929d35f0d521.jpg" /> and<img src="5-9701506\380e285b-75c7-49df-9d8d-22eeb2318796.jpg" />:</p><p>&#183;&#160; <img src="5-9701506\734a4352-743b-417c-bfc6-e884d8cd9a72.jpg" />:<img src="5-9701506\1a9106a0-40be-4b85-817f-65f8bf436fe8.jpg" />, if<img src="5-9701506\8827ef1d-15cc-45e7-a586-1e91bd80edd0.jpg" />, then the parent process of <img src="5-9701506\213cf7c1-4d4e-4c8d-9aa7-7e5e3c5d37df.jpg" /> is <img src="5-9701506\2d284a79-5e14-46f3-b841-f5ccd7fad19a.jpg" /> or user <img src="5-9701506\46ac56da-fdb0-46b1-9d0f-13531a0106de.jpg" /> starts process<img src="5-9701506\c0395484-0863-486a-87f5-2654056d7274.jpg" />. If<img src="5-9701506\af3e1c5c-f0a5-42fb-b996-d8fc625ed8d1.jpg" />, then the owner of <img src="5-9701506\5feb17af-fd4e-4d76-abf0-5ef891d91faa.jpg" /> is<img src="5-9701506\7915c0a2-69cb-4d84-bc53-ff6e14e2bd35.jpg" />.</p><p>&#183;&#160; <img src="5-9701506\2fbdd4db-41dc-4c1e-84ce-4336152f2b60.jpg" />:<img src="5-9701506\edad96ed-a786-44cb-8476-9d534da7b78a.jpg" />, said in state<img src="5-9701506\f1941e14-155d-4ef5-953a-e9350f083a7c.jpg" />, from the view of the process<img src="5-9701506\c8f0d759-5cca-43f6-9a22-0c8f0634bcd4.jpg" />, the subject has the permission <img src="5-9701506\dcb02b2f-1bc1-4610-b841-46379880b014.jpg" /> to access the object<img src="5-9701506\5bf2ae2e-0183-4d5e-86f4-b277485cc295.jpg" />. The set of permissions for processes is denoted as<img src="5-9701506\b384a079-7b35-49c2-b189-511554e22085.jpg" />, while the user’s is denoted as<img src="5-9701506\4f61bff1-8c5f-4181-a89b-67fcff879562.jpg" />.</p><p>Together with the relation<img src="5-9701506\8c3cc790-d3b0-4edf-aff3-10e42ef0a519.jpg" />:</p><p>&#183;&#160; <img src="5-9701506\8bdb5ff6-deba-453b-b548-13dd9c15c00a.jpg" />denote the permission inheritance relation:</p><p><img src="5-9701506\299441ff-ae77-4a36-9566-ee1188ca6459.jpg" /></p><p>When a user u starts a process p, p inherits the permissions from u. When a process q forks a child process p, p inherits the permissions from parent process q.</p><p>Definition 2<img src="5-9701506\fd476aa5-8386-45fb-b339-5b3f1176d43f.jpg" />,</p><p><img src="5-9701506\3b14f42f-d117-43ae-b2a0-109f0e1d1ad4.jpg" /></p><p>In state s, from the view of M, <img src="5-9701506\858e9992-4718-477a-b43d-ed6712aa2a6e.jpg" />represent set of objects which subject <img src="5-9701506\de0f9fda-1895-4829-9634-29de853173fc.jpg" /> has non-empty permissions to access. We call it permission space (PS). In the classical Windows or Linux OS, PS can be divided into two categories, one is privileged space<img src="5-9701506\345e2ab3-6721-4d94-a0fe-03fbb1274795.jpg" />, which users and processes have all privileges to access all system resources, the other is non-privileged user-space SPACE<sub>R</sub>, where the permission is limited and privileged operations are forbidden.</p><p>Definition 3<img src="5-9701506\ee31361e-f644-4816-ab57-21e7b9a66aca.jpg" />,<img src="5-9701506\8e717a8e-91ee-49eb-a503-c38608b35572.jpg" />.</p><p>We classify the users U into several sets according to the rule<img src="5-9701506\341ab9e1-8a76-4453-9977-e1de75d7628c.jpg" />. If<img src="5-9701506\64a1bb15-b5c0-4799-ba52-8f6314e79af5.jpg" />, we call cf<sub>2</sub> dominates cf<sub>1</sub>, denoted as<img src="5-9701506\e289b09f-ef53-4cf8-ac71-3699b218f0f8.jpg" />.</p><p>Definition 4 The inclusion relation<img src="5-9701506\0b41ae59-527b-4534-b916-02a89532b137.jpg" />:</p><p>If<img src="5-9701506\d088b879-4fee-4566-9373-6dc919a979af.jpg" />, then<img src="5-9701506\f31615aa-61bb-4b46-84d7-a2fb0a5e36a2.jpg" />.</p><p>That is, the permission space must satisfy the inclusion relation if two subjects meet the inheritance relation. Obviously, the permissions of a process must inherit from the parent process or the user who starts it.</p><p>Theorem 1 If <img src="5-9701506\bf57ab92-a789-429f-9e32-786c6a1b14fe.jpg" /> satisfies<img src="5-9701506\70c06cfd-5756-4f6a-80e5-b125d96e39d7.jpg" />, <img src="5-9701506\cbaa3898-12ca-43f1-b120-ca7d45ce0868.jpg" />, <img src="5-9701506\4713ba48-3ee7-4e65-aa9d-b1238cfea052.jpg" />, then<img src="5-9701506\1fa20af8-4b81-4f02-be0c-c7d47765863e.jpg" />.</p><p>Proof: According to permission inheritance relation, <img src="5-9701506\e604e8c9-570f-44d2-82ca-e6a439625e71.jpg" />, since<img src="5-9701506\b4240f12-f854-4e52-b3d1-02f76e10b464.jpg" />, then<img src="5-9701506\10c9b146-2d56-4237-bacf-8389223288a6.jpg" />, since Definition 4, we have</p><disp-formula id="scirp.17613-formula117335"><label>(1)</label><graphic position="anchor" xlink:href="5-9701506\180a0596-e458-4ee9-9212-bf7958450a63.jpg"  xlink:type="simple"/></disp-formula><p>Since Definition<img src="5-9701506\5d86bfac-62e8-46eb-b0d8-fc9f948aab4c.jpg" />, we have</p><disp-formula id="scirp.17613-formula117336"><label>(2)</label><graphic position="anchor" xlink:href="5-9701506\e49d9f90-a685-48bc-a3d3-7bfce8837110.jpg"  xlink:type="simple"/></disp-formula><p>Hence, we get<img src="5-9701506\398dde5c-5c84-4c6b-96d4-c286b4e063d0.jpg" />. The proof is completed.</p><p>The theorem indicates that if user <img src="5-9701506\290afe0f-a886-4920-a915-12bce9d1c4fb.jpg" /> has access to a program which runs in privileged space, <img src="5-9701506\ec633cfc-b474-471a-b39a-86e11b668e24.jpg" />elevates the privileges of his own. In this case, if <img src="5-9701506\ef51b33c-179f-46d1-8e54-77793365937e.jpg" /> is a guest user, he will become a potential super user. The theorem proved that the potential super user does exist. Similarly, a guest user who has less permissions can get more authority from the guest user which has more permissions through penetration into the program.</p><p>In proof of theorem 1, if <img src="5-9701506\d96667cc-7203-42af-8d95-fae1e74093bb.jpg" /> does not hold, the conclusion will not hold. Hence, we get a new idea that we can create a copy of the program which runs in unprivileged space. And the user access to the program will be redirected to the copy; the potential super user problem will be solved. That is the core idea of this paper.</p></sec><sec id="s3"><title>3. User Isolation Method</title><p>Multi-user remote logon procedure in Linux OS is as follows. First, login process authenticates users’ identity. Then, login process creates the shell for different users. Based on remote login procedure, this section gives the user space separation model (USIM).</p><sec id="s3_1"><title>3.1. User Space Separation Model</title><p>As shown in <xref ref-type="fig" rid="fig1">Figure 1</xref>, USIM is divided into three layers: basic function layer, isolation management layer, virtual execution layer.</p><p>As the basis of division of the system program, USIM constructs isolated domains for different categories of users and provides security management functions. The functions of three layers in USIM are as follows.</p><p>1) Basic function layer Basic function layer processes the access request first, for example, the user identity authentication. Then, encapsulate the layer-related security context information. At last, send the information to isolation management layer.</p><p>2) Isolation management layer This layer is responsible for context management, virtualization management and policy management. It is mainly to address how to construct user isolated domains which does not interfere each other, and to ensure the user’s permissions are restricted in the domain.</p><p>&#183;&#160; Context Management Context Management maintains current context information about active users, manages the mapping relation between the users and isolated domains. Moreover,</p><p>it encapsulates the necessary security context again, and sends to the virtualization layer.</p><p>&#183;&#160; Virtualization Management Virtualization Management is responsible for managing the virtual environment. In a virtual environment, three main aspects should be considered, including the executive program virtualization management, network connectivity reconstruction management and resources management. The three mechanisms are discussed in another paper, which are not the focus of the paper.</p><p>&#183;&#160; Policy Management Policy Management is responsible for policy formulation and configuration, including the permission set of users and programs, the communication policy and security policy adjustment.</p><p>3) Virtual execution layer It constructs the executive subject for the isolated domain. Each domain is corresponding to an active process in OS. It realizes the users’ rights isolation through the isolated processes.</p><p>We give the formal definition of the isolated domain as follows.</p><p>Definition 5 A user isolated domain <img src="5-9701506\0a65eb69-dbb7-49bb-b26a-ff7ed105ab50.jpg" />is composed of</p><p>&#183;&#160; ID is the unique identifier of a domain</p><p>&#183;&#160; a set CONTEXT of security context information, including user credentials, sessions, etc.</p><p>&#183;&#160; a set PRI of permissions, which denotes <img src="5-9701506\2360eeeb-dbb8-4543-91ea-fa91d5cf175e.jpg" /></p><p>&#183;&#160; a set C of program modules&#183;&#160; a set RES of resources in the domain.</p><p>together with the function communicate: communicate function denotes the communication among different DOMs. Communicate (SourceDOM, TargetDOM) = {TRUE, FALSE} indicates whether the two domains communication is permitted.</p><p>Before constructing a DOM, in the actual application process, we classify the users to several sets according to user categories. For example, we do <img src="5-9701506\af2df4d9-3ea6-4e2a-a413-94a3da173d49.jpg" /> operation to classify the users in accordance with user role. We give the algorithm for constructing a DOM as shown in <xref ref-type="fig" rid="fig2">Figure 2</xref>.</p></sec><sec id="s3_2"><title>3.2. Security Policy</title><p>Information flow among domains may elevate the privileges. However, normal information flow does exist to complete the task. This section gives the security policies to prevent the privilege elevation.</p><p>Rule 1 Inter-domain communication rule</p><p><img src="5-9701506\962e900d-be10-470e-be82-6d85036f8bbc.jpg" />, <img src="5-9701506\3bb3ce35-7731-4b66-a590-7a323008496e.jpg" />, if <img src="5-9701506\9ff9dfc1-ecfc-4e97-844d-91cefda48488.jpg" />, <img src="5-9701506\f225f02c-b756-4f3e-bf79-c16c36cfbac3.jpg" />, Then</p><disp-formula id="scirp.17613-formula117337"><graphic  xlink:href="5-9701506\fba66625-9424-4c89-8ebb-3db2d837f013.jpg"  xlink:type="simple"/></disp-formula><p>Inter-domain communication is permitted only if the source DOM’s permission set dominate the target set. The communication initiated by target DOM which is dominated, may result in the privilege elevation, so must be forbidden.</p><p>Rule 2 Communication rule between DOM and unrelated process If<img src="5-9701506\998922f9-8b74-4dca-b140-c4ed54184faa.jpg" />, <img src="5-9701506\b8f7bc62-8d89-4e15-bf01-68fc43581585.jpg" />, <img src="5-9701506\01750f8d-958f-402f-aaf7-8ce9b14b9dca.jpg" />, <img src="5-9701506\577f8d25-2b59-45c3-a6f6-54135cc153c7.jpg" />, <img src="5-9701506\74c4f2a1-78b1-4914-9a5d-76852ff9a9e8.jpg" />, then<img src="5-9701506\ebc6fc56-78d4-41a0-b8b5-16811f23d6b0.jpg" />.</p><p>That is, communication between DOM and unrelated process should be prohibited.</p><p>Rule 3 Access rule to DOM</p><p><img src="5-9701506\60cd68e1-d0a6-4527-a7d8-c64c329a2007.jpg" />, if<img src="5-9701506\dc3a24cf-9b13-4c47-a44c-4a719661816a.jpg" />, u satisfies <img src="5-9701506\3895f64a-f281-42db-acba-7376b9d05016.jpg" />, then<img src="5-9701506\7102c6de-ca8f-4d47-a7d7-6f815c408f96.jpg" />.</p><p>The rule limits the users’ access range in the corresponding DOM. In addition, inverse negative proposition shows that, except the users in DOM, other users are prohibited from access to DOM.</p><p>Definition 6 Resources in a DOM are &#183;&#160; <img src="5-9701506\e70f75c8-c578-4264-94b6-66b93641cb4b.jpg" /></p><p>&#183;&#160; a set <img src="5-9701506\2c97eafd-de0f-4416-912e-0c211ebc415e.jpg" /> of public resources, which are accessed by all DOMs in service program, such as files corresponding to FTP program.</p><p>&#183;&#160; a set <img src="5-9701506\0fa8ad7a-533a-4874-926c-8064bf1410eb.jpg" /> of private resources, which are created in running process, such as temporary files, etc.</p><p>&#183;&#160; a set <img src="5-9701506\c6cd5264-ca30-4f60-9f28-858205fbf7c0.jpg" /> of resources, which are called in host OS during the run-time, such as dynamic link libraries in Windows OS.</p><p>Rule 4 Resource access control rules</p><p>1) If<img src="5-9701506\97aa72b3-9a98-4912-b9be-2ac0478d456b.jpg" />, <img src="5-9701506\3e1f4c13-0887-4ea4-bd82-65ff688a2fdb.jpg" />, <img src="5-9701506\6ba7a602-d472-4b50-8ac1-8cfda52038dc.jpg" />, <img src="5-9701506\63464712-0017-470f-b055-bb89478315ed.jpg" />, <img src="5-9701506\7f524485-80da-4c61-a0ff-8d2aa6ab3984.jpg" />and<img src="5-9701506\0714f4b5-5c39-418e-a8cc-6f1596c813ce.jpg" />, p′ satisfies<img src="5-9701506\e922ad9a-9f45-4b60-8170-46b8c3f5dc38.jpg" />.</p><p>Public resources <img src="5-9701506\2571db09-5b3e-43b8-8036-aebf11dc41b1.jpg" /> only can be accessed by the corresponding process, while other processes are refused.</p><p>2)<img src="5-9701506\4d40bf8f-4c7a-4b46-965e-b9b2d879d0f2.jpg" />, <img src="5-9701506\9f7c1472-d6b9-4030-b0af-c5d3848234a6.jpg" />, <img src="5-9701506\84c28730-bc47-4570-9dec-84eb6093c6ef.jpg" />, <img src="5-9701506\1cfe363c-b18a-43a0-bea3-0c85c3f2ac62.jpg" />, res satisfies <img src="5-9701506\043d5070-a7a3-4772-b873-b27e96d0bb1b.jpg" />.</p><p>Only users in DOM can access the private resources <img src="5-9701506\9cf12f31-f207-4c42-a0b8-7284e4b9db19.jpg" /> in the same DOM.</p><p>3)<img src="5-9701506\1202b774-020c-4693-a2f5-bb3aae474f27.jpg" />, <img src="5-9701506\b0aafde1-9620-4c0b-a46c-6a5dec523c11.jpg" />, dom satisfies<img src="5-9701506\ed907442-623c-436e-a154-b7846e8bf1c8.jpg" />.</p><p>Except public resources, private resources and called resources, any resource can be accessed by the corresponding DOM.</p></sec><sec id="s3_3"><title>3.3. Module Partition Based on Concept Lattice</title><p>Information flow among domains may elevate the privileges. However, normal information flow does exist to complete the task. This section gives the security policies to prevent the privilege elevation.</p><p>A few existing researches have provided some methods for constructing an environment to prevent privilege elevation. For example, Price [<xref ref-type="bibr" rid="scirp.17613-ref4">4</xref>] used the way that directly running a copy of the program in the virtual environment. However, the above method is not suitable to multi-user services programs, such as FTP. First, each user runs the same program; some users will get more permissions than necessary. Second, several copies of the program run simultaneously will result in performance lost in OS. Hence, the paper proposes the division method for program permissions based on Concept Lattice. It is the premise of building a virtual environment.</p><p>Concept lattice is a conceptual hierarchy according to binary relation between objects and properties. We define a program fragment as the object in concept lattice, the property as permission. By looking for the same permissions in program fragments, we achieve the division aim. The basic concepts of concept lattice are as follows [<xref ref-type="bibr" rid="scirp.17613-ref5">5</xref>] .</p><p>Definition 7 Permission context is a triple<img src="5-9701506\3bbfb341-9e25-45c4-8403-155e9997147e.jpg" />. <img src="5-9701506\1bdd6436-017b-4d54-968a-cedcb4018b41.jpg" />is the set of program fragments which are composed of one or more functions. <img src="5-9701506\3b2b534d-e5fd-4c8d-af56-a7f24e4e9136.jpg" />is the relation between <img src="5-9701506\a0dc602f-5073-4ea5-88cb-0fbb8fd357ec.jpg" /> and<img src="5-9701506\eacd8673-897c-46cf-a853-0903185fbaee.jpg" />.</p><p><img src="5-9701506\af8c2e3a-8a64-4387-9533-e845f60e7dbf.jpg" />.</p><p><img src="5-9701506\3ab02e1b-2109-4653-8bb9-56a7ebc731d1.jpg" />is the public permissions set in fragments.</p><p><img src="5-9701506\663411db-304f-48b7-b6bd-1babf40535be.jpg" />.</p><p><img src="5-9701506\bb84e7b9-7e06-4b83-b775-dca4f76594cb.jpg" />is the public program fragments set in permissions.</p><p>Definition 8 If <img src="5-9701506\65f721fa-457e-4d98-bb64-d66195de23f8.jpg" /> and <img src="5-9701506\55effdb5-a23d-4bfc-a91e-926b06848bec.jpg" /> does not hold, then <img src="5-9701506\28f8968d-e563-4cba-816c-2cda784eba5e.jpg" /> is called a concept. <img src="5-9701506\06e8291e-84cb-4683-95be-8c39303f9e77.jpg" />denotes the top concept, and <img src="5-9701506\c655ea10-0350-4d26-a420-50cc26f81d46.jpg" /> denotes the bottom concept.</p><p>Partial order relation <img src="5-9701506\93b6e4c6-f428-4eca-b393-6050f9c72dff.jpg" /> between concepts: <img src="5-9701506\6f1f42b7-3753-49d3-abad-c67e259d301b.jpg" />, <img src="5-9701506\f1c15623-428d-4a12-a1a1-d56b4798cdb3.jpg" />, <img src="5-9701506\9647221e-69af-447b-8aa1-b854edc8815a.jpg" />. <img src="5-9701506\38f6562d-d63f-490f-a55b-873942ee2d77.jpg" />is called sub-concept, <img src="5-9701506\ce8bcfdb-7a3f-4935-9520-e429d540f99c.jpg" />is called parent concept. <img src="5-9701506\e0a32775-6edf-4d9c-ad00-0e24100caf28.jpg" />is the function seeking the sub-concept, and <img src="5-9701506\f1e82724-dc8f-41fa-aab3-bf495b9fbac4.jpg" /> is the function seeking the parent concept.</p><p><img src="5-9701506\4e554c5d-9269-43b9-9040-8101ee2ee10f.jpg" />: <img src="5-9701506\cc9c3764-0020-4a1b-b859-19e91544658c.jpg" />is called a concept lattice.</p><p>Definition 9 If<img src="5-9701506\95c5800f-091b-4f1a-8f6f-fe0c0c1e1c1a.jpg" />, <img src="5-9701506\fea3f059-3c01-4554-8cb0-0cec3812a9f7.jpg" />,…,</p><p><img src="5-9701506\2d702cc8-a87c-44c4-b003-55c14c947de5.jpg" />, they satisfy<img src="5-9701506\ca60a3d0-f762-45f3-92ee-1b21d072716d.jpg" />, and</p><p><img src="5-9701506\d58e8d16-0395-4eae-a572-fff96222dc9b.jpg" />, the set of C is called a Concept Division<img src="5-9701506\6fed4b74-44df-47bc-8ce9-4cf258967c47.jpg" />.</p><p>A concept corresponds to a program module which is composed of fragments. Hence, concept division is also bound to the corresponding to module partition. Therefore, to achieve a reasonable program partition, we should just find the concept division. Algorithm for module partition is as shown in <xref ref-type="fig" rid="fig3">Figure 3</xref>.</p><p>The solution based on the above algorithm is often not unique. Each concept division corresponds to a module partition. Reference [<xref ref-type="bibr" rid="scirp.17613-ref6">6</xref>] gives a method to distinguish which partition method is more targeted, and we will not go further on this issue.</p></sec></sec><sec id="s4"><title>4. Security Analysis</title><p>Buyens [<xref ref-type="bibr" rid="scirp.17613-ref6">6</xref>] gives a standard to test whether a program design meets the principle of least privilege (PLP), that is if and only if each component meets PLP. DOM is the</p><p>basic unit of service programs, so we think it should include three aspects in PLP.</p><p>1) Isolation Requirements. Users complete their task in an isolated environment, and the information exchange between internal and external environment must be controlled.</p><p>2) Permissions Limited. The users’ permissions are necessary, and there are no more authorizations than necessary.</p><p>3) Resource Access Restricted. Resources in isolated environment should be protected to prohibit external access. In addition, users in isolated environment can not access resources outside to prevent privilege elevation.</p><p>For isolation requirements, any two different DOMs belong to two different processes, so OS realizes the isolation of DOM. Communication between different DOMs relies on rules 1 and rule 2 to prevent external interference. Therefore, USIM achieves the isolation requirements.</p><p>For permissions limited, USIM realizes program partition based on concept lattice. First, <img src="5-9701506\0aae41a1-cfc4-4da9-8de6-d5ec6c1eb595.jpg" />, <img src="5-9701506\0fe15d58-5925-4443-9c3f-a94da044b92b.jpg" />, c satisfies<img src="5-9701506\06dde6a3-ca63-40bf-a7cb-e9e731100022.jpg" />, hence the set C must satisfy<img src="5-9701506\3641e139-d2b6-4eb3-a92c-dd806461e0ed.jpg" />. Second, the permissions of a user u in DOM satisfy<img src="5-9701506\975ea85b-44dd-4cdc-a69e-97105f5dad73.jpg" />. Third, in DOM, <img src="5-9701506\b1ea5c2f-3c6b-4ca1-8fab-8bd7ca72ae27.jpg" />, according to inheritance relation we get<img src="5-9701506\257ba0b1-5ee0-45fd-949b-020698b4c670.jpg" />, hence<img src="5-9701506\b6afb70b-898f-4d4e-8ab2-ea47e89e0af5.jpg" />. Since<img src="5-9701506\09bd172f-8608-419a-b6f9-905e9cef7548.jpg" />, <img src="5-9701506\953bd9b3-2f71-4465-996c-30249e951214.jpg" />holds. Therefore, users, DOMs and program modules are interconnected by the set of permissions cf<sub>i</sub>. As a result, USIM just gives the user the appropriate permissions, and it achieves the Permissions Limited requirement.</p><p>For Resource Access Restricted requirement, security policies prohibit external users accessing resources in DOM. Besides, rules 3 and rule 4 ensure that users in DOM can only access resources corresponding to DOM. Therefore, USIM meets the resource access restricted requirement.</p><p>Finally, USIM meets the requirements of PLP, and therefore can eliminate the potential super users in a service program.</p><p>However, in order to realize the program partition, we have to clear the source codes of the program, which is a limitation of USIM.</p></sec><sec id="s5"><title>5. Related Work</title><p>Least privilege is the classic method to achieve permissions restriction [7,8]. Chen proposed a check method for against PLP [<xref ref-type="bibr" rid="scirp.17613-ref9">9</xref>] . It achieves policy compliance checks by intercepting system call. However, in OS, the user in process context is the one who starts the process. For the case multiple users process a system service, it is impossible to distinguish the different users through users’ identity.</p><p>Privilege separation is a privilege restricted method by partitioning the program into several modules [<xref ref-type="bibr" rid="scirp.17613-ref10">10</xref>] . Douglas proposed an idea that partitioning an application into two parts [<xref ref-type="bibr" rid="scirp.17613-ref11">11</xref>] , a privilege server and the main application without privilege respectively. However, it is difficult to develop appropriate partitioning strategy. David inherited the idea, and partitioned the program into the privilege monitor and slave without privilege [<xref ref-type="bibr" rid="scirp.17613-ref12">12</xref>] .</p><p>Virtualization provides each user a runtime environment by virtualization technology. Jail [13,14] provides an operating system virtualization layer technology for FreeBSD. The access is limited to Jail, and the information flow inside and outside of Jail is forbidden. However, it is a full-virtualization technology, for each Jail must have a copy of system resources. It reduces the efficiency of the OS. Similarly, Solaris Zone [<xref ref-type="bibr" rid="scirp.17613-ref4">4</xref>] took this idea. FVM [<xref ref-type="bibr" rid="scirp.17613-ref15">15</xref>] is a feather-weight Windows based virtual machine. It achieves the isolation by the namespace virtualization. However, these studies can not solve users’ permissions isolation in the same program problem.</p></sec><sec id="s6"><title>6. Conclusion and Future Work</title><p>For potential super user problem, the paper introduces a user permission isolation method. Based on Concept Lattices, the algorithm for division of program permissions is proposed. Using virtualization technology, USIM constructs the permission limited environments for different users. Besides, we develop security strategies for USIM. Finally, we prove that USIM meet the principle of least privilege, and the method eliminates the potential privileged users in system services.</p></sec><sec id="s7"><title>7. Acknowledgements</title><p>This research is funded by 863 National High Tech Research and Develop Plan Project (2009AA01Z437), 973 National Key Fundamental Research Development Plan Project (2007CB311100), Opening Project of State Key Laboratory of Information Security (Institute of Software, Chinese Academy of Sciences) (No. 04-04-1), Opening Project of Key Lab of Information Network Security, Ministry of Public Security (No. C11610) the program “Core Electronic Devices, High-End General Purpose Chips and Basic Software Products” in China (No. 2010ZX01037-001-001), Funds of Key Lab of Fujian Province University Network Security and Cryptology (2011009) and Doctor Launch Fund in Beijing University of Technology (X00700054R1764), the natural science foundation of No. X0007211201101 Beijing City under Grant No. 4123093, National Soft Science Research Program (No. 2010GXQ5D317), Opening Project of Jiangsu Province Web TV Research and Development Center for Engineering Technology (No. SIIT111002).</p></sec><sec id="s8"><title>REFERENCES</title></sec><sec id="s9"><title>NOTES</title></sec></body><back><ref-list><title>References</title><ref id="scirp.17613-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">R. Stevens, “Advanced Programming in the UNIX Environment,” Addison-Wesley Publishing Company, 1992.</mixed-citation></ref><ref id="scirp.17613-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">H. Chen, D. Wagner and D. Dean, “Setuid Demystified,” Proceedings of the11th USENIX Security Symposium, San Francisco, 05-09 August 2002, pp. 171-190.</mixed-citation></ref><ref id="scirp.17613-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">Sendmail Inc. Sendmail Workaround for Linux Capabilities Bug, 2009.  
http://www.Sendmail.org/Sendmail.8.10.1.LINUX-SECURITY.txt </mixed-citation></ref><ref id="scirp.17613-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">D. Price and A. Tucker, “Solaris Zones: Operating System Support for Consolidating Commercial Workloads,” USENIX 18th Large Installation System Administration Conference (LISA’04), Atlanta, 14-19 November 2004, pp. 241-254.</mixed-citation></ref><ref id="scirp.17613-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">C. Lindig and G. Snelting, “Assessing Modular Structure of Legacy Code Based on Mathematical Concept Analysis,” Proceedings of the 19th International Conference on Software Engineering, Boston, May 1997, pp. 349-359.</mixed-citation></ref><ref id="scirp.17613-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">K. Buyens, B. D. Win, and W. Joosen, “Resolving Least Privilege Violations in Software Architectures,” Proceedings of the 5th International Workshop on Software Engineering for Secure Systems, Vancouver, 19 May 2009, pp. 9-16.</mixed-citation></ref><ref id="scirp.17613-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">T. E. Levin, C. E. Irvine and T. D. Nguyen, “A Least Privilege Model for Static Separation Kernels,” Technical Report NPS-CS-05-003, Center of Information Systems Security Studies and Research, Naval Postgraduate School, October 2004.</mixed-citation></ref><ref id="scirp.17613-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">J. H. Saltzer and M. D. Schroeder, “The Protection of Information in Computer Systems,” Proceedings of the IEEE, Vol. 63, No. 9, 1975, pp. 1278-1308. 
doi:10.1109/PROC.1975.9939</mixed-citation></ref><ref id="scirp.17613-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">S. Chen, J. Dunagan, C. Verbowski and Y.-M. Wang, “A Black-Box Tracing Technique to Identify Causes of Least-Privilege Incompatibilities,” Proceedings of Network and Distributed System Security Symposium, San Diego, 3-4 February 2005, pp. 42-53.</mixed-citation></ref><ref id="scirp.17613-ref10"><label>10</label><mixed-citation publication-type="other" xlink:type="simple">K. Buyens, R. Scandariato and W. Joosen, “Composition of Least Privilege Analysis Results in Software Architectures,” Proceeding of the 7th International Workshop on Software Engineering for Secure Systems, Waikiki, 22 May 2011, pp. 29-35.</mixed-citation></ref><ref id="scirp.17613-ref11"><label>11</label><mixed-citation publication-type="other" xlink:type="simple">D. Kilpatrick, “Privman: A Library for Partitioning Applications,” Proceedings of Freenix, San Antonio, 12-14 June 2003, pp. 273-284.</mixed-citation></ref><ref id="scirp.17613-ref12"><label>12</label><mixed-citation publication-type="other" xlink:type="simple">D. Brumley and D. Song, “Privtrans: Automatically Partitioning Programs for Privilege Separation,” Proceedings of the 13th conference on USENIX Security Symposium, San Diego, 9-13 August 2004, p. 5.</mixed-citation></ref><ref id="scirp.17613-ref13"><label>13</label><mixed-citation publication-type="other" xlink:type="simple">P. H. Kamp and R. N. Watson, “Jails: Confining the Omnipotent Root,” 2nd International System Administration and Network Engineering Conference (SANE’00), Maastricht, 2000, pp. 1-15.</mixed-citation></ref><ref id="scirp.17613-ref14"><label>14</label><mixed-citation publication-type="other" xlink:type="simple">S. Evan, “Securing FreeBSD Using Jail,” System Administration, Vol. 10, No. 5, 2001, pp. 31-37.</mixed-citation></ref><ref id="scirp.17613-ref15"><label>15</label><mixed-citation publication-type="other" xlink:type="simple">Y. Yu, F.-L. Guo, S. Nanda, L.-C. Lam and T.-C. Chiueh, “A Feather-Weight Virtual Machine for Windows Applications,” Proceedings of the Second ACM/USENIX Conference on Virtual Execution Environments (VEE’06), Ottawa, 14-16 June 2006, pp. 24-34.</mixed-citation></ref></ref-list></back></article>