一种应用程序安全的远程监控方法

文档序号:8342737阅读:376来源:国知局
一种应用程序安全的远程监控方法
【技术领域】
[0001] 本发明涉及计算机科学与技术领域,特别涉及一种应用程序安全的远程监控方 法。
【背景技术】
[0002] 操作系统是平台,应用程序是运行在上的主角,它直接服务于用户。应用程序为用 户带来便利的同时,有时也会威胁系统安全。所以,对应用程序实施安全监管与权限控制是 操作系统一项重要任务。目前,这些监管和控制技术已经发展得十分多样。首先,可以通过 配置应用程序的运行级别来对应用程序进行权限控制,但是如果应用程序始终以管理员权 限运行会带来一定的安全隐患,而且不是十分的便利;其次,可以通过控制应用程序的安装 和运行来监管和控制应用程序,用户可以在本地的安全控制台中对应用程序选择相应的安 装和运行的安全级别,虽然这是最直接有效的行为,但是对于一般用户来说,却显得十分复 杂和繁琐,我们需要一种技术来对应用程序安全进行监控,使得一般用户即可在"干净"的 系统环境下运行应用程序。
[0003] 各种终端设备的大量兴起,在满足用户基本需求的同时,用户为了获得更丰富多 彩的功能,越来越多的应用程序也被人们广泛下载和使用,如何保证所下载和使用的应用 程序是安全的已经成为一个不可忽视的问题。各种类型的病毒对于普通的用户来说都是一 种潜在的威胁,用户无法自己对所下的应用程序是否安全进行评判,他们往往会主动的下 载一些其实并不安全的应用程序,或者在一些应用程序的使用过程中被动的下载,这些应 用程序一旦运行就会对用户的终端设备造成很大的安全威胁,特别是对于一些没有安全防 护软件的系统而言,这些不安全的应用程序还会给系统带来不必要的负荷,甚至遭到病毒 等的攻击最终导致系统崩溃,对用户正常使用应用程序和系统造成了很大的不便和不同程 度的安全威胁,并给监管应用程序造成了很大的障碍。
[0004] 政府等公共服务领域一般使用统一的操作系统,这些系统只会安装和使用一些特 定的应用程序,员工不被允许在正常上班时间内使用其他应用程序,这些应用程序被认为 是耽误工作、妨碍工作地正常进行的,对于管理员来讲也是一定程度上"不安全"的。对于 一些小的集体可以通过人工监管来限制员工在正常上班时间内使用其他软件服务,但而想 要人工实时的监管到每一个人却是不可能实现的。为了防止员工职员等胡乱使用软件和服 务,对系统应用程序进行监控势在必行。
[0005] 云计算环境下,服务通过互联网提供给用户,云计算平台将面临来自内部和外部 的各种攻击,而需求方往往只考虑自身的需要,希望能够自我定制一些个性化的服务,这不 仅会增大服务器的负担,而且无法保证下载的这些应用程序是否是安全的。而且云服务提 供商所应对的是大量的用户,它的负载基础本来就很大,对于不同的需求群体来说,一些服 务往往没有必要被启动和运行,如果对所有用户开放相同的服务则会大大增加服务器的负 荷。为了在一定程度上保证云服务提供商的网络计算负荷等在可容许的范围内,在应用程 序运行时对其进行监控,对降低服务器的维护力度,减少服务器系统的负载具有重要作用。

【发明内容】

[0006] 本发明提供了一种应用程序安全的远程监控方法,用以防止在应用程序运行过程 中所碰到的安全威胁问题,为政府、医院等公共办公行业监控系统应用程序提供一种可行 的方法,并能在云计算环境下减少服务器系统的负载,保证用户安全地使用应用程序。
[0007] 一种应用程序安全的远程监控方法,包括以下步骤:
[0008] 步骤1 :通过利用远程服务器在数据库服务器中建立应用程序可信任列表,在应 用程序可信任列表中存储可信任的应用程序的数字指纹;
[0009] 所述应用程序的数字指纹是指利用MD5消息摘要算法对应用程序文件内容进行 运算得到的二进制序列;
[0010] 对于任意应用程序文件,其运算后的二进制序列都是唯一的,因此,可用该二进制 序列唯一来标识一个应用程序;
[0011] 步骤2 :在应用程序运行终端安装应用程序状态监控器,利用所述状态监控器截 获应用程序运行终端系统调用创建新进程的系统调用函数,并将待传入该系统调用函数的 参数转发给中间代理函数,暂停新进程的创建;
[0012] 所述待传入该系统调用函数的参数中包含待启动的应用程序的全路径;
[0013] 所述中间代理函数的形参列表与调用创建新进程的系统调用函数的形参列表相 同,包含参数类型、参数个数以及参数顺序;
[0014] -个应用程序未启动之前,它以文件的形式存储于磁盘中,当一个应用程序被启 动后,它则成为一个进程运行于内存中。因此,在应用程序被启动时,通常由系统执行创建 进程的系统调用,而应用程序文件所在的全路径(或绝对路径)作为参数传入该系统调用 中,当系统调用函数执行成功后,应用程序则由存储于磁盘的文件转变为运行于内存的进 程;
[0015] 所述创建进程的系统调用对于不同操作系统是不同的,Windows下该系统调用为 CreateProcess函数,而Linux下则为fork函数,Android,I0S及其他系统启动子进程的系 统调用则各不相同。
[0016] 步骤3 :生成当前应用程序的数字指纹;
[0017] 当中间代理函数接收到应用程序状态监控器传入的参数时,利用参数中应用程序 的全路径,提取应用文件内容,对应用程序文件内容采用MD5消息摘要算法运算获得应用 程序的数字指纹;
[0018] 步骤4 :数字指纹比对;
[0019] 将步骤3生成的数字指纹通过网络传输至远程服务器,与数据库服务器的应用程 序可信任列表中的数字指纹进行比对,若比对成功,远程服务器返回当前应用程序可信,否 贝1J,返回当前应用程序不可信;
[0020] 步骤5 :中间代理函数依据远程服务器的返回指令,继续启动或阻止当前应用程 序的运行;
[0021] 当中间代理函数接收到远程服务器返回的指令时,若返回指令为当前应用程序可 信,则中间代理函数将从应用程序状态监控器接收的参数传输给创建新进程的系统调用函 数,由系统继续调用创建新进程的系统调用函数,启动应用程序;否则,中间代理函数返回, 退出本次调用,阻止当前应用程序的运行。
[0022] 所述应用程序运行终端系统为Windows系统时,创建新进程的系统调用函数为 CreateProcess函数;所述应用程序状态监控器采用APIHOOK机制,截获CreateProcess函 数的调用,并获取待传入CreateProcess函数的参数。
[0023] 所述截获CreateProcess函数的调用,并获取待传入CreateProcess函数的参数 的具体步骤如下:
[0024] 步骤S1 :通过调用系统函数SetWindowsHookEx函数将拦截系统消息的系统级钩 子安装进系统;
[0025] 步骤S2 :系统级钩子安装好之后,自动向父进程地址空间中注入钩子模块;
[0026] 所述钩子模块为一个动态链接库,步骤S1安装系统级钩子时指定其作为该钩
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1