KR100550792B1 - 프로그램 실행 제어 장치 및 방법 - Google Patents

프로그램 실행 제어 장치 및 방법 Download PDF

Info

Publication number
KR100550792B1
KR100550792B1 KR1020040054367A KR20040054367A KR100550792B1 KR 100550792 B1 KR100550792 B1 KR 100550792B1 KR 1020040054367 A KR1020040054367 A KR 1020040054367A KR 20040054367 A KR20040054367 A KR 20040054367A KR 100550792 B1 KR100550792 B1 KR 100550792B1
Authority
KR
South Korea
Prior art keywords
program
list
program list
execution
management
Prior art date
Application number
KR1020040054367A
Other languages
English (en)
Other versions
KR20060005530A (ko
Inventor
정준목
Original Assignee
엘지엔시스(주)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지엔시스(주) filed Critical 엘지엔시스(주)
Priority to KR1020040054367A priority Critical patent/KR100550792B1/ko
Publication of KR20060005530A publication Critical patent/KR20060005530A/ko
Application granted granted Critical
Publication of KR100550792B1 publication Critical patent/KR100550792B1/ko

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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 사용자가 요청한 프로그램의 실행을 제어하는 장치 및 방법에 관한 것으로서, 사용자가 응용 프로그램 실행을 커널에 요청하는 경우, 해당 프로그램이 커널 내의 실행 허가 프로그램 목록에 등록되어 있는지를 검색하여, 등록된 프로그램인 경우에 한하여 실행을 허가하는 프로그램 실행 제어 장치 및 방법을 제공한다. 이를 위해 상기 프로그램 목록을 갱신 및 출력하여 관리하는 방법이 추가로 제공된다. 이로써 시스템의 보안성을 향상시키고 불필요한 부하 및 자원의 낭비를 예방할 수 있게 된다.
프로그램 실행 제어, 프로그램 목록, 커널, 실행 허가

Description

프로그램 실행 제어 장치 및 방법 {Program executing contorol device and method for controlling program execution}
도 1은 종래의 기술에 의한 프로그램 실행 장치의 구조도.
도 2는 종래의 기술에 의한 프로그램 실행 과정을 나타내는 흐름도.
도 3은 본 발명에 의한 프로그램 실행 제어 장치의 구조도.
도 4는 본 발명에 의한 프로그램 실행 제어 과정을 나타내는 흐름도.
도 5는 본 발명에 의한 프로그램 목록 관리 프로그램의 실행 흐름도.
본 발명은 사용자가 요청한 프로그램의 실행을 제어하는 장치 및 방법에 관한 것으로서, 상세하게는 실행 요청된 프로그램이 프로그램 목록에 등록되어 있는지를 커널 수준에서 검색 판단하여 사전에 프로그램 목록에 등록된 프로그램에 한하여 실행시키도록 허가하는 것을 특징으로 한다.
도 1은 이러한 종래의 기술 구성에 의한 프로그램 실행 장치의 구조도를 보 여주고 있다.
종래의 구성은 임의의 응용 프로그램 실행을 요청하는 사용자(120)와 사용자가 요청한 프로그램(110)을 실행하는 실행부(100)로 구성된다. 여기서 사용자(120)는 시스템을 사용하는 모든 사용자를 나타내며, 사용자(120)가 프로그램(110)을 실행시키기 위해서는 반드시 커널에 존재하는 실행부(100)에 요청해야 한다. 사용자(120)가 실행부(100)에 프로그램의 실행을 요청하는 때에는 시스템이 제공하는 인터페이스를 사용한다. 이러한 인터페이스는 시스템에 따라 시스템 호출(system call)이나 응용 프로그램 인터페이스(Application Program Interface, API) 등으로 불리기도 한다.
실행부(100)는 커널의 일부분으로서, 사용자(120)가 요청한 프로그램을 실행하는 기능을 담당한다. 실행부(100)는 요청된 프로그램(110)이 파일 시스템에 존재하는지 및 사용자가 프로그램을 실행할 권한이 있는지 등을 확인하는 검사 모듈(102)과 검사 모듈(102)에서 에러가 없으면 프로그램(110)을 실행하고, 에러가 발견되면 에러 코드를 사용자(120)에게 리턴하는 실행 모듈(101)로 구성된다. 즉, 사용자(120)가 프로그램 실행을 요청하면 검사 모듈(102)이 유효한 프로그램인지 여부 및 사용권한 있는 사용자인지 여부를 검사하고, 이러한 검사 모듈(102)의 검사 결과에 따라 실행 모듈(101)이 프로그램을 실행하거나 에러를 리턴한다.
도 2는 종래의 기술에 의한 프로그램 실행 과정을 나타내고 있다.
사용자가 프로그램 실행을 커널에 요청하면(S201), 커널의 실행부는 사용자 가 요청한 프로그램의 파일이 파일 시스템에 존재하는지 검사한다(S203). 파일이 존재하지 않으면 사용자에게 에러를 리턴(S215)하고 프로그램 실행을 종료한다. 파일이 존재하면 사용자가 요청한 프로그램을 실행할 권한이 있는지 검사한다(S207). 사용자에게 해당 프로그램을 실행할 권한이 없으면 에러를 리턴하고(S215), 프로그램 실행을 종료한다. 그러나, 사용자가 실행 권한을 가지면 요청한 프로그램을 실행한다(S213).
이러한 종래 기술에 의하는 경우 사용자가 고의로 시스템에 악영향을 끼치는 프로그램의 실행을 요청하더라도 커널은 사용자가 요청한 모든 프로그램을 실행하게 되므로, 만약 사용자가 시스템에 악영향을 끼치는 프로그램을 고의로 실행한다면 시스템의 보안상에 중대한 위험을 가져올 수 있는 문제점이 있다. 또한, 악의적인 프로그램은 아니더라도 시스템에 불필요한 프로그램이 실행시킨다면, 시스템의 입장에서는 불필요한 부하로 인해 시스템의 자원을 낭비하게 되고, 다른 사용자의 입장에서는 그 낭비되는 자원에 의해 정작 필요한 서비스를 제공받지 못하거나 정상적인 서비스를 제공하지 못하게 되는 문제가 발생하는 것이다. 뿐만 아니라 이러한 문제점들로 인해 시스템을 소유하는 기업으로서는 금전적으로뿐만 아니라 기업 이미지상으로도 막대한 피해를 볼 수 있게 된다.
본 발명은 이와 같은 문제점을 해결하기 위하여 제안된 것으로서, 커널 내부 에 실행 허가 프로그램 목록을 유지하고 임의의 응용 프로그램에 대한 실행 요청이 있을 때마다 상기 프로그램 목록을 검색하여 등록된 프로그램인 경우에 한하여 실행을 허가하도록 제어하는 장치 및 방법을 제공하는 것을 목적으로 한다.
이러한 목적을 달성하기 위한 본 발명의 프로그램 실행 제어 장치는, 프로그램을 실행하는 실행부와, 실행을 허가할 프로그램의 목록이 기록되어 있는 프로그램 목록과, 프로그램의 실행 요청이 있는 경우 상기 프로그램 목록에 등록된 프로그램에 한하여 실행되도록 상기 실행부를 제어하는 실행 제어부와, 상기 프로그램 목록을 관리하는 목록 관리부를 포함하는 커널을 저장하는 커널 영역 기억수단 및 상기 프로그램 목록을 관리하기 위해 상기 목록 관리부를 제어하는 관리 프로그램을 저장하는 사용자 영역 기억수단을 포함하여 구성된다.
여기서 상기 프로그램 목록은 실행이 허가된 프로그램의 풀 패스 파일명(full-path file name)과 아이노드(i-node) 번호를 포함하여 이루어지며, 상기 목록 관리부는 상기 관리 프로그램으로부터 전달 받은 정보를 상기 프로그램 목록에 쓰기 위한 쓰기 모듈과, 상기 프로그램 목록에서 필요한 정보를 읽어 상기 관리 프로그램으로 전송하기 위한 읽기 모듈로 구성되고, 상기 관리 프로그램은 입력된 패스워드를 미리 설정된 패스워드와 비교하여 양 패스워드가 일치하는 경우에만 관리 프로그램의 실행을 허가하는 인증 모듈과, 새로운 프로그램 목록을 입력받거나, 현재의 프로그램 목록을 출력하는 입출력 모듈과, 새 프로그램 목록으로 현재 프로그 램 목록을 갱신하거나, 현재의 프로그램 목록을 전송해 줄 것을 상기 목록 관리부에 요청하는 요청 모듈을 포함하여 구성된다.
한편, 상기와 같은 목적을 달성하기 위한 본 발명의 프로그램 실행 제어 방법은, 임의의 응용 프로그램에 대한 실행을 커널에 요청하는 제 1 단계와, 실행 제어부가 파일 시스템을 검색하여 상기 실행 요청한 프로그램의 풀 패스 파일명(full-path file name)과 아이노드(i-node) 번호를 파악하는 제 2 단계와, 실행 제어부가 프로그램 목록을 검색하여 상기 제 2 단계에서 파악된 파일명 및 아이노드 번호와 동일한 것이 있는지 확인하는 제 3 단계와, 상기 제 3 단계의 확인 결과 동일한 것이 존재하는 경우, 실행 제어부가 상기 실행 요청한 프로그램의 실행을 실행부에 요청하는 제 4 단계 및 상기 제 3 단계에서 동일한 것이 존재하지 않는 경우, 실행 제어부는 상기 실행 요청한 프로그램의 실행이 거부되었음을 알리는 에러 메시지를 리턴하는 제 5 단계를 포함하여 이루어진다.
또한, 상기 프로그램 실행 제어 방법에는, 사용자로부터 패스워드를 입력받고 이를 미리 설정된 패스워드와 비교하여 양 패스워드가 일치하는 경우에만 사용자 영역의 프로그램 목록 관리 프로그램을 실행시키는 사용자 인증 단계와, 프로그램 목록의 항목 추가 단계, 항목 삭제 단계, 프로그램 목록 대체 단계 및 프로그램 목록 삭제 단계를 포함하는 프로그램 목록 갱신 단계와, 현재의 프로그램 목록을 읽어와서 사용자에게 출력하는 프로그램 목록 출력단계로 이루어지는 프로그램 목록 관리 단계가 더 포함될 수 있다.
이하, 도면을 참조하여 본 발명의 바람직한 실시예에 대해서 상세히 설명한다.
도 3은 본 발명인 프로그램 실행 제어 장치의 내부 구조를 보여주는 블럭 다이어그램이다.
프로그램 실행 제어 장치는 크게 실행부(300), 실행 제어부(310), 목록 관리부(320), 프로그램 목록(330), 관리 프로그램(350)으로 구성되며, 사용자(360)와 관리자(370)의 요청에 의해 동작하게 된다. 본 설명에서는 상기 구성요소들 중에서 종래의 기술에서와 동일한 구성요소인 실행부, 사용자에 대한 설명은 생략하고, 그 외의 새로운 구성요소들에 대하여만 설명하기로 한다.
실행 제어부(310)는 사용자(360)가 임의의 응용 프로그램(340)의 실행을 요청하면 프로그램 목록(330)을 참고해서 프로그램의 실행 가부를 결정하는 기능을 담당한다. 즉, 실행 제어부(310)는 사용자(360)의 프로그램(340) 실행 요청이 있는 경우, 프로그램 목록(330)을 검색해서 사용자가 요청한 프로그램이 프로그램 목록에 포함되어 있는지 조사한다. 사용자가 요청한 프로그램(340)이 프로그램 목록(330)에 포함되어 있으면 실행부(300)에 사용자가 요청한 프로그램(340)의 실행을 요청한다. 사용자가 요청한 프로그램(340)이 프로그램 목록(330)에 포함되어 있지 않으면, 사용자에게 실행이 허가되지 않는다는 에러를 리턴한다.
이러한 실행 제어부(310)는 구체적으로 제어 모듈(311), 비교 모듈(312), 검색 모듈(313)로 구성된다. 검색 모듈(313)은 사용자가 실행을 요청한 프로그램의 풀 패스 파일명(full-path file name)과 아이노드(i-node) 번호를 파일 시스템을 통해 검색한다. 비교 모듈(312)은 검색 모듈이 검색한 파일명과 아이노드 번호를 프로그램 목록(330)의 항목들과 비교해서 동일한 항목이 있는지 판단한다. 제어 모듈(311)은 비교 모듈(312)의 판단 결과에 따라 사용자가 요청한 프로그램을 실행하거나 거부 에러를 출력한다.
프로그램 목록(330)은 실행이 허가된 프로그램의 목록이 기록되어 있는 커널 영역의 데이터 공간이다. 프로그램 목록(330)의 각각의 항목은 실행이 허가된 프로그램의 풀 패스 파일명(full-path file name)과 아이노드(i-node) 번호를 포함하고 있다. 프로그램 목록(330)의 각 항목 또는 프로그램 목록 자체(330)는 목록 관리부(320)에 의해서 새로이 기록되거나 삭제되고, 실행 제어부(310)에 의해 참조됨으로써 실행 요청된 프로그램(340)의 실행 허가 여부를 판단하는 자료로 사용된다.
목록 관리부(320)는 사용자 영역의 관리 프로그램(350)으로부터 요청을 받아 커널 영역의 프로그램 목록(330)을 관리한다. 즉, 목록 관리부(320)는 관리 프로그램(350)으로부터의 요청에 따라 프로그램 목록(330)에 내용을 기록, 삭제하여 갱신하거나 현재의 프로그램 목록의 내용을 읽어서 관리 프로그램에 전달하기도 한다. 이러한 기능을 구현하기 위해, 목록 관리부(320)는 쓰기 모듈(321)과 읽기 모듈(322)로 구성된다. 쓰기 모듈(321)은 관리 프로그램(350)에서 전달받은 내용을 프로그램 목록(330)에 쓰는 기능을 하며, 읽기 모듈(322)은 프로그램 목록(330)의 내용을 읽어서 관리 프로그램(350)에 전달하는 역할을 담당한다.
관리자(370)는 관리 프로그램의 사용이 허가된 사용자이다. 관리자(370)는 인증 과정을 통해 관리 프로그램(350)을 실행시킬 수 있으며, 관리 프로그램(350) 을 통해 프로그램 목록(330)의 내용을 수정하거나 읽을 수 있다.
관리 프로그램(350)은 관리자가 사용자 영역에서 커널 영역에 있는 프로그램 목록(330)을 관리할 수 있도록 하는 관리자 인터페이스 프로그램이며, 이러한 관리 프로그램(350)은 입출력 모듈(351), 요청 모듈(352), 인증 모듈(353)로 구성된다. 입출력 모듈(351)은 관리자(370)로부터 새로운 프로그램 목록을 입력받거나, 현재의 프로그램 목록을 출력하는 기능을 담당한다. 요청 모듈(352)은 관리자(370)가 관리자 인터페이스를 통해 프로그램 목록의 읽기나 쓰기 기능을 선택하면, 해당 기능의 수행을 목록 관리부(320)에 요청하는 기능을 수행한다. 인증 모듈(353)은 허가된 관리자에 의해서만 관리 프로그램(350)이 실행되도록 하기 위해, 관리자(370)가 관리 프로그램(350)을 시작하면 가장 먼저 패스워드를 물어보고 이를 미리 설정된 패스워드와 비교함으로써 관리자 인증을 수행한다. 이러한 관리 프로그램(350)은 관리자(370)로부터 프로그램 목록에 대한 관리 내용을 입력받아 목록 관리부(320)에게 요청하는 방식으로 프로그램 목록의 내용을 변경하며, 현재의 프로그램 목록의 내용을 목록 관리부(320)로부터 전송받아 관리자(370)에게 보여주기도 한다.
도 4는 본 발명에 의한 프로그램 실행 제어 장치에서, 사용자의 프로그램 실행 요청에 대한 실행 제어 과정을 구체적으로 나타내는 흐름도이다.
사용자가 임의의 응용 프로그램에 대한 실행을 커널에 요청하면(S4010), 실행 제어부는 사용자가 요청한 프로그램의 파일명을 읽어오고, 파일명에 해당하는 아이노드 번호를 파일 시스템을 검색하여 찾는다(S403).
다음으로, 커널 영역의 프로그램 목록 중 첫 번째 항목을 읽어서 파일명 및 아이노드 번호를 확인한다(S405). 만약 첫 번째 항목의 파일명이 NULL이고, 아이노드 번호가 -1이면 프로그램 목록이 존재하지 않는 것으로 간주되어, 실행 제어부는 사용자가 요청한 프로그램의 실행을 실행부에 요청하고(S411), 실행부는 사용자가 요청한 프로그램을 실행한다(S413).
첫 번째 항목의 파일명이 NULL이 아니거나 아이노드 번호가 -1이 아닌 경우에는 유효한 프로그램 목록이 존재하는 것으로 간주된다. 따라서 이 경우에는 먼저, 상기 첫 번째 항목의 파일명과 사용자가 요청한 프로그램의 파일명을 비교하고, 이후에 프로그램 항목의 아이노드 번호와 사용자가 요청한 프로그램의 아이노드 번호와 비교한다. 파일명과 아이노드 번호가 모두 일치하면, 실행이 허가된 프로그램으로 판단하여 실행 제어부는 사용자가 요청한 프로그램의 실행을 실행부에 요청하고(S411), 실행부는 사용자가 요청한 프로그램을 실행한다(S413).
사용자가 요청한 프로그램의 파일명과 아이노드 번호가 프로그램 항목의 데이터와 일치하지 않으면, 프로그램 목록에 추가 항목이 존재하는지 확인한다. 추가 항목이 존재하면 프로그램 목록의 나머지 항목에 대해서 사용자가 요청한 프로그램과의 비교 작업을 반복적으로 수행한다(S407). 추가 항목이 존재하지 않으면 허가된 프로그램이 아닌 것으로 판단해서 사용자에게 요청한 프로그램의 실행이 거부된다는 에러를 리턴하고(S409) 실행 요청 프로그램을 종료한다.
도 5는 본 발명에 의한 프로그램 실행 제어 방법 중 특히 프로그램 목록의 관리 방법을 나타내는 흐름도이다.
관리자가 관리 프로그램을 시작하면서 프로그램 목록 관리 기능이 시작된다.
관리 프로그램은 인정 절차를 거쳐 관리자 신분을 확인한다(S501). 관리자의 인증이 실패하면 인증이 실패했다는 에러 메시지를 출력하고 관리 프로그램을 종료한다. 인증이 성공하면 관리 프로그램은 관리 기능을 시작한다. 이후의 동작은 관리자가 선택한 관리 기능에 따라 프로그램 목록의 항목 추가, 항목 삭제, 프로그램 목록 덮어씀, 프로그램 목록 삭제, 프로그램 목록 출력의 다섯가지 동작 과정으로 나뉜다.
첫째, 프로그램 목록의 항목 추가에 있어서, 관리자가 관리 프로그램에서 프로그램 목록에 항목 추가 기능을 선택하면(S505), 관리 프로그램은 관리자에게 프로그램 목록에 기록할 프로그램들의 파일명을 입력할 것을 요청한다. 관리자가 프로그램의 파일명을 입력하면, 관리 프로그램은 입력된 프로그램의 파일명에 해당하는 아이노드 번호를 검색하여 추가해서 프로그램 목록에 기록할 데이터를 작성한다(S507). 관리 프로그램은 작성된 데이터를 프로그램 목록에 기록하도록 목록 관리부에 요청하고(S509), 목록 관리부는 그 요청에 따라 관리 프로그램으로부터 받은 데이터를 프로그램 목록에 기록하여 프로그램 목록을 갱신한다(S511).
둘째, 프로그램 목록의 항목 삭제에 있어서, 관리자가 관리 프로그램에서 프로그램 목록에 항목 삭제 기능을 선택하면(S513), 관리 프로그램은 목록 관리부에 현재 프로그램 목록을 전송해줄 것을 요청하여 전송받은 프로그램 목록을 관리자에 게 출력하여 삭제를 원하는 항목을 선택하게 한다(S515). 관리 프로그램이 선택된 항목에 대한 정보를 목록 관리부에 전송하여 삭제를 요청하면(S517), 목록 관리부는 프로그램 목록에서 해당 항목을 검색하여 목록에서 삭제한다(S519).
셋째, 프로그램 목록의 덮어씀에 있어서, 관리자가 관리 프로그램에서 프로그램 목록 덮어씀 기능을 선택하면(S521), 관리자에게 새로운 프로그램 목록을 작성하거나, 기 작성된 프로그램 목록을 선택할 수 있는 인터페이스를 제공한다(S523). 새로운 프로그램 목록이 작성 완료되면 관리 프로그램은 목록 관리부에 프로그램 목록의 갱신을 요청함과 동시에 상기 새로운 프로그램 목록을 전송하고(S525), 이를 요청받은 목록 관리부는 현재 프로그램 목록을 전송받은 새로운 목록으로 대체한다(S527).
넷째, 프로그램 목록의 삭제에 있어서, 관리자가 관리 프로그램에서 프로그램 목록 삭제 기능을 선택하면(S529), 관리 프로그램은 프로그램의 파일명이 NULL로, 아이노드 번호가 -1로 설정된 프로그램 목록을 작성하며, 이는 프로그램 목록이 존재하지 않음을 나타내게 된다(S531). 관리 프로그램은 목록 관리부에 프로그램 목록의 갱신을 요청함과 동시에 상기 작성된 프로그램 목록을 전송하고(S533), 이를 요청받은 목록 관리부는 현재 프로그램 목록을 전송받은 목록으로 대체한다(S535).
마지막으로 프로그램 목록의 출력에 있어서, 관리자가 관리 프로그램에서 현재의 프로그램 목록 출력 기능을 선택하면(S537), 관리 프로그램은 현재의 프로그램 목록 읽기를 목록 관리부에 요청하고(S539), 목록 관리부는 관리 프로그램으로 부터의 요청에 따라 프로그램 목록의 데이터를 읽어 관리 프로그램에 전송하고(S541), 관리 프로그램은 목록 관리부로부터 전송받은 프로그램 목록 데이터를 관리자에게 출력한다(S543).
한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되지 않으며, 후술되는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 할 것이다.
본 발명은 사전에 등록된 프로그램들만 사용자가 실행 가능하도록 한다. 이는 웜(worm)이나 백도어(back door) 등 시스템의 안전을 위협하는 악의적인 프로그램들의 실행을 사전에 방지하여 시스템의 보안성을 향상시킨다. 또한 불필요한 프로그램의 실행을 방지함으로써 이로 인한 시스템의 부하 증가나 자원 낭비 문제를 사전에 방지할 수 있다.

Claims (11)

  1. 프로그램을 실행하는 실행부와, 실행을 허가할 프로그램의 목록이 기록되어 있는 프로그램 목록과, 프로그램의 실행 요청이 있는 경우 상기 프로그램 목록에 등록된 프로그램에 한하여 실행되도록 상기 실행부를 제어하는 실행 제어부와, 상기 프로그램 목록을 관리하는 목록 관리부를 포함하는 커널을 저장하는 커널 영역 기억수단; 및
    상기 프로그램 목록을 관리하기 위해 상기 목록 관리부를 제어하는 관리 프로그램을 저장하는 사용자 영역 기억수단;
    을 포함하여 이루어지는 프로그램 실행 제어 장치.
  2. 제 1 항에 있어서,
    상기 프로그램 목록은,
    실행이 허가된 프로그램의 풀 패스 파일명(full-path file name)과 아이노드(i-node) 번호를 포함하여 이루어지는 것임을 특징으로 하는 프로그램 실행 제어 장치.
  3. 제 2 항에 있어서,
    상기 실행 제어부는,
    실행 요청을 받은 프로그램의 풀 패스 파일명(full-path file name)과 아이 노드(i-node) 번호를 파악한 후, 상기 프로그램 목록을 검색한 결과 일치하는 풀 패스 파일명 및 아이노드 번호가 존재하는 경우에만 해당 프로그램을 실행시키도록 상기 실행부를 제어하는 것을 특징으로 하는 프로그램 실행 제어 장치.
  4. 제 1 항에 있어서,
    상기 목록 관리부는,
    상기 관리 프로그램으로부터 전달 받은 정보를 상기 프로그램 목록에 쓰기 위한 쓰기 모듈과, 상기 프로그램 목록에서 필요한 정보를 읽어 상기 관리 프로그램으로 전송하기 위한 읽기 모듈로 구성되는 것임을 특징으로 하는 프로그램 실행 제어 장치.
  5. 제 1 항에 있어서,
    상기 관리 프로그램은,
    입력된 패스워드를 미리 설정된 패스워드와 비교하여 양 패스워드가 일치하는 경우에만 관리 프로그램의 실행을 허가하는 인증 모듈과,
    새로운 프로그램 목록을 입력받거나, 현재의 프로그램 목록을 출력하는 입출력 모듈과,
    새 프로그램 목록으로 현재 프로그램 목록을 갱신하거나, 현재의 프로그램 목록을 전송해 줄 것을 상기 목록 관리부에 요청하는 요청 모듈,
    을 포함하여 구성되는 것임을 특징으로 하는 프로그램 실행 제어 장치.
  6. 실행부, 실행 제어부, 프로그램 목록 및 목록 관리부를 포함하는 커널 영역의 커널과, 사용자 영역의 프로그램 목록 관리 프로그램을 이용하여 임의의 응용 프로그램 실행을 제어하는 방법에 있어서,
    임의의 응용 프로그램에 대한 실행을 커널에 요청하는 제 1 단계,
    실행 제어부가 파일 시스템을 검색하여 상기 실행 요청한 프로그램의 풀 패스 파일명(full-path file name)과 아이노드(i-node) 번호를 파악하는 제 2 단계,
    실행 제어부가 프로그램 목록을 검색하여 상기 제 2 단계에서 파악된 파일명 및 아이노드 번호와 동일한 것이 있는지 확인하는 제 3 단계,
    상기 제 3 단계의 확인 결과 동일한 것이 존재하는 경우, 실행 제어부가 상기 실행 요청한 프로그램의 실행을 실행부에 요청하는 제 4 단계, 및
    상기 제 3 단계에서 동일한 것이 존재하지 않는 경우, 실행 제어부는 상기 실행 요청한 프로그램의 실행이 거부되었음을 알리는 에러 메시지를 리턴하는 제 5 단계,
    를 포함하여 이루어지는 것을 특징으로 하는 프로그램 실행 제어 방법.
  7. 제 6 항에 있어서,
    상기 제 3 단계는,
    실행 제어부가 프로그램 목록을 검색한 결과, 목록의 첫 번째 항목의 파일명이 NULL이고, 아이노드 번호가 -1인 경우, 상기 커널에 프로그램 목록이 존재하지 않는 것으로 판단하여 상기 실행 요청한 프로그램의 실행을 실행부에 요청하는 단계,
    를 더 포함하는 것을 특징으로 하는 프로그램 실행 제어 방법.
  8. 제 6 항에 있어서,
    사용자로부터 패스워드를 입력받고 이를 미리 설정된 패스워드와 비교하여 양 패스워드가 일치하는 경우에만 사용자 영역의 프로그램 목록 관리 프로그램을 실행시키는 사용자 인증 단계와,
    현재의 프로그램 목록을 갱신하는 프로그램 목록 갱신 단계와,
    현재의 프로그램 목록을 읽어와서 사용자에게 출력하는 프로그램 목록 출력단계,
    로 이루어지는 프로그램 목록 관리 단계를 더 포함하는 것을 특징으로 하는 프로그램 실행 제어 방법.
  9. 제 8 항에 있어서,
    상기 프로그램 목록 갱신 단계는,
    프로그램 목록 중 새로운 항목을 입력받아 커널의 목록 관리부에 갱신을 요청하면, 목록 관리부는 현재의 프로그램 목록에 요청받은 새로운 항목을 추가하는 프로그램 목록의 항목 추가 단계, 및
    현재의 프로그램 목록을 읽어와서 소정의 항목을 선택한 다음 커널의 목록 관리부에 갱신을 요청하면, 목록 관리부는 현재의 프로그램 목록 중에서 상기 선택된 항목을 삭제하는 프로그램 목록의 항목 삭제 단계,
    를 포함하여 이루어지는 것임을 특징으로 하는 프로그램 실행 제어 방법.
  10. 제 8 항에 있어서,
    상기 프로그램 목록 갱신 단계는,
    새로이 작성된 프로그램 목록을 입력받아 커널의 목록 관리부에 갱신을 요청하면, 목록 관리부는 현재의 프로그램 목록에 상기 요청받은 새로운 프로그램 목록을 덮어쓰는 프로그램 목록 대체 단계를 더 포함하는 것을 특징으로 하는 프로그램 실행 제어 방법.
  11. 제 8 항에 있어서,
    상기 프로그램 목록 갱신 단계는,
    단일 항목으로 구성되며, 그 항목의 풀 패스 파일명은 NULL이고 아이노드 번호는 -1인 프로그램 목록을 구성하여 커널의 목록 관리부에 갱신을 요청하면, 목록 관리부는 현재의 프로그램 목록에 상기 요청받은 새로운 프로그램 목록을 덮어쓰는 프로그램 목록 삭제 단계를 더 포함하는 것을 특징으로 하는 프로그램 실행 제어 방법.
KR1020040054367A 2004-07-13 2004-07-13 프로그램 실행 제어 장치 및 방법 KR100550792B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040054367A KR100550792B1 (ko) 2004-07-13 2004-07-13 프로그램 실행 제어 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040054367A KR100550792B1 (ko) 2004-07-13 2004-07-13 프로그램 실행 제어 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20060005530A KR20060005530A (ko) 2006-01-18
KR100550792B1 true KR100550792B1 (ko) 2006-02-08

Family

ID=37117472

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040054367A KR100550792B1 (ko) 2004-07-13 2004-07-13 프로그램 실행 제어 장치 및 방법

Country Status (1)

Country Link
KR (1) KR100550792B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101302545B1 (ko) * 2011-11-30 2013-09-02 (주)미디어랜드 불법 소프트웨어의 설치 및 실행 차단 방법
KR101308351B1 (ko) * 2012-02-24 2013-09-17 주식회사 팬택 어플리케이션에 권한을 할당하는 단말기 및 상기 단말기의 권한 할당 방법
KR102227558B1 (ko) * 2019-04-17 2021-03-12 (주)나무소프트 프로그램 보호를 기반으로 한 데이터 보안 방법

Also Published As

Publication number Publication date
KR20060005530A (ko) 2006-01-18

Similar Documents

Publication Publication Date Title
US7380267B2 (en) Policy setting support tool
US8150897B2 (en) Computer file system driver control method, program thereof, and program recording medium
US7831618B2 (en) Method and apparatus for managing a database and processing program therefor
US6457007B1 (en) Distributed database management system including logical database constituted by a group of physical databases
US6978381B1 (en) Enhancement to a system for automated generation of file access control system commands
JP4537022B2 (ja) データ配置に制限を設けるデータ処理方法、記憶領域制御方法、および、データ処理システム。
CN101677352B (zh) 文档管理系统、文档制作设备、文档使用管理设备、以及文档管理方法
JP4585213B2 (ja) データ保護方法及び認証方法並びにプログラム
EP1625691B1 (en) System and method for electronic document security
US20030101200A1 (en) Distributed file sharing system and a file access control method of efficiently searching for access rights
US8533242B2 (en) File management method in web storage system
US20160087989A1 (en) Assignment of Security Contexts to Define Access Permissions for File System Objects
US7233949B2 (en) System and method for controlling user authorities to access one or more databases
JP4122042B1 (ja) アクセス権限制御システム
JP4500072B2 (ja) ネットワークストレージ装置における認証プログラム
KR100550792B1 (ko) 프로그램 실행 제어 장치 및 방법
US9202069B2 (en) Role based search
JP4191239B2 (ja) アクセス権限制御システム
US20090138319A1 (en) Task registration methods and systems
CN113094754B (zh) 大数据平台数据修改系统及修改、响应、缓存、校验方法
JPH07244639A (ja) アクセス権管理装置
TWI430130B (zh) 檔案使用權限管理系統
JP4005120B1 (ja) アクセス権限制御システム
JP3788113B2 (ja) データベース管理方法及びシステム及びコンピュータ読み取り可能な記録媒体
KR100240642B1 (ko) 이동통신 교환기 소프트웨어의 버전 관리를 위한 파일 병행 접근 제어 방법

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee