一种企业数据服务器的保护方法及装置技术领域
本发明涉及数据安全技术领域,尤其涉及一种企业数据服务器的保护方法
及装置。
背景技术
目前,企业的数据服务器中基本都有其需要保护的自有的可执行程序,这
些可执行程序会涉及到企业某些业务的核心代码、算法等重要信息。如果非法
用户进入企业数据服务器,并盗取或者损毁这些可执行程序,会给企业带来巨
大损失。目前,企业为了防止非法用户进入企业数据服务器,所采用的保护企
业数据服务器的方法为:
通过身份认证机制,当确定访问企业数据服务器的用户身份非法时,不允
许该用户访问企业数据服务器;否则,允许该用户访问企业数据服务器。
这种保护企业数据服务器的方法存在以下缺陷:只通过身份认证这种方式
保护企业数据服务器安全性较低,并且,该方法未对企业数据服务器中的可执
行程序实施任何保护措施,用户进入企业数据服务器后,可随意调用可执行程
序或者查看可执行程序对应的代码,容易导致企业重要信息(企业某些业务的
核心代码、算法等信息)的泄露,给企业带来损失。
发明内容
本发明提供一种企业数据服务器的保护方法及装置,用以解决现有技术中
企业数据服务器的方法容易导致企业重要信息泄露,给企业带来损失的问题。
一种企业数据服务器的保护方法,包括:
针对企业数据服务器中的各可执行程序,根据预设的加壳规则,对所述可
执行程序进行加壳处理;
针对加壳后的所述可执行程序生成第一类加载器,所述第一类加载器用于
将加壳后的所述可执行程序还原为加壳前的可执行程序;
确定运行所述加壳后的可执行程序时,将所述第一类加载器作为所述加壳
后的可执行程序的入口。
所述方法中,根据预设的加壳规则,对所述可执行程序进行加壳处理,具
体包括:
按照第一加密算法对所述可执行程序进行加密,并保存所述第一加密算法
对应的第一密钥;
对加密后的所述可执行程序进行先进的可执行程序文件压缩器UPX加壳
处理。
本发明实施例,针对可执行程序先加密后加壳,可提高可执行程序的安全
性。
所述方法中,所述可执行程序对应的代码为java代码时,该方法进一步包
括:
对所述可执行程序进行加壳处理前,对所述java代码进行加壳处理;
针对加壳后的java代码生成第二类加载器,所述第二类加载器用于将加壳
后的java代码还原为加壳前的java代码;
确定调用所述加壳后的java代码时,通过所述第二类加载器调用所述加壳
后的java代码。
本发明实施例,对可执行程序加壳前,先对可执行程序对应的代码进行加
壳处理,可进一步提高可执行程序的安全性。
所述方法中,对所述java代码进行加壳处理,具体包括:
按照第二加密算法,对所述java代码对应的jar包进行加密,并保存第二
加密算法对应的第二密钥,所述jar包位于类库文件中且所述jar包为非公开类
库文件;
修改加密后的所述jar包的后缀名,并将后缀名修改后的jar包保存到资源
文件中。
本发明实施例,修改jar包的后缀名并将后缀名修改后的jar包的保存路径
进行修改,由原来的类库文件路径修改到资源文件路径,从而可大大降低jar
包被盗取和反编译的概率。
所述方法中,针对加壳后的java代码生成第二类加载器,具体包括:
针对加壳后的所述jar包生成第二类加载器,并将第二类加载器保存到加
密前的jar包所在的路径;
则通过所述第二类加载器调用所述加壳后的java代码,具体包括:
通过所述第二类加载器从所述资源文件中查找所述加密后的jar包;
确定查找到所述加密后的jar包时,通过所述第二类加载器根据所述第二
密钥对所述加密后的jar包进行解密;
确定解密成功后,通过所述第二类加载器调用所述解密后的jar包。
本发明实施例中,当非法用户入侵时,只能获取第二类加载器,该第二类
加载器不能直接运行,并且,非法用户并不知道对java代码所使用的加密算法,
也不能知晓加密后的java的保存路径和文件名,这样可以在很大程度上增加非
法用户反编译java代码的难度。
所述方法,还包括:
实时监控所述企业数据服务器的中央处理器CPU、硬盘、内存及输入输出
端口I/O的运行状态;
确定CPU、硬盘、内存及I/O的运行状态中至少一个运行状态出现异常时,
发出告警。
本发明实施例,由于非法人员在非法操作存储或运行可执行程序的设备
(企业数据服务器)时,很有可能会导致该设备运行异常,因此,实时监控该
设备的运行状态,当该设备的运行状态出现异常时,该设备可能被非法入侵,
发出告警,以提醒维护人员对该设备以该设备中的可执行程序维护。
所述方法,确定所述加壳后的可执行程序被异常调用时,删除所保存的加
密过程中产生的密钥。
本发明实施例,通过删除密钥的方式,使非法人员无法解密加密后的可执
行程序,从而保证了可执行程序的安全。
本发明还提供一种企业数据服务器的保护装置,包括:
加壳单元,用于针对企业数据服务器中的各可执行程序,根据预设的加壳
规则,对所述可执行程序进行加壳处理;
生成单元,用于针对加壳后的所述可执行程序生成第一类加载器,所述第
一类加载器用于将加壳后的所述可执行程序还原为加壳前的可执行程序;
确定单元,用于确定运行所述加壳后的可执行程序时,将所述第一类加载
器作为所述加壳后的可执行程序的入口。
所述装置中,所述加壳单元具体用于:
按照第一加密算法对所述可执行程序进行加密,并保存所述第一加密算法
对应的第一密钥;
对加密后的所述可执行程序进行先进的可执行程序文件压缩器UPX加壳
处理。
所述装置,所述可执行程序对应的代码为java代码时,对所述可执行程序
进行加壳处理前,
所述加壳单元还用于:对所述java代码进行加壳处理;
所述生成单元还用于:针对加壳后的java代码生成第二类加载器,所述第
二类加载器用于将加壳后的java代码还原为加壳前的java代码;
所述确定单元,还用于确定调用所述加壳后的java代码时,通过所述第二
类加载器调用所述加壳后的java代码。
所述装置中,所述加壳单元在对所述java代码进行加壳处理时,具体用于:
按照第二加密算法,对所述java代码对应的jar包进行加密,并保存第二
加密算法对应的第二密钥,所述jar包位于类库文件中且所述jar包为非公开类
库文件;
修改加密后的所述jar包的后缀名,并将后缀名修改后的jar包保存到资源
文件中。
所述装置中,所述生成单元在针对加壳后的java代码生成第二类加载器
时,具体用于:
针对加壳后的所述jar包生成第二类加载器,并将第二类加载器保存到加
密前的jar包所在的路径;
则所述确定单元在通过所述第二类加载器调用所述加壳后的java代码时,
具体用于:
通过所述第二类加载器从所述资源文件中查找所述加密后的jar包;
确定查找到所述加密后的jar包时,通过所述第二类加载器根据所述第二
密钥对所述加密后的jar包进行解密;
确定解密成功后,通过所述第二类加载器调用所述解密后的jar包。
所述装置,还包括:
监控单元,实时监控所述企业数据服务器的中央处理器CPU、硬盘、内存
及输入输出端口I/O的运行状态;确定CPU、硬盘、内存及I/O的运行状态中
至少一个运行状态出现异常时,发出告警。
所述装置中,所述加壳单元还用于:确定所述加壳后的可执行程序被异常
调用时,删除所保存的加密过程中产生的密钥。
利用本发明实施例提供的企业数据服务器的保护方法及装置,具有以下有
益效果:通过对企业数据服务器中的可执行程序加壳,可执行程序对应的核心
代码或者算法是不可见的,此时,即使非法用户进去企业数据服务器,也无法
修改或窃取可执行程序的代码和算法,从而在一定程度上保证了企业数据服务
器中的数据、核心代码算法的安全,使得用户无法随意调用可执行程序或者查
看可执行程序对应的代码,在一定程度上提高可执行程序的安全性,防止可执
行程序被恶意修改和破解,保证了企业数据服务器中的重要信息(企业某些业
务的核心代码、算法等信息)不被泄露。
附图说明
图1为本发明实施例提供的企业数据服务器的保护方法流程图之一;
图2为本发明实施例提供的对可执行程序进行加壳处理的方法流程图之
一;
图3为本发明实施例提供的企业数据服务器保护方法流程图之二;
图4为本发明实施例提供的对可执行程序进行加壳处理的方法流程图之
二;
图5为本发明实施例提供的通过第二类加载器调用加壳后的java代码的方
法流程图;
图6为本发明实施例提供的企业数据服务器的保护方法流程图之三;
图7为本发明实施例提供的企业数据服务器的保护装置示意图。
具体实施方式
下面结合附图和实施例对本发明提供的企业数据服务器的保护方法进行
更详细地说明。
本发明实施例提供一种企业数据服务器的保护方法,如图1所示,包括:
步骤101,针对企业数据服务器中的各可执行程序,根据预设加壳规则,
对所述可执行程序进行加壳处理。
具体的,预设的加壳规则可以为UPX(the Ultimate Packer for eXecutables,先进的可执行程序文件压缩器)加壳,即,对所述可执行程序进行UPX加壳处理。加壳后的可执行程序被保护起来,从而使可执行程序不容易被修改和破解。
步骤102,针对加壳后的所述可执行程序生成第一类加载器,所述第一类
加载器用于将加壳后的所述可执行程序还原为加壳前的可执行程序。
具体的,加壳后的可执行程序外添加了一层保护壳,之后访问加壳后的可
执行程序时,需要通过与加壳后的可执行程序对应的类加载器访问该加壳后的
可执行程序,本发明实施例根据,根据步骤101中预设的加壳规则,生成第一
类加载器,该第一类加载器用于将加壳后的可执行程序还原为加壳前的可执行
程序。
步骤103,确定运行所述加壳后的可执行程序时,将所述第一类加载器作
为所述加壳后的可执行程序的入口。
具体的,在运行加壳后的可执行程序时,需要将第一类加载器作为所述加
壳后的可执行程序的入口,即先通过第一类加载器将加壳后的可执行程序还原
为加壳前的可执行程序(源可执行程序),从而运行该可执行程序。
本发明实施例,通过对企业数据服务器中的可执行程序加壳,可执行程序
对应的核心代码或者算法是不可见的,此时,即使非法用户进去企业数据服务
器,也无法修改或窃取可执行程序的代码和算法,从而在一定程度上保证了企
业数据服务器中的数据、核心代码算法的安全,使得用户无法随意调用可执行
程序或者查看可执行程序对应的代码,在一定程度上提高可执行程序的安全
性,防止可执行程序被恶意修改和破解,保证了企业数据服务器中的重要信息
(企业某些业务的核心代码、算法等信息)不被泄露。
优选地,步骤101根据预设的加壳规则,对所述可执行程序进行加壳处理,
如图2所示,具体包括:
步骤201,按照第一加密算法对所述可执行程序进行加密,并保存所述第
一加密算法对应的第一密钥。
具体的,第一加密算法可采用现有的加密算法,这里不针对加密算法进行
详述。保存第一加密算法对应的第一密钥,用于对可执行程序进行解密。确定
所述加壳后的可执行程序被异常调用时,删除所保存的加密过程中产生的第一
密钥,加壳后的可执行程序被异常调用,有很大可能是非法人员在非法操作该
可执行程序,因此,通过删除第一密钥的方式,使非法人员无法解密加密后的
可执行程序,从而保证了可执行程序的安全。
步骤202,对加密后的所述可执行程序进行UPX加壳处理。
本发明实施例,针对可执行程序先加密后加壳,可提高可执行程序的安全
性。
优选地,如图3所示,当所述可执行程序对应的代码为java代码时,进一
步包括:
步骤301,对所述可执行程序进行加壳处理前,对可执行程序对应的java
代码进行加壳处理。
具体的,在对可执行程序对应的文件加壳处理前,先对可执行程序对应的
代码进行加壳处理,特别的,当可执行程序对应的代码为java代码时,对该java
代码进行加壳处理。
步骤302,针对加壳后的java代码生成第二类加载器,所述第二类加载器
用于将加壳后的java代码还原为加壳前的java代码。
步骤303,确定调用所述加壳后的java代码时,通过所述第二类加载器调
用所述加壳后的java代码。
具体的,第二类加载器用于在执行所述加壳后的java代码时,作为java
代码的入口,将加壳后的java代码还原为加壳前的java代码,从而实现调用
加壳后的java代码。
本发明实施例,对可执行程序加壳前,先对可执行程序对应的代码进行加
壳处理,可进一步提高可执行程序的安全性。
优选地,步骤301对所述java代码进行加壳处理,如图4所示,具体包括:
步骤401,按照第二加密算法,对所述java代码对应的jar包进行加密,
并保存第二加密算法对应的第二密钥,所述jar包位于类库文件中且所述jar
包为非公开类库文件。
第二加密算法可以与第一加密算法相同也可以不同,这里不做限定,第二
加密算法可采用现有的加密算法,这里不做具体的加密算法进行阐述。
步骤402,修改加密后的所述jar包的后缀名,并将后缀名修改后的jar包
保存到资源文件中。
具体的,修改jar包的后缀名并将后缀名修改后的jar包的保存路径进行修
改,由原来的类库文件路径修改到资源文件路径,从而可大大降低jar包被盗
取和反编译的概率,其中,资源文件用户保存图片、视频等资源。
优选地,确定所述加壳后的java代码被异常调用时,删除所保存的加密过
程中产生的第二密钥,加壳后的java代码被异常调用,有很大可能是非法人员
在非法调用java代码,因此,通过删除第二密钥的方式,使非法人员无法解密
加密后的java代码,从而保证了java代码的安全。
优选地,步骤302针对加壳后的java代码生成第二类加载器,具体包括:
针对加壳后的所述jar包生成第二类加载器,并将该第二类加载器保存到
加密前的jar包所在的路径,即,保存到加密前的jar包所在的类库文件中;则
步骤303通过所述第二类加载器调用所述加壳后的java代码,如图5所示,具
体包括:
步骤501,通过所述第二类加载器从所述资源文件中查找所述加密后的jar
包。
步骤502,确定查找到所述加密后的jar包时,通过所述第二类加载器根据
所述第二密钥对所述加密后的jar包进行解密。
步骤503,确定解密成功后,通过所述第二类加载器调用所述解密后的jar
包。
由本发明实施例可看出,第二类加载器用于根据第二密钥、以及加密后的
jar包的文件名和保存路径查找到并解密加密后的java代码。本发明实施例中,
当非法用户入侵时,只能获取第二类加载器,该第二类加载器不能直接运行,
并且,非法用户并不知道对java代码所使用的加密算法,也不能知晓加密后的
java的保存路径和文件名,这样可以在很大程度上增加非法用户反编译java代
码的难度。优选地,对重要的java代码或用java代码编写的重要算法进行加
壳处理。
进一步地,在对java代码进行加密前,对该java代码进行混淆,比如:
将java代码中的各种变量、函数、类的名字改写成无意义的名字,提高阅读难
度,重写代码中的部分逻辑,将其变成功能上等价但更难理解的形式。这样即
使非法用户破译了加壳后的java代码,也无法理解java代码的具体内容。
优选地,如图6所示,本发明实施例提供的企业数据服务器的保护方法,
还包括:
步骤601,实时监控所述企业数据服务器的CPU(Central Processing Unit,
中央处理器)、硬盘、内存及I(INPUT,输入)/O(OUTPUT,输出)的运行
状态。
步骤602,确定CPU、硬盘、内存及I/O的运行状态中至少一个运行状态
出现异常时,发出告警。
具体的,实时监控运行或存储可执行程序的设备中的CPU、硬盘、内存及
I/O的运行状态,确定该设备出现CPU的负载过重、内存满载、硬盘被替换以
及I/O异常中的一种或几种情况时,发出告警。
由于非法人员在非法操作存储或运行可执行程序的设备(企业数据服务
器)时,很有可能会导致该设备运行异常,因此,实时监控该设备的运行状态,
当该设备的运行状态出现异常时,该设备可能被非法入侵,发出告警,以提醒
维护人员对该设备以该设备中的可执行程序维护。
此外,还可通过以下方式保护企业数据服务器:
方式一:提供ACL(Access Control List,访问控制列表),关闭对外冗余
接口,拒绝ACL控制表之外的非法网络协议IP地址访问可执行程序,具体包
括:接收到用户的访问请求时,根据该请求中携带的源IP地址,进行ACL表
匹配;确定在ACL表中匹配到用户的源IP地址时,允许该用户访问企业数据
服务器;确定在ACL表中未匹配到用户的源IP地址时,不允许该用户访问企
业数据服务器。
方式二:启用tcp_wrappers防火墙,外部访问企业数据服务器时,只能通
过防火墙端口映射到企业数据服务器。
方式三:对I/O端口进行限制,输出端口仅供输出,输入端口仅供输入。
方式四:在企业数据服务器机箱上设置机箱锁,优选设置防拆锁,从而防
止非法人员暴力拆解企业数据服务器。
方式五:企业数据服务器上不外接显示器、键盘、鼠标等,具体可在企业
数据服务器上显示器、鼠标以及键盘对应的接口进行加锁,以实现企业数据服
务器上不外接显示器、键盘、鼠标等目的,优选地,该企业数据服务器采用双
电源,从而防止正在使用的电源故障时,自动切换到正常电源,并且,可在该
企业数据服务器上设置多网口,以实现自动切换IP。进一步地,该企业数据服
务器上可设置内置键盘和液晶显示器。
方式六,企业数据服务器使用安全外壳协议(SSH),拒绝telnet访问,并
修改SSH的默认端口。
此外,还可通过以下方式保护企业数据服务器:
方式七,对输入企业数据服务器的消息的下行消息进行加密,保护输入企
业服务器内的消息不会被截取。对企业数据服务器输出的上行消息,使用明文
加密完整性校验机制,保障企业数据服务器输出的消息不会被篡改。
方式八,对企业数据服务器中存储的数据、文件等使用AES-256-CBC方
式加密,一行一密,并且进行mac校验,对密文进行处理,增强容错能力。保
护静态存储和处理过程的数据私密性要求,避免被恶意攻击者直接复制企业数
据服务器中的数据或者文件,导致企业数据服务器中存储的数据泄露。
基于与本发明实施例提供的企业数据服务器的保护方法同样的发明构思,
本发明实施例还提供一种企业数据服务器的保护装置,如图7所示,包括:
加壳单元701,用于针对企业数据服务器中的各可执行程序,根据预设的
加壳规则,对所述可执行程序进行加壳处理;
生成单元702,用于针对加壳后的所述可执行程序生成第一类加载器,所
述第一类加载器用于将加壳后的所述可执行程序还原为加壳前的可执行程序;
确定单元703,用于确定运行所述加壳后的可执行程序时,将所述第一类
加载器作为所述加壳后的可执行程序的入口。
所述装置中,所述加壳单元具体用于:
按照第一加密算法对所述可执行程序进行加密,并保存所述第一加密算法
对应的第一密钥;
对加密后的所述可执行程序进行先进的可执行程序文件压缩器UPX加壳
处理。
所述装置,所述可执行程序对应的代码为java代码时,对所述可执行程序
进行加壳处理前,
所述加壳单元还用于:对所述java代码进行加壳处理;
所述生成单元还用于:针对加壳后的java代码生成第二类加载器,所述第
二类加载器用于将加壳后的java代码还原为加壳前的java代码;
所述确定单元,还用于确定调用所述加壳后的java代码时,通过所述第二
类加载器调用所述加壳后的java代码。
所述装置中,所述加壳单元在对所述java代码进行加壳处理时,具体用于:
按照第二加密算法,对所述java代码对应的jar包进行加密,并保存第二
加密算法对应的第二密钥,所述jar包位于类库文件中且所述jar包为非公开类
库文件;
修改加密后的所述jar包的后缀名,并将后缀名修改后的jar包保存到资源
文件中。
所述装置中,所述生成单元在针对加壳后的java代码生成第二类加载器
时,具体用于:
针对加壳后的所述jar包生成第二类加载器,并将第二类加载器保存到加
密前的jar包所在的路径;
则所述确定单元在通过所述第二类加载器调用所述加壳后的java代码时,
具体用于:
通过所述第二类加载器从所述资源文件中查找所述加密后的jar包;
确定查找到所述加密后的jar包时,通过所述第二类加载器根据所述第二
密钥对所述加密后的jar包进行解密;
确定解密成功后,通过所述第二类加载器调用所述解密后的jar包。
所述装置,还包括:
监控单元704,实时监控所述企业数据服务器的中央处理器CPU、硬盘、
内存及输入输出端口I/O的运行状态;确定CPU、硬盘、内存及I/O的运行状
态中至少一个运行状态出现异常时,发出告警。
所述装置中,所述加壳单元还用于:确定所述加壳后的可执行程序被异常
调用时,删除所保存的加密过程中产生的密钥。
利用本发明实施例提供的企业数据服务器的保护方法及装置,具有以下有
益效果:通过对企业数据服务器中的可执行程序加壳,可执行程序对应的核心
代码或者算法是不可见的,此时,即使非法用户进去企业数据服务器,也无法
修改或窃取可执行程序的代码和算法,从而在一定程度上保证了企业数据服务
器中的数据、核心代码算法的安全,使得用户无法随意调用可执行程序或者查
看可执行程序对应的代码,在一定程度上提高可执行程序的安全性,防止可执
行程序被恶意修改和破解,保证了企业数据服务器中的重要信息(企业某些业
务的核心代码、算法等信息)不被泄露。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产
品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和
/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/
或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入
式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算
机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一
个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设
备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中
的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个
流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使
得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处
理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个
流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基
本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要
求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发
明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及
其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。