KR101732889B1 - 임베디드 시스템에서 쉘 커맨드의 안전 실행 보장 장치 및 방법 - Google Patents

임베디드 시스템에서 쉘 커맨드의 안전 실행 보장 장치 및 방법 Download PDF

Info

Publication number
KR101732889B1
KR101732889B1 KR1020130133144A KR20130133144A KR101732889B1 KR 101732889 B1 KR101732889 B1 KR 101732889B1 KR 1020130133144 A KR1020130133144 A KR 1020130133144A KR 20130133144 A KR20130133144 A KR 20130133144A KR 101732889 B1 KR101732889 B1 KR 101732889B1
Authority
KR
South Korea
Prior art keywords
shell command
command
shell
password
execution
Prior art date
Application number
KR1020130133144A
Other languages
English (en)
Other versions
KR20150052418A (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 KR1020130133144A priority Critical patent/KR101732889B1/ko
Priority to US14/302,587 priority patent/US9323927B2/en
Publication of KR20150052418A publication Critical patent/KR20150052418A/ko
Application granted granted Critical
Publication of KR101732889B1 publication Critical patent/KR101732889B1/ko

Links

Images

Classifications

    • 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/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • 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/52Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells

Landscapes

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

Abstract

본 발명은 임베디드 시스템에서 쉘 커맨드(shell command) 의 비인가 실행을 모니터링하고 차단함으로써 임베디드 시스템의 보안 및 안전성을 강화하기 위한 장치 및 방법에 관한 것이다.
본 발명에 따른 임베디드 시스템에서의 쉘 커맨드 안전 실행 보장 장치는, 쉘 커맨드의 실행 요청을 검출하는 쉘 커맨드 검출부와,상기 검출된 셀 커맨드의 안전도별 패스워드 통과 여부에 따라 상기 쉘 커맨드의 실행 여부를 제어하는 쉘 커맨드 실행 제어부를 포함한다.

Description

임베디드 시스템에서 쉘 커맨드의 안전 실행 보장 장치 및 방법{Apparatus and method for guaranteeing safe execution of a shell command in an embedded system}
본 발명은 임베디드 시스템의 보안에 관한 것으로서, 구체적으로는 임베디드 시스템에서 쉘 커맨드의 비인가 실행을 모니터링하고 차단함으로써 임베디드 시스템의 보안 및 안전성을 강화하기 위한 장치 및 방법에 관한 것이다.
리눅스 쉘(Linux Shell)은 운영체제(Operating System: OS)를 둘러싸는 껍질과 같다 하여 쉘이라 명명하고 있으며, OS와 사용자가 의사소통하기 위한 대화형 환경을 제공한다. 종래의 쉘 처리 방법은 커맨드 인터프리터와 같은 방식으로 사용자가 커맨드를 입력하면 커널이 인식할 수 있는 형태로 번역된 후 커널의 프로세스로 실행되고 그 결과를 사용자에게 반환하는 프로그램으로 되어 있다. 쉘도 하나의 프로그램이며, 리눅스로 로그인 또는 터미널로 연결할 때 쉘이 메모리로 로딩되어 실행된다. 터미널에서 커맨드 입력을 대기하고 있는 상태를 쉘 프롬프트라 부르고 리눅스 커맨드를 쉘 커맨드라 칭한다. sh, bash, csh, fish등 다양한 쉘이 있다. 리눅스 쉘 커맨드는 두가지로 분류되는데, 쉘 내장 커맨드와 외부 커맨드이다. 쉘은 입력된 커맨드에 대해 내장 커맨드와 외부 커맨드 순으로 검색하여 식별한다. 외부 커맨드는 쉘 프롬프트에서 '$PATH'를 입력하면 확인할 수 있다. 일반적으로 관리자 계정(root)과 일반 계정이 가지고 있는 환경변수 PATH는 시스템 보안상의 이유로 다르게 설정되며, 일반 계정에서 사용할 수 있는 커맨드는 제한된다.
그러나, 관리자 계정(root)의 쉘이 해커에 의해 탈취되면, 모든 쉘 커맨드를 실행할 수 있어 1차 해킹 후 2차 피해의 우려가 있다. 예를 들어, 탈취된 관리자 계정의 쉘을 통해 하드디스크 삭제 및 시스템 로그 삭제가 이루어지면 임베디드 시스템의 기능 수행이 어려울 뿐 아니라 시스템 침해 여부도 판단하기 어려워진다.
한편, 특수 목적의 제한된 기능을 수행하는 임베디드 시스템은 실행 가능한 프로세스 수가 제한되어 있음에도 불구하고 제품으로 릴리즈될 때에도 불필요한 커맨드 및/또는 프로세스를 남겨 놓음으로써 상기한 바와 같은 침입으로 인한 피해를 야기할 수 있다. 예를 들어, 디렉토리 삭제(rmdir)나 디스크 포맷(fdisk) 등의 커맨드는 특수 목적의 제품으로 릴리즈된 시스템에서 실행될 필요가 없음에도 불구하고 시스템내에 존재함에 따라 관리자 계정 쉘이 탈취되면 이들 커맨드가 실행될 우려가 있다.
자동차, 항공 등에서 활용되는 임베디드 장치에 대한 해킹은 보다 심각한 위험을 초래할 수 있으며 최근 각종 스마트 기능의 추가로 인해 해킹 위협으로부터 안전한 임베디드 시스템의 필요성은 증가하고 있다. 예를 들어, 자동차에 엔진제어장치(Engine Control Unit: ECU)와 네비게이션 시스템의 기능을 동시에 처리하는 스마트 게이트웨이 장치가 탑재된 경우에, 해커가 네비게이션 OS의 해킹 후 ECU 제어를 시도한다면 1차적인 인명피해 외에도 2차, 3차 피해가 이어질 수 있다.
그러나, 현재의 쉘에서 제공하는 커맨드에 대한 접근제어 방식은 전술한 문제점으로 인해 임베디드 시스템의 안전을 보장할 수 없다.
전술한 문제점을 해결하고자, 본 발명은 쉘에서 제공하는 커맨드에 대한 접근 제어를 통해 임베디드 시스템의 안전을 보장하기 위한 방법 및 장치를 제공하고자 한다.
또한, 본 발명은 임베디드 시스템에서 쉘에서 제공하는 커맨드(또는 프로세스)의 비인가 실행을 차단함으로써 시스템을 보호하는 방법 및 장치를 제공하고자 한다.
본 발명의 일실시예에 따른 임베디드 시스템에서의 쉘 커맨드 안전 실행 보장 장치는, 쉘 커맨드의 실행 요청을 검출하는 쉘 커맨드 검출부와, 상기 검출된 셀 커맨드의 안전도별 패스워드 통과 여부에 따라 상기 쉘 커맨드의 실행 여부를 제어하는 쉘 커맨드 실행 제어부를 포함한다.
일실시예에서, 쉘 커맨드 검출부는 관리자 계정을 통해 입력되는 쉘 커맨드 실행 요청을 검출할 수 있다.
일실시예에서, 쉘 커맨드 실행 제어부는 쉘 커맨드 안전도 등급 테이블을 이용하여 상기 검출된 쉘 커맨드의 안전도를 판단할 수 있다.
일실시예에서, 쉘 커맨드 안전도 등급 테이블은 쉘 커맨드별 안전도 및 패스워드 레벨값을 포함할 수 있다.
일실시예에서, 쉘 커맨드 실행 제어부는 상기 검출된 쉘 커맨드의 안전도가 '비안전'으로 판단되면 사용자에게 상기 쉘 커맨드의 패스워드 레벨 및 패스워드 입력을 요청할 수 있다.
일실시예에서, 쉘 커맨드 실행 제어부는 패스워드 레벨별 사용자키 값 및 비밀키값이 저장된 패스워드 테이블을 포함하고, 상기 사용자로부터 입력된 패스워드값과 상기 레벨에 대응하여 상기 테이블에 저장된 비밀키값을 이용하여 사용자키 값을 생성하고, 상기 생성된 사용자키 값과 상기 레벨에 대응하여 상기 테이블에 저장된 사용자키값을 비교함으로써 사용자의 패스워드 통과여부를 판단할 수 있다.
일실시예에서, 상기 장치는, 패스워드를 통과한 상기 쉘 커맨드가 해킹을 위한 명령어인지 여부 및 상기 커맨드에 의해 액세스되는 대상 파일이 보안 파일인지 여부를 검사하는 해킹 검사부를 더 포함할 수 있다.
일실시예에서, 해킹 검사부는 해킹 명령어 목록 및 보안 파일 목록을 포함하고, 상기 쉘 커맨드가 상기 해킹 명령어 목록에 존재하는지 확인하고, 존재하는 경우에 상기 대상 파일이 보안 파일 목록에 존재하는지 검사하고, 상기 보안 파일 목록에 존재하는 경우에 상기 쉘 커맨드의 실행이 차단되도록 할 수 있다.
본 발명의 일실시예에 따른 임베디드 시스템에서 쉘 커맨드의 안전 실행 보장 방법은, 쉘 커맨드의 실행 요청을 검출하는 단계; 상기 검출된 셀 커맨드의 안전도별 패스워드 통과 여부에 따라 상기 쉘 커맨드의 실행 여부를 제어하는 단계; 및 상기 쉘 커맨드 실행의 해킹 행위 가능성을 검사하는 단계를 포함한다.
일실시예에서, 상기 쉘 커맨드의 실행 여부를 제어하는 단계는, 쉘 커맨드 안전도 등급 테이블을 참조하여 상기 쉘 커맨드의 안전도를 확인하는 단계; 상기 쉘 커맨드의 안전도가 '비안전'인 경우에 사용자에게 패스워드 레벨 및 패스워드를 요청하여 수신하는 단계; 패스워드 테이블로부터 상기 수신된 레벨에 대응하는 비밀키값을 획득하고, 상기 사용자로부터 입력된 패스워드와 상기 비밀키값을 이용하여 사용자키값을 생성하는 단계; 및 상기 생성된 사용자키 값과 상기 패스워드 테이블에 저장된 상기 레벨에 대응하는 사용자키 값을 비교함으로써 패스워드 통과여부를 판단하는 단계를 포함할 수 있다.
일실시예에서, 상기 쉘 커맨드 실행의 해킹 행위 가능성을 검사하는 단계는, 상기 쉘 커맨드가 해킹 명령어 목록에 존재하는지 확인하는 단계; 및 상기 해킹 명령어 목록에 존재하는 경우에 상기 쉘 커맨드에 의해 액세스되는 대상 파일이 시스템 보안 파일인지 여부를 판단하는 단계를 포함할 수 있다.
본 발명의 일실시예에 따르면, 임베디드 시스템에서, 일반 사용자가 관리자(또는 루트) 권한 쉘을 획득했음에도 불구하고, 루트 파일시스템 전체 삭제와 같은 비인가 쉘 커맨드(또는 프로세스)의 실행을 제한함으로써, 인위적인 고장 발생에 대해서도 대비할 수 있게 된다.
본 발명에 따르면 관리자 권한을 가진 쉘을 통해 입력되는 비인가 쉘 커맨드(혹은 프로세스)의 실행을 검출하고 패스워드 통과 여부에 따라 실행을 제한할 수 있다. 또한, 제품으로 릴리즈된 임베디드 장치에서 해킹에 의한 중요 파일들의 삭제와 관련 시스템 로그의 삭제를 방지함으로써 인위적인 장애에 대비할 수 있다.
이에 따라, 본 발명은 차세대 자동차의 스마트 게이트웨이 장치의 보안 장치로 활용 가능하며, 은행의 리눅스 서버에서 루트 쉘에서 커맨드 실행에 대한 권한 부여가 가능하므로 해커로부터 안전한 서버 구축이 가능하다.
도 1은 쉘 커맨드 처리 과정을 도시한 흐름도이다.
도 2(a) 종래에 모든 쉘 커맨드가 제약없이 실행되는 경우를 도시한 것이고, 2(b)는 본 발명에 따른 쉘 커맨드의 안전 실행이 도입된 경우를 개념적으로 도시한 것이다.
도 3은 본 발명의 일실시예에 따른 쉘 커맨드 안전 실행 보장 장치의 구성을 도시한 블록도이다.
도 4는 본 발명의 일실시예에 따른 쉘 커맨드 안전 실행 보장 방법을 도시한 흐름도이다.
도 5는 본 발명의 일실시예에 따른 쉘 커맨드 안전도 확인 과정을 도시한 흐름도이다.
도 6은 본 발명의 일실시예에 따른 패스워드 확인 과정을 도시한 흐름도이다.
도 7은 본 발명의 일실시예에 따른 해킹 검사 과정을 도시한 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
또한, 본 명세서 및 청구항에서 사용되는 단수 표현은, 달리 언급하지 않는 한 일반적으로 "하나 이상"을 의미하는 것으로 해석되어야 한다.
또한, 본 명세서에서 사용되는 용어들중 "모듈", "부", "인터페이스"등은 일반적으로 컴퓨터 관련 객체를 의미하며, 예를 들어, 하드웨어, 소프트웨어 및 이들의 조합을 의미할 수 있다.
이하, 도면을 참조하여 쉘 커맨드의 비인가 실행을 제어하는 본 발명의 실시예를 설명하기로 한다. 우선, 본 발명의 이해를 돕기 위하여 도 1을 참조하여 통상의 쉘 커맨드 처리 과정을 설명한다.
도 1은 쉘 커맨드 처리 과정을 도시한 흐름도이다.
관리자가 루트 쉘 권한을 획득한 후에(S110), 쉘 커맨드를 입력한다(S120).
입력된 쉘 커맨드는 커맨드 인터프리터 등을 통해 커널이 인식할 수 있는 형태로 번역되고(S130), 커널 처리과정(S140)을 수행한 후에, 더 이상의 커맨드 입력이 없는지 판단하고(S148), 추가 입력이 없다면 처리는 종료된다. 커널 처리 과정(S140)을 세부적으로 살펴보면, 커널 처리 과정(S140)은 커맨드 명칭 및 연관 파라미터를 획득하고(S142), 상기 커맨드 실행을 위한 프로세스를 생성하여 실행하고(S144), 실행 결과를 표시하는 과정(S146)을 포함한다.
전술한 과정에 의하면, 관리자의 루트 쉘 권한이 해커에 의해 탈취된 경우에 해커에 의해 입력된 하드디스크 삭제, 시스템 로그 삭제 등의 비인가 쉘 커맨드가 커널을 통해 실행됨에 따라 임베디드 시스템에 치명적 장애를 발생시킬 위험이 존재한다.
따라서, 본 발명은 이러한 위험을 방지하기 위해, 임베디드 시스템에서 비인가 쉘 커맨드(또는 프로세스) 실행에 의한 시스템 고장을 방지하고 시스템의 보안(security)과 안전성(safety)을 실현하고자 한다.
도 2(a) 및 2(b)를 참조하면, 본 발명에 따른 쉘커맨드의 안전 실행 제어 방식이 개념적으로 도시되어 있다. 도2(a)는 종래에 모든 쉘 커맨드가 제약없이 실행되는 과정을 도시한 것이고, 도2(b)는 본 발명에 따라 사용자 영역 쉘 프로세스와 커널 사이에 본 발명의 일실시예에 따른 쉘 커맨드 안전실행 보장장치(200)를 두어 사용자 영역으로부터 전달되는 쉘커맨드의 모니터링 및 필터링을 통한 안전 실행을 도시한 것이다.
이하에서는, 도 3 내지 도 7을 참조하여, 본 발명의 일실시예에 따른 쉘커맨드 안전 실행 보장 장치 및 방법을 설명한다.
도 3은 본 발명의 일실시예에 따른 쉘 커맨드 안전 실행 보장 장치의 구성을 도시한 블록도이다. 도시된 바와 같이, 쉘 커맨드 안전 실행 보장 장치(300)는 쉘 커맨드 검출부(310), 쉘 커맨드 실행 제어부(320), 해킹 검사부(330) 및 보안로그 저장소(340)를 포함할 수 있다.
쉘커맨드 검출부(310)는 사용자 영역으로부터 커널 영역으로 전달되는 쉘 커맨드의 실행 요청을 검출한다. 일실시예에서, 쉘 커맨드는 사용자가 일반 계정이 아닌 루트 쉘 권한을 갖는 관리자 계정을 통해 입력한 것일 수 있다.
쉘 커맨드 실행 제어부(320)는 쉘 커맨드 검출부(310)에 의해 검출된 쉘 커맨드의 안전도별 패스워드 통과 여부에 따라 해당 쉘 커맨드의 실행 여부를 판단할 수 있다. 일실시예에서, 쉘 커맨드 실행 제어부(320)는 쉘 커맨드 안전도 등급 테이블을 이용하여 상기 쉘 커맨드의 안전도를 판단할 수 있다. 하기 표 1은 쉘 커맨드 안전도 등급 테이블의 일 예이다.
커맨드 명칭
(sh_cmd)
위치
(directory)
권한
(ceritification)
패스워드 레벨
(level)
mkfs.* /usr/sbin 비안전(unsafe) 1
fdisk /bin 비안전(unsafe) 1
ls /bin 안전(safe) 1
cd /bin 안전(safe) 1
rm ??rf / /bin 비안전(unsafe) 1
passwd /bin 비안전(unsafe) 2
cat /dev/null > /var/log/* /bin 비안전(unsafe) 1
abc /usr/local/bin 비안전(unsafe) 2
도시된 바와 같이, 쉘 커맨드 안전도 등급 테이블은 커맨드별로 설정된 안전도 및 패스워드 레벨을 포함한다.
일실시예에서, 쉘 커맨드 실행 제어부(320)는 검출된 쉘 커맨드 명칭과 일치하는 커맨드 명칭을 상기 쉘 커맨드 안전도 등급 테이블로부터 검색하여, 해당 쉘 커맨드의 안전도 값을 확인한다. 확인 결과, 쉘 커맨드의 안전도 값이 '안전(safe)'으로 확인되면 해당 쉘 커맨드가 실행되도록 하는 반면, '비안전(unsafe)'으로 확인될 경우에 사용자로 하여금 패스워드 레벨 및 해당 레벨에 따른 패스워드(공개키값)를 입력하도록 요구한다.
일실시예에서, 쉘 커맨드 실행 제어부(320)는 레벨별 패스워드 테이블을 참조하여 사용자로부터 입력된 패스워드 레벨에 대응하는 비밀키값을 획득하고, 사용자로부터 입력된 패스워드(공개키값)과 상기 비밀키값을 이용하여 사용자키 값을 생성하고, 생성된 값과 상기 레벨별 패스워드 테이블에 저장된 상기 레벨에 대응하는 사용자키 값을 비교함으로써 패스워드 통과여부를 판단한다 하기 표 2에 레벨별 패스워드 테이블의 일예가 기재되어 있다.
패스워드레벨(level) 사용자 인코딩 키 (key) 사용자 비밀 키(priv_key)
1 key1 (= private_key1+public_key1) private_key1
2 key2 (= private_key2+public_key2) private_key2
3 key3 (= private_key3+public_key3) private_key3
쉘 커맨드 실행 제어부(320)는 사용자가 패스워드를 통과하지 못하는 경우에 해당 커맨드의 실행을 차단할 수 있다. 이 때, 쉘 커맨드 실행 제어부(320)는 해당 커맨드의 패스워드 통과 실패 상황을 시스템 보안 로그 저장소(340)에 기록할 수 있다.
해킹 검사부(330)는 패스워드를 통과한 사용자가 실행하고자 하는 쉘 커맨드가 해킹을 위한 명령어인지 여부 및 사용자가 액세스하고자 하는 파일이 보안 파일인지 여부를 검사한다.
일실시예에서, 해킹 검사부(330)는 해킹 명령어 목록(hacking_cmd_list)을 참조하여 해당 쉘 커맨드가 상기 목록에 존재하는지 확인하고, 존재하는 경우에 사용자가 쉘 커맨드를 이용하여 액세스하고자 하는 파일이 시스템 보안 파일인지 여부를 검사한다. 일실시예에서, 해킹 검사부(330)는 시스템 보안파일 목록을 참조하여 액세스하고자 하는 파일이 시스템 보안 파일 목록에 존재하는지 판단하고, 존재하는 경우에 해킹 행위로 간주하고 커맨드 실행을 차단할 수 있다. 해킹 검사부(330)는 쉘 커맨드가 해킹 명령어 목록에 존재하거나 해당 쉘 커맨드를 이용하여 액세스하고자 하는 파일이 보안 파일인 경우에는 쉘 커맨드를 시스템 보안 로그 저장소(340)에 기록할 수 있다.
한편, 해당 파일이 시스템 보안파일이 아닌 경우에 해당 커맨드는 커널 프로세스 생성을 통해 실행될 수 있다. 하기 표 3은 시스템 보안파일 목록의 일예를 기재한 것이다.
시스템 보안파일(filename) 설명문(comment)
/root/.bash_history 쉘 커맨드 히스토리 파일
/var/log/messages 로그 메시지 파일
/var/log/maillog 메일 로그 파일
/var/log/secure 보안 로그 파일
도 4는 본 발명의 일실시예에 따른 쉘 커맨드의 안전 실행 보장 방법을 도시한 흐름도이다.
도시된 바와 같이, 상기 방법은, 입력된 쉘 커맨드 획득(S410), 쉘 커맨드의 안전도 확인(S420), 패스워드 확인(S430) 및 해킹 검사(S440) 과정을 수행하고 그 결과 해당 쉘 커맨드가 안전하면 결과값(status)에 'TRUE'값을 설정(S480)하여 반환해줌으로써 해당 커맨드가 실행되도록 해주고, 안전하지 않은 경우에는 결과값(status)에 'FALSE'를 설정하여(S460) 반환해줌으로써 해당 쉘 커맨드의 실행되지 못하도록 한다.
구체적으로, 단계(S410)에서, 사용자에 의해 사용자 영역에 입력되어 커널 영역으로 전달되는 쉘 커맨드를 획득한다.
단계(S420)에서, 상기 획득된 쉘 커맨드의 안전도를 확인한다. 이와 관련하여, 도 5에 쉘 커맨드의 안전도 확인의 세부 과정이 도시되어 있다. 도시된 바와 같이, 단계(S520)에서, 쉘 커맨드 안전도 등급 테이블을 참조하여 상기 획득된 쉘 커맨드가 해당 테이블에 존재하는지 판단한다. 판단 결과, 쉘 커맨드가 해당 테이블에 존재하지 않는다면, 그 결과값은 "not certified command"로 설정된다(S550). 한편, 쉘 커맨드가 해당 테이블에 존재하는 경우에는 해당 쉘 커맨드의 안전도 값을 상기 테이블로부터 확인하고(S530) 그 값이 "안전(safe)"으로 설정되어 있으면 결과값(status)에 "certified command"을 설정한다(S540).
결과값은 다음 과정으로의 진행을 위해 반환된다(S560).
다시, 도 4를 참조하면, 단계(S420)의 수행 결과 쉘 커맨드이 결과값이 "not certified command"인 경우에, 사용자에게 패스워드를 요구하여 확인하는 단계(S430)로 진행한다. 이와 관련하여, 도 6에 본 발명의 일실시예에 따른 패스워드 확인 세부 과정이 흐름도로 도시되어 있다.
도시된 바와 같이, 단계(S610)에서, 사용자에게 패스워드 레벨 및 패스워드(공개키값)을 요청하여 수신한다. 단계(S620)에서 레벨별 패스워드 테이블로부터 해당 레벨에 대응하는 비밀키값을 획득하고, 단계(S630) 사용자로부터 입력된 패스워드(공개키값)과 상기 비밀키값을 이용하여 사용자키 값을 생성하고, 단계(S640)에서 생성된 사용자키 값과 상기 레벨별 패스워드 테이블에 저장된 상기 레벨에 대응하는 사용자키 값을 비교함으로써 패스워드 통과여부를 판단한다. 패스워드를 통과한 경우에는 결과값(status)에 "PASS(통과)"를 설정하고(S650), 그렇지 않은 경우에는 결과값(status)에 "NOT PASS(미통과)"를 설정한 후에(S660), 그 결과값을 반환한다(S670).
다시, 도 4를 참조하면, 사용자가 패스워드를 통과한 경우에는 해킹 검사 단계(S440)으로 진행한다. 본 발명의 일실시예에 따른 해킹 검사 과정은 도 7에 상세히 도시되어 있다.
도시된 바와 같이, 단계(S710)에서 해킹 명령어 목록(hacking_cmd_list)을 참조하여 해당 쉘 커맨드가 상기 목록에 존재하는지 확인한다. 존재하는 경우에, 단계(S720)에서 시스템 보안 파일 목록을 참조하여 상기 쉘 커맨드를 이용하여 액세스하고자 하는 파일이 시스템 보안 파일인지 여부를 판단한다.
시스템 보안 파일을 액세스하는 것으로 판단된 경우에, 해당 쉘 커맨드의 실행 요청을 해킹 행위로 간주하여 결과값에 "SECURE FILE ACCESS"로 설정하고(S730), 그렇지 않은 경우에는 "SECURE FILE NOT ACCESS"를 설정한 후에(S740), 해당 결과값을 반환한다(S750).
도 4를 다시 참조하면, 쉘 커맨드의 안전도 확인 단계(S420)를 수행한 결과 해당 쉘 커맨드가 안전한 커맨드로 확인된 경우 또는 패스워드 확인 단계(S430) 및 해킹 검사 단계(S440)를 거쳐 쉘 커맨드의 안전성이 확인된 경우에는 최종 결과값에 "TRUE" 가 설정되지만(S480), 패스워드 확인 단계(S430)를 통과하지 못하거나 해킹 검사 단계(S440)의 수행 결과 보안 파일을 액세스하려는 것으로 판단된 경우에 최종 결과값은 "FALSE"로 설정된 후(S460), 그 결과값이 반환될 것이다.
따라서, 최종 결과값이 "TRUE"인 경우에는 해당 쉘 커맨드가 커널 영역에서 실행되지만 최종 결과값이 "FALSE"인 경우에는 쉘 커맨드의 실행은 차단된다.
한편, 패스워드 확인 단계(S430) 및 해킹 검사 단계(S440)를 거친 쉘 커맨드는 단계(S450, S460)에서 보안 로그 파일에 기록되어 향후 모니터링 과정에 이용될 수 있다.
본 발명의 전술한 실시예를 포함한 다양한 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 또한 상술한 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이제까지 본 발명에 대하여 그 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (11)

  1. 임베디드 시스템에서의 쉘 커맨드(shell command) 안전 실행을 보장하기 위한 장치로서,
    쉘 커맨드의 실행 요청을 검출하는 쉘 커맨드 검출부와,
    상기 검출된 셀 커맨드의 안전도별 패스워드 통과 여부에 따라 상기 쉘 커맨드의 실행 여부를 제어하는 쉘 커맨드 실행 제어부; 및
    해킹 명령어 목록 및 보안 파일 목록을 포함하고, 상기 쉘 커맨드가 상기 해킹 명령어 목록에 존재하는지 확인하고, 존재하는 경우에 상기 쉘 커맨드에 의해 액세스되는 대상 파일이 보안 파일 목록에 존재하는지 검사하고, 상기 보안 파일 목록에 존재하는 경우에 상기 쉘 커맨드의 실행을 차단하는 해킹 검사부를 포함하는 장치.
  2. 제1항에 있어서, 상기 쉘 커맨드 검출부는 관리자 계정을 통해 입력되는 쉘 커맨드 실행 요청을 검출하는 장치.
  3. 제1항에 있어서, 상기 쉘 커맨드 실행 제어부는 쉘 커맨드 안전도 등급 테이블을 이용하여 상기 검출된 쉘 커맨드의 안전도를 판단하는 장치.
  4. 제3항에 있어서, 상기 쉘 커맨드 안전도 등급 테이블은 쉘 커맨드별 안전도 및 패스워드 레벨값을 포함하는 장치.
  5. 제4항에 있어서, 상기 쉘 커맨드 실행 제어부는 상기 검출된 쉘 커맨드의 안전도가 '비안전'으로 판단되면 사용자에게 상기 쉘 커맨드의 패스워드 레벨 및 패스워드 입력을 요청하는 장치.
  6. 제5항에 있어서, 상기 쉘 커맨드 실행 제어부는 패스워드 레벨별 사용자키 값 및 비밀키값이 저장된 패스워드 테이블을 포함하고, 상기 사용자로부터 입력된 패스워드값과 상기 레벨에 대응하여 상기 테이블에 저장된 비밀키값을 이용하여 사용자키 값을 생성하고, 상기 생성된 사용자키 값과 상기 레벨에 대응하여 상기 테이블에 저장된 사용자키값을 비교함으로써 사용자의 패스워드 통과여부를 판단하는 장치.
  7. 제1항에 있어서, 상기 해킹 검사부는 상기 패스워드를 통과한 상기 쉘 커맨드가 해킹을 위한 명령어인지 여부 및 상기 커맨드에 의해 액세스되는 대상 파일이 보안 파일인지 여부를 검사하는 장치.
  8. 삭제
  9. 임베디드 시스템에서 쉘 커맨드의 안전 실행을 보장하기 위한 방법으로서, 상기 방법은,
    쉘 커맨드의 실행 요청을 검출하는 단계;
    상기 검출된 셀 커맨드의 안전도별 패스워드 통과 여부에 따라 상기 쉘 커맨드의 실행 여부를 제어하는 단계; 및
    상기 쉘 커맨드 실행의 해킹 행위 가능성을 검사하는 단계를 포함하되,
    상기 쉘 커맨드 실행의 해킹 행위 가능성을 검사하는 단계는,
    상기 쉘 커맨드가 해킹 명령어 목록에 존재하는지 확인하는 단계; 및
    상기 해킹 명령어 목록에 존재하는 경우에 상기 쉘 커맨드에 의해 액세스되는 대상 파일이 시스템 보안 파일인지 여부를 판단하는 단계
    를 포함하는 방법.
  10. 제9항에 있어서, 상기 쉘 커맨드의 실행 여부를 제어하는 단계는,
    쉘 커맨드 안전도 등급 테이블을 참조하여 상기 쉘 커맨드의 안전도를 확인하는 단계;
    상기 쉘 커맨드의 안전도가 '비안전'인 경우에 사용자에게 패스워드 레벨 및 패스워드를 요청하여 수신하는 단계;
    패스워드 테이블로부터 상기 수신된 레벨에 대응하는 비밀키값을 획득하고, 상기 사용자로부터 입력된 패스워드와 상기 비밀키값을 이용하여 사용자키값을 생성하는 단계; 및
    상기 생성된 사용자키 값과 상기 패스워드 테이블에 저장된 상기 레벨에 대응하는 사용자키 값을 비교함으로써 패스워드 통과여부를 판단하는 단계
    를 포함하는 방법.
  11. 삭제
KR1020130133144A 2013-11-04 2013-11-04 임베디드 시스템에서 쉘 커맨드의 안전 실행 보장 장치 및 방법 KR101732889B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130133144A KR101732889B1 (ko) 2013-11-04 2013-11-04 임베디드 시스템에서 쉘 커맨드의 안전 실행 보장 장치 및 방법
US14/302,587 US9323927B2 (en) 2013-11-04 2014-06-12 Apparatus and method for guaranteeing safe execution of shell command in embedded system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130133144A KR101732889B1 (ko) 2013-11-04 2013-11-04 임베디드 시스템에서 쉘 커맨드의 안전 실행 보장 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20150052418A KR20150052418A (ko) 2015-05-14
KR101732889B1 true KR101732889B1 (ko) 2017-05-08

Family

ID=53008091

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130133144A KR101732889B1 (ko) 2013-11-04 2013-11-04 임베디드 시스템에서 쉘 커맨드의 안전 실행 보장 장치 및 방법

Country Status (2)

Country Link
US (1) US9323927B2 (ko)
KR (1) KR101732889B1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10452850B2 (en) * 2014-08-18 2019-10-22 International Business Machines Corporation Protected shell for risk validation
US10397232B2 (en) 2015-06-25 2019-08-27 Amazon Technologies, Inc. Controlling user access to command execution
US10365992B2 (en) 2017-04-21 2019-07-30 International Business Machines Corporation Protecting against an unintentional re-execution of commands in a shell history
GB2563066B (en) 2017-06-02 2019-11-06 Avecto Ltd Computer device and method for managing privilege delegation
GB2566262B (en) 2017-09-01 2020-08-26 Avecto Ltd Managing installation of applications on a computer device
GB2566305B (en) 2017-09-08 2020-04-15 Avecto Ltd Computer device and method for controlling process components
GB2566949B (en) 2017-09-27 2020-09-09 Avecto Ltd Computer device and method for managing privilege delegation
GB2568919B (en) 2017-11-30 2020-07-15 Avecto Ltd Managing removal and modification of installed programs on a computer device
GB2570655B (en) 2018-01-31 2020-12-16 Avecto Ltd Managing privilege delegation on a server device
GB2573491B (en) 2018-02-08 2020-07-01 Avecto Ltd Managing privilege delegation on a computer device
GB2570924B (en) 2018-02-12 2021-06-16 Avecto Ltd Managing registry access on a computer device
GB2572977B (en) 2018-04-18 2020-04-22 Avecto Ltd Protecting a computer device from escalation of privilege attacks
US11659003B2 (en) 2018-08-30 2023-05-23 International Business Machines Corporation Safe shell container facilitating inspection of a virtual container
GB2577067B (en) * 2018-09-12 2021-01-13 Avecto Ltd Controlling applications by an application control system in a computer device
US11080395B1 (en) * 2018-11-30 2021-08-03 Capsule8, Inc. Interactive shell event detection
CN110781491B (zh) * 2019-10-25 2022-02-18 苏州浪潮智能科技有限公司 一种进程访问文件的控制方法及装置
CN111159690B (zh) * 2019-12-13 2023-08-08 深圳市科陆电子科技股份有限公司 基于嵌入式Linux系统的远程监控方法、系统及存储介质
CN111262884B (zh) * 2020-03-16 2021-06-11 佛山市诚名信息科技有限公司 智能家居访问授权方法、装置、智能家居系统及服务器
US11676158B2 (en) * 2020-06-02 2023-06-13 Kyndryl, Inc. Automatic remediation of non-compliance events

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060265759A1 (en) * 2005-05-19 2006-11-23 Microsoft Corporation Systems and methods for identifying principals to control access to computing resources
KR100998284B1 (ko) 2009-12-31 2010-12-03 신영전자통신 주식회사 네트워크와 보안이 통합된 보안스위치 장치 및 그 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4918653A (en) * 1988-01-28 1990-04-17 International Business Machines Corporation Trusted path mechanism for an operating system
US5032979A (en) * 1990-06-22 1991-07-16 International Business Machines Corporation Distributed security auditing subsystem for an operating system
US8447963B2 (en) * 2002-06-12 2013-05-21 Bladelogic Inc. Method and system for simplifying distributed server management
ES2309364T3 (es) * 2003-08-11 2008-12-16 Telecom Italia S.P.A. Procedimiento y sistema de deteccion de una utilizacion no autorizada de una red de comunicaciones.
US7373661B2 (en) * 2005-02-14 2008-05-13 Ethome, Inc. Systems and methods for automatically configuring and managing network devices and virtual private networks
US7716734B2 (en) * 2005-05-19 2010-05-11 Microsoft Corporation Systems and methods for pattern matching on principal names to control access to computing resources
US8484232B2 (en) * 2005-11-22 2013-07-09 International Business Machines Corporation Method, computer arrangement, computer program and computer program product for checking for the presence of control statements in a data value
KR100798923B1 (ko) * 2006-09-29 2008-01-29 한국전자통신연구원 컴퓨터 및 네트워크 보안을 위한 공격 분류 방법 및 이를수행하는 프로그램을 기록한 기록 매체
US8239954B2 (en) * 2007-05-07 2012-08-07 Microsoft Corporation Access control based on program properties
GB0816556D0 (en) * 2008-09-10 2008-10-15 Univ Napier Improvements in or relating to digital forensics
KR20100054940A (ko) 2008-11-17 2010-05-26 포항공과대학교 산학협력단 임베디드 리눅스에서 서명 검증 방식을 이용한 악성 프로그램 차단 장치 및 방법
US8694956B2 (en) * 2010-10-14 2014-04-08 Red Hat Israel, Ltd. PowerShell cmdlets code generating tool for communicating to the web services
US10003458B2 (en) 2011-12-21 2018-06-19 Ssh Communications Security Corp. User key management for the secure shell (SSH)
US8863273B2 (en) * 2012-01-30 2014-10-14 Mediatek Inc. Method of using an account agent to access superuser account shell of a computer device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060265759A1 (en) * 2005-05-19 2006-11-23 Microsoft Corporation Systems and methods for identifying principals to control access to computing resources
KR100998284B1 (ko) 2009-12-31 2010-12-03 신영전자통신 주식회사 네트워크와 보안이 통합된 보안스위치 장치 및 그 방법

Also Published As

Publication number Publication date
US9323927B2 (en) 2016-04-26
KR20150052418A (ko) 2015-05-14
US20150128250A1 (en) 2015-05-07

Similar Documents

Publication Publication Date Title
KR101732889B1 (ko) 임베디드 시스템에서 쉘 커맨드의 안전 실행 보장 장치 및 방법
EP3029593B1 (en) System and method of limiting the operation of trusted applications in the presence of suspicious programs
EP2926249B1 (en) Preboot environment with system security check
US20030041255A1 (en) Method and apparatus for locking an application within a trusted environment
CN107729198B (zh) 一种Android系统固件校验方法及装置
CN102521165A (zh) 安全优盘及其识别方法和装置
US8713640B2 (en) System and method for logical separation of a server by using client virtualization
US20180026986A1 (en) Data loss prevention system and data loss prevention method
TWI607338B (zh) 儲存裝置及其資料保護方法與資料保護系統
CN110543775B (zh) 一种基于超融合理念的数据安全防护方法及系统
CN101694683A (zh) 一种防止木马通过移动存储器摆渡窃取文件的方法
CN109359450B (zh) Linux系统的安全访问方法、装置、设备和存储介质
CN109583206B (zh) 监控应用程序的访问进程的方法、装置、设备及存储介质
CN111259405A (zh) 一种基于人工智能的计算机安全系统
KR101763184B1 (ko) 백업을 이용한 파일 복구 방법
CN113194088B (zh) 访问拦截方法、装置、日志服务器和计算机可读存储介质
JP3851263B2 (ja) 多重システム停止の再発防止方法
CN109582454A (zh) 一种分布式存储集群中的权限释放控制方法、装置及设备
CN115017480A (zh) 一种基于智能化控制的计算机安全防护管控系统
US20220107834A1 (en) Task engine
CN113672888A (zh) 一种云平台的访问方法、装置、系统及云平台服务器
CN113672884A (zh) 身份认证方法、装置、存储介质和身份认证设备
CN117648100B (zh) 应用部署方法、装置、设备和存储介质
KR102367756B1 (ko) 폐쇄형 내부망으로의 입력 소프트웨어 보안시스템과 보안방법
US20240070303A1 (en) File Encapsulation Validation

Legal Events

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