WO2016024838A1 - 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템 - Google Patents

클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템 Download PDF

Info

Publication number
WO2016024838A1
WO2016024838A1 PCT/KR2015/008512 KR2015008512W WO2016024838A1 WO 2016024838 A1 WO2016024838 A1 WO 2016024838A1 KR 2015008512 W KR2015008512 W KR 2015008512W WO 2016024838 A1 WO2016024838 A1 WO 2016024838A1
Authority
WO
WIPO (PCT)
Prior art keywords
security
unit
library
application
cloud
Prior art date
Application number
PCT/KR2015/008512
Other languages
English (en)
French (fr)
Inventor
남재민
홍진선
Original Assignee
(주)잉카엔트웍스
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=55304383&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=WO2016024838(A1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by (주)잉카엔트웍스 filed Critical (주)잉카엔트웍스
Priority to CN201580043438.0A priority Critical patent/CN107077540B/zh
Priority to JP2017507698A priority patent/JP6392446B2/ja
Priority to US15/503,473 priority patent/US10296728B2/en
Publication of WO2016024838A1 publication Critical patent/WO2016024838A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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/3239Cryptographic 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/106Enforcing content protection by specific content processing
    • G06F21/1062Editing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Definitions

  • the present invention relates to a method and system for providing a cloud-based application security service.
  • an object of the present invention is to provide a cloud-based application security service providing method and system that enables the convenience of security application and the rapid response to hacker attacks.
  • a method for providing a cloud-based application security service in a security service providing system including a client device and a cloud device, by compiling an application source in the client device A binary generation process of generating a binary; An execution package configuration process of constructing an execution package including the binary generated in the binary generation process in the client device; An uploading process of uploading, at the client device, an execution package configured in the execution package configuration process to the cloud device; An execution package decomposition step of extracting binaries by decomposing the execution package uploaded in the uploading step in the cloud device; A security library application process of generating a security application binary by applying one of the security libraries of the plurality of security libraries to the binary extracted in the execution package decomposition process in the cloud device; An execution package reconfiguration process of reconfiguring, in the cloud device, a security application execution package including a security application binary generated in the security library application process; And a downloading process of downloading the security application package reconfigured in the package reconfiguration process at the client device.
  • the security library includes a hash verification function for integrity verification, and the cloud device generates a hash code for a binary extracted in the execution package decomposition process for a hash verification function in the security library. It may further include.
  • the security library may include an anti-debugging function, an anti-dump function, or an anti-debugging function and a dump function in addition to the hash verification function.
  • the client device may further include a security tag setting process of setting a security tag for a specific function of the application source before the binary generation process.
  • the client device may further include a debugger library linking process for automatically connecting a debugger library related to the security tag when a security tag set in the security tag setting process is detected.
  • the execution package decomposition process parses the execution package uploaded in the uploading process to extract a debugger library, and the secure library applying process extracts the debugger library extracted in the execution package decomposition process of any one of a plurality of security libraries. You can create a secured binary by replacing it with a secured library.
  • the hash code generation process may generate a hash code for a specific function in which a security tag is set in the binary extracted in the execution package decomposition process.
  • the cloud device further encrypts a security application binary generated in the security library applying process after the hash code generation process by using an encryption key provided corresponding to any one of a plurality of security libraries. It may include.
  • a cloud-based application security service providing method includes a binary generation process of generating binary by compiling an application source on the client device. ; In the cloud device, providing a security library of any one of a plurality of security libraries to the client device; And providing a security library application process of generating a security application binary by applying the security library provided in the security library providing process to the binary generated in the binary generation process in the client device.
  • the client device is a compiler unit for generating a binary by compiling the application source, and generated by the compiler unit
  • An execution package configuration unit constituting an execution package including binaries, an upload unit uploading the execution package configured in the execution package configuration unit to the cloud device, and a security applied execution package downloading from the cloud device
  • the cloud device is a security live providing a security package of any one of a plurality of security libraries and an execution package decomposition unit for extracting the binary by decomposing the execution package uploaded from the upload unit;
  • a security library applying unit and a security library applying unit generating a security applying binary by applying the security library provided by the security library providing unit to the binaries extracted by the execution package decomposing unit, and the security application generated by the security library applying unit.
  • the cloud device may include any one of a plurality of security libraries in the client providing unit.
  • the convenience of security application and the quick response to the hacker attack are possible based on the cloud.
  • the security tag when executing a computer program that is sensitive to the execution performance of a program and needs security against binary tampering, the security tag is applied to an important function that needs to be protected for integrity verification using a memory hash, and the function to which the security tag is applied is called. In this case, by checking whether the binary is tampered with the memory hash only for the function to which the security tag is applied, the burden on the calculation of the hash can prevent the execution performance and system performance of the computer program from being degraded.
  • the security tag is not a function that is repeatedly called at a short time interval, but rather than an account authentication, password input, payment related, security related (hash check, anti-debugging, etc.), encryption / decryption, certificate verification, product purchase / sale, initialization, It is suitable for important functions that need protection in server communication, read and write configuration file (safe file), operation result judgment and program execution.
  • the above functions have the characteristic that they are not called repeatedly at regular intervals, and even if called repeatedly, the verification can be skipped within a certain time interval after the integrity verification for the function is called again.
  • FIG. 1 is a schematic block diagram of a cloud-based application security service system according to an embodiment of the present invention.
  • FIG. 2 is a diagram showing a specific block diagram of the client device shown in FIG. 1.
  • FIG. 3 is a diagram illustrating a specific block diagram of the cloud device illustrated in FIG. 1.
  • FIG. 4 is a flowchart illustrating a method for providing an application security service according to an embodiment of the present invention.
  • FIG. 5 is a diagram illustrating a detailed block diagram of the user terminal device illustrated in FIG. 1.
  • FIG. 6 is a diagram showing a configuration related to an application program loaded in the main memory shown in FIG.
  • FIG. 7 is a diagram illustrating a process of calling a module included in a dynamic library by an application according to an embodiment of the present invention.
  • Cloud-based application security service providing method is a program language that can generate native code (native code), such as C / C + + hardware, such as PC, server, smartphone, Windows, UNIX, Linux, OS X The same may be applied regardless of the operating system on which the application software is executed.
  • native code such as C / C + + hardware, such as PC, server, smartphone, Windows, UNIX, Linux, OS X
  • native code such as PC, server, smartphone, Windows, UNIX, Linux, OS X
  • FIG. 1 is a schematic block diagram of a cloud-based application security service system according to an embodiment of the present invention.
  • the application security service system includes a client device 100, a cloud device 150, and a user terminal device 190.
  • the client device 100 includes a client memory unit 110, a compiler unit 120, an execution package configuration unit 125, an upload unit 130, and a download unit 140.
  • the client memory unit 110 stores the application source code 112 on which application program development is completed.
  • the compiler unit 120 generates the binary code 114 by compiling the application source code 112 stored in the client memory unit 110, and the generated binary code 114 is stored in the client memory unit 110.
  • the execution package constructing unit 125 combines the binary code 114 stored in the client memory unit 110 with other resources to form the execution package 116, and the configured execution package 116 is stored in the client memory unit 110. Stored.
  • the upload unit 130 uploads the execution package 116 stored in the client memory unit 110 to the cloud device 150, and the download unit 140 downloads the security application execution package 118 from the cloud device 150.
  • the downloaded security application execution package 118 is stored in the client memory unit 110.
  • the cloud device 150 includes a cloud memory unit 160, an execution package decomposition unit 170, a security library applying unit 172, a hash code generation unit 174, an encryption unit 176, and an execution package reconstruction unit 178. And a security library providing unit 180.
  • the cloud memory unit 160 stores the execution package 116 uploaded from the upload unit 130.
  • the execution package decomposing unit 170 decomposes the execution package to extract the binary code 114, and the binary code 144 is stored in the cloud memory unit 160.
  • the security library applying unit 172 applies the security library provided by the security library providing unit 180 to the binary code 114.
  • the hash code generator 174 generates a hash code using a hash function for the binary code to which the security is applied.
  • the hash code generator 174 may generate a hash code in a file unit or a memory unit.
  • the encryption unit 176 performs encryption using an encryption algorithm on the secured binary code and the hash code generated by the hash code generator 174.
  • the execution package reconstruction unit 178 combines the secured binary code and other resources and reconfigures the secured execution package 118.
  • the security library providing unit 180 is for providing a security library to the security library applying unit 172 and stores a plurality of security libraries.
  • Many security libraries are composed of security libraries having different forms since code obfuscation is used every time they are created.
  • Security libraries typically include hash verification, and also include anti-debugging capabilities that can not be exploited by tools such as debuggers to statically or dynamically analyze programs or to insert malicious code to attack them. And anti-dump, which can prevent you from dumping the memory state of a running process.
  • the user terminal device 190 downloads the security application execution package 118 stored in the client memory unit 110 and drives the application.
  • FIG. 2 is a diagram showing a specific block diagram of the client device shown in FIG. 1.
  • the client device 100 includes a client memory unit 210, a security tag editing unit 220, a security tag checking unit 230, a security application compiler unit 240, and an APK (Android PacKage) configuration unit. 250, an APK uploader 260, and an APK downloader 270.
  • the client memory unit 210 stores application source code 212 in which application program development is completed.
  • the security tag editing unit 220 is provided to edit a security tag for a specific function requiring security in the application source code 212.
  • the security tag may be composed of a start tag indicating a point to start integrity verification and an end tag indicating an end point.
  • the security tag application source code 213 edited by the security tag editing unit 220 is stored in the client memory unit 210.
  • the security tag editing unit 220 may add a library for debugging in relation to the security tag.
  • the library for debugging is replaced with a security library for release in the security library applying unit 172 of the cloud device 150.
  • debugging is sometimes difficult during development due to anti-debugging function when applying SDK.
  • the security tag checking unit 230 checks the security tag in the security tag application source code 213, and automatically connects the debugger library to the security tag when the security tag is found.
  • the security application compiler 240 generates a security tag applying binary code 214 by compiling the source code including at least one function to which the security tag applied to the security tag checker 230 is applied, and applying the generated security tag.
  • the binary code 214 is stored in the client memory unit 210.
  • the APK configuration unit 250 configures a security tag application execution package 216 by combining the security tag application binary code and other resources stored in the client memory unit 210, and the configured security tag application execution package 216 is a client memory. Stored in the unit 210.
  • the APK upload unit 260 uploads the security tag application execution package 216 stored in the client memory unit 210 to the cloud device 150, and the APK download unit 270 uploads the security application execution package from the cloud device 150. 218 is downloaded, and the downloaded security application execution package 218 is stored in the client memory unit 210.
  • FIG. 3 is a diagram illustrating a specific block diagram of the cloud device illustrated in FIG. 1.
  • the cloud device 150 includes a cloud memory unit 310, an APK parser 320, a secure library applying unit 330, a hash code generator 340, an encryption unit 350, The APK reconstructor 360 and the security library provider 370 are included.
  • the cloud memory unit 310 stores the security tag application execution package 216 uploaded from the APK upload unit 260.
  • the APK parsing unit 320 parses the security tag application execution package 216 which is an APK file and extracts a debugger library.
  • the security library application unit 330 replaces the parsed debugger library with the release security library provided by the security library provider 370.
  • the security library applying unit 330 may be provided with an encryption key in addition to the release security library.
  • the hash code generator 340 may generate a hash code by using a specific function to which a security tag is applied among the release security-applied binary codes as an input of a hash function (MD5, SHA, Checksum, etc.).
  • the hash code generation unit 340 also generates a hash code for each file by inputting a required file, an application file, etc. necessary for the execution of a program according to the implementation as a hash function (MD5, SHA, Checksum, etc.)
  • MD5 SHA, Checksum, etc.
  • Essential files required for program execution in Unity-based applications are, for example, libmono.so, libunity.so MonoSecurity.dll, and UnityEngine.dll.
  • the encryption unit 350 performs encryption using an encryption key provided by the security library provider 370 as an encryption algorithm such as DES, AES, or RSA for a specific function to which a security tag is applied among the release security applied binary codes.
  • the encryption unit 350 may encrypt the dynamic library according to the implementation.
  • the encryption unit 350 may execute encryption on the hash code generated by the hash code generator 340.
  • the APK reconstruction unit 360 reassembles the encrypted release security-applied binary code and other resources into an executable package.
  • the security library provider 370 stores a plurality of security libraries and encryption keys 372. Many security libraries and encryption keys are composed of security libraries with different values because code obfuscation is used every time they are generated.
  • the secure library providing unit 370 provides the secure library applying unit 330 with a secure dynamic library and an encryption key randomly selected from among a plurality of secure libraries and encryption keys. In addition, the security library providing unit 370 deletes the already used security library and encryption key so that they cannot be used again.
  • one cloud device 150 includes a cloud memory unit 310, an APK parser 320, a security library applying unit 330, a hash code generator 340, an encryption unit 350, and an APK reconstruction unit.
  • 360 and the security library provider 370 are both shown to include, this does not mean a physically integrated one, the security library provider 370 may be provided from another device.
  • FIG. 4 is a flowchart illustrating a method for providing an application security service according to an embodiment of the present invention.
  • the application source code 212 in which the application program development is completed is stored in the client memory unit 210 (S402).
  • the application developer sets a security tag for a specific function requiring security in the application source code 212 using the security tag editing unit 220 (S404). For example, account authentication, password input, payment related, security related (hash check, anti-debugging, etc.), encryption / decryption, certificate verification, product purchase and sale, initialization, server, etc.
  • Security tags can be set for at least one function, such as critical functions that need protection in communication, read and write configuration files (safe file), operation result determination, and program execution. These functions are of primary interest to those who would like to tamper with a computer program, although they usually have a property that is not called repeatedly. Therefore, even if the integrity verification is performed only for the above functions, the validity is very high, and the execution performance of the program can be minimized due to the integrity verification.
  • the security tag checking unit 230 checks the security tag in the security tag application source code 213, and automatically connects the debugger library to the security tag when the security tag is found (S406).
  • the security application compiler 240 generates a security tag application binary code 214 by compiling the source code including at least one function to which the security tag stored in the client memory unit 210 is applied (S408).
  • the tag application binary code 214 is stored in the client memory unit 210.
  • the APK configuration unit 250 configures the security tag application execution package 216 by combining the security tag application binary code 214 and other resources stored in the client memory unit 210 (S410), and the configured security tag application execution package. 216 is stored in the client memory unit 210.
  • the APK upload unit 260 uploads the security tag application execution package 216 stored in the client memory unit 210 to the cloud device 150 (S412).
  • the cloud memory unit 310 stores the security tag application execution package 216 uploaded from the APK upload unit 260, and the APK parsing unit 320 parses the security tag application execution package 216 which is an APK file and debuggers. Extract the library (S414).
  • the security library applying unit 330 replaces the parsed debugger library with the release security library provided by the security library provider 370 (S416).
  • the hash code generation unit 340 may generate a hash code by using a specific function to which a security tag is applied among the release security applied binary codes as an input of a hash function (MD5, SHA, Checksum, etc.) (S420).
  • the hash code generation unit 340 also generates a hash code for each file by inputting a required file, an application file, etc. necessary for the execution of a program according to the implementation as a hash function (MD5, SHA, Checksum, etc.), and the generated file.
  • MD5 SHA, Checksum, etc.
  • Essential files required for program execution in Unity-based applications are, for example, libmono.so, libunity.so MonoSecurity.dll, and UnityEngine.dll.
  • the encryption unit 350 encrypts a specific function to which the security tag is applied among the release security applied binary codes using an encryption key provided from the security library provider 370 using an encryption algorithm such as DES, AES, or RSA (S418). According to an implementation, the encryption unit 350 may encrypt the dynamic library.
  • the APK reconstruction unit 360 reassembles the encrypted release security application binary code and other resources into a security application execution package 218 (S422).
  • the APK download unit 270 downloads the security application execution package 218 from the cloud device 150 (S424), and the downloaded security application execution package 218 is stored in the client memory unit 210.
  • FIG. 5 is a diagram illustrating a detailed block diagram of the user terminal device illustrated in FIG. 1.
  • the security application execution package 218 stored in the client memory unit 210 is stored in the auxiliary memory unit 540 of the user terminal device 190 through distribution means such as a network unit 560 or a storage medium.
  • distribution means such as a network unit 560 or a storage medium.
  • the execution package for example, a game program is executed, the CPU 510 loads the main memory unit 520 to execute the execution package.
  • the execution result of the game program is displayed on the display unit 530.
  • the game program may receive a new value through the input unit 550 or the network unit 560.
  • a user terminal device 190 may be a personal computer (PC), a notebook computer, a tablet, a personal digital assistant (PDA), a game console, a portable multimedia player (PMP). Player), PlayStation Portable (PSP: PlayStation Portable), a wireless communication terminal (Wireless Communication Terminal), a smart phone (Smart Phone), a TV, a media player and the like.
  • the user terminal device 190 according to an embodiment of the present invention may be a server terminal such as an application server and a service server.
  • the user terminal device 190 according to an embodiment of the present invention is (i) a communication device such as a communication modem for performing communication with various devices or wired and wireless communication networks, and (ii) a memory for storing data for executing a program.
  • the memory may be a computer such as random access memory (RAM), read only memory (ROM), flash memory, optical disk, magnetic disk, solid state disk (SSD), or the like. It may be a readable recording / storage medium.
  • the microprocessor may be programmed to selectively perform one or more of the operations and functions described in the specification.
  • FIG. 6 is a diagram showing a configuration related to an application program loaded in the main memory shown in FIG.
  • the security library 630 illustrates security functions such as hash verification function 632, anti-debugging function 634, and antidump function 638.
  • the game program is executed, the binary of the game program is loaded from the auxiliary memory unit 540 into the main memory unit 520.
  • the verification function 632, the anti-debugging function 634, the anti-dump function 638, etc. of the security library 630 is executed.
  • FIG. 7 is a diagram illustrating a process of calling a module included in a dynamic library by an application according to an embodiment of the present invention.
  • the security application execution package 218 stored in the client memory unit 210 is stored in the auxiliary memory unit 540 of the user terminal device 190 through distribution means such as a network unit 560 or a storage medium (S702).
  • the CPU 510 loads the game program 610, which is the security application execution package 218, into the main memory unit 520 (S704).
  • the security library 630 is loaded and operated according to the execution of the game program 610 (S706).
  • the security library 630 is operated to detect tampering (tempering) (S708), the game program is terminated, and if tampering is not detected, the game program is operated (S710).

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Power Engineering (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템에 관한 것으로, 본 발명예에 따른, 클라우드 기반의 애플리케이션 보안 서비스 제공 시스템은 컴파일러부와, 실행 패키지 구성부와, 업로드부와, 및 다운로드부를 구비하는 클라이언트 장치; 및 실행 패키지 분해부와, 보안 라이브러리 제공부와, 보안 라이브러리 적용부와, 및 실행 패키지 재구성부를 구비하는 클라우드 장치를 포함함으로써, 클라우드에 기반하여 보안 적용의 편리함과 해커의 공격에 대한 신속한 대응이 가능하다.

Description

클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템
본 발명은 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템에 관한 것이다.
이하에 기술되는 내용은 단순히 본 실시예와 관련되는 배경 정보만을 제공할 뿐 종래기술을 구성하는 것이 아님을 밝혀둔다.
최근 들어 타인의 컴퓨터에 침입하여 정보를 유출하거나, 역분석(reverse engineering) 기술을 이용하여 컴퓨터 프로그램이 본래 의도된 기능과 다른 기능을 수행하도록 컴퓨터 프로그램의 바이너리 코드를 변조하거나, 디버거와 같은 도구를 사용하여 컴퓨터 프로그램이 실행되는 도중에 바이너리 코드를 변조하여 이를 악용하는 사례가 빈번히 일어나고 있다. 예를 들어, 프로그램을 변조하는 자는 온라인 게임의 사용자 PC에서 동작하는 클라이언트 프로그램을 역분석하여, 클라이언트 프로그램이 자동적으로 수행되도록 변조한다면 비정상적인 방법으로 게임 아이템을 획득할 수도 있을 것이다.
따라서 애플리케이션의 소스 코드에 해당하는 바이너리 코드 등을 보호할 필요가 있다. 현재는 보안 솔루션 SDK(Software Development Kit)를 소스 코드에 적용함으로써 애플리케이션의 바이너리 코드를 보호하는 것이 일반적이다. 그러나 애플리케이션의 바이너리 코드를 보호하기 위해 SDK를 사용하는 경우에는 우선 해당 SDK의 사용 방법을 숙지하여야 하고, 또한 해당 SDK의 라이브러리들이 기존 소스 코드에 추가되어야 한다. 그리고 또한, 기존 소스 코드의 변경도 이루어지는 경우가 발생하기 때문에 많은 시간이 필요하며 개발자의 노력이 뒷받침되어야 한다. 무엇보다도 해커에 의해 바이너리 코드가 공격당할 경우에 신속하게 대응할 수 없다는 문제가 있다.
상술한 문제점을 해결하기 위해, 본 발명은 클라우드에 기반하여 보안 적용의 편리함과 해커의 공격에 대한 신속한 대응을 가능하게 하는 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템을 제공하는 것을 목적으로 한다.
상술한 목적을 달성하기 위해, 본 발명의 일실시예에 따른, 클라이언트 장치와 클라우드 장치를 포함하는 보안 서비스 제공 시스템에서 클라우드 기반의 애플리케이션 보안 서비스 제공 방법은, 상기 클라이언트 장치에서, 애플리케이션 소스를 컴파일하여 바이너리를 생성하는 바이너리 생성 공정; 상기 클라이언트 장치에서, 상기 바이너리 생성 공정에서 생성된 바이너리를 포함하는 실행 패키지를 구성하는 실행 패키지 구성 공정; 상기 클라이언트 장치에서, 상기 실행 패키지 구성 공정에서 구성된 실행 패키지를 상기 클라우드 장치로 업로딩하는 업로딩 공정; 상기 클라우드 장치에서, 상기 업로딩 공정에서 업로딩된 실행 패키지를 분해하여 바이너리를 추출하는 실행 패키지 분해 공정; 상기 클라우드 장치에서, 복수의 보안 라이브러리 중 어느 하나의 보안 라이브러리를 상기 실행 패키지 분해 공정에서 추출된 바이너리에 적용하여 보안 적용 바이너리를 생성하는 보안 라이브러리 적용 공정; 상기 클라우드 장치에서, 상기 보안 라이브러리 적용 공정에서 생성된 보안 적용 바이너리를 포함하는 보안 적용 실행 패키지를 재구성하는 실행 패키지 재구성 공정; 및 상기 클라이언트 장치에서, 상기 패키지 재구성 공정에서 재구성된 보안 적용 실행 패키지를 다운로딩하는 다운로딩 공정을 제공한다.
상기 보안 라이브러리에는 무결성 검증을 위한 해시 검증 기능이 포함되고, 상기 클라우드 장치는, 상기 보안 라이브러리에서의 해시 검증 기능을 위해 상기 실행 패키지 분해 공정에서 추출된 바이너리에 대해 해시 코드를 생성하는 해시 코드 생성 공정을 더 포함할 수 있다.
상기 보안 라이브러리에는 상기 해시 검증 기능 외에 안티디버깅 기능, 안티덤프 기능, 또는 안티디버깅 기능 및 덤프 기능이 포함되어 있을 수 있다.
상기 클라이언트 장치는, 상기 바이너리 생성 공정 전에 상기 애플리케이션 소스의 특정 함수에 대해 보안 태그를 설정하는 보안 태그 설정 공정을 더 포함할 수 있다.
상기 클라이언트 장치는 상기 보안 태그 설정 공정에서 설정된 보안 태그가 검출되면 자동으로 보안 태그에 관련된 디버거용 라이브러리를 연결시키는 디버거용 라이브러리 연결 공정을 더 포함할 수 있다.
상기 실행 패키지 분해 공정은 상기 업로딩 공정에서 업로딩된 실행 패키지를 파싱하여 디버거용 라이브러리를 추출하고, 상기 보안 라이브러리 적용 공정은 상기 실행 패키지 분해 공정에서 추출된 디버거용 라이브러리를 복수의 보안 라이브러리 중 어느 하나의 보안 라이브러리로 교체하여 보안 적용 바이너리를 생성할 수 있다.
상기 해시 코드 생성 공정은 상기 실행 패키지 분해 공정에서 추출된 바이너리에서 보안 태그가 설정된 특정 함수에 대해 해시 코드를 생성할 수 있다.
상기 클라우드 장치는, 상기 해시 코드 생성 공정 후 상기 보안 라이브러리 적용 공정에서 생성된 보안 적용 바이너리에 대해, 복수의 보안 라이브러리 중 어느 하나의 보안 라이브러리에 대응하여 제공된 암호화 키를 이용하여 암호화하는 암호화 공정을 더 포함할 수 있다.
본 발명의 또 하나의 실시예에 따른 클라이언트 장치와 클라우드 장치를 포함하는 보안 서비스 제공 시스템에서 클라우드 기반의 애플리케이션 보안 서비스 제공 방법은, 상기 클라이언트 장치에서, 애플리케이션 소스를 컴파일하여 바이너리를 생성하는 바이너리 생성 공정; 상기 클라우드 장치에서, 상기 클라이언트 장치에 복수의 보안 라이브러리 중 어느 하나의 보안 라이브러리를 제공하는 보안 라이브러리 제공 공정; 및 상기 클라이언트 장치에서, 상기 보안 라이브러리 제공 공정에서 제공된 보안 라이브러리를 상기 바이너리 생성 공정에서 생성된 바이너리에 적용하여 보안 적용 바이너리를 생성하는 보안 라이브러리 적용 공정을 제공함으로써, 상술한 목적을 달성할 수 있다.
본 발명의 일 실시예에 따른 클라이언트 장치와 클라우드 장치를 포함하는 클라우드 기반의 애플리케이션 보안 서비스 제공 시스템에 있어서, 상기 클라이언트 장치는 애플리케이션 소스를 컴파일하여 바이너리를 생성하는 컴파일러부와, 상기 컴파일러부에서 생성된 바이너리를 포함하는 실행 패키지를 구성하는 실행 패키지 구성부와, 상기 실행 패키지 구성부에서 구성된 실행 패키지를 상기 클라우드 장치로 업로딩하는 업로드부와, 및 상기 클라우드 장치로부터 보안이 적용된 보안 적용 실행 패키지를 다운로딩하는 다운로드부를 제공하고, 상기 클라우드 장치는 상기 업로드부에서 업로딩된 실행 패키지를 분해하여 바이너리를 추출하는 실행 패키지 분해부와, 복수의 보안 라이브러리 중 어느 하나의 보안 라이브러리를 제공하는 보안 라이브러리 제공부와, 상기 보안 라이브러리 제공부에서 제공된 보안 라이브러리를 상기 실행 패키지 분해부에서 추출된 바이너리에 적용하여 보안 적용 바이너리를 생성하는 보안 라이브러리 적용부와, 및 상기 보안 라이브러리 적용부에서 생성된 보안 적용 바이너리를 포함하는 실행 패키지를 재구성하는 실행 패키지 재구성부를 제공함으로써, 상술한 목적을 달성할 수 있다.
본 발명의 또 하나의 실시예에 따른, 클라이언트 장치와 클라우드 장치를 포함하는 클라우드 기반의 애플리케이션 보안 서비스 제공 시스템에 있어서, 상기 클라우드 장치는 복수의 보안 라이브러리 중 어느 하나의 보안 라이브러리를 상기 클라이언트 제공부에 제공하는 보안 라이브러리 제공부를 제공하고, 상기 클라이언트 장치는 애플리케이션 소스를 컴파일하여 바이너리를 생성하는 컴파일러부와, 상기 클라우드 장치에서 제공된 보안 라이브러리를 상기 컴파일러부에 생성된 바이너리에 적용하여 보안 적용 바이너리를 생성하는 보안 라이브러리 적용부를 제공함으로써, 상술한 목적을 달성할 수 있다.
이상에서 설명한 바와 같이 본 실시예에 의하면, 클라우드에 기반하여 보안 적용의 편리함과 해커의 공격에 대한 신속한 대응이 가능하다.
또한, 프로그램의 실행 성능에 민감하면서 바이너리 변조에 대한 보안이 필요한 컴퓨터 프로그램의 실행에 있어서, 메모리 해시를 이용한 무결성 검증을 위하여 보호가 필요한 중요한 함수에 보안 태그를 적용하고, 보안 태그가 적용된 함수가 호출될 경우에, 보안 태그가 적용된 함수에 대해서만 메모리 해시를 이용하여 바이너리의 변조 여부를 검사함으로써, 해시 계산에 대한 부담으로 인해 컴퓨터 프로그램의 실행 성능 및 시스템 성능이 저하되는 것을 방지할 수 있다.
한편, 보안 태그는 짧은 시간 간격으로 반복적으로 호출되는 함수보다는, 계정인증, 비밀번호 입력, 결제 관련, 보안관련(해시체크, 안티디버깅 등), 암호화·복호화, 인증서 검증, 상품 구매·판매, 초기화, 서버 통신, 설정파일(세이프파일) 읽고 쓰기, 연산 결과 판정 및 프로그램 실행에 있어 보호가 필요한 중요한 함수에 적합하다. 위와 같은 함수들은 일정한 주기로 반복하여 호출되지는 않는다는 특성이 있고, 반복하여 호출되더라도 함수에 대한 무결성 검증 이후, 다시 같은 함수가 호출된 경우 일정한 시간 간격 내에서는 검증이 생략될 수 있도록 할 수 있다.
도 1은 본 발명의 일실시예에 따른 클라우드 기반의 애플리케이션 보안 서비스 시스템의 개략적인 블록도를 도시한 도면이다.
도 2는 도 1에 도시된 클라이언트 장치의 구체적인 블록도를 도시하는 도면이다.
도 3은 도 1에 도시된 클라우드 장치의 구체적인 블록도를 도시하는 도면이다.
도 4는 본 발명의 일실시예에 따른 애플리케이션 보안 서비스 제공 방법의 흐름도를 도시하는 도면이다.
도 5는 도 1에 도시된 사용자 단말 장치의 구체적인 블록도를 도시하는 도면이다.
도 6은 도 5에 도시된 메인메모리에 로드된 애플리케이션 프로그램 관련 구성을 도시하는 도면이다.
도 7은 본 발명의 일실시예에 따른 애플리케이션이 동적 라이브러리에 포함된 모듈을 호출하는 과정을 도시하는 도면이다.
이하, 본 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 실시예에 따른 클라우드 기반의 애플리케이션 보안 서비스 제공 방법은 C/C++와 같이 네이티브 코드(native code)를 생성할 수 있는 프로그램 언어라면 PC, 서버, 스마트 폰 등 하드웨어나 Windows, UNIX, Linux, OS X 등 응용 소프트웨어가 실행되는 운영체제에 관계없이 동일하게 적용될 수 있다.
도 1은 본 발명의 일실시예에 따른 클라우드 기반의 애플리케이션 보안 서비스 시스템의 개략적인 블록도를 도시한 도면이다.
도 1에 도시된 바와 같이, 애플리케이션 보안 서비스 시스템은 클라이언트 장치(100), 클라우드 장치(150) 및 사용자 단말 장치(190)를 포함한다.
클라이언트 장치(100)는 클라이언트 메모리부(110), 컴파일러부(120), 실행 패키지 구성부(125), 업로드부(130) 및 다운로드부(140)를 포함한다.
클라이언트 메모리부(110)에는 애플리케이션 프로그램 개발이 완료된 애플리케이션 소스 코드(112)가 저장되어 있다. 컴파일러부(120)는 클라이언트 메모리부(110)에 저장된 애플리케이션 소스 코드(112)를 컴파일하여 바이너리 코드(114)를 생성하며, 생성된 바이너리 코드(114)는 클라이언트 메모리부(110)에 저장된다. 실행 패키지 구성부(125)는 클라이언트 메모리부(110)에 저장된 바이너리 코드(114)와 기타 리소스 등을 합쳐서 실행 패키지(116)를 구성하며, 구성된 실행 패키지(116)는 클라이언트 메모리부(110)에 저장된다.
업로드부(130)는 클라이언트 메모리부(110)에 저장된 실행 패키지(116)를 클라우드 장치(150)로 업로딩하며, 다운로드부(140)는 클라우드 장치(150)로부터 보안 적용 실행 패키지(118)를 다운로드하며, 다운로드된 보안 적용 실행 패키지(118)는 클라이언트 메모리부(110)에 저장된다.
클라우드 장치(150)는 클라우드 메모리부(160), 실행 패키지 분해부(170), 보안 라이브러리 적용부(172), 해시 코드 생성부(174), 암호화부(176), 실행 패키지 재구성부(178) 및 보안 라이브러리 제공부(180)를 포함한다.
클라우드 메모리부(160)에는 업로드부(130)에서 업로드된 실행 패키지(116)가 저장된다. 실행 패키지 분해부(170)는 실행 패키지를 분해하여 바이너리 코드(114)를 추출하며, 바이너리 코드(144)는 클라우드 메모리부(160)에 저장된다. 보안 라이브러리 적용부(172)는 보안 라이브러리 제공부(180)에서 제공된 보안 라이브러리를 바이너리 코드(114)에 적용한다.
해시 코드 생성부(174)는 보안이 적용된 바이너리 코드에 대해 해시 함수를 이용하여 해시 코드를 생성한다. 여기서 해시 코드 생성부(174)는 해시 코드를 파일 단위로 또는 메모리 단위로 생성할 수 있다. 암호화부(176)는 보안 적용 바이너리 코드와 해시 코드 생성부(174)에서 생성된 해시 코드에 대해 암호화 알고리즘을 이용하여 암호화를 실행한다. 실행 패키지 재구성부(178)는 보안이 적용된 바이너리 코드와 기타 리소스 등을 합쳐서 보안 적용 실행 패키지(118)로 재구성한다.
보안 라이브러리 제공부(180)는 보안 라이브러리 적용부(172)에 보안 라이브러리를 제공하기 위한 것으로, 다수의 보안 라이브러리들이 저장되어 있다. 다수의 보안 라이브러리는 생성시마다 코드 난독화가 사용되므로, 서로 다른 형태를 갖는 보안 라이브러리들로 구성된다. 보안 라이브러리는 일반적으로 해시 검증 기능이 포함되어 있으며, 또한 디버거(debugger)와 같은 도구를 이용하여 프로그램을 정적 또는 동적으로 분석하거나 악의적인 코드를 삽입하여 공격할 수 없도록 안티디버깅(anti-debugging) 기능과 실행 중인 프로세스의 메모리 상태를 덤프하지 못하도록 하는 안티덤프(anti-dump)기능이 포함되어 있을 수 있다.
사용자 단말 장치(190)는 클라이언트 메모리부(110)에 저장되어 있는 보안 적용 실행 패키지(118)를 다운로드받아 애플리케이션을 구동한다.
도 2는 도 1에 도시된 클라이언트 장치의 구체적인 블록도를 도시하는 도면이다.
도 2에 도시된 바와 같이, 클라이언트 장치(100)는 클라이언트 메모리부(210), 보안 태그 편집부(220), 보안 태그 검사부(230), 보안 적용 컴파일러부(240), APK(Android PacKage) 구성부(250), APK 업로드부(260) 및 APK 다운로드부(270)를 포함한다.
클라이언트 메모리부(210)에는 애플리케이션 프로그램 개발이 완료된 애플리케이션 소스 코드(212)가 저장되어 있다.
보안 태그 편집부(220)는 애플리케이션 소스 코드(212)에서 보안이 필요한 특정 함수에 대해 보안 태그를 편집하기 위해 제공된다. 보안 태그는 무결성 검증을 시작할 지점을 표시하는 시작 태그와 종료 지점을 표시하는 종료 태그로 구성될 수 있다. 보안 태그 편집부(220)에서 편집된 보안 태그 적용 소스 코드(213)는 클라이언트 메모리부(210)에 저장된다.
한편, 보안 태그 편집부(220)는 보안 태그와 관련하여 디버그용 라이브러리를 추가할 수 있다. 디버그용 라이브러리는 클라우드 장치(150)의 보안 라이브러리 적용부(172)에서 릴리즈용 보안 라이브러리로 교체된다. 일반적으로 SDK를 적용시에 안티 디버깅 기능으로 인해 개발시에도 디버깅이 힘든 경우가 종종 발생한다. 그러나 본 실시예에서는 디버그용 라이브러리를 추가함으로써 개발시 디버그에 따르는 불편함을 없앨 수 있다.
보안 태그 검사부(230)는 보안 태그 적용 소스 코드(213)에서 보안 태그를 검사하고, 보안 태그가 발견되면 보안 태그에 자동으로 디버거용 라이브러리를 연결시킨다.
보안 적용 컴파일러부(240)는 보안 태그 검사부(230)에 검사된 보안 태그가 적용된 함수를 적어도 하나 이상 포함하는 소스코드를 컴파일하여 보안 태그 적용 바이너리 코드(214)를 생성하며, 생성된 보안 태그 적용 바이너리 코드(214)는 클라이언트 메모리부(210)에 저장된다.
APK 구성부(250)는 클라이언트 메모리부(210)에 저장된 보안 태그 적용 바이너리 코드와 기타 리소스 등을 합쳐서 보안 태그 적용 실행 패키지(216)를 구성하며, 구성된 보안 태그 적용 실행 패키지(216)는 클라이언트 메모리부(210)에 저장된다.
APK 업로드부(260)는 클라이언트 메모리부(210)에 저장된 보안 태그 적용 실행 패키지(216)를 클라우드 장치(150)로 업로딩하며, APK 다운로드부(270)는 클라우드 장치(150)로부터 보안 적용 실행 패키지(218)를 다운로드하며, 다운로드된 보안 적용 실행 패키지(218)는 클라이언트 메모리부(210)에 저장된다.
도 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, Checksum 등)의 입력으로 하여 해시 코드를 생성할 수 있다. 해시 코드 생성부(340)는 또한, 구현에 따라 프로그램의 실행에 필요한 필수 파일, 애플리케이션 파일 등을 해시 함수(MD5, SHA, Checksum 등)의 입력으로 하여 파일별로 해시 코드를 생성하고, 생성된 파일별 해시 코드를 포함하는 해시 레지스트리를 생성할 수 있다. 유니티 기반의 애플리케이션에서 프로그램 실행에 필요한 필수 파일은 예컨대 libmono.so, libunity.so MonoSecurity.dll 및 UnityEngine.dll 등이다.
암호화부(350)는 릴리즈 보안 적용 바이너리 코드 중 보안 태그가 적용된 특정함수에 대해 DES, AES, RSA 등과 같은 암호화 알고리즘으로 보안 라이브러리 제공부(370)에서 제공된 암호화 키를 이용하여 암호화를 실행한다. 이 경우 암호화부(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), 생성된 보안 태그 적용 바이너리 코드(214)는 클라이언트 메모리부(210)에 저장된다.
APK 구성부(250)는 클라이언트 메모리부(210)에 저장된 보안 태그 적용 바이너리 코드(214)와 기타 리소스 등을 합쳐서 보안 태그 적용 실행 패키지(216)를 구성하며(S410), 구성된 보안 태그 적용 실행 패키지(216)는 클라이언트 메모리부(210)에 저장된다.
APK 업로드부(260)는 클라이언트 메모리부(210)에 저장된 보안 태그 적용 실행 패키지(216)를 클라우드 장치(150)로 업로딩한다(S412).
클라우드 메모리부(310)에는 APK 업로드부(260)에서 업로드된 보안 태그 적용 실행 패키지(216)가 저장되고, APK 파싱부(320)는 APK 파일인 보안 태그 적용 실행 패키지(216)를 파싱하여 디버거용 라이브러리를 추출한다(S414).
보안 라이브러리 적용부(330)는 파싱된 디버거용 라이브러리를 보안 라이브러리 제공부(370)에서 제공된 릴리즈 보안 라이브러리로 교체한다(S416).
해시 코드 생성부(340)는 릴리즈 보안 적용 바이너리 코드 중 보안 태그가 적용된 특정함수를 해시 함수(MD5, SHA, Checksum 등)의 입력으로 하여 해시 코드를 생성할 수 있다(S420). 해시 코드 생성부(340)는 또한, 구현에 따라 프로그램의 실행에 필요한 필수 파일, 애플리케이션 파일 등을 해시 함수(MD5, SHA, Checksum 등)의 입력으로 하여 파일별로 해시 코드를 생성하고, 생성된 파일별 해시 코드를 포함하는 해시 레지스트리를 생성할 수 있다. 유니티 기반의 애플리케이션에서 프로그램 실행에 필요한 필수 파일은 예컨대 libmono.so, libunity.so MonoSecurity.dll 및 UnityEngine.dll 등이다.
암호화부(350)는 릴리즈 보안 적용 바이너리 코드 중 보안 태그가 적용된 특정함수를 DES, AES, RSA 등과 같은 암호화 알고리즘으로 보안 라이브러리 제공부(370)에서 제공된 암호화 키를 이용하여 암호화하며(S418), 또한 구현에 따라 암호화부(350)는 동적 라이브러리에 대해서도 암호화할 수 있다.
APK 재구성부(360)는 암호화된 릴리즈 보안 적용 바이너리 코드와 기타 리소스 등을 합쳐서 보안 적용 실행 패키지(218)로 재구성한다(S422).
APK 다운로드부(270)는 클라우드 장치(150)로부터 보안 적용 실행 패키지(218)를 다운로드하며(S424), 다운로드된 보안 적용 실행 패키지(218)는 클라이언트 메모리부(210)에 저장된다.
도 5는 도 1에 도시된 사용자 단말 장치의 구체적인 블록도를 도시하는 도면이다.
클라이언트 메모리부(210)에 저장된 보안 적용 실행 패키지(218)는 네트워크부(560)나 저장매체 등의 유통 수단을 통해 사용자 단말 장치(190)의 보조 메모리부(540)에 저장된다. 실행 패키지, 예컨대 게임 프로그램을 실행하면 메인 메모리부(520)에 로드하여 CPU(510)가 실행한다. 게임 프로그램의 실행 결과를 디스플레이부(530)에 표시한다. 게임 프로그램은 입력부(550)나 네트워크부(560)를 통해 새로운 값을 입력 받을 수도 있다.
본 발명의 실시예에 따른 사용자 단말 장치(190)는 개인용 컴퓨터(PC: Personal Computer), 노트북 컴퓨터, 태블릿, 개인 휴대 단말기(PDA: Personal Digital Assistant), 게임 콘솔, 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 무선 통신 단말기(Wireless Communication Terminal), 스마트폰(Smart Phone), TV, 미디어 플레이어 등과 같은 사용자 단말기일 수 있다. 본 발명의 실시예에 따른 사용자 단말 장치(190)는 응용 서버와 서비스 서버 등 서버 단말기일 수 있다. 본 발명의 실시예에 따른 사용자 단말 장치(190)는 각기 (i) 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신장치, (ii) 프로그램을 실행하기 위한 데이터를 저장하기 위한 메모리, (iii) 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미할 수 있다. 적어도 일 실시예에 따르면, 메모리는 램(Random Access Memory: RAM), 롬(Read Only Memory: ROM), 플래시 메모리, 광 디스크, 자기 디스크, 솔리드 스테이트 디스크(Solid State Disk: SSD) 등의 컴퓨터로 판독 가능한 기록/저장매체일 수 있다. 적어도 일 실시예에 따르면, 마이크로프로세서는 명세서에 기재된 동작과 기능을 하나 이상 선택적으로 수행하도록 프로그램될 수 있다.
도 6은 도 5에 도시된 메인메모리에 로드된 애플리케이션 프로그램 관련 구성을 도시하는 도면이다.
도 6에는 메인 메모리부(520)에 로드되어 실행되고 있는 게임 프로그램(610), 보안 적용 바이너리(620) 및 보안 라이브러리(630)가 도시되어 있다. 보안 라이브러리(630)에는 해시 검증 기능(632), 안티디버깅 기능(634), 안티덤프 기능(638) 등의 보안 기능이 예시되어 있다. 게임 프로그램을 실행시키면 보조 메모리부(540)에서 게임 프로그램의 바이너리가 메인 메모리부(520)에 로드된다. 게임 프로그램이 실행되는 도중, 보안 적용 바이너리(620)에서 보안 태그가 설정된 특정 함수가 호출되면, 보안 라이브러리(630)의 검증 기능(632), 안티디버깅 기능(634), 안티덤프 기능(638) 등이 실행된다.
도 7은 본 발명의 일실시예에 따른 애플리케이션이 동적 라이브러리에 포함된 모듈을 호출하는 과정을 도시하는 도면이다.
클라이언트 메모리부(210)에 저장된 보안 적용 실행 패키지(218)는 네트워크부(560)나 저장매체 등의 유통 수단을 통해 사용자 단말 장치(190)의 보조 메모리부(540)에 저장된다(S702).
게임 프로그램이 구동되면, CPU(510)는 보안 적용 실행 패키지(218)인 게임 프로그램(610)을 메인 메모리부(520)에 로딩한다(S704). 게임 프로그램(610)의 실행에 따라 보안 라이브러리(630)가 로딩되어 동작한다(S706).
보안 라이브러리(630)가 동작하여 탬퍼링(tempering)을 검출하면(S708), 게임 프로그램은 종료되고, 탬퍼링이 검출되지 않으면 게임 프로그램을 동작시킨다(S710).
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (19)

  1. 클라이언트 장치와 클라우드 장치를 포함하는 보안 서비스 제공 시스템에서 클라우드 기반의 애플리케이션 보안 서비스 제공 방법으로서,
    상기 클라이언트 장치에서, 애플리케이션 소스를 컴파일하여 바이너리를 생성하는 바이너리 생성 공정;
    상기 클라이언트 장치에서, 상기 바이너리 생성 공정에서 생성된 바이너리를 포함하는 실행 패키지를 구성하는 실행 패키지 구성 공정;
    상기 클라이언트 장치에서, 상기 실행 패키지 구성 공정에서 구성된 실행 패키지를 상기 클라우드 장치로 업로딩하는 업로딩 공정;
    상기 클라우드 장치에서, 상기 업로딩 공정에서 업로딩된 실행 패키지를 분해하여 바이너리를 추출하는 실행 패키지 분해 공정;
    상기 클라우드 장치에서, 복수의 보안 라이브러리 중 어느 하나의 보안 라이브러리를 상기 실행 패키지 분해 공정에서 추출된 바이너리에 적용하여 보안 적용 바이너리를 생성하는 보안 라이브러리 적용 공정;
    상기 클라우드 장치에서, 상기 보안 라이브러리 적용 공정에서 생성된 보안 적용 바이너리를 포함하는 보안 적용 실행 패키지를 재구성하는 실행 패키지 재구성 공정; 및
    상기 클라이언트 장치에서, 상기 패키지 재구성 공정에서 재구성된 보안 적용 실행 패키지를 다운로딩하는 다운로딩 공정을 포함하는 것을 특징으로 하는 클라우드 기반의 애플리케이션 보안 서비스 제공 방법.
  2. 제1항에 있어서,
    상기 보안 라이브러리에는 무결성 검증을 위한 해시 검증 기능이 포함되고,
    상기 클라우드 장치에서, 상기 보안 라이브러리에서의 해시 검증 기능을 위해 상기 실행 패키지 분해 공정에서 추출된 바이너리에 대해 해시 코드를 생성하는 해시 코드 생성 공정을 더 포함하는 것을 특징으로 하는 클라우드 기반의 애플리케이션 보안 서비스 제공 방법.
  3. 제2항에 있어서,
    상기 보안 라이브러리에는 상기 해시 검증 기능 외에 안티디버깅 기능, 안티덤프 기능, 또는 안티디버깅 기능 및 덤프 기능이 포함되어 있는 것을 특징으로 하는 클라우드 기반의 애플리케이션 보안 서비스 제공 방법.
  4. 제2항 또는 제3항에 있어서,
    상기 클라이언트 장치에서, 상기 바이너리 생성 공정 전에 상기 애플리케이션 소스의 특정 함수에 대해 보안 태그를 설정하는 보안 태그 설정 공정을 더 포함하는 것을 특징으로 하는 클라우드 기반의 애플리케이션 보안 서비스 제공 방법.
  5. 제4항에 있어서,
    상기 클라이언트 장치에서, 상기 보안 태그 설정 공정에서 설정된 보안 태그가 검출되면 자동으로 보안 태그에 관련된 디버거용 라이브러리를 연결시키는 디버거용 라이브러리 연결 공정을 더 포함하는 것을 특징으로 하는 클라우드 기반의 애플리케이션 보안 서비스 제공 방법.
  6. 제5항에 있어서,
    상기 실행 패키지 분해 공정은 상기 업로딩 공정에서 업로딩된 실행 패키지를 파싱하여 디버거용 라이브러리를 추출하고,
    상기 보안 라이브러리 적용 공정은 상기 실행 패키지 분해 공정에서 추출된 디버거용 라이브러리를 복수의 보안 라이브러리 중 어느 하나의 보안 라이브러리로 교체하여 보안 적용 바이너리를 생성하는 것을 특징으로 하는 클라우드 기반의 애플리케이션 보안 서비스 제공 방법.
  7. 제6항에 있어서,
    상기 해시 코드 생성 공정은 상기 실행 패키지 분해 공정에서 추출된 바이너리에서 보안 태그가 설정된 특정 함수에 대해 해시 코드를 생성하는 것을 특징으로 하는 클라우드 기반의 애플리케이션 보안 서비스 제공 방법.
  8. 제7항에 있어서,
    상기 클라우드 장치에서, 상기 해시 코드 생성 공정 후 상기 보안 라이브러리 적용 공정에서 생성된 보안 적용 바이너리에 대해, 복수의 보안 라이브러리 중 어느 하나의 보안 라이브러리에 대응하여 제공된 암호화 키를 이용하여 암호화하는 암호화 공정을 더 포함하는 것을 특징으로 하는 클라우드 기반의 애플리케이션 보안 서비스 제공 방법.
  9. 클라이언트 장치와 클라우드 장치를 포함하는 보안 서비스 제공 시스템에서 클라우드 기반의 애플리케이션 보안 서비스 제공 방법으로서,
    상기 클라이언트 장치에서, 애플리케이션 소스를 컴파일하여 바이너리를 생성하는 바이너리 생성 공정;
    상기 클라우드 장치에서, 상기 클라이언트 장치에 복수의 보안 라이브러리 중 어느 하나의 보안 라이브러리를 제공하는 보안 라이브러리 제공 공정; 및
    상기 클라이언트 장치에서, 상기 보안 라이브러리 제공 공정에서 제공된 보안 라이브러리를 상기 바이너리 생성 공정에서 생성된 바이너리에 적용하여 보안 적용 바이너리를 생성하는 보안 라이브러리 적용 공정을 포함하는 것을 특징으로 하는 클라우드 기반의 애플리케이션 보안 서비스 제공 방법.
  10. 클라이언트 장치와 클라우드 장치를 포함하는 클라우드 기반의 애플리케이션 보안 서비스 제공 시스템으로서,
    상기 클라이언트 장치는 애플리케이션 소스를 컴파일하여 바이너리를 생성하는 컴파일러부와, 상기 컴파일러부에서 생성된 바이너리를 포함하는 실행 패키지를 구성하는 실행 패키지 구성부와, 상기 실행 패키지 구성부에서 구성된 실행 패키지를 상기 클라우드 장치로 업로딩하는 업로드부와, 및 상기 클라우드 장치로부터 보안이 적용된 보안 적용 실행 패키지를 다운로딩하는 다운로드부를 포함하고,
    상기 클라우드 장치는 상기 업로드부에서 업로딩된 실행 패키지를 분해하여 바이너리를 추출하는 실행 패키지 분해부와, 복수의 보안 라이브러리 중 어느 하나의 보안 라이브러리를 제공하는 보안 라이브러리 제공부와, 상기 보안 라이브러리 제공부에서 제공된 보안 라이브러리를 상기 실행 패키지 분해부에서 추출된 바이너리에 적용하여 보안 적용 바이너리를 생성하는 보안 라이브러리 적용부와, 및 상기 보안 라이브러리 적용부에서 생성된 보안 적용 바이너리를 포함하는 실행 패키지를 재구성하는 실행 패키지 재구성부를 포함하는 것을 특징으로 하는 클라우드 기반의 애플리케이션 보안 서비스 제공 시스템.
  11. 제10항에 있어서,
    상기 보안 라이브러리에는 무결성 검증을 위한 해시 검증 기능이 포함되고,
    상기 클라우드 장치는, 상기 보안 라이브러리에서의 해시 검증 기능을 위해 상기 실행 패키지 분해부에서 추출된 바이너리에 대해 해시 코드를 생성하는 해시 코드 생성부를 더 포함하는 것을 특징으로 하는 클라우드 기반의 애플리케이션 보안 서비스 제공 시스템.
  12. 제11항에 있어서,
    상기 보안 라이브러리에는 상기 해시 검증 기능 외에 안티디버깅 기능, 안티덤프 기능, 또는 안티디버깅 기능 및 덤프 기능이 포함되어 있는 것을 특징으로 하는 클라우드 기반의 애플리케이션 보안 서비스 제공 시스템.
  13. 제11항 또는 제12항에 있어서,
    상기 클라이언트 장치는, 상기 애플리케이션 소스의 특정 함수에 대해 보안 태그를 설정하는 보안 태그 설정부를 더 포함하는 것을 특징으로 하는 클라우드 기반의 애플리케이션 보안 서비스 제공 시스템.
  14. 제13항에 있어서,
    상기 클라이언트 장치는, 상기 보안 태그 설정부에서 설정된 보안 태그가 검출되면 자동으로 보안 태그에 관련된 디버거용 라이브러리를 연결시키는 보안 태그 검사부를 더 포함하는 것을 특징으로 하는 클라우드 기반의 애플리케이션 보안 서비스 제공 시스템.
  15. 제14항에 있어서,
    상기 실행 패키지 분해부는 상기 업로드부에서 업로딩된 실행 패키지를 파싱하여 디버거용 라이브러리를 추출하고,
    상기 보안 라이브러리 적용부는 상기 실행 패키지 분해부에서 추출된 디버거용 라이브러리를 상기 보안 라이브러리 제공부에서 제공된 보안 라이브러리로 교체하여 보안 적용 바이너리를 생성하는 것을 특징으로 하는 클라우드 기반의 애플리케이션 보안 서비스 제공 시스템.
  16. 제15항에 있어서,
    상기 해시 코드 생성부는 상기 실행 패키지 분해부에서 추출된 바이너리에서 보안 태그가 설정된 특정 함수에 대해 해시 코드를 생성하는 것을 특징으로 하는 클라우드 기반의 애플리케이션 보안 서비스 제공 시스템.
  17. 제16항에 있어서,
    상기 클라우드 장치는, 상기 해시 코드 생성부에서 생성된 보안 적용 바이너리에 대해, 상기 보안 라이브러리 제공부에서 제공된 보안 라이브러리에 대응하여 제공된 암호화 키를 이용하여 암호화하는 암호화부를 더 포함하는 것을 특징으로 하는 클라우드 기반의 애플리케이션 보안 서비스 제공 시스템.
  18. 제10항 내지 제12항 중 어느 한 항에 있어서,
    상기 클라이언트 장치에서 제공된 보안 적용 실행 패키지를 다운받아 애플리케이션을 실행하는 사용자 단말 장치를 더 포함하는 것을 특징으로 하는 클라우드 기반의 애플리케이션 보안 서비스 제공 시스템.
  19. 클라이언트 장치와 클라우드 장치를 포함하는 클라우드 기반의 애플리케이션 보안 서비스 제공 시스템으로서,
    상기 클라우드 장치는 복수의 보안 라이브러리 중 어느 하나의 보안 라이브러리를 상기 클라이언트 제공부에 제공하는 보안 라이브러리 제공부를 포함하고,
    상기 클라이언트 장치는 애플리케이션 소스를 컴파일하여 바이너리를 생성하는 컴파일러부와, 상기 클라우드 장치에서 제공된 보안 라이브러리를 상기 컴파일러부에 생성된 바이너리에 적용하여 보안 적용 바이너리를 생성하는 보안 라이브러리 적용부를 포함하는 것을 특징으로 하는 클라우드 기반의 애플리케이션 보안 서비스 제공 시스템.
PCT/KR2015/008512 2014-08-13 2015-08-13 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템 WO2016024838A1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201580043438.0A CN107077540B (zh) 2014-08-13 2015-08-13 用于提供基于云的应用安全服务的方法和系统
JP2017507698A JP6392446B2 (ja) 2014-08-13 2015-08-13 クラウドベースのアプリケーションセキュリティサービスの提供方法及びシステム
US15/503,473 US10296728B2 (en) 2014-08-13 2015-08-13 Method and system for providing cloud-based application security service

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2014-0105445 2014-08-13
KR1020140105445A KR101695639B1 (ko) 2014-08-13 2014-08-13 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템

Publications (1)

Publication Number Publication Date
WO2016024838A1 true WO2016024838A1 (ko) 2016-02-18

Family

ID=55304383

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2015/008512 WO2016024838A1 (ko) 2014-08-13 2015-08-13 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템

Country Status (5)

Country Link
US (1) US10296728B2 (ko)
JP (1) JP6392446B2 (ko)
KR (1) KR101695639B1 (ko)
CN (1) CN107077540B (ko)
WO (1) WO2016024838A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180167275A1 (en) * 2016-12-09 2018-06-14 Vmware, Inc. Methods, systems and apparatus to propagate node configuration changes to services in a distributed environment
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

Families Citing this family (6)

* Cited by examiner, † Cited by third party
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 阿里巴巴集团控股有限公司 一种防重打包的方法及其装置
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 주식회사 이글루시큐리티 정보수집 프로세스를 통한 에이전트리스 방식 취약점 진단시스템 및 그 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140075785A (ko) * 2011-10-10 2014-06-19 오픈픽 아이엔씨. 보안 애플리케이션 생성 방법 및 시스템
KR20140077539A (ko) * 2012-12-14 2014-06-24 삼성전자주식회사 애플리케이션 프로그램 보호 방법 및 장치
KR20140090279A (ko) * 2012-12-10 2014-07-17 (주) 이노디에스 서비스 보안 인증 방법 및 이를 구현한 웹 애플리케이션 서버
US20140223426A1 (en) * 2011-10-06 2014-08-07 Thales Method of generating, from an initial package file comprising an application to be secured and an initial configuration file, a package file for securing the application, and associated computer program product and computing device
KR20140097927A (ko) * 2013-01-30 2014-08-07 삼성전자주식회사 소프트웨어의 보안을 높이는 방법

Family Cites Families (17)

* Cited by examiner, † Cited by third party
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
EP2430584B1 (en) * 2009-05-06 2019-11-13 Irdeto B.V. Interlocked binary protection using whitebox cryptography
US20120284696A1 (en) * 2009-12-21 2012-11-08 Nokia Corporation Method, Apparatuses and a System for Compilation
US9639377B2 (en) * 2010-03-31 2017-05-02 Irdeto B.V. Method for linking and loading to protect applications
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
US9158902B2 (en) * 2011-12-29 2015-10-13 Intel Corporation Software modification for partial secure memory processing
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140223426A1 (en) * 2011-10-06 2014-08-07 Thales Method of generating, from an initial package file comprising an application to be secured and an initial configuration file, a package file for securing the application, and associated computer program product and computing device
KR20140075785A (ko) * 2011-10-10 2014-06-19 오픈픽 아이엔씨. 보안 애플리케이션 생성 방법 및 시스템
KR20140090279A (ko) * 2012-12-10 2014-07-17 (주) 이노디에스 서비스 보안 인증 방법 및 이를 구현한 웹 애플리케이션 서버
KR20140077539A (ko) * 2012-12-14 2014-06-24 삼성전자주식회사 애플리케이션 프로그램 보호 방법 및 장치
KR20140097927A (ko) * 2013-01-30 2014-08-07 삼성전자주식회사 소프트웨어의 보안을 높이는 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US20180167275A1 (en) * 2016-12-09 2018-06-14 Vmware, Inc. Methods, systems and apparatus to propagate node configuration changes to services in a distributed environment
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

Also Published As

Publication number Publication date
US10296728B2 (en) 2019-05-21
KR20160020294A (ko) 2016-02-23
JP2017531236A (ja) 2017-10-19
CN107077540A (zh) 2017-08-18
JP6392446B2 (ja) 2018-09-19
US20170242986A1 (en) 2017-08-24
CN107077540B (zh) 2019-12-31
KR101695639B1 (ko) 2017-01-16

Similar Documents

Publication Publication Date Title
WO2016024838A1 (ko) 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템
CN105683990B (zh) 用于保护动态库的方法和装置
Costin et al. A {Large-scale} analysis of the security of embedded firmwares
WO2015026091A1 (ko) 공통 중간 언어 기반 프로그램을 위한 보안 제공 방법
Caballero et al. Binary Code Extraction and Interface Identification for Security Applications.
CN111143869B (zh) 应用程序包处理方法、装置、电子设备及存储介质
WO2015023093A1 (ko) 해시를 이용한 동적코드의 무결성 검증 방법
CN107408176A (zh) 恶意对象的执行剖析检测
CN112231702B (zh) 应用保护方法、装置、设备及介质
CN109241707A (zh) 应用程序的混淆方法、装置和服务器
WO2013100320A1 (ko) 시스템 파일 보호 및 복구를 위한 장치, 방법, 사용자 단말기 및 시스템
CN114547558A (zh) 授权方法、授权控制方法及装置、设备和介质
Kotipalli et al. Hacking Android
Masid et al. Application of the SAMA methodology to Ryuk malware
WO2024128533A1 (ko) 난독화 장치 및 방법
Niu et al. Clone analysis and detection in android applications
Taubmann Improving digital forensics and incident analysis in production environments by using virtual machine introspection
CN113742340A (zh) 一种数据库表处理方法及相关设备
KR20220141490A (ko) 바이너리 파일 재구성 방법 및 그 장치
CN115413342A (zh) 用于识别嵌入式设备固件中的软件漏洞的系统和方法
CN111984944B (zh) 一种源代码处理方法、相关装置及存储介质
Grammatikakis et al. System threats
Nurgaliyev et al. Analysis of reverse engineering
WO2016048070A1 (ko) 실행파일 복원 장치 및 방법
Busch On the Security of ARM TrustZone-Based Trusted Execution Environments

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15832142

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017507698

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 15503473

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 15832142

Country of ref document: EP

Kind code of ref document: A1