Browse > Article
http://dx.doi.org/10.13089/JKIISC.2021.31.4.753

WACFI: Code Instrumentation Technique for Protection of Indirect Call in WebAssembly  

Chang, Yoonsoo (Pusan National University)
Kim, Youngju (Pusan National University)
Kwon, Donghyun (Pusan National University)
Abstract
WebAssembly(WASM) is a low-level instruction format that can be run in a web environment. Since WASM has a excellent performance, various web applications use webassembly. However, according to our security analysis WASM has a security pitfall related to control flow integrity (CFI) for indirect calls. To address the problem in this paper we propose a new code instrumentation scheme to protect indirect calls, named WACFI. Specifically WACFI enhances a CFI technique for indirect call in WASM based on source code anlysis and binary instrumentation. To test the feasibility of WACFI, we applied WACFI to a sound-encoding application. According to our experimental results WACFI only adds 2.75% overhead on the execution time while protecting indirect calls safely.
Keywords
WebAssembly; Control Flow Integrity;
Citations & Related Records
연도 인용수 순위
  • Reference
1 LLVM, https://llvm.org/, Feb. 2021.
2 wabt, https://github.com/WebAssembly/wabt, Feb. 2021.
3 Emscripten SDK, https://emscripten.org/, Feb. 2021.
4 Haas, A., and Rossberg, A., Schuff, D. L., Titzer, B. L., Holman, M., Gohman, D., Bastien, J. F. "Bringing the web up to speed with WebAssembly." In Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 185-200, June. 2017.
5 McFadden, B., and Lukasiewicz, T., Dileo, J., Engler, J. "Security chasms of wasm." NCC Group Whitepaper. Aug. 2018.
6 WebAssembly, https://webassembly.org, Feb. 2021.
7 devlopers google, https://developers.google.com/web/updates/2019/02/hotpath-with-wasm, Feb. 2021.
8 canIuse, https://caniuse.com/?search=WebAssembly, Feb. 2021.
9 Goktas, E., and Athanasopoulos, E., Bos, H., Portokalidis, G. "Out of control: Overcoming control-flow integrity." In 2014 IEEE Symposium on Security and Privacy pp. 575-589, May. 2014.
10 Guo, Y., and Chen, L., Shi, G. "Function-oriented programming: A new class of code reuse attack in capplications." In 2018 IEEE Conference on Communications and Network Security pp. 1-9, May. 2018.
11 Pax Team. RAP: RIP ROP. https://pax.grsecurity.net/docs/ Feb. 2021.
12 Niu, B., and Tan, G. "Modular control-flow integrity." In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 577-587, June. 2014.
13 miniaudio, https://github.com/mackron/miniaudio, Feb. 2021.
14 Abadi, M., and Budiu, M., Erlingsson, U., Ligatti, J. "Control-flow integrity principles, implementations, and applications." ACM Transactions on Information and System Security, vol.13 no.1, pp. 1-40. Oct. 2009.
15 Checkoway, S., and Davi, L., Dmitrienko, A., Sadeghi, A. R., Shacham, H., Winandy, M. "Return-oriented programming without returns." In Proceedings of the 17th ACM conference on Computer and communications security, pp. 559-572, Oct. 2010.
16 Van Der Veen, V., and Goktas, E., Contag, M., Pawoloski, A., Chen, X., Rawat, S., Giuffrida, C. "A tough call: Mitigating advanced code-reuse attacks at the binary level." In 2016 IEEE Symposium on Security and Privacy (SP), pp. 934-953, May. 2016.
17 Lehmann, D., and Kinder, J., Pradel, M. "Everything old is new again: Binary security of webassembly." In 29th {USENIX} Security Symposium, pp. 217-234, Aug. 2020.
18 Farkhani, R.M., and Jafari, S., Arshad, S., Robertson, W., Kirda, E., Okhravi, H. "On the effectiveness of type-based control flow integrity." In Proceedings of the 34th Annual Computer Security Applications Conference, pp. 28-39, Dec. 2018.