- 快捷搜索
- 全站搜索
随着银行业务日趋多样化,传统字符智能终端已无法满足更加智能、人性化以及加入多媒体技术的各类应用系统需求。近几年,各大银行纷纷采用以Microsoft Windows为操作系统的智能终端来替换传统的字符智能终端,这种变化给银行柜面业务带来了全新模式,新平台支撑起各类新业务,有效提升了客户体验及银行形象。但较传统字符智能终端,其操作系统复杂、用户权限控制松散、安全性较差,相应增加了科技工作者的维护成本。为此,中国农业银行软件开发中心摸索出一整套基于Windows XP/XPe的管理体系架构,此文将针对客户端管理软件自我保护机制和进程管理的技术点进行分析。
一、存在的问题
1.概述
智能终端是银行业务办公载体,柜员需使用智能终端操作业务软件给客户办理业务,但Windows操作系统用户权限较大,如不限制,柜员可任意安装、卸载,修改应用软件及系统文件,给银行安全生产带来隐患,也增加了银行的管理成本。因此我们开发了一套智能终端管理系统,借助客户端代理程序对终端进行远程管理和操作,并对智能终端使用人员的行为进行监视和控制,用于保证智能终端安全可靠的运行。
本文主要介绍两方面相关技术:一是如何保证管理软件的客户端程序不受用户恶意操作限制,在终端上稳定运行。众所周知,Windows操作系统用户权限大,可通过任务管理器结束管理客户端程序进程、控制面板的服务管理程序,停止管理客户端服务,达到停止服务的目的。为此我们以微软钩子(Hook)技术和远程注入技术为基础,通过开发自主保护框架,巧妙解决了上述软件保护方式存在的缺陷,实现软件自我保护功能。
二是如何实现对智能终端上应用软件运行权限控制。我们通过软件黑白名单控制策略使智能终端只允许运行银行规定的白名单进程,限制使用人员运行非业务相关软件的权限,保障了智能终端的安全性。
2.现有技术分析
对于软件自我保护的方法主要有如下几种。
(1)只允许通过“任务管理器”对进程执行“进程结束”操作,一定程度上防止了对程序的恶意结束操作。它采用Hook技术,针对关键进程的“结束进程”操作使用Windows API调用进行过滤,允许执行“任务管理器”发起的进程结束操作,对于其他应用程序发起的、针对关键进程的“结束进程”操作,截获后返回指定的错误,而不再向下执行实际的结束进程操作。
该技术局限性:由于在任务管理器中仍然可以结束进程,因此无法避免程序被恶意结束;对于程序内部异常造成的进程结束问题,无法处理。
(2)阻止第三方程序直接获取被保护进程的句柄,阻止从“任务管理器”或者第三方应用程序中对进程进行“结束进程”的动作。该做法是针对“结束进程”所必须依赖的“进程句柄”的获取操作,通过Hook操作,阻止第三方程序通过“打开进程”Windows API的方式获取关键进程句柄,阻止第三方应用程序获取其进程句柄之后进行的“结束进程”操作。
该技术局限性:应用程序可以编写枚举当前系统进程句柄的方式获取特定的进程句柄,从而绕过该方法;对于杀毒软件等程序而言,可能会因无法打开该进程进行病毒扫描而误认为该进程存在风险。
(3)采用“双进程保护”的方式。利用两个或者多个进程,互相持有对方进程的运行句柄,一旦有一方出现异常而被终止,立即启动另一方软件,实现进程之间的相互保护功能。
该技术局限性:不少病毒程序采用该方式进行自我保护,因此可能会被杀毒软件误报为病毒。
对于进程黑白名单监控策略,目前Windows系统进程监控技术大多采用:PsSetCreateProcessNotifyRoutine、PsSetLoad ImageNotifyRoutine注册进程创建回调和镜像加载回调实现,或是采用Hook NtCreateSectiOn、NtCreateProcess实现,但同样都存在一定局限性。
二、解决办法
在软件自我保护方案中(如图所示),我们以Hook技术和远程注入技术为基础,通过开发自主保护框架,解决上述软件保护方式的缺陷,实现了较为完整的软件自我保护功能。
ITIL是一套方法论,能为IT服务提供良好的指导思想,将工作中习惯的以技术为
农业银行高度重视信息化建设,近些年特别强化了安全生产工作,加强了IT运维