Asset Publisher
Dynamic Feature Monitoring and Blocking

Feature removal has been proposed as a means for de-bloating software, primarily for security reasons. Existing methods [JZWL] are static in nature, i.e., they rely on static detection and removal of features of interest.

In this proposal, I propose developing a dynamic feature detection and blocking tool for Java. Dynamic feature detection will be achieved using a hybrid of Java model checking and bytecode instrumentation – as described in section 3; this tool will discover paths and objects that contain features of interest. Dynamic blocking aspect of the proposed tool will dynamically and conditionally block features of interest, using bytecode instrumentation – as described in section 3.

Dynamic feature model-checking provides increased flexibility over static methods by discovering:

- All paths the lead to feature call-sites

- The context of feature call-sites of such as objects that contain call-sites. This information is then useful for dynamic feature blocking.

Dynamic feature blocking provides increased flexibility over static methods by enabling context sensitive blocking, such as:

- Blocking features based on the end user’s identity and role

- Blocking features based on the runtime context of container object (attribute values)

- Blocking some feature call sites while allowing others.

- Time and location based blocking.
Computer Science
Office of Naval Research
Navy
2018