WO2016190485A1 - 데이터 무단 엑세스 차단 방법 및 그 기능이 구비된 컴퓨팅 장치 - Google Patents

데이터 무단 엑세스 차단 방법 및 그 기능이 구비된 컴퓨팅 장치 Download PDF

Info

Publication number
WO2016190485A1
WO2016190485A1 PCT/KR2015/007913 KR2015007913W WO2016190485A1 WO 2016190485 A1 WO2016190485 A1 WO 2016190485A1 KR 2015007913 W KR2015007913 W KR 2015007913W WO 2016190485 A1 WO2016190485 A1 WO 2016190485A1
Authority
WO
WIPO (PCT)
Prior art keywords
access
user
target object
user manipulation
instance
Prior art date
Application number
PCT/KR2015/007913
Other languages
English (en)
French (fr)
Inventor
황성진
정영준
백남민
Original Assignee
삼성에스디에스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성에스디에스 주식회사 filed Critical 삼성에스디에스 주식회사
Publication of WO2016190485A1 publication Critical patent/WO2016190485A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Definitions

  • the present invention relates to a data access blocking method and a computing device equipped with the function. More particularly, the present invention relates to a method for blocking data access and network transmission to the data and a computing device equipped with the function when it is determined that the user's operation is not accompanied by data access.
  • Malicious code that collects stored on the computing device is widespread regardless of the user's intention of the computing device, such as spyware.
  • various methods are attempted. For example, if a process that attempts data input / output and a process that is a user input target are different from each other, the data access may be blocked regardless of the user's intention, thereby preventing access to the data and network transmission of the data.
  • the above method has a problem in that a process of providing a graphical user interface (GUI) for a user input and a process of executing internal logic are different from each other, thereby preventing legitimate data access according to the user input.
  • GUI graphical user interface
  • no data access blocking method of malicious code for accurately determining whether or not the user's operation is accessing data is not provided. It is required to provide a technique for determining with high accuracy whether or not access accompanied by user operation is permitted, which permits access to data accompanied by user's operation and blocks access to data not otherwise.
  • the technical problem to be solved by the present invention by using a user operation event provided from the user accessibility management module, by determining whether the access is due to the user's operation, if the access to any object occurs,
  • the present invention provides a method for preventing unauthorized data access and a computing device equipped with the method, which prevent data access and data leakage through a network.
  • Another technical problem to be solved by the present invention is to block unauthorized data access, which does not block legitimate data access according to user input even when a process for providing a GUI for user input and a process for executing internal logic are different.
  • a method and a computing device equipped with the method are provided.
  • a method for preventing unauthorized access to data comprising: monitoring whether an access to an access target object of an access instance occurs, and being generated by a user accessibility management module. Receiving a user manipulation event including information on a user manipulation target object from the user accessibility management module, wherein the access occurs and the access target object and the user manipulation target object are different, or the access occurs and the If a user manipulation event for the access target object is not provided, blocking at least one of access to the access target object and transmission to an external device through a network.
  • the user manipulation event further includes information about a window having the user manipulation target object.
  • blocking at least one of access to the object to be accessed and transmission to an external device through a network may include obtaining a first identifier, which is an identifier of the access instance, and from information on the window, Obtaining a second identifier that is an identifier of the manipulation target instance; accessing the access target object when the access target object and the user manipulation target object are different only when the first identifier and the second identifier are different; Blocking at least one of transmission to an external device through a network; and if it is determined that the access target object and the user manipulation target object are the same even though the first identifier and the second identifier are different, the access instance And the user manipulation target instance are determined to be related to each other Over the network via an access or for access to the target object may include the step of allowing transmission of the external device.
  • Blocking at least one of access to the object to be accessed and transmission to an external device via a network may include: when the access occurs and the access object and the user manipulation object are the same, If the timing of providing the user manipulation event differs by more than a predetermined threshold, the method may include blocking at least one of access to the object to be accessed and transmission to an external device through a network.
  • the user accessibility management module may be a module that provides events that occur as a user manipulation occurs according to MSAA (MicroSoft Active Accessibility).
  • a computer program stored on a recording medium is provided for performing the step of blocking at least one of access and transmission to an external device via a network.
  • a network interface for loading a computer program executed by the processor, and storing data for one or more objects
  • a computing device with data unauthorized access blocking, including storage is provided.
  • the computer program may include an operation for monitoring whether an access occurs on an access target object on the storage of an access instance, and generated by the user accessibility management module, and include information about a user manipulation target object.
  • a user manipulation event provided from a user accessibility management module, when an access to an object occurs, it is possible to provide a computing device capable of determining whether the access is caused by a user's manipulation. .
  • FIG. 1 is a flowchart illustrating a method for blocking unauthorized access of data according to an embodiment of the present invention.
  • FIGS. 2 and 3 are diagrams for explaining that a user manipulation event including information on a user manipulation target object is collected from the user accessibility management module.
  • FIG. 4 is a flowchart illustrating a method for blocking unauthorized access of data according to another embodiment of the present invention, in which a partial determination operation is added as compared to FIG. 1.
  • FIG. 5 is a flowchart illustrating a method for blocking unauthorized access of data according to another embodiment of the present invention, in which a partial determination operation is added, compared to FIG. 4.
  • FIG. 6 is a flowchart illustrating a method for blocking unauthorized access of data according to another embodiment of the present invention, in which a partial determination operation is added, compared to FIG. 5.
  • FIG. 7 is a block diagram of a computing device equipped with a data unauthorized access blocking function according to another embodiment of the present invention.
  • FIG. 8 is a hardware configuration diagram of a computing device equipped with a data unauthorized access blocking function according to another embodiment of the present invention.
  • the data unauthorized access blocking method according to the present embodiment may be understood to be executed in a computing device to which the data unauthorized access blocking method is applied.
  • the storage access refers to reading, writing, etc. of the data stored in the storage
  • the access via the network refers to an attempt to transmit to an external device via the network.
  • the monitoring software can be, for example, agent software running in the background.
  • the agent software is automatically executed when the operating system is booted (AUTO STARTUP), it is preferable to automatically run again even if forced to terminate.
  • data to be accessed is described as being data of a specific object.
  • the object may be, for example, a directory (or folder) or file stored in a storage device, data of a specific data structure stored in a memory, or data of a specific content.
  • the object may refer to a unit of data, and various data units other than those illustrated above may be represented as an object.
  • the monitoring software collects and analyzes data related to the occurrence of access to an object, and data for identifying the object.
  • the data related to the occurrence of access to the object includes access occurrence time information, an identifier of the accessed instance, and the like.
  • the instance may be, for example, any one of a process and a thread. Therefore, the identifier of the accessed instance may be a process ID or a thread ID.
  • the monitoring software monitors data access using various methods such as user level API hooking, kernel level API hooking, and device driver hooking. For example, techniques such as hooking various APIs such as file read, file open, network transmission, device driver hooking of storage, and device driver hooking of network interface may be applied to the monitoring.
  • user level API hooking such as file read, file open, network transmission, device driver hooking of storage, and device driver hooking of network interface may be applied to the monitoring.
  • various APIs such as file read, file open, network transmission, device driver hooking of storage, and device driver hooking of network interface
  • the callback function for user level API hooking is set. For example, when the monitoring software is initialized, the setting of the callback function can be performed.
  • Targets of API hooking are file reading functions and network sending functions, for example.
  • the callback function can be set to execute before the hooking API is executed (pre-execution callback), or the callback function can be set to execute after the hooking API is executed (post-execution callback).
  • Whether to set a pre-execution callback or a post-execution callback is determined by the security policy. For example, if you want to block reading the contents of a file itself, you need to set up a pre-execution callback for the read file API. In addition, if you want to block network transmission, you need to set the pre-execution callback for the network transmission API.
  • the callback function for API hooking has been set successfully, when the file read API is called by the user application attempting to read the file, the callback function set for the file read API will be called. Also, when a user application attempts network transmission and the hooking target file reading API is called, the callback function set for the network transmission API will be called.
  • the monitoring software activates the user manipulation event monitoring in a manner of receiving the user manipulation event from the user accessibility management module (S200).
  • the “user accessibility management module” will be described.
  • the “Accessibility” in the "User Accessibility Management Module” refers to maintaining the same accessibility so that not only people with disabilities but also everyone can easily use the information communication device or service. For example, the ability to provide a magnifying glass on the screen for people with low vision, the ability to subtitle the voice being played for those who do not hear, and the name of the focused object for those who cannot see it. ) And the ability to play back voice using the same technology corresponds to the accessibility technology.
  • the user accessibility management module may be a module for supporting a user interface provided by an application to ensure accessibility for the disabled.
  • the user accessibility management module may be a Microsoft Active Accessibility (MSAA) module.
  • the user accessibility management module provides various information regarding the user operation in a series of event formats when a user operation occurs so that various functions for ensuring accessibility for a disabled person can be developed by an application application.
  • the event provided by the user accessibility management module is referred to as a user manipulation event.
  • the reason why the monitoring software monitors the user manipulation event provided from the user accessibility management module is as follows.
  • the user accessibility management module provides only user input events for situations where a user provides user input to a computing device via an input device (eg, keyboard, mouse, touch pad), whereby a change occurs in the GUI.
  • the user manipulation event does not include an event that is not related to user manipulation, such as a system timer or an interrupt. Therefore, when the user wants to know the information about the GUI change accompanying the user operation, the entire user operation event may be analyzed without additional filtering of the user operation event. That is, when collecting events provided from the user accessibility management module, there is an effect that it is not necessary to filter out system events irrelevant to user manipulation from the collected events.
  • the events providing the name (or path of the object) accessed by the user's operation are EVENT_OBJECT_FOCUS, EVENT_OBJECT_SELECTION, EVENT_OBJECT_SELECTIONADD, EVENT_OBJECT_VALUECHANGE, EVENT_SYSTEM_DRAGDROPSTART_EVENT_SYSTEM.
  • the user manipulation event may provide information on an instance targeted for user manipulation.
  • the information on the instance may be, for example, one of an ID of a process that provided a GUI targeted for user manipulation, an ID of a thread, or a window handle HWND of the GUI.
  • the monitoring software determines whether the access has occurred and whether the access target object and the user manipulation target object are the same (S500).
  • the monitoring software judges normal data access and does not take special blocking measures.
  • the "winhelp.exe” file has a focus according to a user operation among the files stored in the folder, access to the "winhelp.exe” file will be detected during the object access monitoring process.
  • the user accessibility management module may provide information on the name of the focused object (“winhelp.exe”).
  • the monitoring software determines that the two object names are the same, allowing access to the "winhelp.exe” object.
  • the monitoring software determines that the abnormal data access, and block the network access to the object access or the object of the malicious code (S600).
  • the monitoring software uses a hooking routine hooked to the hooking target API or device driver function to block object access or network transmission to the object. If the blocking routine is necessary, the hooking routine returns after taking a measure to prevent the hooking routine from being executed normally.
  • the action may be, for example, changing a value of a parameter when a callback routine is called so that the hooking routine does not operate normally.
  • the hooking routine must be executed before the file reading API is executed, so the pre-execution callback setting for the file reading API is required, and if you want to block network transmission, Since the hooking routine must be executed before the sending API is executed, a pre-execution callback setting for the network sending API is required.
  • the monitoring software determines that the abnormal data access, block the access to the object or the network transmission to the object of the malicious code (S600).
  • the present embodiment has the effect of determining whether the user manipulation object is identical to the accessed object, thereby determining object access irrelevant to the user manipulation, and blocking object access irrelevant to the user manipulation.
  • the identity between the instance of the application targeted for user manipulation and the instance accessing the object is further checked, and the additional checked identity is used to determine object access independent of user manipulation. Can be. This will be described with reference to FIG. 4.
  • a function for obtaining a current instance identifier is executed in the hooking routine. Since the hooking routine is executed in the instance accessing the object, the identifier of the instance accessing the object can be obtained by executing a function that obtains the current process ID or executing a function that obtains the current thread ID. .
  • the identifier of the instance to which the user operation was applied information about an identifier of an instance to which a user manipulation is applied may be provided.
  • information about an identifier of an instance to which a user manipulation is applied may be provided.
  • HWND 000706A2
  • a process identifier to which a user operation is applied in the user operation event may be obtained by using a function (GetWindowsThreadProcessID ()) which extracts a process ID from a window handle.
  • an event for providing a window handle (HWND) of a window to which a user manipulation is performed is EVENT_OBJECT_FOCUS, EVENT_OBJECT_SELECTION, EVENT_OBJECT_SELECTIONADD, EVENT_OBJECT_VALUECHANGE, EVENT_SYS_TETE_EVTE_EVTE_EVTE_EVTE_EVTEP
  • the identifier of the instance which accessed the object is identical to the identifier of the instance to which the user operation is applied.
  • the name of the accessed object is compared with the name of the object on which the user operation is performed only when the identifier of the instance accessing the object and the instance of the instance to which the user operation is applied are not the same (S450). ).
  • the time difference between the object access time point and the user operation input time point may be used to determine object access independent of the user operation. This will be described with reference to FIG. 5.
  • the object access point and the user manipulation are different. If the applied time points differ by more than the threshold value, it may be determined that they are not related to each other and allow access to the object (S550). That is, according to the present embodiment, by simply comparing the object access and the user operation on the object without considering the time difference, there is an effect that can prevent the legitimate object access by the user operation.
  • some embodiments of the present invention do not block legitimate data access according to user input even when the process of providing a GUI for user input and the process of executing internal logic are different.
  • a list of instances where object access is allowed may be managed. This will be described with reference to FIG. 6.
  • the object access point and the user manipulation are different. If the applied time points differ by more than the threshold value, it may be determined that they are not related to each other and allow access to the object (S550). At this time, the access of the object is not immediately allowed, but if at least one of the instance accessing the object and the instance to which the user manipulation is applied is not included in the previously stored instance list (S560), access to the object may be blocked.
  • the instance list may include various information for identifying an instance, such as a file name of an executable file, a feature value for the executable file, a hash value for the executable file, and the like.
  • the instance list includes information on the instances that are allowed to access the object even if the user manipulation instance and the object access instance are different from each other.
  • the list of user manipulation instances, the list of object access instances, or the user manipulation It can be a list of both instance / object access instances.
  • the checking of the instance list is performed after the checking (S550) of whether the access point and the time when the user operation is applied differ by more than a threshold, but the instance list check is illustrated in FIG. 6.
  • the same may be applied to the embodiment shown in FIG. That is, even if the instance accessing the object is different from the instance to which the user manipulation is applied (S450), and the accessed object and the object to which the user manipulation is applied are the same (S500), at least one of the user manipulation instance and the object access instance is stored in advance. If not included in the instance list, access to the object may be blocked (S600).
  • the methods according to the embodiments of the present invention described above with reference to FIGS. 1 to 6 may be performed by executing a computer program implemented with computer readable code.
  • the computer program may be transmitted to and installed on the second computing device from the first computing device via a network such as the Internet, and thus may be used in the second computing device.
  • the first computing device and the second computing device include both a server device, a stationary computing device such as a desktop PC, and a mobile computing device such as a notebook, a smartphone, a tablet PC.
  • the computer program in combination with a computing device, monitors whether access to an object to be accessed of an access instance occurs, and is generated by a user accessibility management module and includes information about a user manipulation object. Receiving an operation event from the user accessibility management module; when the access occurs and the access target object and the user manipulation target object are different, access to the access target object and transmission to an external device via a network To block at least one.
  • the computer program may be stored in a recording medium such as a DVD-ROM or a flash memory device.
  • FIG. 7 is a block diagram of a computing device equipped with a data unauthorized access blocking function according to another embodiment of the present invention.
  • the computing device is installed with the user application 10, the monitoring software and the operating system 40, respectively.
  • the monitoring software includes an object access information providing unit 30 and an access and network transmission blocking unit 20.
  • the object access information providing unit 30 detects the access of the object by the access instance through API hooking.
  • the object access information providing unit 20 may be a hooking routine (callback function) injected into the access instance by API hooking or the like. If the accessed object is different from the object selected by the user, the access will be blocked.
  • the user accessibility management module When the user input is applied to the user application 10 using the GUI, the user accessibility management module provides a user manipulation event including information on the user input to the access and network transmission blocking unit 20.
  • the access and network transmission blocking unit 20 transmits and receives data with the object access information providing unit 30 to determine whether to allow access to the object.
  • the object access information providing unit 30 may transmit / receive data with the access and network transmission blocking unit 20 to determine whether to allow access to the object.
  • access to an object is allowed if the instance that accesses the object and the instance that the user has manipulated are the same.
  • a list of instances that may be allowed to access the object may be managed even if the instance accessed to the object and the instance to which the user manipulation is applied are different.
  • the time point of access and user operation differs by more than a limit value. Access to is allowed.
  • the object access information providing unit 30, that is, the hooking routine (callback function) takes measures such as message discard and callback function parameter modification such that the hooking target API is not executed when the access blocking is determined.
  • the object access information providing unit 30, that is, the hooking routine (callback function) passes the control to the hooking target API so that the hooking target API is normally executed.
  • FIG. 8 is a hardware configuration diagram of a computing device equipped with a data unauthorized access blocking function according to another embodiment of the present invention.
  • the computing device 50 equipped with the data unauthorized access blocking function includes one or more processors 503, a network interface 508, a storage 509, and an input / output device 507. And a memory (RAM) 505.
  • the processor 503, the network interface 508, the storage 509, the memory 505, and the input / output device 507 transmit and receive data through the system bus 501.
  • the input / output device 507 refers to an input device such as a keyboard, a mouse, a touch screen, and an output device such as a display.
  • the storage 509 stores data 591 of an object such as a file. Access on the storage 509 for the object is allowed depending on whether the access target object and the user manipulation target object are different or when the access occurs and a user manipulation event for the access target object is not provided or Can be blocked.
  • the operations to be executed are loaded into the memory 505.
  • One or more user applications 550, a callback function 552 that is loaded as a result of the installation of the suspicious access blocking computer program 590 stored in the storage 509, and the suspicious access blocking routine 554 loaded into the memory 505. do.
  • the processor 503 installs a computer program 590 for blocking suspicious access stored in the storage.
  • the computer program includes an operation for monitoring whether an access occurs on an access target object on the storage of an access instance, a user operation generated by a user accessibility management module, and including information on a user manipulation target object.
  • At least one of an operation of receiving an event from the user accessibility management module, access to the access target object and data transmission through the network interface when the access occurs and the access target object and the user manipulation target object are different It includes an operation that blocks.
  • the processor executes the object access detection callback function 552 and the suspicious access blocking routine 554, which are loaded into the memory 505 of the installation result of the program.
  • the suspicious access blocking routine 554 receives a user manipulation event including information on a user manipulation target object from the user accessibility management module.
  • the user accessibility management module may be a routine included in the user application 550 or a routine included in an operating system (not shown) of the computing device 50.
  • the callback function 552 is a result of API hooking being set for a function for accessing data to the storage 509 and the memory 505 or a function for transmitting a network through the network interface 508. This function is called together when the target API is called.
  • the callback function 552 detects access to the object, and the suspicious access blocking routine 554 determines whether the access is by user operation.
  • access to an object is allowed if the instance that accesses the object and the instance that the user has manipulated are the same. Also, even if the instance accessed the object and the instance to which the user operation is applied are different, access to the object is permitted if the name of the accessed object and the name of the object selected by the user operation are the same. In this case, in order to complement security, a list of instances that may be allowed to access the object may be managed even if the instance accessed to the object and the instance to which the user manipulation is applied are different.
  • the time point of access and user operation differs by more than a limit value. Access to is allowed.
  • access 54 to objects in memory, access 53 to objects in storage, and object transmission 52 over a network may be allowed.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Technology Law (AREA)

Abstract

악성 코드 등이 무단으로 데이터에 엑세스 하고, 외부 장치로 유출하는 것을 차단하는 방법이 제공된다. 본 발명에 따른 데이터 무단 엑세스 차단 방법은 엑세스 인스턴스의 엑세스 대상 객체에 대한 엑세스가 발생하는지 여부를 모니터링 하는 단계와, 사용자 접근성 관리 모듈에 의하여 생성되고, 사용자 조작 대상 객체에 대한 정보를 포함하는 사용자 조작 이벤트를 상기 사용자 접근성 관리 모듈로부터 제공받는 단계와, 상기 엑세스가 발생하고 상기 엑세스 대상 객체와 상기 사용자 조작 대상 객체가 상이한 경우, 상기 엑세스 대상 객체에 대한 엑세스 및 네트워크를 통한 외부 장치로의 송신 중 적어도 하나를 차단하는 단계를 포함한다.

Description

데이터 무단 엑세스 차단 방법 및 그 기능이 구비된 컴퓨팅 장치
본 발명은 데이터 무단 엑세스 차단 방법 및 그 기능이 구비된 컴퓨팅 장치에 관한 것이다. 보다 자세하게는, 사용자의 조작이 수반하는 데이터 엑세스가 아닌 것으로 판단된 경우, 그 데이터 엑세스 및 그 데이터에 대한 네트워크 송신을 차단하는 방법 및 그 기능이 구비된 컴퓨팅 장치에 관한 것이다.
스파이웨어 등 컴퓨팅 장치의 사용자의 의사와 무관하게 상기 컴퓨팅 장치에 저장된 수집하는 악성 코드가 널리 퍼져있다. 이러한 악성 코드의 데이터 무단 수집을 차단하기 위하여, 다양한 방법이 시도된다. 예를 들어, 데이터 입출력을 시도하는 프로세스와 사용자 입력 대상인 프로세스가 서로 다른 경우, 사용자의 의사와 무관하게 데이터 엑세스가 이루어지는 것으로 보아 데이터의 엑세스 및 그 데이터에 대한 네트워크 송신을 차단할 수 있을 것이다. 그러나, 상기 방식은 사용자 입력을 위한 GUI(Graphic User Interface)를 제공하는 프로세스와, 내부 로직을 수행하는 프로세스가 서로 다른 경우, 사용자 입력에 따른 정당한 데이터 엑세스까지 차단하게 되는 문제점이 있다.
상기 예시된 바와 같이, 사용자의 조작이 수반하는 데이터의 엑세스 인지 여부를 정확하게 판정하는 악성 코드의 데이터 엑세스 차단 방법이 제공되고 있지 않다. 사용자의 조작이 수반하는 데이터의 엑세스는 허용하고, 그렇지 않은 데이터의 엑세스는 차단하는, 사용자 조작 수반 엑세스인지 여부를 높은 정확도로 판단하는 기술의 제공이 요청된다.
본 발명이 해결하고자 하는 기술적 과제는, 사용자 접근성 관리 모듈로부터 제공되는 사용자 조작 이벤트를 이용하여, 어떠한 객체에 대한 엑세스가 발생한 경우, 그 엑세스가 사용자의 조작에 의한 것인지 여부를 판정함으로써, 사용자의 조작에 의하지 않은 데이터 엑세스와 네트워크를 통한 데이터 유출을 차단하는 데이터 무단 엑세스 차단 방법 및 그 방법이 구비된 컴퓨팅 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는, 사용자 입력을 위한 GUI를 제공하는 프로세스와, 내부 로직을 수행하는 프로세스가 서로 다른 경우라도, 사용자 입력에 따른 정당한 데이터 엑세스는 차단하지 않는, 데이터 무단 엑세스 차단 방법 및 그 방법이 구비된 컴퓨팅 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 데이터 무단 엑세스 차단 방법은, 엑세스 인스턴스의 엑세스 대상 객체에 대한 엑세스가 발생하는지 여부를 모니터링 하는 단계와, 사용자 접근성 관리 모듈에 의하여 생성되고, 사용자 조작 대상 객체에 대한 정보를 포함하는 사용자 조작 이벤트를 상기 사용자 접근성 관리 모듈로부터 제공받는 단계와, 상기 엑세스가 발생하고 상기 엑세스 대상 객체와 상기 사용자 조작 대상 객체가 상이하거나, 상기 엑세스가 발생하고 상기 엑세스 대상 객체에 대한 사용자 조작 이벤트가 미제공된 경우, 상기 엑세스 대상 객체에 대한 엑세스 및 네트워크를 통한 외부 장치로의 송신 중 적어도 하나를 차단하는 단계를 포함한다.
일 실시예에서, 상기 사용자 조작 이벤트는 상기 사용자 조작 대상 객체를 가지는 윈도우에 대한 정보를 더 포함한다. 이 때, 상기 엑세스 대상 객체에 대한 엑세스 및 네트워크를 통한 외부 장치로의 송신 중 적어도 하나를 차단하는 단계는, 상기 엑세스 인스턴스의 식별자인 제1 식별자를 얻는 단계와, 상기 윈도우에 대한 정보로부터, 사용자 조작 대상 인스턴스의 식별자인 제2 식별자를 얻는 단계와, 상기 제1 식별자와 상기 제2 식별자가 상이한 경우에 한하여, 상기 엑세스 대상 객체와 상기 사용자 조작 대상 객체가 상이한 경우 상기 엑세스 대상 객체에 대한 엑세스 및 네트워크를 통한 외부 장치로의 송신 중 적어도 하나를 차단하는 단계와, 상기 제1 식별자와 상기 제2 식별자가 상이하더라도, 상기 엑세스 대상 객체와 상기 사용자 조작 대상 객체가 동일한 것으로 판단된 경우, 상기 엑세스 인스턴스와 상기 사용자 조작 대상 인스턴스가 서로 관련된 것으로 판정하여 상기 엑세스 대상 객체에 대한 엑세스 또는 네트워크를 통한 외부 장치로의 송신을 허용하는 단계를 포함할 수 있다.
상기 엑세스 대상 객체에 대한 엑세스 및 네트워크를 통한 외부 장치로의 송신 중 적어도 하나를 차단하는 단계는, 상기 엑세스가 발생하고 상기 엑세스 대상 객체와 상기 사용자 조작 대상 객체가 동일하더라도, 상기 엑세스 발생 시점과 상기 사용자 조작 이벤트 제공 시점이 기 지정된 한계치 이상 차이나는 경우에는 상기 엑세스 대상 객체에 대한 엑세스 및 네트워크를 통한 외부 장치로의 송신 중 적어도 하나를 차단하는 단계를 포함할 수 있다.
일 실시예에서, 상기 사용자 접근성 관리 모듈은 MSAA(MicroSoft Active Accessibility) 에 따라 사용자 조작이 발생함에 따라 발생하는 이벤트들을 제공하는 모듈일 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 다른 실시예에 따르면, 컴퓨팅 장치와 결합하여, 엑세스 인스턴스의 엑세스 대상 객체에 대한 엑세스가 발생하는지 여부를 모니터링 하는 단계와, 사용자 접근성 관리 모듈에 의하여 생성되고, 사용자 조작 대상 객체에 대한 정보를 포함하는 사용자 조작 이벤트를 상기 사용자 접근성 관리 모듈로부터 제공받는 단계와, 상기 엑세스가 발생하고 상기 엑세스 대상 객체와 상기 사용자 조작 대상 객체가 상이한 경우, 상기 엑세스 대상 객체에 대한 엑세스 및 네트워크를 통한 외부 장치로의 송신 중 적어도 하나를 차단하는 단계를 실행시키기 위하여 기록매체에 저장된 컴퓨터프로그램이 제공된다.
상기 기술적 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따르면, 네트워크 인터페이스, 하나 이상의 프로세서, 상기 프로세서에 의하여 수행 되는 컴퓨터 프로그램을 로드(load) 하는 메모리, 및 하나 이상의 객체에 대한 데이터를 저장하는 스토리지를 포함하는, 데이터 무단 엑세스 차단 기능이 구비된 컴퓨팅 장치가 제공된다. 이 때, 상기 컴퓨터 프로그램은, 엑세스 인스턴스의, 상기 스토리지 상의 엑세스 대상 객체에 대한, 엑세스가 발생하는지 여부를 모니터링 하는 오퍼레이션과, 사용자 접근성 관리 모듈에 의하여 생성되고, 사용자 조작 대상 객체에 대한 정보를 포함하는 사용자 조작 이벤트를 상기 사용자 접근성 관리 모듈로부터 제공받는 오퍼레이션과, 상기 엑세스가 발생하고 상기 엑세스 대상 객체와 상기 사용자 조작 대상 객체가 상이한 경우, 상기 엑세스 대상 객체에 대한 엑세스 및 상기 네트워크 인터페이스를 통한 데이터 송신 중 적어도 하나를 차단하는 오퍼레이션을 포함한다.
본 발명에 따르면, 사용자 접근성 관리 모듈로부터 제공되는 사용자 조작 이벤트를 이용하여, 어떠한 객체에 대한 엑세스가 발생한 경우, 그 엑세스가 사용자의 조작에 의한 것인지 여부를 판정할 수 있는 컴퓨팅 장치를 제공할 수 있다.
또한, 본 발명에 따르면, 상기 판정에 의해, 사용자의 조작에 의하지 않은 데이터 엑세스와 네트워크를 통한 데이터 유출을 차단하는 데이터 무단 엑세스 차단 방법 및 그 방법이 구비된 컴퓨팅 장치를 제공할 수 있다.
또한, 본 발명의 데이터 무단 엑세스 차단 방법 및 그 방법이 구비된 컴퓨팅 장치에 따르면, 사용자 입력을 위한 GUI를 제공하는 프로세스와, 내부 로직을 수행하는 프로세스가 서로 다른 경우라도, 사용자 입력에 따른 정당한 데이터 엑세스는 차단하지 않는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 데이터 무단 엑세스 차단 방법의 순서도이다.
도 2 및 도 3은, 사용자 접근성 관리 모듈로부터 사용자 조작 대상 객체에 대한 정보를 포함하는 사용자 조작 이벤트가 수집되는 것을 설명하기 위한 도면이다.
도 4는, 도 1에 비하여, 일부 판단 동작이 추가된, 본 발명의 다른 실시예에 따른 데이터 무단 엑세스 차단 방법의 순서도이다.
도 5는, 도 4에 비하여, 일부 판단 동작이 추가된, 본 발명의 또 다른 실시예에 따른 데이터 무단 엑세스 차단 방법의 순서도이다.
도 6은, 도 5에 비하여, 일부 판단 동작이 추가된, 본 발명의 또 다른 실시예에 따른 데이터 무단 엑세스 차단 방법의 순서도이다.
도 7은 본 발명의 또 다른 실시예에 따른, 데이터 무단 엑세스 차단 기능이 구비된 컴퓨팅 장치의 블록 구성도이다.
도 8은 본 발명의 또 다른 실시예에 따른, 데이터 무단 엑세스 차단 기능이 구비된 컴퓨팅 장치의 하드웨어 구성도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
이하, 도 1 내지 도 6을 참조하여 본 발명의 일 실시예에 따른 데이터 무단 엑세스 차단 방법을 설명한다. 데이터 무단 엑세스 차단 기능이 활성화된 경우에 한하여, 본 실시예에 따른 데이터 무단 엑세스 차단 방법이 수행될 것이다. 본 실시예에 따른 데이터 무단 엑세스 차단 방법이 적용된 컴퓨팅 장치가 보안 네트워크에 접속한 경우, 상기 컴퓨팅 장치에서는 상기 데이터 무단 엑세스 차단 기능의 비활성화가 불가능한 것이 바람직하다. 본 실시예에 따른 데이터 무단 엑세스 차단 방법은, 상기 데이터 무단 엑세스 차단 방법이 적용된 컴퓨팅 장치에서 실행되는 것으로 이해될 수 있다.
먼저, 데이터에 대한 스토리지 엑세스 또는 네트워크를 통한 엑세스가 이루어지는지 여부를 모니터링 하는 모니터링 소프트웨어의 실행을 활성화한다(S100). 상기 스토리지 엑세스는, 스토리지에 저장된 상기 데이터에 대한 읽기, 쓰기 등을 가리키고, 상기 네트워크를 통한 엑세스는 네트워크를 통해 외부 장치로 송신하기 위한 시도를 가리킨다. 상기 모니터링 소프트웨어는, 예를 들어 백그라운드에서 실행되는 에이전트 소프트웨어일 수 있다. 상기 에이전트 소프트웨어는, 운영체제의 부팅 시 자동으로 실행되고(AUTO STARTUP), 강제 종료되더라도 자동으로 다시 실행되는 것이 바람직하다. 이하, 이해의 편의를 돕기 위하여, 엑세스 대상인 데이터는 특정 객체의 데이터인 것으로 설명한다.
상기 객체는, 예를 들어 스토리지 장치에 저장된 디렉토리(또는 폴더) 또는 파일이거나, 메모리에 저장된 특정 데이터 구조의 데이터이거나, 특정 컨텐츠의 데이터일 수 있다. 상기 객체는, 데이터의 단위를 가리키는 것으로 상기 예시된 것 이외에도 다양한 데이터 단위가 객체로 표현될 수 있을 것이다.
상기 모니터링 소프트웨어는, 객체에 대한 엑세스 발생과 관련된 데이터와, 상기 객체를 식별하기 위한 데이터를 수집하고 분석한다. 상기 객체에 대한 엑세스 발생과 관련된 데이터는, 엑세스 발생 시간 정보, 엑세스 한 인스턴스의 식별자 등을 포함한다. 상기 인스턴스는, 예를 들어 프로세스, 쓰레드 중 어느 하나 일 수 있다. 따라서, 상기 엑세스 한 인스턴스의 식별자는, 프로세스 ID 또는 쓰레드 ID일 수 있다.
상기 모니터링 소프트웨어는, 사용자 레벨 API 후킹, 커널 레벨 API 후킹, 디바이스 드라이버 후킹 등 다양한 방법을 이용하여 데이터 엑세스 여부를 모니터링 한다. 예를 들어, 파일 리드(file read), 파일 오픈(file open), 네트워크 송신 등 다양한 API에 대한 후킹, 스토리지의 디바이스 드라이버 후킹 및 네트워크 인터페이스의 디바이스 드라이버 후킹 등의 기술이 상기 모니터링에 적용될 수 있다. 이하, 이해의 편의를 돕기 위해 사용자 레벨 API 후킹을 통한 모니터링 방법에 대하여 보다 자세히 설명한다.
사용자 레벨 API 후킹을 위한 콜백 함수가 세팅 된다. 예를들어, 상기 모니터링 소프트웨어가 초기화될 때, 상기 콜백 함수의 세팅이 수행될 수 있다.
API 후킹의 대상은, 예를 들어, 파일 읽기 함수 및 네트워크 송신 함수이다.
API 후킹 시 후킹 대상 API가 실행되기 전에 콜백 함수가 실행되도록 세팅(선 실행 콜백)하거나, 후킹 대상 API가 실행된 후 콜백 함수가 실행되도록 세팅(후 실행 콜백)할 수 있다.
선 실행 콜백을 세팅할 것인지, 혹은 후 실행 콜백을 세팅할 것인지 여부는, 보안 정책에 따라 결정된다. 예를 들어, 파일의 내용을 읽는 것 자체를 차단하고자 하는 경우, 파일 읽기 API에 대한 선 실행 콜백 세팅이 필요하다. 또한, 네트워크 송신을 차단하고자 하는 경우, 네트워크 송신 API에 대한 선 실행 콜백 세팅이 필요하다.
API 후킹을 위한 콜백 함수가 성공적으로 세팅 되었다면, 사용자 어플리케이션(user application)에서 파일 읽기를 시도하여 후킹 대상 파일 읽기 API가 호출될 때, 그 파일 읽기 API에 대하여 세팅 한 콜백 함수가 호출될 것이다. 또한, 사용자 어플리케이션(user application)에서 네트워크 송신을 시도하여 후킹 대상 파일 읽기 API가 호출될 때, 그 네트워크 송신 API에 대하여 세팅 한 콜백 함수가 호출될 것이다.
다음으로, 상기 모니터링 소프트웨어는 사용자 접근성 관리 모듈로부터 상기 사용자 조작 이벤트를 제공받는 방식의 사용자 조작 이벤트 모니터링을 활성화한다(S200). 이하, "사용자 접근성 관리 모듈"에 대하여 설명한다.
"사용자 접근성 관리 모듈"의 "접근성(Accessibility)"은 장애인 뿐만 아니라 모든 사람이 정보통신기기나 서비스를 쉽게 활용할 수 있도록 동일한 접근성을 유지하게 만드는 것을 말한다. 예를 들어, 시력이 약한 사람을 위하여 화면에 돋보기 기능을 제공하는 기능, 듣지 못하는 사람을 위하여 재생되는 음성을 자막처리 하는 기능, 보지 못하는 사람을 위하여, 포커스 된 객체의 명칭을 TTS(Text To Speech) 기술을 이용하여 음성 재생하는 기능 등이 상기 접근성 기술에 해당한다. 정리하면, 상기 사용자 접근성 관리 모듈은, 응용 어플리케이션에 의하여 제공 되는 사용자 인터페이스가 장애인 접근성을 보장하도록 지원하는 모듈일 수 있다. 예를 들어, 상기 사용자 접근성 관리 모듈은 MSAA(Microsoft Active Accessibility) 모듈일 수 있다.
상기 사용자 접근성 관리 모듈은, 장애인 접근성을 보장하기 위한 다양한 기능이 응용 어플리케이션에 의하여 개발 될 수 있도록, 사용자 조작이 발생하는 경우, 상기 사용자 조작에 관한 다양한 정보를 일련의 이벤트 형식으로 제공한다. 이하, 상기 사용자 접근성 관리 모듈이 제공하는 상기 이벤트를, 사용자 조작 이벤트라고 지칭한다.
상기 모니터링 소프트웨어가, 상기 사용자 접근성 관리 모듈로부터 제공되는 상기 사용자 조작 이벤트를 모니터링 하는 이유는 다음과 같다.
사용자 접근성 관리 모듈은, 사용자가 입력 장치(예를 들어, 키보드, 마우스, 터치 패드)를 통해 컴퓨팅 장치에 사용자 입력을 제공하고, 그로 인하여 GUI에 변동이 발생하는 상황에 대한 이벤트만을 상기 사용자 조작 이벤트로서 제공한다. 즉, 상기 사용자 조작 이벤트는 시스템 타이머, 인터럽트 등 사용자 조작과 무관한 이벤트를 포함하지 않는다. 따라서, 사용자 조작이 수반하는 GUI 변동 사항에 관한 정보를 알고자 하는 경우, 상기 사용자 조작 이벤트에 대한 별도의 필터링 작업 없이, 상기 사용자 조작 이벤트 전체를 분석하면 된다. 즉, 사용자 접근성 관리 모듈로부터 제공되는 이벤트를 수집하는 경우, 수집된 이벤트에서 사용자 조작과 무관한 시스템 이벤트 등을 필터링 해내지 않아도 되는 효과가 있다.
또한, 상기 사용자 조작 이벤트에는 사용자 조작과 관련된 객체의 명칭 정보가 포함된다. 따라서, 상기 사용자 접근성 관리 모듈을 이용하면, 사용자 조작과 관련된 객체가 엑세스 된 것인지 여부를 판단할 수 있다. 도 2 및 도 3을 참조하여 설명한다. 도 2에 도시된 바와 같이, 폴더에 저장된 파일 중, "winhelp.exe" 파일에 포커스가 되는 경우를 가정하자. 이 경우, 도 3에 도시된 바와 같이, 상기 사용자 접근성 관리 모듈은 포커스가 이뤄진 객체("winhelp.exe 파일")의 명칭에 대한 정보를, 객체 선택이 이뤄졌음을 가리키는 이벤트(OBJ_SELECTION)의 부속 정보(Name="winhelp.exe")로서 제공한다.
상기 사용자 접근성 관리 모듈이 MSAA인 경우, 사용자 조작으로 인하여 접근된 객체의 명칭(또는 객체의 경로)을 제공하는 이벤트는, EVENT_OBJECT_FOCUS, EVENT_OBJECT_SELECTION, EVENT_OBJECT_SELECTIONADD, EVENT_OBJECT_VALUECHANGE, EVENT_SYSTEM_DRAGDROPSTART, EVENT_SYSTEM_DRAGDROPEND이다.
또한, 상기 사용자 조작 이벤트에는 사용자 조작의 대상이 된 인스턴스에 대한 정보도 제공할 수 있다. 상기 인스턴스에 대한 정보는, 예를 들어, 사용자 조작의 대상이 된 GUI를 제공한 프로세스의 ID 또는, 쓰레드의 ID 또는 상기 GUI의 윈도우 핸들(HWND) 중 어느 하나일 수 있다. 도 3에는, 사용자 입력이 가해진 윈도우의 윈도우 핸들이 OBJ_SELECTION 이벤트의 부속 정보로서 제공되는 점(HWND=000706A2)이 도시되어 있다. 사용자 조작의 대상이 된 인스턴스에 대한 정보를 알 수 있다면, 객체에 대하여 실제로 엑세스 한 인스턴스에 대한 동일성 비교를 통하여, 데이터 엑세스가 사용자 조작에 수반된 것인지 여부를 보다 정확하게 판단할 수 있을 것이다.
다시, 도 1으로 돌아와서 설명한다. 이미 설명한 바와 같이, 객체 엑세스를 모니터링 하는 것을 활성화하고(S100), 사용자 접근성 관리 모듈로부터 사용자 조작 이벤트를 제공받도록 모니터링 하는 것을 활성화하면(S200), 객체에 대한 엑세스가 발생할 때마다 이를 감지할 수 있을 것이고(S300), 사용자가 GUI 상에 사용자 입력을 가할 때마다, 상기 사용자 접근성 관리 모듈로부터 사용자 조작 이벤트가 제공될 것이다(S400).
상기 모니터링 소프트웨어는 상기 엑세스가 발생하고 상기 엑세스 대상 객체와 상기 사용자 조작 대상 객체가 동일한지 여부를 판정한다(S500).
예를 들어, 사용자의 조작에 따른 특정 파일 엑세스인 경우, 상기 특정 파일에 대한 엑세스가 감지되고, 상기 특정 파일에 대한 선택 등의 사용자 조작 이벤트가 제공될 것이다. 즉, 엑세스 대상 객체의 명칭과, 사용자 조작 대상 객체의 명칭이 동일할 것이다. 이 경우, 상기 모니터링 소프트웨어는, 정상적인 데이터 엑세스로 판정하여 특별한 차단 조치를 취하지 않는다. 도 2에 도시된 바와 같이, 폴더에 저장된 파일 중, "winhelp.exe" 파일에 사용자 조작에 따른 포커스가 되는 경우, 객체 엑세스 모니터링 과정에서 "winhelp.exe" 파일에 대한 엑세스가 이뤄지는 점이 감지될 것이다. 또한, 도 3에 도시된 바와 같이 상기 사용자 접근성 관리 모듈은 포커스가 이뤄진 객체("winhelp.exe")의 명칭에 대한 정보를 제공할 것이다. 따라서, 상기 모니터링 소프트웨어는, 두 개의 객체 명칭이 동일함을 판정하여, "winhelp.exe" 객체에 대한 엑세스를 허용한다.
반대로, 사용자의 조작과 무관하게 악성 코드가 무단으로 특정 파일의 네트워크 유출을 시도하는 경우, 상기 특정 파일에 대한 엑세스는 감지되지만 상기 엑세스 대상 객체에 대한 상기 사용자 조작 이벤트는 상기 사용자 접근성 관리 모듈로부터 제공되지 않을 것이다. 이 경우, 상기 모니터링 소프트웨어는 비정상 데이터 엑세스로 판정하여, 상기 악성 코드의 객체 엑세스 또는 객체에 대한 네트워크 송신을 차단한다(S600).
상기 모니터링 소프트웨어는, 객체 엑세스 또는 객체에 대한 네트워크 송신을 차단하기 위하여, 후킹 대상 API 또는 디바이스 드라이버 함수에 후킹 된 후킹 루틴을 이용한다. 상기 후킹 루틴은, 상기 차단이 필요한 경우, 후킹 대상 루틴이 정상적으로 실행되지 않도록 조치를 취한 후 리턴 한다. 상기 조치는, 예를 들어 콜백 루틴 호출 시의 파라미터의 값을 변경하여, 상기 후킹 대상 루틴이 정상적으로 동작하지 않도록 하는 것일 수 있다.
파일의 내용을 읽는 것 자체를 차단하고자 하는 경우, 파일 읽기 API가 실행되기 전에 후킹 루틴이 실행되어야 하므로, 상기 파일 읽기 API에 대한 선 실행 콜백 세팅이 필요하고, 네트워크 송신을 차단하고자 하는 경우, 네트워크 송신 API가 실행되기 전에 후킹 루틴이 실행되어야 하므로, 상기 네트워크 송신 API에 대한 선 실행 콜백 세팅이 필요하다.
사용자가 제1 객체를 선택했지만, 상기 악성 코드는 제2 객체에 대한 엑세스를 수행하는 경우, 엑세스 대상 객체와 상기 사용자 조작 대상 객체가 서로 상이할 것이다. 이 경우에도, 상기 모니터링 소프트웨어는 비정상 데이터 엑세스로 판정하여, 상기 악성 코드의 객체 엑세스 또는 객체에 대한 네트워크 송신을 차단한다(S600).
본 실시예는 사용자 조작 객체와 엑세스 된 객체의 동일성 여부를 판정하여, 사용자 조작과 무관한 객체 엑세스를 판정하고, 사용자 조작과 무관한 객체 엑세스를 차단할 수 있는 효과가 있다.
본 발명의 몇몇 실시예들에서, 사용자 조작의 대상인 어플리케이션의 인스턴스와, 객체에 엑세스 한 인스턴스 사이의 동일성이 추가로 체크되고, 상기 추가로 체크된 동일성이 사용자 조작과 무관한 객체 엑세스를 판정하는데 사용될 수 있다. 이에 대하여, 도 4를 참조하여 설명한다.
도 4에 도시된 바와 같이, 사용자 조작의 대상인 어플리케이션의 인스턴스와, 객체에 엑세스한 인스턴스가 서로 동일한 경우에는, 엑세스된 객체와 사용자 조작과 관련된 객체 사이의 동일성을 고려할 필요도 없이, 사용자 조작에 의한 객체 엑세스로 판정하고, 객체 엑세스를 허용한다(S450). 사용자 조작이 있었던 인스턴스가 직접 객체에 엑세스 한 것은, 사용자 조작에 의한 객체 엑세스로 보아야 하기 때문이다.
인스턴스의 동일성을 판정하기 위한 동작을 설명한다. 먼저, 객체에 엑세스한 인스턴스의 식별자를 얻기 위하여, 상기 후킹 루틴 내에서 현재 인스턴스 식별자를 얻기 위한 함수를 실행한다. 상기 후킹 루틴은 객체에 엑세스한 인스턴스 내에서 실행되는 것이므로, 현재 프로세스 ID를 얻는 함수를 실행하거나, 현재 쓰레드 ID를 얻는 함수를 실행하는 등의 방법으로, 객체에 엑세스한 인스턴스의 식별자를 얻을 수 있다.
다음으로, 사용자 조작이 가해진 인스턴스의 식별자를 얻는다. 상기 사용자 조작 이벤트에서 사용자 조작이 가해진 인스턴스의 식별자에 대한 정보를 제공할 수 있다. 동일성 판단을 위하여는, 객체에 엑세스한 인스턴스의 식별자와 동일한 형식의 식별자를 얻어야 한다. 예를 들어, 도 3에는, 사용자 입력이 가해진 윈도우의 윈도우 핸들이 OBJ_SELECTION 이벤트의 부속 정보로서 제공되는 점(HWND=000706A2)이 도시되어 있다. 객체에 엑세스한 인스턴스 식별자가 프로세스 ID라면, 윈도우 핸들로부터 프로세스 ID를 추출하는 함수(GetWindowsThreadProcessID()) 등을 이용하여, 상기 사용자 조작 이벤트에서 사용자 조작이 가해진 프로세스 식별자를 구할 수 있을 것이다.
상기 사용자 접근성 관리 모듈이 MSAA인 경우, 사용자 조작이 가해진 윈도우의 윈도우 핸들(HWND)을 제공하는 이벤트는, EVENT_OBJECT_FOCUS, EVENT_OBJECT_SELECTION, EVENT_OBJECT_SELECTIONADD, EVENT_OBJECT_VALUECHANGE, EVENT_OBJECT_LOCATIONCHANGE, EVENT_SYSTEM_CHPTURESTART, EVENT_SYSTEM_CHPTUREEND, EVENT_SYSTEM_DRAGDROPSTART, EVENT_SYSTEM_DRAGDROPEND 이다.
다음으로, 객체에 엑세스한 인스턴스의 식별자와, 사용자 조작이 가해진 인스턴스의 식별자가 동일한지 판단한다. 이미 설명한 바와 같이, 객체에 엑세스한 인스턴스의 식별자와, 사용자 조작이 가해진 인스턴스의 식별자가 동일하지 않은 경우에 한하여(S450), 엑세스된 객체의 명칭과 사용자 조작이 이뤄진 객체의 명칭이 비교된다(S500).
도 4에 도시된 본 실시예는, 객체에 엑세스한 인스턴스와 사용자 조작 이벤트에 따른 사용자 조작이 가해진 인스턴스가 서로 동일할 때에는 객체 동일성 여부를 비교하지 않는다. 따라서, 작업 부담이 도 1에 도시된 실시예에 비하여 경감된다.
또한, 도 4에 도시된 본 실시예는, 객체에 엑세스한 인스턴스와 사용자 조작 이벤트에 따른 사용자 조작이 가해진 인스턴스가 서로 다르더라도, 엑세스된 객체의 명칭 및 GUI 상에서 사용자 조작이 가해진 객체의 명칭이 서로 같다면 상기 객체에 대한 엑세스를 허용한다. 본 실시예는, 사용자 입력을 위한 GUI를 제공하는 프로세스와, 내부 로직을 수행하는 프로세스가 서로 다른 경우라도, 사용자 입력에 따른 정당한 데이터 엑세스는 차단하지 않는 효과가 있다.
본 발명의 몇몇 실시예들에서, 객체 엑세스 시점 및 사용자 조작 입력 시점 사이의 시간 차이가, 사용자 조작과 무관한 객체 엑세스를 판정하는데 사용될 수 있다. 이에 대하여, 도 5를 참조하여 설명한다.
도 5에 도시된 바와 같이, 객체에 엑세스한 인스턴스와 사용자 조작이 가해진 인스턴스가 다르고(S450), 엑세스된 객체와 사용자 조작이 가해진 객체도 서로 다른 경우(S500)이더라도, 객체 엑세스 시점과 사용자 조작이 가해진 시점이 한계치 이상 차이나는 경우, 서로 관련이 없는 것으로 판단하여 객체에 대한 엑세스를 허용할 수 있다(S550). 즉, 본 실시예에 따르면, 시간차를 고려하지 않고, 객체 엑세스와 객체에 대한 사용자 조작을 단순히 비교함으로써, 사용자 조작에 의한 정당한 객체 엑세스를 차단하는 것을 방지할 수 있는 효과가 있다.
한편, 본 발명의 몇몇 실시예는, 사용자 입력을 위한 GUI를 제공하는 프로세스와, 내부 로직을 수행하는 프로세스가 서로 다른 경우라도, 사용자 입력에 따른 정당한 데이터 엑세스는 차단하지 않는다. 몇몇 실시예들에서, 보안성 강화를 위해, 사용자 입력 대상 인스턴스와 객체 엑세스 인스턴스가 서로 다르더라도 객체 엑세스가 허용될 수 있는 인스턴스들을 리스트화하여 관리할 수 있다. 이에 대하여, 도 6을 참조하여 설명한다.
도 6에 도시된 바와 같이, 객체에 엑세스한 인스턴스와 사용자 조작이 가해진 인스턴스가 다르고(S450), 엑세스된 객체와 사용자 조작이 가해진 객체도 서로 다른 경우(S500)이더라도, 객체 엑세스 시점과 사용자 조작이 가해진 시점이 한계치 이상 차이 나는 경우, 서로 관련이 없는 것으로 판단하여 객체에 대한 엑세스를 허용할 수 있다(S550). 이 때, 바로 객체의 엑세스를 허용하는 것이 아니라, 객체에 엑세스한 인스턴스 및 사용자 조작이 가해진 인스턴스 중 적어도 하나가 기 저장된 인스턴스 리스트에 포함되어 있지 않다면(S560), 객체의 엑세스를 차단할 수 있다. 상기 인스턴스 리스트는, 실행 파일의 파일명, 실행 파일에 대한 특징 값, 실행 파일에 대한 해쉬 값 등, 인스턴스를 식별할 수 있는 다양한 정보로 구성될 수 있다.
즉, 상기 인스턴스 리스트는, 사용자 조작 인스턴스와 객체 엑세스 인스턴스가 서로 다르더라도 객체에 대한 엑세스가 허용되는 인스턴스들에 대한 정보가 포함되는데, 사용자 조작 인스턴스들의 리스트이거나, 객체 엑세스 인스턴스들의 리스트이거나, 사용자 조작 인스턴스 / 객체 엑세스 인스턴스 모두의 리스트일 수 있다.
도 6에는 인스턴스 리스트를 체크하는 단계(S560)가, 엑세스 시점과 사용자 조작이 가해진 시점이 한계치 이상 차이 나는지 여부를 확인하는 단계(S550) 이후에 실행되는 것으로 도시되어 있으나, 인스턴스 리스트 체크는, 도 4에 도시된 실시예에도 적용될 수 있다. 즉, 객체에 엑세스한 인스턴스와 사용자 조작이 가해진 인스턴스가 다르고(S450), 엑세스된 객체와 사용자 조작이 가해진 객체가 서로 같은 경우(S500)이더라도, 사용자 조작 인스턴스 및 객체 엑세스 인스턴스 중 적어도 하나가 기 저장된 인스턴스 리스트에 포함되어 있지 않다면, 객체의 엑세스가 차단될 수 있다(S600).
지금까지 도 1 내지 도 6을 참조하여 설명된 본 발명의 실시예에 따른 방법들은 컴퓨터가 읽을 수 있는 코드로 구현된 컴퓨터프로그램의 실행에 의하여 수행될 수 있다. 상기 컴퓨터프로그램은 인터넷 등의 네트워크를 통하여 제1 컴퓨팅 장치로부터 제2 컴퓨팅 장치에 전송되어 상기 제2 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 제2 컴퓨팅 장치에서 사용될 수 있다. 상기 제1 컴퓨팅 장치 및 상기 제2 컴퓨팅 장치는, 서버 장치, 데스크탑 피씨와 같은 고정식 컴퓨팅 장치, 노트북, 스마트폰, 태블릿 피씨와 같은 모바일 컴퓨팅 장치를 모두 포함한다.
상기 컴퓨터프로그램은, 컴퓨팅 장치와 결합하여, 엑세스 인스턴스의 엑세스 대상 객체에 대한 엑세스가 발생하는지 여부를 모니터링 하는 단계와, 사용자 접근성 관리 모듈에 의하여 생성되고, 사용자 조작 대상 객체에 대한 정보를 포함하는 사용자 조작 이벤트를 상기 사용자 접근성 관리 모듈로부터 제공받는 단계와, 상기 엑세스가 발생하고 상기 엑세스 대상 객체와 상기 사용자 조작 대상 객체가 상이한 경우, 상기 엑세스 대상 객체에 대한 엑세스 및 네트워크를 통한 외부 장치로의 송신 중 적어도 하나를 차단하는 단계를 실행시키기 위한 것이다. 상기 컴퓨터프로그램은 DVD-ROM, 플래시 메모리 장치 등의 기록매체에 저장된 것일 수 있다.
이하, 도 7을 참조하여, 본 발명의 다른 실시예에 따른 컴퓨팅 장치의 구성 및 동작을 설명한다. 도 7은 본 발명의 다른 실시예에 따른 데이터 무단 엑세스 차단 기능이 구비된 컴퓨팅 장치의 블록 구성도이다.
본 실시예에 따른, 컴퓨팅 장치는 사용자 어플리케이션(10), 모니터링 소프트웨어 및 운영 체제(40)가 각각 설치된 것이다. 상기 모니터링 소프트웨어는 객체 엑세스 정보 제공부(30) 및 엑세스 및 네트워크 송신 차단부(20)를 포함한다.
객체 엑세스 정보 제공부(30)는 API 후킹을 통하여 엑세스 인스턴스에 의한 객체의 엑세스를 감지한다. 객체 엑세스 정보 제공부(20)는 API 후킹 등에 의하여 상기 엑세스 인스턴스 내에 인젝션(injection)된 후킹 루틴(콜백 함수)일 수 있다. 상기 엑세스된 객체와, 사용자에 의하여 선택된 객체가 서로 다르면 상기 엑세스는 차단될 것이다.
사용자 입력이 GUI를 사용한 사용자 어플리케이션(10)에 가해지는 경우, 사용자 접근성 관리 모듈은, 상기 사용자 입력에 대한 정보를 포함하는 사용자 조작 이벤트를 엑세스 및 네트워크 송신 차단부(20)에 제공한다.
엑세스 및 네트워크 송신 차단부(20)는, 객체 엑세스 정보 제공부(30)와 데이터를 송수신하여, 객체에 대한 엑세스를 허용할 것인지 여부를 판정한다. 다른 실시예에서, 객체 엑세스 정보 제공부(30)가 엑세스 및 네트워크 송신 차단부(20)와 데이터를 송수신하여, 객체에 대한 엑세스를 허용할 것인지 여부를 판정할 수도 있다.
이미 설명한 바와 같이, 객체에 엑세스한 인스턴스와 사용자 조작이 가해진 인스턴스가 동일한 경우라면, 객체에 대한 엑세스가 허용된다.
또한, 객체에 엑세스한 인스턴스와 사용자 조작이 가해진 인스턴스가 상이하더라도, 엑세스된 객체의 명칭과, 사용자 조작에 의하여 선택된 객체의 명칭이 동일하다면, 객체에 대한 엑세스가 허용된다. 이 때, 보안성을 보완하기 위하여, 객체에 엑세스한 인스턴스와 사용자 조작이 가해진 인스턴스가 상이하더라도 객체에 대한 엑세스가 허용될 수 있는 인스턴스들의 목록이 관리될 수 있다.
또한, 객체에 엑세스한 인스턴스와 사용자 조작이 가해진 인스턴스가 상이하고, 엑세스 된 객체의 명칭과 사용자 조작에 의하여 선택된 객체의 명칭이 서로 다르더라도, 엑세스와 사용자 조작의 시점이 한계치 이상 차이나는 경우, 객체에 대한 엑세스가 허용된다.
상기 경우를 제외한 객체에 대한 엑세스는 차단된다. 객체 엑세스 정보 제공부(30), 즉 후킹 루틴(콜백 함수)은, 엑세스 차단이 결정된 경우, 후킹 대상 API가 실행되지 않도록 message discard, 콜백 함수 파라미터 수정 등의 조치를 취한다. 반대로, 객체에 대한 엑세스를 허용해야 하는 경우, 객체 엑세스 정보 제공부(30), 즉 후킹 루틴(콜백 함수)은, 후킹 대상 API 정상적으로 실행되도록 컨트롤을 후킹 대상 API로 넘겨준다.
도 8은 본 발명의 또 다른 실시예에 따른 데이터 무단 엑세스 차단 기능이 구비된 컴퓨팅 장치의 하드웨어 구성도이다.
도 8에 도시된 바와 같이, 본 실시예에 따른 데이터 무단 엑세스 차단 기능이 구비된 컴퓨팅 장치(50)는 하나 이상의 프로세서(503), 네트워크 인터페이스(508), 스토리지(509), 입출력 장치(507) 및 메모리(RAM)(505)를 포함할 수 있다. 프로세서(503), 네트워크 인터페이스(508), 스토리지(509), 메모리(505) 및 입출력 장치(507)는 시스템 버스(501)를 통하여 데이터를 송수신한다. 입출력 장치(507)는 키보드, 마우스, 터치 스크린 등의 입력 장치와 디스플레이 등의 출력 장치를 가리킨다.
스토리지(509)는 파일 등 객체의 데이터(591)를 저장한다. 상기 객체에 대한 스토리지(509) 상의 엑세스는, 상기 엑세스 대상 객체와 상기 사용자 조작 대상 객체가 상이하거나, 상기 엑세스가 발생하고 상기 엑세스 대상 객체에 대한 사용자 조작 이벤트가 미제공된 경우인지 여부에 따라 허용되거나 차단 될 수 있다.
메모리(505)에는 실행 대상 오퍼레이션들이 로드 된다. 하나 이상의 사용자 어플리케이션(550), 스토리지(509)에 저장되는 의심 엑세스 차단용 컴퓨터프로그램(590)이 설치된 결과로 로드되는 콜백 함수(552), 의심 엑세스 차단 루틴(554)이 메모리(505)에 로드 된다. 실행 대상 오퍼레이션 뿐만 아니라, 신속한 데이터 입출력을 위해 메모리(505)에 로드되는 객체도 존재할 수 있다. 이 경우, 상기 객체의 데이터도 메모리(505)에 저장될 것이다.
프로세서(503)는 스토리지에 저장되는 의심 엑세스 차단용 컴퓨터프로그램(590)을 설치한다. 상기 컴퓨터 프로그램은, 엑세스 인스턴스의, 상기 스토리지 상의 엑세스 대상 객체에 대한, 엑세스가 발생하는지 여부를 모니터링 하는 오퍼레이션과, 사용자 접근성 관리 모듈에 의하여 생성되고, 사용자 조작 대상 객체에 대한 정보를 포함하는 사용자 조작 이벤트를 상기 사용자 접근성 관리 모듈로부터 제공받는 오퍼레이션과, 상기 엑세스가 발생하고 상기 엑세스 대상 객체와 상기 사용자 조작 대상 객체가 상이한 경우, 상기 엑세스 대상 객체에 대한 엑세스 및 상기 네트워크 인터페이스를 통한 데이터 송신 중 적어도 하나를 차단하는 오퍼레이션을 포함한다.
프로세서는, 상기 프로그램의 설치 결과 메모리(505)에 로드 되는, 객체 엑세스 감지용 콜백 함수(552) 및 의심 엑세스 차단 루틴(554)을 실행한다.
이하, 본 실시예에 따른 데이터 무단 엑세스 차단 기능이 구비된 컴퓨팅 장치(50)의 동작을 설명한다.
의심 엑세스 차단 루틴(554)은 사용자 어플리케이션(550)에 사용자 조작이 가해지는 경우, 사용자 조작 대상 객체에 대한 정보를 포함하는 사용자 조작 이벤트를 사용자 접근성 관리 모듈로부터 제공받는다. 상기 사용자 접근성 관리 모듈은 사용자 어플리케이션(550) 내부에 포함된 루틴이거나, 컴퓨팅 장치(50)의 운영 체제(미도시) 내부에 포함된 루틴일 수 있다.
콜백 함수(552)는 스토리지(509), 메모리(505)에 대한 데이터 엑세스를 위한 함수나, 네트워크 인트페이스(508)를 통한 네트워크 송신을 위한 함수 등을 대상으로 API 후킹이 세팅된 결과, 상기 후킹 대상 API가 호출 될 때 함께 호출되는 함수이다. 콜백 함수(552)는 객체에 대한 엑세스를 감지하고, 의심 엑세스 차단 루틴(554)은, 상기 엑세스가 사용자 조작에 의한 것인지 여부를 판정한다.
이미 설명한 바와 같이, 객체에 엑세스한 인스턴스와 사용자 조작이 가해진 인스턴스가 동일한 경우라면, 객체에 대한 엑세스가 허용된다. 또한, 객체에 엑세스한 인스턴스와 사용자 조작이 가해진 인스턴스가 상이하더라도, 엑세스된 객체의 명칭과, 사용자 조작에 의하여 선택된 객체의 명칭이 동일하다면, 객체에 대한 엑세스가 허용된다. 이 때, 보안성을 보완하기 위하여, 객체에 엑세스한 인스턴스와 사용자 조작이 가해진 인스턴스가 상이하더라도 객체에 대한 엑세스가 허용될 수 있는 인스턴스들의 목록이 관리될 수 있다. 또한, 객체에 엑세스한 인스턴스와 사용자 조작이 가해진 인스턴스가 상이하고, 엑세스 된 객체의 명칭과 사용자 조작에 의하여 선택된 객체의 명칭이 서로 다르더라도, 엑세스와 사용자 조작의 시점이 한계치 이상 차이나는 경우, 객체에 대한 엑세스가 허용된다.
반대로, 메모리 내 객체에 대한 엑세스(54), 스토리지 내 객체에 대한 엑세스(53), 네트워크를 통한 객체 송신(52)이 허용될 수 있다.
상기 경우를 제외한 객체에 대한 엑세스는 차단된다(51).
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다.

Claims (11)

  1. 엑세스 인스턴스의 엑세스 대상 객체에 대한 엑세스가 발생하는지 여부를 모니터링 하는 단계;
    사용자 접근성 관리 모듈에 의하여 생성되고, 사용자 조작 대상 객체에 대한 정보를 포함하는 사용자 조작 이벤트를 상기 사용자 접근성 관리 모듈로부터 제공받는 단계; 및
    상기 엑세스가 발생하고 상기 엑세스 대상 객체와 상기 사용자 조작 대상 객체가 상이하거나, 상기 엑세스가 발생하고 상기 엑세스 대상 객체에 대한 사용자 조작 이벤트가 미제공된 경우, 상기 엑세스 대상 객체에 대한 엑세스 및 네트워크를 통한 외부 장치로의 송신 중 적어도 하나를 차단하는 단계를 포함하는,
    데이터 무단 엑세스 차단 방법.
  2. 제1 항에 있어서,
    상기 사용자 조작 이벤트는 상기 사용자 조작 대상 객체를 가지는 윈도우에 대한 정보를 더 포함하고,
    상기 엑세스 대상 객체에 대한 엑세스 및 네트워크를 통한 외부 장치로의 송신 중 적어도 하나를 차단하는 단계는,
    상기 엑세스 인스턴스의 식별자인 제1 식별자를 얻는 단계;
    상기 윈도우에 대한 정보로부터, 사용자 조작 대상 인스턴스의 식별자인 제2 식별자를 얻는 단계; 및
    상기 제1 식별자와 상기 제2 식별자가 상이한 경우에 한하여, 상기 엑세스 대상 객체와 상기 사용자 조작 대상 객체가 상이한 경우 상기 엑세스 대상 객체에 대한 엑세스 및 네트워크를 통한 외부 장치로의 송신 중 적어도 하나를 차단하는 단계를 포함하는,
    데이터 무단 엑세스 차단 방법.
  3. 제2 항에 있어서,
    상기 제1 식별자와 상기 제2 식별자가 상이한 경우에 한하여, 상기 엑세스 대상 객체와 상기 사용자 조작 대상 객체가 상이한 경우 상기 엑세스 대상 객체에 대한 엑세스 및 네트워크를 통한 외부 장치로의 송신 중 적어도 하나를 차단하는 단계는,
    상기 제1 식별자와 상기 제2 식별자가 상이하더라도, 상기 엑세스 대상 객체와 상기 사용자 조작 대상 객체가 동일한 것으로 판단된 경우, 상기 엑세스 인스턴스와 상기 사용자 조작 대상 인스턴스가 서로 관련된 것으로 판정하여 상기 엑세스 대상 객체에 대한 엑세스 또는 네트워크를 통한 외부 장치로의 송신을 허용하는 단계를 포함하는,
    데이터 무단 엑세스 차단 방법.
  4. 제3 항에 있어서,
    상기 제1 식별자와 상기 제2 식별자가 상이하더라도, 상기 엑세스 대상 객체와 상기 사용자 조작 대상 객체가 동일한 것으로 판단된 경우, 상기 엑세스 인스턴스와 상기 사용자 조작 대상 인스턴스가 서로 관련된 것으로 판정하여 상기 엑세스 대상 객체에 대한 엑세스 또는 네트워크를 통한 외부 장치로의 송신을 허용하는 단계는,
    상기 제1 식별자와 상기 제2 식별자가 상이하고 상기 엑세스 대상 객체와 상기 사용자 조작 대상 객체가 동일하더라도, 상기 사용자 조작 대상 인스턴스 및 엑세스 인스턴스 중 적어도 하나가 기 저장된 인스턴스 리스트에 포함된 것인 경우에 한하여 상기 엑세스 대상 객체에 대한 엑세스 또는 네트워크를 통한 외부 장치로의 송신을 허용하는 단계를 포함하는,
    데이터 무단 엑세스 차단 방법.
  5. 제1 항에 있어서,
    상기 엑세스 대상 객체에 대한 엑세스 및 네트워크를 통한 외부 장치로의 송신 중 적어도 하나를 차단하는 단계는,
    상기 엑세스가 발생하고 상기 엑세스 대상 객체와 상기 사용자 조작 대상 객체가 동일하더라도, 상기 엑세스 발생 시점과 상기 사용자 조작 이벤트 제공 시점이 기 지정된 한계치 이상 차이나는 경우에는 상기 엑세스 대상 객체에 대한 엑세스 및 네트워크를 통한 외부 장치로의 송신 중 적어도 하나를 차단하는 단계를 포함하는,
    데이터 무단 엑세스 차단 방법.
  6. 제1 항에 있어서,
    상기 사용자 접근성 관리 모듈은, 사용자의 조작으로 인하여 발생되는 이벤트 만을 생성하는,
    데이터 무단 엑세스 차단 방법.
  7. 제1 항에 있어서,
    상기 사용자 접근성 관리 모듈은, 응용 어플리케이션에 의하여 제공 되는 사용자 인터페이스가 장애인 접근성을 보장하도록 지원하는 모듈인,
    데이터 무단 엑세스 차단 방법.
  8. 제1 항에 있어서,
    상기 사용자 접근성 관리 모듈은, MSAA(MicroSoft Active Accessibility) 모듈인,
    데이터 무단 엑세스 차단 방법.
  9. 제8 항에 있어서,
    상기 사용자 조작 이벤트는,
    EVENT_OBJECT_FOCUS, EVENT_OBJECT_SELECTION, EVENT_OBJECT_SELECTIONADD, EVENT_OBJECT_VALUECHANGE, EVENT_SYSTEM_DRAGDROPSTART 및 EVENT_SYSTEM_DRAGDROPEND를 포함하는,
    데이터 무단 엑세스 차단 방법.
  10. 컴퓨팅 장치와 결합하여,
    엑세스 인스턴스의 엑세스 대상 객체에 대한 엑세스가 발생하는지 여부를 모니터링 하는 단계;
    사용자 접근성 관리 모듈에 의하여 생성되고, 사용자 조작 대상 객체에 대한 정보를 포함하는 사용자 조작 이벤트를 상기 사용자 접근성 관리 모듈로부터 제공받는 단계; 및
    상기 엑세스가 발생하고 상기 엑세스 대상 객체와 상기 사용자 조작 대상 객체가 상이한 경우, 상기 엑세스 대상 객체에 대한 엑세스 및 네트워크를 통한 외부 장치로의 송신 중 적어도 하나를 차단하는 단계를 실행시키기 위하여 기록매체에 저장된,
    컴퓨터프로그램.
  11. 네트워크 인터페이스;
    하나 이상의 프로세서;
    상기 프로세서에 의하여 수행 되는 컴퓨터 프로그램을 로드(load) 하는 메모리; 및
    하나 이상의 객체에 대한 데이터를 저장하는 스토리지를 포함하되,
    상기 컴퓨터 프로그램은,
    엑세스 인스턴스의, 상기 스토리지 상의 엑세스 대상 객체에 대한, 엑세스가 발생하는지 여부를 모니터링 하는 오퍼레이션;
    사용자 접근성 관리 모듈에 의하여 생성되고, 사용자 조작 대상 객체에 대한 정보를 포함하는 사용자 조작 이벤트를 상기 사용자 접근성 관리 모듈로부터 제공받는 오퍼레이션; 및
    상기 엑세스가 발생하고 상기 엑세스 대상 객체와 상기 사용자 조작 대상 객체가 상이한 경우, 상기 엑세스 대상 객체에 대한 엑세스 및 상기 네트워크 인터페이스를 통한 데이터 송신 중 적어도 하나를 차단하는 오퍼레이션을 포함하는,
    데이터 무단 엑세스 차단 기능이 구비된 컴퓨팅 장치.
PCT/KR2015/007913 2015-05-28 2015-07-29 데이터 무단 엑세스 차단 방법 및 그 기능이 구비된 컴퓨팅 장치 WO2016190485A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2015-0074751 2015-05-28
KR1020150074751A KR101716690B1 (ko) 2015-05-28 2015-05-28 데이터 무단 엑세스 차단 방법 및 그 기능이 구비된 컴퓨팅 장치

Publications (1)

Publication Number Publication Date
WO2016190485A1 true WO2016190485A1 (ko) 2016-12-01

Family

ID=57393270

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2015/007913 WO2016190485A1 (ko) 2015-05-28 2015-07-29 데이터 무단 엑세스 차단 방법 및 그 기능이 구비된 컴퓨팅 장치

Country Status (4)

Country Link
US (1) US10063558B2 (ko)
KR (1) KR101716690B1 (ko)
CN (1) CN106203148B (ko)
WO (1) WO2016190485A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10262393B2 (en) * 2016-12-29 2019-04-16 Intel Corporation Multi-sample anti-aliasing (MSAA) memory bandwidth reduction for sparse sample per pixel utilization
US11144395B2 (en) 2019-04-08 2021-10-12 International Business Machines Corporation Automatic data preservation for potentially compromised encoded data slices
US11599659B2 (en) 2020-02-18 2023-03-07 BluBracket, Inc. Documenting and annotating code activities

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080209348A1 (en) * 2007-02-23 2008-08-28 Mark Grechanik Composing integrated systems using GUI-based applications and web services
US20100071063A1 (en) * 2006-11-29 2010-03-18 Wisconsin Alumni Research Foundation System for automatic detection of spyware
WO2011105659A1 (ko) * 2010-02-23 2011-09-01 주식회사 이세정보 프로세스의 행위 분석을 통한 유해 프로그램을 실시간으로 탐지하고 차단하는 시스템, 방법, 프로그램 및 기록매체
US20110320816A1 (en) * 2009-03-13 2011-12-29 Rutgers, The State University Of New Jersey Systems and method for malware detection
US20120110666A1 (en) * 2005-10-06 2012-05-03 Goldpark Foundation L.L.C. Detecting surreptitious spyware

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8271778B1 (en) * 2002-07-24 2012-09-18 The Nielsen Company (Us), Llc System and method for monitoring secure data on a network
US7814021B2 (en) * 2003-01-23 2010-10-12 Verdasys, Inc. Managed distribution of digital assets
US20070136790A1 (en) * 2004-02-09 2007-06-14 Hoffman George E Method and system for a security model for a computing device
US8347373B2 (en) * 2007-05-08 2013-01-01 Fortinet, Inc. Content filtering of remote file-system access protocols
KR100676912B1 (ko) 2006-10-09 2007-02-01 심재승 불법적인 파일 액세스 및 전송 차단 장치
US8938811B2 (en) * 2011-06-14 2015-01-20 Panasonic Intellectual Property Management Co., Ltd. Information processing apparatus, method, program, and integrated circuit
CN102663321B (zh) * 2012-04-24 2016-01-13 百度在线网络技术(北京)有限公司 用于软件的安全性增强系统及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120110666A1 (en) * 2005-10-06 2012-05-03 Goldpark Foundation L.L.C. Detecting surreptitious spyware
US20100071063A1 (en) * 2006-11-29 2010-03-18 Wisconsin Alumni Research Foundation System for automatic detection of spyware
US20080209348A1 (en) * 2007-02-23 2008-08-28 Mark Grechanik Composing integrated systems using GUI-based applications and web services
US20110320816A1 (en) * 2009-03-13 2011-12-29 Rutgers, The State University Of New Jersey Systems and method for malware detection
WO2011105659A1 (ko) * 2010-02-23 2011-09-01 주식회사 이세정보 프로세스의 행위 분석을 통한 유해 프로그램을 실시간으로 탐지하고 차단하는 시스템, 방법, 프로그램 및 기록매체

Also Published As

Publication number Publication date
KR101716690B1 (ko) 2017-03-15
CN106203148B (zh) 2021-09-17
CN106203148A (zh) 2016-12-07
KR20160139588A (ko) 2016-12-07
US20160352748A1 (en) 2016-12-01
US10063558B2 (en) 2018-08-28

Similar Documents

Publication Publication Date Title
US8850517B2 (en) Runtime risk detection based on user, application, and system action sequence correlation
WO2015178578A1 (ko) 패치파일 분석시스템과 분석방법
US8732839B2 (en) Automatically protecting computer systems from attacks that exploit security vulnerabilities
US8079085B1 (en) Reducing false positives during behavior monitoring
US20110239306A1 (en) Data leak protection application
WO2015056885A1 (ko) 안드로이드 악성 애플리케이션의 탐지장치 및 탐지방법
WO2017213473A1 (en) Method for managing files and apparatus using the same
WO2014027859A1 (en) Device and method for processing transaction request in processing environment of trust zone
WO2013168951A1 (ko) 악성 파일 검사 장치 및 방법
WO2018212474A1 (ko) 독립된 복원영역을 갖는 보조기억장치 및 이를 적용한 기기
WO2019022573A1 (en) METHODS AND APPARATUS FOR MONITORING AUTHORIZED MASKED SENSITIVE APPLICATION BEHAVIOR DURING EXECUTION
WO2016190485A1 (ko) 데이터 무단 엑세스 차단 방법 및 그 기능이 구비된 컴퓨팅 장치
WO2019039730A1 (ko) 랜섬웨어 방지 장치 및 방법
WO2017131355A1 (ko) 시스템 환경 및 사용자 행동 분석 기반의 자기 방어 보안 장치와 이의 작동 방법
EP3646180A1 (en) Camera usage notification
WO2014042344A1 (ko) 디버그 이벤트를 이용한 악성 쉘 코드 탐지 장치 및 방법
WO2014185627A1 (ko) 데이터 프로세싱 시스템 보안 장치와 보안방법
WO2014168406A1 (ko) 메모리 보호기능 우회 공격 진단 장치 및 방법
WO2023229066A1 (ko) 리버싱 엔진 기반의 문서 행위를 판단하기 위한 방법 및 이를 위한 장치
WO2011037321A2 (ko) 윈도우즈 커널 변조 탐지방법
WO2017115976A1 (ko) 접근성 이벤트를 이용한 유해 사이트 차단 방법 및 장치
Aldoseri et al. A Tale of Four Gates: Privilege Escalation and Permission Bypasses on Android Through App Components
WO2014030978A1 (ko) 이동식 저장매체 보안시스템 및 그 방법
WO2019156279A1 (ko) 랜부팅 환경 기반 파일 보안 및 중앙화를 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
WO2024063171A1 (ko) 자식 프로세스의 악성 행위를 검사하기 위한 방법 및 이를 위한 장치

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

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

Country of ref document: EP

Kind code of ref document: A1