Automatically partition software into least privilege components using dynamic data dependency analysis

The principle of least privilege requires that software components should be granted only necessary privileges, so that compromising one component does not lead to compromising others. However, writing privilege separated software is difficult and as a result, a large number of software is monolithi...

Full description

Saved in:
Bibliographic Details
Main Authors: WU, Yongzheng, SUN, Jun, LIU, Yang, DONG, Jin Song
Format: text
Language:English
Published: Institutional Knowledge at Singapore Management University 2013
Subjects:
Online Access:https://ink.library.smu.edu.sg/sis_research/5006
https://ink.library.smu.edu.sg/context/sis_research/article/6009/viewcontent/Automatically.pdf
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Singapore Management University
Language: English
id sg-smu-ink.sis_research-6009
record_format dspace
spelling sg-smu-ink.sis_research-60092020-03-12T09:33:19Z Automatically partition software into least privilege components using dynamic data dependency analysis WU, Yongzheng SUN, Jun LIU, Yang DONG, Jin Song The principle of least privilege requires that software components should be granted only necessary privileges, so that compromising one component does not lead to compromising others. However, writing privilege separated software is difficult and as a result, a large number of software is monolithic, i.e., it runs as a whole without separation. Manually rewriting monolithic software into privilege separated software requires significant effort and can be error prone. We propose ProgramCutter, a novel approach to automatically partitioning monolithic software using dynamic data dependency analysis. ProgramCutter works by constructing a data dependency graph whose nodes are functions and edges are data dependencies between functions. The graph is then partitioned into subgraphs where each subgraph represents a least privilege component. The privilege separated software runs each component in a separated process with confined system privileges. We evaluate it by applying it on four open source software. We can reduce the privileged part of the program from 100% to below 22%, while having a reasonable execution time overhead. Since ProgramCutter does not require any expert knowledge of the software, it not only can be used by its developers for software refactoring, but also by end users or system administrators. Our contributions are threefold: (i) we define a quantitative measure of the security and performance of privilege separation; (ii) we propose a graph-based approach to compute the optimal separation based on dynamic information flow analysis; and (iii) the separation process is automatic and does not require expert knowledge of the software. 2013-11-01T07:00:00Z text application/pdf https://ink.library.smu.edu.sg/sis_research/5006 info:doi/10.1109/ASE.2013.6693091 https://ink.library.smu.edu.sg/context/sis_research/article/6009/viewcontent/Automatically.pdf http://creativecommons.org/licenses/by-nc-nd/4.0/ Research Collection School Of Computing and Information Systems eng Institutional Knowledge at Singapore Management University Software Engineering
institution Singapore Management University
building SMU Libraries
continent Asia
country Singapore
Singapore
content_provider SMU Libraries
collection InK@SMU
language English
topic Software Engineering
spellingShingle Software Engineering
WU, Yongzheng
SUN, Jun
LIU, Yang
DONG, Jin Song
Automatically partition software into least privilege components using dynamic data dependency analysis
description The principle of least privilege requires that software components should be granted only necessary privileges, so that compromising one component does not lead to compromising others. However, writing privilege separated software is difficult and as a result, a large number of software is monolithic, i.e., it runs as a whole without separation. Manually rewriting monolithic software into privilege separated software requires significant effort and can be error prone. We propose ProgramCutter, a novel approach to automatically partitioning monolithic software using dynamic data dependency analysis. ProgramCutter works by constructing a data dependency graph whose nodes are functions and edges are data dependencies between functions. The graph is then partitioned into subgraphs where each subgraph represents a least privilege component. The privilege separated software runs each component in a separated process with confined system privileges. We evaluate it by applying it on four open source software. We can reduce the privileged part of the program from 100% to below 22%, while having a reasonable execution time overhead. Since ProgramCutter does not require any expert knowledge of the software, it not only can be used by its developers for software refactoring, but also by end users or system administrators. Our contributions are threefold: (i) we define a quantitative measure of the security and performance of privilege separation; (ii) we propose a graph-based approach to compute the optimal separation based on dynamic information flow analysis; and (iii) the separation process is automatic and does not require expert knowledge of the software.
format text
author WU, Yongzheng
SUN, Jun
LIU, Yang
DONG, Jin Song
author_facet WU, Yongzheng
SUN, Jun
LIU, Yang
DONG, Jin Song
author_sort WU, Yongzheng
title Automatically partition software into least privilege components using dynamic data dependency analysis
title_short Automatically partition software into least privilege components using dynamic data dependency analysis
title_full Automatically partition software into least privilege components using dynamic data dependency analysis
title_fullStr Automatically partition software into least privilege components using dynamic data dependency analysis
title_full_unstemmed Automatically partition software into least privilege components using dynamic data dependency analysis
title_sort automatically partition software into least privilege components using dynamic data dependency analysis
publisher Institutional Knowledge at Singapore Management University
publishDate 2013
url https://ink.library.smu.edu.sg/sis_research/5006
https://ink.library.smu.edu.sg/context/sis_research/article/6009/viewcontent/Automatically.pdf
_version_ 1770575170867560448