9 CONCLUSION
This paper presented an executable rewriting logic se-
mantics for static taint analysis of an imperative pro-
gramming language in the K framework. The pro-
posed approach has improved precision with respect
to the existing techniques, as shown by our experi-
mental evaluation on a set of well-known benchmark
programs. We made the full set of semantics rules
and the experimental data available for download. We
are currently investigating how to integrate in the pro-
posed analyzer a preprocessing phase which allows
to address specific cases where exact variables values
may improve the precision. We consider in our fu-
ture endeavor more semantic rules to cover more lan-
guage features as an extension to the current imper-
ative language and we also address more semantics-
based non-dependencies.
ACKNOWLEDGEMENT
This work is partially supported by the research grant
(SB/FTP/ETA-315/2013) from the Science and Engi-
neering Research Board (SERB), Department of Sci-
ence and Technology, Government of India.
REFERENCES
Amtoft, T. and Banerjee, A. (2004). Information flow anal-
ysis in logical form. In SAS, volume 3148, pages 100–
115. Springer.
As
˘
avoae, I. M. (2014). Abstract semantics for alias anal-
ysis in k. Electronic Notes in Theoretical Computer
Science, 304:97–110.
Cavallaro, L., Saxena, P., and Sekar, R. (2008). On the lim-
its of information flow techniques for malware anal-
ysis and containment. In Proc. of Int. Conf. on De-
tection of Intrusions and Malware, and Vulnerability
Assessment, pages 143–163. Springer.
Cifuentes, C. and Scholz, B. (2008). Parfait: designing a
scalable bug checker. In Proc. of the 2008 workshop
on Static analysis, pages 4–11. ACM.
Clavel, M. and et al. (2007). All about maude-a high-
performance logical framework: how to specify, pro-
gram and verify systems in rewriting logic. Springer-
Verlag.
Corin, R. and Manzano, F. A. (2012). Taint analysis of se-
curity code in the klee symbolic execution engine. In
ICICS, pages 264–275. Springer.
Denning, D. E. and Denning, P. J. (1977). Certification of
programs for secure information flow. Communica-
tions of the ACM, 20(7):504–513.
Evans, D. and Larochelle, D. (2002). Improving security
using extensible lightweight static analysis. IEEE soft-
ware, 19(1):42–51.
Evans, D., Larochelle, D., and Evans, D.
(2003). Splint manual: Version 3.1.1-1.
http://lclint.cs.virginia.edu/manual/manual.html.
Foster, J. S. et al. (2002). Cqual user’s guide. University of
California, Berkeley, version 0.9 edition.
Huang, W., Dong, Y., and Milanova, A. (2014). Type-based
taint analysis for java web applications. In In Proc.
of Int. Conf. on Fundamental Approaches to Software
Engineering, pages 140–154. Springer.
Hunt, S. and Sands, D. (2006). On flow-sensitive security
types. In Conf. Record of the 33rd ACM SIGPLAN-
SIGACT Sym. on POPL, pages 79–90, S. California.
ACM.
Jovanovic, N., Kruegel, C., and Kirda, E. (2006). Pixy: A
static analysis tool for detecting web application vul-
nerabilities. In IEEE Symposium on Security and Pri-
vacy (S&P’06), pages pp. 258–263. IEEE. IEEE.
Livshits, V. B. and Lam, M. S. (2005). Finding security vul-
nerabilities in java applications with static analysis. In
USENIX Security Symposium, volume 14, pages 18–
18.
Meseguer, J. and Ros¸u, G. (2007). The rewriting logic
semantics project. Theoretical Computer Science,
373(3):213–237.
Noundou, X. N. (2015). Saint: Simple
static taint analysis tool users manual.
https://archive.org/details/saint 201507.
Ros¸u, G. and S¸erb
˘
anut
˘
a, T. F. (2010). An overview of the k
semantic framework. The Journal of Logic and Alge-
braic Programming, 79(6):397–434.
Russo, A. and Sabelfeld, A. (2010). Dynamic vs. static
flow-sensitive security analysis. In 23rd IEEE Com-
puter Security Foundations Symposium, pages 186–
199. IEEE.
Sabelfeld, A. and Myers, A. C. (2006). Language-based
information-flow security. IEEE Journal on selected
areas in communications, 21(1):5–19.
Scholz, B., Zhang, C., and Cifuentes, C. (2008). User-input
dependence analysis via graph reachability. Techni-
cal Report SMLI TR-2008-171, Mountain View, CA,
USA.
SecuriBench (2006). Stanford securibench micro.
http://suif.stanford.edu/∼livshits/work/securibench-
micro/.
Sridharan, M., Artzi, S., Pistoia, M., Guarnieri, S., Tripp,
O., and Berg, R. (2011). F4f: taint analysis of
framework-based web applications. ACM SIGPLAN
Notices, 46(10):1053–1068.
Tripp, O., Pistoia, M., Fink, S. J., Sridharan, M., and Weis-
man, O. (2009). Taj: effective taint analysis of web ap-
plications. In ACM Sigplan Notices, volume 44, pages
87–97. ACM.
Vogt, P., Nentwich, F., Jovanovic, N., Kirda, E., Kruegel,
C., and Vigna, G. (2007). Cross site scripting preven-
tion with dynamic data tainting and static analysis. In
NDSS, volume 2007, page 12.
Volpano, D., Irvine, C., and Smith, G. (1996). A sound type
system for secure flow analysis. J. Comput. Secur.,
4(2-3):167–187.
ENASE 2018 - 13th International Conference on Evaluation of Novel Approaches to Software Engineering
366