Wednesday, August 11, 2004
5331 CS
11:30 AM - 12:30 PM
|
T. Ogiso, Y. Sakabe, M. Soshi, A. Miyaji
Japan Advanced Institute of Science and Technology
Software Obfuscation on a Theoretical Basis and Its Implementation
Published in IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences, Special Section on Cryptography and Information Security, E86-A(1), pp. 176-186, 2003.
URL: http://grampus.jaist.ac.jp:8080/miyaji-lab/member/PaperPS/ieice03-1-tamper-soft.pdf
Local copy: http://www.cs.wisc.edu/areas/sec/ieice03-1-tamper-soft.pdf
Software obfuscation is a promising approach to
protect intellectual property rights and secret
information of software in untrusted
environments. Unfortunately previous software
obfuscation techniques share a major drawback that
they do not have a theoretical basis and thus it is
unclear how effective they are. Therefore we propose
new software obfuscation techniques in this
paper. The techniques are based on the difficulty of
interprocedural analysis of software programs. The
essence of our obfuscation techniques is a new
complexity problem to precisely determine the
address a function pointer points to in the presence
of arrays of function pointers. We show that the
problem is NP-hard and the fact provides a
theoretical basis for our obfuscation
techniques. Furthermore, we have already implemented
a prototype tool that obfuscates C programs
according to our proposed techniques and in this
paper we describe the implementation and discuss the
experiments results.
|
Wednesday, August 25, 2004
5331 CS
11:30 AM - 12:30 PM
|
D. Brumley, D. Song
CMU
Privtrans: Automatically Partitioning Programs for Privilege Separation
USENIX Security'04
URL: http://www.cs.wisc.edu/areas/sec/songbrumley-usenix04.pdf
Privilege separation partitions a single program
into two parts: a privileged program called the
monitor and an unprivileged program called the
slave. All trust and privileges are relegated to the
monitor, which results in a smaller and more easily
secured trust base. Previously the privilege
separation procedure, i.e., partitioning one program
into the monitor and slave, was done by hand. We
design techniques and develop a tool called
Privtrans that allows us to automatically integrate
privilege separation into source code, provided a
few programmer annotations. For instance, our
approach can automatically integrate the privilege
separation previously done by hand in OpenSSH, while
enjoying similar security benefits. Additionally, we
propose optimization techniques that augment static
analysis with dynamic information. Our optimization
techniques reduce the number of expensive calls made
by the slave to the monitor. We show Privtrans is
effective by integrating privilege separation into
several open-source applications.
|