电院要闻
电院向立瑶团队在数字水印技术识别领域取得新进展
作者:杨博睿 向立瑶 供稿:约翰·霍普克罗夫特计算机科学中心 日期:2024-03-06 阅读:446

近日,电子信息与电气工程学院约翰·霍普克罗夫特计算机科学中心向立瑶副教授团队在数字水印技术识别上取得的最新研究成果"SrcMarker: Dual-Channel Source Code Watermarking via Scalable Code Transformations"(基于代码变换的双通道源代码水印系统)被第45届国际信息安全顶会IEEE S&P 2024录用。IEEE S&P全称IEEE Symposium on Security and Privacy,是计算机安全领域的四大顶级国际会议之一,其近十年的平均录用率仅约为13%,被中国计算机学会(CCF)认定为A类会议。


图片1.png

IEEE S&P 2024

研究背景

随着开发者社区的不断发展和大语言模型技术的兴起,程序源代码的知识产权保护显得日益重要。源代码可能遭到恶意用户的剽窃、篡改,也可能未经授权即被用于大模型的训练,这些行为将侵害开发者的知识产权。本文旨在通过数字水印技术(digital watermarking)为验证源代码归属提供解决方案。数字水印是将一串“水印”嵌入图像、文本等数字载体的技术,其已被用于图像、文本、软件甚至神经网络模型等的知识产权保护。

论文内容

研究团队提出了基于深度学习的源代码水印系统SrcMarker,该系统包括水印嵌入模块、水印提取模块和特征近似模块(特征近似模块仅在训练阶段使用)。SrcMarker 的设计贴合程序语言的特性,解决了诸多现实挑战,例如程序语言的双通道约束和离散特性等。

图片2.jpg

SrcMarker推理阶段示意图

 

首先,源代码水印的第一个挑战来自于程序语言的“双通道”特性。程序语言同时包含自然通道和形式通道的信息,自然通道通常面向人类开发者,形式通道则通常面向编译器等工具。这意味着嵌入水印时需要同时考虑源代码的自然性和语义等价性。否则,携带水印的代码将变得难以阅读,或者包含语法错误。

为此,研究团队将深度学习和基于规则的方法结合,通过变量名替换和语义等价变换,同时在自然通道和形式通道编码水印信息。系统利用神经网络,根据输入的代码和水印串,选择一组需要执行的代码变换操作,然后基于规则将变换应用到代码上,实现水印信息嵌入。一方面,深度学习模型有较强的上下文表征能力,能够从输入的代码中提取丰富的上下文信息,保证代码的自然性。另一方面,基于规则的变换操作在抽象语法树(Abstract Syntax Tree, AST)上根据语法规则修改代码,保证代码的语义等价性。

 

图片3.png

 

其次,源代码的离散性质对深度学习系统的设计带来了挑战。神经网络模型的训练依赖基于梯度的优化算法,这要求系统中的数据是连续、可求导的。然而,这与代码及其变换操作的离散特性相矛盾。研究团队注意到,在源代码本身被修改后,其在特征空间中对应的特征向量也会相应地有所变化。基于这一观察,团队引入了特征近似模块,该模块在可求导的特征空间中直接估计变换后代码的特征向量,并将其与实际代码的特征对齐。这一设计在系统中引入了一条支持梯度回传的数据流,使系统得以端到端训练。

 

图片4.png

SrcMarker 的完整系统架构图

 

最后,在系统实现上,由于目前缺少通用且高效的代码语义等价变换工具,团队提出了源代码变换框架MutableAST。MutableAST提供了跨程序语言的统一接口,略去了不同语言间的细节差异,减少了等价变换的开发工作量。MutableAST目前支持C/C++,Java 和 JavaScript三种语言,能高效完成函数级别的语义等价变换,且正确性超过99%,其不仅作为SrcMarker的代码变换组件,也有望为相关领域的后续工作提供帮助。

 

图片5.png

MutableAST设计示意图

 

论文链接:

https://www.computer.org/csdl/proceedings-article/sp/2024/313000a097/1Ub234YHHzO

代码链接:

https://github.com/YBRua/SrcMarker

 

应用案例

SrcMarker可被用于保护开源代码仓库:仓库拥有者可以将一串代表自己身份的长水印拆解成若干个短水印片段,分别嵌入到仓库内的不同函数中。在验证阶段,系统从函数中重新提取水印片段,恢复出长水印,并通过假设检验对比提取的水印和实际的水印,从而验证仓库的归属。通过聚合多个函数中的水印片段,不仅能扩充水印容量,而且能提升水印的鲁棒性。即使恶意用户尝试抹除代码仓库中的水印信息,当携带水印的函数数量足够多时,这类去水印攻击也很难影响最终的验证成功率。

图片6上.jpg

 

图片6下.png

SrcMarker应用于开源代码仓库水印

 

团队介绍

图七1一作.png图七2二作.png图七3通讯作者.jpg

 

本篇论文第一作者和第二作者分别为电子信息与电气工程学院计算机系2023级硕士研究生杨博睿(左一)、2021级博士研究生李威(左二),师从约翰·霍普克罗夫特计算机科学中心向立瑶副教授。向立瑶为唯一通讯作者(右一)。

向立瑶,上海交通大学长聘教轨副教授。主要研究方向为数据安全隐私、智能物联网等,其代表性成果发表在安全、网络、数据挖掘领域国际一流会议与期刊,包括IEEE S&P,NDSS,INFOCOM,UbiComp,KDD,IEEE TIFS,IEEE TDSC,IEEE JSAC,IEEE TMC等,担任SIAM SDM 2023、Globecom 2022 CISS、IEEE MASS 2022、IEEE ICDCS 2021会议程序委员会成员,IEEE ICDCS 2023分论坛主席,ACM Mobihoc 2021注册主席等。

主页:http://xiangliyao.cn/