process can cause to happen.” -- Stiegler04 • Goal is to protect the user from malicious or poorly implemented clients. • Static authority specified before application launch. • Dynamic authority granted during application execution.
Virus/worm/trojan opens a back-channel to report usage habits. • Accidental file deletion. • Too little authority ... • Application does not function as the user expects.
dynamic authority? • Can the approach be generic enough to be reusable across disparate applications? • Cannot simply trust app developers to provide authorizing contexts on their own.
Capture URIs as they flow through the application. • Do not handle other cases/types. • Multi-prong approach to cover different types of I/O for an application. • Separates dynamic authorization from application implementation.
the user downloads. • User weaves aspect library with application to secure the application. • Application starts with no authority. • Authority derived at run-time from: • HTML, RSS, Atom, XML • HTTP, local disk • SWT, Swing
file from disk. • Downloading a file from a server. • Use a policy file specifying rules to apply to input for granting authority. • Separates concern of parsing I/O from disk or network for driving security decisions.
is readable by the user for auditing. • Authority is dynamically granted based on content of the input. • Common formats are handled generically. • Generically weave into application to handle disk and network I/O.
User Application GUI Widgets Status Bar Aspects Aspects XPath Policy Code Access Policy Add Permissions User Prompting Add Permissions Adding Mouse Support End User Status Bar Add Permissions
considered a URI to grant authority to access. • App Developer is untrusted. • Only provides mapping of mouse clicks to URIs. • User can hover to see what consequences their actions will have when clicking through status bar.
dynamic authority? • Can the approach be generic enough to be reusable across disparate applications? • Color-coded results: • Generic approach. • App-specific solution. • Prompting required.
generically by our aspect library on its own. • Other half required input from app developer, which can be audited. • Only 1 instance found where our approach could not be applied, requiring prompting.
an application. • Authorizing contexts capture join points where authority flows through an app. • Authority aspects capture authorizing contexts. • For two real-world applications, only one instance existed where dynamic authority could not be captured.