机器语言大模型为软件保护带来的颠覆性变革|天同网事

学术   2024-09-18 17:59   北京  
文 / 闻闽,天同律师事务所高级顾问

前 言:在数字化时代,软件不仅是企业的核心资产。然而,随着信息技术的迅猛发展,软件侵犯行为变得更加隐蔽和复杂,严重威胁着开发者的合法权益和整个行业的健康发展。软件侵权诉讼当然是解决这一问题的最终手段。但在诉讼中,被告往往会基于各种原因拒绝向法院提交源代码。因此,法院无法对双方软件的源代码进行比对,只能使用目标代码反编译的方式对双方代码进行鉴定。导致司法效率低下、权利人维权之路充满挑战。为了解决这一问题,天同律师事务所、无讼科技与清华大学的华清未央团队紧密合作,将机器语言大模型技术用于软件相似性比对与合规风险评估。为软件保护提供了精准与高效的解决方案。

目 次



一、传统二进制文件分析比对手段差强人意

二、大模型为二进制文件分析带来全新思路

三、机器语言大模型在版权保护场景应用广泛

传统二进制文件分析比对手段差强人意

从2023年底北京知识产权法院发布计算机软件著作权六件典型案例来看[i],软件权利人主要的举证路径是对被诉侵权软件提取的目标代码与权利软件的源代码编译后生成目标代码具有同一性,以及被诉侵权软件存在与权利软件相同的自主命名信息、设计缺陷、冗余设计等特有信息等。此类证据的发现具有偶然性,不具有普遍代表性。

在缺乏源代码的情况下,直接分析和比对二进制软件以确认抄袭行为,一直是版权保护领域的难题。同样的源代码,经过不同的编译器、不同的优化选项编译,在不同的操作系统平台、不同的指令集架构下,得到的二进制代码差异很大,以C++为例,一段同样的代码选择不同的编译器如Clang、GCC、MSVC等编译器编译后,其二进制代码并不相同,在此基础上进行逆向分析所得出的伪代码也并不相同。目前,常用的逆向技术手段包括使用IDA Pro、Ghidra等国外反编译工具进行逆向分析和人工比对。此类反编译工具的缺点是基于传统静态数据流分析技术,大多依赖于人工选定的特征,对代码的语义理解不足,在跨平台、跨架构、跨编译器、跨版本或跨优化级别的复杂场景下反编译效果不佳,反编译得到的(伪)源代码结果可读性较差,需要专业技术人员结合经验分析,耗时且成本高昂。且更易产生司法争议。

图1:IDA工具反编译产生的伪代码可读性较低,难以准确比对分析
大模型为二进制文件分析带来全新思路

近期,清华大学华清未央团队开发了国际首个机器语言大模型MLM(Machine Language Model),该技术有效解决了二进制文件智能化分析难题,为软件版权保护工作带来了全新的思路。

目前市场上流行的通用大模型主要针对自然语言,无法处理机器语言(二进制代码,网络空间各种软件最终执行的状态)。华清未央MLM采用创新的模型架构进行自主训练,在超过100T高质量的数据集、330亿模型参数的基础上,自主研发了专门针对机器语言的大模型。机器语言大模型根据程序编译/运行特性,自动化实现数据生成、标注和对齐;通过对齐机器语言-自然语言-源代码,结合机器语言特性设计模型架构,使其对于二进制语言的理解能力对标人类专家,且效率更高,促使传统依靠规则为基准的软件逆向工程与二进制代码分析等技术,向自监督学习、二进制代码理解的方向进行转变。其核心技术路线是通过将二进制代码与其对应的自然语言解释进行对比学习,从而有效地捕获二进制代码的语义信息,支持代码语义相似性精准判定,甚至可以转写出语义相似的源代码。

在一个二进制文件中,代码通常由许多独立的函数组成,每个函数执行特定的任务,还存在着代码跳转关系等。机器语言大模型优化传统大模型架构设计,通过融入代码跳转关系及引入对比学习技术,能够更深入地分析二进制文件,抽取各函数的语义特征,并转化为可量化的嵌入向量。通过测量这些向量之间的相似度,能够准确地评估不同函数之间的语义相似性。

图2:修改模型设计,融入代码跳转关系[ii]

图3:利用对比学习技术,使得语义相似的二进制代码embedding接近[iii]

图4:零样本推理实现代码语义的理解 [iv]

这种细致到函数级别的分析方法,不依赖源代码或调试信息,可以达到与人类意图对齐的效果,实现对代码语义的理解。基于此能力,可以识别和量化代码的重用情况,解决二进制代码信息缺失和语义理解困难等难题,突破软件逆向分析技术面临的瓶颈,进而生成更接近原始高级语言代码的反编译结果,能够自动恢复代码和数据结构,理解代码语义,进行代码语义层面相似性的判定,克服二进制代码差异大和源代码缺失的问题。从根本上解决了二进制文件比对难题,有效识别出潜在的抄袭行为和代码重用情况,为软件版权保护提供了强有力的支持。
机器语言大模型在版权保护场景应用广泛

机器语言大模型MLM封装了软件逆向、代码检测、版权保护、代码转写等平台。软件版权保护分析平台能够深入分析二进制代码,它不仅有助于辅助代码的优化和重构工作,还能满足用户在软件版权保护方面的多样化需求,如侵权检测、侵权风险评估、代码优化等。

1、软件侵权检测场景 

在某大型企业发现市面上有一款与其核心产品功能高度相似的闭源软件时,难以通过源代码对比进行维权。通过使用软件版权保护分析平台,该企业上传自研核心产品的二进制文件和具有高相似功能的疑似侵权软件二进制文件。平台通过提供函数级别细粒度的分析,计算文件相似性对比和软件相似度。最终生成详细的相似性报告,为企业提供可靠的依据支持进行法律维权。

图5:直接向软件版权保护分析平台上传二进制程序
图6:软件相似度对比结果总览,二进制文件相似度


图7:二进制文件函数内容、函数相似度对比详情

2、知产合规风险防控场景

在一款新产品问世时,软件开发公司希望确保整个软件的代码的知识产权是无权利争议的。但是在开发实践中,程序员个人、受委托开发者,或者被收购对象的行为并不完全可控。若某一环节存在抄袭他家代码的情况,由于无法取得竞品或者类似产品的源代码进行比对,公司无有效手段发现此类风险,可能在不知情的情况下发生侵权,从而面临着巨大的法律风险。此时,公司可以利用软件版权保护分析平台,将自研软件与竞品或者类似产品的二进制文件进行比对,有效防控知识产权方面的法律风险。

3、开源代码复用检测场景

开源码代码污染是软件公司需要极力避免的问题。实践中,大部分公司都会注意保护己方的源代码不被泄露。但在软件开发过程中,时常发生程序员有意或无意混入他人代码或开源代码的情况。目前,采用强传染性GPL协议的开源项目正在成为主流。一旦公司的产品中混入此类开源代码,则可能导致整个项目被传染,进而需要被强制开源,后果极其严重。

因此,软件公司希望有一种可靠的方式确保自研软件中不包含开源代码。以往,这一问题只能通过提高程序员的自觉性,或要求程序员出具书面保证来解决,但实践效果并不好。程序员为提高开发效率,依旧我行我素的进行代码抄袭,给企业经营带来极大风险。在机器语言大模型技术出现后,软件公司可将自研软件与开源代码二进制文件上传至MLM大模型软件版权保护分析平台,通过基于二进制文件相似性对比技术,提取二进制函数的语义、结构特征,得到函数的相似性,能够帮助开发团队识别潜在的高代码复用问题,从而采取相应措施杜绝或减少开源代码在自研软件中的占比,提高信息创新度,有效保障产品的独创性和知识产权安全。

4、供应链安全与审计场景

在软件供应链管理中,企业经常会面临来自供应商和合作伙伴的软件交付。使用软件版权保护分析平台上传自研软件与已知漏洞软件进行对比,从而得出相似性,可以得知自研软件的安全概况,基于分析结果指导安全人员采取进一步的安全操作,例如加强代码审查、进行漏洞修复或者重新评估供应商的安全合规性,可以制定更有针对性的安全策略和决策。

下一步,天同律师事务所、无讼科技将与华清未央成立联合实验室,进一步优化机器语言大模型在软件版权保护领域的应用,为相关从业者提供更好的服务,为版权保护以及风险防控工作带来全新的体验。目前已开放软件版权保护分析测试平台,欢迎试用并给我们提出宝贵意见。

注释:

[i] i2023-12-22,北京知识产权法院发布六件计算机软件著作权民事案件典型案例-北京法院网 (bjcourt.gov.cn)

[ii] “jTrans: Jump-Aware Transformer for Binary Code Similarity Detection.” ISSTA 2022

[iii] “CLAP: Learning Transferable Binary Code Representations with Natural Language Supervision.” ISSTA 2024

[iv] “CLAP: Learning Transferable Binary Code Representations with Natural Language Supervision.” ISSTA 2024


“天同网事”栏目由邹晓晨律师主笔/主持,本栏目深入研究互联网产业中竞争领域、知识产权领域、信息安全领域的相关技术问题与法律问题,并致力于将其打造成一门全新的“边缘学科”。我们希望借此栏目与法律同行和互联网产业同行一起分享资讯,碰撞观点,传播知识经验。如您有任何想法、意见、建议,欢迎点击文末留言。

查看近期文章,请点击以下链接:


天同诉讼圈
商事诉讼的圈儿
 最新文章