CN107077540B - 用于提供基于云的应用安全服务的方法和系统 - Google Patents
用于提供基于云的应用安全服务的方法和系统 Download PDFInfo
- Publication number
- CN107077540B CN107077540B CN201580043438.0A CN201580043438A CN107077540B CN 107077540 B CN107077540 B CN 107077540B CN 201580043438 A CN201580043438 A CN 201580043438A CN 107077540 B CN107077540 B CN 107077540B
- Authority
- CN
- China
- Prior art keywords
- security
- package
- library
- run
- binary code
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 99
- 238000000354 decomposition reaction Methods 0.000 claims abstract description 18
- 238000003786 synthesis reaction Methods 0.000 claims abstract description 10
- 230000008569 process Effects 0.000 claims description 73
- 238000012795 verification Methods 0.000 claims description 18
- 239000000203 mixture Substances 0.000 claims description 9
- 230000002194 synthesizing effect Effects 0.000 claims description 4
- 230000015572 biosynthetic process Effects 0.000 claims description 3
- 239000000284 extract Substances 0.000 claims description 3
- 238000001514 detection method Methods 0.000 claims 2
- 239000000126 substance Substances 0.000 claims 1
- 230000006870 function Effects 0.000 description 51
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 7
- 229910002056 binary alloy Inorganic materials 0.000 description 4
- 238000010200 validation analysis Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- RZVAJINKPMORJF-UHFFFAOYSA-N Acetaminophen Chemical compound CC(=O)NC1=CC=C(O)C=C1 RZVAJINKPMORJF-UHFFFAOYSA-N 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- 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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/106—Enforcing content protection by specific content processing
- G06F21/1062—Editing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/16—Obfuscation or hiding, e.g. involving white box
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/60—Digital content management, e.g. content distribution
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Power Engineering (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及用于提供基于云的应用安全服务的方法和系统,并且根据本发明的用于提供基于云的应用安全服务的系统包括:客户端设备,其包括编译单元、运行包配置单元、上传单元和下载单元;以及云设备,其包括运行包分解单元、安全库提供单元、安全库应用单元、以及运行包重新合成单元,使得可以容易应用基于云的安全且快速响应黑客的攻击。
Description
技术领域
本发明涉及用于提供基于云的应用安全服务的方法和系统。
背景技术
应当指出,下面要提到的细节仅仅提供与当前实施例相关的背景信息而不构成现有技术。
最近,已经频繁地出现了如下情况,其中未授权的用户:侵入其他人的计算机以窃取信息;使用逆向工程操纵计算机程序的二进制代码以使计算机程序执行与原本期望的不同的功能;或者使用诸如调试器的工具来操纵二进制代码以当计算机程序正在运行时滥用二进制代码。例如,如果想要操纵在联机游戏用户的PC上操作的客户端程序的人们对要被自动执行的程序进行逆向工程设计和操纵,则游戏商品可以以不恰当的方式来获得。
因此,需要保护与应用的源代码相对应的二进制代码。当前,应用的二进制代码一般通过将安全解决方案软件开发工具包(SDK)应用到源代码来保护。当SDK被用于保护应用的二进制代码时,首先必须良好地通知SDK的用途并且之后将SDK的库添加到现有源代码。另外,由于现有源代码可以被改变,所以需要相当多的时间和开发者的工作。另外,前述方法不能够针对由黑客对二进制代码的攻击采取快速动作。
发明内容
为了解决上述问题,本发明是要提供一种用于提供基于云的应用安全服务的方法和系统,其使得能够基于云来提供安全应用中的方便性并且针对黑客攻击采取快速动作。
根据本发明的一方面,根据本发明的示例性实施例的一种用于在包括客户端设备和云设备的安全服务提供系统中提供基于云的应用安全服务的方法包括:二进制生成过程,在二进制生成过程中客户端设备通过对应用源进行编译来生成二进制;运行包合成过程,在运行包合成过程中客户端设备合成运行包,运行包包括在二进制生成过程中生成的二进制;上传过程,在上传过程中客户端设备将在运行包合成过程中合成的运行包上传到云设备中;运行包分解过程,在运行包分解过程中云设备通过分解在上传过程中上传的运行包来提取二进制;安全库应用重新合成过程,在安全库应用重新合成过程中云设备通过将多个安全库中的一个应用到在运行包分解过程中提取的二进制来生成应用了安全的二进制;运行包重新合成过程,在运行包重新合成过程中云设备重新合成应用了安全的运行包,应用了安全的运行包包括在安全库应用过程中生成的应用了安全的二进制;以及下载过程,在下载过程中客户端设备下载在包重新合成过程中重新合成的应用了安全的运行包。
安全库可以包括用于完整性验证的哈希验证函数,并且该方法还可以包括哈希代码生成过程,在哈希代码生成过程中云设备生成针对安全库中的哈希验证函数的关于在运行包分解过程中提取的二进制的哈希代码。
除了哈希验证函数,安全库还可以包括反调试函数、反转储函数或反调试函数和转储函数。
该方法还可以包括安全标签设置过程,在安全标签设置过程中客户端设备在二进制生成过程之前设置针对应用源的特定函数的安全标签。
该方法还可以包括调试库连接过程,在调试库连接过程中,当检测到在安全标签设置过程中设置的安全标签时,客户端设备自动地将相关调试库连接到安全标签。
运行包分解过程可以包括通过解析在上传过程中上传的运行包来提取调试库,并且安全库应用过程可以包括通过将在运行包分解过程中提取的调试库替换为多个安全库中的一个来生成应用了安全的二进制。
哈希代码生成过程可以生成关于在运行包分解过程中提取的二进制中的在其上设置了安全标签的特定函数的哈希代码。
该方法还可以包括编码过程,在编码过程中云设备在哈希代码生成过程之后通过使用所提供的与多个安全库中的一个相对应的编码键来对在安全库应用过程中生成的应用了安全的二进制进行编码。
根据本发明的另一方面,根据本发明的另一示例性实施例的一种用于在包括客户端设备和云设备的安全服务提供系统中提供基于云的应用安全服务的方法包括:二进制生成过程,在二进制生成过程中客户端设备通过对应用源进行编译来生成二进制;安全库提供过程,在安全库提供过程中云设备将多个安全库中的一个提供给客户端设备;以及安全库应用过程,在安全库应用过程中客户端设备通过将在安全库提供过程中提供的安全库应用到在二进制生成过程生成的二进制来生成应用了安全的二进制。
根据本发明的另一方面,提供了根据本发明的示例性实施例的一种用于提供基于云的应用安全服务的系统,其包括客户端设备和云设备,其中,客户端设备包括:编译器,其被配置为通过对应用源进行编译来生成二进制;运行包合成单元,其被配置为合成运行包,运行包包括由编译器生成的二进制;上传器,其被配置为将由运行包合成单元合成的运行包上传到云设备中;以及下载器,其被配置为从云设备下载应用了安全的运行包,对应用了安全的运行包应用了安全;并且云设备包括:运行包分解单元,其被配置为通过分解由上传器上传的运行包来提取二进制;安全库提供单元,其被配置为提供多个安全库中的一个;安全库应用单元,其被配置为通过将从安全库提供单元提供的安全库应用到由运行包分解单元提取的二进制来生成应用了安全的二进制;以及运行包重新合成单元,其被配置为重新合成包括由安全库应用单元生成的应用了安全的二进制的运行包。
根据本发明的另一方面,提供了根据本发明的另一示例性实施例的一种用于提供基于云的应用安全服务的系统,其包括客户端设备和云设备,其中,云设备包括安全库提供单元,安全库提供单元被配置为将多个安全库中的一个提供给客户端设备,并且客户端设备包括:编译器,其被配置为通过对应用源进行编译来生成二进制;以及安全库应用单元,其被配置为通过将从云设备提供的安全库应用到由编译器生成的二进制来生成应用了安全的二进制。
如以上所描述的,根据当前示例性实施例,能够基于云来提供安全应用中的方便性并且针对黑客攻击采取快速动作。
另外,在运行具有运行的敏感程序并且需要针对二进制操纵的安全保护的计算机程序中,将安全标签应用到需要使用存储器哈希的针对完整性验证的保护的重要函数,并且仅仅当应用了安全标签的函数被导入时使应用了安全标签的函数经受使用存储器哈希的二进制操纵监测,由此防止由哈希计算的负担引起的运行计算机程序和系统的性能的退化。
同时,安全标签适合于需要结合账户认证、密码输入、支付、安全保护(哈希检查、反调试、等等)、编码/解码、认证证书验证、产品购买和销售、初始化、服务器通信、设置文件(安全文件)读取和写入、操作结果的判断、以及程序运行保护的重要函数,而非以短的间隔迭代地导入的函数。这些函数一般具有不是按定期时间段迭代地导入的特征。另外,甚至当函数被迭代地导入时,函数可以在函数已经在函数的完整性验证之后再次被导入时在特定时间段内免除完整性验证。
附图说明
本发明的以上和其他方面、特征和优点将从结合附图进行的下面的详细描述中变得更加明显,在附图中;
图1是示意性地图示了根据本发明的示例性实施例的基于云的应用安全服务系统的框图;
图2是图示了图1的客户端设备的详细框图;
图3是图示了图1的云设备的详细框图;
图4是图示了根据本发明的示例性实施例的用于提供应用安全服务的方法的流程图;
图5是图示了图1的用户设备的详细框图;
图6图示了与被下载到图5中图示的主存储器中的应用程序相关的配置;以及
图7图示了根据本发明的示例性实施例的其中应用导入包含于动态库中的模块的过程。
具体实施方式
在下文中,将参考附图详细描述当前示例性实施例。
根据当前实施例的用于提供基于云的应用安全服务的方法可以被应用到能够生成原代码的任何程序语言,例如C/C++。该方法可以被实现在包括个人计算机(PC)、服务器和智能电话的硬件中或者应用软件运行在其上的诸如Windows、UNIX、Linux和OS X的任何操作系统中。
图1是示意性地图示了根据本发明的示例性实施例的基于云的应用安全服务系统的框图。
如图1所示,应用安全服务系统包括客户端设备100、云设备150和用户设备190。
客户端设备100包括客户端存储器110、编译器120、运行包合成单元125、上传器130和下载器140。
客户端存储器110存储完整开发的应用程序的应用源代码112。编译器120对存储在客户端存储器110中的应用源代码112进行编译以生成二进制代码114,并且客户端存储器110存储所生成的二进制代码114。运行包合成单元125将存储在客户端存储器110中的二进制代码114与其他资源进行组合以合成运行包116,并且客户端存储器110存储所合成的运行包116。
上传器130将存储在客户端存储器110中的运行包116上传到云设备150,下载器140从云设备150下载应用了安全的运行包118,并且客户端存储器110存储所下载的应用了安全的运行包118。
云设备150包括云存储器160、运行包分解单元170、安全库应用单元172、哈希代码生成单元174、编码器176、运行包重新合成单元178以及安全库提供单元180。
云存储器160存储从上传器130上传的运行包116。运行包分解单元170分解运行包以提取二进制代码114,并且云存储器160存储二进制代码114。安全库应用单元172将从安全库提供单元180提供的安全库应用到二进制代码114。
哈希代码生成单元174通过在应用了安全的二进制代码上使用哈希函数来生成哈希代码。这里,哈希代码生成单元174可以生成每个文件或存储器的哈希代码。编码器176通过在应用了安全的二进制代码和由哈希代码生成单元174生成的哈希代码上使用编码算法来执行编码。运行包重新合成单元178将应用了安全的二进制代码与其他资源进行组合以将它们重新合成为应用了安全的运行包118。
安全库提供单元180将安全库提供给安全库应用单元172并存储多个安全库。多个安全库包括不同形式的安全库,因为每个通过使用代码混淆来生成。安全库一般包括哈希验证函数并且可以包括反调试函数,其防止由诸如调试器的工具静态地或动态地分析程序或者防止程序由插入的恶意代码攻击,并且可以包括反转储函数,其防止运行过程的存储器状态转储。
用户设备190下载存储在客户端存储器110中的应用了安全的运行包118以运行应用。
图2是图示了图1的客户端设备的详细框图。
如图2所示,客户端设备100包括客户端存储器210、安全标签编辑器220、安全标签检查器230、安全应用编译器240、安卓安装包(APK)合成单元250、APK上传器260以及APK下载器270。
客户端存储器210存储完整开发的应用程序的应用源代码212。
提供安全标签编辑器220以编辑针对应用源代码212中的需要安全的特定函数的安全标签。安全标签可以包括指示完整性验证的开始点的开始标签和指示其结束点的结束标签。将由安全标签编辑器220编辑的应用了安全标签的源代码213存储在客户端存储器210中。
同时,安全标签编辑器220可以添加关于安全标签的调试库。将调试库替换为云设备150的安全库应用单元172中的发行的安全库。一般地,当软件开发工具包(SDK)被应用时,反调试函数常常使调试甚至在开发中变得困难。然而,在当前实施例中,添加调试库以消除由开发中的调试引起的不方便。
安全标签检查器230检查应用了安全标签的源代码213中的安全标签,并且如果发现了安全标签则自动地将该安全标签连接到调试库。
安全应用编译器240对包括由安全标签检查器230检查的安全标签被应用到其的函数中的至少一个或多个的源代码进行编译,以生成应用了安全标签的二进制代码214,并且客户端存储器210存储所生成的应用了安全标签的二进制代码214。
APK合成单元250将存储在客户端存储器210中的应用了安全标签的二进制代码与其他资源进行组合以合成应用了安全标签的运行包216,并且客户端存储器210存储所合成的应用了安全标签的运行包216。
APK上传器260将存储在客户端存储器210中的应用了安全标签的运行包216上传到云设备150,APK下载器270从云设备150下载应用了安全的运行包218,并且客户端存储器210存储所下载的应用了安全的运行包218。
图3是图示了图1的云设备的详细框图。
如图3所示,云设备150包括云存储器310、APK解析器320、安全库应用单元330、哈希代码生成单元340、编码器350、APK重新合成单元360、以及安全库提供单元370。
云存储器310存储由APK上传器260上传的应用了安全标签的运行包216。APK解析器320解析APK文件的应用了安全标签的运行包216以提取调试库。
安全库应用单元330将所解析的调试库替换为从安全库提供单元370提供的发行的安全库。另外,除了发行的安全库,安全库应用单元330还可以被提供有编码键。
哈希代码生成单元340可以通过使用发行的应用了安全的二进制代码的应用了安全标签的特定函数作为哈希函数(MD5、SHA、校验和、等等)的输入来生成哈希代码。根据实施例,哈希代码生成单元340还可以通过使用运行程序必需的必要文件和应用文件作为哈希函数(MD5、SHA、校验和、等等)的输入来生成每个文件的哈希代码,并且可以生成包括每个文件的所生成的哈希代码的哈希寄存器。在基于整体的应用中运行程序必需的必要文件可以例如为libmono.so、libunity.so MonoSecurity.dll、UnityEngine.dll、等等。
编码器350通过使用从安全库提供单元370提供的编码键根据诸如DES、AES、RSA、等等的编码算法来对发行的应用了安全的二进制代码的应用了安全标签的特定函数进行编码。在这样的情况下,根据实施例,编码器350还可以对动态库进行编码。另外,编码器350可以对由哈希代码生成单元340生成的哈希代码进行编码。
APK重新合成单元360将所编码的发行的应用了安全的二进制代码与其他资源进行组合以将它们重新合成为运行包。
安全库提供单元370可以存储多个安全库和编码键372。多个安全库和编码键包括具有不同值的安全库,因为每个通过使用代码混淆来生成。安全库提供单元370给安全库应用单元330提供在多个安全库和编码键之中随机地选择的安全动态库和编码键。安全库提供单元370删除已经被使用过的安全库和编码键,以防止它们被重复使用。
尽管图3示出了一个云设备150包括云存储器310、APK解析器320、安全库应用单元330、哈希代码生成单元340、编码器350、APK重新合成单元360和安全库提供单元370(其不是指一个物理集成的配置)中的全部,但是安全库提供单元370可以从另一设备来提供。
图4是图示了根据本发明的示例性实施例的用于提供应用安全服务的方法的流程图。
当应用开发者已经开发了应用程序时,客户端存储器210存储所开发的应用程序的应用源代码212(S402)。
应用开发者通过使用安全标签编辑器220来设置针对应用源代码212中的需要安全的特定函数的安全标签(S404)。例如,在包括多个函数的计算机程序的源代码中,应用开发者可以在需要结合账户认证、密码输入、支付、安全保护(哈希检查、反调试、等等)、编码、解码、认证证书验证、产品购买和销售、初始化、服务器通信、设置文件(安全文件)读取和写入、操作结果的判断、以及程序运行保护的重要函数中的至少一个或多个函数上设置安全标签。这些函数一般具有不是按时间段迭代地导入的特征但是接收来自想要操纵计算机程序的那些人的重大关注。因此,即使仅仅这些函数的完整性得到验证,也可以实现高度有效性并且可以使由完整性验证引起的运行程序的性能的退化最小化。
安全标签检查器230检查应用了安全标签的源代码213中的安全标签,并且如果发现了安全标签则自动地将该安全标签连接到调试库(S406)。
安全应用编译器240对包括存储在客户端存储器210中的安全标签被应用到其的函数中的至少一个或多个的源代码进行编译,以生成应用了安全标签的二进制代码214(S408),并且客户端存储器210存储所生成的应用了安全标签的二进制代码214。
APK合成单元250将存储在客户端存储器210中的应用了安全标签的二进制代码214与其他资源进行组合以合成应用了安全标签的运行包216(S410),并且客户端存储器210存储所合成的应用了安全标签的运行包216。
APK上传器260将存储在客户端存储器210中的应用了安全标签的运行包216上传到云设备150(S412)。
云存储器310存储由APK上传器260上传的应用了安全标签的运行包216,并且APK解析器320解析APK文件的应用了安全标签的运行包216以提取调试库(S414)。
安全库应用单元330将所解析的调试库替换为从安全库提供单元370提供的发行的安全库(S416)。
哈希代码生成单元340可以通过使用发行的应用了安全的二进制代码的应用了安全标签的特定函数作为哈希函数(MD5、SHA、校验和、等等)的输入来生成哈希代码(S418)。根据实施例,哈希代码生成单元340还可以通过使用运行程序必需的必要文件和应用文件作为哈希函数(MD5、SHA、校验和、等等)的输入来生成每个文件的哈希代码,并且可以生成包括每个文件的所生成的哈希代码的哈希寄存器。在基于整体的应用中运行程序必需的必要文件可以例如为libmono.so、libunity.so MonoSecurity.dll、UnityEngine.dll、等等。
编码器350通过使用从安全库提供单元370提供的编码键根据诸如DES、AES、RSA、等等的编码算法来对发行的应用了安全的二进制代码的应用了安全标签的特定函数进行编码(S420),并且根据实施例,编码器350还可以对动态库进行编码。
APK重新合成单元360将所编码的发行的应用了安全的二进制代码与其他资源进行组合以将它们重新合成为应用了安全的运行包218(S422)。
APK下载器270从云设备150下载应用了安全的运行包218(S424),并且客户端存储器210存储所下载的应用了安全的运行包218。
图5是图示了图1的用户设备的详细框图。
通过网络560或诸如存储介质的分布信道将存储在客户端存储器210中的应用了安全的运行包218存储在用户设备190的辅助存储器540中。例如,在运行游戏程序时,将运行包下载到主存储器520中并由CPU 510运行。在显示器530上显示游戏程序的运行结果。游戏程序可以通过输入单元550或网络560接收新输入值。
根据本发明的示例性实施例的用户设备190可以为用户终端,例如个人计算机(PC)、笔记本电脑、平板PC、个人数字助理(PDA)、游戏控制台、便携式多媒体播放器(PMP)、便携式游戏站(PSP)、无线通信终端、智能电话、TV和媒体播放器。根据本发明的示例性实施例的用户设备190可以为服务器的终端,例如应用服务器或服务型服务器。根据本发明的示例性实施例的用户设备190可以是指包括以下的各种设备:(i)通信设备,例如通信调制解调器,其用于执行与不同类型的设备或有线/无线通信网络的通信;(ii)存储器,其存储用于运行程序的数据;以及(iii)微处理器,其运行程序以执行计算和控制。根据至少一个示例性实施例,存储器可以为计算机可读记录/存储介质,例如随机访问存储器(RAM)、只读存储器(ROM)、闪存存储器、光盘、磁盘和固态盘(SSD)。根据至少一个示例性实施例,微处理器可以被编程为选择性地执行在说明书中描述的操作和功能中的一个或多个。
图6图示了与被下载到图5中图示的主存储器中的应用程序相关的配置。
图6图示了被下载到主存储器520中以被运行的游戏程序610、应用了安全的二进制620和安全库630。安全库630包括安全函数,例如哈希验证函数632、反调试函数634和反转储函数638。当运行游戏应用时,从辅助存储器540中将游戏程序的二进制下载到主存储器520中。当在游戏程序的运行期间从应用了安全的二进制620导入在其上设置了安全标签的特定函数时,实现安全库630的验证函数632、反调试函数634和反转储函数638。
图7图示了根据本发明的示例性实施例的其中应用导入包含于动态库中的模块的过程。
通过网络560或诸如存储介质的分布信道将存储在客户端存储器210中的应用了安全的运行包218存储在用户设备190的辅助存储器540中(S702)。
当运行游戏程序时,CPU 510将应用了安全的运行包218的游戏程序610下载到主存储器520中(S704)。当运行游戏程序610时,下载安全库630以进行操作(S706)。
当安全库630操作检测篡改时(S708),结束游戏程序。当没有检测到篡改时,安全库630操作游戏程序(S710)。
已经仅仅出于说明本发明的技术构思的目的描述了上述实施例,并且本领域技术人员将认识到,能够在不脱离本发明的范围和精神的情况下进行各种修改和改变。因此,本发明的实施例不旨在限制而是说明本发明的技术构思,并且本发明的技术构思的范围不受实施例限制。本发明的范围应当基于随附权利要求以使得包含在与权利要求等效的范围内的所有技术构思属于本发明的方式来理解。
Claims (17)
1.一种用于在包括客户端设备和云设备的安全服务提供系统中提供基于云的应用安全服务的方法,所述方法包括:
二进制代码生成过程,在所述二进制代码生成过程中,所述客户端设备通过对应用源代码进行编译来生成二进制代码;
运行包合成过程,在所述运行包合成过程中,所述客户端设备合成运行包,所述运行包包括在所述二进制代码生成过程中生成的所述二进制代码;
上传过程,在所述上传过程中,所述客户端设备将在所述运行包合成过程中合成的所述运行包上传到所述云设备中;
运行包分解过程,在所述运行包分解过程中,所述云设备通过分解在所述上传过程中上传的所述运行包来提取二进制代码;
安全库应用重新合成过程,在所述安全库应用重新合成过程中,所述云设备通过将多个安全库中的一个应用到在所述运行包分解过程中提取的所述二进制代码来生成应用了安全的二进制代码;
运行包重新合成过程,在所述运行包重新合成过程中,所述云设备重新合成应用了安全的运行包,所述应用了安全的运行包包括在安全库应用过程中生成的应用了安全的二进制代码;
下载过程,在所述下载过程中,所述客户端设备下载在包重新合成过程中重新合成的应用了安全的运行包;以及
哈希代码生成过程,其生成关于在所述运行包分解过程中提取的所述二进制代码中的在其上设置了安全标签的特定函数的哈希代码。
2.根据权利要求1所述的方法,其中,所述安全库包括用于完整性验证的哈希验证函数,并且在所述哈希代码生成过程中,所述云设备生成针对所述安全库中的所述哈希验证函数的关于在所述运行包分解过程中提取的所述二进制代码的哈希代码。
3.根据权利要求2所述的方法,其中,除了所述哈希验证函数,所述安全库还包括反调试函数、反转储函数或反调试函数和转储函数。
4.根据权利要求2或3所述的方法,还包括安全标签设置过程,在所述安全标签设置过程中,所述客户端设备在所述二进制代码生成过程之前设置针对所述应用源代码的特定函数的安全标签。
5.根据权利要求4所述的方法,还包括调试库连接过程,在所述调试库连接过程中,当检测到在所述安全标签设置过程中设置的所述安全标签时,所述客户端设备自动地将相关调试库连接到所述安全标签。
6.根据权利要求5所述的方法,其中,所述运行包分解过程包括通过解析在所述上传过程中上传的所述运行包来提取所述调试库,并且所述安全库应用过程包括通过将在所述运行包分解过程中提取的所述调试库替换为所述多个安全库中的一个来生成应用了安全的二进制代码。
7.根据权利要求6所述的方法,还包括编码过程,在所述编码过程中,所述云设备在所述哈希代码生成过程之后通过使用所提供的与所述多个安全库中的一个相对应的编码键来对在所述安全库应用过程中生成的应用了安全的二进制代码进行编码。
8.一种用于在包括客户端设备和云设备的安全服务提供系统中提供基于云的应用安全服务的方法,所述方法包括:
二进制代码生成过程,在所述二进制代码生成过程中,所述客户端设备通过对应用源代码进行编译来生成二进制代码;
安全库提供过程,在所述安全库提供过程中,所述云设备将多个安全库中的一个提供给所述客户端设备;
安全库应用过程,在所述安全库应用过程中,所述客户端设备通过将在所述安全库提供过程中提供的所述安全库应用到在所述二进制代码生成过程生成的所述二进制代码来生成应用了安全的二进制代码;以及
哈希代码生成过程,其生成关于在所述二进制代码生成过程生成的二进制代码中的在其上设置了安全标签的特定函数的哈希代码。
9.一种用于提供基于云的应用安全服务的系统,包括客户端设备和云设备,
其中,所述客户端设备包括:编译器,其被配置为通过对应用源代码进行编译来生成二进制代码;运行包合成单元,其被配置为合成运行包,所述运行包包括由所述编译器生成的所述二进制代码;上传器,其被配置为将由所述运行包合成单元合成的所述运行包上传到所述云设备中;以及下载器,其被配置为从所述云设备下载应用了安全的运行包,对所述应用了安全的运行包应用了安全;并且
所述云设备包括:运行包分解单元,其被配置为通过分解由所述上传器上传的所述运行包来提取所述二进制代码;安全库提供单元,其被配置为提供多个安全库中的一个;安全库应用单元,其被配置为通过将从所述安全库提供单元提供的所述安全库应用到由所述运行包分解单元提取的所述二进制代码来生成应用了安全的二进制代码;运行包重新合成单元,其被配置为重新合成包括由所述安全库应用单元生成的应用了安全的二进制代码的运行包;以及哈希代码生成单元,其生成关于由所述运行包分解单元提取的所述二进制代码中的在其上设置了安全标签的特定函数的哈希代码。
10.根据权利要求9所述的系统,其中,所述安全库包括用于完整性验证的哈希验证函数,并且所述哈希代码生成单元被配置为生成针对所述安全库中的所述哈希验证函数的关于由所述运行包分解单元提取的所述二进制代码的哈希代码。
11.根据权利要求10所述的系统,其中,除了所述哈希验证函数,所述安全库还包括反调试函数、反转储函数或反调试函数和转储函数。
12.根据权利要求10或11所述的系统,其中,所述客户端设备还包括安全标签编辑器单元,所述安全标签编辑器单元被配置为设置针对所述应用源代码的特定函数的安全标签。
13.根据权利要求12所述的系统,其中,所述客户端设备还包括安全标签检查器,所述安全标签检查器被配置为当检测到在所述安全标签编辑器中设置的所述安全标签时自动地将相关调试库连接到所述安全标签。
14.根据权利要求13所述的系统,其中,所述运行包分解单元通过解析由所述上传器上传的所述运行包来提取所述调试库,并且所述安全库应用单元通过将由所述运行包分解单元提取的所述调试库替换为由所述安全库提供单元提供的所述安全库来生成应用了安全的二进制代码。
15.根据权利要求14所述的系统,其中,所述云设备还包括编码器,所述编码器被配置为通过使用所提供的与从所述安全库提供单元提供的所述安全库相对应的编码键来对由所述安全库应用单元生成的应用了安全的二进制代码进行编码。
16.根据权利要求9至11中的任一项所述的系统,还包括用户设备,所述用户设备被配置为下载从所述客户端设备提供的应用了安全的运行包以运行应用。
17.一种用于提供基于云的应用安全服务的系统,包括客户端设备和云设备,
其中,
所述客户端设备包括:编译器,其被配置为通过对应用源代码进行编译来生成二进制代码;安全库应用单元,其被配置为通过将从所述云设备提供的所述安全库应用到由所述编译器生成的所述二进制代码来生成应用了安全的二进制代码,并且
所述云设备包括:安全库提供单元,所述安全库提供单元被配置为将多个安全库中的一个提供给所述客户端设备,以及哈希代码生成单元,其生成关于由编译器所生成的所述二进制代码中的在其上设置了安全标签的特定函数的哈希代码。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140105445A KR101695639B1 (ko) | 2014-08-13 | 2014-08-13 | 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템 |
KR10-2014-0105445 | 2014-08-13 | ||
PCT/KR2015/008512 WO2016024838A1 (ko) | 2014-08-13 | 2015-08-13 | 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107077540A CN107077540A (zh) | 2017-08-18 |
CN107077540B true CN107077540B (zh) | 2019-12-31 |
Family
ID=55304383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580043438.0A Active CN107077540B (zh) | 2014-08-13 | 2015-08-13 | 用于提供基于云的应用安全服务的方法和系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10296728B2 (zh) |
JP (1) | JP6392446B2 (zh) |
KR (1) | KR101695639B1 (zh) |
CN (1) | CN107077540B (zh) |
WO (1) | WO2016024838A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10255443B2 (en) | 2016-02-11 | 2019-04-09 | Line Corporation | Method, apparatus, system and non-transitory computer readable medium for code protection |
US10235218B2 (en) * | 2016-05-03 | 2019-03-19 | International Business Machines Corporation | Automatic correction of cryptographic application program interfaces |
CN106971098B (zh) * | 2016-10-11 | 2020-06-02 | 阿里巴巴集团控股有限公司 | 一种防重打包的方法及其装置 |
US10776385B2 (en) | 2016-12-02 | 2020-09-15 | Vmware, Inc. | Methods and apparatus for transparent database switching using master-replica high availability setup in relational databases |
US10873501B2 (en) * | 2016-12-09 | 2020-12-22 | Vmware, Inc. | Methods, systems and apparatus to propagate node configuration changes to services in a distributed environment |
KR102039380B1 (ko) * | 2017-11-24 | 2019-11-01 | (주)잉카엔트웍스 | 공유 오브젝트의 코드 보호를 위한 보안 제공 장치와 방법, 및 보안 실행 장치와 방법 |
US11055417B2 (en) | 2018-04-17 | 2021-07-06 | Oracle International Corporation | High granularity application and data security in cloud environments |
KR102156379B1 (ko) * | 2020-03-19 | 2020-09-16 | 주식회사 이글루시큐리티 | 정보수집 프로세스를 통한 에이전트리스 방식 취약점 진단시스템 및 그 방법 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7430670B1 (en) * | 1999-07-29 | 2008-09-30 | Intertrust Technologies Corp. | Software self-defense systems and methods |
US7660985B2 (en) * | 2003-04-30 | 2010-02-09 | At&T Corp. | Program security through stack segregation |
US7424706B2 (en) * | 2003-07-16 | 2008-09-09 | Microsoft Corporation | Automatic detection and patching of vulnerable files |
US8392910B1 (en) * | 2007-04-10 | 2013-03-05 | AT & T Intellectual Property II, LLP | Stochastic method for program security using deferred linking |
US8341751B2 (en) * | 2007-12-26 | 2012-12-25 | Wilson Kelce S | Software license management |
US8522015B2 (en) * | 2008-06-27 | 2013-08-27 | Microsoft Corporation | Authentication of binaries in memory with proxy code execution |
CN102483790B (zh) * | 2009-05-06 | 2016-01-20 | 爱迪德技术有限公司 | 利用白盒密码术的联锁二进制保护 |
US20120284696A1 (en) * | 2009-12-21 | 2012-11-08 | Nokia Corporation | Method, Apparatuses and a System for Compilation |
KR20140053756A (ko) * | 2010-03-31 | 2014-05-08 | 어데토 캐나다 코포레이션 | 어플리케이션을 보호하기 위한 링크와 로드 방법 |
US8549656B2 (en) * | 2011-02-11 | 2013-10-01 | Mocana Corporation | Securing and managing apps on a device |
US9396325B2 (en) * | 2011-03-21 | 2016-07-19 | Mocana Corporation | Provisioning an app on a device and implementing a keystore |
US9473485B2 (en) * | 2011-03-21 | 2016-10-18 | Blue Cedar Networks, Inc. | Secure single sign-on for a group of wrapped applications on a computing device and runtime credential sharing |
FR2981174B1 (fr) | 2011-10-06 | 2013-12-20 | Thales Sa | Procede de creation dynamique d'un environnement d'execution d'une application pour securiser ladite application, produit programme d'ordinateur et appareil informatique associes |
US8695060B2 (en) * | 2011-10-10 | 2014-04-08 | Openpeak Inc. | System and method for creating secure applications |
CN104040552B (zh) * | 2011-12-29 | 2018-03-30 | 英特尔公司 | 安全地分发软件的方法、处理器、计算设备及安全地存储和执行应用的系统 |
KR20140090279A (ko) * | 2012-12-10 | 2014-07-17 | (주) 이노디에스 | 서비스 보안 인증 방법 및 이를 구현한 웹 애플리케이션 서버 |
KR20140077539A (ko) | 2012-12-14 | 2014-06-24 | 삼성전자주식회사 | 애플리케이션 프로그램 보호 방법 및 장치 |
KR20140097927A (ko) | 2013-01-30 | 2014-08-07 | 삼성전자주식회사 | 소프트웨어의 보안을 높이는 방법 |
US9355223B2 (en) * | 2013-03-29 | 2016-05-31 | Citrix Systems, Inc. | Providing a managed browser |
CN103226673A (zh) * | 2013-04-09 | 2013-07-31 | 四三九九网络股份有限公司 | 批量处理swf打散加密方法及装置 |
CN103327125A (zh) * | 2013-07-15 | 2013-09-25 | 厦门金龙联合汽车工业有限公司 | 一种代码远程升级系统及其文件传输方法 |
US9961105B2 (en) * | 2014-12-31 | 2018-05-01 | Symantec Corporation | Systems and methods for monitoring virtual networks |
-
2014
- 2014-08-13 KR KR1020140105445A patent/KR101695639B1/ko active IP Right Grant
-
2015
- 2015-08-13 CN CN201580043438.0A patent/CN107077540B/zh active Active
- 2015-08-13 US US15/503,473 patent/US10296728B2/en active Active
- 2015-08-13 WO PCT/KR2015/008512 patent/WO2016024838A1/ko active Application Filing
- 2015-08-13 JP JP2017507698A patent/JP6392446B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
KR20160020294A (ko) | 2016-02-23 |
US20170242986A1 (en) | 2017-08-24 |
WO2016024838A1 (ko) | 2016-02-18 |
CN107077540A (zh) | 2017-08-18 |
JP6392446B2 (ja) | 2018-09-19 |
JP2017531236A (ja) | 2017-10-19 |
US10296728B2 (en) | 2019-05-21 |
KR101695639B1 (ko) | 2017-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107077540B (zh) | 用于提供基于云的应用安全服务的方法和系统 | |
JP6227772B2 (ja) | 動的ライブラリを保護する方法及び装置 | |
US10586026B2 (en) | Simple obfuscation of text data in binary files | |
KR101471589B1 (ko) | 공통중간언어 기반 프로그램을 위한 보안 제공 방법 | |
CN111143869B (zh) | 应用程序包处理方法、装置、电子设备及存储介质 | |
CN104680039B (zh) | 一种应用程序安装包的数据保护方法及装置 | |
KR102433011B1 (ko) | Apk 파일 보호 방법, 이를 수행하는 apk 파일 보호 시스템, 및 이를 저장하는 기록매체 | |
EP2107489A2 (en) | Obfuscating computer program code | |
CN107273723B (zh) | 一种基于so文件加壳的Android平台应用软件保护方法 | |
CN108399319B (zh) | 源代码保护方法、应用服务器及计算机可读存储介质 | |
US20160162686A1 (en) | Method for verifying integrity of dynamic code using hash background of the invention | |
CN108229144B (zh) | 一种应用程序的验证方法、终端设备及存储介质 | |
CN109241707A (zh) | 应用程序的混淆方法、装置和服务器 | |
CN112231702A (zh) | 应用保护方法、装置、设备及介质 | |
KR101734663B1 (ko) | 안드로이드 어플리케이션의 역공학 방지 방법 및 이를 수행하는 장치 | |
CN114547558A (zh) | 授权方法、授权控制方法及装置、设备和介质 | |
CN110597496B (zh) | 应用程序的字节码文件获取方法及装置 | |
CN112966227A (zh) | 代码加密解密方法和装置、存储介质 | |
EP3574425B1 (en) | Method to secure a software code | |
CN114139117A (zh) | 应用程序加固方法、装置、电子设备及存储介质 | |
KR101907846B1 (ko) | 의존 관계형 위변조 무결성 체크를 이용한 암호화 처리장치 및 방법 | |
KR20180028666A (ko) | 역공학 방지 방법 및 장치 | |
US9965621B2 (en) | Program protection device | |
KR102177920B1 (ko) | 원본코드 패킹장치 및 원본코드 패킹방법 | |
KR101883997B1 (ko) | 의존 관계형 위변조 무결성 체크를 이용한 암호화 처리장치 및 방법 |
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 |