APP下载

面向智能自助设备安全防护产品的研究与突破

2022-11-17吴胜楠

现代信息科技 2022年20期
关键词:白名单机芯指令

吴胜楠

(广州广电运通金融电子股份有限公司,广东 广州 510663)

0 引 言

随着信息科技日新月异的不断发展,网络时代的新技术给予我们前所未有的冲击,自助设备终端的安全正面临着不停增加的多种形态威胁。极具专业性的恶意软件变种的爆发,业界迅速意识到传统防病毒的方式已不足以应对遇到各种威胁,这些恶意软件目标直接指向特定自助设备,专业掌握了行业流程漏洞获取非法利益,金融机构对于自助终端的安全需求日益提升,行业内急需全方位终端安全防护产品的研究突破。

1 安全防护产品整体解决方案

1.1 设计理念

本文所述的安全防护产品整体解决方案定位适用于ATM、VTM、STM 等各类智能自助服务终端设备、柜面系统的安全防护,全方位保障自助终端设备的安全,从安全策略、系统进程、移动存储介质、网络入侵防护、资源防护、系统升级等维度灵活根据用户具体安全需求予以应用,有效地防范自助终端平台各种威胁,保护资金安全和敏感数据,通过硬件及软件的改造,以达到资金交易安全可控的目的。

1.2 技术突破点

方案专门为自助设备终端安全量身定制,具备更多的特色功能,在确保系统安全同时对系统资源开销少,重点专注于主动防御技术,做好事前的预防措施。

机芯安全:使用TPM 安全可信模块进行PC 端数据加解密;机芯端使用自研发机芯加密模块(HSM)进行数据加解密,与机芯交互的数据,通过硬件加密模块加解密,保证了链路的安全性。

出钞场景控制:防止外连电脑控制机芯,合法工控机中只有白名单应用程序使用合法流程才能控制机芯,通信加密传输,增加随机数机制防止重发共计。在ATM 行业内首次提出业务交流流程校验,取款的流程应该有符合特定的场景,只有特定的场景才可以出钞,保证了出钞的安全性。

系统安全策略:提出了通过双用户机制,确保ATMC交易运行在最小权限环境中,避免运行环境的攻击风险,保证了系统的安全性。

账务数据安全检测:在程序运行过程中,对涉及账务的数据进行实时检查校验,避免错误的数据上账后导致的账务问题。

1.3 实施方案

系统采用Cluster 方案和Load Balancer 方案(如图1所示),使用SSH(Struts,Spring,Hibernate)技术框架进行开发,表示层:由Struts 实现,以Struts-config.xml 为核心,通用的控制组件ActionServlet 承担MVC 中的Controller 的角色,ActionForm 类封装与用户界面有关的数据元素,用Action 类实现业务逻辑,动作处理,链接转向。业务层:由Spring 实现业务组件的组装关联,通过依赖注入,AOP 应用,面向界面编程,来降低业务组件之间的耦合度,增强系统兼容性和可扩展性。持久层:借助ORM 工具Hibernate 实现数据库访问性能优化和与数据库交互的常用操作(添加,修改,删除,浏览),并将数据库表与对象进行关联,把利用SQL 对数据表的交互转化为直接针对对象进行数据库交互,大大提高编码效率。

图1 技术框架图

系统部署分服务端及客户端,系统部署架构图如图2所示。服务端需要部署两台(主从)终端安全防护系统服务器及数据库服务器,数据库可以安装在终端安全防护系统服务器中,支持Oracle 及MySQL 等多数据库。客户端即各自助终端设备,需要安装终端安全防护系统客户端代理软件,在实现系统本身安全的同时,支持与服务端通过网络通信连接,实现监控及管理。

图2 部署架构图

服务端主要提供设备管理、授权、安全策略、远程升级、日志提取等功能。服务端可以获取所有终端设备的信息,包括当前终端设备硬件型号配置信息、状态、内存、硬盘、正在运行的进程等信息,能够实现对终端设备的全面监控及操作管理;对用户密码、Ukey 等进行管理,对设备进行授权激活等操作;对已联网的终端设备进行白名单更新控制、移动存储设备授权控制、文件及注册表等权限管理控制;同时远程升级功能,方便对下属终端设备进行远程升级;提供日志提取功能,节约现场单台设备提取日志的人力成本。

客户端主要提供白名单防护、存储设备访问控制、系统权限控制、网络保护功能。通过白名单控制访问机制,只允许白名单内的应用程序运行,其他程序禁止运行;通过授权的存储设备能够正常防护访问,非授权的禁止访问;只有通过授权的进程能够在特定目录下创建文件夹、生成文件、访问文件及注册表信息等,非授权的禁止访问;网络白名单内的应用网络传输不受限制,其他设备必须指定IP 才能访问;可以根据需求设置需要开放的本地端口或者远程连接端口。

2 机芯安全技术方案

目前金融智能自助设备的布局越来越广泛,犯罪分子不再局限于通过盗刷客户银行卡信息来盗取客户用户账户密码等信息,开始采取一些方法直接侵入ATM 设备,并直接控制其中的现金模块,使其达到出钞的目的。2016年台湾ATM 自动吐钞事件就是其中一个典型例子,攻击者并未使用银行卡和对ATM 操作,而是通过远程攻击方式,直接让ATM 吐钞。在这些案例中,攻击者都是模拟智能自助设备的上层应用程序,或者篡改下发的数据内容来进行攻击。因此,如何避免机芯模块数据传输中数据被破坏,或者被恶意模仿的方式出钞,也是目前智能金融设备需要重点防护的内容之一。本章节主要从机芯安全、场景出钞、指定上层软件出钞、账务数据安全检测四个方面,在数据传输安全、访问控制、数据内容准确性等方面进行保证机芯的安全可靠。

2.1 机芯安全

通过采用PC 端的加密模块与机芯硬件端的加解密模块连接,保证PC 端与机芯端数据传输的安全。PC 端安装一个增强计算机安全性和隐私性的加密模块,直接安装在PC机主板上,与PC 端为一体,PC 端所有指令下发及数据接收都必须通过该加密模块进行加解密操作,机芯端的加密模块与机芯硬件为一体,所有指令下发及数据返回也都需要加解密模块的加解密操作。通过多个硬加密过程及其他加解密流程,能够保证下发给机芯的指令数据及机芯返回的数据极难被截取及篡改。

在保证数据传输过程安全可靠的同时,还需要建立机芯与PC 之间的唯一绑定关系,避免机芯被连接到任何一台PC上都能出钞,建立此关系称之为授权绑定操作,由专用的授权绑定工具执行。通过PC 端加密模块生成PC 的唯一ID 信息,并通过授权绑定下发给机芯硬件,机芯硬件将此PC 的唯一ID 信息保存到机芯硬件中。后续下发给机芯所有的指令都必须包含此ID 信息,机芯在接收到指令后,若发现此ID 不匹配,则拒绝执行。授权绑定工具由管理员控制,绑定操作,需要执行特定的硬件动作才能完成。

2.2 场景出钞

WOSA/XFS 协议接口是一套标准接口,当违法分子具有一定的专业性时,可能会尝试冒仿上层应用调用WOSA指令进行恶意出钞。场景出钞模式在软件层面内置多套允许出钞的场景,只有符合指定场景下的出钞流程请求才认为是合法的。

场景出钞是针对出钞流程的一个审计和控制,作为机芯安全的补充措施存在于机芯驱动范畴。由于取款操作一定存在相应的前序操作指令,当接收到取款指令时,校验前序指令是否为正常调用流程,可以在一定程度上判别是否为恶意出钞。常见的出钞场景分为有卡取款和无卡取款,两种取款模式,上层应用调用流程不同,场景出钞模式通过检测前序指令是否合理来进行判定。

有卡取款的前序流程大概分为以下步骤:进卡;等待读取卡信息;输入密码;可能的交易按键选择;可能需要再次输入密码;计算MAC 值;等待;计算MAC 值;

无卡取款的钱箱流程大概分为以下步骤:可能的交易按键选择;可能输入密码;计算MAC 值;等待;计算MAC 值;

2.3 指定上层应用出钞

为了避免使用测试工具或者其他一些程序仿冒上层应用软件进行出钞操作,要求底层软件程序内部在每次出钞指令执行前,都需要检测当前请求出钞的上层应用软件程序,同时建立可出钞应用的白名单,非法应用程序不可出钞。在底层软件安装前,需要和金融机构约定好上层应用软件白名单及相关内容,并且在安装时一次性写入,此白名单一般不做更新,除非上层应用软件程序更换。

2.4 账务数据安全检测

机芯模块的存取款等交易指令,会直接涉及到客户账户余额及银行账务数据。为确保上账金额的准确性,还可以进一步检测财务数据安全,进行财务风险预警。

2.4.1 上层应用程序数据监测

在取款流程处理中,上层应用程序需要监测底层软件挖钞指令的结果合法性。当出现底层软件出钞结果返回成功,但实际出钞数据与上层应用请求数据不一致;出钞前后,钞箱信息变化与出钞结果不一致;或者出钞金额及张数超过钱箱最大能力等情况,均需要报错且不能再让设备进行继续送钞操作,避免后续钞票送出后带来短款等风险。

在存款流程处理中,上层应用程序需要检测底层软件点钞指令与存款指令的合法性。当出现底层软件返回的点钞、存款结果中币种、金额、面额等信息出现异常;客户多次点钞结果与最终存款结果不一致时;点(存)钞的张数、金额超过SP 最大能力值等情况,均需要报错且不能给客户上账,避免后续带来更严重的账务问题。

2.4.2 底层软件程序数据监测

针对取款指令,底层软件通过驱动库将请求出钞数据下发机芯,机芯硬件中的数据模块保存请求数据,并执行响应的出钞动作,每次动作导致的钞箱钞票进出数据,都会记录于钱箱硬件中的数据模块中。机芯硬件芯片会主动校验一次请求数据与钱箱数据模块中的结果是否匹配,如不匹配,机芯出钞指令报错;如果匹配,将实际出钞信息保存在机芯数据模块中。底层软件中的数据检查模块,在将最终结果返回给上层应用程序前,也要检测机芯数据模块中的结果是否与上层应用的请求数据一致,如不一致,应该主动回收钞票,并报错告知当笔出钞失败。

智能终端设备的底层软件程序通过内部的检查模块,硬件内部的机芯数据模块、钱箱数据模块进行多重多场景检查,可以针对任何一层中内存数据发生篡改后,都及时做出预警。机芯安全方案通过软硬结合的模式,在硬件结构、数据链路传输、软件数据安全等方面,进行多方位防护,保证机芯的交易处于安全环境中,即使遭到攻击也能够将账务风险降到最低。

3 结 论

本文给出了一种面向金融智能自助设备终端的整体性安全解决方案,从金融智能终端自助设备所要求的安全性、稳定性、场景性等角度出发,在软件层面上,保证了程序访问的可靠性、数据的可靠性;在硬件层面上,保证了机芯出钞安全、出钞场景安全等机制。从多个角度提供安全防护技术及实施方案,有效的防范自助设备所可能遇到的威胁。

本文所述的整体解决方案能为行业内自助服务设备提供全方面保驾护航,在自助设备安全防护领域有重大突破,能够引领终端安全防护从通用化软件向特定领域专业化方向发展。

猜你喜欢

白名单机芯指令
膜式燃气表机芯密封性检测装置及方法
基于 Verilog HDL 的多周期 CPU 设计与实现
核电厂仪控系统安全防护策略研究及应用
UAC提示太烦 教你做个白名单
《单一形状固定循环指令G90车外圆仿真》教案设计
在家办公很自在
2019年“移动互联网应用自律白名单”出炉
关于ARM+FPGA组建PLC高速指令控制器的研究
腕表的 时髦度 与性别无关
亨利慕时 万年历经典HERITAGE限量版腕表