KR100985047B1 - System and method for thread scheduling - Google Patents

System and method for thread scheduling Download PDF

Info

Publication number
KR100985047B1
KR100985047B1 KR1020070107940A KR20070107940A KR100985047B1 KR 100985047 B1 KR100985047 B1 KR 100985047B1 KR 1020070107940 A KR1020070107940 A KR 1020070107940A KR 20070107940 A KR20070107940 A KR 20070107940A KR 100985047 B1 KR100985047 B1 KR 100985047B1
Authority
KR
South Korea
Prior art keywords
thread
module
threads
list
user
Prior art date
Application number
KR1020070107940A
Other languages
Korean (ko)
Other versions
KR20090042060A (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 KR1020070107940A priority Critical patent/KR100985047B1/en
Publication of KR20090042060A publication Critical patent/KR20090042060A/en
Application granted granted Critical
Publication of KR100985047B1 publication Critical patent/KR100985047B1/en

Links

Images

Classifications

    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/3009Thread control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/108Transfer of content, software, digital rights or licenses
    • G06F21/1082Backup or restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 컴퓨터 운영 환경에서 사용자 작업 보호를 위한 쓰레드 스케줄링(Thread Scheduling) 시스템을 개시한다. 즉, 상기 사용자 작업 보호를 위해 상기 컴퓨터 운영 환경에 존재하는 전체 쓰레드 중 필수 쓰레드를 선별하는 쓰레드 검출 모듈; 및 상기 사용자 작업 진행에 따라, 상기 선별된 필수 쓰레드를 제외시킨 상기 전체 쓰레드의 실행을 중지시키고, 상기 선별된 필수 쓰레드만을 실행시키는 쓰레드 실행 모듈;을 포함함으로써, 사용자가 인터넷 뱅킹 등 고도의 보안을 필요로 하는 특정 작업을 수행하는 동안 사용자 작업에 필수적이지 않은 다른 프로그램들이 정상인지 아닌지를 구분하지 않고, 사용자에게 필수적인지 아닌지를 구분하여 필수적이지 않은 것을 모두 일시 중지시킴에 따라 보안을 강화할 수 있다.The present invention discloses a thread scheduling system for protecting user tasks in a computer operating environment. That is, a thread detection module that selects essential threads from all threads existing in the computer operating environment to protect the user task; And a thread execution module configured to stop execution of the entire thread excluding the selected essential thread and to execute only the selected essential thread as the user's work progresses. While performing certain tasks that need to be done, other programs that are not essential to the user's task are not distinguished from normal or not, and whether or not it is essential to the user can be suspended to suspend all that is not necessary.

쓰레드(Thread), 스케줄링(Scheduling) Thread, Scheduling

Description

쓰레드 스케줄링 시스템 및 그 방법{SYSTEM AND METHOD FOR THREAD SCHEDULING}Thread Scheduling System and Its Method {SYSTEM AND METHOD FOR THREAD SCHEDULING}

본 발명은 컴퓨터 운영 환경에서 사용자 작업 보호를 위한 것으로, 더욱 상세하게는, 사용자 작업을 보호하기 위해 사용자 작업에 필요한 필수적인 프로세스를 제외한 모든 프로세스를 일시 중지시킴으로써, 인터넷 뱅킹 등을 포함하는 사용자 작업에 대한 보안을 강화시키는 쓰레드 스케줄링 시스템 및 그 방법에 관한 것이다.The present invention is to protect user tasks in a computer operating environment, and more particularly, to suspend all processes except the essential processes required for user tasks to protect user tasks, and thus for user tasks including Internet banking. A thread scheduling system and method for enhancing security are provided.

오늘날 인터넷의 발전으로 수많은 홈페이지와 더불어 인터넷 검색, 인터넷 커뮤니티, 온라인 신문, 및 온라인게임 등을 통한 다각적인 방면으로 정보가 교환되고 있다.Today, with the development of the Internet, information is exchanged in various ways through numerous homepages, internet search, internet community, online newspapers, and online games.

최근에는 정보의 교환을 넘어서 인터넷 뱅킹, 인터넷 증권거래, 및 인터넷 동사무소 등 예전에는 신분증을 들고 직접 방문해서 처리했어야만 했던 많은 일들이 컴퓨터를 통하여 이뤄지고 있으며, 이와 같은 컴퓨터 기반처리 대상 중 상당수는 금전과 직접적으로 관련되어 있기 때문에 최근 급증하고 있는 범죄를 목적으로 하는 크래커(Cracker)들의 공격 대상이 되고 있다.In recent years, beyond the exchange of information, many things that had to be done in person, such as Internet banking, Internet securities trading, and Internet offices, had to be handled in person by hand. Because of its direct connection, it has been the target of crackers for the purpose of increasing crime.

이와 관련하여, 상술한 크래커들의 공격으로부터 사용자작업을 보호하기 위한 기술로 다양한 안티(Anti) 해킹 기법이 알려져 있다. In this regard, various anti-hacking techniques are known as techniques for protecting user operations from the above-mentioned crackers attack.

예컨대, 키로거나 스파이웨어 등 악성코드를 시그니쳐(Signature) 기반으로 탐지하는 방법이 있으며, 이 방법은 전통적으로 바이러스에 대응하는 방법과 동일한 것으로 공격도구에 대한 샘플이 확보되면 해당 샘플에 대해서는 거의 완벽하게 대처할 수 있다. For example, there is a signature-based method of detecting malicious codes such as keystrokes or spyware. This method is the same as the conventional method of responding to a virus. When a sample of an attack tool is obtained, the sample is almost completely completed. Can cope

또한, 키보드 보안 프로그램을 예로 들 수 있으며, 이는 사용자의 아이디(ID)와 패스워드(Password)를 가로채는 키로거를 무력화하기 위한 보안프로그램으로서, 키보드와 보호대상 프로그램 사이의 구간을 암호화 등의 방법으로 보호한다.In addition, a keyboard security program may be exemplified. This is a security program for disabling a key logger intercepting a user's ID and password, and protects a section between the keyboard and a protected program by an encryption method. .

아울러, 금융권에서 많이 사용하는 또 다른 방법으로는 개인 방화벽을 예로 들 수 있으며, 이러한 개인 방화벽은 외부와 연결된 프로그램을 식별하고, 보호 대상 프로그램이 실행되는 동안 외부의 공격을 차단하기 위해서 사용된다.In addition, another method commonly used in the financial sector is a personal firewall, which is used to identify externally connected programs and to block external attacks while the protected program is running.

한편, 기타 다른 방법으로 게임 등 제한된 프로그램을 보호하는 안티 디버깅(Anti-Debugging) 등 프로세스 보호 방법이 있으며, 더 나아가 상술한 방안을 복합적으로 적용하여 금전과 관련된 사용자 작업을 보호하고 있다.On the other hand, there are other methods of process protection such as anti-debugging to protect limited programs such as games, and moreover, the above-mentioned measures are applied in combination to protect user operations related to money.

상술한 바와 같은 종래기술은 시스템에 존재하는 변칙성(Anomaly)을 찾거나 알려진 각각의 취약점(Vulnerable) 별로 대응하는 방법으로 시그니쳐 기반(Signature-based), 및 호스트 기반(Host-based) 보호 방안을 적용한다. 그러나, 자체 변이를 일으키거나 특정인을 대상으로 한 악성코드의 경우 시그니쳐 기반 방법으로는 대응하기 어려운 실정이며, 또한 호스트 기반 보호 방법의 경우 공격 방법이 조금 바뀌거나 신규로 발견된 위협은 대처하기 어려운 문제가 있다.The prior art as described above applies signature-based and host-based protection schemes to find anomalies existing in the system or to respond to known vulnerabilities. do. However, it is difficult to respond to signature-based methods in the case of malicious codes that cause self-mutation or target specific people, and in the case of host-based protection methods, the attack method is slightly changed or newly discovered threats are difficult to cope with. There is.

더욱이, 상술한 기타 다른 보호방법의 경우에도 시스템에서 일어나는 동작에 대해 정상 상태임을 구분해 내기가 사실상 불가능함에 따라, 그 적용범위가 극히 제한되는 문제가 있다. 예컨대, 최근 발견된 인터넷 뱅킹이나 게임 아이템 거래 시 메모리 상에 로드되어 있는 계좌번호나 수신자ID를 수정하는 공격이 있을 수 있다. 즉, 기존의 보호방법은 이러한 공격에 의해 유발되는 메모리 수정 행위에 대해, 정상 여부를 구분할 수 없음에 따라, 상기 공격에 의해 유발되는 다양한 문제에 대해 대응하기 어려운 실정이다.Moreover, in the case of the other protection methods described above, it is virtually impossible to distinguish the normal state with respect to the operation occurring in the system, and thus, the application range is extremely limited. For example, there may be an attack that modifies the account number or recipient ID loaded in the memory during recently discovered Internet banking or game item transaction. That is, the conventional protection method is difficult to cope with the various problems caused by the attack, since it is not possible to distinguish whether or not the normal operation for the memory modification caused by such an attack.

다시 말해, 상술한 종래기술은 알려진 보안 허점 별로 개별 대응하는 블랙리스트 개념의 방법으로서, 아직 알려지지 않은 방법, 프로그램의 정상적인 흐름과 유사하여 식별하기 어려운 방법 및, 미래의 크래킹 방법 등에는 정상적인 방어가 불가능하다는 문제가 있다.In other words, the above-described prior art is a method of blacklist concept that individually corresponds to known security loopholes, and it is not possible to defend normally to unknown methods, difficult to identify similar to the normal flow of programs, and future cracking methods. There is a problem.

본 발명은 상기한 바와 같이 선행 기술에 내재되었던 문제점을 해결하기 위해 창작된 것으로, 본 발명의 목적은 컴퓨터 운영 환경에 존재하는 특정 쓰레드를 선별 및 제어하여 사용자 작업에 필수적인 프로세스 구분하고, 구분된 필수적인 프로세스를 제외한 모든 프로세스를 사용자 작업 시간 동안 중지시키는 쓰레드 스케줄링 시스템 및 그 방법을 제공함에 있다. The present invention was created to solve the problems inherent in the prior art as described above, and an object of the present invention is to select and control specific threads existing in a computer operating environment to classify processes essential for user operations, and to classify essential The present invention provides a thread scheduling system and a method for stopping all processes except user processes during user working hours.

상술한 목적을 달성하기 위한 본 발명의 일면에 따라, 컴퓨터 운영 환경에서 사용자 작업 보호를 위한 쓰레드 스케줄링(Thread Scheduling) 시스템이 제공되며: 이 시스템은, 상기 사용자 작업 보호를 위해 상기 컴퓨터 운영 환경에 존재하는 전체 쓰레드 중 필수 쓰레드를 선별하는 쓰레드 검출 모듈; 및 상기 사용자 작업 진행에 따라, 상기 선별된 필수 쓰레드를 제외시킨 상기 전체 쓰레드의 실행을 중지시키고, 상기 선별된 필수 쓰레드만을 실행시키는 쓰레드 실행 모듈;을 포함하는 것을 특징으로 한다.According to an aspect of the present invention for achieving the above object, there is provided a thread scheduling system for protecting user work in a computer operating environment: the system is present in the computer operating environment for protecting the user work A thread detection module for selecting required threads among all the threads; And a thread execution module configured to stop execution of the entire thread excluding the selected essential thread and to execute only the selected essential thread as the user operation proceeds.

바람직하게는, 상기 시스템은, 상기 선별된 필수 쓰레드에 의해 호출되는 다수의 모듈 중 변조된 모듈을 확인하여 원본으로 복구시키는 변조 확인 모듈;을 더 포함하는 것을 특징으로 한다.Preferably, the system further comprises a modulation confirmation module for identifying and restoring a modulated module from among a plurality of modules called by the selected essential thread;

바람직하게는, 상기 쓰레드 검출 모듈은, 상기 검색된 전체 쓰레드 중 상기 컴퓨터 운영 환경을 제공하기 위한 필수 프로세스가 갖는 쓰레드 및 상기 사용자 작업을 위한 어플리케이션이 갖는 쓰레드를 포함하는 상기 필수 쓰레드를 선별하는 것을 특징으로 한다.Preferably, the thread detection module, characterized in that the selected thread, including the thread having the necessary process for providing the computer operating environment and the thread of the application for the user task of the searched total threads. do.

바람직하게는, 상기 쓰레드 검출 모듈은, 상기 필수 쓰레드에 의해 호출되는 특정 모듈의 목록을 기 저장하는 화이트 리스트를 토대로, 상기 필수 프로세스 및 상기 어플리케이션에 의해 메모리에 로딩되는 다수의 모듈과 상기 화이트 리스트에 기저장된 특정 모듈 목록과의 일치 여부를 확인하여 상기 필수 쓰레드를 선별하는 것을 특징으로 한다.Preferably, the thread detection module includes a plurality of modules loaded into memory by the required process and the application and the white list based on a white list that previously stores a list of specific modules called by the required thread. The essential threads are selected by checking whether they match with a specific stored module list.

바람직하게는, 상기 쓰레드 검출 모듈은, 컴퓨터 운영 환경의 커널(Kernel) 쓰레드 스케줄러에서 제공되는 쓰레드 목록을 토대로 상기 컴퓨터 운영 환경에 존재하는 상기 전체 쓰레드를 검색하는 것을 특징으로 한다.Preferably, the thread detection module is characterized in that to search the entire thread existing in the computer operating environment based on the list of threads provided by the kernel thread scheduler of the computer operating environment.

바람직하게는, 상기 쓰레드 실행 모듈은, 컴퓨터 운영 체제가 제공하는 특정 함수를 호출하여 상기 선별된 필수 쓰레드를 제외한 상기 전체 쓰레드의 실행을 중지시키는 것을 특징으로 한다.Preferably, the thread execution module calls a specific function provided by a computer operating system to stop execution of the entire thread except the selected required thread.

바람직하게는, 상기 쓰레드 실행 모듈은, 커널 쓰레드 스케줄러의 목록에서 해당 쓰레드 목록을 제외시켜 상기 선별된 필수 쓰레드를 제외한 전체 쓰레드의 실행을 중지시키는 것을 특징으로 한다.Preferably, the thread execution module is configured to suspend execution of all threads except the selected essential threads by excluding the thread list from the list of kernel thread schedulers.

바람직하게는, 상기 변조 확인 모듈은, 상기 선별된 필수 쓰레드에 의해 호출되는 다수의 모듈의 서명 정보 및 해쉬값을 토대로 변조된 모듈을 확인하며, 상기 사용자 작업 진행에 따라 메모리에 기로딩되어 있는 특정 모듈을 포함하는 상기 다수의 모듈이 메모리에 동일하게 로딩되어 있는지를 확인하는 것을 특징으로 한 다.Advantageously, the tamper check module identifies a modulated module based on the signature information and hash values of the plurality of modules invoked by the selected mandatory thread, and specifies a modulated module in memory as the user progresses. It is characterized in that whether the plurality of modules including the module is loaded in the same memory.

바람직하게는, 상기 변조 확인 모듈은, 상기 다수의 모듈 중 특정 모듈이 상기 메모리에 동일하게 로딩되어 있지 않을 경우, 해당 모듈을 백업(Backup)하고 원본 모듈을 복구시키는 것을 특징으로 한다.Preferably, the modulation confirmation module, if a particular module of the plurality of modules is not loaded in the memory, the module (Backup) is characterized in that for recovering the original module.

바람직하게는, 상기 변조 확인 모듈은, 상기 원본 모듈에 의해서 생성되는 IDT(Interrupt Descriptor Table), SSDT(System Service Dispatch Table), 및 IRPFT(Driver' I/O Request Packet Function Table)의 변조상태를 확인하여, 상기 원본 모듈에 존재하는 원본 테이블로 복구시키는 것을 특징으로 한다.Preferably, the modulation confirmation module, checks the modulation state of the Interrupt Descriptor Table (IDT), the System Service Dispatch Table (SSDT), and the Driver 'I / O Request Packet Function Table (IRPFT) generated by the original module And restore the original table existing in the original module.

바람직하게는, 상기 변조 확인 모듈은, 상기 사용자 작업이 중지될 경우, 상기 원본으로 복구된 해당 모듈을 상기 백업된 모듈로 전환하는 것을 특징으로 한다.Preferably, the modulation confirmation module, when the user operation is stopped, characterized in that for converting the module restored to the original to the backup module.

본 발명의 다른 일면에 따라, 컴퓨터 운영 환경에서 사용자 작업 보호를 위한 쓰레드 스케줄링(Thread Scheduling) 방법이 제공되며: 이 방법은, a) 상기 컴퓨터 운영 환경에 존재하는 전체 쓰레드를 검색하는 단계; b) 상기 사용자 작업 보호를 위해 상기 검색된 전체 쓰레드 중 필수 쓰레드를 선별하는 단계; c) 상기 선별된 필수 쓰레드를 제외한 상기 전체 쓰레드의 실행을 중지시키는 단계; d) 상기 사용자 작업 진행에 따라 메모리에 로딩된 다수의 모듈 중 변조된 모듈을 확인하여 원본으로 복구시키는 단계; 및 e) 상기 사용자 작업 중지에 따라 상기 실행이 중지된 쓰레드를 재실행하는 단계;를 포함하는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a thread scheduling method for protecting a user's work in a computer operating environment, the method comprising: a) retrieving all threads present in the computer operating environment; b) selecting required threads among the searched total threads to protect the user task; c) stopping execution of the entire thread except the selected required thread; d) identifying a modulated module among a plurality of modules loaded in a memory as the user's work progresses and restoring the original; And e) re-running the thread whose execution has been stopped according to the stopping of the user's work.

바람직하게는, 상기 a) 단계는, 컴퓨터 운영 환경의 커널(Kernel) 쓰레드 스 케줄러에서 제공되는 쓰레드 목록을 토대로 상기 컴퓨터 운영 환경에 존재하는 상기 전체 쓰레드를 검색하는 것을 특징으로 한다.Preferably, the step a) is characterized in that the search for the entire thread existing in the computer operating environment based on the thread list provided by the kernel thread scheduler of the computer operating environment.

바람직하게는, 상기 b) 단계는, 상기 검색된 전체 쓰레드 중 상기 컴퓨터 운영 환경을 위한 필수 프로세스가 갖는 쓰레드 및 상기 사용자 작업을 위한 어플리케이션이 갖는 쓰레드를 포함하는 상기 필수 쓰레드를 선별하는 것을 특징으로 한다.Preferably, the step b) is characterized in that for selecting the required threads including the threads of the process for the computer operating environment and the thread for the user task of the searched total threads.

바람직하게는, 상기 b) 단계는, 상기 필수 쓰레드에 의해 호출되는 특정 모듈의 목록을 기 저장하는 화이트 리스트를 토대로, 상기 필수 프로세스 및 상기 어플리케이션에 의해 메모리에 로딩되는 다수의 모듈과 상기 화이트 리스트에 기저장된 특정 모듈 목록과의 일치 여부를 확인하여 상기 필수 쓰레드를 선별하는 것을 특징으로 한다.Preferably, the step b) is based on a white list pre-stored a list of specific modules called by the required thread, the plurality of modules and the white list loaded in the memory by the required process and the application. The essential threads are selected by checking whether they match with a specific stored module list.

바람직하게는, 상기 c) 단계는, 컴퓨터 운영 체제가 제공하는 특정 함수를 호출하여 상기 선별된 필수 쓰레드를 제외한 상기 전체 쓰레드의 실행을 중지시키는 것을 특징으로 한다.Preferably, step c) is characterized in that, by calling a specific function provided by the computer operating system to stop the execution of the entire thread except the selected required thread.

바람직하게는, 상기 c) 단계는, 컴퓨터 운영 환경의 커널 쓰레드 스케줄러의 목록에서 해당 쓰레드 목록을 제외시켜 상기 선별된 필수 쓰레드를 제외한 전체 쓰레드의 실행을 중지시키기 위해 것을 특징으로 한다.Preferably, the step c) is to exclude the thread list from the list of kernel thread schedulers of the computer operating environment to stop execution of all threads except the selected essential threads.

바람직하게는, 상기 d) 단계는, 상기 선별된 필수 쓰레드에 의해 호출되는 다수의 모듈의 서명 정보 및 해쉬값을 토대로 변조된 모듈을 확인하며, 상기 사용자 작업 진행에 따라 상기 메모리에 기로딩되어 있는 특정 모듈 및 필수 쓰레드에 의해 호출되는 다수의 모듈이 상기 메모리에 동일하게 로딩되어 있는지를 확인하는 것을 특징으로 한다.Advantageously, step d) identifies a modulated module based on the signature information and hash values of the plurality of modules called by the selected mandatory thread and is loaded into the memory as the user progresses. It is characterized by checking whether a plurality of modules called by a specific module and a required thread are equally loaded in the memory.

바람직하게는, 상기 d) 단계는, 상기 다수의 모듈 중 특정 모듈이 상기 메모리에 동일하게 로딩되어 있지 않을 경우, 해당 모듈을 백업(Backup)하고 원본 모듈을 복구시키는 것을 특징으로 한다.Preferably, step d) is characterized in that, if a particular module of the plurality of modules is not loaded identically in the memory, the module is backed up and the original module is restored.

바람직하게는, 상기 d) 단계는, 상기 원본 모듈에 의해서 생성되는 IDT(Interrupt Descriptor Table), SSDT(System Service Dispatch Table), 및 IRPFT(Driver' I/O Request Packet Function Table)의 변조상태를 확인하여, 상기 원본 모듈에 존재하는 원본 테이블로 복구시키는 것을 특징으로 한다.Preferably, the step d) is to check the modulation state of the Interrupt Descriptor Table (IDT), the System Service Dispatch Table (SSDT), and the Driver 'I / O Request Packet Function Table (IRPFT) generated by the original module. And restore the original table existing in the original module.

바람직하게는, 상기 e) 단계는, 상기 사용자 작업이 종료됨에 따라 상기 원본으로 복구된 해당 모듈을 상기 백업된 모듈로 전환하는 것을 특징으로 한다.Preferably, the step e), as the user task is finished, characterized in that for converting the module restored to the original to the backup module.

본 발명의 또 다른 일면에 따라, 컴퓨터 운영 환경에서 사용자 작업 보호를 위한 쓰레드 스케줄링(Thread Scheduling) 방법이 제공되며: 이 방법은, 가) 상기 컴퓨터 운영 환경에 존재하는 전체 쓰레드를 검색하는 단계; 나) 상기 사용자 작업 보호를 위해 상기 검색된 전체 쓰레드 중 필수 쓰레드를 선별하는 단계; 다) 상기 전체 쓰레드의 실행을 중지시키며, 상기 중지된 전체 쓰레드 중 상기 선별된 필수 쓰레드만을 재실행시키는 단계; 라) 상기 사용자 작업 진행에 따라 메모리에 로딩된 다수의 모듈 중 변조된 모듈을 확인하여 원본으로 복구시키는 단계; 및 마) 상기 사용자 작업 중지에 따라 상기 실행이 중지된 쓰레드를 재실행하는 단계;를 포함하는 것을 특징으로 한다.According to yet another aspect of the present invention, there is provided a thread scheduling method for protecting a user's work in a computer operating environment, the method comprising: a) searching for an entire thread present in the computer operating environment; B) selecting a mandatory thread among the searched total threads to protect the user task; C) stopping execution of the entire thread and rerunning only the selected essential threads of the suspended total threads; Identifying a modulated module among a plurality of modules loaded in a memory as the user's work progresses and recovering the original module; And e) re-running the thread whose execution has been stopped according to the stopping of the user's work.

바람직하게는, 상기 가) 단계는, 컴퓨터 운영 환경의 커널(Kernel) 쓰레드 스케줄러에서 제공되는 쓰레드 목록을 토대로 상기 컴퓨터 운영 환경에 존재하는 상기 전체 쓰레드를 검색하는 것을 특징으로 한다.Preferably, the step a) includes searching for the entire thread existing in the computer operating environment based on a list of threads provided by a kernel thread scheduler of the computer operating environment.

바람직하게는, 상기 나) 단계는, 상기 검색된 전체 쓰레드 중 상기 컴퓨터 운영 환경을 위한 필수 프로세스가 갖는 쓰레드 및 상기 사용자 작업을 위한 어플리케이션이 갖는 쓰레드를 포함하는 상기 필수 쓰레드를 선별하는 것을 특징으로 한다.Preferably, the step b) selects the mandatory threads including the threads of the found process and the threads of the application for the user's task.

바람직하게는, 상기 나) 단계는, 상기 필수 쓰레드에 의해 호출되는 특정 모듈의 목록을 기 저장하는 화이트 리스트를 토대로, 상기 필수 프로세스 및 상기 어플리케이션에 의해 상기 메모리에 로딩되는 다수의 모듈과 상기 화이트 리스트에 기저장된 특정 모듈 목록과의 일치 여부를 확인하여 상기 필수 쓰레드를 선별하는 것을 특징으로 한다.Preferably, the step b) includes a plurality of modules and the white list loaded in the memory by the required process and the application based on a white list which previously stores a list of specific modules called by the required thread. The essential thread is selected by checking whether the list matches a specific module stored in the list.

바람직하게는, 상기 다) 단계는, 컴퓨터 운영 체제가 제공하는 특정 함수를 호출하여 상기 전체 쓰레드의 실행을 중지시키며, 상기 실행이 중지된 전체 쓰레드 중 상기 선별된 필수 쓰레드만을 재실행시키는 것을 특징으로 한다.Preferably, the step c) includes calling a specific function provided by a computer operating system to stop execution of the entire thread, and re-executing only the selected essential threads among all the threads that are suspended. .

바람직하게는, 상기 다) 단계는, 컴퓨터 운영 환경의 커널 쓰레드 스케줄러의 목록에서 해당 쓰레드 목록을 제외시켜 상기 전체 쓰레드의 실행을 중지시키며, 상기 커널 쓰레드 스케줄러 목록에 상기 선별된 필수 쓰레드 목록만을 추가하여 재실행시키는 것을 특징으로 한다.Preferably, the step c) stops the execution of the entire thread by excluding the thread list from the list of kernel thread schedulers of the computer operating environment, and adds only the selected required thread list to the kernel thread scheduler list. It is characterized by re-execution.

바람직하게는, 상기 라) 단계는, 상기 선별된 필수 쓰레드에 의해 호출되는 다수의 모듈의 서명 정보 및 해쉬값을 토대로 변조된 모듈을 확인하며, 상기 사용자 작업 진행에 따라 메모리에 기로딩되어 있는 특정 모듈 및 상기 필수 쓰레드에 의해 호출되는 다수의 모듈이 메모리에 동일하게 로딩되어 있는지를 확인하는 것을 특징으로 한다.Preferably, the step d) identifies a modulated module based on the signature information and the hash value of the plurality of modules called by the selected required thread, and is loaded into memory according to the progress of the user operation. It is characterized by checking whether a module and a plurality of modules called by the required thread are loaded in the same memory.

바람직하게는, 상기 라) 단계는, 상기 다수의 모듈 중 특정 모듈이 상기 메모리에 동일하게 로딩되어 있지 않을 경우, 해당 모듈을 백업(Backup)하고 원본 모듈을 복구시키는 것을 특징으로 한다.Preferably, the step d) may include backing up the corresponding module and restoring the original module when a particular module of the plurality of modules is not loaded in the memory.

바람직하게는, 상기 라) 단계는, 상기 원본 모듈에 의해서 생성되는 IDT(Interrupt Descriptor Table), SSDT(System Service Dispatch Table), 및 IRPFT(Driver' I/O Request Packet Function Table)의 변조상태를 확인하여, 상기 원본 모듈에 존재하는 원본 테이블로 복구시키는 것을 특징으로 한다.Preferably, the step d) confirms a modulation state of an Interrupt Descriptor Table (IDT), a System Service Dispatch Table (SSDT), and a Driver 'I / O Request Packet Function Table (IRPFT) generated by the original module. And restore the original table existing in the original module.

바람직하게는, 상기 마) 단계는, 상기 사용자 작업이 종료됨에 따라 상기 원본으로 복구된 해당 모듈을 상기 백업된 모듈로 전환하는 것을 특징으로 한다.Preferably, the step e), as the user task is terminated, converts the corresponding module restored to the original into the backed up module.

본 발명에 따른 쓰레드 스케줄링(Thread Scheduling) 시스템 및 그 방법은, 사용자가 인터넷 뱅킹 등 고도의 보안을 필요로 하는 특정 작업을 수행하는 동안 사용자 작업에 필수적이지 않은 다른 프로그램들이 정상인지 아닌지를 구분하지 않고, 사용자에게 필수적인지 아닌지를 구분하여 필수적이지 않은 것을 모두 일시 중지시켜 사용자 작업을 시작하기 직전에 보호기능을 동작시킴에 따라 크래킹 코드가 설치해 둔 SDT, IDT등 모든 훅을 제거할 수 있다.The thread scheduling system and method thereof according to the present invention do not distinguish whether other programs that are not essential to user tasks are normal while the user performs a specific task requiring high security such as Internet banking. In addition, it can remove all hooks such as SDT and IDT installed by the cracking code by activating the protection function just before starting the user work by pausing all the non-essentials by distinguishing whether it is essential to the user or not.

또한, 모든 쓰레드가 일시중지되어 있기 때문에 크래킹 코드가 훅을 다시 설치할 기회를 조차 얻지 못한다. 따라서, 사용자 작업이 이루어지는 동안 신뢰할 수 없는 훅이 동작하지 않는 것을 보장할 수 있다.Also, because all threads are suspended, the cracking code won't even get a chance to reinstall the hook. Thus, it is possible to ensure that unreliable hooks do not work while a user operation is taking place.

또한, 사용자 작업에 꼭 필요한 쓰레드만 실행함으로써 메모리 조작 등 일반적인 프로그램의 동작과 유사하게 동작하여 식별해 내는 것이 사실상 불가능한 해킹코드에 의한 공격도 차단할 수 있다.In addition, by executing only the threads necessary for the user's work, it can block attacks by hacking code that is virtually impossible to identify and operate similar to the operation of general programs such as memory manipulation.

또한, 시스템 내에 스파이웨어나 키로거 등 보호대상 프로세스를 공격할 준비를 하고 있는 악성코드가 실행되고 있었다 해도 사용자 작업이 이루어지는 동안은 그 실행이 멈추기 때문에 사용자 작업을 안전하게 보호할 수 있다. In addition, even if malicious code that is prepared to attack a protected process, such as spyware or keylogger, is executed in the system, the execution is stopped while the user's work is performed, thereby protecting the user's work.

또한, 필수적이지 않은 프로그램을 모두 일시 중지시킴으로써 크래킹코드 또한 실행이 일시중지되며 이 상태가 유지되는 동안 인터넷 뱅킹 등을 수행하는 사용자 작업은 안전하게 보호가 된다.In addition, by suspending all non-essential programs, the cracking code is also paused, and the user's work such as Internet banking is secured while this state is maintained.

이하에서는 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 상술하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1에는 본 발명의 실시예에 따른 쓰레드 스케줄링(Thread Scheduling) 시스템의 개략적인 구성도를 도시한다.1 is a schematic structural diagram of a thread scheduling system according to an embodiment of the present invention.

도 1에 도시한 바와 같이, 상기 시스템은, 컴퓨터 운영 환경에서 생성된 다수의 프로세스에 할당되는 전체 쓰레드 중 특정 쓰레드를 선별하기 위한 쓰레드 검출 모듈(100); 상기 쓰레드 검출 모듈(100)에 의해 선별된 특정 쓰레드의 실행 상 태를 결정하는 쓰레드 실행 모듈(200); 및 쓰레드 검출 모듈(100)에 의해 선별된 필수 쓰레드에 의해 호출되는 다수의 모듈 중 변조된 모듈을 확인하는 변조 확인 모듈(300);을 포함하는 구성을 갖는다. 참고로, 상기 컴퓨터 운영 환경에 존재하는 전체 쓰레드는, 운영 체제에 의해 다양한 목적으로 생성된 다수의 프로세스에 할당되어 생성되며, 일반 어플리케이션이 생성한 쓰레드와 섞여 단일 큐(Queue)로 관리된다. 아울러, 특정 프로세스에 대응하는 쓰레드는 그 양(Quantum)에 따라 중앙처리장치(CPU)의 처리 시간이 할당되어 다중 작업의 형식으로 처리된다.As shown in FIG. 1, the system includes a thread detection module 100 for selecting a specific thread among all threads allocated to a plurality of processes created in a computer operating environment; A thread execution module 200 for determining an execution state of a specific thread selected by the thread detection module 100; And a modulation confirmation module 300 for identifying a modulated module among a plurality of modules called by the required threads selected by the thread detection module 100. For reference, all threads existing in the computer operating environment are generated by being allocated to a plurality of processes created for various purposes by the operating system, and are mixed with threads generated by a general application and managed as a single queue. In addition, a thread corresponding to a specific process is allocated a processing time of a CPU according to the quantity, and is processed in a multi-task format.

상기 쓰레드 검출 모듈(100)은 컴퓨터 운영 환경에서 사용자 작업 예컨대, 인터넷 뱅킹 등 고도의 보안을 필요로 하는 특정 작업을 보호하기 위해 상기 컴퓨터 운영 환경에 존재하는 전체 쓰레드 중 필수 쓰레드를 선별한다. 즉, 쓰레드 검출 모듈(100)은 컴퓨터 운영 환경에서 다양한 목적으로 생성된 다수의 프로세스에 할당된 전체 쓰레드를 검색하고, 검색된 전체 쓰레드 중 상기 사용자 작업에 필요한 필수 쓰레드만을 선별한다.The thread detection module 100 selects an essential thread from all the threads present in the computer operating environment in order to protect a user operation in a computer operating environment, for example, a specific job requiring high security such as Internet banking. That is, the thread detection module 100 searches the entire threads allocated to a plurality of processes created for various purposes in the computer operating environment, and selects only the necessary threads necessary for the user's work among the found total threads.

이를 위해, 쓰레드 검출 모듈(100)은 컴퓨터 운영 체제가 제공하는 특정 함수 예컨대, API(Application Programming Interface) 함수를 이용하여 컴퓨터 운영 환경에 존재하는 전체 쓰레드를 열거한다. 바람직하게는, 쓰레드 검출 모듈(100)은 은폐된 쓰레드를 찾아내기 위해서 상기 운영 체제가 제공하는 특정 함수 대신, 커널(Kernel) 쓰레드 스케줄러에서 제공되는 리스트를 직접 검색하여 전체 쓰레드를 검색한다.To this end, the thread detection module 100 enumerates all the threads present in the computer operating environment by using a specific function provided by the computer operating system, for example, an API (Application Programming Interface) function. Preferably, the thread detection module 100 searches the entire thread by directly searching the list provided by the kernel thread scheduler, instead of the specific function provided by the operating system, to find the hidden thread.

또한, 쓰레드 검출 모듈(100)은 상기 필수 쓰레드에 의해 호출되는 특정 모 듈의 목록을 기 저장하는 화이트 리스트를 참조하여, 컴퓨터 운영 환경에 존재하는 전체 쓰레드 중 사용자 작업에 필요한 필수 쓰레드만을 선별한다. 보다 구체적으로, 쓰레드 검출 모듈(100)은 상기 필수 쓰레드에 의해 메모리에 로딩되는 다수의 모듈과 상기 화이트 리스트에 기저장된 특정 모듈 목록과의 일치 여부를 확인함으로써 전체 쓰레드에서 필수 쓰레드를 선별한다. 이때, 선별되는 필수 쓰레드는, 상기 컴퓨터 운영 환경을 제공하기 위한 필수 프로세스가 갖는 쓰레드 및 상기 사용자 작업을 위한 어플리케이션이 갖는 쓰레드를 포함한다.In addition, the thread detection module 100 refers to a white list that previously stores a list of specific modules called by the required threads, and selects only the necessary threads required for user operations among all threads existing in the computer operating environment. More specifically, the thread detection module 100 selects a mandatory thread from all threads by checking whether the plurality of modules loaded into the memory by the mandatory thread matches a specific module list previously stored in the white list. At this time, the required threads to be selected include a thread of the essential process for providing the computer operating environment and a thread of the application for the user task.

상기 쓰레드 실행 모듈(200)은 상기 사용자 작업 진행에 따라, 쓰레드 검출 모듈(100)에 의해 선별된 필수 쓰레드를 제외시킨 상기 전체 쓰레드의 실행을 중지시키고, 상기 선별된 필수 쓰레드만을 실행시키며, 사용자 작업이 중지 또는 종료될 경우에만 실행이 중지된 쓰레드를 재실행시킨다.The thread execution module 200 suspends execution of the entire thread excluding the required thread selected by the thread detection module 100, and executes only the selected required thread as the user task progresses. Only when it stops or terminates will the thread resume execution.

이를 위해, 쓰레드 실행 모듈(200)은 컴퓨터 운영 체제가 제공하는 API 함수에 포함된 함수 예컨대, 'Suspend Thread' 함수를 호출하여 운영 체제가 쓰레드 검츌 모듈(100)에 의해 선별된 필수 쓰레드를 제외한 전체 쓰레드의 실행을 일시 중지시킨다.To this end, the thread execution module 200 calls a function included in an API function provided by the computer operating system, for example, a 'Suspend Thread' function, so that the operating system includes all of the threads except the required threads selected by the thread detection module 100. Suspend execution of a thread.

또는, 쓰레드 실행 모듈(200)은 상기 'Suspend Thread' 함수의 호출을 인식한 특정 해킹 프로그램의 회피 동작을 수행하는 것을 방지하기 위해 커널 쓰레드 스케줄러의 목록에서 해당 쓰레드 목록을 제외시켜 상기 선별된 필수 쓰레드를 제외한 전체 쓰레드의 실행을 중지시킨다.Alternatively, the thread execution module 200 excludes the thread list from the list of kernel thread schedulers to prevent the hacking operation of a specific hacking program that recognizes the call of the 'Suspend Thread' function. Stop execution of all threads except.

한편, 쓰레드 실행 모듈(200)은 선별된 필수 쓰레드를 제외한 전체 쓰레드의 실행을 중지시키는 것과는 달리, 상기 전체 쓰레드의 실행을 중지시키며, 상기 중지된 전체 쓰레드 중 상기 선별된 필수 쓰레드만을 재실행시키는 방법의 적용 또한 가능하다.On the other hand, the thread execution module 200, unlike stopping the execution of all the threads except the selected mandatory thread, the execution of the entire thread, the method of re-executing only the selected mandatory thread of the suspended all threads Application is also possible.

상기 변조 확인 모듈(300)은 상기 선별된 필수 쓰레드에 의해 호출되는 다수의 모듈 중 변조된 모듈을 확인하여 원본으로 복구시킨다.The modulation confirmation module 300 checks the modulated module among the plurality of modules called by the selected essential thread and restores it to the original.

보다 구체적으로, 변조 확인 모듈(300)은 시스템에 로드되어 있거나, 선별된 필수 쓰레드에 의해 호출되는 다수의 모듈의 서명 정보 및 해쉬값을 토대로 변조된 모듈을 확인한다.More specifically, the modulation verification module 300 identifies the modulated module based on the signature information and hash values of the plurality of modules loaded in the system or called by the selected mandatory thread.

또한, 변조 확인 모듈(300)은 사용자 작업 진행에 따라 상기 다수의 모듈이 메모리에 동일하게 로딩되어 있는지를 확인하고, 다수의 모듈 중 특정 모듈이 상기 메모리에 동일하게 로딩되어 있지 않을 경우, 해당 모듈을 백업(Backup)하고 원본 모듈을 복구시킨다. 이때, 동일하지 않은 특정 모듈은 보안 프로그램이나 운영 체제 등 정상적인 프로그램에 의해 변경되었을 수 있으나, 보호하려는 사용자 작업과는 무관하기 때문에 변경 사항을 임시로 복구하여도 사용자 작업에는 영향을 미치지 않는다.In addition, the modulation check module 300 checks whether the plurality of modules are identically loaded in the memory as the user progresses, and if a specific module among the plurality of modules is not identically loaded in the memory, the corresponding module Backup and restore the original module. In this case, specific modules that are not identical may be changed by a normal program such as a security program or an operating system, but are not related to the user's work to be protected, but even if the change is temporarily restored, the user's work is not affected.

아울러, 변조 확인 모듈(300)은 원본 모듈에 의해서 생성되는 IDT(Interrupt Descriptor Table), SSDT(System Service Dispatch Table), 및 IRPFT(Driver' I/O Request Packet Function Table)의 변조 상태를 확인하고, 특정 테이블이 변조되었을 경우, 해당 테이블을 상기 원본 모듈에 존재하는 원본으로 복구시킨다.In addition, the modulation check module 300 checks the modulation state of the Interrupt Descriptor Table (IDT), the System Service Dispatch Table (SSDT), and the Driver 'I / O Request Packet Function Table (IRPFT) generated by the original module, If a specific table has been tampered with, the table is restored to the original existing in the original module.

한편, 변조 확인 모듈(300)은 사용자 작업의 실행동안 대기하고, 상기 사용 자 작업이 중지될 경우, 상기 원본으로 복구된 해당 모듈을 백업된 모듈로 전환함으로써, 사용자 작업을 보호하기 전의 컴퓨터 운영환경으로 복구되도록 한다.On the other hand, the tamper check module 300 waits for the execution of the user task, and when the user task is stopped, by converting the module restored to the original into a backup module, the computer operating environment before protecting the user task To recover.

이하, 도 2를 참조하여 본 발명의 실시예에 따른 실행 이미지의 원본 코드 생성 방법을 설명하기로 한다. 여기서, 도 2는 본 발명의 제 1 실시예에 따른 실행 이미지의 원본 코드 생성 방법을 설명하기 위한 개략적인 순서도이다.Hereinafter, a method of generating original code of an execution image according to an embodiment of the present invention will be described with reference to FIG. 2. 2 is a schematic flowchart illustrating a method of generating original code of an execution image according to a first embodiment of the present invention.

먼저, 컴퓨터 운영 환경에 존재하는 전체 쓰레드를 검색한다(S110). 바람직하게는, 쓰레드 검출 모듈(100)이 컴퓨터 운영 체제가 제공하는 특정 함수 예컨대, API 함수를 이용하여 컴퓨터 운영 환경에 존재하는 전체 쓰레드를 열거하거나, 쓰레드 검출 모듈(100)은 은폐된 쓰레드를 찾아내기 위해서 상기 운영 체제가 제공하는 특정 함수 대신, 커널(Kernel) 쓰레드 스케줄러에서 제공되는 리스트를 직접 검색하여 전체 쓰레드를 검색한다.First, the entire thread existing in the computer operating environment is searched for (S110). Preferably, the thread detection module 100 enumerates all the threads present in the computer operating environment using a specific function provided by the computer operating system, such as an API function, or the thread detection module 100 searches for a concealed thread. Instead of a specific function provided by the operating system, the entire thread is searched directly by searching the list provided by the kernel thread scheduler.

그런 다음, 사용자 작업 보호를 위해 상기 검색된 전체 쓰레드 중 필수 쓰레드를 선별한다(S110). 바람직하게는, 쓰레드 검출 모듈(100)이 상기 필수 쓰레드에 의해 호출되는 특정 모듈의 목록을 기 저장하는 화이트 리스트를 참조하여, 컴퓨터 운영 환경에 존재하는 전체 쓰레드 중 사용자 작업에 필요한 필수 쓰레드만을 선별한다. 보다 구체적으로, 쓰레드 검출 모듈(100)은 상기 필수 쓰레드에 의해 메모리에 로딩되는 다수의 모듈과 상기 화이트 리스트에 기저장된 특정 모듈 목록과의 일치 여부를 확인함으로써, 전체 쓰레드에서 필수 쓰레드를 선별한다. 이때, 선별되는 필수 쓰레드는, 상기 컴퓨터 운영 환경을 제공하기 위한 필수 프로세스가 갖는 쓰레드 및 상기 사용자 작업을 위한 어플리케이션이 갖는 쓰레드를 포함한다.Then, the required thread is selected from all the searched threads to protect the user's work (S110). Preferably, the thread detection module 100 selects only the necessary threads required for the user's work among all the threads existing in the computer operating environment with reference to a white list which previously stores a list of specific modules called by the required threads. . More specifically, the thread detection module 100 selects required threads from all threads by checking whether the plurality of modules loaded in the memory by the required threads match a specific module list previously stored in the white list. At this time, the required threads to be selected include a thread of the essential process for providing the computer operating environment and a thread of the application for the user task.

그리고 나서, 선별된 필수 쓰레드를 제외한 상기 전체 쓰레드의 실행을 중지시킨다(S130). 바람직하게는, 쓰레드 실행 모듈(200)이 컴퓨터 운영 체제가 제공하는 API 함수에 포함된 예컨대, 'Suspend Thread' 함수를 호출하여 쓰레드 검츌 모듈(100)에 의해 선별된 필수 쓰레드를 제외한 전체 쓰레드의 실행을 일시 중지시킨다. 또한, 상기 'Suspend Thread' 함수의 호출을 인식한 특정 해킹 프로그램의 회피 동작을 수행하는 것을 방지하기 위해 커널 쓰레드 스케줄러의 목록에서 해당 쓰레드 목록을 제외시킴으로써, 상기 선별된 필수 쓰레드를 제외한 전체 쓰레드의 실행을 중지시킨다. 한편, 쓰레드 실행 모듈(200)은 단계 'S130'같이 선별된 필수 쓰레드를 제외한 전체 쓰레드의 실행을 중지시키는 것과는 달리, 상기 전체 쓰레드의 실행을 중지시키며, 상기 중지된 전체 쓰레드 중 상기 선별된 필수 쓰레드만을 재실행시키는 방법의 적용 또한 가능하다. 즉, 컴퓨터 운영 체제가 제공하는 API 함수를 호출하여 전체 쓰레드의 실행을 중지시키고, 상기 실행이 중지된 전체 쓰레드 중 상기 선별된 필수 쓰레드만을 재실행시키거나, 또는 커널 쓰레드 스케줄러의 목록에서 해당 쓰레드 목록을 제외시켜 상기 전체 쓰레드의 실행을 중지시키고, 상기 커널 쓰레드 스케줄러 목록에 상기 선별된 필수 쓰레드 목록만을 추가하여 재실행시킬 수 있다.Then, the execution of the entire thread except the selected required thread is stopped (S130). Preferably, the thread execution module 200 calls the 'Suspend Thread' function included in the API function provided by the computer operating system, for example, to execute the entire thread except the required threads selected by the thread detection module 100. Pause In addition, by excluding the thread list from the list of kernel thread schedulers in order to prevent a specific hacking program from recognizing the call of the 'Suspend Thread' function, the entire thread execution except the selected required threads is executed. Stops. On the other hand, the thread execution module 200 stops the execution of the entire thread, unlike stopping the entire thread except the essential thread selected as step 'S130', the selected required thread of the suspended all threads It is also possible to apply the method to rerun only. That is, the API function provided by the computer operating system is called to stop the execution of all threads, to re-execute only the selected required threads among all the threads that are stopped, or to list the threads in the list of kernel thread schedulers. By removing the entire thread, the execution of the entire thread can be stopped, and only the selected essential thread list can be added to the kernel thread scheduler list and executed again.

그런 다음, 상기 사용자 작업 진행에 따라 메모리에 로딩된 다수의 모듈 중 변조된 모듈을 확인하여 원본으로 복구시킨다(S140). 바람직하게는, 변조 확인 모듈(300)은 선별된 필수 쓰레드에 의해 호출되는 다수의 모듈의 서명 정보 및 해쉬 값을 토대로 변조된 모듈을 확인한다. 또한, 사용자 작업 진행에 따라 메모리에 기로딩되어 있는 특정 모듈 및 상기 필수 쓰레드에 의해 호출되는 다수의 모듈이 메모리에 동일하게 로딩되어 있는지를 확인하고, 다수의 모듈 중 특정 모듈이 상기 메모리에 동일하게 로딩되어 있지 않을 경우, 해당 모듈을 백업(Backup)하고 원본 모듈을 복구시킨다. 이때, 동일하지 않은 특정 모듈은 보안 프로그램이나 운영 체제 등 정상적인 프로그램에 의해 변경되었을 수 있으나, 보호하려는 사용자 작업과는 무관하기 때문에 변경 사항을 임시로 복구하여도 사용자 작업에는 영향을 미치지 않는다. 아울러, 변조 확인 모듈(300)은 원본 모듈에 의해서 생성되는 IDT(Interrupt Descriptor Table), SSDT(System Service Dispatch Table), 및 IRPFT(Driver' I/O Request Packet Function Table)의 변조 상태를 확인하고, 특정 테이블이 변조되었을 경우, 해당 테이블을 상기 원본 모듈에 존재하는 원본으로 복구시킨다.Then, the modulated module of the plurality of modules loaded into the memory is identified as the user's work progresses and is restored to the original (S140). Preferably, the modulation verification module 300 identifies the modulated module based on the signature information and hash values of the plurality of modules called by the selected mandatory thread. In addition, as a user progresses, it is checked whether a specific module loaded in the memory and a plurality of modules called by the required thread are loaded in the same memory. If it is not loaded, back up the module and restore the original module. In this case, specific modules that are not identical may be changed by a normal program such as a security program or an operating system, but are not related to the user's work to be protected, but even if the change is temporarily restored, the user's work is not affected. In addition, the modulation check module 300 checks the modulation state of the Interrupt Descriptor Table (IDT), the System Service Dispatch Table (SSDT), and the Driver 'I / O Request Packet Function Table (IRPFT) generated by the original module, If a specific table has been tampered with, the table is restored to the original existing in the original module.

이후, 사용자 작업 중지에 따라 실행이 중지된 쓰레드를 재실행한다(S150-S160). 바람직하게는, 쓰레드 검출 모듈(100)은 실행 중지 상태인 선별된 필수 쓰레드를 제외시킨 상기 전체 쓰레드를 재실행시킨다. 아울러, 변조 확인 모듈(300)은 상기 원본으로 복구된 해당 모듈을 백업된 모듈로 전환함으로써, 사용자 작업 이전의 정상적인 컴퓨터 운영 환경으로 복구되도록 한다.Thereafter, the thread which is stopped in response to the user's work stop is re-executed (S150-S160). Preferably, the thread detection module 100 re-executes the entire thread excluding selected essential threads that are in the suspended state. In addition, the tamper check module 300 converts the module restored to the original into a backed up module, thereby restoring to the normal computer operating environment before the user's work.

지금까지 본 발명을 바람직한 실시예를 참조하여 상세히 설명하였지만, 본 발명이 상기한 실시예에 한정되는 것은 아니며, 이하의 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 또는 수정이 가능한 범위까지 본 발명의 기술적 사상이 미친다 할 것이다.Although the present invention has been described in detail with reference to the preferred embodiments, the present invention is not limited to the above-described embodiments, and the present invention belongs to the present invention without departing from the gist of the present invention as claimed in the following claims. Anyone skilled in the art will have the technical idea of the present invention to the extent that various modifications or changes are possible.

본 발명에 따른 쓰레드 스케줄링 시스템 및 그 방법은 대상을 보호하기 위하여 해킹코드를 식별해 낼 필요가 없고 알려지지 않은 미래의 해킹에도 대응할 수 있다는 점에서 기존의 기술의 한계를 뛰어 넘음에 따라 관련 기술에 대한 이용만이 아닌 적용되는 장치의 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있는 발명이다.The thread scheduling system and method thereof according to the present invention do not need to identify hacking codes to protect the target, and can cope with unknown future hacking in that it overcomes the limitations of the existing technology. It is an invention that is industrially applicable because not only the use but also the possibility of commercialization or operation of the applied device is not only sufficient, but also practically obvious.

본 명세서에서 첨부되는 다음의 도면들은 본 발명의 바람직한 실시예를 예시하는 것이며, 후술하는 발명의 상세한 설명과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되어서는 아니된다.The following drawings, which are attached in this specification, illustrate preferred embodiments of the present invention, and together with the detailed description of the present invention, serve to further understand the technical spirit of the present invention. It should not be construed as limited to.

도 1은 본 발명의 실시예에 따른 쓰레드 스케줄링(Thread Scheduling) 시스템의 개략적인 구성도.1 is a schematic block diagram of a thread scheduling system according to an embodiment of the present invention.

도 2는 본 발명의 실시예에 따른 쓰레드 스케줄링 방법을 설명하기 위한 개략적인 순서도.2 is a schematic flowchart illustrating a thread scheduling method according to an embodiment of the present invention.

*도면의 주요 부분에 대한 부호의 설명** Description of the symbols for the main parts of the drawings *

100: 쓰레드 검출 모듈100: thread detection module

200: 쓰레드 실행 모듈200: thread execution module

300: 변조 확인 모듈300: modulation check module

Claims (31)

컴퓨터 운영 환경에서 사용자 작업 보호를 위한 쓰레드 스케줄링(Thread Scheduling) 시스템에 있어서,A thread scheduling system for protecting user tasks in a computer operating environment, 상기 사용자 작업 보호를 위해 상기 컴퓨터 운영 환경에 존재하는 전체 쓰레드 중 필수 쓰레드를 선별하는 쓰레드 검출 모듈; 및A thread detection module for selecting essential threads among all threads existing in the computer operating environment to protect the user work; And 상기 사용자 작업 진행에 따라, 상기 선별된 필수 쓰레드를 제외시킨 상기 전체 쓰레드의 실행을 중지시키고, 상기 선별된 필수 쓰레드만을 실행시키는 쓰레드 실행 모듈;을 포함하며And a thread execution module configured to stop execution of the entire thread except the selected essential thread and to execute only the selected essential thread as the user operation proceeds. 상기 쓰레드 검출 모듈은,The thread detection module, 상기 필수 쓰레드에 의해 호출되는 특정 모듈의 목록을 기 저장하는 화이트 리스트를 토대로, 메모리에 로딩되는 다수의 모듈과 상기 화이트 리스트에 기저장된 모듈 목록과의 일치 여부를 확인함으로써 전체 쓰레드에서 필수 쓰레드를 선별하는 것을 특징으로 하는 쓰레드 스케줄링 시스템.Based on a white list which previously stores a list of specific modules called by the required thread, the required threads are selected from all threads by checking whether a plurality of modules loaded in the memory matches a list of modules stored in the white list. Thread scheduling system, characterized in that. 제 1 항에 있어서, 상기 시스템은,The system of claim 1, wherein the system is 상기 선별된 필수 쓰레드에 의해 호출되는 다수의 모듈 중 변조된 모듈을 확인하여 원본으로 복구시키는 변조 확인 모듈;을 더 포함하는 것을 특징으로 하는 쓰레드 스케줄링 시스템.And a modulation check module for checking a modulated module among the plurality of modules called by the selected essential thread and restoring it to the original. 제 1 항에 있어서, 상기 쓰레드 검출 모듈은,The method of claim 1, wherein the thread detection module, 상기 검색된 전체 쓰레드 중 상기 컴퓨터 운영 환경을 제공하기 위한 필수 프로세스가 갖는 쓰레드 및 상기 사용자 작업을 위한 어플리케이션이 갖는 쓰레드를 포함하는 상기 필수 쓰레드를 선별하는 것을 특징으로 하는 쓰레드 스케줄링 시스템.And selecting the required threads including the threads of the found process and the threads of the application for the user's work. 삭제delete 제 3 항에 있어서, 상기 쓰레드 검출 모듈은,The method of claim 3, wherein the thread detection module, 컴퓨터 운영 환경의 커널(Kernel) 쓰레드 스케줄러에서 제공되는 쓰레드 목록을 토대로 상기 컴퓨터 운영 환경에 존재하는 상기 전체 쓰레드를 검색하는 것을 특징으로 하는 쓰레드 스케줄링 시스템.And retrieving the entire thread existing in the computer operating environment based on a list of threads provided by a kernel thread scheduler of a computer operating environment. 제 1 항에 있어서, 상기 쓰레드 실행 모듈은,The method of claim 1, wherein the thread execution module, 컴퓨터 운영 체제가 제공하는 특정 함수를 호출하여 상기 선별된 필수 쓰레드를 제외한 상기 전체 쓰레드의 실행을 중지시키는 것을 특징으로 하는 쓰레드 스케줄링 시스템.And calling a specific function provided by a computer operating system to stop execution of the entire thread except the selected required thread. 제 1 항에 있어서, 상기 쓰레드 실행 모듈은,The method of claim 1, wherein the thread execution module, 커널 쓰레드 스케줄러의 목록에서 해당 쓰레드 목록을 제외시켜 상기 선별된 필수 쓰레드를 제외한 전체 쓰레드의 실행을 중지시키는 것을 특징으로 하는 쓰레드 스케줄링 시스템.The thread scheduling system of claim 1, wherein the thread list scheduler excludes the thread list from the kernel thread scheduler and stops the execution of all threads except the selected required threads. 제 2 항에 있어서, 상기 변조 확인 모듈은,The method of claim 2, wherein the modulation confirmation module, 상기 선별된 필수 쓰레드에 의해 호출되는 다수의 모듈의 서명 정보 및 해쉬값을 토대로 변조된 모듈을 확인하며, 상기 사용자 작업 진행에 따라 메모리에 기로딩되어 있는 특정 모듈을 포함하는 상기 다수의 모듈이 메모리에 동일하게 로딩되어 있는지를 확인하는 것을 특징으로 하는 쓰레드 스케줄링 시스템.The plurality of modules including a specific module is identified as a module modulated on the basis of the signature information and the hash value of the plurality of modules called by the selected mandatory thread, and is loaded into the memory as the user's operation proceeds. Thread scheduling system, characterized in that to check whether the same loading. 제 8 항에 있어서, 상기 변조 확인 모듈은,The method of claim 8, wherein the modulation confirmation module, 상기 다수의 모듈 중 특정 모듈이 상기 메모리에 동일하게 로딩되어 있지 않을 경우, 해당 모듈을 백업(Backup)하고 원본 모듈을 복구시키는 것을 특징으로 하는 쓰레드 스케줄링 시스템.And if a particular module of the plurality of modules is not loaded in the memory identically, back up the corresponding module and restore the original module. 제 9 항에 있어서, 상기 변조 확인 모듈은,10. The method of claim 9, wherein the modulation confirmation module, 상기 원본 모듈에 의해서 생성되는 IDT(Interrupt Descriptor Table), SSDT(System Service Dispatch Table), 및 IRPFT(Driver' I/O Request Packet Function Table)의 변조상태를 확인하여, 상기 원본 모듈에 존재하는 원본 테이블로 복구시키는 것을 특징으로 하는 쓰레드 스케줄링 시스템.An original table existing in the original module by checking the modulation state of an interrupt descriptor table (IDT), a system service dispatch table (SSDT), and a driver 'I / O request packet function table (IRPFT) generated by the original module. Thread scheduling system, characterized in that the recovery. 제 10 항에 있어서, 상기 변조 확인 모듈은,The method of claim 10, wherein the modulation confirmation module, 상기 사용자 작업이 중지될 경우, 상기 원본으로 복구된 해당 모듈을 상기 백업된 모듈로 전환하는 것을 특징으로 하는 쓰레드 스케줄링 시스템.And when the user task is suspended, converting the corresponding module restored to the original into the backed up module. 컴퓨터 운영 환경에서 사용자 작업 보호를 위한 쓰레드 스케줄링(Thread Scheduling) 방법에 있어서,In the thread scheduling method for protecting user operations in a computer operating environment, a) 상기 컴퓨터 운영 환경에 존재하는 전체 쓰레드를 검색하는 단계;a) retrieving entire threads residing in the computer operating environment; b) 상기 사용자 작업 보호를 위해 상기 검색된 전체 쓰레드 중 필수 쓰레드를 선별하는 단계;b) selecting required threads among the searched total threads to protect the user task; c) 상기 선별된 필수 쓰레드를 제외한 상기 전체 쓰레드의 실행을 중지시키는 단계;c) stopping execution of the entire thread except the selected required thread; d) 상기 사용자 작업 진행에 따라 메모리에 로딩된 다수의 모듈 중 변조된 모듈을 확인하여 원본으로 복구시키는 단계; 및d) identifying a modulated module among a plurality of modules loaded in a memory as the user's work progresses and restoring the original; And e) 상기 사용자 작업 중지에 따라 상기 실행이 중지된 쓰레드를 재실행하는 단계;를 포함하며e) re-running the thread where execution has been suspended according to the stopping of the user's work; 상기 b) 단계는 Step b) 필수 쓰레드에 의해 호출되는 특정 모듈의 목록을 기 저장하는 화이트 리스트를 토대로, 메모리에 로딩되는 다수의 모듈중에서 상기 화이트 리스트에 기저장된 특정 모듈 목록과의 일치 여부를 확인함으로써 전체 쓰레드에서 필수 쓰레드를 선별하는 것을 특징으로 하는 쓰레드 스케줄링 방법.Based on a white list that stores a list of specific modules called by the required threads, the required threads are selected from all the threads by checking whether among the modules loaded in the memory match the list of specific modules already stored in the white list. Thread scheduling method, characterized in that. 제 12 항에 있어서, 상기 a) 단계는,The method of claim 12, wherein step a) comprises: 컴퓨터 운영 환경의 커널(Kernel) 쓰레드 스케줄러에서 제공되는 쓰레드 목록을 토대로 상기 컴퓨터 운영 환경에 존재하는 상기 전체 쓰레드를 검색하는 것을 특징으로 하는 쓰레드 스케줄링 방법.And retrieving the entire thread existing in the computer operating environment based on a list of threads provided by a kernel thread scheduler of a computer operating environment. 제 12 항에 있어서, 상기 b) 단계는,The method of claim 12, wherein b), 상기 검색된 전체 쓰레드 중 상기 컴퓨터 운영 환경을 위한 필수 프로세스가 갖는 쓰레드 및 상기 사용자 작업을 위한 어플리케이션이 갖는 쓰레드를 포함하는 상기 필수 쓰레드를 선별하는 것을 특징으로 하는 쓰레드 스케줄링 방법.And selecting the mandatory threads among the searched total threads including the thread owned by an essential process for the computer operating environment and a thread included in an application for the user task. 삭제delete 제 12 항에 있어서, 상기 c) 단계는,The method of claim 12, wherein step c) 컴퓨터 운영 체제가 제공하는 특정 함수를 호출하여 상기 선별된 필수 쓰레드를 제외한 상기 전체 쓰레드의 실행을 중지시키는 것을 특징으로 하는 쓰레드 스케줄링 방법.And calling a specific function provided by a computer operating system to stop execution of the entire thread except the selected required thread. 제 12 항에 있어서, 상기 c) 단계는,The method of claim 12, wherein step c) 컴퓨터 운영 환경의 커널 쓰레드 스케줄러의 목록에서 해당 쓰레드 목록을 제외시켜 상기 선별된 필수 쓰레드를 제외한 전체 쓰레드의 실행을 중지시키기 위해 것을 특징으로 하는 쓰레드 스케줄링 방법.Threading schedule method, characterized in that to stop the execution of the entire thread except the selected required thread by excluding the thread list from the list of kernel thread scheduler of the computer operating environment. 제 12 항에 있어서, 상기 d) 단계는,The method of claim 12, wherein d) 상기 선별된 필수 쓰레드에 의해 호출되는 다수의 모듈의 서명 정보 및 해쉬값을 토대로 변조된 모듈을 확인하며, 상기 사용자 작업 진행에 따라 상기 메모리에 기로딩되어 있는 특정 모듈 및 필수 쓰레드에 의해 호출되는 다수의 모듈이 상기 메모리에 동일하게 로딩되어 있는지를 확인하는 것을 특징으로 하는 쓰레드 스케줄링 방법.Identify the modulated module based on the signature information and the hash value of the plurality of modules called by the selected mandatory thread, and the number of called by the particular module and mandatory thread preloaded in the memory as the user progresses. Checking whether a module of the same is loaded in the memory. 제 18 항에 있어서, 상기 d) 단계는,The method of claim 18, wherein the d) step, 상기 다수의 모듈 중 특정 모듈이 상기 메모리에 동일하게 로딩되어 있지 않을 경우, 해당 모듈을 백업(Backup)하고 원본 모듈을 복구시키는 것을 특징으로 하는 쓰레드 스케줄링 방법.If a particular module of the plurality of modules is not the same in the memory, the thread scheduling method characterized in that the backup (Backup) the module and restore the original module. 제 19 항에 있어서, 상기 d) 단계는,The method of claim 19, wherein step d) 상기 원본 모듈에 의해서 생성되는 IDT(Interrupt Descriptor Table), SSDT(System Service Dispatch Table), 및 IRPFT(Driver' I/O Request Packet Function Table)의 변조상태를 확인하여, 상기 원본 모듈에 존재하는 원본 테이블로 복구시키는 것을 특징으로 하는 쓰레드 스케줄링 방법.An original table existing in the original module by checking the modulation state of an interrupt descriptor table (IDT), a system service dispatch table (SSDT), and a driver 'I / O request packet function table (IRPFT) generated by the original module. Thread scheduling method characterized in that the recovery. 제 20 항에 있어서, 상기 e) 단계는,The method of claim 20, wherein step e) 상기 사용자 작업이 종료됨에 따라 상기 원본으로 복구된 해당 모듈을 상기 백업된 모듈로 전환하는 것을 특징으로 하는 쓰레드 스케줄링 방법.And changing the module restored to the original to the backed up module as the user task ends. 컴퓨터 운영 환경에서 사용자 작업 보호를 위한 쓰레드 스케줄링(Thread Scheduling) 방법에 있어서,In the thread scheduling method for protecting user operations in a computer operating environment, 가) 상기 컴퓨터 운영 환경에 존재하는 전체 쓰레드를 검색하는 단계;A) searching for all threads that exist in the computer operating environment; 나) 상기 사용자 작업 보호를 위해 상기 검색된 전체 쓰레드 중 필수 쓰레드를 선별하는 단계;B) selecting a mandatory thread among the searched total threads to protect the user task; 다) 상기 전체 쓰레드의 실행을 중지시키며, 상기 중지된 전체 쓰레드 중 상기 선별된 필수 쓰레드만을 재실행시키는 단계;C) stopping execution of the entire thread and rerunning only the selected essential threads of the suspended total threads; 라) 상기 사용자 작업 진행에 따라 메모리에 로딩된 다수의 모듈 중 변조된 모듈을 확인하여 원본으로 복구시키는 단계; 및Identifying a modulated module among a plurality of modules loaded in a memory as the user's work progresses and recovering the original module; And 마) 상기 사용자 작업 중지에 따라 상기 실행이 중지된 쓰레드를 재실행하는 단계;를 포함하며,E) re-running the thread where execution is suspended according to the user task suspension; 상기 나) 단계는 Step b) above 필수 쓰레드에 의해 호출되는 특정 모듈의 목록을 기 저장하는 화이트 리스트를 토대로, 메모리에 로딩되는 다수의 모듈중에서 상기 화이트 리스트에 기저장된 특정 모듈 목록과의 일치 여부를 확인함으로써 전체 쓰레드에서 필수 쓰레드를 선별하는 것을 특징으로 하는 쓰레드 스케줄링 방법.Based on a white list that stores a list of specific modules called by the required threads, the required threads are selected from all the threads by checking whether among the modules loaded in the memory match the list of specific modules already stored in the white list. Thread scheduling method, characterized in that. 제 22 항에 있어서, 상기 가) 단계는,The method of claim 22, wherein the step a) 컴퓨터 운영 환경의 커널(Kernel) 쓰레드 스케줄러에서 제공되는 쓰레드 목록을 토대로 상기 컴퓨터 운영 환경에 존재하는 상기 전체 쓰레드를 검색하는 것을 특징으로 하는 쓰레드 스케줄링 방법.And retrieving the entire thread existing in the computer operating environment based on a list of threads provided by a kernel thread scheduler of a computer operating environment. 제 22 항에 있어서, 상기 나) 단계는,The method of claim 22, wherein b), 상기 검색된 전체 쓰레드 중 상기 컴퓨터 운영 환경을 위한 필수 프로세스가 갖는 쓰레드 및 상기 사용자 작업을 위한 어플리케이션이 갖는 쓰레드를 포함하는 상기 필수 쓰레드를 선별하는 것을 특징으로 하는 쓰레드 스케줄링 방법.And selecting the mandatory threads among the searched total threads including the thread owned by an essential process for the computer operating environment and a thread included in an application for the user task. 삭제delete 제 22 항에 있어서, 상기 다) 단계는,The method of claim 22, wherein the step c) 컴퓨터 운영 체제가 제공하는 특정 함수를 호출하여 상기 전체 쓰레드의 실행을 중지시키며, 상기 실행이 중지된 전체 쓰레드 중 상기 선별된 필수 쓰레드만을 재실행시키는 것을 특징으로 하는 쓰레드 스케줄링 방법.Calling a specific function provided by a computer operating system to stop execution of the entire thread, and re-executing only the selected essential thread among all the threads that are suspended. 제 22 항에 있어서, 상기 다) 단계는,The method of claim 22, wherein the step c) 컴퓨터 운영 환경의 커널 쓰레드 스케줄러의 목록에서 해당 쓰레드 목록을 제외시켜 상기 전체 쓰레드의 실행을 중지시키며, 상기 커널 쓰레드 스케줄러 목록에 상기 선별된 필수 쓰레드 목록만을 추가하여 재실행시키는 것을 특징으로 하는 쓰레드 스케줄링 방법.Stopping the execution of the entire thread by excluding the thread list from the list of kernel thread scheduler of the computer operating environment, and re-running by adding only the selected list of essential threads to the kernel thread scheduler list. 제 22 항에 있어서, 상기 라) 단계는,The method of claim 22, wherein the step d) 상기 선별된 필수 쓰레드에 의해 호출되는 다수의 모듈의 서명 정보 및 해쉬값을 토대로 변조된 모듈을 확인하며, 상기 사용자 작업 진행에 따라 메모리에 기로딩되어 있는 특정 모듈 및 상기 필수 쓰레드에 의해 호출되는 다수의 모듈이 메모리에 동일하게 로딩되어 있는지를 확인하는 것을 특징으로 하는 쓰레드 스케줄링 방법.Identify the modulated module based on the signature information and the hash value of the plurality of modules called by the selected required thread, and the specific module loaded in memory as the user's work progresses and the number called by the required thread Thread scheduling method, characterized in that to ensure that the module of the same is loaded in the memory. 제 28 항에 있어서, 상기 라) 단계는,The method of claim 28, wherein step d) 상기 다수의 모듈 중 특정 모듈이 상기 메모리에 동일하게 로딩되어 있지 않을 경우, 해당 모듈을 백업(Backup)하고 원본 모듈을 복구시키는 것을 특징으로 하는 쓰레드 스케줄링 방법.If a particular module of the plurality of modules is not the same in the memory, the thread scheduling method characterized in that the backup (Backup) the module and restore the original module. 제 29 항에 있어서, 상기 라) 단계는,The method of claim 29, wherein the step d) 상기 원본 모듈에 의해서 생성되는 IDT(Interrupt Descriptor Table), SSDT(System Service Dispatch Table), 및 IRPFT(Driver' I/O Request Packet Function Table)의 변조상태를 확인하여, 상기 원본 모듈에 존재하는 원본 테이블로 복구시키는 것을 특징으로 하는 쓰레드 스케줄링 방법.An original table existing in the original module by checking the modulation state of an interrupt descriptor table (IDT), a system service dispatch table (SSDT), and a driver 'I / O request packet function table (IRPFT) generated by the original module. Thread scheduling method characterized in that the recovery. 제 30 항에 있어서, 상기 마) 단계는,The method of claim 30, wherein the step e) 상기 사용자 작업이 종료됨에 따라 상기 원본으로 복구된 해당 모듈을 상기 백업된 모듈로 전환하는 것을 특징으로 하는 쓰레드 스케줄링 방법.And changing the module restored to the original to the backed up module as the user task ends.
KR1020070107940A 2007-10-25 2007-10-25 System and method for thread scheduling KR100985047B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070107940A KR100985047B1 (en) 2007-10-25 2007-10-25 System and method for thread scheduling

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070107940A KR100985047B1 (en) 2007-10-25 2007-10-25 System and method for thread scheduling

Publications (2)

Publication Number Publication Date
KR20090042060A KR20090042060A (en) 2009-04-29
KR100985047B1 true KR100985047B1 (en) 2010-10-04

Family

ID=40764978

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070107940A KR100985047B1 (en) 2007-10-25 2007-10-25 System and method for thread scheduling

Country Status (1)

Country Link
KR (1) KR100985047B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101420592B1 (en) * 2012-12-21 2014-07-17 전남대학교산학협력단 Computer system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040062394A (en) * 2002-12-31 2004-07-07 인터내셔널 비지네스 머신즈 코포레이션 Method And Apparatus For Managing Thread Excution In A Multithreaded Application
KR20060071308A (en) * 2004-12-21 2006-06-26 마이크로소프트 코포레이션 Computer security management, such as in a virtual machine or hardened operating system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040062394A (en) * 2002-12-31 2004-07-07 인터내셔널 비지네스 머신즈 코포레이션 Method And Apparatus For Managing Thread Excution In A Multithreaded Application
KR20060071308A (en) * 2004-12-21 2006-06-26 마이크로소프트 코포레이션 Computer security management, such as in a virtual machine or hardened operating system

Also Published As

Publication number Publication date
KR20090042060A (en) 2009-04-29

Similar Documents

Publication Publication Date Title
EP3323074B1 (en) Computer security systems and methods using asynchronous introspection exceptions
US9378369B1 (en) Detection of file modifications performed by malicious codes
RU2531861C1 (en) System and method of assessment of harmfullness of code executed in addressing space of confidential process
US7665139B1 (en) Method and apparatus to detect and prevent malicious changes to tokens
US20140053267A1 (en) Method for identifying malicious executables
JP5265061B1 (en) Malicious file inspection apparatus and method
US11438349B2 (en) Systems and methods for protecting devices from malware
US8347380B1 (en) Protecting users from accidentally disclosing personal information in an insecure environment
US20110209219A1 (en) Protecting User Mode Processes From Improper Tampering or Termination
US9659173B2 (en) Method for detecting a malware
WO2014071867A1 (en) Program processing method and system, and client and server for program processing
KR100710032B1 (en) Method and system that can secure keyboard key stroke using secure input filter driver and keyboard secure input BHO of Internet Explorer in windows operating system
EP3079057B1 (en) Method and device for realizing virtual machine introspection
KR20090067569A (en) Windows kernel protection system using virtualization
JP6714112B2 (en) Mitigating malicious behavior associated with graphical user interface elements
US11263309B2 (en) Block device signature-based integrity protection for containerized applications
KR100985047B1 (en) System and method for thread scheduling
US8601584B1 (en) Protection of computers against argument switch attacks
KR100937010B1 (en) Malwareuseless process dectect/blocking and prevent recrudescence method
Lukacs et al. Hardware virtualization based security solution for embedded systems
Zaidenberg et al. Hypervisor memory introspection and hypervisor based malware honeypot
Corregedor et al. ATE: Anti-malware technique evaluator
CN106599684A (en) Detection method and system of entity file-free malicious code

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
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: 20130930

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140929

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150929

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160928

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170928

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190930

Year of fee payment: 10