一种针对分组密码软件的APT 后门及其防范*

2021-03-19 06:16董永银祝烈煌丁瑶玲
密码学报 2021年1期
关键词:密文后门密钥

王 安, 董永银, 祝烈煌, 张 宇, 丁瑶玲

1. 北京理工大学 计算机学院, 北京100081

2. 密码科学技术国家重点实验室, 北京100878

3. 中国人民解放军61206 部队, 北京100042

1 引言

随着计算机技术及信息化的不断发展, 计算机软件已经成为人们生活工作中不可缺少的辅助工具, 成为信息社会实现的基础. 近年来, 利用软件后门窃取重要信息的攻击事件不断被爆出, 引发人们对软件安全使用的担忧, 现阶段软件后门已成为保障重要基础设施信息安全的焦点之一.

所谓软件后门, 就是在设计开发阶段, 程序员在软件中创建了隐秘的访问通道或控制指令, 以便在未来能够便利地绕过软件固有的访问控制权限来访问软件或实施控制行为. 其原本目的是在各种实际应用场景下调试复杂的应用程序时, 可以降低调试的困难程度. 随着时间的推移, 这项技术发生了变化, 其目的也变得不是那么的单纯. 部分程序员或厂商故意设置了后门漏洞, 将其作为应用程序和系统中安全的突破口, 来上传一些病毒、木马、蠕虫等恶意程序, 或造成隐私信息的泄露.

近年来, 针对各类软件的后门攻击日益增多, 攻击的广度和深度也不断延伸, 造成的损失在不断扩大.2013 年, Chen 等人提出了一种基于漏洞的后门程序, 诱导用户安装存在漏洞的软件, 并利用该漏洞实施后续攻击[1]. 2017 年, Bannier 等人发现了对称加密系统中的数学后门, 提出了类似AES 分组密码的后门算法提案, 并对该后门的危险系数进行了评估[2]. 2013 年, “棱镜门” 事件[3]曝光了美国政府利用软件后门对世界各国实施大规模信息监控. 2017 年, 攻击者利用病毒[3]感染了M.E.Doc (一款被乌克兰公司使用的热门会计软件) 的更新服务器, 导致欧洲多个国家的机场、银行ATM 机及大型企业和公共设施大量沦陷. 2017 年, 据《华盛顿邮报》报道,美国计划向俄罗斯的基础设施中植入数字炸弹, 一旦美俄关系恶化将随时引爆[4]. 2019 年, 约翰内斯堡市受到大量网络攻击, 黑客组织将恶意软件植入了与该城市有关的所有电子服务和计费系统中, 并勒索4 个比特币[5]. 据统计, 美国每年在软件安全测试上的投入已达到几十亿美元[6].

为了防止各类攻击, 重要数据系统的管理员往往会采用密码软件来保证数据的安全. 此类软件通常采用密码技术来实现数据加密、会话密钥协商、数据来源认证、消息完整性认证等安全功能, 以确保信息在存储、传送过程中的安全性. 不幸的是, 密码软件也是信息安全厂商开发出的普通计算机软件, 也需要经历开发、下载、安装、使用、维护的过程, 一旦其生命周期中被植入了后门, 将可以直接入侵进入它要保护的数据系统, 反而给攻击者带来了更大的便利.

对于恶意目的的软件后门, 隐蔽性是其最重要的特性. 后门的设计者往往处心积虑地使软件后门代码难以被发现, 并长期潜伏, 待满足特定时机时再进行激活, 具备这种特性的攻击被称为APT (Advanced Persistent Threat)[7]. APT 攻击是近年来被广泛关注的一类新型安全性威胁, 最初由美国空军提出, 主要利用网络、物理、欺骗等途经实现对特定目标的持续性攻击. APT 攻击的最大优势是能够实现长时间的潜伏和持续性攻击, 因此, APT 已成为最具威胁性的网络攻击之一.

然而, 软件后门的隐蔽性和其强大的功能之间往往是矛盾的, 这是因为: 一方面, 复杂的功能必然带来冗长的代码, 且需对原始软件进行过多修改, 从而导致其代码特征的变化很容易被发现; 另一方面, 一些具有明显危害功能的行为特征很容易被杀毒软件察觉.

本文中, 我们结合密码学、差分故障分析、逆向分析、APT 攻击等技术, 提出了一种面向分组密码软件的APT 后门植入方案, 解决了软件后门隐蔽性和功能强大之间的矛盾问题. 该APT 后门的主要特点如下:

• 植入代码的隐蔽性强. 该后门主要对原始软件做两处修改, 其一是修改分组密码运算过程中特定轮的少量比特, 用于实施差分故障分析; 其二是用少量判断语句和获得系统状态的代码来实现激活条件, 这两处的代码量通常很小.

• 激活时的表征不明显. 首先, 利用APT 长期潜伏的原理, 该后门仅仅在某一条件满足时才会激活,该条件可以设定为特定时间、特定文件名等隐蔽条件. 其次, 该后门激活后, 会执行普通的加密功能, 以及带有比特翻转故障的加密功能, 但无论是正确加密还是错误加密, 它们都是该软件的日常工作行为, 因而不易被察觉.

• 植入方式简单. 利用软件逆向分析技术, 可在软件中精准定位到分组密码运算的某个特定轮. 后门植入方式很简单, 仅仅将此处的几个比特进行“有条件” 翻转, 即可使攻击者获得有效的正确密文和错误密文.

• 破坏性强. 由于该软件后门可以直接恢复分组密码算法的密钥, 且触发条件少, 生效时间短, 潜伏时间长, 不易被防火墙及杀毒软件查杀, 这些功能均给数据系统的机密性、完整性带来很大影响.

2 预备知识

2.1 软件后门的实现方式

软件后门从实现方式上可分为文件捆绑、插入捆绑、代码植入三种类型。

(1) 文件捆绑

文件捆绑[8]是一种比较传统的方法, 就是利用捆绑器软件, 将单独的后门软件直接附加到正常软件的后面, 比如迷你小游戏、办公软件等, 当正常软件被执行的同时, 后门软件也同时被执行. 这种方式很容易被杀毒软件查杀.

(2) 插入捆绑

由于每个应用程序内部都有一定的闲置空间可以利用, 后门程序可以直接插入正常程序的中间, 从而使正常程序看上去“原封不动”. 插入捆绑[8]相比于文件捆绑的方式, 被查杀的可能性很小, 更具有迷惑性和欺骗性.

(3) 代码植入

软件的设计者在编写软件时, 可能直接在软件内创建后门, 以便调试程序, 或在需要时发起攻击. 在不公开源码的情况下, 此类后门很难被发现. 另一方面, 非软件厂商的第三方开发人员能够对软件进行逆向分析, 并插入汇编形态的后门代码, 同样实现后门功能.

对于第(1) 种捆绑方式而言, 在计算机安装有杀毒软件的条件下, 后门比较容易被发现. 另外, 文件捆绑会造成原软件的大小发生明显变化, 尤其是后门程序越大, 变化越明显, 越容易被发现. 方式(2) 隐藏性较强, 如果再进行加壳处理, 可一定程度上躲过杀毒软件的查杀, 但是在后门激活时, 其异常行为可能会被杀毒软件发现. 方式(3) 的隐蔽性相对更强, 在软件源码未公开的情况下, 较难被发现和查杀.

2.2 差分故障攻击

差分故障分析(Differential Fault Analysis, DFA) 是对分组密码实施故障分析的主流方法, 是由Boneh 等人和Biham 等人于1997 年分别提出的[9,10]. DFA 通过向密码算法的特定位置注入故障, 用正确的加密结果和错误的加密结果进行比对来计算出密钥. Biham 等人针对DES 算法给出的差分故障攻击借助了比特翻转故障模型, 通过向DES 第14–16 轮中注入数十个有效故障, 即可恢复DES 算法的密钥[10]. 随后, 人们提出了针对AES 等其它分组算法的DFA 攻击[11–13].

本文我们以一款DES 软件为例来设计后门方案. 对于DES 算法的DFA 攻击, 故障出现在末轮比故障出现在中间轮时, 密钥恢复算法能够更加高效[14]. 由于软件逆向分析工具已十分成熟, 根据实际应用场景, 本文选择在DES 最后一轮输入的位置植入故障. 因为最后一轮的雪崩效应较弱, 因而可以通过较为简单的传播路线, 得到更有规律的错误密文, 用以分段来恢复密钥.

2.3 软件的逆向分析

以“代码植入” 的方式对源码未公开的计算机软件植入后门, 需要首先对软件的代码进行反汇编, 通过分析汇编代码来搞清楚其运行过程和各部分功能. 这种将软件从产品到设计的反向过程, 就是逆向分析.与源代码开放的软件不同, 用户无法快速修改已经编译成型的可执行文件, 也无法直观地获知软件内部的算法, 这就需要借助逆向分析工具, 从二进制机器代码翻译过来的汇编代码入手来分析程序, 分别推断其数据结构、体系结构、程序设计信息. 在大多数情况下, 软件代码较长、且程序结构复杂, 这导致逆向分析的难度通常很高, 因而在实际中需要寻找尽可能少的修改点, 来达到分析者的目的.

OllyDbg 工具是一款具有可视化界面的用户模式调试器, 它结合了动态调试和静态分析, 具有强大的反汇编引擎, 能自动分析函数过程、循环语句、字符串等. 本文中, 我们利用OllyDbg 工具对软件进行动态跟踪分析, 获知加密软件的加密流程, 并准确寻找到希望注入故障的位置.

3 一种基于差分故障分析的软件APT 后门

本文以一个具有DES 加密功能的软件为例开展讨论, 为了便于描述, 我们设定其为Windows 操作系统下的一个des.exe 文件, 它以文本文件的格式输入明文, 并以文本文件的格式输出密文, 与WinRAR 等软件类似, 其加解密的密钥可由用户输入的口令来生成.

3.1 整体流程

本文实施攻击的场景设定为: Alice 和Bob 是两个合法用户, 工作中需要对一些文件进行加密传输,所使用的软件为上述des.exe, 二人已通过安全渠道协商好口令, 该口令用于生成DES 加密使用的会话密钥K. 然而, Bob 在不安全的网络中下载了由敌手Eve 提供的des.exe 软件, 该软件被Eve 植入了后门.Eve 可以通过预留的后门来获得一些信息, 从而推导出Alice 和Bob 的会话密钥K, 图1 展示了具体流程:

阶段1: 后门植入

(1.1) Eve 下载正常的des.exe 软件, 用逆向分析技术为软件植入后门, 植入方法见3.2 节.

(1.2) Eve 诱导Bob 安装带有后门的des.exe 软件.

阶段2: 故障诱导

(2.1) Alice 请求Bob 以加密的方式将文件F 发送给Alice.

(2.2) Bob 在后门未激活的情况下使用des.exe 软件和密钥K 将文件F 加密为C, 并发送给Alice.

(2.3) Alice 向Bob 返回解密成功的确认消息, 但Eve 向Bob 实施拒绝服务攻击, Bob 无法获知该确认消息.

(2.4) Eve 选择在适合后门激活的时间段内(后门是通过时间激活的, 见3.2 节) 假冒Alice 身份, 向Bob 发送消息, 声称文件C 解密失败, 再次请求Bob 重新加密文件F 并再次发送.

(2.5) Bob 在后门被激活的时间段内使用des.exe 软件和密钥K 再次对文件F 加密, 得到错误的密文C′, 并发送给Alice.

(2.6) Eve 截获步骤(2.2) 和步骤(2.5) 中的密文C 和C′.

阶段3: 密钥恢复

(3.1) Eve 利用DFA 恢复DES 密钥K, 具体方法见3.3 节.

(3.2) Eve 用密钥K 从加密文件C 中恢复出文件F, 并恢复出从前Alice 和Bob 之间多次加密传输过的各个文件中的信息.

(3.3) Eve 继续监听Alice 和Bob 之间的加密信道, 从而获取更多信息.

3.2 后门植入方式和后门激活条件

在获得正式版的des.exe 软件后, 敌手Eve 可对该软件进行逆向分析, 在代码中找到其中DES 加密的第16 轮的位置, 并将其改为下列条件分支:

(1) 在后门未激活时, 执行正常的第16 轮加密.

图1 实现流程Figure 1 Implementation process

(2) 在后门被激活时, 将第16 轮的32 比特输入值R15的第2/6/10/14/18/22/26/30 比特进行翻转,并继续执行后续的第16 轮加密.

后门激活的条件可设定为经常发生、不易被发现、且易于受到Eve 控制的事件, 例如软件运行时的系统时间在20 点05 分到20 点15 分之间. 当Eve 选择在20 点05 分执行步骤(2.4), 响应速度较快的Bob 将以很大概率在10 分钟内将文件F 加密为C′, 从而让Eve 的计划得逞.

3.3 基于差分故障分析的密钥恢复

当Eve 获得由相同明文和密钥生成的正确密文文件C 和错误密文文件C′后, 可通过差分故障分析计算出第16 轮轮密钥K16可能的值. 其原理如下:

DES 算法加密得到的密文文件一般由多个分组构成, 对于正确密文C 和错误密文C′中的第一段64比特分组, 设出错位置发生在第16 轮输入位置R15的某1 个比特, 一方面, 该比特会直接影响到L16的1 个比特, 另一方面, 会影响到第16 轮的1 个S 盒(实际中可能会影响到1 到2 个S 盒, 为了简便描述,我们只讨论影响到1 个S 盒的情况, 影响2 个S 盒的情况与之类似), 进而影响到R16的4 个比特, 如图2(左) 所示. 对于第16 轮异或输入值中与该S 盒对应的6 比特v (设两次加密时分别为v1和v2)、以及第16 轮该S 盒的输出值y (设两次加密时分别为y1和y2), 攻击者可以通过两次加密密文中的L16和R16推导出v1和v2, 以及y1和y2的差分∆y, 如图2(右) 所示.

此时, 攻击者可对图中的6 比特密钥k 进行猜测, 遍历0 到63. 对于每个密钥猜测, 用已知的v1和v2输入到异或和S 盒中, 看其输出值的差分是否等于∆y. 若相等, 则表明当前密钥猜测可能正确; 若不相等, 则表明当前密钥猜测必然不正确. 通过这种筛选, 可排除掉大部分错误的候选密钥.

随后, 对密文的另一段分组也进行上述分析, 可进一步缩小候选密钥的范围. 重复这一过程多次, 即可最大化缩小k 的可选范围, 缩小计算量. 其它7 个S 盒对应的6×7 比特密钥也可用相同方法恢复, 从而恢复出DES 算法第16 轮的48 比特轮密钥的可能值. 最后, 再通过8 比特的穷搜, 即可获得DES 算法的56 比特原始密钥.

3.4 安全信道条件下的攻击流程

如果Alice 和Bob 之间的所有数据通信均带有消息来源认证, 则阶段2 中的步骤(2.4) 将无法实现.此时, 我们可将阶段2 的协议改为:

(2.1) Alice 请求Bob 以加密的方式将文件F 发送给Alice.

(2.2) Bob 在后门未激活的情况下使用des.exe 软件和密钥K 将文件F 加密为C, 并发送给Alice.

(2.3) Eve 使用拒绝服务攻击手段, 使Alice 无法收到加密文件C.

(2.4) Alice 再次向Bob 请求文件F. 但Eve 使用拒绝服务攻击手段, 拦截到该请求, 暂时不发送给Bob, 随后选择适合后门激活的时间段内将其发送给Bob.

(2.5) Bob 在后门被激活的时间段内使用des.exe 软件和密钥K 再次对文件F 加密, 得到错误的密文C′, 并发送给Alice.

(2.6) Eve 截获步骤(2.2) 和步骤(2.5) 中的密文C 和C′.

该协议中, Eve 借助两次拒绝服务攻击, 在安全信道下仍然获得了用于恢复密钥的密文C 和C′, 故而上述APT 后门攻击仍然成立.

4 实验与对比

4.1 定位故障注入位置

为了获知加密软件des.exe 中与DES 算法相关的执行流程, 并定位加密算法最后一轮的输入位置, 我们利用软件逆向工具OllyDbg 对该软件进行分析. 在没有源代码的情况下, 我们动态跟踪代码的执行, 查看寄存器和栈的内容, 可以得到程序执行中间结果的一些反馈. 当des.exe 软件导入逆向工具OllyDbg后, 程序运行指针直接停在了程序的入口点. 如图3 所示.

在导入待分析软件后, 我们对其进行动态与静态相结合的分析. 首先查看某些具有特定语义的字符串是否出现在软件中用. 我们利用OllyDbg 字符串查找功能, 获取了软件在编写过程中所使用的所有字符串, 发现了一些变量定义的信息, 如plaint、skey、in、kval、out、key 等字样, 如图4 所示, 我们猜测它们代表的是明文、源密钥、轮输入、轮密钥、轮输出等含义.

随后, 我们对程序的运行流程做了全面的浏览, 按快捷键F8 一步一步执行, 寻找相关信息. 在运行的过程中, 我们发现了main() 函数和des() 函数的位置. 如图5 和图6 所示.

找到des() 函数的地址, 就相当于找到了算法的起始位置. 进入该函数后, 继续单步执行, 可以发现在该函数下存在多个CMP 指令, 该指令很可能会用于判定当前执行的轮数是否已经达到16 轮. 最后, 我们锁定了一条有关16 的CMP 指令, 即cmp dword ptr [ebp-50], 10. 由此大致确定, 这条指令之前或之后的一小段程序可能是DES 的轮函数. 我们跟踪这段程序, 当循环的数值为14 时, DES 算法运算到达了第15 轮. 在该轮计算结束的位置, 就是我们要注入故障的位置.

图4 软件使用的字符串信息Figure 4 String information used by software

图5 main() 函数位置Figure 5 Location of main() function

图6 des() 函数位置Figure 6 Location of des() function

4.2 后门代码的植入与验证

OllyDbg 工具中显示的代码均为汇编代码, 因而在植入代码时, 我们也必须使用汇编语言才能满足要求. 我们的目标是实现在DES 加密算法的第16 轮输入R15处按照某个激发条件发生若干比特的错误.在添加代码时, 由于此处的空间有限, 我们无法在原有位置上直接添加后门激活条件和产生比特翻转的代码.

解决这个问题的方法是, 我们在程序后面的空白处增加后门代码. 具体方法是: 首先在原有位置添加一个跳转指令, 跳转到程序后部的一段NOP 代码的位置, 随后在此NOP 位置添加若干后门代码, 最后再跳转回原位置. 修改之后, 对该程序进行保存, 就成功实现了后门代码的植入.

最后, 我们运行该软件, 输入一个已知的密钥, 并用一个已知的明文文件进行验证, 在后门未激活时运行加密得到密文文件C、并在后门激活时运行加密得到密文文件C′, 通过对比C 和C′的两个L16之间有那些比特不同, 来验证后门注入的实际效果.

4.3 密钥恢复

通过以上技术操作, 我们成功获得了同一个明文文件F 的两个不同密文文件. 随后我们编写了DES算法差分故障分析的密钥恢复程序, 以恢复第16 轮子密钥K16和源密钥K. 在实验中, 我们实际使用的密钥K 为0x7C 6C 6C 7C 7C 6C 6C 7C, 第16 轮轮密钥K16为0xF1 BE 26 D9 DF 78, 第一个S 盒对应的6 比特密钥值为111100. 我们尝试对该S 盒对应的6 比特密钥进行恢复, 过程如下:

(1) 单明文减少单S 盒密钥空间

首先, 我们采用第一个分组的明文进行了一次分析实验, 相关信息为:

明文: 0x28 D4 D3 A6 A4 74 2A D7

正确密文: 0x85 8E 27 2B 7D 93 0D C7错误密文: 0x84 DF DC 3B 2D C6 F6 D7

用DES 算法的原理,我们利用密文计算出图2 中v1的值为二进制 010100,v2的值为二进制 011100,∆y 的值为二进制 1001, 进而采用差分故障分析得到第16 轮的第一个S 盒对应的密钥候选值为{0x12,0x1A, 0x31, 0x34, 0x39, 0x3C} , 当前这组密文对可将第16 轮的候选密钥值从64 个直接缩减到6 个.

(2) 多明文缩减单S 盒密钥空间到最优

随后, 我们又采用了一个明文的分组来做第二次分析实验, 相关信息如下:

明文: 0x99 22 BC DC BB 3F 2E 78

正确密文: 0x07 99 4D 91 F9 DB 5F BF

错误密文: 0x43 D8 B3 C4 ED CB A5 AA

在第二次分析实验中, 第16 轮的第一个S 盒对应的候选密钥值为{0x34, 0x3C}, 与第一次实验结果取交集, 第16 轮的候选密钥值再次缩减, 从6 个减少到2 个. 根据差分分析的原理, 候选密钥减少到2 个已经达到最优解.

(3) 多明文缩减全部S 盒密钥空间到最优

采用同样的方法,我们共使用了0x28D4D3A6A4742AD7,0x9922BCDCBB3F2E78,0x474B0436427 92BD6, 0x2339F0280D319332, 0x032C6844C789D02C 共五组明文信息, 分别将8 个S 盒对应的6 比特候选密钥缩减到了2 个. 8 个S 盒对应的可能密钥分别为: {0x34, 0x3C}, {0x13, 0x18}, {0x30, 0x38},{0x26, 0x2E}, {0x36, 0x3E}, {0x15, 0x1D}, {0x35, 0x3D}, {0x30, 0x38}.

(4) 恢复源密钥

目前, 恢复第16 轮轮密钥值K16的搜索空间已缩减到28, 由于从K16搜索源密钥K 的空间为28,因而我们最终通过216次搜索, 恢复了DES 算法的源密钥0x7C 6C 6C 7C 7C 6C 6C 7C, 大约耗时1 秒钟.

4.4 后门方案对比

我们将本文设计的APT 后门与现有技术进行对比, 如表1 所示. 与捆绑式后门、传统植入式后门相比较, 本文提出的APT 后门不会留下捆绑痕迹, 篡改的代码长度短, 隐蔽性强, 激活表征不明显, 执行时间短, 因而具有更强的威胁性.

5 APT 后门的可行性与防范探讨

5.1 APT 后门的可行性

软件后门在实践中是否可行, 主要取决于它是否能够绕过后门检测工具的查杀. 目前学术界对这种“绕过” 技术的专业研究较少, 现有软件后门普遍采用两种思路来绕过检测工具, 其一是采用APT 手段提前获取权限, 其二是通过一些隐蔽手段来确保不会被检测工具发现.

表1 后门方案对比Table 1 Comparison among backdoor schemes

随着网络武器的发展, APT 已演变为一类防不胜防的攻击手段, 后门在与APT 相结合后, 通常会在一段时间内运行一个简单的恶意程序, 在确保自己不会被发现后, 长期蛰伏, 并选择合适的时机进行强力攻击. 2019 年10 月, 黑客组织APT41 对广泛使用的TeamViewer 办公软件的后台服务器实施了网络攻击, 直接导致大量用户电脑上安装的TeamViewer 软件带有恶意后门, 黑客们能利用该后门来访问和控制安装了TeamViewer 的客户端[15]. 有证据显示TeamViewer 后台服务器早在很久之前就被黑客攻陷, 黑客正是利用这种“持续性” 威胁, 潜移默化地对用户隐私进行侵犯. 该案例足以说明APT 攻击不仅仅发生在国家关键基础设施中, 同时也发生在我们身边.

一些传统的隐蔽手段也能以一定概率绕过检测工具, 具体效果需要看后门固有代码的隐蔽性、以及运行过程中的隐蔽性. 例如本文提出的后门方案之所以能够绕过一些检测措施, 主要是因为其植入代码短、植入方式简单, 其代码具有较好的隐蔽性. 同时, 该后门在激活时的表征不够明显, 不会产生额外的网络数据包或其它敏感数据流, 所以它可以绕过一些基于数据流量变化分析的实时检测工具.

本文提出的APT 后门方案正是结合了上述APT 手段和隐蔽性的特点, 因而可以绕过检测工具的查杀. 需要说明的是, 本文研究APT 后门、分析其可行性, 当然不是为了蓄意对计算机系统进行破坏, 而是希望学术界、产业界、普通用户都能够足够重视APT 后门, 提高防护意识, 加强防护技术的研究.

5.2 APT 后门的防范技术

软件后门已被人们研究多年, 学术界已提出了许多防范措施. 然而, 本文提出的APT 后门具有很强的隐蔽性, 很可能绕过杀毒软件的监控, 其防范对策可以从下列几点进行考虑:

(1) 安全软件厂商应进行严格的版本控制, 其官网应提供所有版本的Hash 校验值.

(2) 用户在下载软件后, 应从可靠渠道获得其Hash 校验值, 并对软件完整性进行验证.

(3) 用户仍然有必要安装杀毒软件和防火墙, 并及时进行版本升级. 一方面, 它可以有效规避软件中的一些恶意行为的发生; 另一方面, 也可以杜绝一些靠第三方病毒下载的后门软件.

(4)在必要时, 信息安全测评机构和关键基础设施的信息安全员应针对特定软件(如进口操作系统、进口应用软件等) 进行深入地安全检测.

(5) 检测人员可结合静态检测[16,17]、动态检测[16,17]、数据挖掘[18]等先进的智能化检测技术, 与APT 后门进行对抗.

(6) 用户需具备高度警惕的信息安全意识, 不从不可靠的网站下载软件, 也不相信来路不明的软件.

(7) 关键基础设施的信息系统管理员或其主管部门应制定信息安全规章制度, 强制要求计算机操作员或用户按照规章制度来进行操作.

单独实现上述防范措施, 未必能够百分之百抵抗APT 后门的攻击, 实际中通常需要多种方式相结合,以达到最理想的防范效果. 例如用户安装软件时一般不愿意做Hash 校验, 但主管部门可以制定规章制度,强制要求厂商必须提供Hash 校验值, 并要求用户安装软件时必须进行Hash 校验.

6 总结

本文基于分组密码算法的差分故障分析原理, 设计了一个具有很高隐蔽性的软件后门, 可在软件使用过程中隐蔽地激活, 并协助敌手恢复软件使用者的会话密钥, 我们将其称为APT 后门. 我们借助逆向工具OllyDbg 对DES 加密软件进行了逆向分析实验, 在软件中仿真实现了该后门, 并借助后门输出的故障密文, 成功恢复了DES 算法的密钥. 最后, 我们探讨了APT 后门的防范对策. 在实际应用中, DES 算法的加密软件已经无法满足某些方面的要求, 加大其它算法的研究力度已刻不容缓. 因此, 下一步我们将考虑更多密码算法的后门植入与检测, 比如3DES、AES、SM4 等. 同时, 实际中的软件通常由多种不同的编译器生成, 并可能采用不同加壳工具进行加壳, 这也会给APT 后门的植入和检测带来新的挑战. 后续我们会尝试将本文的方法应用到实际的第三方软件中, 继续探讨该后门在不同算法、不同实现场景下是否有效, 并提供相应的防范措施.

信息安全的攻和防总是相辅相成、共同发展的, 随着信息安全检测技术的飞速发展, 后门隐藏[19]技术也在不断提高, 单一的检测方法可能无法保障软件的安全性, 需要将多领域、多行业、多维度、多角度的分析方法进行整合, 这是一个值得长期研究的领域.

猜你喜欢
密文后门密钥
一种支持动态更新的可排名密文搜索方案
幻中邂逅之金色密钥
幻中邂逅之金色密钥
基于模糊数学的通信网络密文信息差错恢复
嵌入式异构物联网密文数据动态捕获方法
一种新的密文策略的属性基加密方案研究
Android密钥库简析
某工程车后门锁紧装置的匹配设计
这个班还不错
没睡醒