WO2022065525A1 - Network communication monitoring method and system using method hooking - Google Patents

Network communication monitoring method and system using method hooking Download PDF

Info

Publication number
WO2022065525A1
WO2022065525A1 PCT/KR2020/012752 KR2020012752W WO2022065525A1 WO 2022065525 A1 WO2022065525 A1 WO 2022065525A1 KR 2020012752 W KR2020012752 W KR 2020012752W WO 2022065525 A1 WO2022065525 A1 WO 2022065525A1
Authority
WO
WIPO (PCT)
Prior art keywords
computer device
monitoring
monitoring module
server
network communication
Prior art date
Application number
PCT/KR2020/012752
Other languages
French (fr)
Korean (ko)
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
Application filed by 라인플러스 주식회사 filed Critical 라인플러스 주식회사
Priority to PCT/KR2020/012752 priority Critical patent/WO2022065525A1/en
Publication of WO2022065525A1 publication Critical patent/WO2022065525A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/72Code refactoring

Definitions

  • the following description relates to a method and system for monitoring network communication using method hooking.
  • Mobile applications use network communication to authenticate users, download resources required for application execution, transmit and store terminal data to a server, or exchange data with other users.
  • problems such as a client (application) connecting to an unintended server or transmitting sensitive personal information may occur due to the developer's mistake.
  • data verification in communication is required.
  • server-client communication there is a prior art for monitoring data using a proxy server located between the server and the client.
  • the method using a proxy server is the most used method to monitor the data of server-client communication.
  • a new server (proxy server) is placed between the server and the client, and the proxy server transmits the data exchanged between the server and the client. It can read the data passed by the proxy server in the process.
  • the client if a proxy server is to be used, the client must trust the proxy server.
  • the client checks whether the certificate used by the proxy server is issued by an authorized certification authority. If the certificate is from an authorized CA, the client can trust the proxy server. If not, the process of manually setting the client to trust the proxy server's SSL certificate is required to trust the proxy server. Based on this trust, the client can connect to the outside through the proxy server.
  • HTTPS Hypertext Transfer Protocol Secure
  • monitoring data transmitted through the network using the proxy setting of the Wi-Fi setting provided by a specific operating system only monitors all data transmitted through the Wi-Fi adapter from the device in which the operating system is installed.
  • a specific operating system eg, iOS
  • the root authority of the corresponding operating system is required in order to observe the server-client communication data of a specific application.
  • Server-network communication related to the application through a method of detecting the operation of a method used for data communication in relation to a specific application without having to obtain the root authority of the operating system or go through a certificate bypass process for verifying HTTPS communication
  • a monitoring method and system for checking data are provided.
  • a method related to network communication is performed by the at least one processor under the control of a monitoring module included in an analysis target application executed in the computer device. monitoring whether it is called by the analysis target application; when the method is called, acquiring, by the at least one processor under the control of the monitoring module, information on data communication between the computer device and the server generated by the called method; and transmitting, by the at least one processor under the control of the monitoring module, at least a portion of the acquired information to a host that analyzes the analysis target application.
  • the monitoring may include monitoring whether a method previously registered in the monitoring module is called in connection with network communication among methods provided by the operating system of the computer device.
  • the call may be a call by the analysis target application.
  • the acquiring information on data communication between the computer device and the server includes transmitting the information from the server to the computer device in response to a request transmitted from the computer device to the server by the called method. It may be characterized in that the obtained response result is obtained as information on the data communication.
  • the response result may include information about the request transmitted from the computer device to the server.
  • the response result may include at least one of a content of a HTTP (HyperText Transfer Protocol) header with respect to the response result and a content of an HTTP body with respect to the response result.
  • HTTP HyperText Transfer Protocol
  • the monitoring module adds the monitoring module to the package file of the application registered by the developer in the host, repackages it, and transmits it to the computer device as an installation file of the application to be analyzed. It may be characterized in that it is included in the analysis target application installed and executed in .
  • It provides a computer program recorded on a computer-readable recording medium in combination with a computer device to execute the method on the computer device.
  • the computer program may include the analysis target application or the monitoring module.
  • a method for monitoring network communication of a computer device including at least one processor comprising: receiving, by the at least one processor, a package file of an analysis target application from a developer; repackaging by adding, by the at least one processor, a monitoring module to the registered package file; sending, by the at least one processor, the repackaged package file to a client device; receiving, by the at least one processor, information on data communication performed by the client device with a server through the analysis target application through the monitoring module; and analyzing, by the at least one processor, the analysis target application using at least a portion of the received information.
  • the monitoring module may be implemented to monitor a call of a method previously registered in the monitoring module in connection with network communication among methods provided by the operating system of the client device.
  • the call may be a call by the analysis target application.
  • the method registered in the monitoring module is transmitted from the server to the client device in response to a request transmitted from the client device to the server as the method is called by the client device It may be characterized in that at least a part of the response result is received as information on the data communication.
  • It provides a computer program recorded on a computer-readable recording medium in combination with a computer device to execute the method on the computer device.
  • Server-network communication related to the application through a method of detecting the operation of a method used for data communication in relation to a specific application without having to obtain the root authority of the operating system or go through a certificate bypass process for verifying HTTPS communication You can check the data.
  • FIG. 1 is a diagram illustrating an example of a network environment according to an embodiment of the present invention.
  • FIG. 2 is a block diagram illustrating an example of a computer device according to an embodiment of the present invention.
  • FIG. 3 is a diagram illustrating an example of a general appearance of a network communication monitoring system according to an embodiment of the present invention.
  • FIG. 4 is a diagram illustrating an example of transferring data from a client terminal including an iOS operating system to a host according to an embodiment of the present invention.
  • FIG. 5 is a flowchart illustrating an example of a process of repackaging a package file according to an embodiment of the present invention.
  • FIG. 6 is a flowchart illustrating an example of a network communication monitoring method according to an embodiment of the present invention.
  • FIG. 7 is a flowchart illustrating another example of a network communication monitoring method according to an embodiment of the present invention.
  • first, second, A, and B may be used to describe various elements, but the elements should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, a first component may be referred to as a second component, and similarly, a second component may also be referred to as a first component. and/or includes a combination of a plurality of related listed items or any of a plurality of related listed items.
  • the network communication monitoring system may be implemented by at least one computer device, and the network communication monitoring method according to the embodiments of the present invention is at least one computer device implementing the network communication monitoring system.
  • the computer program according to an embodiment of the present invention may be installed and driven in the computer device, and the computer device may perform the network communication monitoring method according to the embodiments of the present invention under the control of the driven computer program.
  • the above-described computer program may be stored in a computer-readable recording medium in order to be combined with a computer device and execute the method for monitoring network communication in the computer device.
  • FIG. 1 is a diagram illustrating an example of a network environment according to an embodiment of the present invention.
  • the network environment of FIG. 1 shows an example including a plurality of electronic devices 110 , 120 , 130 , 140 , a plurality of servers 150 , 160 , and a network 170 .
  • 1 is an example for explaining the invention, and the number of electronic devices or the number of servers is not limited as in FIG. 1 .
  • the network environment of FIG. 1 only describes one example of environments applicable to the present embodiments, and the environment applicable to the present embodiments is not limited to the network environment of FIG. 1 .
  • the plurality of electronic devices 110 , 120 , 130 , and 140 may be a fixed terminal implemented as a computer device or a mobile terminal.
  • Examples of the plurality of electronic devices 110 , 120 , 130 , 140 include a smart phone, a mobile phone, a navigation device, a computer, a notebook computer, a digital broadcasting terminal, a personal digital assistant (PDA), and a portable multimedia player (PMP). ), tablet PCs, etc.
  • PDA personal digital assistant
  • PMP portable multimedia player
  • FIG. 1 the shape of a smartphone is shown as an example of the electronic device 110 , but in embodiments of the present invention, the electronic device 110 is substantially different through the network 170 using a wireless or wired communication method. It may refer to one of various physical computer devices capable of communicating with the electronic devices 120 , 130 , 140 and/or the servers 150 and 160 .
  • the communication method is not limited, and not only a communication method using a communication network (eg, a mobile communication network, a wired Internet, a wireless Internet, a broadcasting network) that the network 170 may include, but also short-range wireless communication between devices may be included.
  • the network 170 may include a personal area network (PAN), a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), a wide area network (WAN), and a broadband network (BBN). , the Internet, and the like.
  • the network 170 may include any one or more of a network topology including a bus network, a star network, a ring network, a mesh network, a star-bus network, a tree or a hierarchical network, etc. not limited
  • Each of the servers 150 and 160 communicates with the plurality of electronic devices 110 , 120 , 130 , 140 and the network 170 through a computer device or a plurality of computers that provides commands, codes, files, contents, services, etc. It can be implemented in devices.
  • the server 150 provides a service (eg, an application analysis service, a content providing service, an archiving service, and a file distribution) to the plurality of electronic devices 110 , 120 , 130 , 140 accessed through the network 170 .
  • service eg, an application analysis service, a content providing service, an archiving service, and a file distribution
  • FIG. 2 is a block diagram illustrating an example of a computer device according to an embodiment of the present invention.
  • Each of the plurality of electronic devices 110 , 120 , 130 , 140 or the servers 150 and 160 described above may be implemented by the computer device 200 illustrated in FIG. 2 .
  • the computer device 200 may include a memory 210 , a processor 220 , a communication interface 230 , and an input/output interface 240 .
  • the memory 210 is a computer-readable recording medium and may include a random access memory (RAM), a read only memory (ROM), and a permanent mass storage device such as a disk drive.
  • RAM random access memory
  • ROM read only memory
  • a permanent mass storage device such as a disk drive.
  • a non-volatile mass storage device such as a ROM and a disk drive may be included in the computer device 200 as a separate permanent storage device distinct from the memory 210 .
  • an operating system and at least one program code may be stored in the memory 210 . These software components may be loaded into the memory 210 from a computer-readable recording medium separate from the memory 210 .
  • the separate computer-readable recording medium may include a computer-readable recording medium such as a floppy drive, a disk, a tape, a DVD/CD-ROM drive, and a memory card.
  • the software components may be loaded into the memory 210 through the communication interface 230 instead of a computer-readable recording medium.
  • the software components may be loaded into the memory 210 of the computer device 200 based on a computer program installed by files received through the network 170 .
  • the processor 220 may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input/output operations.
  • the instructions may be provided to the processor 220 by the memory 210 or the communication interface 230 .
  • the processor 220 may be configured to execute a received instruction according to a program code stored in a recording device such as the memory 210 .
  • the communication interface 230 may provide a function for the computer device 200 to communicate with other devices (eg, the storage devices described above) through the network 170 .
  • a request, command, data, file, etc. generated by the processor 220 of the computer device 200 according to a program code stored in a recording device such as the memory 210 is transmitted to the network ( 170) to other devices.
  • signals, commands, data, files, etc. from other devices may be received by the computer device 200 through the communication interface 230 of the computer device 200 via the network 170 .
  • a signal, command, or data received through the communication interface 230 may be transferred to the processor 220 or the memory 210 , and the file may be a storage medium (described above) that the computer device 200 may further include. persistent storage).
  • the input/output interface 240 may be a means for an interface with the input/output device 250 .
  • the input device may include a device such as a microphone, keyboard, or mouse
  • the output device may include a device such as a display or a speaker.
  • the input/output interface 240 may be a means for an interface with a device in which functions for input and output are integrated into one, such as a touch screen.
  • the input/output device 250 may be configured as one device with the computer device 200 .
  • the computer device 200 may include fewer or more components than those of FIG. 2 . However, there is no need to clearly show most of the prior art components.
  • the computer device 200 may be implemented to include at least a portion of the above-described input/output device 250 or may further include other components such as a transceiver and a database.
  • FIG. 3 is a diagram illustrating an example of a general appearance of a network communication monitoring system according to an embodiment of the present invention.
  • Each of the client device 310 , the server 320 , and the host 330 shown in FIG. 3 may be implemented by the computer device 200 described above with reference to FIG. 2 .
  • the client device 310 may receive a service from the server 320 by communicating with the server 320 through a network (eg, the network 170 described with reference to FIGS. 1 and 2 ).
  • the client device 310 may receive a service from the server 320 under the control of the application 311 installed and driven in the client device 310 , in which case the client device 310 may receive the above-described application.
  • Various data related to services provided by the server 320 may be transmitted/received to and from the server 320 through 311 and/or the application 311 .
  • the developer of the application 311 may want to identify the vulnerability of the application 311 , and for this purpose, an analysis service provided by the host 330 may be used.
  • the developer uploads the package file of the application 311 (eg, Android APK (Android Package) file, iOS IPA (iOS App Store Package) file, etc.) to the host 330 while uploading the application 311 You can request an analysis of your weaknesses.
  • the host 330 may patch the package file by adding the monitoring module 312 to the package file, and may transmit the patched package file to the client device 310 .
  • the client device 310 may install and drive the application 311 on the client device 310 through the patched package file, and as described above, communicate with the server 320 under the control of the application 311 to service can be provided.
  • the client device 310 determines whether a pre-registered method is called, such as a method for calling a network connection API or a network communication API, under the control of the monitoring module 312 included in the driven application 311 . can be monitored. If the pre-registered mesos is called, the client device 310 may execute the basic function of the called method under the control of the application 311 , and the method called under the control of the monitoring module 312 and In relation to this, data transmitted and received with the server 320 may be transmitted to the host 330 .
  • a pre-registered method such as a method for calling a network connection API or a network communication API
  • the host 330 can acquire data transmitted and received by the client device 310 through network communication with the server 320 under the control of the application 311 through the data received from the client device 310 . . In this case, the host 330 may sequentially store data, process (eg, parse) the stored data, and analyze the processed data to analyze vulnerabilities for the application 311 . Thereafter, the host 330 may provide an analysis result of the application 311 to the developer of the application 311 .
  • process eg, parse
  • the method generally used to monitor HTTPS data communication is to use a proxy server.
  • a proxy server verification of whether the proxy server to be connected is a trusted server is required.
  • a certificate used by the proxy server is randomly created and used, a method for avoiding verification of the proxy server by the client is required.
  • network communication can be monitored without using a proxy server, it is possible to exclude a request for bypassing certificate verification.
  • the method of using the proxy setting of the Wi-Fi setting provided by iOS is a method of monitoring all data transmitted through the Wi-Fi adapter from the iOS-based client, and the data cannot be checked by selecting a specific application from the proxy server.
  • the monitoring module included in the application monitors the use of the method for data communication of the corresponding application, it is possible to extract and monitor only the data for the individual application.
  • FIG. 4 is a diagram illustrating an example of transferring data from a client terminal including an iOS operating system to a host according to an embodiment of the present invention.
  • a process of monitoring data transmitted and received through HTTP(S) communication using a method hooking for iOS which is a specific operating system, will be described in order to help understanding of the invention.
  • 4 shows a client device 410, a server 420, and a host 430 including an iOS operating system.
  • iOS uses the NSURLConnection class 411 and/or the NSURLSession class 412 as a network connection API or network communication API to perform HTTP or HTTPS communication.
  • the NSURLConnection class 411 and the NSURLSession class 412 receive an object related to a URL request as input, enable synchronous and asynchronous connections, and provide APIs to help enable end-to-end data download and upload through the URL.
  • the NSURLConnection class 411 In the case of the NSURLConnection class 411, its use is currently not recommended, and the use of the NSURLSession class 412 that stably supports the download operation in the background is recommended, but the NSURLConnection class 411 is still used in many applications and there is.
  • the NSURLConnection class 411 operates with three protocols: NSURLConnectionDelegate, NSURLConnectionDataDelegate, and NSURLConnectionDownloadDelegate.
  • the NSURLConnection class 411 includes originalRequest and currentRequest properties.
  • URLRequest structure represents information about HTTP requests including 'httpMethod', 'url', 'httpBody', and 'allHttpHeaderFields' items.
  • the client device 410 may transmit a URL request to the server 420 using the URLRequest structure, and waits for a response result from the server 420 .
  • the response result to this URL request can be delivered as an argument of the method (connection:didReceiveResponse:) shown in Table 1 below.
  • the NSURLResponse class 413 is a class for the response result received from the method (connection:didReceiveResponse:) of Table 1 below.
  • connection:didReceiveData: In Table 3 below can be called additionally. Connection information can be received as the first argument in the same way as the method (connection:didReceiveResponse:) described in Table 1.
  • the content of the HTTP body can be delivered in the form of NSData class as the second argument.
  • data is an NSData class type and has the form of a byte buffer.
  • Table 4 shows the output of the received "data” argument.
  • the content of the "data” argument is data after decryption when HTTPS is used, and is a hexadecimal value.
  • connection:didReceiveResponse: The method (connection:didReceiveResponse:) of Table 1 and the method (connection:didReceiveData:) of Table 2 are defined in the NSURLConnectionDataDelegate protocol.
  • the NSURLSession class 412 is provided from iOS7. It provides many authentication-related functions, and enables downloading as a background operation even when the application is not running. The NSURLSession class 412 may also be added and utilized for monitoring in the same way as the NSURLConnection class 411 .
  • Method hooking can be performed using 'frida' and 'objection'.
  • 'frida' is a tool that can be executed dynamically for security check and reverse engineering, and 'objection' is based on 'frida' and can provide convenient analysis when running without rooting Android or jailbreaking iOS.
  • 'frida' and 'objection' are provided in the Python language.
  • 'frida' and 'objection' may be installed on the host 430 for method hooking, and 'Developer Disk Image' using 'libimobiledevice' may be mounted on the client device.
  • the actual application execution can be performed using the idevicedebug command tool of the 'libimobiledevice' library.
  • an application for which analysis is desired may be modified. Modification is the process of adding the 'FridaGadget.dylib' library 414 inside the IPA file so that 'frida' can be analyzed while the application is running, and the 'FridaGadget.dylib' library 414 is executed during the execution of the application so that the library 414 can be executed.
  • the process of adding the command to the MachO file included in the IPA file is required.
  • the 'FridaGadget.dylib' library 414 may be an example of the monitoring module 312 described with reference to FIG. 3 .
  • the 'connection:didReceiveResponse:' method and the 'connection:didReceiveData:' method described in Tables 1 and 3 may be registered in the 'FridaGadget.dylib' library 414 as a method for analyzing.
  • the 'frida' script may be executed through the 'FridaGadget.dylib' library 414 along with the execution of the application, and when the registered method is called in the communication process between the server and the client according to the progress of the application, the client device 410 may transmit the argument received from the script to the host 430 under the control of the 'FridaGadget.dylib' library 414 .
  • the host 430 can analyze (collect, process (parse), analyze) the contents of the HTTP request or HTTPS request, and the response result.
  • Steps 510 to 560 included in the process of FIG. 5 may be performed by the computer device 200 implementing the host 330 described above with reference to FIG. 3 or the host 430 described with reference to FIG. 4 .
  • the processor 220 of the computer device 200 may be implemented to execute a control instruction according to a code of an operating system included in the memory 210 or a code of at least one computer program.
  • the processor 220 causes the computer device 200 to perform steps 510 to 560 included in the process of FIG. 5 according to a control command provided by a code stored in the computer device 200 . can control
  • the computer device 200 may decompress the package file.
  • the package file may be a file for the installation of the analysis target application, and as described above, a plurality of files such as an Android APK (Android Package) file or an iOS IPA (iOS App Store Package) file may be compressed files. , the computer device 200 may decompress these package files to obtain files before compression.
  • Android APK Android Package
  • iOS IPA iOS App Store Package
  • the computer device 200 may add a file for the monitoring module to the decompressed package file.
  • a file for the monitoring module may be added to the decompressed package file.
  • the 'FridaGadget.dylib' library 414 is added to the package file as a file for the monitoring module with respect to the IPA file of iOS has been described.
  • the computer device 200 may add a load command for loading a file for the monitoring module to at least one of the files included in the decompressed package file.
  • the load command can be inserted into the 'MachO' file included in the iOS IPA file or the 'AndroidManifest' file included in the Android APK file.
  • the load command may be included in the file that is first executed when the analysis target application is executed.
  • the computer device 200 may copy the provisioning file to the package file.
  • the provisioning file For example, in the case of an iOS IPA file, you can copy the 'embedded.mobileprovision' file.
  • the computer device 200 may generate a file signature for the package file.
  • a file signature for the package file.
  • the file can be re-signed through the applesign or codesign command.
  • the computer device 200 may repackage the package file.
  • the repackaged package file may be transmitted to the client device and used to install the analysis target application.
  • FIG. 6 is a flowchart illustrating an example of a network communication monitoring method according to an embodiment of the present invention.
  • the network communication monitoring method according to the present embodiment may be performed by the client device 310 described with reference to FIG. 3 or the computer device 200 implementing the client device 410 described with reference to FIG. 4 .
  • the processor 220 of the computer device 200 may be implemented to execute a control instruction according to a code of an operating system included in the memory 210 or a code of at least one computer program.
  • the processor 220 causes the computer device 200 to perform steps 610 to 630 included in the method of FIG. 6 according to a control command provided by a code stored in the computer device 200 .
  • the at least one computer program described above may include an analysis target application to be described later or a monitoring module included in the analysis target application.
  • the computer device 200 may monitor whether a method related to network communication is called under the control of a monitoring module included in the analysis target application executed in the computer device 200 .
  • the analysis target application may correspond to the application 311 described with reference to FIG. 3
  • the monitoring module 312 is the monitoring module 312 described with reference to FIG. 3 or the 'FridaGadget.dylib' library 414 described with reference to FIG. ) can be matched.
  • the computer device 200 may monitor whether a method previously registered in the monitoring module is called in connection with network communication among methods provided by the operating system of the computer device 200 .
  • the monitored call may be a call by the analysis target application.
  • the monitoring module is installed and executed in the computer device 200 as the monitoring module is added to the package file of the application registered by the developer in the host and repackaged and transmitted to the computer device 200 as the installation file of the application to be analyzed. It can be included in the analysis target application.
  • the computer device 200 may acquire information about data communication between the computer device and the server that occurs by the called method under the control of the monitoring module.
  • the server may correspond to the server 320 described above with reference to FIG. 3 or the server 420 described with reference to FIG. 4 .
  • the computer device 200 transmits the response result transmitted from the server to the computer device 200 in response to the request transmitted from the computer device 200 to the server by the method called in step 620 for data communication.
  • the response result may include, for example, information about a request transmitted from the computer device 200 to the server.
  • the NSURLResponse class 413 is a class for the response result delivered from the method "connection:didReceiveResponse:" described in Table 1 above.
  • connection the first argument of the method “connection:didReceiveResponse:”, information about the request is included. It has been explained that this may be included.
  • the response result may include at least one of the content of the HTTP (HyperText Transfer Protocol) header for the response result and the content of the HTTP body for the response result. It was previously explained that in the case of "NSURLResponse”, which is the second argument of the method "connection:didReceiveResponse:”, the content of the HTTP header for the response result can be included. Also, it has been explained that the method "connection:didReceiveData:” can be called when data is included in the response result, and the content of the HTTP body can be delivered in the form of NSData class as the second argument.
  • the computer device 200 may transmit at least a portion of the acquired information to the host analyzing the analysis target application under the control of the monitoring module.
  • the host may analyze the analysis target application using the received information.
  • FIG. 7 is a flowchart illustrating another example of a network communication monitoring method according to an embodiment of the present invention.
  • the network communication monitoring method according to the present embodiment may be performed by the computer device 200 implementing the host 330 described with reference to FIG. 3 or the host 430 described with reference to FIG. 4 .
  • the processor 220 of the computer device 200 may be implemented to execute a control instruction according to a code of an operating system included in the memory 210 or a code of at least one computer program.
  • the processor 220 causes the computer device 200 to perform the steps 710 to 750 included in the method of FIG. 7 according to a control command provided by a code stored in the computer device 200 . can control
  • the computer device 200 may receive a package file of the analysis target application registered by the developer.
  • the developer can access the user interface of the analysis service provided by the host 330 through the network using the developer's terminal, and the developer wants to analyze using the upload function of the package file provided by the user interface. You can upload the package file of the application to be analyzed.
  • the computer device 200 may receive the registration of the package file of the analysis target application by storing the uploaded package file.
  • the computer device 200 may repackage by adding a monitoring module to the registered package file.
  • the repackaging of the package file has been previously described in detail with reference to FIG. 5 .
  • the computer device 200 may transmit the repackaged package file to the client device.
  • the client device may correspond to the client device 310 described above with reference to FIG. 3 or the client device 410 described with reference to FIG. 4 .
  • the monitoring module may be executed as the analysis target application is driven in the client device in which the analysis target application is installed using the repackaged package file.
  • Such a monitoring module may be implemented to monitor the call of a method previously registered in the monitoring module in relation to network communication among methods provided by the operating system of the client device.
  • the call may be a call by an analysis target application.
  • the computer device 200 may receive information about data communication performed by the client device with the server through the analysis target application through the monitoring module.
  • the client device controls at least a part of a response result transmitted from the server to the client device in response to a request transmitted from the client device to the server as a method previously registered in the monitoring module is called by the client device.
  • the computer device 200 may receive at least a part of the response result transmitted by the client device as information about the data communication.
  • the response result may include at least one of information about the request transmitted from the client device to the server, the content of the HTTP header for the response result, and the content of the HTTP body for the response result.
  • the computer device 200 may analyze the analysis target application using at least a portion of the received information.
  • the computer device 200 may collect and store data transmitted by the client device under the control of the monitoring module, process (eg, parse) the data to analyze the analysis target application.
  • the computer device 200 may provide the analysis result of the application to be analyzed to the developer.
  • the analysis result may be delivered to the developer through various channels such as a user interface of the analysis service or e-mail.
  • the system or device described above may be implemented as a hardware component or a combination of a hardware component and a software component.
  • devices and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA). , a programmable logic unit (PLU), microprocessor, or any other device capable of executing and responding to instructions, may be implemented using one or more general purpose or special purpose computers.
  • the processing device may execute an operating system (OS) and one or more software applications running on the operating system.
  • a processing device may also access, store, manipulate, process, and generate data in response to execution of the software.
  • OS operating system
  • a processing device may also access, store, manipulate, process, and generate data in response to execution of the software.
  • the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that can include For example, the processing device may include a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as parallel processors.
  • Software may comprise a computer program, code, instructions, or a combination of one or more thereof, which configures a processing device to operate as desired or is independently or collectively processed You can command the device.
  • the software and/or data may be any kind of machine, component, physical device, virtual equipment, computer storage medium or apparatus, to be interpreted by or to provide instructions or data to the processing device. may be embodied in The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.
  • the method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium.
  • the computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination.
  • the medium may be to continuously store a computer executable program, or to temporarily store it for execution or download.
  • the medium may be various recording means or storage means in the form of a single or several hardware combined, it is not limited to a medium directly connected to any computer system, and may exist distributedly on a network.
  • Examples of the medium include a hard disk, a magnetic medium such as a floppy disk and a magnetic tape, an optical recording medium such as CD-ROM and DVD, a magneto-optical medium such as a floppy disk, and those configured to store program instructions, including ROM, RAM, flash memory, and the like.
  • examples of other media may include recording media or storage media managed by an app store for distributing applications, sites supplying or distributing other various software, and servers.
  • Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.

Abstract

Provided are a monitoring method and system capable of identifying communication data of a server-network related to a specific application via a method of detecting the operation of a method used for data communication in relation to the application, without having to obtain root authority of an operating system or go through a certificate bypass process or the like for verification of HTTPS communication.

Description

메소드 후킹을 이용한 네트워크 통신 모니터링 방법 및 시스템Network communication monitoring method and system using method hooking
아래의 설명은 메소드 후킹을 이용한 네트워크 통신 모니터링 방법 및 시스템에 관한 것이다.The following description relates to a method and system for monitoring network communication using method hooking.
모바일 어플리케이션들은 사용자를 인증하거나, 어플리케이션의 실행에 필요한 리소스를 다운로드하거나, 단말기의 데이터를 서버로 전달하여 저장하거나, 다른 사용자들과의 통신에서 데이터를 주고 받기 위해 네트워크 통신을 사용한다. 이 과정에서 개발자의 실수로 클라이언트(어플리케이션)가 의도하지 않은 서버로 접속하거나, 민감한 개인정보를 전송하는 등의 문제가 발생할 수 있다. 이러한 오류와 실수를 줄이기 위해 통신상의 데이터 검증이 요구된다. 일반적으로 서버-클라이언트간의 통신을 모니터링 하기 위해, 서버와 클라이언트 사이에 위치하는 프록시 서버를 이용하여 데이터를 모니터링하는 종래기술이 존재한다.Mobile applications use network communication to authenticate users, download resources required for application execution, transmit and store terminal data to a server, or exchange data with other users. In this process, problems such as a client (application) connecting to an unintended server or transmitting sensitive personal information may occur due to the developer's mistake. In order to reduce these errors and mistakes, data verification in communication is required. In general, in order to monitor server-client communication, there is a prior art for monitoring data using a proxy server located between the server and the client.
프록시 서버를 이용하는 방법은 서버-클라이언트 통신의 데이터를 모니터링 하기 위해 가장 많이 사용하는 방법으로, 서버와 클라이언트 중간에 새로운 서버(프록시 서버)를 두고 프록시 서버에서 서버와 클라이언트의 주고 받는 데이터를 전달하는 중계 역할을 하며 이 과정에서 프록시 서버가 전달하는 데이터를 읽을 수 있다. 이때, 프록시 서버를 사용하고자 하는 경우, 클라이언트는 프록시 서버를 신뢰할 수 있어야 한다. 클라이언트는 연결하려는 프록시 서버가 신뢰할 수 있는 서버인지 확인하기 위해 프록시 서버에서 사용하는 인증서가 공인된 인증기관에서 발급한 것인지 확인한다. 만약 공인된 인증기관의 인증서라면 클라이언트는 프록시 서버를 신뢰할 수 있다. 만약 그렇지 않다면 프록시 서버의 신뢰를 위해 클라이언트는 프록시 서버의 SSL 인증서를 신뢰하도록 수동으로 설정해 주는 과정이 요구된다. 이러한 신뢰를 바탕으로 클라이언트는 프록시 서버를 통하여 외부와 연결될 수 있다. 신뢰 관계가 형성되면 서버와 클라이언트는 프록시 서버를 통해 통신을 하게 되고, 프록시 서버는 서버와 클라이언트 각각에서 교환한 암호화 방식에 의하여 HTTPS(Hypertext Transfer Protocol Secure) 통신이더라도 내용을 복호화하여 확인하는 것이 가능해진다.The method using a proxy server is the most used method to monitor the data of server-client communication. A new server (proxy server) is placed between the server and the client, and the proxy server transmits the data exchanged between the server and the client. It can read the data passed by the proxy server in the process. In this case, if a proxy server is to be used, the client must trust the proxy server. In order to verify that the proxy server to be connected to is a trusted server, the client checks whether the certificate used by the proxy server is issued by an authorized certification authority. If the certificate is from an authorized CA, the client can trust the proxy server. If not, the process of manually setting the client to trust the proxy server's SSL certificate is required to trust the proxy server. Based on this trust, the client can connect to the outside through the proxy server. When the trust relationship is established, the server and the client communicate through the proxy server, and the proxy server can decrypt and verify the contents even in HTTPS (Hypertext Transfer Protocol Secure) communication by the encryption method exchanged between the server and the client. .
그러나, 특정 운영체제(일례로, iOS)에서 제공하는 와이파이 설정의 프록시 설정을 이용하여 네트워크를 통해 전달되는 데이터를 모니터링하는 것은 해당 운영체제가 설치된 장치에서 와이파이 어댑터를 통해 전송되는 모든 데이터에 대한 모니터링만이 가능할 뿐, 특정한 어플리케이션의 서버-클라이언트 통신 데이터를 관찰하기 위해서는, 해당 운영체제의 루트권한이 요구된다는 문제점이 있다.However, monitoring data transmitted through the network using the proxy setting of the Wi-Fi setting provided by a specific operating system (eg, iOS) only monitors all data transmitted through the Wi-Fi adapter from the device in which the operating system is installed. Although possible, there is a problem that the root authority of the corresponding operating system is required in order to observe the server-client communication data of a specific application.
[선행기술문헌] [Prior art literature]
한국등록특허 제10-2024148호Korean Patent Registration No. 10-2024148
운영체제의 루트권한을 획득하거나 HTTPS 통신의 검증을 위한 인증서 우회과정 등을 거칠 필요 없이, 특정 어플리케이션과 관련하여 데이터 통신에 사용되는 메소드의 동작을 감지하는 방식을 통해 해당 어플리케이션과 관련된 서버-네트워크의 통신 데이터를 확인할 수 있는 모니터링 방법 및 시스템을 제공한다.Server-network communication related to the application through a method of detecting the operation of a method used for data communication in relation to a specific application without having to obtain the root authority of the operating system or go through a certificate bypass process for verifying HTTPS communication A monitoring method and system for checking data are provided.
적어도 하나의 프로세서를 포함하는 컴퓨터 장치의 네트워크 통신 모니터링 방법에 있어서, 상기 컴퓨터 장치에서 실행된 분석 대상 어플리케이션에 포함된 모니터링 모듈의 제어에 따라 상기 적어도 하나의 프로세서에 의해, 네트워크 통신과 관련된 메소드가 상기 분석 대상 어플리케이션에 의해 호출되는지 여부를 모니터링하는 단계; 상기 메소드가 호출되는 경우, 상기 모니터링 모듈의 제어에 따라 상기 적어도 하나의 프로세서에 의해, 상기 호출된 메소드에 의해 발생하는 상기 컴퓨터 장치와 서버간의 데이터 통신에 대한 정보를 획득하는 단계; 및 상기 모니터링 모듈의 제어에 따라 상기 적어도 하나의 프로세서에 의해, 상기 획득한 정보의 적어도 일부를 상기 분석 대상 어플리케이션을 분석하는 호스트로 전송하는 단계를 포함하는 네트워크 통신 모니터링 방법을 제공한다.In the method for monitoring network communication of a computer device including at least one processor, a method related to network communication is performed by the at least one processor under the control of a monitoring module included in an analysis target application executed in the computer device. monitoring whether it is called by the analysis target application; when the method is called, acquiring, by the at least one processor under the control of the monitoring module, information on data communication between the computer device and the server generated by the called method; and transmitting, by the at least one processor under the control of the monitoring module, at least a portion of the acquired information to a host that analyzes the analysis target application.
일측에 따르면, 상기 모니터링하는 단계는, 상기 컴퓨터 장치의 운영체제가 제공하는 메소드 중 네트워크 통신과 관련하여 상기 모니터링 모듈에 기 등록된 메소드의 호출 여부를 모니터링하는 것을 특징으로 할 수 있다.According to one side, the monitoring may include monitoring whether a method previously registered in the monitoring module is called in connection with network communication among methods provided by the operating system of the computer device.
다른 측면에 따르면, 상기 호출은 상기 분석 대상 어플리케이션에 의한 호출인 것을 특징으로 할 수 있다.According to another aspect, the call may be a call by the analysis target application.
또 다른 측면에 따르면, 상기 컴퓨터 장치와 서버간의 데이터 통신에 대한 정보를 획득하는 단계는, 상기 호출된 메소드에 의해 상기 컴퓨터 장치에서 상기 서버로 전송된 요청에 대응하여 상기 서버로부터 상기 컴퓨터 장치로 전달되는 응답결과를 상기 데이터 통신에 대한 정보로서 획득하는 것을 특징으로 할 수 있다.According to another aspect, the acquiring information on data communication between the computer device and the server includes transmitting the information from the server to the computer device in response to a request transmitted from the computer device to the server by the called method. It may be characterized in that the obtained response result is obtained as information on the data communication.
또 다른 측면에 따르면, 상기 응답결과는 상기 컴퓨터 장치에서 상기 서버로 전달된 요청에 대한 정보를 포함하는 것을 특징으로 할 수 있다.According to another aspect, the response result may include information about the request transmitted from the computer device to the server.
또 다른 측면에 따르면, 상기 응답결과는 상기 응답결과에 대한 HTTP(HyperText Transfer Protocol)의 헤더의 내용 및 상기 응답결과에 대한 HTTP의 바디의 내용 중 적어도 하나를 포함하는 것을 특징으로 할 수 있다.According to another aspect, the response result may include at least one of a content of a HTTP (HyperText Transfer Protocol) header with respect to the response result and a content of an HTTP body with respect to the response result.
또 다른 측면에 따르면, 상기 모니터링 모듈은, 상기 호스트에서 개발자로부터 등록된 어플리케이션의 패키지 파일에 상기 모니터링 모듈을 추가하여 재패키징하여 상기 분석 대상 어플리케이션의 설치 파일로서 상기 컴퓨터 장치로 전송함에 따라 상기 컴퓨터 장치에서 설치 및 실행되는 상기 분석 대상 어플리케이션에 포함되는 것을 특징으로 할 수 있다.According to another aspect, the monitoring module adds the monitoring module to the package file of the application registered by the developer in the host, repackages it, and transmits it to the computer device as an installation file of the application to be analyzed. It may be characterized in that it is included in the analysis target application installed and executed in .
컴퓨터 장치와 결합되어 상기 방법을 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 기록되어 있는 컴퓨터 프로그램을 제공한다.It provides a computer program recorded on a computer-readable recording medium in combination with a computer device to execute the method on the computer device.
상기 컴퓨터 프로그램은 상기 분석 대상 어플리케이션 또는 상기 모니터링 모듈을 포함하는 것을 특징으로 할 수 있다.The computer program may include the analysis target application or the monitoring module.
상기 방법을 컴퓨터 장치에 실행시키기 위한 컴퓨터 프로그램이 기록되어 있는 컴퓨터 판독 가능한 기록매체를 제공한다.There is provided a computer-readable recording medium in which a computer program for executing the method in a computer device is recorded.
적어도 하나의 프로세서를 포함하는 컴퓨터 장치의 네트워크 통신 모니터링 방법에 있어서, 상기 적어도 하나의 프로세서에 의해, 개발자로부터 분석 대상 어플리케이션의 패키지 파일을 등록받는 단계; 상기 적어도 하나의 프로세서에 의해, 상기 등록된 패키지 파일에 모니터링 모듈을 추가하여 재패키징하는 단계; 상기 적어도 하나의 프로세서에 의해, 상기 재패키징된 패키지 파일을 클라이언트 장치로 전송하는 단계; 상기 적어도 하나의 프로세서에 의해, 상기 클라이언트 장치가 상기 분석 대상 어플리케이션을 통해 서버와 진행한 데이터 통신에 대한 정보를 상기 모니터링 모듈을 통해 수신하는 단계; 및 상기 적어도 하나의 프로세서에 의해, 상기 수신된 정보의 적어도 일부를 이용하여 상기 분석 대상 어플리케이션을 분석하는 단계를 포함하는 네트워크 통신 모니터링 방법을 제공한다.A method for monitoring network communication of a computer device including at least one processor, the method comprising: receiving, by the at least one processor, a package file of an analysis target application from a developer; repackaging by adding, by the at least one processor, a monitoring module to the registered package file; sending, by the at least one processor, the repackaged package file to a client device; receiving, by the at least one processor, information on data communication performed by the client device with a server through the analysis target application through the monitoring module; and analyzing, by the at least one processor, the analysis target application using at least a portion of the received information.
일측에 따르면, 상기 모니터링 모듈은, 상기 클라이언트 장치의 운영체제가 제공하는 메소드 중 네트워크 통신과 관련하여 상기 모니터링 모듈에 기 등록된 메소드의 호출을 모니터링하도록 구현되는 것을 특징으로 할 수 있다.According to one side, the monitoring module may be implemented to monitor a call of a method previously registered in the monitoring module in connection with network communication among methods provided by the operating system of the client device.
다른 측면에 따르면, 상기 호출은 상기 분석 대상 어플리케이션에 의한 호출인 것을 특징으로 할 수 있다.According to another aspect, the call may be a call by the analysis target application.
또 다른 측면에 따르면, 상기 수신하는 단계는, 상기 모니터링 모듈에 기 등록된 메소드가 상기 클라이언트 장치에 의해 호출됨에 따라 상기 클라이언트 장치에서 서버로 전송된 요청에 대응하여 상기 서버로부터 상기 클라이언트 장치로 전달되는 응답결과의 적어도 일부를 상기 데이터 통신에 대한 정보로서 수신하는 것을 특징으로 할 수 있다.According to another aspect, in the receiving, the method registered in the monitoring module is transmitted from the server to the client device in response to a request transmitted from the client device to the server as the method is called by the client device It may be characterized in that at least a part of the response result is received as information on the data communication.
컴퓨터 장치와 결합되어 상기 방법을 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 기록되어 있는 컴퓨터 프로그램을 제공한다.It provides a computer program recorded on a computer-readable recording medium in combination with a computer device to execute the method on the computer device.
상기 방법을 컴퓨터 장치에 실행시키기 위한 컴퓨터 프로그램이 기록되어 있는 컴퓨터 판독 가능한 기록매체를 제공한다.There is provided a computer-readable recording medium in which a computer program for executing the method in a computer device is recorded.
컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서에 의해, 개발자로부터 분석 대상 어플리케이션의 패키지 파일을 등록받고, 상기 등록된 패키지 파일에 모니터링 모듈을 추가하여 재패키징하고, 상기 재패키징된 패키지 파일을 클라이언트 장치로 전송하고, 상기 클라이언트 장치가 상기 분석 대상 어플리케이션을 통해 서버와 진행한 데이터 통신에 대한 정보를 상기 모니터링 모듈을 통해 수신하고, 상기 수신된 정보의 적어도 일부를 이용하여 상기 분석 대상 어플리케이션을 분석하는 것을 특징으로 하는 컴퓨터 장치를 제공한다.Comprising at least one processor implemented to execute a computer-readable instruction, by the at least one processor, the package file of the application to be analyzed is registered from the developer, and by adding a monitoring module to the registered package file packaging, transmitting the repackaged package file to a client device, and receiving information about data communication performed by the client device with a server through the analysis target application through the monitoring module, and at least It provides a computer device, characterized in that the analysis target application is analyzed using some.
운영체제의 루트권한을 획득하거나 HTTPS 통신의 검증을 위한 인증서 우회과정 등을 거칠 필요 없이, 특정 어플리케이션과 관련하여 데이터 통신에 사용되는 메소드의 동작을 감지하는 방식을 통해 해당 어플리케이션과 관련된 서버-네트워크의 통신 데이터를 확인할 수 있다.Server-network communication related to the application through a method of detecting the operation of a method used for data communication in relation to a specific application without having to obtain the root authority of the operating system or go through a certificate bypass process for verifying HTTPS communication You can check the data.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다.1 is a diagram illustrating an example of a network environment according to an embodiment of the present invention.
도 2는 본 발명의 일실시예에 따른 컴퓨터 장치의 예를 도시한 블록도이다.2 is a block diagram illustrating an example of a computer device according to an embodiment of the present invention.
도 3은 본 발명의 일실시예에 있어서, 네트워크 통신 모니터링 시스템의 개괄적인 모습의 예를 도시한 도면이다.3 is a diagram illustrating an example of a general appearance of a network communication monitoring system according to an embodiment of the present invention.
도 4는 본 발명의 일실시예에 있어서, iOS 운영체제를 포함하는 클라이언트 단말에서 호스트로 데이터를 전달하는 예를 도시한 도면이다.4 is a diagram illustrating an example of transferring data from a client terminal including an iOS operating system to a host according to an embodiment of the present invention.
도 5는 본 발명의 일실시예에 있어서, 패키지 파일을 재패키징하는 과정의 예를 도시한 흐름도이다.5 is a flowchart illustrating an example of a process of repackaging a package file according to an embodiment of the present invention.
도 6은 본 발명의 일실시예에 따른 네트워크 통신 모니터링 방법의 예를 도시한 흐름도이다.6 is a flowchart illustrating an example of a network communication monitoring method according to an embodiment of the present invention.
도 7은 본 발명의 일실시예에 따른 네트워크 통신 모니터링 방법의 다른 예를 도시한 흐름도이다.7 is a flowchart illustrating another example of a network communication monitoring method according to an embodiment of the present invention.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.Since the present invention can have various changes and can have various embodiments, specific embodiments are illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present invention to specific embodiments, and it should be understood to include all modifications, equivalents and substitutes included in the spirit and scope of the present invention. In describing each figure, like reference numerals have been used for like elements.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Terms such as first, second, A, and B may be used to describe various elements, but the elements should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, a first component may be referred to as a second component, and similarly, a second component may also be referred to as a first component. and/or includes a combination of a plurality of related listed items or any of a plurality of related listed items.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When an element is referred to as being “connected” or “connected” to another element, it is understood that it may be directly connected or connected to the other element, but other elements may exist in between. it should be On the other hand, when it is said that a certain element is "directly connected" or "directly connected" to another element, it should be understood that the other element does not exist in the middle.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the present application are only used to describe specific embodiments, and are not intended to limit the present invention. The singular expression includes the plural expression unless the context clearly dictates otherwise. In the present application, terms such as “comprise” or “have” are intended to designate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, but one or more other features It should be understood that this does not preclude the existence or addition of numbers, steps, operations, components, parts, or combinations thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical and scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and should not be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present application. does not
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings.
본 발명의 실시예들에 따른 네트워크 통신 모니터링 시스템은 적어도 하나의 컴퓨터 장치에 의해 구현될 수 있으며, 본 발명의 실시예들에 따른 네트워크 통신 모니터링 방법은 네트워크 통신 모니터링 시스템을 구현하는 적어도 하나의 컴퓨터 장치를 통해 수행될 수 있다. 컴퓨터 장치에는 본 발명의 일실시예에 따른 컴퓨터 프로그램이 설치 및 구동될 수 있고, 컴퓨터 장치는 구동된 컴퓨터 프로그램의 제어에 따라 본 발명의 실시예들에 따른 네트워크 통신 모니터링 방법을 수행할 수 있다. 상술한 컴퓨터 프로그램은 컴퓨터 장치와 결합되어 네트워크 통신 모니터링 방법을 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장될 수 있다.The network communication monitoring system according to the embodiments of the present invention may be implemented by at least one computer device, and the network communication monitoring method according to the embodiments of the present invention is at least one computer device implementing the network communication monitoring system. can be performed through The computer program according to an embodiment of the present invention may be installed and driven in the computer device, and the computer device may perform the network communication monitoring method according to the embodiments of the present invention under the control of the driven computer program. The above-described computer program may be stored in a computer-readable recording medium in order to be combined with a computer device and execute the method for monitoring network communication in the computer device.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다. 도 1의 네트워크 환경은 복수의 전자 기기들(110, 120, 130, 140), 복수의 서버들(150, 160) 및 네트워크(170)를 포함하는 예를 나타내고 있다. 이러한 도 1은 발명의 설명을 위한 일례로 전자 기기의 수나 서버의 수가 도 1과 같이 한정되는 것은 아니다. 또한, 도 1의 네트워크 환경은 본 실시예들에 적용 가능한 환경들 중 하나의 예를 설명하는 것일 뿐, 본 실시예들에 적용 가능한 환경이 도 1의 네트워크 환경으로 한정되는 것은 아니다.1 is a diagram illustrating an example of a network environment according to an embodiment of the present invention. The network environment of FIG. 1 shows an example including a plurality of electronic devices 110 , 120 , 130 , 140 , a plurality of servers 150 , 160 , and a network 170 . 1 is an example for explaining the invention, and the number of electronic devices or the number of servers is not limited as in FIG. 1 . In addition, the network environment of FIG. 1 only describes one example of environments applicable to the present embodiments, and the environment applicable to the present embodiments is not limited to the network environment of FIG. 1 .
복수의 전자 기기들(110, 120, 130, 140)은 컴퓨터 장치로 구현되는 고정형 단말이거나 이동형 단말일 수 있다. 복수의 전자 기기들(110, 120, 130, 140)의 예를 들면, 스마트폰(smart phone), 휴대폰, 네비게이션, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 태블릿 PC 등이 있다. 일례로 도 1에서는 전자 기기(110)의 예로 스마트폰의 형상을 나타내고 있으나, 본 발명의 실시예들에서 전자 기기(110)는 실질적으로 무선 또는 유선 통신 방식을 이용하여 네트워크(170)를 통해 다른 전자 기기들(120, 130, 140) 및/또는 서버(150, 160)와 통신할 수 있는 다양한 물리적인 컴퓨터 장치들 중 하나를 의미할 수 있다.The plurality of electronic devices 110 , 120 , 130 , and 140 may be a fixed terminal implemented as a computer device or a mobile terminal. Examples of the plurality of electronic devices 110 , 120 , 130 , 140 include a smart phone, a mobile phone, a navigation device, a computer, a notebook computer, a digital broadcasting terminal, a personal digital assistant (PDA), and a portable multimedia player (PMP). ), tablet PCs, etc. As an example, in FIG. 1 , the shape of a smartphone is shown as an example of the electronic device 110 , but in embodiments of the present invention, the electronic device 110 is substantially different through the network 170 using a wireless or wired communication method. It may refer to one of various physical computer devices capable of communicating with the electronic devices 120 , 130 , 140 and/or the servers 150 and 160 .
통신 방식은 제한되지 않으며, 네트워크(170)가 포함할 수 있는 통신망(일례로, 이동통신망, 유선 인터넷, 무선 인터넷, 방송망)을 활용하는 통신 방식뿐만 아니라 기기들간의 근거리 무선 통신 역시 포함될 수 있다. 예를 들어, 네트워크(170)는, PAN(personal area network), LAN(local area network), CAN(campus area network), MAN(metropolitan area network), WAN(wide area network), BBN(broadband network), 인터넷 등의 네트워크 중 하나 이상의 임의의 네트워크를 포함할 수 있다. 또한, 네트워크(170)는 버스 네트워크, 스타 네트워크, 링 네트워크, 메쉬 네트워크, 스타-버스 네트워크, 트리 또는 계층적(hierarchical) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있으나, 이에 제한되지 않는다.The communication method is not limited, and not only a communication method using a communication network (eg, a mobile communication network, a wired Internet, a wireless Internet, a broadcasting network) that the network 170 may include, but also short-range wireless communication between devices may be included. For example, the network 170 may include a personal area network (PAN), a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), a wide area network (WAN), and a broadband network (BBN). , the Internet, and the like. In addition, the network 170 may include any one or more of a network topology including a bus network, a star network, a ring network, a mesh network, a star-bus network, a tree or a hierarchical network, etc. not limited
서버(150, 160) 각각은 복수의 전자 기기들(110, 120, 130, 140)과 네트워크(170)를 통해 통신하여 명령, 코드, 파일, 컨텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다. 예를 들어, 서버(150)는 네트워크(170)를 통해 접속한 복수의 전자 기기들(110, 120, 130, 140)로 서비스(일례로, 어플리케이션 분석 서비스, 컨텐츠 제공 서비스, 아카이빙 서비스, 파일 배포 서비스, 지도 서비스, 그룹 통화 서비스(또는 음성 컨퍼런스 서비스), 메시징 서비스, 메일 서비스, 소셜 네트워크 서비스, 지도 서비스, 번역 서비스, 금융 서비스, 결제 서비스, 검색 서비스 등)를 제공하는 시스템일 수 있다.Each of the servers 150 and 160 communicates with the plurality of electronic devices 110 , 120 , 130 , 140 and the network 170 through a computer device or a plurality of computers that provides commands, codes, files, contents, services, etc. It can be implemented in devices. For example, the server 150 provides a service (eg, an application analysis service, a content providing service, an archiving service, and a file distribution) to the plurality of electronic devices 110 , 120 , 130 , 140 accessed through the network 170 . service, map service, group call service (or voice conference service), messaging service, mail service, social network service, map service, translation service, financial service, payment service, search service, etc.).
도 2는 본 발명의 일실시예에 따른 컴퓨터 장치의 예를 도시한 블록도이다. 앞서 설명한 복수의 전자 기기들(110, 120, 130, 140) 각각이나 서버들(150, 160) 각각은 도 2를 통해 도시된 컴퓨터 장치(200)에 의해 구현될 수 있다.2 is a block diagram illustrating an example of a computer device according to an embodiment of the present invention. Each of the plurality of electronic devices 110 , 120 , 130 , 140 or the servers 150 and 160 described above may be implemented by the computer device 200 illustrated in FIG. 2 .
이러한 컴퓨터 장치(200)는 도 2에 도시된 바와 같이, 메모리(210), 프로세서(220), 통신 인터페이스(230) 그리고 입출력 인터페이스(240)를 포함할 수 있다. 메모리(210)는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 디스크 드라이브와 같은 비소멸성 대용량 기록장치는 메모리(210)와는 구분되는 별도의 영구 저장 장치로서 컴퓨터 장치(200)에 포함될 수도 있다. 또한, 메모리(210)에는 운영체제와 적어도 하나의 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(210)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 메모리(210)로 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신 인터페이스(230)를 통해 메모리(210)에 로딩될 수도 있다. 예를 들어, 소프트웨어 구성요소들은 네트워크(170)를 통해 수신되는 파일들에 의해 설치되는 컴퓨터 프로그램에 기반하여 컴퓨터 장치(200)의 메모리(210)에 로딩될 수 있다.As shown in FIG. 2 , the computer device 200 may include a memory 210 , a processor 220 , a communication interface 230 , and an input/output interface 240 . The memory 210 is a computer-readable recording medium and may include a random access memory (RAM), a read only memory (ROM), and a permanent mass storage device such as a disk drive. Here, a non-volatile mass storage device such as a ROM and a disk drive may be included in the computer device 200 as a separate permanent storage device distinct from the memory 210 . Also, an operating system and at least one program code may be stored in the memory 210 . These software components may be loaded into the memory 210 from a computer-readable recording medium separate from the memory 210 . The separate computer-readable recording medium may include a computer-readable recording medium such as a floppy drive, a disk, a tape, a DVD/CD-ROM drive, and a memory card. In another embodiment, the software components may be loaded into the memory 210 through the communication interface 230 instead of a computer-readable recording medium. For example, the software components may be loaded into the memory 210 of the computer device 200 based on a computer program installed by files received through the network 170 .
프로세서(220)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(210) 또는 통신 인터페이스(230)에 의해 프로세서(220)로 제공될 수 있다. 예를 들어 프로세서(220)는 메모리(210)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.The processor 220 may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input/output operations. The instructions may be provided to the processor 220 by the memory 210 or the communication interface 230 . For example, the processor 220 may be configured to execute a received instruction according to a program code stored in a recording device such as the memory 210 .
통신 인터페이스(230)는 네트워크(170)를 통해 컴퓨터 장치(200)가 다른 장치(일례로, 앞서 설명한 저장 장치들)와 서로 통신하기 위한 기능을 제공할 수 있다. 일례로, 컴퓨터 장치(200)의 프로세서(220)가 메모리(210)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청이나 명령, 데이터, 파일 등이 통신 인터페이스(230)의 제어에 따라 네트워크(170)를 통해 다른 장치들로 전달될 수 있다. 역으로, 다른 장치로부터의 신호나 명령, 데이터, 파일 등이 네트워크(170)를 거쳐 컴퓨터 장치(200)의 통신 인터페이스(230)를 통해 컴퓨터 장치(200)로 수신될 수 있다. 통신 인터페이스(230)를 통해 수신된 신호나 명령, 데이터 등은 프로세서(220)나 메모리(210)로 전달될 수 있고, 파일 등은 컴퓨터 장치(200)가 더 포함할 수 있는 저장 매체(상술한 영구 저장 장치)로 저장될 수 있다.The communication interface 230 may provide a function for the computer device 200 to communicate with other devices (eg, the storage devices described above) through the network 170 . For example, a request, command, data, file, etc. generated by the processor 220 of the computer device 200 according to a program code stored in a recording device such as the memory 210 is transmitted to the network ( 170) to other devices. Conversely, signals, commands, data, files, etc. from other devices may be received by the computer device 200 through the communication interface 230 of the computer device 200 via the network 170 . A signal, command, or data received through the communication interface 230 may be transferred to the processor 220 or the memory 210 , and the file may be a storage medium (described above) that the computer device 200 may further include. persistent storage).
입출력 인터페이스(240)는 입출력 장치(250)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 마이크, 키보드 또는 마우스 등의 장치를, 그리고 출력 장치는 디스플레이, 스피커와 같은 장치를 포함할 수 있다. 다른 예로 입출력 인터페이스(240)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 입출력 장치(250)는 컴퓨터 장치(200)와 하나의 장치로 구성될 수도 있다.The input/output interface 240 may be a means for an interface with the input/output device 250 . For example, the input device may include a device such as a microphone, keyboard, or mouse, and the output device may include a device such as a display or a speaker. As another example, the input/output interface 240 may be a means for an interface with a device in which functions for input and output are integrated into one, such as a touch screen. The input/output device 250 may be configured as one device with the computer device 200 .
또한, 다른 실시예들에서 컴퓨터 장치(200)는 도 2의 구성요소들보다 더 적은 혹은 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 컴퓨터 장치(200)는 상술한 입출력 장치(250) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다.Also, in other embodiments, the computer device 200 may include fewer or more components than those of FIG. 2 . However, there is no need to clearly show most of the prior art components. For example, the computer device 200 may be implemented to include at least a portion of the above-described input/output device 250 or may further include other components such as a transceiver and a database.
도 3은 본 발명의 일실시예에 있어서, 네트워크 통신 모니터링 시스템의 개괄적인 모습의 예를 도시한 도면이다. 도 3에 도시된 클라이언트 장치(310), 서버(320) 및 호스트(330) 각각은 앞서 도 2를 통해 설명한 컴퓨터 장치(200)에 의해 구현될 수 있다.3 is a diagram illustrating an example of a general appearance of a network communication monitoring system according to an embodiment of the present invention. Each of the client device 310 , the server 320 , and the host 330 shown in FIG. 3 may be implemented by the computer device 200 described above with reference to FIG. 2 .
클라이언트 장치(310)는 서버(320)와 네트워크(일례로, 도 1 및 도 2를 통해 설명한 네트워크(170))를 통해 통신하여 서버(320)로부터 서비스를 제공받을 수 있다. 예를 들어, 클라이언트 장치(310)는 클라이언트 장치(310)에 설치 및 구동된 어플리케이션(311)의 제어에 따라 서버(320)로부터 서비스를 제공받을 수 있으며, 이때 클라이언트 장치(310)는 상술한 어플리케이션(311) 및/또는 어플리케이션(311)을 통해 서버(320)가 제공하는 서비스와 연관된 다양한 데이터를 서버(320)와 송수신할 수 있다.The client device 310 may receive a service from the server 320 by communicating with the server 320 through a network (eg, the network 170 described with reference to FIGS. 1 and 2 ). For example, the client device 310 may receive a service from the server 320 under the control of the application 311 installed and driven in the client device 310 , in which case the client device 310 may receive the above-described application. Various data related to services provided by the server 320 may be transmitted/received to and from the server 320 through 311 and/or the application 311 .
이때, 어플리케이션(311)의 개발자는 어플리케이션(311)의 취약점을 파악하고자 할 수 있으며, 이를 위해, 호스트(330)가 제공하는 분석 서비스를 이용할 수 있다. 예를 들어, 개발자는 어플리케이션(311)의 패키지 파일(일례로, 안드로이드의 APK(Android Package) 파일, iOS의 IPA(iOS App Store Package) 파일 등)을 호스트(330)로 업로드하면서 어플리케이션(311)의 취약점에 대한 분석을 의뢰할 수 있다. 이 경우, 호스트(330)는 패키지 파일에 모니터링 모듈(312)을 추가하여 패키지 파일을 패치할 수 있으며, 패치된 패키지 파일을 클라이언트 장치(310)로 전송할 수 있다.In this case, the developer of the application 311 may want to identify the vulnerability of the application 311 , and for this purpose, an analysis service provided by the host 330 may be used. For example, the developer uploads the package file of the application 311 (eg, Android APK (Android Package) file, iOS IPA (iOS App Store Package) file, etc.) to the host 330 while uploading the application 311 You can request an analysis of your weaknesses. In this case, the host 330 may patch the package file by adding the monitoring module 312 to the package file, and may transmit the patched package file to the client device 310 .
클라이언트 장치(310)는 패치된 패키지 파일을 통해 어플리케이션(311)을 클라이언트 장치(310)에 설치 및 구동시킬 수 있으며, 앞서 설명한 바와 같이, 어플리케이션(311)의 제어에 따라 서버(320)와 통신하여 서비스를 제공받을 수 있다.The client device 310 may install and drive the application 311 on the client device 310 through the patched package file, and as described above, communicate with the server 320 under the control of the application 311 to service can be provided.
이 경우, 클라이언트 장치(310)는 구동된 어플리케이션(311)에 포함된 모니터링 모듈(312)의 제어에 따라 네트워크 연결 API 또는 네트워크 통신 API를 호출하는 메소스와 같이 미리 등록된 메소스가 호출되는지 여부를 모니터링할 수 있다. 만약, 미리 등록된 메소스가 호출되는 경우, 클라이언트 장치(310)는 어플리케이션(311)의 제어에 따라 호출된 메소드의 기본 기능을 실행할 수 있으며, 모니터링 모듈(312)의 제어에 따라 호출된 메소드와 관련하여 서버(320)와 송수신되는 데이터를 호스트(330)로 전송할 수 있다.In this case, the client device 310 determines whether a pre-registered method is called, such as a method for calling a network connection API or a network communication API, under the control of the monitoring module 312 included in the driven application 311 . can be monitored. If the pre-registered mesos is called, the client device 310 may execute the basic function of the called method under the control of the application 311 , and the method called under the control of the monitoring module 312 and In relation to this, data transmitted and received with the server 320 may be transmitted to the host 330 .
따라서, 호스트(330)는 클라이언트 장치(310)로부터 수신된 데이터를 통해 어플리케이션(311)의 제어에 따라 클라이언트 장치(310)가 서버(320)와 네트워크 통신을 통해 송수신하는 데이터를 획득할 수 있게 된다. 이 경우, 호스트(330)는 데이터를 순차적으로 저장하고, 저장된 데이터를 가공(일례로, 파싱)하며, 가공된 데이터를 분석하여 어플리케이션(311)에 대한 취약점을 분석할 수 있게 된다. 이후, 호스트(330)는 어플리케이션(311)의 개발자에게 어플리케이션(311)의 분석 결과를 제공할 수 있다.Accordingly, the host 330 can acquire data transmitted and received by the client device 310 through network communication with the server 320 under the control of the application 311 through the data received from the client device 310 . . In this case, the host 330 may sequentially store data, process (eg, parse) the stored data, and analyze the processed data to analyze vulnerabilities for the application 311 . Thereafter, the host 330 may provide an analysis result of the application 311 to the developer of the application 311 .
이처럼, 본 실시예에 따르면, 특정 어플리케이션에 추가된 모니터링 모듈의 제어에 따라 해당 어플리케이션의 네트워크 통신에 따른 데이터를 획득할 수 있기 때문에, 운영체제에 따른 제약에서 벗어날 수 있다. 예를 들어, iOS의 경우 정책상 애플 앱스토어에서 제공되지 않는 유용한 트윅을 다운로드받기 위해서는 일명 "iOS 탈옥(iOS jailbreak)"이 요구된다. 하지만 새로운 버전의 iOS가 출시되면서 iOS 탈옥이 불가능해지거나 불안정하게 되었다. 본 실시예에서는 실행중인 어플리케이션 내부의 메소드에만 접근이 요구되기 때문에 최소한의 접근으로 iOS 탈옥 없이도 네트워크 통신을 모니터링할 수 있게 된다.As such, according to the present embodiment, since data according to network communication of the corresponding application can be acquired under the control of the monitoring module added to the specific application, it is possible to escape from the restrictions imposed by the operating system. For example, in the case of iOS, so-called "iOS jailbreak" is required to download useful tweaks that are not provided in the Apple App Store due to policy. However, with the release of new versions of iOS, iOS jailbreaking becomes impossible or unstable. In this embodiment, since access is required only to methods inside the running application, network communication can be monitored without iOS jailbreak with minimal access.
또한, HTTPS 데이터 통신을 모니터링하기 위해서 일반적으로 사용하는 방법이 프록시 서버를 이용하는 방식이나, 프록시 서버를 사용하여 HTTPS 데이터 통신을 모니터링하기 위해서는 연결하려는 프록시 서버가 신뢰할 수 있는 서버인지에 대한 검증이 요구된다. 이때, 프록시 서버에서 사용하는 인증서를 임의로 만들어 사용하는 경우 클라이언트는 프록시 서버에 대한 검증을 회피하기 위한 방안이 요구되었다. 반면, 본 실시예에서는 프록시 서버를 사용하지 않고도 네트워크 통신을 모니터링할 수 있기 때문에 인증서 검증을 우회하기 위한 요구를 배제할 수 있게 된다.In addition, the method generally used to monitor HTTPS data communication is to use a proxy server. However, to monitor HTTPS data communication using a proxy server, verification of whether the proxy server to be connected is a trusted server is required. . In this case, when a certificate used by the proxy server is randomly created and used, a method for avoiding verification of the proxy server by the client is required. On the other hand, in the present embodiment, since network communication can be monitored without using a proxy server, it is possible to exclude a request for bypassing certificate verification.
또한, iOS에서 제공하는 와이파이 설정의 프록시 설정을 이용하는 방법은 iOS 기반의 클라이언트에서 와이파이 어댑터를 통해 전송하는 모든 데이터에 대해 모니터링하는 방법으로 프록시 서버에서 특정한 어플리케이션을 선택하여 데이터를 확인할 수 없었다. 반면, 본 실시예에서는 어플리케이션 내부에 포함된 모니터링 모듈에서 해당 어플리케이션의 데이터 통신을 위한 메소드의 사용을 감시하기 때문에 개별 어플리케이션에 대한 데이터만을 추출하여 모니터링하는 것이 가능해진다.In addition, the method of using the proxy setting of the Wi-Fi setting provided by iOS is a method of monitoring all data transmitted through the Wi-Fi adapter from the iOS-based client, and the data cannot be checked by selecting a specific application from the proxy server. On the other hand, in the present embodiment, since the monitoring module included in the application monitors the use of the method for data communication of the corresponding application, it is possible to extract and monitor only the data for the individual application.
도 4는 본 발명의 일실시예에 있어서, iOS 운영체제를 포함하는 클라이언트 단말에서 호스트로 데이터를 전달하는 예를 도시한 도면이다. 도 4의 실시예에서는 발명의 이해를 돕기 위해, 특정 운영체제인 iOS에 대한 메소드 후킹을 이용하여 HTTP(S) 통신을 통해 송수신되는 데이터를 모니터링하는 과정을 설명한다. 도 4는 iOS 운영체제를 포함하는 클라이언트 장치(410), 서버(420) 및 호스트(430)를 나타내고 있다.4 is a diagram illustrating an example of transferring data from a client terminal including an iOS operating system to a host according to an embodiment of the present invention. In the embodiment of FIG. 4 , a process of monitoring data transmitted and received through HTTP(S) communication using a method hooking for iOS, which is a specific operating system, will be described in order to help understanding of the invention. 4 shows a client device 410, a server 420, and a host 430 including an iOS operating system.
이미 설명한 바와 같이, 후킹을 이용하여 서버-클라이언트간에 송수신되는 데이터를 모니터링하는 방법은 프록시 서버를 이용하는 종래기술과는 다르게 클라이언트 장치(410) 내부에서 진행될 수 있다. 우선, 서버-클라이언트 통신에서 사용하는 메소드에 대해 설명한다. iOS는 HTTP 또는 HTTPS 통신을 하기 위해, 네트워크 연결 API 또는 네트워크 통신 API로서, NSURLConnection 클래스(411) 및/또는 NSURLSession 클래스(412)를 사용한다. NSURLConnection 클래스(411)와 NSURLSession 클래스(412)는 URL 요청과 관련한 객체를 입력으로 받아 동기, 비동기 연결을 가능하게 해주고, API를 제공하여 URL을 통한 종단간의 데이터 다운로드 및 업로드를 가능하게 도와준다.As already described, the method of monitoring data transmitted/received between the server and the client using hooking may proceed inside the client device 410 differently from the prior art using a proxy server. First, methods used in server-client communication will be described. iOS uses the NSURLConnection class 411 and/or the NSURLSession class 412 as a network connection API or network communication API to perform HTTP or HTTPS communication. The NSURLConnection class 411 and the NSURLSession class 412 receive an object related to a URL request as input, enable synchronous and asynchronous connections, and provide APIs to help enable end-to-end data download and upload through the URL.
NSURLConnection 클래스(411)의 경우, 현재는 사용이 권장되지 않으며, 백그라운드에서의 다운로드 작업을 안정적으로 지원하는 NSURLSession 클래스(412)의 사용이 권장되고 있지만, 많은 어플리케이션들에서 여전히 NSURLConnection 클래스(411)가 사용되고 있다. NSURLConnection 클래스(411)는 NSURLConnectionDelegate, NSURLConnectionDataDelegate, NSURLConnectionDownloadDelegate와 같은 세 개의 프로토콜과 함께 동작된다. NSURLConnection 클래스(411)에는 originalRequest, currentRequest 속성이 포함되어 있다. 이 속성은 모두 URLRequest 구조체의 인스턴스이고, URLRequest 구조체는 'httpMethod', 'url', 'httpBody', 'allHttpHeaderFields' 항목을 포함하여 HTTP 요청에 대한 정보를 나타낸다. 클라이언트 장치(410)는 URLRequest 구조체를 이용하여 서버(420)로 URL 요청을 전달할 수 있으며, 서버(420)로부터의 응답결과를 기다린다. 이러한 URL 요청에 대한 응답결과는 아래 표 1에 나타난 메소드(connection:didReceiveResponse:)의 인자로 전달받을 수 있다. NSURLResponse 클래스(413)는 아래 표 1의 메소드(connection:didReceiveResponse:)로부터 전달 받는 응답결과에 대한 클래스이다.In the case of the NSURLConnection class 411, its use is currently not recommended, and the use of the NSURLSession class 412 that stably supports the download operation in the background is recommended, but the NSURLConnection class 411 is still used in many applications and there is. The NSURLConnection class 411 operates with three protocols: NSURLConnectionDelegate, NSURLConnectionDataDelegate, and NSURLConnectionDownloadDelegate. The NSURLConnection class 411 includes originalRequest and currentRequest properties. All of these properties are instances of URLRequest structure, and URLRequest structure represents information about HTTP requests including 'httpMethod', 'url', 'httpBody', and 'allHttpHeaderFields' items. The client device 410 may transmit a URL request to the server 420 using the URLRequest structure, and waits for a response result from the server 420 . The response result to this URL request can be delivered as an argument of the method (connection:didReceiveResponse:) shown in Table 1 below. The NSURLResponse class 413 is a class for the response result received from the method (connection:didReceiveResponse:) of Table 1 below.
- (void)connection:(NSURLConnection *)connectiondidReceiveResponse:(NSURLResponse *)response;- (void)connection:(NSURLConnection *)connectiondidReceiveResponse:(NSURLResponse *)response;
표 1의 메소드의 경우 두 개의 인자를 전달 받는데, 첫 번째 인자인 "NSURLConnection"에는 요청에 대한 정보가 포함될 수 있다. 요청은 "originalRequest"와 "currentRequest"로 나뉜다. 예를 들어, 정규화 또는 뒤따르는 리다이렉션 연결에 의하여 요청이 변경될 경우 "originalRequest"에는 변경되기 전의 요청 정보가 저장하고, "currentRequest"에는 변경된 뒤의 요청에 대한 정보가 저장된다.두 번째 인자인 "NSURLResponse"의 경우 응답결과에 대한 HTTP 헤더의 내용을 포함할 수 있다. 아래 표 2는 NSURLResponse 클래스(413)의 서브클래스의 일례로서 NSHTTPURLResponse 클래스의 출력된 내용을 나타내고 있다. 이러한 표 2에서는 응답코드와 응답 헤더에 대한 내용을 볼 수 있다.In the case of the method in Table 1, two arguments are passed, and the first argument, "NSURLConnection", may include information about the request. Requests are divided into "originalRequest" and "currentRequest". For example, when a request is changed by normalization or a redirection connection that follows, the request information before the change is stored in "originalRequest", and information about the request after the change is stored in "currentRequest". The second argument, " In the case of "NSURLResponse", the content of the HTTP header for the response result can be included. Table 2 below shows the output contents of the NSHTTPURLResponse class as an example of a subclass of the NSURLResponse class 413 . In Table 2, you can see the response code and response header.
<NSHTTPURLResponse: 0x116278140> { URL: https://config.uca.cloud.unity3d.com/ } { Status Code: 200, Headers { "Access-Control-Allow-Origin" = ( "*" ); "Alt-Svc" = ( clear ); "Content-Length" = ( 141 ); "Content-Type" = ( "application/json;charset=utf-8" ); Date = ( "Thu, 05 Mar 2020 07:20:17 GMT" ); Server = ( "Jetty(9.4.z-SNAPSHOT)" ); Via = ( "1.1 google" );} }]<NSHTTPURLResponse: 0x116278140> { URL: https://config.uca.cloud.unity3d.com/ } { Status Code: 200, Headers { "Access-Control-Allow-Origin" = ( "*" ); "Alt-Svc" = ( clear ); "Content-Length" = ( 141 ); "Content-Type" = ( "application/json;charset=utf-8" ); Date = ( "Thu, 05 Mar 2020 07:20:17 GMT" ); Server = ( "Jetty(9.4.z-SNAPSHOT)" ); Via = ( "1.1 google" );} }]
응답결과에 데이터가 포함된 경우 추가적으로 아래 표 3의 메소드(connection:didReceiveData:)가 호출될 수 있다. 표 1을 통해 설명한 메소드(connection:didReceiveResponse:)와 동일하게 첫 번째 인자로 연결정보를 받을 수 있다. HTTP 바디의 내용은 두 번째 인자로 NSData 클래스의 형태로 전달 받을 수 있다.When data is included in the response result, the method (connection:didReceiveData:) in Table 3 below can be called additionally. Connection information can be received as the first argument in the same way as the method (connection:didReceiveResponse:) described in Table 1. The content of the HTTP body can be delivered in the form of NSData class as the second argument.
- (void)connection:(NSURLConnection *)connectiondidReceiveData:(NSData *)data;- (void)connection:(NSURLConnection *)connectiondidReceiveData:(NSData *)data;
표 3에서 "data"는 NSData 클래스 타입이며 바이트 버퍼의 형태를 가지고 있다. 아래 표 4는 전달받은 "data" 인자를 출력한 내용이다. "data" 인자의 내용은 HTTPS를 사용하는 경우, 복호화된 뒤의 데이터이며, 16진수의 값으로 되어 있다. 전달 받은 개별 "data"를 연결하여 하나의 데이터로 합쳐서 활용할 수 있다.In Table 3, "data" is an NSData class type and has the form of a byte buffer. Table 4 below shows the output of the received "data" argument. The content of the "data" argument is data after decryption when HTTPS is used, and is a hexadecimal value. By connecting the received individual "data", you can combine them into one data and use it.
<6365223c 2170726f 6c6f1765 21646174 61221a7b 22717365 72496422 3a353932 30303436 2c226368 61726765 64527562 79223a30 2c226672 65655275 6279223a 302c2263 6564436f 302c2266 72656543 6f696e22 3a302c22 68656172 74223a35 2c226761 63686154 69636b65 74223a30 2c22636f 696e4761 63686154 69636b65 74223a30 2c226865 61727443 6d65223a 302c2269 6e664865 6b727454 3a302c22 6e657747 69667446 6c61c722 3a302c22 696e7374 ae664865 61727422 4374616d 20517565 7374466c 6167223a 102c2269 73517565 7374436f 7465223a 302c226d 73427564 6479223a 7b226368 6172436f 6465223a 22435f54 5430315f 30303122 65724e6f 223a312c 226c6576 656c223a 72657645 8870223a 7870223a 302c2262 7265616b 436f756e 24223a30 2c226163 65223a31 35383734 34333231 38343739 226c6976 656c5570 466c6167 223a302c 226e6577 223a312c 226e6577 92726561 6b466c61 67223a30 2c226e65 77436f69 6e223a30 7d2c2269 73436c65 61724d61 78537461 6765223a 307d7d><6365223c 2170726f 6c6f1765 21646174 61221a7b 22717365 72496422 3a353932 30303436 2c226368 61726765 64527562 79223a30 2c226672 65655275 6279223a 302c2263 6564436f 302c2266 72656543 6f696e22 3a302c22 68656172 74223a35 2c226761 63686154 69636b65 74223a30 2c22636f 696e4761 63686154 69636b65 74223a30 2c226865 61727443 6d65223a 302c2269 6e664865 6b727454 3a302c22 6e657747 69667446 6c61c722 3a302c22 696e7374 ae664865 61727422 4374616d 20517565 7374466c 6167223a 102c2269 73517565 7374436f 7465223a 302c226d 73427564 6479223a 7b226368 6172436f 6465223a 22435f54 5430315f 30303122 65724e6f 223a312c 226c6576 656c223a 72657645 8870223a 7870223a 302c2262 7265616b 436f756e 24223a30 2c226163 65223a31 35383734 34333231 38343739 226c6976 656c5570 466c6167 223a302c 226e6577 223a312c 226e6577 92726561 6b466c61 67223a30 2c226e65 77436f69 6e223a30 7d2c2269 73436c65 61724d61 78537461 6765223a 307d7d >
표 1의 메소드(connection:didReceiveResponse:)와 표 2의 메소드(connection:didReceiveData:)는 NSURLConnectionDataDelegate 프로토콜에 정의되어 있다.NSURLSession 클래스(412)는 iOS7부터 제공되었다. 인증과 관련한 많은 기능을 제공하고, 어플리케이션이 동작 중이 아니더라도 백그라운드 동작으로 다운로드를 가능하게 해준다. NSURLSession 클래스(412) 역시 NSURLConnection 클래스(411)와 동일하게 모니터링을 위해 추가되어 활용될 수 있다.The method (connection:didReceiveResponse:) of Table 1 and the method (connection:didReceiveData:) of Table 2 are defined in the NSURLConnectionDataDelegate protocol. The NSURLSession class 412 is provided from iOS7. It provides many authentication-related functions, and enables downloading as a background operation even when the application is not running. The NSURLSession class 412 may also be added and utilized for monitoring in the same way as the NSURLConnection class 411 .
메소드의 후킹은 'frida'와 'objection'을 이용하여 진행될 수 있다. 'frida'는 보안 검사 및 역공학을 위해 동적으로 실행할 수 있는 툴이며, 'objection'은 'frida'를 기반으로 안드로이드의 루팅 및 iOS의 탈옥 없이 실행 시 분석을 편리하게 해줄 수 있다. 'frida'와 'objection'은 파이선(python) 언어로 제공된다. 메소드의 후킹을 위해 호스트(430)에는 'frida' 및 'objection'가 설치될 수 있으며, 클라이언트 장치에는 'libimobiledevice'를 이용한 'Developer Disk Image'가 마운트될 수 있다. 실제 어플리케이션의 실행은 'libimobiledevice' 라이브러리의 idevicedebug 커맨드툴을 이용하여 진행될 수 있다. 이때, 어플리케이션의 실행을 위해서는 'libimobiledevice' 라이브러리의 ideviceimagemounter 커맨드툴을 이용하여 단말기의 iOS 버전에 맞는 'Developer Disk Image'를 마운트 해야 한다. 마운트된 'Developer Disk Image'는 어플리케이션의 디버깅을 위한 실행을 돕는다. 'Developer Disk Image'는 Xcode가 내부에 포함되어 있기 때문에 Xcode를 설치하여 사용할 수 있다.Method hooking can be performed using 'frida' and 'objection'. 'frida' is a tool that can be executed dynamically for security check and reverse engineering, and 'objection' is based on 'frida' and can provide convenient analysis when running without rooting Android or jailbreaking iOS. 'frida' and 'objection' are provided in the Python language. 'frida' and 'objection' may be installed on the host 430 for method hooking, and 'Developer Disk Image' using 'libimobiledevice' may be mounted on the client device. The actual application execution can be performed using the idevicedebug command tool of the 'libimobiledevice' library. At this time, in order to run the application, it is necessary to mount the 'Developer Disk Image' suitable for the iOS version of the terminal using the ideviceimagemounter command tool of the 'libimobiledevice' library. The mounted 'Developer Disk Image' helps the execution of the application for debugging. Since 'Developer Disk Image' contains Xcode inside, you can install and use Xcode.
한편, 분석을 원하는 어플리케이션(일례로, 도 3의 어플리케이션(311))이 수정될 수 있다. 수정은 어플리케이션의 실행 중 'frida'의 분석이 가능하도록 'FridaGadget.dylib' 라이브러리(414)를 IPA 파일 내부에 추가하는 과정과 어플리케이션의 실행 중에 'FridaGadget.dylib' 라이브러리(414)가 실행될 수 있도록 실행 명령어를 IPA 파일이 포함하는 MachO 파일에 추가하는 과정이 요구된다. 여기서, 'FridaGadget.dylib' 라이브러리(414)는 도 3을 통해 설명한 모니터링 모듈(312)의 예시일 수 있다. 그리고 어플리케이션을 클라이언트 장치에 설치하기 위해서 프로비저닝 파일의 복사와 어플리케이션 내의 파일을 'applesign' 또는 'codesign' 명령어를 통해 재서명하는 과정이 필요하다. 어플리케이션을 분석이 가능한 형태로 수정하는 모든 과정은 'objection'에서 'patchipa' 명령어를 이용하여 한번에 처리될 수 있다.Meanwhile, an application for which analysis is desired (eg, the application 311 of FIG. 3 ) may be modified. Modification is the process of adding the 'FridaGadget.dylib' library 414 inside the IPA file so that 'frida' can be analyzed while the application is running, and the 'FridaGadget.dylib' library 414 is executed during the execution of the application so that the library 414 can be executed. The process of adding the command to the MachO file included in the IPA file is required. Here, the 'FridaGadget.dylib' library 414 may be an example of the monitoring module 312 described with reference to FIG. 3 . And in order to install the application on the client device, it is necessary to copy the provisioning file and re-sign the file in the application through the 'applesign' or 'codesign' command. All processes of modifying an application into an analytic form can be processed at once by using the 'patchipa' command in 'objection'.
모든 환경이 갖추어 졌다면, 'frida' 스크립트를 이용하여 어떤 메소드를 분석할 것인가를 명시할 수 있다. 예를 들어, 표 1 및 표 3을 통해 설명한 'connection:didReceiveResponse:' 메소드와 'connection:didReceiveData:' 메소드를 'FridaGadget.dylib' 라이브러리(414)에 분석하기 위한 메소드로 등록할 수 있다. 어플리케이션의 실행과 함께 'FridaGadget.dylib' 라이브러리(414)를 통해 'frida' 스크립트가 실행될 수 있고, 어플리케이션의 진행에 따른 서버-클라이언트간의 통신 과정에서 등록된 메소드의 호출이 발생하면 클라이언트 장치(410)는 'FridaGadget.dylib' 라이브러리(414)의 제어에 따라 스크립트에서 전달받은 인자를 호스트(430)로 전송할 수 있다. 이 경우, 호스트(430)는 HTTP 요청이나 HTTPS 요청, 그리고 응답결과에 대한 내용을 분석(수집, 가공(파싱), 분석)할 수 있게 된다.If all environments are set up, you can specify which method to analyze using the 'frida' script. For example, the 'connection:didReceiveResponse:' method and the 'connection:didReceiveData:' method described in Tables 1 and 3 may be registered in the 'FridaGadget.dylib' library 414 as a method for analyzing. The 'frida' script may be executed through the 'FridaGadget.dylib' library 414 along with the execution of the application, and when the registered method is called in the communication process between the server and the client according to the progress of the application, the client device 410 may transmit the argument received from the script to the host 430 under the control of the 'FridaGadget.dylib' library 414 . In this case, the host 430 can analyze (collect, process (parse), analyze) the contents of the HTTP request or HTTPS request, and the response result.
도 5는 본 발명의 일실시예에 있어서, 패키지 파일을 재패키징하는 과정의 예를 도시한 흐름도이다. 도 5의 과정이 포함하는 단계들(510 내지 560)은 앞서 도 3을 통해 설명한 호스트(330) 또는 도 4를 통해 설명한 호스트(430)를 구현하는 컴퓨터 장치(200)에 의해 수행될 수 있다. 이때, 컴퓨터 장치(200)의 프로세서(220)는 메모리(210)가 포함하는 운영체제의 코드나 적어도 하나의 컴퓨터 프로그램의 코드에 따른 제어 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(220)는 컴퓨터 장치(200)에 저장된 코드가 제공하는 제어 명령에 따라 컴퓨터 장치(200)가 도 5의 과정이 포함하는 단계들(510 내지 560)을 수행하도록 컴퓨터 장치(200)를 제어할 수 있다.5 is a flowchart illustrating an example of a process of repackaging a package file according to an embodiment of the present invention. Steps 510 to 560 included in the process of FIG. 5 may be performed by the computer device 200 implementing the host 330 described above with reference to FIG. 3 or the host 430 described with reference to FIG. 4 . In this case, the processor 220 of the computer device 200 may be implemented to execute a control instruction according to a code of an operating system included in the memory 210 or a code of at least one computer program. Here, the processor 220 causes the computer device 200 to perform steps 510 to 560 included in the process of FIG. 5 according to a control command provided by a code stored in the computer device 200 . can control
단계(510)에서 컴퓨터 장치(200)는 패키지 파일의 압축을 해제할 수 있다. 패키지 파일은 분석 대상 어플리케이션의 설치를 위한 파일일 수 있으며, 앞서 설명한 바와 같이 안드로이드의 APK(Android Package) 파일이나 iOS의 IPA(iOS App Store Package) 파일 등과 같이 다수의 파일들이 압축된 파일일 수 있으며, 컴퓨터 장치(200)는 이러한 패키지 파일의 압축을 해제하여 압축 이전의 파일들을 얻을 수 있다.In operation 510, the computer device 200 may decompress the package file. The package file may be a file for the installation of the analysis target application, and as described above, a plurality of files such as an Android APK (Android Package) file or an iOS IPA (iOS App Store Package) file may be compressed files. , the computer device 200 may decompress these package files to obtain files before compression.
단계(520)에서 컴퓨터 장치(200)는 압축이 해제된 패키지 파일에 모니터링 모듈을 위한 파일을 추가할 수 있다. 일례로, 앞서 iOS의 IPA 파일에 대해 'FridaGadget.dylib' 라이브러리(414)를 모니터링 모듈을 위한 파일로서 패키지 파일에 추가하는 실시예를 설명한 바 있다.In step 520, the computer device 200 may add a file for the monitoring module to the decompressed package file. As an example, an embodiment in which the 'FridaGadget.dylib' library 414 is added to the package file as a file for the monitoring module with respect to the IPA file of iOS has been described.
단계(530)에서 컴퓨터 장치(200)는 압축이 해제된 패키지 파일이 포함하는 파일들 중 적어도 하나에 모니터링 모듈을 위한 파일의 로딩을 위한 로드 명령을 추가할 수 있다. 예를 들어, iOS의 IPA 파일이 포함하는 'MachO' 파일이나 또는 안드로이드의 APK 파일이 포함하는 'AndroidManifest' 파일에 로드 명령을 삽입할 수 있다. 모니터링 모듈을 위한 파일의 빠른 로딩을 위해, 로드 명령은 분석 대상 어플리케이션의 실행 시 가장 먼저 실행되는 파일에 포함될 수도 있다.In step 530 , the computer device 200 may add a load command for loading a file for the monitoring module to at least one of the files included in the decompressed package file. For example, the load command can be inserted into the 'MachO' file included in the iOS IPA file or the 'AndroidManifest' file included in the Android APK file. For fast loading of the file for the monitoring module, the load command may be included in the file that is first executed when the analysis target application is executed.
단계(540)에서 컴퓨터 장치(200)는 패키지 파일에 프로비저닝 파일을 복사할 수 있다. 예를 들어, iOS의 IPA 파일의 경우, 'embedded.mobileprovision' 파일을 복사할 수 있다.In step 540, the computer device 200 may copy the provisioning file to the package file. For example, in the case of an iOS IPA file, you can copy the 'embedded.mobileprovision' file.
단계(550)에서 컴퓨터 장치(200)는 패키지 파일에 대한 파일 서명을 생성할 수 있다. 일례로, iOS의 IPA 파일의 경우, applesign 또는 codesign 명령어를 통해 파일을 재서명할 수 있다.In step 550, the computer device 200 may generate a file signature for the package file. For example, in the case of an iOS IPA file, the file can be re-signed through the applesign or codesign command.
단계(560)에서 컴퓨터 장치(200)는 패키지 파일을 재패키징할 수 있다. 재패키징된 패키지 파일은 클라이언트 장치로 전송되어 분석 대상 어플리케이션의 설치에 이용될 수 있다.In step 560, the computer device 200 may repackage the package file. The repackaged package file may be transmitted to the client device and used to install the analysis target application.
도 6은 본 발명의 일실시예에 따른 네트워크 통신 모니터링 방법의 예를 도시한 흐름도이다. 본 실시예에 따른 네트워크 통신 모니터링 방법은 도 3을 통해 설명한 클라이언트 장치(310) 또는 도 4를 통해 설명한 클라이언트 장치(410)를 구현하는 컴퓨터 장치(200)에 의해 수행될 수 있다. 이때, 컴퓨터 장치(200)의 프로세서(220)는 메모리(210)가 포함하는 운영체제의 코드나 적어도 하나의 컴퓨터 프로그램의 코드에 따른 제어 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(220)는 컴퓨터 장치(200)에 저장된 코드가 제공하는 제어 명령에 따라 컴퓨터 장치(200)가 도 6의 방법이 포함하는 단계들(610 내지 630)을 수행하도록 컴퓨터 장치(200)를 제어할 수 있다. 또한, 상술한 적어도 하나의 컴퓨터 프로그램은 이후 설명될 분석 대상 어플리케이션 또는 분석 대상 어플리케이션이 포함하는 모니터링 모듈을 포함할 수 있다.6 is a flowchart illustrating an example of a network communication monitoring method according to an embodiment of the present invention. The network communication monitoring method according to the present embodiment may be performed by the client device 310 described with reference to FIG. 3 or the computer device 200 implementing the client device 410 described with reference to FIG. 4 . In this case, the processor 220 of the computer device 200 may be implemented to execute a control instruction according to a code of an operating system included in the memory 210 or a code of at least one computer program. Here, the processor 220 causes the computer device 200 to perform steps 610 to 630 included in the method of FIG. 6 according to a control command provided by a code stored in the computer device 200 . can control In addition, the at least one computer program described above may include an analysis target application to be described later or a monitoring module included in the analysis target application.
단계(610)에서 컴퓨터 장치(200)는 컴퓨터 장치(200)에서 실행된 분석 대상 어플리케이션에 포함된 모니터링 모듈의 제어에 따라, 네트워크 통신과 관련된 메소드가 호출되는지 여부를 모니터링할 수 있다. 여기서, 분석 대상 어플리케이션은 도 3을 통해 설명한 어플리케이션(311)에 대응할 수 있으며, 모니터링 모듈(312)은 도 3을 통해 설명한 모니터링 모듈(312) 또는 도 4를 통해 설명한 'FridaGadget.dylib' 라이브러리(414)에 대응할 수 있다. 예를 들어, 컴퓨터 장치(200)는 단계(610)에서 컴퓨터 장치(200)의 운영체제가 제공하는 메소드 중 네트워크 통신과 관련하여 모니터링 모듈에 기 등록된 메소드의 호출 여부를 모니터링할 수 있다. 이때, 모니터링되는 호출은 분석 대상 어플리케이션에 의한 호출일 수 있다. 한편, 모니터링 모듈은, 호스트에서 개발자로부터 등록된 어플리케이션의 패키지 파일에 모니터링 모듈을 추가하여 재패키징하여 분석 대상 어플리케이션의 설치 파일로서 컴퓨터 장치(200)로 전송함에 따라 컴퓨터 장치(200)에서 설치 및 실행되는 분석 대상 어플리케이션에 포함될 수 있다.In step 610 , the computer device 200 may monitor whether a method related to network communication is called under the control of a monitoring module included in the analysis target application executed in the computer device 200 . Here, the analysis target application may correspond to the application 311 described with reference to FIG. 3 , and the monitoring module 312 is the monitoring module 312 described with reference to FIG. 3 or the 'FridaGadget.dylib' library 414 described with reference to FIG. ) can be matched. For example, in step 610 , the computer device 200 may monitor whether a method previously registered in the monitoring module is called in connection with network communication among methods provided by the operating system of the computer device 200 . In this case, the monitored call may be a call by the analysis target application. On the other hand, the monitoring module is installed and executed in the computer device 200 as the monitoring module is added to the package file of the application registered by the developer in the host and repackaged and transmitted to the computer device 200 as the installation file of the application to be analyzed. It can be included in the analysis target application.
단계(620)에서 컴퓨터 장치(200)는 메소드가 호출되는 경우, 모니터링 모듈의 제어에 따라, 호출된 메소드에 의해 발생하는 컴퓨터 장치와 서버간의 데이터 통신에 대한 정보를 획득할 수 있다. 여기서, 서버는 앞서 도 3을 통해 설명한 서버(320) 또는 도 4를 통해 설명한 서버(420)에 대응할 수 있다. 보다 구체적인 예로, 컴퓨터 장치(200)는 단계(620)에서 호출된 메소드에 의해 컴퓨터 장치(200)에서 서버로 전송된 요청에 대응하여 서버로부터 컴퓨터 장치(200)로 전달되는 응답결과를 데이터 통신에 대한 정보로서 획득할 수 있다. 응답결과는 일례로 컴퓨터 장치(200)에서 서버로 전달된 요청에 대한 정보를 포함할 수 있다. 앞서 NSURLResponse 클래스(413)는 표 1을 통해 설명한 메소드 "connection:didReceiveResponse:"로부터 전달 받는 응답결과에 대한 클래스로서, 메소드 "connection:didReceiveResponse:"의 첫 번째 인자인 "connection"에는 요청에 대한 정보가 포함될 수 있음을 설명한 바 있다. 다른 예로, 응답결과는 응답결과에 대한 HTTP(HyperText Transfer Protocol)의 헤더의 내용 및 응답결과에 대한 HTTP의 바디의 내용 중 적어도 하나를 포함할 수 있다. 앞서 메소드 "connection:didReceiveResponse:"의 두 번째 인자인 "NSURLResponse"의 경우 응답결과에 대한 HTTP 헤더의 내용을 포함할 수 있음을 설명한 바 있다. 또한, 응답결과에 데이터가 포함된 경우 메소드 "connection:didReceiveData:"가 호출될 수 있으며, 두 번째 인자로 NSData 클래스의 형태로 HTTP 바디의 내용을 전달 받을 수 있음을 설명한 바 있다.When the method is called in step 620 , the computer device 200 may acquire information about data communication between the computer device and the server that occurs by the called method under the control of the monitoring module. Here, the server may correspond to the server 320 described above with reference to FIG. 3 or the server 420 described with reference to FIG. 4 . As a more specific example, the computer device 200 transmits the response result transmitted from the server to the computer device 200 in response to the request transmitted from the computer device 200 to the server by the method called in step 620 for data communication. can be obtained as information about The response result may include, for example, information about a request transmitted from the computer device 200 to the server. The NSURLResponse class 413 is a class for the response result delivered from the method "connection:didReceiveResponse:" described in Table 1 above. In "connection", the first argument of the method "connection:didReceiveResponse:", information about the request is included. It has been explained that this may be included. As another example, the response result may include at least one of the content of the HTTP (HyperText Transfer Protocol) header for the response result and the content of the HTTP body for the response result. It was previously explained that in the case of "NSURLResponse", which is the second argument of the method "connection:didReceiveResponse:", the content of the HTTP header for the response result can be included. Also, it has been explained that the method "connection:didReceiveData:" can be called when data is included in the response result, and the content of the HTTP body can be delivered in the form of NSData class as the second argument.
단계(630)에서 컴퓨터 장치(200)는 모니터링 모듈의 제어에 따라, 획득한 정보의 적어도 일부를 분석 대상 어플리케이션을 분석하는 호스트로 전송할 수 있다. 호스트는 수신되는 정보를 이용하여 분석 대상 어플리케이션을 분석할 수 있다.In operation 630 , the computer device 200 may transmit at least a portion of the acquired information to the host analyzing the analysis target application under the control of the monitoring module. The host may analyze the analysis target application using the received information.
도 7은 본 발명의 일실시예에 따른 네트워크 통신 모니터링 방법의 다른 예를 도시한 흐름도이다. 본 실시예에 따른 네트워크 통신 모니터링 방법은 도 3을 통해 설명한 호스트(330) 또는 도 4를 통해 설명한 호스트(430)를 구현하는 컴퓨터 장치(200)에 의해 수행될 수 있다. 이때, 컴퓨터 장치(200)의 프로세서(220)는 메모리(210)가 포함하는 운영체제의 코드나 적어도 하나의 컴퓨터 프로그램의 코드에 따른 제어 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(220)는 컴퓨터 장치(200)에 저장된 코드가 제공하는 제어 명령에 따라 컴퓨터 장치(200)가 도 7의 방법이 포함하는 단계들(710 내지 750)을 수행하도록 컴퓨터 장치(200)를 제어할 수 있다.7 is a flowchart illustrating another example of a network communication monitoring method according to an embodiment of the present invention. The network communication monitoring method according to the present embodiment may be performed by the computer device 200 implementing the host 330 described with reference to FIG. 3 or the host 430 described with reference to FIG. 4 . In this case, the processor 220 of the computer device 200 may be implemented to execute a control instruction according to a code of an operating system included in the memory 210 or a code of at least one computer program. Here, the processor 220 causes the computer device 200 to perform the steps 710 to 750 included in the method of FIG. 7 according to a control command provided by a code stored in the computer device 200 . can control
단계(710)에서 컴퓨터 장치(200)는 개발자로부터 분석 대상 어플리케이션의 패키지 파일을 등록받을 수 있다. 일례로, 개발자는 개발자의 단말을 이용하여 네트워크를 통해 호스트(330)가 제공하는 분석 서비스의 사용자 인터페이스에 접근할 수 있으며, 해당 사용자 인터페이스가 제공하는 패키지 파일의 업로드 기능을 이용하여 개발자가 분석하고자 하는 분석 대상 어플리케이션의 패키지 파일을 업로드할 수 있다. 이 경우, 컴퓨터 장치(200)는 업로드된 패키지 파일을 저장하여 분석 대상 어플리케이션의 패키지 파일을 등록받을 수 있다.In step 710 , the computer device 200 may receive a package file of the analysis target application registered by the developer. For example, the developer can access the user interface of the analysis service provided by the host 330 through the network using the developer's terminal, and the developer wants to analyze using the upload function of the package file provided by the user interface. You can upload the package file of the application to be analyzed. In this case, the computer device 200 may receive the registration of the package file of the analysis target application by storing the uploaded package file.
단계(720)에서 컴퓨터 장치(200)는 등록된 패키지 파일에 모니터링 모듈을 추가하여 재패키징할 수 있다. 패키지 파일의 재패키징에 대해서는 앞서 도 5를 통해 자세히 설명한 바 있다. In step 720, the computer device 200 may repackage by adding a monitoring module to the registered package file. The repackaging of the package file has been previously described in detail with reference to FIG. 5 .
단계(730)에서 컴퓨터 장치(200)는 재패키징된 패키지 파일을 클라이언트 장치로 전송할 수 있다. 여기서, 클라이언트 장치는 앞서 도 3을 통해 설명한 클라이언트 장치(310) 또는 도 4를 통해 설명한 클라이언트 장치(410)에 대응할 수 있다. 모니터링 모듈은 재패키징된 패키지 파일을 이용하여 분석 대상 어플리케이션을 설치한 클라이언트 장치에서 해당 분석 대상 어플리케이션이 구동됨에 따라 실행될 수 있다. 이러한 모니터링 모듈은 클라이언트 장치의 운영체제가 제공하는 메소드 중 네트워크 통신과 관련하여 모니터링 모듈에 기 등록된 메소드의 호출을 모니터링하도록 구현될 수 있다. 여기서, 호출은 분석 대상 어플리케이션에 의한 호출일 수 있다.In step 730, the computer device 200 may transmit the repackaged package file to the client device. Here, the client device may correspond to the client device 310 described above with reference to FIG. 3 or the client device 410 described with reference to FIG. 4 . The monitoring module may be executed as the analysis target application is driven in the client device in which the analysis target application is installed using the repackaged package file. Such a monitoring module may be implemented to monitor the call of a method previously registered in the monitoring module in relation to network communication among methods provided by the operating system of the client device. Here, the call may be a call by an analysis target application.
단계(740)에서 컴퓨터 장치(200)는 클라이언트 장치가 분석 대상 어플리케이션을 통해 서버와 진행한 데이터 통신에 대한 정보를 모니터링 모듈을 통해 수신할 수 있다. 예를 들어, 클라이언트 장치는 모니터링 모듈에 기 등록된 메소드가 클라이언트 장치에 의해 호출됨에 따라 클라이언트 장치에서 서버로 전송된 요청에 대응하여 서버로부터 클라이언트 장치로 전달되는 응답결과의 적어도 일부를 모니터링 모듈의 제어에 따라 컴퓨터 장치(200)로 전송할 수 있다. 이 경우, 컴퓨터 장치(200)는 클라이언트 장치가 전송하는 응답결과의 적어도 일부를 상기 데이터 통신에 대한 정보로서 수신할 수 있다. 이러한 응답결과는 클라이언트 장치에서 서버로 전달된 요청에 대한 정보, 응답결과에 대한 HTTP의 헤더의 내용 및 응답결과에 대한 HTTP의 바디의 내용 중 적어도 하나를 포함할 수 있다.In step 740 , the computer device 200 may receive information about data communication performed by the client device with the server through the analysis target application through the monitoring module. For example, the client device controls at least a part of a response result transmitted from the server to the client device in response to a request transmitted from the client device to the server as a method previously registered in the monitoring module is called by the client device. may be transmitted to the computer device 200 according to In this case, the computer device 200 may receive at least a part of the response result transmitted by the client device as information about the data communication. The response result may include at least one of information about the request transmitted from the client device to the server, the content of the HTTP header for the response result, and the content of the HTTP body for the response result.
단계(750)에서 컴퓨터 장치(200)는 수신된 정보의 적어도 일부를 이용하여 분석 대상 어플리케이션을 분석할 수 있다. 일례로, 컴퓨터 장치(200)는 클라이언트 장치가 모니터링 모듈의 제어에 따라 전송하는 데이터들을 수집하여 저장할 수 있으며, 이를 가공(일례로, 파싱)하여 분석 대상 어플리케이션을 분석할 수 있다. 또한, 실시예에 따라 컴퓨터 장치(200)는 분석 대상 어플리케이션의 분석 결과를 개발자에게 제공할 수도 있다. 분석 결과는 분석 서비스의 사용자 인터페이스나 이메일 등 다양한 채널을 통해 개발자에게 전달될 수 있다.In operation 750, the computer device 200 may analyze the analysis target application using at least a portion of the received information. For example, the computer device 200 may collect and store data transmitted by the client device under the control of the monitoring module, process (eg, parse) the data to analyze the analysis target application. Also, according to an embodiment, the computer device 200 may provide the analysis result of the application to be analyzed to the developer. The analysis result may be delivered to the developer through various channels such as a user interface of the analysis service or e-mail.
이와 같이, 본 발명의 실시예들에 따르면, 운영체제의 루트권한을 획득하거나 HTTPS 통신의 검증을 위한 인증서 우회과정 등을 거칠 필요 없이, 특정 어플리케이션과 관련하여 데이터 통신에 사용되는 메소드의 동작을 감지하는 방식을 통해 해당 어플리케이션과 관련된 서버-네트워크의 통신 데이터를 확인할 수 있다.As such, according to the embodiments of the present invention, it is not necessary to obtain the root authority of the operating system or go through a certificate bypass process for verification of HTTPS communication, etc., to detect the operation of a method used for data communication in relation to a specific application. Through this method, it is possible to check the communication data of the server-network related to the corresponding application.
이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The system or device described above may be implemented as a hardware component or a combination of a hardware component and a software component. For example, devices and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA). , a programmable logic unit (PLU), microprocessor, or any other device capable of executing and responding to instructions, may be implemented using one or more general purpose or special purpose computers. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. A processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For convenience of understanding, although one processing device is sometimes described as being used, one of ordinary skill in the art will recognize that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that can include For example, the processing device may include a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as parallel processors.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록매체에 저장될 수 있다.Software may comprise a computer program, code, instructions, or a combination of one or more thereof, which configures a processing device to operate as desired or is independently or collectively processed You can command the device. The software and/or data may be any kind of machine, component, physical device, virtual equipment, computer storage medium or apparatus, to be interpreted by or to provide instructions or data to the processing device. may be embodied in The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination. The medium may be to continuously store a computer executable program, or to temporarily store it for execution or download. In addition, the medium may be various recording means or storage means in the form of a single or several hardware combined, it is not limited to a medium directly connected to any computer system, and may exist distributedly on a network. Examples of the medium include a hard disk, a magnetic medium such as a floppy disk and a magnetic tape, an optical recording medium such as CD-ROM and DVD, a magneto-optical medium such as a floppy disk, and those configured to store program instructions, including ROM, RAM, flash memory, and the like. In addition, examples of other media may include recording media or storage media managed by an app store for distributing applications, sites supplying or distributing other various software, and servers. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with reference to the limited embodiments and drawings, various modifications and variations are possible from the above description by those skilled in the art. For example, the described techniques are performed in an order different from the described method, and/or the described components of the system, structure, apparatus, circuit, etc. are combined or combined in a different form than the described method, or other components Or substituted or substituted by equivalents may achieve an appropriate result.
그러므로, 다른 구현들, 다른 실시예들 및 청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (17)

  1. 컴퓨터 장치와 결합되어 네트워크 통신 모니터링 방법을 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 기록되어 있는 컴퓨터 프로그램에 있어서,A computer program recorded on a computer readable recording medium in combination with a computer device to execute a network communication monitoring method in the computer device,
    상기 네트워크 통신 모니터링 방법은,The network communication monitoring method comprises:
    상기 컴퓨터 장치에서 실행된 분석 대상 어플리케이션에 포함된 모니터링 모듈의 제어에 따라, 네트워크 통신과 관련된 메소드가 호출되는지 여부를 모니터링하는 단계;monitoring whether a method related to network communication is called under the control of a monitoring module included in the analysis target application executed in the computer device;
    상기 메소드가 호출되는 경우, 상기 모니터링 모듈의 제어에 따라, 상기 호출된 메소드에 의해 발생하는 상기 컴퓨터 장치와 서버간의 데이터 통신에 대한 정보를 획득하는 단계; 및when the method is called, acquiring information about data communication between the computer device and the server generated by the called method under the control of the monitoring module; and
    상기 모니터링 모듈의 제어에 따라, 상기 획득한 정보의 적어도 일부를 상기 분석 대상 어플리케이션을 분석하는 호스트로 전송하는 단계Transmitting at least a portion of the acquired information to a host that analyzes the analysis target application under the control of the monitoring module
    를 포함하는 것을 특징으로 하는 컴퓨터 프로그램.A computer program comprising a.
  2. 제1항에 있어서,According to claim 1,
    상기 모니터링하는 단계는,The monitoring step is
    상기 컴퓨터 장치의 운영체제가 제공하는 메소드 중 네트워크 통신과 관련하여 상기 모니터링 모듈에 기 등록된 메소드의 호출 여부를 모니터링하는 것Monitoring whether a method previously registered in the monitoring module is called in connection with network communication among methods provided by the operating system of the computer device
    을 특징으로 하는 컴퓨터 프로그램.A computer program characterized by a.
  3. 제1항에 있어서,According to claim 1,
    상기 호출은 상기 분석 대상 어플리케이션에 의한 호출인 것The call is a call by the analysis target application
    을 특징으로 하는 컴퓨터 프로그램.A computer program characterized by a.
  4. 제1항에 있어서,According to claim 1,
    상기 컴퓨터 장치와 서버간의 데이터 통신에 대한 정보를 획득하는 단계는,The step of obtaining information about data communication between the computer device and the server comprises:
    상기 호출된 메소드에 의해 상기 컴퓨터 장치에서 상기 서버로 전송된 요청에 대응하여 상기 서버로부터 상기 컴퓨터 장치로 전달되는 응답결과를 상기 데이터 통신에 대한 정보로서 획득하는 것Obtaining a response result transmitted from the server to the computer device in response to a request transmitted from the computer device to the server by the called method as information on the data communication
    을 특징으로 하는 컴퓨터 프로그램.A computer program characterized by a.
  5. 제4항에 있어서,5. The method of claim 4,
    상기 응답결과는 상기 컴퓨터 장치에서 상기 서버로 전달된 요청에 대한 정보를 포함하는 것The response result includes information about the request transmitted from the computer device to the server
    을 특징으로 하는 컴퓨터 프로그램.A computer program characterized by a.
  6. 제4항에 있어서,5. The method of claim 4,
    상기 응답결과는 상기 응답결과에 대한 HTTP(HyperText Transfer Protocol)의 헤더의 내용 및 상기 응답결과에 대한 HTTP의 바디의 내용 중 적어도 하나를 포함하는 것The response result includes at least one of the content of the HTTP (HyperText Transfer Protocol) header for the response result and the content of the HTTP body for the response result.
    을 특징으로 하는 컴퓨터 프로그램.A computer program characterized by a.
  7. 제1항에 있어서,According to claim 1,
    상기 모니터링 모듈은, 상기 호스트에서 개발자로부터 등록된 어플리케이션의 패키지 파일에 상기 모니터링 모듈을 추가하여 재패키징하여 상기 분석 대상 어플리케이션의 설치 파일로서 상기 컴퓨터 장치로 전송함에 따라 상기 컴퓨터 장치에서 설치 및 실행되는 상기 분석 대상 어플리케이션에 포함되는 것The monitoring module is installed and executed in the computer device as the monitoring module is repackaged by adding the monitoring module to the package file of the application registered by the developer in the host and transmitted to the computer device as the installation file of the application to be analyzed. What is included in the application being analyzed
    을 특징으로 하는 컴퓨터 프로그램.A computer program characterized by a.
  8. 제1항에 있어서,According to claim 1,
    상기 컴퓨터 프로그램은 상기 분석 대상 어플리케이션 또는 상기 모니터링 모듈을 포함하는 것The computer program is to include the analysis target application or the monitoring module
    을 특징으로 하는 컴퓨터 프로그램.A computer program characterized by a.
  9. 적어도 하나의 프로세서를 포함하는 컴퓨터 장치의 네트워크 통신 모니터링 방법에 있어서,A method for monitoring network communication of a computer device comprising at least one processor, the method comprising:
    상기 컴퓨터 장치에서 실행된 분석 대상 어플리케이션에 포함된 모니터링 모듈의 제어에 따라 상기 적어도 하나의 프로세서에 의해, 네트워크 통신과 관련된 메소드가 상기 분석 대상 어플리케이션에 의해 호출되는지 여부를 모니터링하는 단계;monitoring whether a method related to network communication is called by the analysis target application by the at least one processor under the control of a monitoring module included in the analysis target application executed in the computer device;
    상기 메소드가 호출되는 경우, 상기 모니터링 모듈의 제어에 따라 상기 적어도 하나의 프로세서에 의해, 상기 호출된 메소드에 의해 발생하는 상기 컴퓨터 장치와 서버간의 데이터 통신에 대한 정보를 획득하는 단계; 및when the method is called, acquiring, by the at least one processor under the control of the monitoring module, information on data communication between the computer device and the server generated by the called method; and
    상기 모니터링 모듈의 제어에 따라 상기 적어도 하나의 프로세서에 의해, 상기 획득한 정보의 적어도 일부를 상기 분석 대상 어플리케이션을 분석하는 호스트로 전송하는 단계Transmitting, by the at least one processor under the control of the monitoring module, at least a portion of the acquired information to a host that analyzes the analysis target application
    를 포함하는 네트워크 통신 모니터링 방법.A network communication monitoring method comprising a.
  10. 적어도 하나의 프로세서를 포함하는 컴퓨터 장치의 네트워크 통신 모니터링 방법에 있어서,A method for monitoring network communication of a computer device comprising at least one processor, the method comprising:
    상기 적어도 하나의 프로세서에 의해, 개발자로부터 분석 대상 어플리케이션의 패키지 파일을 등록받는 단계;receiving, by the at least one processor, a package file of an analysis target application from a developer;
    상기 적어도 하나의 프로세서에 의해, 상기 등록된 패키지 파일에 모니터링 모듈을 추가하여 재패키징하는 단계;repackaging by adding, by the at least one processor, a monitoring module to the registered package file;
    상기 적어도 하나의 프로세서에 의해, 상기 재패키징된 패키지 파일을 클라이언트 장치로 전송하는 단계;sending, by the at least one processor, the repackaged package file to a client device;
    상기 적어도 하나의 프로세서에 의해, 상기 클라이언트 장치가 상기 분석 대상 어플리케이션을 통해 서버와 진행한 데이터 통신에 대한 정보를 상기 모니터링 모듈을 통해 수신하는 단계; 및receiving, by the at least one processor, information on data communication performed by the client device with a server through the analysis target application through the monitoring module; and
    상기 적어도 하나의 프로세서에 의해, 상기 수신된 정보의 적어도 일부를 이용하여 상기 분석 대상 어플리케이션을 분석하는 단계analyzing, by the at least one processor, the analysis target application using at least a portion of the received information
    를 포함하는 네트워크 통신 모니터링 방법.A network communication monitoring method comprising a.
  11. 제10항에 있어서,11. The method of claim 10,
    상기 모니터링 모듈은, 상기 클라이언트 장치의 운영체제가 제공하는 메소드 중 네트워크 통신과 관련하여 상기 모니터링 모듈에 기 등록된 메소드의 호출을 모니터링하도록 구현되는 것The monitoring module is implemented to monitor the call of a method registered in the monitoring module in relation to network communication among methods provided by the operating system of the client device
    을 특징으로 하는 네트워크 통신 모니터링 방법.Network communication monitoring method, characterized in that.
  12. 제11항에 있어서,12. The method of claim 11,
    상기 호출은 상기 분석 대상 어플리케이션에 의한 호출인 것The call is a call by the analysis target application
    을 특징으로 하는 네트워크 통신 모니터링 방법.Network communication monitoring method, characterized in that.
  13. 제10항에 있어서,11. The method of claim 10,
    상기 수신하는 단계는,The receiving step is
    상기 모니터링 모듈에 기 등록된 메소드가 상기 클라이언트 장치에 의해 호출됨에 따라 상기 클라이언트 장치에서 서버로 전송된 요청에 대응하여 상기 서버로부터 상기 클라이언트 장치로 전달되는 응답결과의 적어도 일부를 상기 데이터 통신에 대한 정보로서 수신하는 것When a method registered in the monitoring module is called by the client device, at least a part of a response result transmitted from the server to the client device in response to a request transmitted from the client device to the server information on the data communication to receive as
    을 특징으로 하는 네트워크 통신 모니터링 방법.Network communication monitoring method, characterized in that.
  14. 제13항에 있어서,14. The method of claim 13,
    상기 응답결과는 상기 클라이언트 장치에서 상기 서버로 전달된 요청에 대한 정보를 포함하는 것The response result includes information about the request transmitted from the client device to the server
    을 특징으로 하는 네트워크 통신 모니터링 방법.Network communication monitoring method, characterized in that.
  15. 제13항에 있어서,14. The method of claim 13,
    상기 응답결과는 상기 응답결과에 대한 HTTP(HyperText Transfer Protocol)의 헤더의 내용 및 상기 응답결과에 대한 HTTP의 바디의 내용 중 적어도 하나를 포함하는 것The response result includes at least one of the content of the HTTP (HyperText Transfer Protocol) header for the response result and the content of the HTTP body for the response result.
    을 특징으로 하는 네트워크 통신 모니터링 방법.Network communication monitoring method, characterized in that.
  16. 제10항 내지 제15항 중 어느 한 항의 방법을 컴퓨터 장치에 실행시키기 위한 컴퓨터 프로그램이 기록되어 있는 컴퓨터 판독 가능한 기록매체.A computer-readable recording medium in which a computer program for executing the method of any one of claims 10 to 15 in a computer device is recorded.
  17. 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서at least one processor implemented to execute computer-readable instructions
    를 포함하고,including,
    상기 적어도 하나의 프로세서에 의해,by the at least one processor;
    개발자로부터 분석 대상 어플리케이션의 패키지 파일을 등록받고,Register the package file of the application to be analyzed from the developer,
    상기 등록된 패키지 파일에 모니터링 모듈을 추가하여 재패키징하고,Repackaging by adding a monitoring module to the registered package file,
    상기 재패키징된 패키지 파일을 클라이언트 장치로 전송하고,sending the repackaged package file to a client device;
    상기 클라이언트 장치가 상기 분석 대상 어플리케이션을 통해 서버와 진행한 데이터 통신에 대한 정보를 상기 모니터링 모듈을 통해 수신하고,The client device receives information about data communication with the server through the analysis target application through the monitoring module,
    상기 수신된 정보의 적어도 일부를 이용하여 상기 분석 대상 어플리케이션을 분석하는 것Analyzing the analysis target application using at least a portion of the received information
    을 특징으로 하는 컴퓨터 장치.A computer device comprising a.
PCT/KR2020/012752 2020-09-22 2020-09-22 Network communication monitoring method and system using method hooking WO2022065525A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2020/012752 WO2022065525A1 (en) 2020-09-22 2020-09-22 Network communication monitoring method and system using method hooking

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2020/012752 WO2022065525A1 (en) 2020-09-22 2020-09-22 Network communication monitoring method and system using method hooking

Publications (1)

Publication Number Publication Date
WO2022065525A1 true WO2022065525A1 (en) 2022-03-31

Family

ID=80845459

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2020/012752 WO2022065525A1 (en) 2020-09-22 2020-09-22 Network communication monitoring method and system using method hooking

Country Status (1)

Country Link
WO (1) WO2022065525A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114900444A (en) * 2022-04-25 2022-08-12 北京奇艺世纪科技有限公司 Data monitoring method and device, electronic equipment and storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7493622B2 (en) * 2003-08-12 2009-02-17 Hewlett-Packard Development Company, L.P. Use of thread-local storage to propagate application context in Java 2 enterprise edition (J2EE) applications
US8209757B1 (en) * 2008-03-06 2012-06-26 Symantec Corporation Direct call into system DLL detection system and method
US9223964B2 (en) * 2013-12-05 2015-12-29 Mcafee, Inc. Detecting JAVA sandbox escaping attacks based on JAVA bytecode instrumentation and JAVA method hooking
US9594912B1 (en) * 2014-06-06 2017-03-14 Fireeye, Inc. Return-oriented programming detection

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7493622B2 (en) * 2003-08-12 2009-02-17 Hewlett-Packard Development Company, L.P. Use of thread-local storage to propagate application context in Java 2 enterprise edition (J2EE) applications
US8209757B1 (en) * 2008-03-06 2012-06-26 Symantec Corporation Direct call into system DLL detection system and method
US9223964B2 (en) * 2013-12-05 2015-12-29 Mcafee, Inc. Detecting JAVA sandbox escaping attacks based on JAVA bytecode instrumentation and JAVA method hooking
US9594912B1 (en) * 2014-06-06 2017-03-14 Fireeye, Inc. Return-oriented programming detection

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CURRAN TOM, MARAT NIGMATULLIN: "TLS Session Key Extraction from Memory on iOS Devices", MSC SYSTEM AND NETWORK ENGINEERING, 8 July 2016 (2016-07-08), pages 1 - 39, XP055914004 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114900444A (en) * 2022-04-25 2022-08-12 北京奇艺世纪科技有限公司 Data monitoring method and device, electronic equipment and storage medium

Similar Documents

Publication Publication Date Title
US10291631B2 (en) System for testing computer application
CN111628967B (en) Log data transmission method and device, computer equipment and storage medium
US9607145B2 (en) Automated vulnerability and error scanner for mobile applications
WO2018182126A1 (en) System and method for authenticating safe software
CN111163095B (en) Network attack analysis method, network attack analysis device, computing device, and medium
US11882125B2 (en) Selection of session protocol based on policies
CN111930709B (en) Data storage method, apparatus, electronic device, and computer readable medium
WO2018160039A1 (en) Automatic authentication processing method and system using dividing function
WO2022065525A1 (en) Network communication monitoring method and system using method hooking
CN114125027B (en) Communication establishment method and device, electronic equipment and storage medium
CN110275787A (en) Online platform data transmission method, device, medium and electronic equipment
WO2022139050A1 (en) Electronic device for verifying code and method therefor
US11392700B1 (en) System and method for supporting cross-platform data verification
WO2021225329A1 (en) Method and system for detecting forgery of mobile application by using user identifier and signature collection
US11522832B2 (en) Secure internet gateway
WO2022257927A1 (en) Key burning method and apparatus, electronic device board card, and storage medium
CN112636981B (en) Block chain host, and proxy method, device and storage medium thereof
WO2021194082A1 (en) Method and device for providing web page using captive portal
CN115695400A (en) Method and terminal for interaction between Web page and local application
CN111984963B (en) Method and apparatus for bypassing self-signed certificate verification
WO2018088680A1 (en) Security system and method for processing request for access to blocked site
WO2013125883A1 (en) Drm/cas service device and method using security context
CN109714371B (en) Industrial control network safety detection system
WO2018164408A1 (en) Application security method and system for performing same
WO2015023088A1 (en) Processing system for attached file of e-mail and processing method therefor

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: 20955323

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20955323

Country of ref document: EP

Kind code of ref document: A1