KR101343613B1 - Apparatus and method for controlling file flow using thread in kernal mode, and program storing medium for executing the method - Google Patents

Apparatus and method for controlling file flow using thread in kernal mode, and program storing medium for executing the method Download PDF

Info

Publication number
KR101343613B1
KR101343613B1 KR1020110100821A KR20110100821A KR101343613B1 KR 101343613 B1 KR101343613 B1 KR 101343613B1 KR 1020110100821 A KR1020110100821 A KR 1020110100821A KR 20110100821 A KR20110100821 A KR 20110100821A KR 101343613 B1 KR101343613 B1 KR 101343613B1
Authority
KR
South Korea
Prior art keywords
file
thread
input
flow
user
Prior art date
Application number
KR1020110100821A
Other languages
Korean (ko)
Other versions
KR20130036624A (en
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 KR1020110100821A priority Critical patent/KR101343613B1/en
Publication of KR20130036624A publication Critical patent/KR20130036624A/en
Application granted granted Critical
Publication of KR101343613B1 publication Critical patent/KR101343613B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

커널모드에서 스레드를 이용하여 파일 흐름을 제어하는 장치 및 방법에 관한 것으로, 특정 인터넷 사이트, 웹메일, 이메일, 웹하드, 메신저 등의 각종 애플리케이션에서 파일 I/O가 발생하면 커널모드에서 스레드 시작 주소를 수집하여 이용하여 파일 흐름을 제어하는 기술에 관한 것이다. 대상 애플리케이션 프로세스에서 사용자의 파일 입출력 관련 동작 수행시 생성된 스레드(Thread)의 시작 주소를 수집하는 스레드주소수집부 및 스레드주소수집부에 의해 수집된 스레드(Thread)의 시작 주소를 분석하여 파일의 흐름을 제어하는 파일흐름제어부를 포함함으로써 특정 애플리케이션에 종속됨이 없이 특정 인터넷 사이트, 웹메일, 이메일, 웹하드, 메신저 등의 각종 애플리케이션에서 발생하는 파일 흐름을 효과적으로 제어할 수 있다.The present invention relates to a device and a method for controlling a file flow using a thread in kernel mode. When a file I / O occurs in various applications such as a specific Internet site, webmail, email, web hard, or messenger, the thread start address in kernel mode. It relates to a technique for controlling the file flow by using the collected. The flow of files by analyzing the thread address collector and the thread start address collected by the thread address collector when the target application process performs the user's file I / O related operations. By including a file flow control unit for controlling the file flow can be effectively controlled in a variety of applications, such as a specific Internet site, webmail, email, web hard, messenger, without being dependent on a specific application.

Description

커널모드에서 스레드를 이용한 파일 흐름 제어 장치, 방법 및 프로그램 기록매체{APPARATUS AND METHOD FOR CONTROLLING FILE FLOW USING THREAD IN KERNAL MODE, AND PROGRAM STORING MEDIUM FOR EXECUTING THE METHOD}Apparatus, method and program recording medium for controlling file flow using threads in kernel mode {APPARATUS AND METHOD FOR CONTROLLING FILE FLOW USING THREAD IN KERNAL MODE, AND PROGRAM STORING MEDIUM FOR EXECUTING THE METHOD}

대상 애플리케이션에서 파일 I/O가 발생하면 커널 모드에서 스레드 시작 주소를 이용하여 파일 흐름을 제어하는 기술에 관한 것이다.When file I / O occurs in a target application, it relates to a technique for controlling file flow using a thread start address in kernel mode.

최근, 개인 사용자의 컴퓨터가 대용량화되고 동시에 처리 속도가 향상됨에 따라 회사의 영업 비밀 자료, 개인정보가 포함된 자료와 같이 각종 중요문서들이 컴퓨터에 저장되어 보관되고 있다. 또한, 인터넷 통신 기술의 발달로 일반 사용자들은 각종 이메일, 메신저 등 각종 애플리케이션을 통해 파일을 다른 사용자들과 주고 받는다. 따라서, 컴퓨터에 저장된 각종 중요문서들은 이러한 애플리케이션을 통해 일반 사용자들에 의해 외부로 유출될 위험에 노출되어 있는 실정이다.Recently, as a computer of an individual user becomes larger and at the same time, the processing speed is improved, various important documents such as the company's trade secret data and data containing personal information are stored and stored in the computer. In addition, with the development of Internet communication technology, general users exchange files with other users through various applications such as email and messenger. Therefore, various important documents stored in the computer are exposed to the risk of being leaked to the outside by general users through such applications.

일반적으로, 사용자들이 메일서버를 통해 첨부파일을 주고 받는 경우 첨부파일이 전송되는 최종단인 라우터 또는 스위치 허브를 통해 패킷을 수집하여 분석한 후 첨부파일을 모니터링하는 방법을 이용하거나, 방화벽과 같이 게이트웨이에서 송신이나 수신 패킷의 URL(Uniform Resource Locator), IP(Internet Protocol) 및 포트(Port)를 차단하고 인터넷접속을 차단하여 첨부파일의 전송을 차단하는 방법을 이용한다. 그러나, 일반적인 게이트웨이에서 정보유출방지 방법은 메신저나 웹메일 등의 각종 애플리케이션이나 차단 대상 사이트들에 종속되는 문제가 발생하고, 휴대용 컴퓨터를 이용하여 보안이 적용되지 않은 지역에서 통신을 하여 파일을 전송하는 경우에는 사용자 컴퓨터에 유출방지 시스템이 설치되었다 하더라도 파일의 전송을 방지할 수 없는 문제점이 있었다. 대한민국 공개 특허 제10-2010-0048231호, 대한민국 등록 특허 제10-0999977호는 이메일 등을 통해 정보 유출이 되는 것을 방지하는 기술에 대해 개시되어 있다.In general, when users send and receive attachments through the mail server, the packet is collected and analyzed through the router or switch hub, which is the end of the attachment, and then the attachment is monitored or gateways such as firewalls are used. Blocks the transmission of incoming or outgoing attachments by blocking the URL (Uniform Resource Locator), IP (Internet Protocol) and port of the transmission or reception packet and blocking the Internet access. However, in the general gateway, the information leakage prevention method has a problem that depends on various applications such as messenger or webmail, or sites to be blocked, and transmits a file by communicating in an unprotected area using a portable computer. In this case, even if the leak prevention system is installed on the user computer, there was a problem that can not prevent the transmission of the file. Republic of Korea Patent Publication No. 10-2010-0048231, Republic of Korea Patent Registration No. 10-0999977 discloses a technique for preventing information leakage through e-mail and the like.

커널 모드에서 스레드 시작 주소를 이용하여 특정 애플리케이션에 종속됨이 없이 특정 인터넷 사이트, 웹메일, 이메일, 웹하드, 메신저 등의 각종 애플리케이션에서 발생하는 파일 흐름을 효과적으로 제어하기 위한 방법을 제공하기 위함이다. This is to provide a method to effectively control the file flow occurring in various applications such as a specific Internet site, webmail, email, webhard, and messenger without using a thread start address in kernel mode in a specific application.

각종 애플리케이션에서 발생하는 파일 흐름을 제어하여 파일 전송 등에 의한 개인정보나 기밀정보의 유출을 효과적으로 방지하기 위한 방법을 제공하기 위함이다.This is to provide a method for effectively preventing the leakage of personal information or confidential information by file transfer by controlling file flow occurring in various applications.

일 양상에 따른 커널모드에서 스레드를 이용하여 파일 흐름을 제어하는 장치는 대상 애플리케이션 프로세스에서 사용자의 파일 입출력 관련 동작 수행시 생성된 스레드(Thread)의 시작 주소를 수집하는 스레드주소수집부 및 스레드주소수집부에 의해 수집된 스레드(Thread)의 시작 주소를 분석하여 파일의 흐름을 제어하는 파일흐름제어부를 포함한다.According to an aspect, an apparatus for controlling file flow using a thread in kernel mode may include: a thread address collector and a thread address collector configured to collect a start address of a thread generated when a user performs a file input / output operation in a target application process; It includes a file flow control unit for controlling the flow of the file by analyzing the start address of the thread (thread) collected by the unit.

추가적인 양상에 따르면, 파일흐름제어부는 스레드주소수집부에 의해 수집된 스레드의 시작 주소를 바탕으로 스레드가 대상 애플리케이션에서 사용자에 의해 파일 입출력 동작이 수행되어 생성된 것인지를 판단하는 스레드주소분석부 및 스레드주소분석부의 판단결과 그 스레드가 사용자에 의해 파일 입출력 동작이 수행되어 생성되었으면 대상 파일의 입출력을 차단하는 파일차단부를 포함할 수 있다.According to an additional aspect, the file flow controller may determine whether a thread is generated by performing a file input / output operation by a user in a target application based on a start address of a thread collected by a thread address collector, and a thread. As a result of the determination of the address analyzer, the thread may include a file blocking unit that blocks input and output of a target file when a file input / output operation is performed by a user.

추가적인 양상에 따르면, 파일흐름제어부는 스레드주소분석부에 의해 그 스레드가 사용자에 의해 파일 입출력 동작이 수행되어 생성된 것으로 판단되면 그 파일이 차단 대상 파일인지를 판단하는 차단대상판단부를 더 포함할 수 있다.According to an additional aspect, the file flow controller may further include a blocking target determining unit determining whether the file is a blocking file when the thread is determined to be generated by a user by performing a file input / output operation by the thread address analyzer. have.

이때, 차단대상판단부는 그 파일의 내용에 개인정보가 포함되어 있는지를 검색하여 개인정보가 포함되어 있는 경우 차단 대상 파일로 판단할 수 있다.In this case, the blocking target determining unit may search whether the content of the file includes personal information and determine that the blocking target file is included in the case where the personal information is included.

또한, 다른 양상에 따르면, 대상 애플리케이션 프로세스별로 사용자에 의해 파일 입출력 동작이 수행될 때 생성되는 스레드 정보를 저장하고 있는 스레드데이터베이스를 더 포함할 수 있고, 스레드주소분석부는 수집된 스레드 시작 주소 정보와 대응되는 스레드 정보가 스레드데이터베이스에 존재하는 경우 사용자에 의해 파일 입출력 동작이 수행되어 생성된 것이라고 판단할 수 있다.According to another aspect, the method may further include a thread database that stores thread information generated when a file input / output operation is performed by a user for each target application process, and the thread address analyzer may correspond to the collected thread start address information. If the thread information exists in the thread database, it may be determined that the file input / output operation is performed by the user.

이때, 스레드 정보는 대상 애플리케이션별 프로세스별로 스레드 시작 주소 정보와 대응되는 동적 링크 라이브러리(Dynamic Linked Library, DLL)의 연결 관계를 포함할 수 있다.In this case, the thread information may include a connection relationship between a dynamic link library (Dynamic Linked Library, DLL) corresponding to the thread start address information for each target application process.

일 양상에 따른 커널모드에서 스레드를 이용하여 파일 흐름을 제어하는 방법은, 대상 애플리케이션 프로세스에서 사용자의 파일 입출력 관련 동작 수행시 생성된 스레드(Thread)의 시작 주소를 수집하는 단계 및 수집된 스레드(Thread)의 시작 주소를 분석하여 파일의 흐름을 제어하는 단계를 포함한다.According to an aspect of the present invention, a method of controlling file flow using a thread in kernel mode includes collecting a starting address of a thread generated when a user performs a file input / output related operation in a target application process, and collecting the thread. Controlling the flow of the file by analyzing the starting address

추가적인 양상에 따르면, 파일 흐름을 제어하는 단계는 수집된 스레드의 시작 주소를 분석하여 그 스레드가 대상 애플리케이션에서 사용자에 의해 파일 입출력 동작이 수행되어 생성된 것인지를 판단하는 스레드 시작 주소 분석 단계 및 판단 결과 스레드가 사용자에 의해 파일 입출력 동작이 수행되어 생성된 것으로 판단되면 그 파일의 입출력을 차단하는 단계를 포함할 수 있다.According to a further aspect, the controlling of the file flow may include analyzing a starting address of a collected thread to determine whether the thread is generated by performing a file input / output operation by a user in a target application and determining a result of the thread starting address. If the thread determines that the file input / output operation has been performed by the user, the thread may block input / output of the file.

추가적인 양상에 따르면, 파일 입출력을 차단하는 단계는 판단 결과 스레드가 사용자에 의해 파일 입출력 동작이 수행되어 생성된 것으로 판단되면 그 파일이 차단 대상 파일인지를 판단하는 단계를 포함할 수 있다.According to an additional aspect, the blocking of the file input / output may include determining whether the file is a blocking target file when it is determined that the thread is generated by performing a file input / output operation by the user.

추가적인 양상에 따르면, 차단 대상 파일인지 판단하는 단계는 그 파일에 개인정보가 존재하는지를 검색하여 개인정보가 존재하는 경우 차단 대상 파일로 판단할 수 있다.According to an additional aspect, the step of determining whether the file to be blocked may search whether the personal information exists in the file and determine that the file to be blocked when the personal information exists.

또한, 다른 양상에 따르면, 스레드 시작 주소 분석 단계는 수집된 스레드 시작 주소 정보와 대응되는 스레드 정보가 스레드데이터베이스에 존재하는 경우 사용자에 의해 파일 입출력 동작이 수행되어 생성된 것이라고 판단할 수 있다.According to another aspect, the thread start address analysis step may determine that the file input / output operation is performed by the user when the thread information corresponding to the collected thread start address information exists in the thread database.

일 양상에 따르면, 프로그램이 기록된 컴퓨터 판독 가능한 기록매체는 전술한 바와 같은 커널모드에서 스레드를 이용하여 파일 흐름을 제어하는 방법을 실행시키기 위한 프로그램이 수록될 수 있다.According to an aspect, a computer-readable recording medium having recorded thereon a program may include a program for executing a method of controlling file flow using a thread in kernel mode as described above.

커널 모드에서 스레드 시작 주소를 이용함으로써 특정 애플리케이션에 종속되지 않고 특정 인터넷 사이트, 웹메일, 이메일, 웹하드, 메신저 등의 각종 애플리케이션에서 발생하는 파일 흐름을 효과적으로 제어할 수 있다.By using the thread start address in kernel mode, you can effectively control the file flow that occurs in various applications such as Internet sites, webmail, email, webhard, and messengers without being tied to a specific application.

각종 애플리케이션에서 발생하는 파일 흐름을 효과적으로 제어하여 파일 전송 등에 의한 개인정보나 기밀정보의 유출을 방지할 수 있다.By effectively controlling the file flow generated in various applications, it is possible to prevent the leakage of personal or confidential information by file transfer.

도 1은 일실시예에 따른 커널모드에서 스레드를 이용하여 파일 흐름을 제어하는 장치의 블럭도이다.
도 2는 도 1의 실시예에 따른 파일 흐름 제어 장치의 상세 블럭도이다.
도 3은 일실시예에 따른 커널모드에서 스레드를 이용하여 파일 흐름을 제어하는 방법의 흐름도이다.
도 4는 도 3의 실시예에 따른 파일 흐름 제어하는 단계의 상세 흐름도이다.
1 is a block diagram of an apparatus for controlling file flow using a thread in kernel mode, according to an exemplary embodiment.
FIG. 2 is a detailed block diagram of a file flow control apparatus according to the embodiment of FIG. 1.
3 is a flowchart of a method of controlling file flow using a thread in kernel mode, according to an exemplary embodiment.
4 is a detailed flowchart of a file flow control step according to the embodiment of FIG. 3.

기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
The details of other embodiments are included in the detailed description and drawings. BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention, and the manner of achieving them, will be apparent from and elucidated with reference to the embodiments described hereinafter in conjunction with the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. To fully disclose the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout the specification.

이하, 본 발명의 실시예들에 따른 커널모드에서 스레드를 이용하여 파일 흐름을 제어하는 장치, 방법 및 그 방법을 실행시키기 위한 프로그램이 수록된 기록매체를 도면들을 참고하여 자세히 설명하도록 한다.Hereinafter, an apparatus, a method for controlling file flow using a thread in kernel mode according to embodiments of the present invention, and a recording medium including a program for executing the method will be described in detail with reference to the drawings.

도 1은 일실시예에 따른 커널모드에서 스레드를 이용하여 파일 흐름을 제어하는 장치의 블럭도이다. 도 1에 도시된 바와 같이 커널모드(Kernel Mode)에서 스레드(Thread)를 이용하여 파일 흐름을 제어하는 장치(200)는 스레드주소수집부(210)와 파일흐름제어부(220)를 포함한다. 스레드주소수집부(210)는 대상 애플리케이션이 실행되어 사용자에 의해 파일 입출력 동작이 수행되어 그 대상 애플리케이션 프로세스에 의해 파일 입출력 관련 동작을 수행하기 위한 스레드(Thread)가 생성되면 해당 스레드의 시작 주소를 수집한다. 1 is a block diagram of an apparatus for controlling file flow using a thread in kernel mode, according to an exemplary embodiment. As shown in FIG. 1, an apparatus 200 for controlling file flow using a thread in kernel mode includes a thread address collector 210 and a file flow controller 220. The thread address collector 210 collects a start address of a thread when a target application is executed and a file I / O operation is performed by a user and a thread for performing file I / O related operation is generated by the target application process. do.

프로세스(process)란 여러 분야에서 과정(過程) 또는 처리(處理)라는 뜻으로 사용되는 용어로, 컴퓨터 분야에서는 ‘실행중인 프로그램’이라는 뜻으로 쓰인다. 1960년대 중반 멀틱스(Multics:multiplexed information and computing service) 시스템을 설계한 벨전화연구소의 연구원들이 처음 사용했다고 알려져 있다. 프로그램 또는 그 일부를 뜻하기도 하고, 데이터의 입력이나 출력 등을 조작하거나 처리하는 것을 말하기도 한다. 부모프로세스(parent process)라는 상위계층과 자식프로세스(child process)라는 하위계층이 존재한다. 부모프로세스는 프로그램이나 명령어에 의해 시작되며, 자식프로세스는 부모프로세스에 의해 만들어지는 것을 말한다. 하나의 부모프로세스는 여러 개의 자식프로세스를 관리하는데, 여러 개의 자식프로세스가 하나의 CPU에서 동시에 처리되는 것처럼 보이는 것을 멀티태스킹(multitasking)이라고 한다(참조: 네이버백과사전).Process is a term used in various fields to mean process or process. In the computer field, it is used to mean 'running program.' It is known that it was first used by researchers at the Bell Telephone Research Institute, which designed the Multics (multiplexed information and computing service) system in the mid-1960s. It can mean a program or part of it, and it can also be used to manipulate or process data input or output. There is a higher layer called the parent process and a lower layer called the child process. The parent process is started by a program or command, and the child process is created by the parent process. One parent process manages multiple child processes. Multitasking is what makes multiple child processes appear to be processed simultaneously on a single CPU (see Naver Encyclopedia).

스레드(thread)는 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다. 일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행할 수 있다. 이러한 실행 방식을 멀티스레드(multithread)라고 한다.A thread is a unit of flow that runs within any program, especially within a process. Typically, a program has one thread, but depending on the program environment, more than one thread can run at the same time. This method of execution is called multithreading.

대상 애플리케이션(100)은 모바일 단말기(예:스마트폰), 컴퓨터(예: PC) 등의 각종 정보 처리 장치에서 실행되는 것으로 특정 인터넷 사이트, 이메일, 웹메일, 메신저, 웹하드, P2P 등과 같이 파일 입출력(예: 파일이 첨부되어 외부로 전송 등)을 발생시키는 모든 것을 지칭하는 것으로 해석되어야 한다. The target application 100 is executed in various information processing devices such as a mobile terminal (for example, smart phone), computer (for example, PC) and the like. File input / output such as a specific Internet site, e-mail, webmail, messenger, web hard, P2P, etc. Should be construed as referring to anything that causes a file (for example, a file is attached and sent to the outside).

인터넷 사이트(예: 게시판 파일 첨부), 이메일, 웹메일, 메신저, 웹하드, P2P 등의 대상 애플리케이션(100)이 실행되어 파일 입출력(I/O)이 발생되면 대상 애플리케이션(100)의 실행 프로세스에서 파일 입출력 관련 스레드(Thread)가 생성된다. 스레드주소수집부(210)는 특정 시점에 대상 애플리케이션(100) 프로세스에 의해 생성된 쓰레드 정보를 수집한다. 예를 들어, 특정 시점에 대상 애플리케이션(100)에 의해 생성된 0x77D903E7와 같은 주소를 수집할 수 있다.When a target application 100 such as an internet site (eg, a bulletin board file attachment), an email, a webmail, a messenger, a web hard drive, or a P2P is executed to generate a file input / output (I / O), the execution process of the target application 100 is executed. File I / O related thread is created. The thread address collecting unit 210 collects thread information generated by the target application 100 process at a specific point in time. For example, at some point in time, an address such as 0x77D903E7 generated by the target application 100 may be collected.

파일흐름제어부(220)는 스레드주소수집부(210)에 의해 수집된 스레드 주소를 분석하여 대상 애플리케이션에서 발생되는 파일 입출력에 대한 흐름을 제어한다. 파일 흐름을 제어한다는 것은 대상 애플리케이션에서 파일 입출력 동작이 수행될 때 생성되는 스레드 주소 정보를 분석하여 그 결과에 따라 대상 파일의 입출력(예: 외부로 파일 첨부에 의한 전송이나 외부에서 전송된 파일 다운로드 등)을 차단하거나, 대상 애플리케이션의 파일 입출력 프로세스의 종료, 대상 파일의 내용을 변조(예: 개인정보의 삭제 등)하는 경우와 같이 대상 파일이 정상적인 형태로 외부로 전송되거나 외부에서 다운로드 되는 것을 방지하는 모든 동작을 의미하는 것으로 해석되어야 한다.The file flow controller 220 analyzes the thread addresses collected by the thread address collector 210 to control the flow of file input / output generated in the target application. Controlling the file flow is to analyze the thread address information generated when the file I / O operation is performed in the target application. ), Or to prevent the target file from being transferred or downloaded in a normal form, such as terminating the file I / O process of the target application, or tampering with the contents of the target file (e.g. deleting personal information). It should be interpreted as meaning all actions.

도 2는 도 1의 실시예에 따른 파일 흐름 제어 장치의 상세 블럭도이다. 이하, 도 2를 참조하여 본 실시예에 따른 파일 흐름 제어 장치(200)를 자세히 설명한다. 본 실시예의 추가적인 양상에 따르면 파일흐름제어부(220)는 스레드주소분석부(221)를 포함할 수 있다. 스레드주소분석부(221)는 스레드주소수집부(210)에 의해 수집된 스레드 주소 정보를 바탕으로 대상 애플리케이션(100)에서 사용자에 의해 파일 입출력 동작이 수행되어 생성된 것인지를 판단한다. FIG. 2 is a detailed block diagram of a file flow control apparatus according to the embodiment of FIG. 1. Hereinafter, the file flow control apparatus 200 according to the present embodiment will be described in detail with reference to FIG. 2. According to an additional aspect of the present embodiment, the file flow controller 220 may include a thread address analyzer 221. The thread address analyzer 221 determines whether a file input / output operation is generated by the user in the target application 100 based on the thread address information collected by the thread address collector 210.

대상 애플리케이션(100)이 실행되면 그 애플리케이션(100)에서는 자체적으로 각종 작업들을 실행하기도 하고 사용자들이 그 애플리케이션(100)에서 게시판에서 파일 첨부, 메일 전송, 메신저로 채팅, 파일 첨부 등의 각종 동작들을 수행하기도 한다. 이와 같이 사용자의 동작에 의하거나 자체 내부적으로 대상 애플리케이션(100)에서 각종 동작들이 수행되면 그 작업을 실행시키기 위한 스레드들이 생성된다. When the target application 100 is executed, the application 100 executes various tasks by itself, and users perform various operations such as file attachment, mail transmission, chatting by messenger, and file attachment in a bulletin board in the application 100. Sometimes. As described above, when various operations are performed in the target application 100 by the user's operation or internally, threads for executing the task are created.

한편, 본 실시예의 추가적인 양상에 따르면, 파일 흐름 제어 장치(200)는 스레드데이터베이스(230)를 더 포함할 수 있다. 스레드데이터베이스(230)는 대상 애플리케이션(100) 프로세스별로 사용자에 의해 파일 입출력 동작이 수행될 때 생성되는 스레드에 대한 정보를 저장하고 있다. 스레드데이터베이스(230)에는 대상애플리케이션 정보(예: 아이디 또는 이름 등), 스레드 시작 주소 정보, 파일 입출력 종류(예: 업로드, 다운로드 등) 등이 저장될 수 있다. 예를 들어, 특정 메신저 프로그램에서 사용자에 의해 파일 첨부(업로드) 동작이 수행될 때 생성되는 스레드의 시작 주소 정보가 0x77D903E7과 같이 생성된다면 스레드데이터베이스(230)에는 특정 메신저 프로그램 정보, 스레드 시작 주소 정보(0x77D903E7), 파일 업로드 등의 정보가 저장될 수 있다.Meanwhile, according to an additional aspect of the present embodiment, the file flow control apparatus 200 may further include a thread database 230. The thread database 230 stores information on threads generated when a file input / output operation is performed by a user for each target application process. The thread database 230 may store target application information (eg, ID or name), thread start address information, file input / output type (eg, upload, download, etc.). For example, if the start address information of a thread generated when a file attach (upload) operation is performed by a user in a specific messenger program is generated as 0x77D903E7, the thread database 230 may include specific messenger program information and thread start address information ( 0x77D903E7), file upload, and the like may be stored.

한편, 스레드 정보는 대상 애플리케이션 프로세스별로 스레드 시작 주소 정보와 대응되는 동적 링크 라이브러리(Dynamic Linked Library, DLL)의 연결 관계를 포함할 수 있다. 즉, 특정 애플리케이션에서 파일 첨부(업로드) 동작이 수행될 때 실행되는 DLL이 ieframe.dll이고, 생성되는 스레드의 시작 주소가 0x77D903E7와 같다면, ieframe.dll/+0x6d86fcdb/0x77D903E7과 같이 그 연결관계를 나타낼 수 있다. 이처럼, 스레드 시작 주소 정보와 해당 DLL 정보의 연결관계를 표시함으로써 보다 쉽게 대상 애플리케이션에서 사용자에 의해 파일 입출력 동작이 수행됨을 파악할 수 있다.Meanwhile, the thread information may include a connection relationship between a dynamic link library (DLL) corresponding to thread start address information for each target application process. In other words, if the DLL to be executed when a file attach (upload) operation is performed in a specific application is ieframe.dll, and the starting address of the generated thread is equal to 0x77D903E7, the connection relationship will be set as ieframe.dll / + 0x6d86fcdb / 0x77D903E7. Can be represented. As such, by displaying the connection relationship between the thread start address information and the corresponding DLL information, it is possible to easily understand that the file input / output operation is performed by the user in the target application.

스레드주소분석부(221)는 수집된 스레드 시작 주소 정보와 대응되는 스레드 정보가 스레드데이터베이스(230)에 존재하는 경우 사용자에 의해 파일 입출력 동작이 수행되어 생성된 것이라고 판단할 수 있다.When the thread information corresponding to the collected thread start address information exists in the thread database 230, the thread address analyzer 221 may determine that the file input / output operation is performed by the user.

본 실시예의 추가적인 양상에 따르면, 파일흐름제어부(220)는 파일차단부(223)를 더 포함할 수 있다. 파일차단부(223)는 스레드주소분석부(221)의 판단결과 스레드가 사용자에 의해 파일 입출력 동작이 수행되어 생성된 것으로 판단되면 그 파일의 입출력을 차단할 수 있다. 전술한 바와 같이 파일 흐름을 제어하는 방법은 파일 입출력을 차단하는 것으로 한정되지 아니하고 대상 애플리케이션에서 사용자에 의해 대상 파일이 정상적인 형태로 입출력(예:파일 업로드, 다운로드)되는 것을 방지하는 모든 동작을 의미하는 것으로 해석되어야 한다.According to an additional aspect of the present embodiment, the file flow control unit 220 may further include a file blocking unit 223. The file blocking unit 223 may block the input / output of the file when it is determined that the thread is generated by performing a file input / output operation by the user as a result of the determination by the thread address analyzer 221. As described above, the method of controlling file flow is not limited to blocking file input and output, and means all operations of preventing a target file from being input / output (eg, uploading or downloading a file) in a normal form by a user in the target application. Should be interpreted as

한편, 추가적인 양상에 따르면 파일흐름제어부(220)는 차단대상판단부(222)를 더 포함할 수 있다. 차단대상판단부(222)는 함수호출정보분석부(221)에 의해 파일 입출력 함수 정보가 사용자에 의해 파일 입출력 동작이 수행되어 생성된 것으로 판단되면 대상 파일이 차단 대상인지를 판단한다. 이때, 차단대상판단부(222)는 일실시예로서 파일의 내용에 개인정보가 포함되어 있는지를 검색하여 개인정보가 포함되어 있는 경우 차단 대상 파일로 판단할 수 있다. 그러나, 이에 한정되지 아니하고 대상 파일이 차단 대상인지 여부는 다양한 기준에 의해 설정될 수 있다. 예를 들어, 다른 실시예에 의하면 회사의 정책에 의해 사내에서 외부로 정보 유출을 방지하기 위해 모든 파일의 업로드를 차단하도록 설정할 수 있고, 아니면 대상 파일의 내용을 검색하여 개인정보가 포함되어 있는 파일, 기밀문서로 분류된 파일, 소정의 용량을 초과하는 파일 등을 외부로 전송되지 못하도록 설정할 수도 있다. 또는, 외부에서 다운로드 되는 모든 파일 또는 회사 업무와 관련없는 음악, 동영상 파일, 소정의 용량을 초과하는 파일 등의 다운로드를 할 수 없도록 설정할 수 있다. Meanwhile, according to an additional aspect, the file flow controller 220 may further include a blocking target determination unit 222. The blocking object determining unit 222 determines whether the file is an object to be blocked when the function call information analysis unit 221 determines that the file input / output function information is generated by the file input / output operation by the user. In this case, the blocking target determination unit 222 may search whether the contents of the file include personal information and determine that the blocking target file is included in the case where the personal information is included. However, the present invention is not limited thereto, and whether the target file is a blocking target may be set based on various criteria. For example, according to another embodiment, the company's policy may be set to block uploading of all files in order to prevent information leakage from inside or outside the company, or the files containing personal information by searching the contents of the target file. In addition, a file classified as a confidential document, a file exceeding a predetermined capacity, or the like may be set to not be transmitted to the outside. Alternatively, all files downloaded from the outside, or music, video files, files exceeding a predetermined capacity, etc., which are not related to the company's work, may be set to not be downloaded.

이를 위해, 본 실시예의 추가적인 양상에 따른 파일 흐름 제어 장치(200)는 차단대상파일데이터베이스(미도시)를 더 포함할 수 있다. 차단대상파일데이터베이스(미도시)에는 각종 파일의 차단 정책을 저장하는 각종 정보들을 저장할 수 있다.차단대상판단부(222)는 차단대상파일데이터베이스(미도시)에 저장된 차단대상파일의 정보를 이용하여 대상 파일이 차단 대상 파일인지를 판단할 수 있다. To this end, the file flow control apparatus 200 according to an additional aspect of the present embodiment may further include a blocking target file database (not shown). The blocking target file database (not shown) may store various kinds of information for storing a blocking policy of various files. The blocking target determining unit 222 may use the blocking target file information stored in the blocking target file database (not shown). It may be determined whether the target file is a blocking target file.

도 3은 일실시예에 따른 커널모드에서 스레드를 이용하여 파일 흐름을 제어하는 방법의 흐름도이다. 커널모드에서 스레드를 이용하여 파일 흐름을 제어하는 방법은, 먼저, 대상 애플리케이션이 실행되어(단계 100) 대상 애플리케이션에서 파일 입출력이 발생되면(단계 200) 대상 애플리케이션 프로세스에서 사용자의 파일 입출력 관련 동작 수행시 생성된 스레드(Thread)의 시작 주소를 수집한다(단계 300). 대상 애플리케이션(100)은 모바일 단말기(예:스마트폰), 컴퓨터(예: PC) 등의 각종 정보 처리 장치에서 실행되는 것으로 특정 인터넷 사이트, 이메일, 웹메일, 메신저, 웹하드, P2P 등과 같이 파일 입출력(예: 파일이 첨부되어 외부로 전송 등)을 발생시키는 모든 것을 지칭한다.3 is a flowchart of a method of controlling file flow using a thread in kernel mode, according to an exemplary embodiment. In the kernel mode, a method of controlling file flow by using a thread may include: First, when a target application is executed (step 100) and a file input / output occurs in the target application (step 200), when a user executes a file input / output related operation in the target application process. The start address of the created thread is collected (step 300). The target application 100 is executed in various information processing devices such as a mobile terminal (for example, smart phone), computer (for example, PC) and the like. File input / output such as a specific Internet site, e-mail, webmail, messenger, web hard, P2P, etc. (E.g. a file is attached and sent to the outside).

대상 애플리케이션(100)이 실행되어 파일 입출력(I/O)이 발생되면 해당하는 동작을 수행하기 위한 스레드가 생성된다. 스레드주소수집부(210)는 생성된 스레드의 시작 주소 정보를 수집한다.When the target application 100 is executed to generate file input / output (I / O), a thread for performing a corresponding operation is generated. The thread address collector 210 collects start address information of the generated thread.

그 다음, 스레드 주소 수집 단계(300)에 의해 수집된 스레드의 시작 주소를 분석하여 파일 흐름을 제어한다(단계 400). 이때, 파일 흐름을 제어한다는 것은 대상 애플리케이션(100)에서 파일 입출력이 발생하면 생성되는 스레드를 분석하여 그 결과에 따라 대상 파일의 입출력(예: 외부로 파일 첨부에 의한 전송이나 외부에서 전송된 파일 다운로드 등)을 차단하거나, 대상 애플리케이션의 파일 입출력 프로세스의 종료, 대상 파일의 내용을 변조(예: 개인정보의 삭제 등)하는 경우와 같이 대상 파일이 정상적인 형태로 외부로 전송되거나 외부에서 다운로드 되는 것을 방지하는 모든 동작을 의미한다.Next, the starting address of the thread collected by the thread address collecting step 300 is analyzed to control the file flow (step 400). In this case, controlling the file flow may be performed by analyzing a thread that is generated when file input / output occurs in the target application 100, and depending on the result, input / output of the target file (for example, transmission by attaching the file to the outside or downloading the file transmitted from the outside). Etc.), or to prevent the target file from being transferred externally or downloaded in a normal form, such as terminating the file I / O process of the target application or altering the contents of the target file (e.g. deleting personal information). Means any action.

도 4는 도 3의 실시예에 따른 파일 흐름 제어하는 단계의 상세 흐름도이다. 도 4를 참조하여 파일 흐름을 제어하는 단계(400)에 대해 좀 더 구체적으로 설명한다. 먼저, 함수 호출 정보 추출 단계(300)에서 스레드주소수집부(210)가 대상 애플리케이션(100)에서 생성된 스레드의 시작 주소를 수집하면 스레드주소분석부(221)는 그 수집된 함수 정보를 분석한다(단계 410). 좀 더 구체적으로 스레드주소분석부(221)는 스레드데이터베이스(230)에 저장된 대상 애플리케이션(100)에서 파일 입출력 동작이 수행될 때 생성되는 스레드에 대한 정보와 비교하여 그 수집된 스레드 정보가 사용자에 의해 파일 입출력 동작이 수행되어 생성된 것인지를 판단한다(단계 420). 4 is a detailed flowchart of a file flow control step according to the embodiment of FIG. 3. Referring to FIG. 4, the step 400 of controlling the file flow will be described in more detail. First, when the thread address collector 210 collects a start address of a thread generated by the target application 100 in the function call information extraction step 300, the thread address analyzer 221 analyzes the collected function information. (Step 410). More specifically, the thread address analyzer 221 compares the thread information generated by the user when the file input / output operation is performed in the target application 100 stored in the thread database 230, and the collected thread information is stored by the user. It is determined whether the file input / output operation has been performed (step 420).

인터넷 사이트나 각종 메신저 프로그램, 이메일 프로그램 등의 애플리케이션(100)에서는 자체적으로 각종 작업들을 수행한다. 또한, 사용자들이 해당 애플리케이션(100)에서 메일 전송, 메신저로 채팅, 파일 첨부 등의 각종 동작들을 수행하면 해당하는 동작을 수행하기 위한 스레드가 생성된다. 수집된 스레드 정보가 그 대상 애플리케이션(100)에서 사용자들이 파일 입출력(예: 파일 첨부, 파일 다운로드 등)을 발생시킬 때 생성되는 스레드 정보와 일치하면 사용자에 의해 수행되는 파일 입출력 동작임을 알 수 있다.Applications 100, such as Internet sites, various messenger programs, e-mail programs, perform various tasks on their own. In addition, when the user performs various operations such as sending mail, chatting with a messenger, and attaching a file in the application 100, a thread for performing the corresponding operation is created. If the collected thread information matches the thread information generated when users generate file input / output (eg, file attachment, file download, etc.) in the target application 100, it may be understood that the collected thread information is a file input / output operation performed by the user.

즉, 스레드데이터베이스(230)에는 애플리케이션별로 사용자에 의해 파일 입출력 동작이 수행될 때 생성되는 스레드 정보가 저장되어 있으므로, 수집된 스레드 정보가 스레드데이터베이스(230)에 저장된 스레드 정보와 일치하는 경우 그 대상 애플리케이션에서 사용자가 파일 입출력 동작을 수행하는지를 알 수 있다.That is, since the thread database 230 stores thread information generated when a file input / output operation is performed by a user for each application, when the collected thread information matches the thread information stored in the thread database 230, the target application. You can see if the user performs file I / O.

만약, 판단 결과 대상 애플리케이션(100)에서 사용자에 의해 파일 입출력(예: 파일 업로드, 다운로드 등)이 수행되어 생성된 스레드 정보이면(단계 430) 대상 파일의 입출력을 차단한다(단계 440). 전술한 바와 같이 파일 흐름을 제어하는 방법은 파일 입출력을 차단하는 것으로 한정되지 아니하고 대상 애플리케이션(100)에서 사용자에 의해 대상 파일이 정상적인 형태로 입출력(예:파일 업로드, 다운로드)되는 것을 방지하는 모든 동작을 의미하는 것으로 해석되어야 한다.If, as a result of determination, the thread information generated by performing file input / output (eg, file upload, download, etc.) by the user in the target application 100 (step 430), input / output of the target file is blocked (step 440). As described above, the method for controlling the file flow is not limited to blocking file input and output, and all operations for preventing input and output (eg, file upload and download) in a normal form by the user in the target application 100 by the user. It should be interpreted as meaning.

대상 파일의 입출력을 차단하는 단계(440)는 먼저, 사용자에 의한 파일 입출력 대상 파일이 차단 대상 파일인지를 판단하고(단계 441), 그 다음, 대상 파일이 차단 대상 파일인 경우 대상 파일의 입출력을 차단할 수 있다(단계 442). 일실시예로서 파일의 내용에 개인정보가 포함되어 있는지를 검색하고 개인정보가 포함되어 있는 경우 해당 파일을 차단 대상 파일로 판단할 수 있다. 그러나, 이에 한정되지 아니하고, 대상 파일이 차단 여부는 다양한 기준에 의해 설정될 수 있다. 예를 들어, 회사의 정책에 의해 사내에서 외부로 정보 유출을 방지하기 위해 모든 파일의 업로드와 다운로드를 차단하도록 설정할 수 있고, 대상 파일의 내용을 검색하여 개인정보가 포함되어 있는 파일, 기밀문서로 분류된 파일, 소정의 용량을 초과하는 파일 등에 따라 분류하여 외부로 전송되지 못하도록 설정할 수도 있다. 또는, 외부에서 다운로드 되는 모든 파일, 회사 업무와 관련없는 음악, 동영상 파일, 소정의 용량을 초과하는 파일 등의 다운로드를 할 수 없도록 설정할 수 있다. In step 440 of blocking input / output of the target file, it is first determined whether the file input / output target file by the user is a blocking target file (step 441), and then, if the target file is a blocking target file, input / output of the target file is performed. It may be blocked (step 442). In one embodiment, the contents of the file may be searched for whether personal information is included, and if the personal information is included, the corresponding file may be determined as a file to be blocked. However, the present invention is not limited thereto, and whether the target file is blocked may be set based on various criteria. For example, the company's policy can be set to block uploading and downloading of all files to prevent information leakage from inside and outside the company, and search for the contents of the target file as files containing confidential information or confidential documents. According to the classified file, a file exceeding a predetermined capacity, and the like, it may be set so as not to be transmitted to the outside. Alternatively, all files downloaded from the outside, music, video files, files exceeding a predetermined capacity, etc., which are not related to the company's business may not be downloaded.

한편, 다른 실시예에 따르면, 도 3과 도 4의 실시예에 따른 파일 흐름 제어 방법은 커널모드(Kernel Mode)에서 동작하도록 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. 컴퓨터로 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이브, 플로피디스크, 광 데이터 저장장치, USB, SD 카드 등의 휴대용 저장 장치, 캐리어 웨이브(예: 인터넷을 통한 전송) 등을 포함하는 것으로 이는 예시에 불과하고 한정되지 아니한다. 또한, 컴퓨터라 함은 PC, 모바일 단말기 등 모든 정보 처리 장치를 포함할 수 있다. Meanwhile, according to another exemplary embodiment, the file flow control method according to the exemplary embodiments of FIGS. 3 and 4 may be implemented as a program to operate in a kernel mode and recorded in a computer-readable recording medium. Examples of computer-readable recording media include ROM, RAM, CD-ROMs, magnetic tapes, floppy disks, optical data storage devices, portable storage devices such as USB and SD cards, and carrier waves (e.g., transmission over the Internet). And the like, but are not limited thereto. In addition, the computer may include all information processing devices such as a PC and a mobile terminal.

본 실시예에 따른 기록매체에 수록되는 프로그램은 커널모드에서 수행되며 스레드를 이용하여 파일 흐름을 제어하는 방법을 실행할 수 있다. 즉, 대상 애플리케이션이 실행되어 대상 애플리케이션 프로세스에서 파일 입출력이 발생되면 그 파일 입출력 동작을 수행하기 위해 생성되는 스레드 정보(예: 시작 주소 정보)를 수집하는 기능을 수행할 수 있다. The program included in the recording medium according to the present embodiment is executed in kernel mode and can execute a method of controlling file flow using a thread. That is, when file input / output occurs in the target application process when the target application is executed, a function of collecting thread information (eg, starting address information) generated to perform the file input / output operation may be performed.

또한, 수집된 스레드 정보를 분석하여 파일 흐름을 제어하는 기능을 수행할 수 있다. 이때, 파일 흐름을 제어한다는 것은 대상 애플리케이션에서 파일 입출력이 발생할 때 생성되는 스레드의 정보를 분석하여 그 결과에 따라 대상 파일의 입출력(예: 외부로 파일 첨부에 의한 전송이나 외부에서 전송된 파일 다운로드 등)을 차단하거나, 대상 애플리케이션의 파일 입출력 프로세스의 종료, 대상 파일의 내용을 변조(예: 개인정보의 삭제 등)하는 경우와 같이 대상 파일이 정상적인 형태로 외부로 전송되거나 외부에서 다운로드 되는 것을 방지하는 모든 동작을 의미한다.In addition, the collected thread information may be analyzed to control the file flow. At this time, controlling the file flow means analyzing the information of the thread that is generated when the file I / O occurs in the target application, and depending on the result, input / output of the target file (for example, transfer by attaching the file to the outside or downloading the file transmitted from the outside). ), Or to prevent the target file from being transferred or downloaded in a normal form, such as terminating the file I / O process of the target application, or tampering with the contents of the target file (e.g. deleting personal information). It means everything.

파일 흐름을 제어하는 기능은 먼저, 대상 애플리케이션(100)에서 파일 입출력 동작이 수행됨에 따라 생성되는 스레드 정보(예: 스레드 시작 주소 정보)를 수집하여 그 수집된 스레드 정보를 분석한다. 특히, 수집된 스레드 정보가 대상 애플리케이션에서 사용자에 의해 파일 입출력 동작이 수행되어 생성된 함수 정보인지를 판단하는 기능을 수행할 수 있다. 한편, 프로그램은 스레드데이터베이스(230)에 저장된 대상 애플리케이션 프로세스별로 사용자들에 의해 파일 입출력이 수행될 때 생성되는 스레드 정보와 수집된 스레드 정보를 비교함으로써 대상 애플리케이션(100)에서 사용자들에 의해 파일 입출력 동작이 수행되었는지를 판단할 수도 있다.The function of controlling the file flow first collects thread information (eg, thread start address information) generated as a file input / output operation is performed in the target application 100 and analyzes the collected thread information. In particular, a function of determining whether the collected thread information is function information generated by performing a file input / output operation by a user in the target application may be performed. Meanwhile, the program performs file input / output operation by the users in the target application 100 by comparing the collected thread information with the thread information generated when the file input / output is performed by the users for each target application process stored in the thread database 230. It may be determined whether this has been performed.

만약, 판단 결과 대상 애플리케이션(100)에서 사용자에 의해 파일 입출력(예: 파일 업로드, 다운로드 등)이 수행되어 생성된 스레드 정보이면 대상 파일의 입출력을 차단하는 기능을 수행할 수 있다. 대상 파일의 입출력을 차단하는 기능은 먼저, 사용자에 의한 파일 입출력 대상 파일이 차단 대상 파일인지를 판단하고, 그 다음, 대상 파일이 차단 대상 파일인 경우 대상 파일의 입출력을 차단할 수 있다. 일 실시예로서 파일의 내용에 개인정보가 포함되어 있는지를 검색하고 개인정보가 포함되어 있는 경우 해당 파일을 차단 대상 파일로 판단할 수 있다. 그러나, 이에 한정되지 아니하고, 대상 파일이 차단 여부는 다양한 기준에 의해 설정될 수 있다. 예를 들어, 다른 실시예로서 회사의 정책에 의해 사내에서 외부로 정보 유출을 방지하기 위해 모든 파일의 업로드와 다운로드를 차단하도록 설정할 수 있고, 대상 파일의 내용을 검색하여 개인정보가 포함되어 있는 파일, 기밀문서로 분류된 파일, 소정의 용량을 초과하는 파일 등에 따라 분류하여 외부로 전송되지 못하도록 설정할 수도 있다. 또는, 외부에서 다운로드 되는 모든 파일, 회사 업무와 관련없는 음악, 동영상 파일, 소정의 용량을 초과하는 파일 등의 다운로드를 할 수 없도록 설정할 수 있다.
If, as a result of determination, the thread information generated by file input / output (eg, file upload, download, etc.) is performed by the user in the target application 100, the function may block the input / output of the target file. The function of blocking input / output of a target file may first determine whether a file input / output target file by a user is a blocking target file, and then block input / output of the target file if the target file is a blocking target file. As an example, the contents of the file may be searched for whether the personal information is included, and if the personal information is included, the corresponding file may be determined as the blocking target file. However, the present invention is not limited thereto, and whether the target file is blocked may be set based on various criteria. For example, in another embodiment, the company's policy may be set to block uploading and downloading of all files in order to prevent information leakage from inside and outside the company, and search for the contents of the target file to include personal information. The data may be classified according to a file classified as a confidential document, a file exceeding a predetermined capacity, and the like so as not to be transmitted to the outside. Alternatively, all files downloaded from the outside, music, video files, files exceeding a predetermined capacity, etc., which are not related to the company's business may not be downloaded.

본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.It will be understood by those skilled in the art that the present invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. The scope of the present invention is defined by the appended claims rather than the foregoing detailed description, and all changes or modifications derived from the meaning and scope of the claims and the equivalents thereof are included in the scope of the present invention Should be interpreted.

200: 파일 흐름 제어 장치 210: 스레드주소수집부
220: 파일 흐름 제어부 221: 스레드주소분석부
222: 차단대상판단부 223: 파일차단부
230: 스레드데이터베이스
200: file flow control device 210: thread address collection unit
220: file flow control unit 221: thread address analysis unit
222: blocking object determination unit 223: file blocking unit
230: thread database

Claims (12)

대상 애플리케이션 프로세스에서 사용자의 파일 입출력 관련 동작 수행시 생성된 스레드(Thread)의 시작 주소를 수집하는 스레드주소수집부; 및
상기 스레드주소수집부에 의해 수집된 스레드(Thread)의 시작 주소를 분석하여 상기 파일의 흐름을 제어하는 파일흐름제어부;를 포함하는 커널모드에서 스레드를 이용하여 파일 흐름을 제어하는 장치.
A thread address collector for collecting a start address of a thread generated when a user performs a file input / output related operation in a target application process; And
And a file flow controller configured to control a flow of the file by analyzing a start address of a thread collected by the thread address collector. 2.
제1항에 있어서, 상기 파일흐름제어부는,
상기 스레드주소수집부에 의해 수집된 스레드의 시작 주소를 바탕으로 상기 스레드가 대상 애플리케이션에서 사용자에 의해 파일 입출력 동작이 수행되어 생성된 것인지를 판단하는 스레드주소분석부; 및
상기 스레드주소분석부의 판단결과 상기 스레드가 사용자에 의해 파일 입출력 동작이 수행되어 생성되었으면 상기 파일의 입출력을 차단하는 파일차단부;를 포함하는 커널모드에서 스레드를 이용하여 파일 흐름을 제어하는 장치.
The method of claim 1, wherein the file flow control unit,
A thread address analysis unit determining whether the thread is generated by a file input / output operation performed by a user in a target application based on a start address of a thread collected by the thread address collector; And
And a file blocking unit for blocking input and output of the file if the thread is generated by a user by performing a file input / output operation by the user as a result of the determination of the thread address analysis unit.
제2항에 있어서, 상기 파일흐름제어부는,
상기 스레드주소분석부에 의해 상기 스레드가 사용자에 의해 파일 입출력 동작이 수행되어 생성된 것으로 판단되면 상기 파일이 차단 대상 파일인지를 판단하는 차단대상판단부;를 더 포함하는 커널모드에서 스레드를 이용하여 파일 흐름을 제어하는 장치.
The method of claim 2, wherein the file flow control unit,
When the thread is determined by the user to perform a file input and output operation by the thread address analysis unit is determined that the block to determine whether the file is a file to block; using a thread in the kernel mode further comprising: Device that controls file flow.
제3항에 있어서, 상기 차단대상판단부는,
상기 파일의 내용에 개인정보가 포함되어 있는지를 검색하여 개인정보가 포함되어 있는 경우 차단 대상 파일로 판단하는 것을 특징으로 하는 커널모드에서 스레드를 이용하여 파일 흐름을 제어하는 장치.
The method of claim 3, wherein the blocking object determination unit,
Device for controlling the file flow using a thread in the kernel mode, characterized in that by searching whether the content of the file contains personal information and determines that the file to be blocked if the personal information is included.
제2항에 있어서,
대상 애플리케이션 프로세스별로 사용자에 의해 파일 입출력 동작이 수행될 때 생성되는 스레드 정보를 저장하고 있는 스레드데이터베이스;를 더 포함하고,
상기 스레드주소분석부는,
상기 수집된 스레드 시작 주소 정보와 대응되는 스레드 정보가 상기 스레드데이터베이스에 존재하는 경우 사용자에 의해 파일 입출력 동작이 수행되어 생성된 것이라고 판단하는 것을 특징으로 하는 커널모드에서 스레드를 이용하여 파일 흐름을 제어하는 장치.
3. The method of claim 2,
And a thread database storing thread information generated when a file input / output operation is performed by a user for each target application process.
The thread address analysis unit,
When the thread information corresponding to the collected thread start address information exists in the thread database, the file flow is controlled by using a thread in the kernel mode, in which it is determined that a file input / output operation is performed by a user. Device.
제5항에 있어서, 상기 스레드 정보는,
대상 애플리케이션별 프로세스별로 스레드 시작 주소 정보와 대응되는 동적 링크 라이브러리(Dynamic Linked Library, DLL)의 연결 관계를 포함하는 것을 특징으로 하는 커널모드에서 스레드를 이용하여 파일 흐름을 제어하는 장치.
The method of claim 5, wherein the thread information,
Device for controlling file flow using a thread in kernel mode, characterized in that it comprises a connection relationship of the dynamic link library (DLL) corresponding to the thread start address information for each process by the target application.
대상 애플리케이션 프로세스에서 사용자의 파일 입출력 관련 동작 수행시 생성된 스레드(Thread)의 시작 주소를 수집하는 단계; 및
상기 수집된 스레드(Thread)의 시작 주소를 분석하여 상기 파일의 흐름을 제어하는 단계;를 포함하는 커널모드에서 스레드를 이용하여 파일 흐름을 제어하는 방법.
Collecting a start address of a thread generated when a user performs a file input / output related operation in a target application process; And
And controlling the flow of the file by analyzing a start address of the collected thread.
제7항에 있어서, 상기 파일 흐름을 제어하는 단계는,
상기 수집된 스레드의 시작 주소를 분석하여 상기 스레드가 대상 애플리케이션에서 사용자에 의해 파일 입출력 동작이 수행되어 생성된 것인지를 판단하는 스레드 시작 주소 분석 단계; 및
상기 판단 결과 스레드가 사용자에 의해 파일 입출력 동작이 수행되어 생성된 것으로 판단되면 상기 파일의 입출력을 차단하는 단계;를 포함하는 커널모드에서 스레드를 이용하여 파일 흐름을 제어하는 방법.
The method of claim 7, wherein controlling the file flow,
Analyzing a starting address of the collected thread to determine whether the thread is generated by performing a file input / output operation by a user in a target application; And
Blocking the input / output of the file when it is determined that the thread is generated by performing a file input / output operation by a user; and controlling a file flow using a thread in a kernel mode.
제8항에 있어서, 상기 파일 입출력을 차단하는 단계는,
상기 판단 결과 스레드가 사용자에 의해 파일 입출력 동작이 수행되어 생성된 것으로 판단되면 상기 파일이 차단 대상 파일인지를 판단하는 단계;를 포함하는 커널모드에서 스레드를 이용하여 파일 흐름을 제어하는 방법.
The method of claim 8, wherein the blocking of the file input / output is performed.
And determining whether the file is a file to be blocked when the thread is determined to be generated by a file input / output operation by a user. 2.
제9항에 있어서, 상기 차단 대상 파일인지 판단하는 단계는,
상기 파일에 개인정보가 존재하는지를 검색하여 개인정보가 존재하는 경우 차단 대상 파일로 판단하는 것을 특징으로 하는 커널모드에서 스레드를 이용하여 파일 흐름을 제어하는 방법.
The method of claim 9, wherein the determining of the blocking target file comprises:
The method of controlling file flow using a thread in a kernel mode, characterized in that searching for whether personal information exists in the file and determining that the personal information exists is a blocking target file.
제8항에 있어서, 상기 스레드 시작 주소 분석 단계는,
상기 수집된 스레드 시작 주소 정보와 대응되는 스레드 정보가 스레드데이터베이스에 존재하는 경우 사용자에 의해 파일 입출력 동작이 수행되어 생성된 것이라고 판단하는 것을 특징으로 하는 커널모드에서 스레드를 이용하여 파일 흐름을 제어하는 방법.
The method of claim 8, wherein the thread start address resolution step comprises:
If the thread information corresponding to the collected thread start address information exists in a thread database, the method for controlling file flow using a thread in a kernel mode characterized in that it is determined that a file input / output operation is performed by a user. .
제7항 내지 제11항 중 어느 하나의 방법을 실행시키기 위한 프로그램이 기록된 컴퓨터에서 판독 가능한 기록매체.
A computer-readable recording medium having recorded thereon a program for executing the method of any one of claims 7 to 11.
KR1020110100821A 2011-10-04 2011-10-04 Apparatus and method for controlling file flow using thread in kernal mode, and program storing medium for executing the method KR101343613B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110100821A KR101343613B1 (en) 2011-10-04 2011-10-04 Apparatus and method for controlling file flow using thread in kernal mode, and program storing medium for executing the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110100821A KR101343613B1 (en) 2011-10-04 2011-10-04 Apparatus and method for controlling file flow using thread in kernal mode, and program storing medium for executing the method

Publications (2)

Publication Number Publication Date
KR20130036624A KR20130036624A (en) 2013-04-12
KR101343613B1 true KR101343613B1 (en) 2013-12-19

Family

ID=48437885

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110100821A KR101343613B1 (en) 2011-10-04 2011-10-04 Apparatus and method for controlling file flow using thread in kernal mode, and program storing medium for executing the method

Country Status (1)

Country Link
KR (1) KR101343613B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070124729A1 (en) 2005-11-30 2007-05-31 International Business Machines Corporation Method, apparatus and program storage device for providing an anchor pointer in an operating system context structure for improving the efficiency of accessing thread specific data
KR100930018B1 (en) 2007-12-07 2009-12-07 주식회사 마크애니 Digital Information Security System, Kernel Driver Device, and Digital Information Security Method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070124729A1 (en) 2005-11-30 2007-05-31 International Business Machines Corporation Method, apparatus and program storage device for providing an anchor pointer in an operating system context structure for improving the efficiency of accessing thread specific data
KR100930018B1 (en) 2007-12-07 2009-12-07 주식회사 마크애니 Digital Information Security System, Kernel Driver Device, and Digital Information Security Method

Also Published As

Publication number Publication date
KR20130036624A (en) 2013-04-12

Similar Documents

Publication Publication Date Title
US8914892B2 (en) Method and system to enhance accuracy of a data leak prevention (DLP) system
US10333948B2 (en) Alerting and tagging using a malware analysis platform for threat intelligence made actionable
EP2684329B1 (en) System and method for real time data awareness and file tracking
US20190034640A1 (en) Methods and systems for providing recommendations to address security vulnerabilities in a network of computing systems
US9356937B2 (en) Disambiguating conflicting content filter rules
US20200052983A1 (en) Data leakage protection in cloud applications
US20170251002A1 (en) Malware analysis platform for threat intelligence made actionable
US8875296B2 (en) Methods and systems for providing a framework to test the security of computing system over a network
US8862675B1 (en) Method and system for asynchronous analysis of URLs in messages in a live message processing environment
EP3048772B1 (en) Representing identity data relationships using graphs
US8661456B2 (en) Extendable event processing through services
US9621585B1 (en) Applying functional classification to tune security policies and posture according to role and likely activity
M. Milajerdi et al. Propatrol: Attack investigation via extracted high-level tasks
US20180007077A1 (en) Scalable computer vulnerability testing
US20180157844A1 (en) Consolidating static analysis tool warnings using dynamic programming
WO2017019717A1 (en) Dynamic attachment delivery in emails for advanced malicious content filtering
US9270689B1 (en) Dynamic and adaptive traffic scanning
JP2010282242A (en) Access control system, access control method, and access control program
US10628591B2 (en) Method for fast and efficient discovery of data assets
US11048611B2 (en) Web extension JavaScript execution control by service/daemon
Roschke et al. An advanced IDS management architecture
KR101343613B1 (en) Apparatus and method for controlling file flow using thread in kernal mode, and program storing medium for executing the method
CN117730321A (en) Automatic synthesis of reference policies for runtime microservice protection
KR101343612B1 (en) Apparatus and method for controlling file flow using call stack in kernal mode, and program storing medium for executing the method
Rump et al. Distributed and collaborative malware analysis with MASS

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20161212

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20171024

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20181126

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190924

Year of fee payment: 7