CN109787886A - 一种邮件审计方法及系统 - Google Patents
一种邮件审计方法及系统 Download PDFInfo
- Publication number
- CN109787886A CN109787886A CN201910058224.0A CN201910058224A CN109787886A CN 109787886 A CN109787886 A CN 109787886A CN 201910058224 A CN201910058224 A CN 201910058224A CN 109787886 A CN109787886 A CN 109787886A
- Authority
- CN
- China
- Prior art keywords
- function
- module
- mail contents
- destinations traffic
- 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.)
- Granted
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供了一种邮件审计方法及系统,方法包括:拦截远程方法调用RPC模块中的目标通信函数,以完成exchange协议的阻断;基于已阻断的exchange协议,从第一函数的参数中解析出邮件内容;对所述邮件内容进行审计。本发明实施例提供的一种邮件审计方法及系统,没有采用窗口阻断的方式,而是在协议层直接进行邮件阻断,阻断准确无遗漏,且避免了软件产生的卡顿或崩溃,有效提升了用户体验。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种邮件审计方法及系统。
背景技术
目前,数据泄露防护系统(DLP)对使用Exchange协议通信的邮件软件进行审计时,常用手段是窗口挂钩方法,通过解析编辑窗口中的邮件内容、阻断发送邮件消息实现发送邮件审计。将解析后的邮件内容送到审计系统进行审计,根据审计结果决定邮件是否阻断。
但是上述现有技术由于使用的窗口挂钩方法阻断邮件,因而可能会在消息丢失的情况下,会出现邮件内容无法获取,导致邮件无法阻断,同时,在多窗口中进行较复杂切换时,容易出现窗口动作捕获不准确,导致阻断函数中出现异常,使邮件系统卡死或崩溃,严重影响用户体验
因此,现在亟需一种新的邮件审计方法来解决上述问题。
发明内容
为了解决上述问题,本发明实施例提供一种克服上述问题或者至少部分地解决上述问题的一种邮件审计方法及系统。
第一方面本发明实施例提供一种邮件审计方法,包括:
拦截远程方法调用RPC模块中的目标通信函数,以完成exchange协议的阻断;
基于已阻断的exchange协议,从第一函数的参数中解析出邮件内容;
对所述邮件内容进行审计。
第二方面本发明实施例提供了一种邮件审计系统,包括:
挂钩模块,用于拦截远程方法调用RPC模块中的目标通信函数,以完成exchange协议的阻断;
解析模块,用于基于已阻断的exchange协议,从第一函数的参数中解析出邮件内容;
审计模块,用于对所述邮件内容进行审计。
第三方面本发明实施例提供了一种电子设备,包括:
处理器、存储器、通信接口和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行上述邮件审计方法。
第四方面本发明实施例提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述邮件审计方法。
本发明实施例提供的一种邮件审计方法及系统,没有采用窗口阻断的方式,而是在协议层直接进行邮件阻断,阻断准确无遗漏,且避免了软件产生的卡顿或崩溃,有效提升了用户体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种邮件审计方法流程示意图;
图2是本发明实施例提供的一种邮件审计系统结构示意图;
图3是本发明实施例提供的电子设备的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例提供的一种邮件审计方法流程示意图,如图1所示,包括:
101、拦截远程方法调用RPC模块中的目标通信函数,以完成exchange协议的阻断;
102、基于已阻断的exchange协议,从第一函数的参数中解析出邮件内容;
103、对所述邮件内容进行审计。
在步骤101中,可以理解的是,计算机在完成远程通信时会通过远程方法调用RPC进行实现,RPC包含多种类别的通信函数,本发明实施例需要从中具体拦截出针对exchange协议通信的目标函数,该目标函数具体为NdrClientCall2函数和NdrAsyncClientCall函数,当拦截出NdrClientCall2和NdrAsyncClientCall后,即完成了对exchange协议的阻断。
进一步的,在步骤102中,当完成了对exchange协议的阻断之后,本发明实施例会从第一函数的参数中解析出邮件内容,需要说明的是,第一函数的参数是指exchange协议邮件的存储参数,具体为EcDoRpcExt2参数,通过解析该参数的内容,能够获取到邮件的具体内容。
最后,在步骤103中,本发明实施例会对邮件内容进行审计,看邮件内容是否符合规定,如果符合则放行该邮件,如果不符合则拒绝该邮件。
本发明实施例提供的一种邮件审计方法,没有采用窗口阻断的方式,而是在协议层直接进行邮件阻断,阻断准确无遗漏,且避免了软件产生的卡顿或崩溃,有效提升了用户体验。
在上述实施例的基础上,所述拦截远程方法调用RPC模块中的目标通信函数,以完成exchange协议的阻断,具体包括:
拦截RPC模块中的目标通信函数;
解析所述目标通信函数中的第一参数,以过滤出与预设变量值不同的目标数据包;
在所述目标数据包中获取所述第一函数的参数地址。
由上述实施例的内容可知,本发明实施例需要完成exchange协议的阻断,那么具体的,由于exchange协议的数据传输通过RPC实现,阻断该协议需要挂钩RPC模块的通信函数NdrClientCall2和NdrAsyncClientCall,即本发明实施例中的目标通信函数。
NdrClientCall2和NdrAsyncClientCall函数的原型如下:
CLIENT_CALL_RETURN RPC_VAR_ENTRY NdrClientCall2(PMIDL_STUB_DESCpStubDescriptor,PFORMAT_STRING pFormat,...);
CLIENT_CALL_RETURN RPC_VAR_ENTRY NdrAsyncClientCall(PMIDL_STUB_DESCpStubDescriptor,PFORMAT_STRING pFormat,...)。
然后根据RPC.idl存根文件的定义,解析通信函数的pStubDescriptor参数,根据参数的RpcInterfaceId和RpcTransferSyntax变量过滤掉其它通信数据,只解析特定RpcInterfaceId和RpcTransferSyntax的数据,变量的对应值为:
RpcInterfaceId:
{{0xA4F1DB00,0xCA47,0x1067,{0xB3,0x1F,0x00,0xDD,0x01,0x06,0x62,0xDA}},{0,81}};
RpcTransferSyntax:
{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}。
最后在过滤后的数据中获取所述第一函数的参数地址。
在上述实施例的基础上,所述在所述目标数据包中获取所述第一函数的参数地址,具体包括:
根据存根文件的结构,定位出所述第一函数的参数地址。
本发明实施例是根据存根文件的结构对第一函数的参数地址进行的定位。具体的,本发明实施例根据存根文件的RPC_MIDL_PROC_FORMAT_STRING结构,在过滤后数据包中再次过滤,只处理Opunm为11的EcDoRpcExt2函数,从而定位出EcDoRpcExt2函数的参数地址。
在上述实施例的基础上,在所述对所述邮件内容进行审计之后,所述方法还包括:
若审计通过则在所述邮件内容中添加混淆代码。
由上述实施例的内容可知,本发明实施例会对邮件内容进行审计,那么审计结束后需要反馈审计结果。
优选的,若审计通过,本发明实施例会在所述邮件内容中添加混淆代码,从而防止编译器对NdrClientCall2和NdrAsyncClientCall函数进行优化。
在上述实施例的基础上,所述方法还包括:
在添加混淆代码时,根据不同的压栈方式,在内嵌汇编中添加相应的汇编指令,以还原堆栈到所述目标通信函数的原始状态。
在添加了混淆代码后,由于NdrClientCall2和NdrAsyncClientCall函数是变参函数,挂钩变参函数后,需要引入内嵌汇编使得原函数得以正常执行。编写内嵌汇编代码时,需要分别分析通信函数在32位和64位情况下,Debug和Release版本中的压栈方式,根据不同的压栈方式,在内嵌汇编中添加对应汇编指令,以还原堆栈到调用NdrClientCall2和NdrAsyncClientCall函数的原始状态,最后添加JMP指令,跳转到原始函数继续执行。
在上述实施例的基础上,在所述对所述邮件内容进行审计之后,所述方法还包括:
若审计不通过,则修改所述目标通信函数的返回值,以反馈RPC错误异常信息。
可以理解的是,如果邮件内容未通过审计同样需要进行反馈,优选的,本发明实施例会修改所述目标通信函数的返回值,以反馈RPC错误异常信息,从而达到阻断邮件的目的。
图2是本发明实施例提供的一种邮件审计系统结构示意图,如图2所示,包括:挂钩模块201、解析模块202以及审计模块203,其中:
挂钩模块201用于拦截远程方法调用RPC模块中的目标通信函数,以完成exchange协议的阻断;
解析模块202用于基于已阻断的exchange协议,从第一函数的参数中解析出邮件内容;
审计模块203用于对所述邮件内容进行审计。
本发明实施例提供的一种邮件审计系统,没有采用窗口阻断的方式,而是在协议层直接进行邮件阻断,阻断准确无遗漏,且避免了软件产生的卡顿或崩溃,有效提升了用户体验。
在上述实施例的基础上,所述挂钩模块具体包括:
拦截单元,用于拦截RPC模块中的目标通信函数;
解析单元,用于解析所述目标通信函数中的第一参数,以过滤出与预设变量值不同的目标数据包;
获取单元,用于在所述目标数据包中获取所述第一函数的参数地址。
在上述实施例的基础上,所述获取单元具体包括:
定位子单元,用于根据存根文件的结构,定位出所述第一函数的参数地址。
在上述实施例的基础上,所述系统还包括:
混淆代码添加模块,用于若审计通过则在所述邮件内容中添加混淆代码。
在上述实施例的基础上,所述系统还包括:
汇编指令添加模块,用于在添加混淆代码时,根据不同的压栈方式,在内嵌汇编中添加相应的汇编指令,以还原堆栈到所述目标通信函数的原始状态。
在上述实施例的基础上,所述系统还包括:
错误反馈模块,用于若审计不通过,则修改所述目标通信函数的返回值,以反馈RPC错误异常信息。
本发明实施例提供一种电子设备,包括:至少一个处理器;以及与所述处理器通信连接的至少一个存储器,其中:
图3是本发明实施例提供的电子设备的结构框图,参照图3,所述电子设备,包括:处理器(processor)301、通信接口(Communications Interface)302、存储器(memory)303和总线304,其中,处理器301,通信接口302,存储器303通过总线304完成相互间的通信。处理器301可以调用存储器303中的逻辑指令,以执行如下方法:拦截远程方法调用RPC模块中的目标通信函数,以完成exchange协议的阻断;基于已阻断的exchange协议,从第一函数的参数中解析出邮件内容;对所述邮件内容进行审计。
本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:拦截远程方法调用RPC模块中的目标通信函数,以完成exchange协议的阻断;基于已阻断的exchange协议,从第一函数的参数中解析出邮件内容;对所述邮件内容进行审计。
本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:拦截远程方法调用RPC模块中的目标通信函数,以完成exchange协议的阻断;基于已阻断的exchange协议,从第一函数的参数中解析出邮件内容;对所述邮件内容进行审计。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行每个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种邮件审计方法,其特征在于,包括:
拦截远程方法调用RPC模块中的目标通信函数,以完成exchange协议的阻断;
基于已阻断的exchange协议,从第一函数的参数中解析出邮件内容;
对所述邮件内容进行审计。
2.根据权利要求1所述的方法,其特征在于,所述拦截远程方法调用RPC模块中的目标通信函数,以完成exchange协议的阻断,具体包括:
拦截RPC模块中的目标通信函数;
解析所述目标通信函数中的第一参数,以过滤出与预设变量值不同的目标数据包;
在所述目标数据包中获取所述第一函数的参数地址。
3.根据权利要求2所述的方法,其特征在于,所述在所述目标数据包中获取所述第一函数的参数地址,具体包括:
根据存根文件的结构,定位出所述第一函数的参数地址。
4.根据权利要求2所述的方法,其特征在于,在所述对所述邮件内容进行审计之后,所述方法还包括:
若审计通过则在所述邮件内容中添加混淆代码。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在添加混淆代码时,根据不同的压栈方式,在内嵌汇编中添加相应的汇编指令,以还原堆栈到所述目标通信函数的原始状态。
6.根据权利要求2所述的方法,其特征在于,在所述对所述邮件内容进行审计之后,所述方法还包括:
若审计不通过,则修改所述目标通信函数的返回值,以反馈RPC错误异常信息。
7.一种邮件审计系统,其特征在于,包括:
挂钩模块,用于拦截远程方法调用RPC模块中的目标通信函数,以完成exchange协议的阻断;
解析模块,用于基于已阻断的exchange协议,从第一函数的参数中解析出邮件内容;
审计模块,用于对所述邮件内容进行审计。
8.一种电子设备,其特征在于,包括存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至6任一所述的方法。
9.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910058224.0A CN109787886B (zh) | 2019-01-22 | 2019-01-22 | 一种邮件审计方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910058224.0A CN109787886B (zh) | 2019-01-22 | 2019-01-22 | 一种邮件审计方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109787886A true CN109787886A (zh) | 2019-05-21 |
CN109787886B CN109787886B (zh) | 2021-03-02 |
Family
ID=66501948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910058224.0A Active CN109787886B (zh) | 2019-01-22 | 2019-01-22 | 一种邮件审计方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109787886B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102130847A (zh) * | 2011-02-18 | 2011-07-20 | 杭州迪普科技有限公司 | 一种互联网邮件审计方法及装置 |
CN102801644A (zh) * | 2011-12-31 | 2012-11-28 | 成都市华为赛门铁克科技有限公司 | 邮件行为阻断方法、装置及网关 |
CN103023906A (zh) * | 2012-12-20 | 2013-04-03 | 北京奇虎科技有限公司 | 针对远程过程调用协议进行状态跟踪的方法及系统 |
CN104318162A (zh) * | 2014-09-27 | 2015-01-28 | 深信服网络科技(深圳)有限公司 | 源代码泄露检测方法及装置 |
US20150038112A1 (en) * | 2000-04-25 | 2015-02-05 | Telecommunication Systems, Inc. | Wireless Internet Gateway Limiting Message Distribution |
CN104811453A (zh) * | 2012-09-29 | 2015-07-29 | 北京奇虎科技有限公司 | 主动防御方法及装置 |
CN105262728A (zh) * | 2015-09-10 | 2016-01-20 | 北京北信源软件股份有限公司 | 一种smtp协议非加密邮件的控制方法和系统 |
CN106209606A (zh) * | 2016-08-31 | 2016-12-07 | 北京深思数盾科技股份有限公司 | 一种安全使用web邮件的方法、终端和系统 |
-
2019
- 2019-01-22 CN CN201910058224.0A patent/CN109787886B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150038112A1 (en) * | 2000-04-25 | 2015-02-05 | Telecommunication Systems, Inc. | Wireless Internet Gateway Limiting Message Distribution |
CN102130847A (zh) * | 2011-02-18 | 2011-07-20 | 杭州迪普科技有限公司 | 一种互联网邮件审计方法及装置 |
CN102801644A (zh) * | 2011-12-31 | 2012-11-28 | 成都市华为赛门铁克科技有限公司 | 邮件行为阻断方法、装置及网关 |
CN104811453A (zh) * | 2012-09-29 | 2015-07-29 | 北京奇虎科技有限公司 | 主动防御方法及装置 |
CN103023906A (zh) * | 2012-12-20 | 2013-04-03 | 北京奇虎科技有限公司 | 针对远程过程调用协议进行状态跟踪的方法及系统 |
CN104318162A (zh) * | 2014-09-27 | 2015-01-28 | 深信服网络科技(深圳)有限公司 | 源代码泄露检测方法及装置 |
CN105262728A (zh) * | 2015-09-10 | 2016-01-20 | 北京北信源软件股份有限公司 | 一种smtp协议非加密邮件的控制方法和系统 |
CN106209606A (zh) * | 2016-08-31 | 2016-12-07 | 北京深思数盾科技股份有限公司 | 一种安全使用web邮件的方法、终端和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109787886B (zh) | 2021-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11392429B2 (en) | Modifying application behaviour | |
CN106462389B (zh) | 消息通讯行为的上下文感知策略选择 | |
US10169483B2 (en) | Validation of schema and schema conformance verification | |
CN102801714A (zh) | 旁路式解析和还原tns协议中sql命令的方法 | |
CN111385147B (zh) | 故障模拟方法、装置和计算机可读存储介质 | |
Tu et al. | Building an extensible open vswitch datapath | |
CN101477491A (zh) | 一种统计函数运行状态的方法和装置 | |
CN109656773A (zh) | 一种基于ios系统应用异常崩溃的处理框架 | |
US11507672B1 (en) | Runtime filtering of computer system vulnerabilities | |
CN111966465B (zh) | 一种实时修改宿主机配置参数的方法、系统、设备及介质 | |
CN105631307B (zh) | 截屏方法、装置及系统 | |
CN110798357A (zh) | 一种基于门票s-gds数据映射协议的api通信装置及方法 | |
CN110895468A (zh) | 实现业务增强的方法和装置 | |
CN108399095B (zh) | 支持动态管理定时任务的方法、系统、设备和存储介质 | |
CN109117127A (zh) | 程序代码生成方法、装置及计算机可读存储介质 | |
CN107391274A (zh) | 离线消息的处理方法及装置 | |
CN109559121A (zh) | 交易路径调用异常分析方法、装置、设备及可读存储介质 | |
CN109787886A (zh) | 一种邮件审计方法及系统 | |
US7752504B2 (en) | System diagnostics with dynamic contextual information of events | |
EP2354941B1 (en) | Mainframe injection component and method for manipulating data packets communicated between emulators and mainframes | |
CN110874303B (zh) | 数据采集方法、装置以及设备 | |
CN102722376B (zh) | 基于视频监控绘图的二次编解码方法及其装置 | |
US10740303B2 (en) | Composite file system commands | |
CN108694046B (zh) | 容器装配方法和装置 | |
EP3257235B1 (en) | A method and apparatus for data mediation |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 100195 Room 301, floor 3, building 103, No. 3, minzhuang Road, Haidian District, Beijing Patentee after: Mixin (Beijing) Digital Technology Co.,Ltd. Address before: 100093 301, 3rd floor, building 103, 3 minzhuang Road, Haidian District, Beijing Patentee before: BEIJING BEIXINYUAN INFORMATION SECURITY TECHNOLOGY CO.,LTD. |
|
CP03 | Change of name, title or address |