CN110968870A - 一种软件运行时安全的检测方法 - Google Patents
一种软件运行时安全的检测方法 Download PDFInfo
- Publication number
- CN110968870A CN110968870A CN201911194725.8A CN201911194725A CN110968870A CN 110968870 A CN110968870 A CN 110968870A CN 201911194725 A CN201911194725 A CN 201911194725A CN 110968870 A CN110968870 A CN 110968870A
- Authority
- CN
- China
- Prior art keywords
- server
- client
- file
- user
- hash values
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种软件运行时安全的检测方法,包括客户端、服务器、执行程序、用于加载文件的资源、执行程序运行环境。本发明能够保证客户端的可信度,通过服务端发送一段代码到客户端,客户端执行这段代码,服务端根据响应结果来判定,客户端是否可信,能够覆盖上述方法的大部分场景。
Description
技术领域
本发明涉及软件运行时安全的检测方法,具体涉及一种软件运行时安全的检测方法。
背景技术
软件安全就是使软件在受到恶意攻击的情形下,依然能够继续正确运行及确保软件被在授权范围内合法使用的思想。目前针对软件安全采用的技术包括软件水印、代码混淆、防篡改技术、授权加密技术以及虚拟机保护技术等。
在证券行业里,一种比较常见的攻击手段即是基于系统提供的API,采用外挂的形式接入到后台交易系统,从而实现非法接入的目的。
目前获取API的方式主要有:
1.采用网络嗅探、抓包的方式来分析网络协议,从而获取API。
2.采用破解、反编译客户端的方式获取前后端交互方式,进而获取系统API代码泄露,或者其他非正常途径获取源码,而得到API。
目前业内主要采用的是通过软件加固+动态验证的手段来保证客户端的运行环境安全,其中软件加固,主要包括以下手段:
采用加壳技术防止调试器逆向破解;
保护资源文件,防止资源文件被篡改,删除;
防二次打包:应用内任意文件被修改、替换后,都将无法正常运行;
防进程运行时调试器使用;
内存保护,防止内存篡改,调试,以及内存dump;
动态/静态链接库保护技术等。
以上技术主要偏重在正常客户端的运行环境的保护,如果破解者采用的是自有版本的客户端,那么以上保护无法保证客户端的可信度,针对这种不足,业内采用了“主动挑战”的方式来监测客户端,也即服务器发送一段代码到客户端,客户端执行这段代码,服务器根据响应结果来判定,客户端是否可信。目前主动挑战这块,尚无统一标准。
发明内容
本发明所要解决的技术问题是一种能够解决上述问题的运行时安全的检测方法。
本发明是通过以下技术方案来实现的:一种软件运行时安全的检测方法,其特征在于:包括客户端、服务器、执行程序、用于加载文件的资源、执行程序运行环境,检测方法步骤如下:
S1:服务器随机询问客户端,资源文件状态,一旦文件状态发生改变,服务器请求这些文件的hash值,并和服务器保存的hash值做比对,不一致的,则认为是异常用户;
S2:采用加壳技术,一般资源文件/代码文件采用打包的形式以静态文件存在,程序运行时脱壳,文件解压到内存中,对于这种形式,服务器可以随机查询内存中数据的hash值,来保证数据未被篡改,发现篡改的则认为异常用户;
S3:服务器随机请求函数执行的调用栈,通过函数调用关系来判断代码运行是否在安全范围内来识别异常用户;
S4:服务器随机请求函数执行环境,不限于进程列表,以及检查进程是否处于调试状态来识别异常用户。
S5:服务器随机获取函数的调用次数以及调用时间,通过对上述这些调用次数以及调用时间和正常的用户的调用次数和调用时间分布进行区分,来进行识别异常用户;
S6:对于挑战应答超时的用户,超过阈值,则认为是异常用户
本发明的有益效果是:本发明能够保证客户端的可信度,通过服务端发送一段代码到客户端,客户端执行这段代码,服务端根据响应结果来判定,客户端是否可信,能够覆盖上述方法的大部分场景。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的服务端处理逻辑图;
图2为本发明的服务端和客户端交互流程图。
具体实施方式
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
在本发明的描述中,需要理解的是,术语“一端”、“另一端”、“外侧”、“上”、“内侧”、“水平”、“同轴”、“中央”、“端部”、“长度”、“外端”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
本发明使用的例如“上”、“上方”、“下”、“下方”等表示空间相对位置的术语是出于便于说明的目的来描述如附图中所示的一个单元或特征相对于另一个单元或特征的关系。空间相对位置的术语可以旨在包括设备在使用或工作中除了图中所示方位以外的不同方位。例如,如果将图中的设备翻转,则被描述为位于其他单元或特征“下方”或“之下”的单元将位于其他单元或特征“上方”。因此,示例性术语“下方”可以囊括上方和下方这两种方位。设备可以以其他方式被定向(旋转90度或其他朝向),并相应地解释本文使用的与空间相关的描述语。
在本发明中,除非另有明确的规定和限定,术语“设置”、“套接”、“连接”、“贯穿”、“插接”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
如图1至图2所示,包括客户端、服务器、执行程序、用于加载文件的资源、执行程序运行环境,检测方法步骤如下:
S1:服务器随机询问客户端,资源文件状态,一旦文件状态发生改变,服务
器请求这些文件的hash值,并和服务器保存的hash值做比对,不一致的,则认为是异常用户;
S2:采用加壳技术,一般资源文件/代码文件采用打包的形式以静态文件存在,程序运行时脱壳,文件解压到内存中,对于这种形式,服务器可以随机查询内存中数据的hash值,来保证数据未被篡改,发现篡改的则认为异常用户;
S3:服务器随机请求函数执行的调用栈,通过函数调用关系来判断代码运行是否在安全范围内来识别异常用户;
S4:服务器随机请求函数执行环境,不限于进程列表,以及检查进程是否处于调试状态来识别异常用户;
S5:服务器随机获取函数的调用次数以及调用时间,通过对上述这些调用次数以及调用时间和正常的用户的调用次数和调用时间分布进行区分,来进行识别异常用户;
S6:对于挑战应答超时的用户,超过阈值,则认为是异常用户
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何不经过创造性劳动想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书所限定的保护范围为准。
Claims (1)
1.一种软件运行时安全的检测方法,其特征在于:包括客户端、服务器、执行程序、用于加载文件的资源、执行程序运行环境,检测方法步骤如下:
S1:服务器随机询问客户端,资源文件状态,一旦文件状态发生改变,服务器请求这些文件的hash值,并和服务器保存的hash值做比对,不一致的,则认为是异常用户;
S2:采用加壳技术,一般资源文件/代码文件采用打包的形式以静态文件存在,程序运行时脱壳,文件解压到内存中,对于这种形式,服务器可以随机查询内存中数据的hash值,来保证数据未被篡改,发现篡改的则认为异常用户;
S3:服务器随机请求函数执行的调用栈,通过函数调用关系来判断代码运行是否在安全范围内来识别异常用户;
S4:服务器随机请求函数执行环境,不限于进程列表,以及检查进程是否处于调试状态来识别异常用户;
S5:服务器随机获取函数的调用次数以及调用时间,通过对上述这些调用次数以及调用时间和正常的用户的调用次数和调用时间分布进行区分,来进行识别异常用户;
S6:对于挑战应答超时的用户,超过阈值,则认为是异常用户。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911194725.8A CN110968870A (zh) | 2019-11-28 | 2019-11-28 | 一种软件运行时安全的检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911194725.8A CN110968870A (zh) | 2019-11-28 | 2019-11-28 | 一种软件运行时安全的检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110968870A true CN110968870A (zh) | 2020-04-07 |
Family
ID=70032152
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911194725.8A Pending CN110968870A (zh) | 2019-11-28 | 2019-11-28 | 一种软件运行时安全的检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110968870A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112507292A (zh) * | 2020-12-09 | 2021-03-16 | 重庆邮电大学 | 一种支持运行环境检测及完整性检测的加壳保护方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101783801A (zh) * | 2010-01-29 | 2010-07-21 | 福建星网锐捷网络有限公司 | 一种基于网络的软件保护方法、客户端及服务器 |
CN103065069A (zh) * | 2013-01-28 | 2013-04-24 | 电子科技大学 | 一种基于壳技术的软件保护方法 |
CN103425910A (zh) * | 2013-07-31 | 2013-12-04 | 福建天晴数码有限公司 | 程序中函数是否被非法调用的检测方法 |
CN103856471A (zh) * | 2012-12-06 | 2014-06-11 | 阿里巴巴集团控股有限公司 | 跨站脚本攻击监控系统及方法 |
CN105378744A (zh) * | 2013-05-03 | 2016-03-02 | 思杰系统有限公司 | 在企业系统中的用户和设备认证 |
CN107038373A (zh) * | 2017-04-28 | 2017-08-11 | 北京洋浦伟业科技发展有限公司 | 一种进程调试检测方法及装置 |
-
2019
- 2019-11-28 CN CN201911194725.8A patent/CN110968870A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101783801A (zh) * | 2010-01-29 | 2010-07-21 | 福建星网锐捷网络有限公司 | 一种基于网络的软件保护方法、客户端及服务器 |
CN103856471A (zh) * | 2012-12-06 | 2014-06-11 | 阿里巴巴集团控股有限公司 | 跨站脚本攻击监控系统及方法 |
CN103065069A (zh) * | 2013-01-28 | 2013-04-24 | 电子科技大学 | 一种基于壳技术的软件保护方法 |
CN105378744A (zh) * | 2013-05-03 | 2016-03-02 | 思杰系统有限公司 | 在企业系统中的用户和设备认证 |
CN103425910A (zh) * | 2013-07-31 | 2013-12-04 | 福建天晴数码有限公司 | 程序中函数是否被非法调用的检测方法 |
CN107038373A (zh) * | 2017-04-28 | 2017-08-11 | 北京洋浦伟业科技发展有限公司 | 一种进程调试检测方法及装置 |
Non-Patent Citations (2)
Title |
---|
梁玉: "S-Tracker:基于栈异常的shellcode检测方法", 《华中科技大学学报》 * |
王健: "基于完整性验证和壳的软件保护技术研究", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112507292A (zh) * | 2020-12-09 | 2021-03-16 | 重庆邮电大学 | 一种支持运行环境检测及完整性检测的加壳保护方法 |
CN112507292B (zh) * | 2020-12-09 | 2024-01-26 | 重庆邮电大学 | 一种支持运行环境检测及完整性检测的加壳保护方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2020203503B2 (en) | Automated runtime detection of malware | |
US10893068B1 (en) | Ransomware file modification prevention technique | |
US10447730B2 (en) | Detection of SQL injection attacks | |
US7673137B2 (en) | System and method for the managed security control of processes on a computer system | |
JP4653230B2 (ja) | Api検査装置及び状態監視装置 | |
US20210014245A1 (en) | In-stream malware protection | |
US8677493B2 (en) | Dynamic cleaning for malware using cloud technology | |
US20100306850A1 (en) | Behavioral engine for identifying patterns of confidential data use | |
US20070079373A1 (en) | Preventing the installation of rootkits using a master computer | |
US12056237B2 (en) | Analysis of historical network traffic to identify network vulnerabilities | |
CN115701019A (zh) | 零信任网络的访问请求处理方法、装置及电子设备 | |
US8763121B2 (en) | Mitigating multiple advanced evasion technique attacks | |
CN110968870A (zh) | 一种软件运行时安全的检测方法 | |
US20150172310A1 (en) | Method and system to identify key logging activities | |
CN110401621A (zh) | 一种敏感指令的防护方法、设备及存储介质 | |
CN105912945A (zh) | 一种操作系统安全加固装置及运行方法 | |
CN108289073A (zh) | 基于安卓的app安全检测系统 | |
CN113836529A (zh) | 进程检测方法、装置、存储介质以及计算机设备 | |
Tupakula et al. | Dynamic state-based security architecture for detecting security attacks in virtual machines | |
JP2004355287A (ja) | 不正要求防御装置および方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200407 |
|
RJ01 | Rejection of invention patent application after publication |