新闻动态
news information
新闻动态
news information
正安研究院丨密评中渗透测试方法应用实践
2023年10月01日

01{ 概 述 }

商用密码应用安全性评估,简称“密评”,是指在采用商用密码技术、产品和服务集成建设的网络和信息系统中,对其密码应用的合规性、正确性和有效性进行评估。伴随国产商用密码技术正确使用产生的良好防护效果,越来越多的用户寄希望于通过开展密评工作,保障网络和数据安全。

当前,新技术不断涌现,量子密码技术、协同签名技术、超晶格通信等都为测评带来了挑战,使得密码测评变得更加困难。物联网、大数据、工控等应用在实际密评过程中也存在新的挑战。因此,不能仅限于使用Wireshark、tcpdump这类常规的测评工具,还需要结合最新的技术和方法,探索新的测评方法。渗透技术作为一种安全测评手段,可以帮助密码测评过程中发现系统的更多安全问题,如使用的密码模块存在高危漏洞、OpenSSL存在Heartbleed漏洞、自编码密码实现存在密钥硬编码漏洞、API接口存在未授权访问漏洞等。如果仅使用目前常用的算法分析、协议分析、数字证书检测工具,是无法发现这些问题的。

在监管部门组织的常态化实战攻防演练中,大量信息系统因存在上述漏洞隐患导致系统被攻陷、海量数据可被获取。因此,我们要更加重视评估过程中渗透测试技术的应用。

02{ 测评方法 }

商用密码应用安全性评估使用的测评方法包括:访谈、文档审查、实地查看、配置检查。工具测试涉及的测评工具大致分为两类:通用测评工具、专用测评工具。其中通用测评工具包括协议分析工具、端口扫描工具、逆向分析工具、渗透测试工具、专用测评工具。专用测评工具:算法和随机性检测工具、密码安全协议检测工具、密码应用检测工具。如图所示:

测评工具体系

通用测评工具是指在开展商用密码应用系统安全评估过程中,不限定应用于某一特殊领域、行业,具有一定普适性的检测工具。专用测评工具用于检测和分析被测信息系统的密码应用的合规性、正确性和有效性的一部分或全部环节,可以简化测评人员的工作,提高工作效率。专用测评工具的检测结果能够作为测评人员分析判断被测信息系统的密码应用是否正确、合规、有效的可信依据。

序号
工具类型
工具名称
工具用途
1 通用工具
协议分析工具
协议分析工具主要用于对常见通信协议进行抓包、解析分析,支持对常见的网络传输协议、串口通信协议、蓝牙协议、移动通信协议(3G、4G)、无线局域网协议等进行协议抓包解析。捕获解析的协议数据应能够作为测评人员分析评估通信协议情况的可信依据
2 端口扫描工具
端口扫描工具主要用于探测和识别被测信息系统中的VPN、服务器 密码机、数据库服务器等设备开放的端口服务,以帮助测评人员分析和判断被测信息系统中密码产品和密码应用系统是否正常开启密码服务
3 逆向分析工具
逆向分析工具是指在没有源代码的情况下,通过分析应用程序可执行文件二进制代码,探究应用程序内部组成结构及工作原理的工具,一般可分为静态分析工具和动态分析工具。逆向分析工具主要用于对被测 信息系统中重要数据保护强度的深入分析。支持对常见格式文件的静态分析,以及对应用程序的动态调试分析
4 渗透测试工具
渗透测试工具主要用于对被测信息系统可能存在的影响信息系统密码安全的风险进行检测识别,支持对被测信息系统开展已知漏洞探测、未知漏洞挖掘和综合测评,并尝试通过多种手段获取系统敏感信息。测评结果能够作为测评人员分析评估被测信息系统密码应用安全的可信依据
5 算法和随机性检测工具
商用密码算法合规性检测工具(支 持SM2、SM3、SM4、ZUC、SM9等商用密码算法)、随机性检测工具、数字证书格式合规性检测工具。
6 密码安全协议检测工具
IPSec/SSL协议检测工具等
7 密码应用检测工具
商用密码基线检测工具、数据存储安全性检测工具、流程不可抵赖性检测工具、密码实现漏洞扫描工具、密码安全配置检查工具等

03{渗透测试在密评中的应用}

1、渗透测试方法

密码测试过程涉及多种密码应用技术,需要评估的不仅仅是技术的使用,还包括技术使用的是否合规、正确、有效。商密测评过程中仅通过抓包或者配置查看是无法全面判定系统使用的密码技术是否正确、有效,密评过程中可使用的渗透测试方法:

(1)白盒测试:测试者对应用程序的代码和内部结构有全面的了解,通过检查代码和应用程序的内部工作原理,识别安全漏洞,比如测试者检查应用程序代码,发现密码存储在明文中,这可能会导致数据泄露的风险。在实际密评中,通过前端F12代码审查极有可能发现前端口令加密的方法。

(2)黑盒测试:测试者不了解应用程序的代码和内部结构,只通过外部观察和操作,模拟攻击者对应用程序进行攻击,比如测试者尝试使用常见的密码猜测技巧,如使用“password”作为密码,试图登录应用程序。因为现在有很大一部分密码产品实际应用中使用用户名、口令的方式登录,所以极有可能通过暴力破解方式获取密码机等密码设备的权限,这样即使数据库存储了密文数据数据也可通过密码机进行解密。在实战攻防演练中,大量网络运营者因为只使用这种弱认证机制,造成系统失陷。

(3)灰盒测试:测试者对应用程序的代码和内部结构有一定的了解,同时也通过外部观察和操作,以识别安全漏洞,比如测试者了解应用程序使用SQL数据库存储数据,并使用SQL注入技巧试图破坏数据库完整性。现在密改的大部分系统使用高危算法进行存储,通过SQL注入获取了密文后,通过暴力破解也可以获得数据原文,但这种渗透方法只适用于高危算法,比如测评过程中常用的MD5算法、SHA1算法、DES算法。

(4)漏洞扫描:通过自动化工具,扫描应用程序代码和网络,识别安全漏洞。比如测试者使用漏洞扫描工具,扫描应用程序代码和网络,识别常见的漏洞,如跨站脚本漏洞。假设一个公司使用加密协议加密其云存储数据。如果该公司的应用程序存在漏洞,攻击者可以利用该漏洞提取加密密钥。一旦获得了加密密钥,攻击者就可以解密数据,从而恶意利用这些数据。

以上这些方法可以结合使用,商用密码测评的目的就是为了保护重要数据,如果重要密码产品均使用,但还存在跨站脚本漏洞以及后门漏洞这种问题,也会使系统安全性降低。

2、漏洞检测

(1)Heartbleed是一种常见的安全漏洞,主要影响TLS协议的实现。通过渗透测试技术,可以检测系统是否存在Heartbleed漏洞。该漏洞由于在实现TLS协议心跳扩展时缺少边界检查,导致缓冲区读取过多,可能泄露敏感数据,因此必须针对这种漏洞进行检测。

渗透过程:

1)执行扫描工具,以确定系统是否存在Heartbleed漏洞。(扫描工具包括Nessus、OpenVAS等);

2)利用Heartbleed漏洞,发送心跳请求,以便从系统缓冲区读取数据;

3)分析缓冲区中读取的数据,以确定是否泄露了敏感信息,如密码、用户名、证书等;

4)利用泄露的数据进行攻击,例如对系统进行攻击、窃取数据等。

(2)POODLE漏洞,它影响TLS协议和SSL 3.0协议。POODLE漏洞是由于协议中的设计缺陷导致的,攻击者可以利用这个漏洞破坏加密通信并泄露敏感数据。为了确保系统的安全,POODLE漏洞必须被检测和修复。

3、密钥攻击方法

(1)Bellare等提出“算法替代攻击” ,用于刻画对称加密算法在实际部署时被篡改导致密钥渗漏的一种特殊攻击方法。该种攻击假设敌手可以控制加密算法的实际部署, 在算法中植入特定的后门, 使得算法在保持原有加密功能的情况下, 将用户密钥信息嵌入到可以正常解密的密文中。攻击者在捕获到密文之后, 就可以利用后门信息从密文中分析还原用户密钥信息, 从而解密密文得到明文信息。因此系统的密改过程一定要使用具备国密产品认证证书的产品,通过开源代码实现存在极高数据泄露风险。

(2)攻击者直接从系统存储或者传输通道中窃取密钥。攻击者可以通过利用软件的漏洞, 直接从系统存储或者网络中获取密钥信息, 实施密钥窃取攻击。举个例子,在某些系统中,加密密钥往往存储在系统配置文件中,攻击者可以直接读取配置文件中的密钥信息进行密钥窃取。渗透测试主要通过模拟敌手的行为,评估系统安全性,对于密钥泄漏的风险评估也是必要的一部分。通过渗透测试可以识别系统存在的漏洞,并对其进行修复,从而保证密钥的安全性。实际测评过程中就会发现有的系统实现存储机密性时使用的密钥明文存储在代码中,密钥泄漏那么重要的鉴别数据、个人信息、重要业务数据都极大可能被泄漏。

(3)TLS协议中,会话密钥存储在客户端和服务器的内存中,不是持久的。它们在建立连接时生成,并用于在会话期间加密数据。连接关闭时,会话密钥将被丢弃。如果攻击者成功地转储了客户端的内存,他们可以访问会话密钥,并可能解密通过该密钥加密的数据。客户端内存的转储方法包括通过安全漏洞实现,例如远程代码执行(RCE)漏洞或缓冲区溢出漏洞,攻击者可以远程访问客户端内存。通过恶意软件,例如后门或间谍软件,可以捕获客户端内存中的数据。

4、渗透测试场景

(1)目前很多系统实现数据库加解密功能并未调用密码机去实现,在应用系统数据库或配置文件中存储密钥,并通过自实现算法进行数据的加解密,这种情况有很大风险导致密钥泄漏,即使密钥密文存储,也存在在内存中泄露的风险。举个例子,某系统存在"Spring Actuator Heap Dump vulnerability" ,这个漏洞会导致某些特定的版本的Spring Actuator恶意攻击者访问或下载系统中的堆转储文件。这些转储文件可能包含敏感信息,例如应用程序凭据,隐私数据等。如下图所示,就是某个系统内存中泄漏的身份鉴别信息。

这种情况就是密钥明文存储且密钥存储位置不合理,正常密改系统,密钥信息应该保存在密码模块或硬件密码设备中,内存中出现密钥信息,说明相关计算通过自实现代码实现,未调用密码机,导致计算过程中涉及的重要密钥信息裸漏。

(2)用户的身份鉴别信息在网络中密文传输,抓取的数据包中也是密文,但这并不代表加密后传输的身份鉴别信息就是安全的,因为从目前测评经验来看身份鉴别信息基本上通过前端JS代码实现加密,大部分的开发者将加密用户身份鉴别信息的相关代码及密钥存储在前端JS中,通过渗透技术、打断点、代码审计等就可以发现解密密钥,对重要数据加密最重要的密钥丢失,那么攻击者就可以对从网络流量中获取的用户身份鉴别密文数据进行解密,进而获得合法用户的账号,进而冒充合法用户访问系统。这种情况就是非法者利用合法身份进入系统,造成重要数据的泄漏。

(3)在密改系统中大部分用户通过智能密码钥匙登录系统,通过签名验签机制实现,但这种身份鉴别机制是否有效不能仅仅通过抓取数据流量查看签名验签服务器日志来进行,还需要通过渗透测试来判定这种身份鉴别机制是否可以绕过,如果可以绕过,那么就说明系统的身份鉴别机制存在问题,比如说,应用程序第一层身份鉴别结束后会生成token值或session ID,使用Session ID来识别已经登录的用户,并将Session ID存储在Cookie中。如果攻击者发现了一个漏洞,允许他们通过构造恶意请求来欺骗应用程序,以为他们是已经登录的用户,那么他们就可以直接访问受保护的资源。

(4)现在大多数密改系统数据存储的机密性、完整性是通过接口调用密码机实现,这种机制存在的问题就是如果攻击者获得应用权限去调用密码机,那么数据库存储的数据就不再是看不透的,重要数据密文存储在数据库表中确实是数据保护一种措施,但如果这种保护机制被渗透者利用,那么这个防护就不再有效,所以要对系统进行渗透测试,找到漏洞,并进行修补,以防攻击者通过其他漏洞获得系统权限,进而导致数据的泄漏。

04{典型案例}

本文以XX系统为例,介绍一下在商用密码测评过程中使用的相关测评方法与相关证据截图。

1、系统简介

XX系统通过XX技术与闭环控制相结合的方法,解决XX技术中信息落地难、转化战果难等问题。通过XX技术与侦查情报的深度融合,实现人员身份特征及生物特征的双重标识与刻画,依托大数据平台拓展刑技比中人员的落脚点、生活圈、关系网等,智能辅助侦查人员“定案”“定人”,破解XX技术工作“最后一公里”难题,提高技术员的成就感和侦查员的获得感。被测系统用户分为XX用户、系统管理员、运维管理员。所有用户均通过XX专网访问被测系统。

2、密码应用情况

(1)网络层

被测系统与XX用户及系统管理员之间部署符合GB/T38636-2020《信息安全技术传输层密码协议(TLCP)》标准的 SSL VPN安全网关,对通信实体进行身份鉴别,并建立安全的数据传输通道,基于SM4算法、SM3算法实现通信过程中数据的机密性和完整性保护。建立安全连接过程如图所示:

网络层密码应用流程


(2)应用层

XX用户通过智能密码钥匙访问部署在应用服务器上的业务应用, 利用统一身份认证系统实现对用户身份的认证,涉及的密码应用有用户身份鉴别实现。具体业务流程如图所示:

签名验签流程

1)XX用户插入智能密码钥匙访问应用系统首页时,发送登录请求;

2)应用系统将随机数发送至用户PC终端;

3)XX用户PC终端使用非对称的SM2签名算法私钥对随机数进行签名,将签名数据、证书(承载非对称 SM2 签名算法公钥)发送至应用服务器;

4)应用服务器将签名数据和证书上传至统一身份认证系统;

5)统一身份认证系统利用用户PC终端的非对称SM2签名算法公钥对签名数据进行验签,并返回验证结果至应用服务器;

6)应用服务器将验证结果返回至 PC 终端。

在用户身份鉴别密码应用中,涉及的密钥为 SM2 签名算法公私钥,涉及的设备为智能密码钥匙和身份认证网关。

(3)重要数据存储应用工作流程

本应用场景下,应用系统调用密码资源池中的服务器密码机对重要数据进行存储保护,涉及的密码应用有重要数据存储实现。具体过程如下:

1)应用服务器向服务器密码机申请对称的SM4算法加密密钥;

2)应用服务器将重要数据上传至服务器密码机;

3)服务器密码机根据对称的SM4算法加密密钥对重要数据进行基于SM4算法的加密/SM2签名运算,将运算后的密文/签名值返回至应用服务器;

4)应用服务器将密文/签名值存储至数据库;

5)数据库向应用服务器返回存储结果。

系统调用服务器密码机申请密钥,并根据密钥对密文进行基于SM4算法的解密运算,然后将明文返回至用户。

重要数据存储机密性/完整性密码应用场景中,涉及SM4算法加密密钥,具体密码应用流程如下图所示:

重要数据存储流程

3、测评取证内容

(1)网络层取证结果

首先抓取网络层数据流量,使用Wireshark工具,抓取后分析源地址、目的地址是否属于被测的对象,属于被测对象则分析通信双方使用的协议、算法套件、证书等信息,如下图所示:

算法套件的核查

数字证书的核查

(2)应用层身份鉴别取证结果

1)用户通过智能密码钥匙访问系统,其中使用了签名验签技术,现场测评时需找到签名验签值,并通过算法检测工具验证签名验签机制是否正确。如下图所示:

签名验签过程

2)重要数据存储机密性:重要数据信息(个人信息、重要数据)等关键信息在数据库表中通过调用服务器密码机采用SM4算法加密存储,密钥信息通过密钥管理平台存储,密钥管理平台具备国密产品认证证书。

①应用对接密码机配置文件

②配置文件读取工具类


③密码服务器加解密工具类


④密码机提供密码接口定义

⑤对重要数据加解密代码

⑥数据库存储重要数据信息

⑦人员信息加解密

⑧人员ZWXX加解密

⑨ZWXX存储表

⑩应用系统调用服务器密码机解密数据包

⑪数据存储完整性接口对接代码


⑫数据存储完整性签名算法调用代码

⑬云管平台应用信息

⑭密钥管理界面(签名密钥、加密密钥)

05{ 总 结 }

本文通过实战攻防中常见纵向突破网络系统边界造成系统失陷为切入点,介绍了北方实验室技术团队在密评实践中渗透测试技术的应用。密评过程中除了使用Wireshark抓包和查看配置外,还需要具备其他重要技能,例如代码审计和渗透测试。可为相关测评人员开展密评工作时提供思路和方法借鉴。

由于笔者认识能力有限,难免存在不妥和错漏之处,恳请读者提出宝贵意见。

【 研究员介绍 】

李海涛

北方实验室正安研究院院长,资深安全顾问、攻防渗透专家,具有高级等保测评师、商用密码应用安全性评估师、注册高级渗透测试人员、注册信息安全专业人员、注册信息安全保障人员等执业资格,是中国密码学会密评联委会总体组成员。

【 正安研究院 】

正安研究院是北方实验室(沈阳)股份有限公司设立的技术研发机构,下设信创适配验证中心、渗透测试中心、商密应用中心、国家工程研究中心智造网络安全分中心等专门技术研究中心。正安研究院在探索网络安全领域前沿科技的同时,支撑北方实验室的技术创新与业务创新。

北方实验室是以网络安全检测评估为主营业务的网络安全服务提供商。公司是国家级专精特新“小巨人”企业、国家中小企业公共服务示范平台、国家高新技术企业、瞪羚企业,为辽宁省商密协会会长单位,拥有辽宁鲲鹏生态创新中心、辽宁省信创适配验证创新中心、辽宁省企业技术中心等多个技术创新平台。