Resource Body Guard - protecting resource from locally executed software
Overview
Condor is capable of executing any program submitted to it. When running on remote resource, a program can perform various activities,
such as reading and writing files, opening network connections and communicating with other remote entities, e.g. database, or hierarchical storage.
But what if an executable submitted to Condor is a malicious software, e.g. virus, performing these actions to steal confidential information from
the execution machines, to distribute spam, initiate distributed coordinated attack on some server, or trying to "just" cause local resource malfunction by
filling up /tmp. Condor does not have mechanisms to prevent such attacks, i.e. restrict an access to specific system resources, such as
local file system or network.
This problem is particularly critical for the pools with resources running MS Windows, mainly due to the fact that it comes with fairly relaxed default
security policy.
This current project aims to provide a solution to the problem of resource protection, by allowing to explicitly control Condor-invoked program access
to local system resources. We call our solution a Resource Body Guard (RBG). The vision is to be able to specify Access Control
Lists for file system and network, together with restricting the intensity of their usage. For instance, we want to allow a Condor program to write to c:\temp directory, but we
disallow it to write more than 500 Kbytes per second and not more than 500MB in total.
There are several technical and algorithmic challenges. First, it is vital for RBG to have minimal impact on the locally invoked programs, and on the
non-malicious programs invoked by Condor. Second, a running program should not be able to escape from RBG. And finally, RBG is required to interact with
Condor resource allocation process in order to minimize the amount of programs which can be known in advance to not be allowed to run on a resource.
We are currently working only on the aspects of the RBG for file system.
Solution design
FS RBG prototype is implemented as a Windows FS filter driver, with the capabilities to monitor activities of particular process or group of processes, and
performing efficient ACL table lookup each time the monitored process attempts to access some file. The detailed Requirements document, describing our approach to
building the first prototype can be found here. The detailed High Level Design document for our prototype can be found
here.
Status
As of today (September 2004) we have implemented a filter driver core functionality. We are working on testing and integration with
Condor daemons.
Open issues
+ Testing of the prototype drive
+ Implementation of the monitoring service
+ Integration with Condor
+ Installation kit
Download
Expected in February
Contact
Kfir Karmon - skarmon-at-t2.technion.ac.il
Students
Kfir Karmon, Eran Sevi, Keren Ouaknine
Supervisors
Eran Issler, Mark Silberstein, Gabi Kliot
Prof. Assaf Schuster
Vlad Dovlekaev (Micorosoft Israel)
This project would not be possible without support of Microsoft Israel .