An Historical Analysis of the SEAndroid Policy Evolution


Abstract in English

Android adopted SELinuxs mandatory access control (MAC) mechanisms in 2013. Since then, billions of Android devices have benefited from mandatory access control security policies. These policies are expressed in a variety of rules, maintained by Google and extended by Android OEMs. Over the years, the rules have grown to be quite complex, making it challenging to properly understand or configure these policies. In this paper, we perform a measurement study on the SEAndroid repository to understand the evolution of these policies. We propose a new metric to measure the complexity of the policy by expanding policy rules, with their abstraction features such as macros and groups, into primitive boxes, which we then use to show that the complexity of the SEAndroid policies has been growing exponentially over time. By analyzing the Git commits, snapshot by snapshot, we are also able to analyze the age of policy rules, the trend of changes, and the contributor composition. We also look at hallmark events in Androids history, such as the Stagefright vulnerability in Androids media facilities, pointing out how these events led to changes in the MAC policies. The growing complexity of Androids mandatory policies suggests that we will eventually hit the limits of our ability to understand these policies, requiring new tools and techniques.

Download