新闻动态

计算机系LoCCS团队研究成果获ACM CCS 2023正式录用

发布时间:2023-08-09

近期,计算机系信息安全与密码研究所(IISeC)谷大武教授领导的密码与计算机安全实验室(LoCCS)团队在软件安全方向上取得的最新成果,获ACM CCS 2023全文正式录用。ACM CCS是CCF A类国际会议,也是信息安全四大顶级学术会议之一。会议专注于收录全球科研机构和科技企业在网络信息系统安全、隐私保护及应用密码学领域的最新前沿进展。论文题目为“HODOR: Shrinking Attack Surface on Node.js via System Call Limitation”,下面是相关成果的简要介绍。

研究背景

Node.js是基于Google V8引擎的开源和跨平台的JavaScript运行时环境,Node.js使用了事件驱动、非阻塞式I/O模型,具备轻量且高效的优势。目前,一些知名网站在其网页产品中使用了 Node.js,例如 Paypal、LinkedIn、Microsoft和Netflix。

 

Node.js引擎提供给JavaScript代码访问系统调用的能力,然而,这也给Node.js应用攻击者破坏运行时系统正常运行的可能。具体来说,攻击者可以通过利用Node.js应用中的任意代码执行漏洞(例如,vm.Script或eval等执行任意JS代码,或利用child_process模块的exec方法执行命令)获得调用系统调用的能力,进而展开对系统的更大范围的攻击

 


创新成果

本工作设计了Node.js运行时防护框架HODOR,HODOR通过限制Node.js应用调用系统调用的能力进一步缩小了任意代码执行攻击的攻击面。

 

Node.js框架由内置层模块、绑定层模块和依赖层模块组成,为了保留应用程序在运行时所必须的系统调用,并禁用不被应用程序使用的系统调用,需要对不同功能、不同语言所编写的模块进行层层程序分析(挑战一);为了开展系统调用级别的保护,本工作使用了Seccomp技术,考虑到Node.js引擎是多线程框架且Seccomp具备继承特性,需要设计不同的Seccomp策略并应用到不同的线程上(挑战二)


方法概述

1. 调用图分析。对于由JavaScript语言编写的应用层和内置层模块代码,通过动静态结合的方法为JavaScript源码构建调用图,本工作在构建调用图时考虑了内置方法的语义和任意命令执行的语句。对于由C/C++语言编写的绑定层模块和依赖层模块,使用SVF工具对编译后的LLVM Code构建调用图,本工作针对switch-case语句和函数参数指针开展部分上下文敏感分析。

2. 构建映射关系。对于应用层,通过遍历调用图,记录运行时所调用的Node.js API;对于内置层模块,通过遍历调用图记录Node.js API与绑定层API的映射关系;对于绑定层模块,撰写了LLVM Pass,记录绑定层与C++函数的映射关系;对于依赖层模块,遍历调用图,记录C++函数使用的系统调用。

3. 根据每层的映射关系,得到应用程序在运行时所使用的系统调用。为了实现线程级的保护机制,本工作根据不同线程运行的代码模式,系统调用进行区分,并转换为Seccomp策略所使用的白名单。

4. 最后,将系统调用白名单限制机制应用于运行Node.js应用程序的线程中。Hodor应用了一种细粒度的过滤机制——对于不同类型的应用程序中采用不同的加载机制,对于不同类型的线程采取不同的加载时机。

 

对于具有任意代码执行漏洞的168个应用程序,HODOR可以将攻击面平均减少到19.42%,运行时开销可以忽略不计,极大提升了Node.js系统的安全性。

 

论文原文&源码:https://github.com/NodeHodor/Hodor

 


作者信息

王文雅(第一作者)

 

高旺(第四作者)

 

谷大武(通讯作者)

 

上海交通大学为该项研究的第一完成单位,研究合作单位包括蚂蚁集团、浙江大学。博士研究生王文雅为第一作者,硕士研究生高旺为第四作者,计算机系谷大武教授为通讯作者。

 

会议信息

ACM CCS与IEEE S&P、USENIX Security、NDSS并列为计算机安全领域四大顶级会议,收录研究机构以及科技企业在计算机安全和隐私研究领域最前沿、最顶级的研究成果,被中国计算机学会(CCF)认定为网络与信息安全领域A类国际学术会议,ACM CCS至今已举办29届,拥有悠久的历史和极高的声誉,一直被视为系统和网络安全领域研究的风向标,过去五年录取率为18%左右。

联系我们 webmaster@cs.sjtu.edu.cn

上海交通大学计算机科学与工程系版权所有 @ 2013