KR20110068302A - 유닉스/리눅스 시스템에서의 셸 기반의 접근제어시스템 및 접근제어방법 - Google Patents
유닉스/리눅스 시스템에서의 셸 기반의 접근제어시스템 및 접근제어방법 Download PDFInfo
- Publication number
- KR20110068302A KR20110068302A KR1020090125184A KR20090125184A KR20110068302A KR 20110068302 A KR20110068302 A KR 20110068302A KR 1020090125184 A KR1020090125184 A KR 1020090125184A KR 20090125184 A KR20090125184 A KR 20090125184A KR 20110068302 A KR20110068302 A KR 20110068302A
- Authority
- KR
- South Korea
- Prior art keywords
- shell
- user
- unix
- access control
- level
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/54—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6281—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Automation & Control Theory (AREA)
- Databases & Information Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명은 유닉스/리눅스 시스템에서의 셸 기반의 접근제어시스템 및 접근제어방법에 관한 것이다. 본 발명에 따른 유닉스/리눅스 시스템에서의 셸 기반의 접근제어시스템은, 유저레벨, 커널레벨, 하드웨어레벨을 포함하는 접근제어시스템에 있어서, 상기 유저레벨은, 사용자로부터 IP, user정보의 유저레벨로의 입력에 따른 응답 전송 이후, 상기 사용자로부터 제 1 객체를 수신하며, 로컬데이터베이스에 저장된 상기 제 1 객체에 대한 사용 가능 여부를 확인하고, 사용가능시 상기 커널영역 운영체제에 상기 제 1 객체에 대한 실행을 요청한 결과 응답을 상기 사용자에게 반환하여, 상기 제 1 객체의 수행에 대한 보안운영을 수행하는 LS 셸;을 포함하며 상기 제 1 객체는, 명령어, 파일, 및 프로세스 중 어느 하나인 것을 특징으로 한다.
이에 의해, 유닉스/리눅스 시스템의 명령어, 파일, 프로세스에 대한 접근제어기능을 이용한 보안을 강화하는데 있어서, 셸(shell) 기반으로 접근제어를 함으로써, 유닉스/리눅스 시스템 자체의 운영체제의 가용성을 보장하면서 보안기능을 강화한다. 또한, 접근제어를 수행함에 있어서 유닉스/리눅스 시스템의 커널부분(시스템콜)을 수정하지 않기 때문에, 시스템의 장애포인트를 최소화시킬 수 있다. 뿐만 아니라, 유닉스/리눅스 시스템에 있어서, 접근제어기능을 이용한 보안을 강화하는 한편, 시스템의 장애포인트를 최소화함으로써, IT환경에서 보안성과 높은 가용성을 함께 보장할 수 있다.
유닉스, 리눅스, 셸, 접근, 제어
Description
본 발명은 접근제어 기술에 관한 것으로, 보다 구체적으로는, 유닉스/리눅스 시스템에 있어서, 접근제어기능을 이용한 보안을 강화하는 한편, 유닉스/리눅스 시스템의 장애포인트를 최소화함으로써, IT환경에서 높은 가용성을 함께 보장하기 위한 유닉스/리눅스 시스템에서의 셸 기반의 접근제어시스템 및 접근제어방법에 관한 것이다.
유닉스 시스템은, 미국 벨(Bell) 연구소가 프로그래밍 연구와 개발을 촉진할 환경 조성을 목적으로 개발한 다수 사용자를 위한 운영체제를 사용하는 서버를 의미한다. 유닉스(UNIX)는, 벨 연구소가 GE사와 함께 MULTICS 운영 체계를 개발하기 위한 MIT 프로젝트인 MAC에 참가하였던 K. 톰슨에 의해 DEE사의 PDP-7 컴퓨터를 위해 어셈블리 언어로 작성되었다가 1972년에 D. 리치에 의해 고급 언어인 C 언어로 다시 작성되었다. 현재 개인용 컴퓨터(PC)나 소형 컴퓨터 기종의 대부분이 유닉스를 사용하며 강력한 명령어와 장치는 독립적인 파일 체제를 갖추고 있다.
한편, 리눅스 시스템은, 1991년 핀란드 헬싱키 대학 학생이던 리누스 토발스(Linus Tovals)가 대형 기종에서만 작동하던 운영체계인 유닉스를 386 기종의 개인용 컴퓨터(PC)에서도 작동할 수 있게 한 운영체제를 사용하는 서버를 의미한다. 리눅스는 인터넷을 통하여 무료로 배포되고 있다. 리눅스는 프로그램 소스 코드가 공개되어 있으므로 원하는 대로 특정 기능을 추가할 수 있을 뿐만 아니라 어느 플랫폼에도 포팅이 가능하다. 이러한 장점 때문에 일반 기업과 인터넷 서비스업체, 연구 기관 등에서 수요가 늘어나고 있다. 우리나라에서도 1999년부터는 리눅스 사용자가 꾸준히 증가하면서 리눅스를 상품화하려는 업체들이 늘고 있으며, 리눅스의 설치 및 구성, 그리고 관리 운영 기술 및 프로그래밍 교육도 점차 활발해지고 있는 추세이다.
도 1은 종래의 유닉스/리눅스 시스템에 있어서, 접근제어기술을 설명하기 위한 도면이다. 도 1을 참조하면, 지금까지의 유닉스/리눅스 시스템에서 명령어, 파일 및 프로세스들에 대한 접근제어를 하기 위하여 사용되는 유일한 기술은 커널레벨(3: Kernel Level)에서 제어를 하는 방법이다. 서버 컴퓨터 시장에서 사용되는 운영체제(OS)는 유닉스 계열의 AIX, HP-UX, Solaris, DigitalUX 등과, 리눅스가 있다. 유닉스/버들은 서버 내의 명령어나 파일에 대한 접근을 제어하기 위한 기능을 갖고 있지 않아, 명령어나 파일에 대한 접근을 제어하기 위한 기능을 사용하기 위하여 보안운영체제 제품을 설치하여야 한다.
그러나, 보안운영체제 제품들은 시스템에서 매우 중요한 영역인 커널(Kernel) 부분과 연동하여 작업을 함으로써, 유닉스/리눅스 시스템 자체의 운영 체제가 가지고 있는 가용성을 보장할 수 없게 하고 있다.
이에 따라, 명령어, 파일 그리고 프로세스에 대한 접근제어를 위한 기능을 수행하면서 유닉스/리눅스 시스템 자체의 가용성이 보장될 수 있는 기술이 필요로 하고 있다. 보안운영체제는 커널레벨(3)에서 시스템콜을 변경/후킹(hooking)하는 기술을 사용한다. 여기서, 후킹이란 수행중에 있는 컴퓨터의 프로그램에서 실행 코드의 특정 부분을 선택하고 제어할 수 있는 기반 기술을 의미한다. 한편, 커널레벨(3)에 상주하는 보안운영체제는 유닉스/리눅스 시스템 내의 모든 프로세스(Process)의 메카니즘에 영향력을 행사하고 있다.
이에 따라 보안운영체제는 많은 장애포인트가 있으며, 정상적인 시스템 자체의 가용성을 떨어뜨리고 있다. 유닉스/리눅스 시스템의 커널 레벨(Kernel Level)에 대한 변형을 하고 있기 때문에, 보안운영체제 기능을 수행하기 위하여 설치, 제거, 패치 시에 유닉스/리눅스 시스템을 재부팅 해야 하므로, 유닉스/리눅스 시스템의 가용성을 떨어뜨리고 있다.
이는 유닉스/리눅스 시스템을 사용하는 기관이든지 기존의 사업 영위를 위하여 재부팅 및 성능의 감소를 원치 않고 있다. 따라서, 필요시 커널(Kernel) 기반의 서버보안제품을 도입하지만 실제로 커널 레벨에서 필요한 보안기능을 사용하지 않고 있다. 접근제어기능이 필요없는 프로세스들에도 서버보안 기술이 적용되기 때문에 성능이 떨어지고 많은 시스템콜에도 서버보안 기술이 적용되기 때문에 적용된 기술로 인한 많은 장애 포인트가 존재한다.
그리고 유닉스/리눅스 시스템 자체의 패치가 있더라도 함부로 유닉스/리눅스 시스템 패치를 할 수 없는 상황이며, 패치 기술을 제공한 회사에서 해당 유닉스/리눅스 시스템 패치에 대한 검증이 된 후에야, 유닉스/리눅스 시스템 패치를 진행할 수 있다.
결론적으로, 해당기술분야에서는 유닉스/리눅스 시스템의 접근제어기능을 이용한 보안을 강화하는 한편, 유닉스/리눅스 시스템의 장애포인트를 최소화함으로써, IT환경에서 높은 가용성을 함께 보장하기 위한 기술개발이 요구되고 있다.
본 발명은 상기의 문제점을 해결하기 위한 것으로, 유닉스/리눅스 시스템의 명령어, 파일, 프로세스에 대한 접근제어기능을 이용한 보안을 강화하는데 있어서, 셸(shell) 기반으로 접근제어를 함으로써, 유닉스/리눅스 시스템 자체의 운영체제의 가용성을 보장하면서 보안기능을 강화하기 위한 유닉스/리눅스 시스템에서의 셸 기반의 접근제어시스템 및 접근제어방법을 제공하기 위한 것이다.
본 발명의 다른 실시 예에 따르면, 접근제어를 수행함에 있어서 유닉스/리눅스 시스템의 커널부분(시스템콜)을 수정하지 않기 때문에, 시스템의 장애포인트를 최소화시키기 위한 유닉스/리눅스 시스템에서의 셸 기반의 접근제어시스템 및 접근제어방법을 제공하기 위한 것이다.
본 발명의 다른 실시 예에 따르면, 유닉스/리눅스 시스템에 있어서, 접근제어기능을 이용한 보안을 강화하는 한편, 시스템의 장애포인트를 최소화함으로써, IT환경에서 보안성과 높은 가용성을 함께 보장하기 위한 셸 기반의 접근제어시스템 및 접근제어방법을 제공하기 위한 것이다.
그러나 본 발명의 목적들은 상기에 언급된 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기의 목적을 달성하기 위해 본 발명의 실시예에 따른 유닉스/리눅스 시스템에서의 셸 기반의 접근제어시스템은, 유저레벨, 커널레벨, 하드웨어레벨을 포함하는 접근제어시스템에 있어서, 상기 유저레벨은, 사용자로부터 IP, user정보의 유저레벨로의 입력에 따른 응답 전송 이후, 상기 사용자로부터 제 1 객체를 수신하며, 로컬데이터베이스에 저장된 상기 제 1 객체에 대한 사용 가능 여부를 확인하고, 사용가능시 상기 커널영역 운영체제에 상기 제 1 객체에 대한 실행을 요청한 결과 응답을 상기 사용자에게 반환하여, 상기 제 1 객체의 수행에 대한 보안운영을 수행하는 LS 셸;을 포함하는 것을 특징으로 한다.
본 발명의 다른 실시예에 따른 유닉스/리눅스 시스템에서의 셸 기반의 접근제어시스템에 있어서, 상기 제 1 객체는, 명령어, 파일, 및 프로세스 중 어느 하나인 것을 특징으로 한다.
본 발명의 다른 실시예에 따른 유닉스/리눅스 시스템에서의 셸 기반의 접근제어시스템은, 유저레벨, 커널레벨, 하드웨어레벨을 포함하는 접근제어시스템에 있어서, 상기 유저레벨은, 사용자로부터 IP, user정보의 유저레벨로의 입력 이후, 상기 사용자로부터 제 1 객체를 수신하고, 로컬데이터베이스에 저장된 상기 제 1 객 체에 매칭하는 시스템콜을 사용하는 LS 셸; 및 상기 LS 셸로부터 상기 명령어를 수신하고, 상기 커널레벨를 구동하는 커널영역 운영체제로 상기 명령어를 전송하여, 상기 커널레벨에 의한 상기 명령어에 해당되는 시스템콜 사용이 수행된 뒤, 상기 시스템콜에 대한 응답을 상기 LS 셸 및 상기 사용자로 반환하여 상기 제 1 객체의 수행에 대한 보안운영을 수행하는 네이티브 셸; 을 포함하는 것을 특징으로 한다.
본 발명의 다른 실시예에 따른 유닉스/리눅스 시스템에서의 셸 기반의 접근제어시스템에 있어서, 상기 제 1 객체는, 명령어, 파일, 및 프로세스 중 어느 하나인 것을 특징으로 한다.
본 발명의 실시예에 따른 유닉스/리눅스 시스템에서의 셸 기반의 접근제어방법은, LS 셸이, 사용자가 IP, user정보의 유저레벨로의 입력에 따른 응답 전송 이후, 상기 사용자로부터 제 1 객체를 수신하는 제 1 단계; 상기 LS 셸이, 로컬데이터베이스에 저장된 상기 제 1 객체에 대한 사용 가능 여부를 확인하는 제 2 단계; 및 상기 LS 셸이, 사용가능시 상기 커널레벨를 구동하는 커널영역 운영체제에 상기 제 1 객체에 대한 실행을 요청한 결과 응답을 상기 사용자에게 반환하여, 상기 제 1 객체의 수행에 대한 보안운영을 수행하는 제 3 단계; 를 포함하는 것을 특징으로 한다.
본 발명의 다른 실시예에 따른 유닉스/리눅스 시스템에서의 셸 기반의 접근제어방법에 있어서, 상기 제 1 객체는, 명령어, 파일, 및 프로세스 중 어느 하나인 것을 특징으로 한다.
본 발명의 다른 실시예에 따른 유닉스/리눅스 시스템에서의 셸 기반의 접근 제어방법은, LS 셸이, 사용자가 IP, user정보의 유저레벨로의 입력에 이후, 사용자로부터 제 1 객체를 수신하는 제 1 단계; 상기 LS 셸이, 로컬데이터베이스에 저장된 상기 제 1 객체에 매칭하는 시스템콜을 사용하는 제 2 단계; 상기 LS 셸이, 네이티브 셸로 상기 명령어를 전송하는 제 3 단계; 및 상기 네이티브 셸이, 상기 커널레벨에 의한 상기 명령어에 해당하는 시스템콜 사용이 수행된 뒤, 상기 시스템콜에 대한 응답을 상기 LS 셸 및 상기 사용자로 반환하여 상기 제 1 객체의 수행에 대한 보안운영을 수행하는 제 4 단계; 를 포함하는 것을 특징으로 한다.
본 발명의 다른 실시예에 따른 유닉스/리눅스 시스템에서의 셸 기반의 접근제어방법에 있어서, 상기 제 1 객체는, 명령어, 파일, 및 프로세스 중 어느 하나인 것을 특징으로 한다.
본 발명의 실시예에 따른 유닉스/리눅스 시스템에서의 셸 기반의 접근제어시스템 및 접근제어방법은, 유닉스/리눅스 시스템의 명령어, 파일, 프로세스에 대한 접근제어기능을 이용한 보안을 강화하는데 있어서, 셸(shell) 기반으로 접근제어를 함으로써, 유닉스/리눅스 시스템 자체의 운영체제의 가용성을 보장하면서 보안기능을 강화할 수 있는 효과를 제공한다.
또한, 본 발명의 다른 실시예에 따른 유닉스/리눅스 시스템에서의 셸 기반의 접근제어시스템 및 접근제어방법은, 접근제어를 수행함에 있어서 유닉스/리눅스 시스템의 커널부분(시스템콜)을 수정하지 않기 때문에, 시스템의 장애포인트를 최소화시킬 수 있는 효과를 제공한다.
또한, 본 발명의 다른 실시예에 따른 유닉스/리눅스 시스템에서의 셸 기반의 접근제어시스템 및 접근제어방법은, 유닉스/리눅스 시스템에 있어서, 접근제어기능을 이용한 보안을 강화하는 한편, 유닉스/리눅스 시스템의 장애포인트를 최소화함으로써, IT환경에서 높은 가용성을 함께 보장할 수 있는 효과를 제공한다.
이하, 본 발명의 바람직한 실시 예의 상세한 설명은 첨부된 도면들을 참조하여 설명할 것이다. 하기에서 본 발명을 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
본 명세서에 있어서는 어느 하나의 구성요소가 다른 구성요소로 데이터 또는 신호를 '전송'하는 경우에는 어느 하나의 구성요소는 다른 구성요소로 직접 데이터 또는 신호를 전송할 수 있고, 적어도 하나의 또 다른 구성요소를 통하여 데이터 또는 신호를 다른 구성요소로 전송할 수 있음을 의미한다.
도 2는 본 발명의 실시 예에 따른 유닉스/리눅스 시스템에서의 셸 기반의 접근제어시스템을 나타내는 도면이다. 도 2를 참조하면, 유닉스/리눅스 시스템의 셸의 기반의 접근제어 시스템은 유저레벨(100), 커널레벨(300) 및 하드웨어레벨(500)을 포함한다.
유저레벨(100)은 사용자로부터 명령어를 수신하며, LS 셸(LS Shell: 130) 및 네이티브 셸(Native Shell: 110)을 포함한다. 여기서, 운영 체제(OS)를 사용자와 접촉하는 셸과 실제 하부 루틴의 집합인 커널 레벨(kernel Level)로 분할하여 구성하는 경우, 셸(shell)은 사용자와 커널레벨(300) 간의 대화를 가능하게 해주며, 사용자가 입력시킨 문장을 읽어 그 문장이 요청하는 시스템 기능을 수행하도록 해 주는 명령 해석기이다. LS 셸(130)과 네이티브 셸(110)은 커널레벨(300) 같이 주기억 장치(미도시)에 영주하는 것이 아니고 보조 기억 장치(미도시)에 영주할 수 있다.
LS 셸(LS shell: 130)은 새롭게 고안한 셸이며, 네이티브 셸(Native shell: 110)의 in, out, err fd(파일디스크립터)를 직렬화하도록 만든 셸(Shell)을 의미한다. 여기서 파일디스크립터는, 파일을 관리하기 위해서 모든파일(파일, 소켓 표준 입력, 표준 출력에 할당된 설정치를 의미한다.
네이티브 셸(Native shell: 110)은 유닉스/리눅스 시스템에서 기본적으로 제공하는 csh , ksh , bash 등의 셸을 의미한다. 커널(Kernel) 방식의 유닉스/리눅스 시스템의 자원(명령어, 파일 및 프로세스)에 대한 접근제어기술은 운영체제(OS) 시스템에 존재하는 모든 프로세스에 영향을 주는 기술로서 운영체제(OS) 시스템 고유의 가용성에 영향을 준다.
LS 셸(130)의 구성에 의해, 유저레벨(100)에서 구현된 LS 셸(130) 방식의 유닉스/리눅스 시스템의 자원(명령어, 파일 및 프로세스)에 대한 접근제어기술은, 스탠다드(standard) in/out/err fd(파일디스크립터)를 직렬화하여 접근제어 기능을 수행하게 하는 기능으로, 장애가 발생하더라도 접속한 사용자 관점에서만 문제가 발생하는 국지적인 장애 가능성을 갖는다. 그리고 LS 셸(130)의 추가로, 커널레벨(Kernel Level: 300)의 시스템콜 인터페이스(310) 영역을 관련없는 부분에서 제 어함으로써, 시스템 자체의 성능을 보장한다.
또한, LS 셸(130) 기술을 이용한 접근제어기능을 탑재하는 프로그램을 설치, 제거, 패치시에 유닉스/리눅스 시스템의 재부팅을 하지 않아도 됨으로써, 유닉스/리눅스 시스템의 가용성을 높여준다. 유닉스/리눅스 시스템 환경에서는 유닉스/리눅스 시스템에 로그인한 후, LS 셸(130) 이라고 하는 프로그램을 통하여 운영체계(OS)에 명령을 주고 결과를 받으면서 작업을 진행한다.
즉, LS 셸(130) 기술을 사용하여 운영체계(OS)에 명령이 전달되기 전에 접근권근한여부를 확인할 수 있으며, 사용한 명령어 및 참조하려는 파일에 대한 사용권한이 있는지를 확인할 수 있다. 보통 시스템을 운영하는 엔지니어들은 주로 사용하는 손에 익은 셸(shell)이 있다. 예를 들어, csh, ksh, bash 등과 같은 시스템에서 제공하는 셸(shell)이 있다. 엔지니어들이 사용하던 셸 환경을 유지하여 불편함을 주지않기 위하여 LS 셸(110) 위에 포크(fork)하여 원하는 셸(shell)을 사용할 수 있게 하고 해당 네이티브 셸(130)의 표준 fd(파일 디스크립션)를 직렬화하는 방법으로 접근제어 기술을 제공한다. 여기서 포크(fork)란 유닉스/리눅스 운영체계의 시스템 호출 중의 한 가지로, 현재 수행되고 있는 프로세스와 똑같은 프로세스를 원래 프로세스의 가지 프로세스로 만들어 내는 것을 의미한다.
커널레벨(300)은 유닉스/리눅스의 시스템의 운영체제(OS) 중 가장 집중적으로 사용되는 부분으로, 주기억 장치에 상주하며, 유닉스/리눅스 시스템의 초기화와 끼어들기를 처리하기 위한 특별한 프로세스들(파일 시스템, 메모리관리, 디바이스드라이버, 프로세스관리)과 프로세스 모니터로 구성되고, 프로세스들 사이의 환경 교 환과 새 프로세스를 생성해 내는 모듈도 포함한다. 이들 프로세스 중에는 필요에 따라 활성화되는 입출력 프로세스, 새로운 작업을 찾아내거나 사용자 프로세스를 만들어 내는, 최소한 하나의 실행 중인 프로세스가 있다. 커널레벨(300)은 시스템콜인터페이스(310)를 포함한다.
한편, 본 명세서에서 모듈이라 함은, 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적, 구조적 결합을 의미할 수 있다. 예컨대, 상기 모듈은 소정의 코드와 상기 소정의 코드가 수행되기 위한 하드웨어 리소스의 논리적인 단위를 의미할 수 있으며, 반드시 물리적으로 연결된 코드를 의미하거나, 한 종류의 하드웨어를 의미하는 것은 아님은 본 발명의 기술분야의 평균적 전문가에게는 용이하게 추론될 수 있다.
하드웨어레벨(500)은 커널레벨(300)에서 액세스 가능한 유닉스/리눅스 시스템의 기계적, 전기적, 전자 회로적 특성에 관한 총칭. 이는 부호화 또는 프로그램 작성을 통하여 구현되는 시스템의 특성 소프트웨어와 구별되는 물리적 특성을 말할 때 많이 쓰인다.
이러한 구성에 의해 유닉스/리눅스 시스템의 명령어, 파일, 프로세스에 대한 접근제어기능을 이용한 보안을 강화하며, 동시에 접근제어를 수행함에 있어서 유닉스/리눅스 시스템의 커널부분(시스템콜)을 수정하지 않기 때문에, 시스템의 장애포인트를 최소화시켜, 보안성과 가용성을 함께 보장할 수 있다.
도 3은 도 2의 유저레벨(100)의 구성을 나타내는 블록도이다. 도 2 및 도 3을 참조하면, 유저레벨(100)은 인터페이스부(105), 제어프로세서부(150) 및 저장 부(170)를 포함한다.
인터페이스부(105)는 사용자로부터 입력을 받으며, 커널레벨(300)과 데이터 송수신을 수행한다.
제어프로세서부(150)는 LS 셸(130)과 네이티브 셸(110)을 포함한다. 한편, LS 셸(130)과 네이티브 셸(110)은 터미널을 공유한다.
LS 셸(130)은 사용자로부터 IP, user정보의 유저레벨(100)로의 입력에 따른 응답을 전송하도록 인터페이스부(105)를 제어한 뒤, LS 셸(130)은 상기 로컬데이터베이스에 저장된 상기 제 1 객체에 대한 사용 가능 여부를 확인하기 위해 사용자로부터 명령어를 수신하도록 인터페이스부(105)를 제어한다.
이후, LS 셸(130)은 로컬데이터베이스(510)에 저장된 명령어에 해당하는 시스템콜을 사용하도록 인터페이스부(105)를 제어한다. 한편, LS 셸(130)은 사용된 시스템콜의 상황을 저장부(170)에 저장할 수 있다.
이후, LS 셸(130)은 시스템콜 사용에 따라 커널레벨(300)을 구동하는 커널영역 운영체제(350)에 의한 시스템콜 사용에 대한 응답을 사용자에게 반환하도록 인터페이스부(105)를 제어함으로써, 명령어 수행에 대한 보안운영이 가능하도록 한다. 한편, 여기서는 명령어에 대해 설명하였으나, 파일, 프로세스에 대한 접근제어 기능을 이용한 보안을 강화하는데도 변형가능하다.
상기의 과정에서 LS 셸(130)은 상기 로컬데이터베이스에 저장된 상기 제 1 객체에 대한 사용 가능시 상기 커널영역 운영체제에 상기 제 1객체에 대한 실행을 요청한 결과 응답을 상기 사용자에게 반환하여, 상기 제 1 객체의 수행에 대한 보 안운영을 수행한다.
한편, 네이티브 셸(110)은 LS 셸(130)로부터 명령어를 수신할 수 있다. 이 경우, 네이티브 셸(110)은 커널레벨(300)로 명령어를 전송하고, 커널레벨(300)에 의한 명령어에 해당되는 시스템콜 사용이 수행된 뒤, 시스템콜 사용에 대한 응답을 사용자에게 반환하도록 인터페이스(105)를 제어함으로써, 명령어 수행에 대한 보안운영이 가능하다.
저장부(170)는 LS 셸(130)의 제어에 따라 시스템콜의 상황을 저장할 수 있다. 저장부(170)는 비휘발성 메모리(Non-volatile memory, NVM)로써 전원이 공급되지 않아도 저장된 데이터를 계속 유지하며 삭제되지 않으며, 플래시 메모리(Flash Memory), MRAM(Magnetic Random Access Memory), PRAM(Phase-change Random Access memory: 상변화 램), FRAM(Ferroelectric RAM: 강유전체 램) 등으로 구성될 수 있다.
도 4는 본 발명의 실시예에 따른 유닉스/리눅스 시스템에서의 셸 기반의 접근제어방법 중 LS 셸(130) 만 사용되는 경우의 프로세스를 나타내는 흐름도이다. 도 2 내지 도 4를 참조하면, 사용자가 IP, user정보의 유저레벨(100)로의 입력(S1a, S10a)에 따른 응답 전송 이후, LS 셸(130)은 사용자로부터 명령어를 수신한다(S1b, S2).
이후, LS 셸(130)은 커널레벨(300)에 포함된 유니티에이젼트(330)를 통해 하드웨어레벨(500)의 로컬데이터베이스(510)에 저장된 명령어에 해당하는 시스템콜을 사용한다(S3 내지 S6). 또한, 본 명세서에서 로컬데이터베이스(510)라 함은, 각각의 데이터베이스에 대응되는 정보를 저장하는 소프트웨어 및 하드웨어의 기능적 구조적 결합을 의미할 수 있다. 로컬데이터베이스(510)는 적어도 하나의 테이블로 구현될 수도 있으며, 로컬데이터베이스(510)에 저장된 정보를 검색, 저장, 및 관리하기 위한 별도의 DBMS(Database Management System)을 더 포함할 수도 있다. 또한, 링크드 리스트(linked-list), 트리(Tree), 관계형 데이터베이스의 형태 등 다양한 방식으로 구현될 수 있으며, 데이터베이스에 대응되는 정보를 저장할 수 있는 모든 데이터 저장매체 및 데이터 구조를 포함한다.
이후, LS 셸(130)은 커널레벨(300)를 구동하는 커널영역 운영체제(OS, 350)에 의한 시스템콜 사용에 대한 응답을 사용자에게 반환(S7 내지 S10)함으로써, 명령어 수행에 대한 보안운영이 가능하다.
한편, 여기서는 명령어에 대해 설명하였으나, 파일, 프로세스에 대한 접근제어 기능을 이용한 보안을 강화하는데도 변형가능하다.
도 5는 본 발명의 실시예에 따른 유닉스/리눅스 시스템에서의 셸 기반의 접근제어방법 중 네이티브 셸(110)도 사용되는 경우의 프로세스를 나타내는 흐름도이다. 도 2 내지 도 5를 참조하면, 사용자가 IP, user정보의 유저레벨(100)로의 입력(S11a, S23a) 이후, LS 셸(110)은 사용자로부터 명령어를 수신한다(S12).
이후, LS 셸(130)은 커널레벨(300)에 포함된 유니티에이젼트(330)를 통해 하드웨어레벨(500)의 로컬데이터베이스(510)에 저장된 명령어에 해당하는 시스템콜을 사용한다(S13 내지 S16).
이후, LS 셸(130)은 시스템콜 사용에 네이티브 셸(110)로 명령어를 전송하며(S18), 이에 따라, 네이티브셸(110)이 커널레벨(300)로 명령어를 전송하고, 커널레벨(300)에 의한 명령어에 해당되는 시스템콜 사용이 수행된 뒤, 시스템콜 사용에 대한 응답을 사용자에게 반환(S19, S20, S21, S23b)되도록 함으로써, 명령어 수행에 대한 보안운영이 가능하다.
한편, 여기서는 명령어에 대해 설명하였으나, 파일, 프로세스에 대한 접근제어 기능을 이용한 보안을 강화하는데도 변형가능하다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함된다.
또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분사되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(Functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
아울러 본 발명의 바람직한 실시예들은 예시의 목적을 위해 개시된 것이며, 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가 등이 가능할 것이며, 이러한 수정, 변경 등은 이하의 특허청구의 범위에 속하는 것으로 보아야 할 것이다.
본 발명의 유닉스/리눅스 시스템에서의 셸 기반의 접근제어시스템 및 접근제어방법에 의해, 유닉스/리눅스 시스템의 명령어, 파일, 프로세스에 대한 접근제어기능을 이용한 보안을 강화하는데 있어서, 셸(shell) 기반으로 접근제어를 함으로써, 유닉스/리눅스 시스템 자체의 운영체제의 가용성을 보장하면서 보안기능을 강화하고, 접근제어를 수행함에 있어서 유닉스/리눅스 시스템의 커널부분(시스템콜)을 수정하지 않기 때문에, 시스템의 장애포인트를 최소화시킬 수 있다. 이에 따라 유닉스/리눅스 시스템에 있어서, 접근제어기능을 이용한 보안을 강화하는 한편, 시스템의 장애포인트를 최소화함으로써, IT환경에서 보안성과 높은 가용성을 함께 보장하여 하여 보다 향상된 기술을 제공할 수 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 종래의 유닉스/리눅스 시스템에 있어서, 접근제어기술을 설명하기 위한 도면.
도 2는 본 발명의 실시 예에 따른 유닉스/리눅스 시스템에서의 셸 기반의 접근제어시스템을 나타내는 도면.
도 3은 도 2의 유저레벨의 구성을 나타내는 블록도.
도 4는 본 발명의 실시예에 따른 유닉스/리눅스 시스템에서의 셸 기반의 접근제어방법 중 LS 셸 만 사용되는 경우의 프로세스를 나타내는 흐름도.
도 5는 본 발명의 실시예에 따른 유닉스/리눅스 시스템에서의 셸 기반의 접근제어방법 중 네이티브 셸도 사용되는 경우의 프로세스를 나타내는 흐름도.
<도면의 주요부분에 대한 부호의 설명>
100: 유저레벨 105: 인터페이스부
110: 네이티브 셸 130: LS 셸
150: 제어프로세서부 170: 저장부
300: 커널레벨 310: 시스템콜인터페이스
330: 유니티에이젼트 350: 커널영역 운영체제
500: 하드웨어레벨 510: 로컬데이터베이스
Claims (8)
- 유저레벨, 커널레벨, 하드웨어레벨을 포함하는 접근제어시스템에 있어서,상기 유저레벨은, 사용자로부터 IP, user정보의 유저레벨로의 입력에 따른 응답 전송 이후, 상기 사용자로부터 제 1 객체를 수신하며, 로컬데이터베이스에 저장된 상기 제 1 객체에 대한 사용 가능 여부를 확인하고, 사용가능시 상기 커널영역 운영체제에 상기 제1객체에 대한 실행을 요청한 결과 응답을 상기 사용자에게 반환하여, 상기 제 1 객체의 수행에 대한 보안운영을 수행하는 LS 셸; 을 포함하는 것을 특징으로 하는 유닉스/리눅스 시스템에서의 셸 기반의 접근제어시스템.
- 제 1 항에 있어서, 상기 제 1 객체는,명령어, 파일, 및 프로세스 중 어느 하나인 것을 특징으로 하는 유닉스/리눅스 시스템에서의 셸 기반의 접근제어시스템.
- 유저레벨, 커널레벨, 하드웨어레벨을 포함하는 접근제어시스템에 있어서,상기 유저레벨은, 사용자로부터 IP, user정보의 유저레벨로의 입력 이후, 상기 사용자로부터 제 1 객체를 수신하고, 로컬데이터베이스에 저장된 상기 제 1 객체에 매칭하는 시스템콜을 사용하는 LS 셸; 및상기 LS 셸로부터 상기 명령어를 수신하고, 상기 커널레벨를 구동하는 커널영역 운영체제로 상기 명령어를 전송하여, 상기 커널레벨에 의한 상기 명령어에 해 당되는 시스템콜 사용이 수행된 뒤, 상기 시스템콜에 대한 응답을 상기 LS 셸 및 상기 사용자로 반환하여 상기 제 1 객체의 수행에 대한 보안운영을 수행하는 네이티브 셸; 을 포함하는 것을 특징으로 하는 유닉스/리눅스 시스템에서의 셸 기반의 접근제어시스템.
- 제 3 항에 있어서, 상기 제 1 객체는,명령어, 파일, 및 프로세서 중 어느 하나인 것을 특징으로 하는 유닉스/리눅스 시스템에서의 셸 기반의 접근제어시스템.
- LS 셸이, 사용자가 IP, user정보의 유저레벨로의 입력에 따른 응답 전송 이후, 상기 사용자로부터 제 1 객체를 수신하는 제 1 단계;상기 LS 셸이, 로컬데이터베이스에 저장된 상기 제 1 객체에 대한 사용 가능 여부를 확인하는 제 2 단계; 및상기 LS 셸이, 사용가능시 상기 커널레벨를 구동하는 커널영역 운영체제에 상기 제 1 객체에 대한 실행을 요청한 결과 응답을 상기 사용자에게 반환하여, 상기 제 1 객체의 수행에 대한 보안운영을 수행하는 제 3 단계; 를 포함하는 것을 특징으로 하는 유닉스/리눅스 시스템에서의 셸 기반의 접근제어방법.
- 제 5 항에 있어서, 상기 제 1 객체는,명령어, 파일, 및 프로세스 중 어느 하나인 것을 특징으로 하는 유닉스/리눅 스 시스템에서의 셸 기반의 접근제어방법.
- LS 셸이, 사용자가 IP, user정보의 유저레벨로의 입력에 이후, 사용자로부터 제 1 객체를 수신하는 제 1 단계;상기 LS 셸이, 로컬데이터베이스에 저장된 상기 제 1 객체에 매칭하는 시스템콜을 사용하는 제 2 단계;상기 LS 셸이, 네이티브 셸로 상기 명령어를 전송하는 제 3 단계; 및상기 네이티브 셸이, 상기 커널레벨에 의한 상기 명령어에 해당하는 시스템콜 사용이 수행된 뒤, 상기 시스템콜에 대한 응답을 상기 LS 셸 및 상기 사용자로 반환하여 상기 제 1 객체의 수행에 대한 보안운영을 수행하는 제 4 단계; 를 포함하는 것을 특징으로 하는 유닉스/리눅스 시스템에서의 셸 기반의 접근제어방법.
- 제 5 항에 있어서, 상기 제 1 객체는,명령어, 파일, 및 프로세스 중 어느 하나인 것을 특징으로 하는 유닉스/리눅스 시스템에서의 셸 기반의 접근제어방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090125184A KR20110068302A (ko) | 2009-12-16 | 2009-12-16 | 유닉스/리눅스 시스템에서의 셸 기반의 접근제어시스템 및 접근제어방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090125184A KR20110068302A (ko) | 2009-12-16 | 2009-12-16 | 유닉스/리눅스 시스템에서의 셸 기반의 접근제어시스템 및 접근제어방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20110068302A true KR20110068302A (ko) | 2011-06-22 |
Family
ID=44400573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090125184A KR20110068302A (ko) | 2009-12-16 | 2009-12-16 | 유닉스/리눅스 시스템에서의 셸 기반의 접근제어시스템 및 접근제어방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20110068302A (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101331879B1 (ko) * | 2013-05-29 | 2013-11-21 | 지코컨설팅 주식회사 | 명령어 관리 장치 |
KR101710328B1 (ko) * | 2016-08-18 | 2017-02-27 | 주식회사 시큐브 | 동적 재구성 및 교체를 지원하는 os 보안 커널 시스템 및 그 방법 |
-
2009
- 2009-12-16 KR KR1020090125184A patent/KR20110068302A/ko not_active Application Discontinuation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101331879B1 (ko) * | 2013-05-29 | 2013-11-21 | 지코컨설팅 주식회사 | 명령어 관리 장치 |
KR101710328B1 (ko) * | 2016-08-18 | 2017-02-27 | 주식회사 시큐브 | 동적 재구성 및 교체를 지원하는 os 보안 커널 시스템 및 그 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11385908B1 (en) | Cloning of firmware configuration settings using rest over IPMI interface | |
US11138030B2 (en) | Executing code referenced from a microservice registry | |
US11656852B2 (en) | System and method for autowiring of a microservice architecture | |
US20110289499A1 (en) | Techniques to automatically update software applications | |
US20090119092A1 (en) | Ensuring product correctness in a multilingual environment | |
US11231919B2 (en) | Live updates of stateful components | |
CN110908753B (zh) | 一种智能融合的云桌面服务器、客户端及系统 | |
US7295952B1 (en) | Enabling high availability and load balancing for JMX Mbeans | |
US10725890B1 (en) | Program testing service | |
WO2012036776A1 (en) | System and method for managing resources of a portable computing device | |
US20200301714A1 (en) | Bios setting modification system | |
US11838296B1 (en) | Providing secure software project development environments | |
US9141368B2 (en) | Managing boot loaders for virtual hard disks | |
CN111078367A (zh) | 一种请求处理方法、装置、电子设备和存储介质 | |
US8117432B2 (en) | Method for controlling boot sequence of server | |
CN116028163A (zh) | 一种容器组的动态链接库调度方法、装置及存储介质 | |
CN113626095A (zh) | 配置中心的切换方法、切换系统、电子设备及存储介质 | |
US10394619B2 (en) | Signature-based service manager with dependency checking | |
KR20110068302A (ko) | 유닉스/리눅스 시스템에서의 셸 기반의 접근제어시스템 및 접근제어방법 | |
WO2015184902A1 (zh) | 一种智能分屏的并发处理方法及相应的智能终端 | |
EP3871087B1 (en) | Managing power request during cluster operations | |
US20170242605A1 (en) | Guid partition table based hidden data store system | |
CN113641641A (zh) | 文件存储服务的切换方法、切换系统、设备及存储介质 | |
US20240036850A1 (en) | Configuration aware firmware update | |
CN112835595B (zh) | 一种小核架构上运行aix系统的方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |