sis (Clemente et al., 2012), also in combination with
clustering (Marouf and Shehab, 2011). These tech-
niques are also system-agnostic, and we may use them
in future SEAndroid tools.
SELinux policy generation and refining tools are
rare. Polgen, a tool for semi-automated SELinux pol-
icy generation based on system call tracing (Sniffen
et al., 2006), appears to be no longer in active de-
velopment. The SELinux userspace tools (SELinux
Project, 2014) can generate SELinux policies. One
of these tools, audit2allow, is widely used to au-
tomatically generate and refine SELinux policies by
converting SELinux audit messages into rules; these
policies, however, are not necessarily correct, com-
plete or secure, since the rules depend on code paths
taken during execution, and there is no way to dis-
tinguish intended and possibly malicious application
behavior. These tools are used both in SELinux and
SEAndroid.
There has been some research in applying Do-
main Specific Languages (DSL) (Fowler, 2010) to
SELinux policy development and verification (Hurd
et al., 2009). The authors proposed a tool (shrimp) to
analyze and find errors in the SELinux Reference Pol-
icy, similar to the Lint tool for C. This is similar to a
tool we propose, but different in scope as it is limited
to analysis of the SELinux reference policy.
The only SEAndroid-specific analysis method is
based on audit log analysis with machine learn-
ing (Wang et al., 2015). This approach is completely
different from what we propose, since it relies on sig-
nificant volumes of data to classify rules.
6 CONCLUSIONS
In this paper we presented a number of common mis-
takes made by OEMs in their SEAndroid policies,
suggesting potential reasons behind them. As a re-
sult of this study, we identified a number of practical
tools that should help OEMs and security researchers
to improve SEAndroid policies. We provided the im-
plementation of a first tool , SEAL, and we are cur-
rently working on the rest.
REFERENCES
Amthor, P., Kuhnhauser, W., and Polck, A. (2011). Model-
based safety analysis of selinux security policies. In
NSS, pages 208–215. IEEE.
Badger, L., Sterne, D., Sherman, D., Walker, K., Haghighat,
S., et al. (1995). Practical domain and type enforce-
ment for UNIX. In Security and Privacy, pages 66–77.
IEEE.
Bauer, M. (2006). Paranoid penguin: an introduction to
Novell AppArmor. Linux Journal, (148):13.
Clemente, P., Kaba, B., Rouzaud-Cornabas, J., Alexandre,
M., and Aujay, G. (2012). Sptrack: Visual analysis of
information flows within selinux policies and attack
logs. In AMT, pages 596–605. Springer.
Fowler, M. (2010). Domain-specific languages. Pearson
Education.
Guttman, J. D., Herzog, A. L., Ramsdell, J. D., and Sko-
rupka, C. W. (2005). Verifying information flow goals
in security-enhanced Linux. Journal of Computer Se-
curity, 13(1):115–134.
Harrison, M. A., Ruzzo, W. L., and Ullman, J. D. (1976).
Protection in operating systems. Commun. ACM,
19(8):461–471.
Hurd, J., Carlsson, M., Finne, S., Letner, B., Stanley, J., and
White, P. (2009). Policy DSL: High-level Specifica-
tions of Information Flows for Security Policies.
Jaeger, T., Sailer, R., and Zhang, X. (2003). Analyzing in-
tegrity protection in the selinux example policy. In
USENIX Security, page 5.
Marouf, S. and Shehab, M. (2011). SEGrapher:
Visualization-based SELinux policy analysis. In
SAFECONFIG, pages 1–8. IEEE.
Schaufler, C. (2008). Smack in embedded computing. In
Ottawa Linux Symposium.
SELinux Project (2014). Userspace tools.
github.com/SELinuxProject/selinux/wiki. Accessed:
2015-09-29.
Smalley, S. and Craig, R. (2013). Security Enhanced (SE)
Android: Bringing flexible MAC to Android. In
NDSS, volume 310, pages 20–38.
Smalley, S., Vance, C., and Salamon, W. (2001). Imple-
menting SELinux as a Linux security module. NAI
Labs Report, 1(43):139.
Sniffen, B. T., Harris, D. R., and Ramsdell, J. D. (2006).
Guided policy generation for application authors. In
SELinux Symposium.
Spencer, R., Smalley, S., Loscocco, P., Hibler, M., and Lep-
reau, J. (1999). The Flask security architecture: Sys-
tem support for diverse policies. In USENIX Security.
Tresys (2014). SETools project page.
github.com/TresysTechnology/setools3/wiki. Ac-
cessed: 2015-09-29.
Wang, R., Enck, W., Reeves, D., Zhang, X., Ning, P.,
Xu, D., Zhou, W., and Azab, A. (2015). EASE-
Android: Automatic Policy Analysis and Refinement
for Security Enhanced Android via Large-Scale Semi-
Supervised Learning. In USENIX Security.
Zhou, Y. and Jiang, X. (2012). Dissecting android mal-
ware: Characterization and evolution. In Security and
Privacy, pages 95–109. IEEE.
Characterizing SEAndroid Policies in the Wild
489