[发明专利]面向密码代码的自动化程序敏感数据保护方法有效
申请号: | 202011402024.1 | 申请日: | 2020-12-02 |
公开(公告)号: | CN112528240B | 公开(公告)日: | 2022-08-09 |
发明(设计)人: | 张媛媛;金宣成;肖轩淦;贾淞淋;李卷孺 | 申请(专利权)人: | 上海交通大学 |
主分类号: | G06F21/12 | 分类号: | G06F21/12;G06F21/60;G06F21/62 |
代理公司: | 上海交达专利事务所 31201 | 代理人: | 王毓理;王锡麟 |
地址: | 200240 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 密码 代码 自动化 程序 敏感数据 保护 方法 | ||
一种面向密码代码的自动化程序敏感数据保护方法,通过预先在程序源代码上通过标记语句手工标记出原始的密钥材料及明文密文污点,通过LLVM编译器将程序源代码转换为LLVM中间语言代码;在LLVM中间语言代码上进行针对密码代码的静态敏感数据流分析,得到包含代码中的敏感缓冲区以及对应的对敏感缓冲区进行操作的代码;根据静态分析阶段输出的结果确定待修改的缓冲区的分配以及需要在高权限状态下执行的内存访问指令,并在此基础上进行隔离操作,并将变换得到的中间语言编译的同时链接上需要的运行时库,最终输出编译得到最终的保护后的二进制程序。本发明能够自动帮助确定需要保护的衍生密钥材料、中间缓冲区等数据结构和敏感数据。
技术领域
本发明涉及的是一种信息安全领域的技术,具体是一种面向密码代码的自动化程序敏感数据保护方法。
背景技术
保护程序中的敏感数据不被一些恶意攻击者通过程序内存漏洞进行攻击而泄露是很重要的任务,尤其是对于一些使用到密码操作的程序来说。内存破坏漏洞是目前由C程序编写的系统软件中一类典型的漏洞。根据内存破坏的目标,可以将此类攻击进一步分类为面向控制流的攻击和面向数据流的攻击。攻击者如果覆写的目标是程序控制流相关数据,例如函数返回地址以及函数指针等,则称其为面向控制流的攻击;攻击者如果覆写或者读取的目标是程序非控制流相关数据,例如密码学密钥或者身份认证相关数据等,则称其为面向数据流的攻击,典型代表例如CVE-2014-0160(又名心脏滴血漏洞),攻击者能够通过OpenSSL库的漏洞中存在的漏洞泄露出使用OpenSSL的服务端程序里的敏感数据,可以泄露的数据包括例如有私钥、衍生密钥表等,这些数据的泄露进而可以导致通信内容解密或参与者身份伪造等后果,严重威胁信息安全。
对于面向控制流相关数据的攻击,目前已经有较成熟并且广泛应用的防御机制。对于面向非控制流相关数据的攻击,目前的保护方案还不够成熟。
程序中非控制流相关数据的保护通过内存隔离实现。内存隔离可以进一步分为进程间的内存隔离以及进程内的内存隔离,进程内的内存隔离可以做到轻量级高效率细粒度。对于进程内的内存隔离,已经有很多现有技术提供对隔离的基本原语方面的支持,但是现有技术不能做到自动化识别敏感数据。实际上,开发者不能很好地利用内存隔离原语来隔离程序中的敏感数据,例如密码程序逻辑中产生的潜在敏感数据,因为这是一项复杂而繁琐的工作,人工实现将极其容易出现遗漏或者出现错误。
发明内容
本发明针对现有技术存在的上述不足,提出一种面向密码代码的自动化程序敏感数据保护方法,在标记原始密钥材料及输入明文/密文的情况下,能够自动化帮助密码程序开发者确定其他需要保护的衍生密钥材料、中间缓冲区等数据结构,并通过中间语言代码变换隔离在整个程序运行时生命周期中出现的敏感数据,最终输出目标二进制程序。
本发明是通过以下技术方案实现的:
本发明涉及一种面向密码代码的自动化程序敏感数据保护方法,通过预先在程序源代码上通过标记语句手工标记出原始的密钥材料及明文密文污点,接着通过LLVM编译器将程序源代码转换为LLVM中间语言代码;再在LLVM中间语言代码上进行针对密码代码的静态敏感数据流分析,得到包含代码中的敏感缓冲区以及对应的对敏感缓冲区进行操作的代码;最后根据静态分析阶段输出的结果确定待修改的缓冲区的分配以及需要在高权限状态下执行的内存访问指令,并在此基础上进行隔离操作,并将变换得到的中间语言编译的同时链接上需要的运行时库,最终输出编译得到最终的保护后的二进制程序。
本发明涉及一种实现上述方法的系统,包括:预处理单元、面向密码代码的静态分析单元、中间语言代码变换单元以及二进制程序输出单元,其中:预处理单元与面向密码代码的静态分析单元相连并传输标有原始密钥材料及明文密文污点的LLVM字节码文件,面向密码代码的静态分析单元与中间语言代码变换单元相连并传输分析得到的代码敏感缓冲区、敏感缓冲区操作指令信息,中间语言代码变换单元与二进制程序输出单元相连并传输已经对敏感缓冲区完成隔离的字节码文件,二进制程序输出单元输出最终编译得到的二进制文件。
技术效果
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011402024.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种异种材料混合工艺电池包
- 下一篇:一种激光外差干涉仪解调系统