HODOR:通过系统调用限制缩减Node.js的攻击面
密码学与安全
2023-06-27 v1
摘要
Node.js通过系统调用为Node.js应用提供系统交互能力。然而,此种便利需付出代价,即JavaScript任意代码执行(ACE)漏洞的攻击面被扩展至系统调用层级。现有JavaScript代码层保护技术(通过代码精简或读写执行权限限制)与针对新兴关键系统调用层利用的定向防御之间存在显著差距。为填补该空白,我们设计并实现了HODOR,一种基于在运行Node.js应用时强制精确系统调用限制的轻量级运行时保护系统。HODOR通过解决若干重要的技术挑战实现此目标。首先,HODOR需要为Node.js应用(JavaScript)及其底层Node.js框架(JavaScript与C/C++)构建高质量调用图。具体地,HODOR在JavaScript与C/C++层引入若干重要优化,以改进构建更精确调用图的最先进工具。随后,HODOR基于调用图映射分别创建包含已识别必要系统调用的主线程白名单与线程池白名单。最后,借助白名单,HODOR利用Linux内核特性安全计算模式(seccomp)实现轻量级系统调用限制以缩减攻击面。我们利用HODOR保护83个受任意代码/命令执行攻击影响的真实Node.js应用。HODOR可将攻击面平均缩减至16.75%,且运行时开销可忽略(即<3%)。
引用
@article{arxiv.2306.13984,
title = {HODOR: Shrinking Attack Surface on Node.js via System Call Limitation},
author = {Wenya Wang and Xingwei Lin and Jingyi Wang and Wang Gao and Dawu Gu and Wei Lv and Jiashui Wang},
journal= {arXiv preprint arXiv:2306.13984},
year = {2023}
}