KR20040086251A - 보안 홀 진단 시스템 - Google Patents

보안 홀 진단 시스템 Download PDF

Info

Publication number
KR20040086251A
KR20040086251A KR10-2004-7009823A KR20047009823A KR20040086251A KR 20040086251 A KR20040086251 A KR 20040086251A KR 20047009823 A KR20047009823 A KR 20047009823A KR 20040086251 A KR20040086251 A KR 20040086251A
Authority
KR
South Korea
Prior art keywords
script
unit
plug
inspection
execution
Prior art date
Application number
KR10-2004-7009823A
Other languages
English (en)
Other versions
KR100676574B1 (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 미쓰비시덴키 가부시키가이샤
Publication of KR20040086251A publication Critical patent/KR20040086251A/ko
Application granted granted Critical
Publication of KR100676574B1 publication Critical patent/KR100676574B1/ko

Links

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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

통상 공격자가 실행하는 순서를 프로그래밍 언어로 기술된 스크립트가 미리 축적되어, 그 축적된 스크립트로부터 사용자가 선택한 스크립트를 실행하는 것에 의해, 개개의 보안 홀 공격을 위한 논리가 실장된 플러그인을 호출하고, 이 플러그인을 검사 대상 컴퓨터에 대하여 실행함으로써, 사용자는 검사 실행부간의 입출력의 관계 등, 보안상의 지식을 알고 있을 필요가 없어진다.

Description

보안 홀 진단 시스템{SECURITY HOLE DIAGNOSIS SYSTEM}
도 9는 일본 특허 공개 2001-337919(제 4-8 페이지, 도 3, 도 4, 도 14)로 대표되는 종래의 보안 홀 진단 시스템을 나타내는 구성도이다. 종래의 시스템은 조작 장치(900)와 검사 실행 장치(907)로 구성되며, 조작 장치(900)는 디스플레이(902), 화면 생성부(903), 조작 제어부(905), 표시명 정의 파일(904) 및 순서 정의 파일(906)로 구성되어 있다.
또한, 검사 실행 장치(907)는 실행 제어부(908), 대상 호스트 정보 저장부(909), 복수의 검사 실행 수단(911), 및 검사 실행 수단 저장부(910)로 구성되어 있다.
도 10은 동(同)시스템에서의 순서 정의 파일(906)의 예를 나타내는 것이다. 순서 정의 파일(906)에는, 검사 실행 수단(911)의 분류키명과, 분류키로서 지정된 검사 실행 수단(911)의 프로퍼티(property)의 값마다 표시명, 실행 타입, 설명문이 기재되어 있다.
도 11은 동시스템에서의 검사 실행 수단(911)의 정보(검사 실행 정보)를 나타내는 것이다. 검사 실행 정보에는, 각 검사 실행 수단(911)을 특징짓는 값(프로퍼티)이 키명(프로퍼티명)에 관련지어 저장되어 있다. 즉, 검사 실행 정보(검사 실행 수단의 정보)는 검사 실행 수단에 하나씩 포함되어 있으며, 그 검사 실행 수단을 특징짓는 정보(=프로필)이다. 검사 실행 정보에는, 복수의 항목(프로퍼티)을 기술할 수 있다. 각 항목은 프로퍼티명으로 구별된다.
다음에 종래의 시스템의 동작에 대해서 설명한다. 조작 장치(900)가 검사 실행 장치(907)에 접속되면, 조작 장치(900)는 표시명 정의 파일(904) 및 순서 정의 파일(906)을 로드한다.
다음에, 검사 실행 장치(907) 중 검사 실행 수단 저장부(910)에 축적되어 있는 검사 실행 수단(911) 하나 하나로부터 검사 실행 정보를 취출하고, 순서 정의 파일(906)에 지정된 키명에 대응하는 프로퍼티를 기초로, 각 검사 실행 수단(911)을 순서 정의 파일(906)에 기재된 카테고리로 분류한다. 마지막으로 분류된 검사 실행 수단(911)의 일람(一覽)을 카테고리마다 디스플레이(902)에 표시한다.
사용자(101)는 디스플레이(902)에 표시된 카테고리를 선택하고, 실행에 필요한 파라미터를 입력해서, 검사 실행을 요구한다. 파라미터의 설명은 표시명 정의 파일(904)에 기재되어 있는 정보가 이용된다. 검사 실행이 요구된 조작 장치(900)는 그 카테고리로 분류된 검사 실행 수단(911)을 실행하도록, 조작 제어부(905)를 통해서 검사 실행 장치(907)에 요구한다.
검사 실행 장치(907)는 지정된 검사 실행 수단(911)을 호출하고, 그 결과,검사를 위한 패킷이 검사 대상 호스트 컴퓨터(107)에 송신된다.
또한, 각 검사 실행 수단(911)은 대상 호스트 정보 저장부(909)에 정보를 저장할 수 있고, 저장된 정보는 다른 검사 실행 수단(911)에 의해 참조될 수 있다. 또한, 사용자(101)가 조작 장치(900)를 통해서 직접 대상 호스트 정보 저장부(909)에 정보를 저장하는 것도 가능하다.
이상이 종래의 시스템에서의 검사의 흐름이다. 여기서, 카테고리의 표시 순서는 순서 정의 파일(906)에 기재되어 있는 순서이며, 이를 일반적인 공격 순서에 따르도록 함으로써, 사용자(101)는 디스플레이(902)에 표시된 순서로 검사를 실행하는 것에 의해 공격자가 모의한 검사를 실행할 수 있다.
이상과 같이, 종래의 보안 홀 진단 시스템은 복수의 검사 실행 수단을 가지며, 그들을 순서 정의 파일에서 부여된 방법으로 분류·표시하고, 카테고리마다 사용자가 선택함으로써 그 카테고리에 속하는 검사 실행 수단을 실행한다고 하는 것이고, 또한 검사 실행 수단은 직접 검사 대상 호스트 컴퓨터에 대하여 검사를 실행한다고 하는 것이었다. 그 때문에, 이하와 같은 문제가 있었다.
각 카테고리마다 입력해야 하는 실행 파라미터는 사용자가 이전의 검사 결과로부터 입력해야 하며, 어떤 카테고리의 검사 결과와 다음 카테고리로의 입력과의 관계를 사용자는 이해하고 있을 필요가 있다. 그 때문에, 사용자는 보안상의 지식이 필요하게 되었다.
정의 파일은 순차 실행의 시나리오밖에 표현할 수 없지만, 실제 공격자는 이전에 행한 공격의 결과에 따라 다음에 실시해야 할 공격의 종류를 변화시킬 경우도많다. 종래의 시스템에서는, 다음에 어느 카테고리의 검사를 실행할지의 판단은 사용자가 해야 하고, 여기서도 사용자에게 보안상의 지식이 필요로 하였다.
공격자는 어떤 목적을 갖고 복잡한 단계로 구성되는 공격을 실행한다. 그 일련의 공격은 더 큰 목적을 달성하기 위한 공격 시나리오의 한 단계에 불과한 경우도 상정된다. 종래의 시스템에서는 이러한 계층화된 공격 시나리오를 표현하는 것은 불가능하다.
대상 호스트 정보 저장부에 축적되는 정보로부터, 별도의 정보를 추론하기 위한 추론 방법이 없다. 이는, 예를 들면 대상 호스트의 OS가 UNIX(등록 상표)이므로 관리자의 어카운트명이 root라고 하는 지식을 도출하기 위한 수단이다. 따라서, 각 검사 실행 수단에는, 필요로 하는 정보를 축적되어 있는 정보로부터 추론하기 위한 논리를 매립해야 된다.
공격자는 어떤 호스트로의 침입에 성공하면, 거기를 플랫폼으로 하여 더 내부로의 침입을 시도하는 경우가 많다. 그러나 종래의 검사 시스템에서는 검사 실행 수단으로부터 직접 검사를 실행하기 때문에, 플랫폼의 사용을 이용한 검사 시나리오를 실시할 수 없다.
본 발명은 상기의 문제를 해결하기 위해서 행해진 것으로, 이하의 사항을 목적으로 한다.
검사 시나리오를 프로그래밍 언어로 기술된 스크립트(script)로서 표현하고, 스크립트로부터 자동적으로 플러그인(검사 실행 수단에 해당)을 호출함으로써, 복잡한 시험의 실시를 가능하게 한다.
각 검사 실행 수단간의 파라미터의 수수(授受)는 스크립트가 매개하도록 함으로써, 사용자는 검사 실행 수단간의 입출력의 관계에 대해서 알고 있을 필요를 없앤다.
보안 홀 진단을 실행할 때에, 보다 현실에 가까운 고도의 공격 시나리오에 근거한 검사를 실시하는 것을 가능하게 하여, 사용자에게 필요로 되는 보안 지식의 정도를 경감할 수 있어, 검사 논리 작성자의 부담을 경감시킨다.
발명의 개시
본 발명에 따른 보안 홀 진단 시스템은, 부정 액세스를 위해 통상 공격자가 실행하는 순서가 프로그래밍 언어로 기술된 스크립트가 복수개 축적된 스크립트 축적부와, 이용자로부터의 입력에 의해 상기 스크립트의 일람을 요구하는 조작부와, 상기 조작부의 요구에 따라, 상기 스크립트 축적부로부터 각 스크립트를 취출하고, 입출력 파라미터 기술, 스크립트 실행 필요 조건, 검사 순서를 표시한 리스트를 작성해서 이용자에게 제시하고, 이용자가 선택한 스크립트를 실행하는 스크립트 제어부와, 각각의 보안 홀 공격을 위한 논리가 실장된 플러그인이 축적된 플러그인 축적부와, 스크립트 제어부가 스크립트를 실행하는 것에 의해 호출되어, 상기 플러그인 축적부로부터 상기 실행 스크립트에 대응하는 플러그인을 취출하여, 그 플러그인을 검사 대상 컴퓨터에 대해서 실행하는 플러그인 제어부를 구비하였다.
본 발명은 컴퓨터의 보안 홀의 유무를 진단하는 시스템에 관한 것이다.
도 1은 실시예 1에 따른 보안 홀 진단 시스템의 개략 구성도,
도 2는 도 1에 나타내는 취약성 검사 장치의 내부 구성도,
도 3은 도 1에 나타내는 플랫폼 모의 프로그램의 내부 구성도.
도 4는 스크립트의 구성 설명도,
도 5는 스크립트 제어부의 동작 흐름도,
도 6은 클래스명을 지정해서 검사를 실행하는 경우의 동작 흐름도,
도 7은 지식 파일의 예를 나타내는 설명도,
도 8은 스크립트의 기술예를 나타내는 설명도,
도 9는 종래의 보안 홀 진단 시스템을 나타내는 구성도,
도 10은 종래의 시스템에서의 순서 정의 파일의 설명도,
도 11은 종래의 시스템에서의 검사 실행부의 정보(검사 실행 정보)의 설명도.
발명을 실시하기 위한 최선의 형태
(실시예 1)
먼저 도 1을 참조하면서, 이 시스템의 개요에 대해서 설명한다. 본 시스템은 로컬(local)로 동작하는 취약성 검사 장치(100)와 리모트 또는 로컬의 호스트 컴퓨터인 1개 이상의 플랫폼 모의 장치로 구성된다. 본 실시예에서는 (1050, 1060)의 2개의 플랫폼 모의 장치가 배치되고, 취약성 검사 장치(100)와 플랫폼 모의 장치(1050, 1060)는 네트워크로 접속되어 있다. 또한, 플랫폼 모의 장치(1050, 1060)는 각각 플랫폼 모의 프로그램(105, 106)을 실행한다.
취약성 검사 장치(100)는 사용자(101)로부터의 요구에 따라, 대상으로 되는 호스트 컴퓨터 또는, 네트워크에 대하여 보안상의 취약성이 있는지 여부를 검사하는 계산기이다. 검사는 취약성 검사 장치(100)가 플랫폼 모의 장치(1050)의 플랫폼 모의 프로그램(105)을 조작함으로써 실시된다.
플랫폼 모의 장치(1050)가 실행하는 플랫폼 모의 프로그램(105)은 네트워크를 통해서 취약성 검사 장치(100)로부터 명령을 수취하고, 패킷 송수신, 프로세스의 기동·종료, 파일 전송, 메시지 중계를 실행하는 프로그램이다.
플랫폼 모의 프로그램(105)은 다른 플랫폼 모의 장치(1060)의 플랫폼 모의 프로그램(106)에 명령을 전송하는 기능도 갖고 있으며, 플랫폼 모의 장치(1050, 1060)를 적절히 배치함으로써 내부 네트워크에 위치하는 검사 대상 호스트 컴퓨터(107)에 대해서도 검사가 실행되도록 된다.
플랫폼 모의 프로그램(105, 106)은 검사 전에 검사 대상의 네트워크상의 호스트내에서 동작시켜 두는 것도, 또한, 취약성 검사의 일환으로서 보안 홀을 이용해서 매립하는 것도 가능하다.
플랫폼 모의 프로그램(105)의 조작은 실제로는 취약성 검사 장치(100)내에서 플러그인(104)에 의해 제어된다. 플러그인(104)이란, 각각의 보안 홀을 공격하기 위해 동적 로드 가능한 공유 라이브러리이다. 플러그인(104)은 플랫폼 모의 프로그램(105)을 조작함으로써 검사 대상상에 존재하는 보안 홀로의 공격을 실행한다.
여러 가지 플러그인(104)을 준비함으로써, 다양한 보안 홀에 대한 취약성 검사가 가능하게 된다.
플러그인(104)은 스크립트(102)에 의해 제어된다. 스크립트(102)란, 부정 액세스때문에 통상 공격자가 실행하는 순서를 인터프리터 언어로 기술한 텍스트 데이터이다. 스크립트(102)에 따라서 여러 가지 플러그인(104)을 호출함으로써, 취약성 검사 장치(100)는 공격자를 모의한 복잡한 취약성 검사를 실행하는 것이 가능하게 되어 있다.
스크립트(102)도 플러그인(104)과 마찬가지로, 그 목적에 따라서 복수개 준비할 수 있다. 또한, 스크립트(102)로부터 다른 스크립트(102)를 호출하는 것도 가능하며, 이에 의해 다른 스크립트(102)를 공격의 한 단계라고 하는, 보다 고도의 스크립트(102)를 기술할 수 있다.
본 실시예에서는 스크립트(102)의 기술 언어로서 Perl을 사용하고 있다.
스크립트(102)는 검사를 실행한 결과 얻어진 검사 대상에 관한 지식, 예를 들면 유저 어카운트의 일람이나 동작하고 있는 서버 일람 등의 정보를 지식 공유부(103)에 축적하는 것이 가능하다. 지식 공유부(103)에 축적된 지식은 다른 스크립트(102)로부터 참조할 수 있다.
또한, 지식 공유부(103)에 추론 룰에 근거해서 지식을 음미하는 추론부(108)를 구비함으로써, 스크립트(102)로부터 얻어진 지식(사실 정보)으로부터 새로운 지식(추론)을 도출하는 것도 가능하다. 예를 들면, 어떤 스크립트(102)에 의해 검사 대상 호스트 컴퓨터(107)의 OS가 UNIX(등록 상표) 시스템인 것이 판명되면, 추론룰에 의해, 그 호스트의 관리자 어카운트명이 root라고 하는 지식을 도출할 수 있다.
이상의 개요를 근거로 해서, 다음에, 도 2를 참조하면서 취약성 검사 장치(100)의 내부 구성에 대해서 설명한다. 취약성 검사 장치(100)는 조작부(201), 검사 실행부(202)로 구성되어 있으며, 검사 실행부(202)는 스크립트 제어부(203), 플러그인 제어부(204), 지식 공유부(103) 및 플랫폼 모의 프로그램 제어부(205)로 구성되어 있다.
스크립트 제어부(203)는 스크립트(102)를 축적·열람·실행하기 위한 수단을 제공한다. 1개 이상의 스크립트(102)가 스크립트 제어부(203)내에 있는 스크립트 축적부(206)에 축적되어 있다. 스크립트 축적부(206)내에서 스크립트(102)는 파일명에 의해 일의적으로 명칭을 부여하여 관리되고 있다. 또한, 스크립트 축적부(206)는, 예를 들면 자기 디스크이다.
스크립트(102)는 도 4에 나타내는 바와 같이, 클래스명 기술부(401), 실행 조건 기술부(402), 입출력 파라미터 기술부(403), 설명 기술부(404), 및 검사 순서 기술부(405)로 구성되어 있다.
클래스명 기술부(401)에는, 그 스크립트(102)가 어떤 카테고리의 검사에 속해 있는지를 나타내는 데이터가 기술되어 있다. 실행 조건 기술부(402)에는, 스크립트 실행시에 만족되어야 하는 조건이 기술되어 있다. 조건은 술어 논리를 이용하여 기술된다. 입출력 파라미터 기술부(403)에는, 스크립트(102)가 어떤 입력을 수취하고, 어떤 출력을 실행하는지가 기술되어 있다. 설명 기술부(404)에는, 스크립트(102)의 설명문이 기술되어 있다. 검사 순서 기술부(405)에는 검사 순서가 기술되어 있다.
스크립트(102)의 기술예를 도 8에 나타냈다. 도면 중, "Class:"가 클래스명 기술부(401)를 나타내고, "Pre-condition:"이 실행 조건 기술부(402)를 나타내며, "Input:" 및 "Output:"이 입출력 파라미터 기술부(403)를 나타내고 있다. "Description:"이 설명 기술부(404)이며, "#-----END_SCRIPT_PROPERTY-----"보다 아래 부분에 검사 순서 기술부(405)로 되는 Perl 코드가 기재된다.
플러그인 제어부(204)내에는 플러그인 축적부(207)가 있고, 1개 이상의 플러그인(104)이 축적되어 있다. 플러그인 축적부(207)는, 예를 들면 자기 디스크이다. 플러그인(104)은 플러그인 축적부(207)내에서 일의적으로 명칭을 부여하여 관리되고 있다.
지식 공유부(103)는 스크립트(102)가 취약성 검사의 과정에서 수집한 지식을 다른 스크립트(102)와 공유하는 것을 가능하게 하기 위한 수단이다.
지식 공유부(103)내에는 지식 축적부(208)가 있으며, 취약성 검사의 과정에서 수집된 지식이 축적되어 있다. 지식 축적부(208)는, 예를 들면 자기 디스크이다. 또한, 지식 공유부(103)내에는 추론부(108)가 있으며, 지식 축적부(103)내의 지식을 기초로 추론 처리를 실행하는 것이 가능하게 되어 있다. 추론 처리의 일환으로서 스크립트 제어부(203)를 통해서 스크립트(102)를 실행하는 것도 가능하다.
플랫폼 모의 프로그램 제어부(205)는 플러그인(104)에 대하여 플랫폼 모의 프로그램(105)을 제어하기 위한 인터페이스를 제공하고, 또한, 가동중인 플랫폼 모의 프로그램(105)의 상태 관리도 실행한다.
또한, 취약성 검사 장치(100)는, 예를 들면 마이크로프로세서 등의 CPU, 반도체 메모리 등이나 자기 디스크 등의 기록 수단, 및 통신 수단을 갖는 계산기에 의해 실현할 수 있다. 도 2에 나타낸 지식 공유부(103), 스크립트 제어부(203), 플러그인 제어부(204) 및 플랫폼 모의 프로그램 제어부(205)를 프로그램(취약성 검사 프로그램)으로 해서, 기록 수단에 취약성 검사 프로그램을 저장하고, CPU가 취약성 검사 프로그램을 숙독하는 것에 의해 취약성 검사 장치(100)의 동작을 제어하고, 이하에 나타내는 처리를 실현하도록 해도 된다.
다음에, 도 3을 참조하면서 도 1 중 플랫폼 모의 장치(1050)가 실행하는 플랫폼 모의 프로그램(105)의 내부 구성에 대해서 설명한다. 플랫폼 모의 프로그램(105)은 전체 제어부(301), 통신 중계부(302), 검사 패킷 송수신부(303), 프로세스 실행부(304) 및 파일 전송부(305)로 구성되어 있다. 통신 중계부(302)는 네트워크를 통해서, 다른 플랫폼 모의 장치(1060)의 플랫폼 모의 프로그램(106)이나 도 2에 나타내는 플랫폼 모의 프로그램 제어부(205)와 통신을 실행한다.
전체 제어부(301)는 통신 중계부(302)를 통해서 전송되어 온 제어 메시지를 수취하고, 그 지시에 따라 검사 패킷 송수신부(303), 프로세스 실행부(304), 파일 전송부(305)를 조작한다. 또한, 제어 메시지가 자기한테로 오는 것이 아닌 경우에는 통신 중계부(302)를 이용하여, 제어 메시지를 실제의 수신처에 전송한다.
통신 중계부(302)는 제어 메시지를 전송한다. 통신 중계부(302)는 하나의 패어런트와 복수의 차일드와 접속 가능하다. 그 때문에, 플랫폼 모의 장치(1050)는 취약성 검사 장치(100)를 정점으로 한 트리 형상으로 상호 접속된다.
접속은 TCP에 의해 행해지고, TCP 접속 요구는 차일드로부터 패어런트, 패어런트로부터 차일드 어느 쪽으로부터도 가능하다.
다음에 도 2를 이용하여 본 시스템의 동작에 대해서 설명한다.
먼저 사용자(101)는 조작부(201)를 통해서 검사 실행부(202)에 대하여, 실행 가능한 스크립트(102)의 일람을 요구한다. 검사 실행부(202)는 그 내부 수단인 스크립트 제어부(203)를 호출한다.
스크립트 제어부(203)는 스크립트 축적부(206)로부터 스크립트(102)를 하나씩 취출하고, 그 파일명, 입출력 파라미터부(403), 설명 기술부(404), 및 클래스 기술부(401)의 내용을 리스트에 축적한다. 모든 스크립트(102)에 대하여 이 처리를 반복하면, 리스트를 조작부(201)를 통해서 사용자(101)에게 돌려준다.
다음에, 사용자(101)는 검사의 일람(리스트)으로부터 자기가 실행하고자 하는 스크립트(102)를 선택하고, 조작부(201)를 통해서 검사 실행부(202)에 대하여 검사의 실행을 요구한다. 요구에는, (1) 스크립트명 또는 클래스명, (2) 검사 파라미터의 정보, (3) 검사 종료 조건(단, (1)이 클래스명인 경우만)이 포함되어 있다. 검사 실행부(202)는 스크립트 제어부(203)에 대하여 검사의 실행을 요구한다. 실행 결과는 조작부(201)로 돌려진다.
다음에 도 2, 도 4, 도 5를 참조하면서 스크립트 제어부(203)의 동작에 대해서 설명한다. 처음에 검사명을 지정해서 검사를 실행할 경우에 대해서 설명한다.
검사 실행 요구를 받은 스크립트 제어부(203)는 단계 501에서 스크립트 축적부(206)내에 지정된 파일명으로 관리된 스크립트(102)를 취출한다.
다음에 단계 502에서, 스크립트 제어부(203)는 스크립트(102)에 기재되어 있는 실행 조건 기술부(402)의 내용을 취출한다. 스크립트(102)의 실행 조건 기술부(402)에는, 그 스크립트(102)를 실행하기 위해서 필요한 조건, 예를 들면 검사 대상 호스트 컴퓨터(107)의 OS가 Windows(등록 상표)인 것 등이 술어 논리로 기술되어 있다. 스크립트 제어부(203)는 이 조건을 지식 공유부(103)에 넘겨주고, 실행 조건이 만족되고 있는지 여부를 확인한다.
다음에 지식 공유부(103)로부터의 응답을 기초로, 실행 조건이 만족되었는지 여부의 판단을 단계 503에서 실행하고, 만약 실행 조건이 만족되고 있지 않으면 스크립트 제어부(203)는 단계 508로 진행하여 스크립트(102)의 실행 실패로서 처리를 종료한다.
만약 실행 조건이 만족되고 있으면, 처리는 단계 504로 진행한다. 여기서 스크립트 제어부(203)는 스크립트(102)의 검사 순서 기술부(405)의 내용과, 검사 실행 요구에 포함되는 검사 파라미터를 따라 검사를 실행한다.
단계 505에서 스크립트의 실행 결과가 판단되고, 실패한 경우는 단계 508로 진행해서 처리를 종료한다.
실행에 성공한 경우, 새로운 지식이 획득되는 경우가 있다. 예를 들면, 발견된 보안 홀의 일람 등이다. 그러한 지식은 다른 검사를 실행할 때에 재이용할 수 있도록 단계 506에서, 지식 공유부(103) 중의 공유 지식 축적부(208) 중에 저장하여 둔다.
마지막으로, 실행 결과를 호출원에 돌려주고 처리는 종료한다(단계 507).
다음에, 도 6을 참조하면서 클래스명을 지정해서 검사를 실행하는 경우에 대해서 설명한다.
검사 실행 요구를 받은 스크립트 제어부(203)는 단계 601~단계 607에서 구성되는 루프를 실행함으로써, 스크립트 축적부(206) 중에 저장되어 있는 스크립트(102)를 순서대로 취득하고, 이하의 동작을 실행한다.
먼저, 단계 604에서 현재 대상으로 하고 있는 스크립트(102)의 클래스명 기술부(401)를 참조해서, 그 스크립트(102)가 검사 실행 요구로 지정된 클래스에 소속하고 있는지 여부를 검사한다.
만약 스크립트(102)가 검사 실행 요구로 지정된 클래스(102)에 소속되어 있지 않으면, 단계 609로 진행하고, 다음 스크립트(102)에 대하여 처리를 실행한다.
스크립트(102)가 검사 실행 요구로 지정된 클래스에 소속되어 있으면, 단계 605에서, 스크립트(102)의 실행을 실시한다. 구체적으로는, 도 5의 단계 502로부터의 처리를 실행하게 된다.
단계 606에서 실행의 성공·실패를 판단하고, 만약 실패하면, 단계 609로 진행하여, 다른 스크립트(102)의 실행을 실시한다.
실행이 성공한 경우, 또 다른 동일 클래스의 스크립트(102)를 실행할지 여부를 단계 607에서 판단한다. 판단은 검사 실행 요구로서 건네지는 정보에 포함되는 검사 종료 조건을 기초로 행해진다.
만약, 검사 종료 조건이 「클래스가 일치하는 모든 스크립트를 실행」이라고하면, 단계 609로 진행하고, 다른 스크립트(102)에 대해서도 실행을 실시한다. 그렇지 않으면 단계 608로 진행하고, 실행 결과를 호출원에게 돌려주고 처리는 종료한다.
단계 602에서, 모든 스크립트(102)에 대하여 실행을 시도했는지 여부가 판정되고, 만약 모든 스크립트(102)에 대하여 실행을 시도했는지가 판명된 경우에는, 처리는 단계 610으로 진행한다.
단계 610에 도달할 때까지, 1개라도 스크립트(102)의 실행에 성공한 경우에는, 단계 608로 진행하고, 실행 결과를 호출원에게 돌려주고 처리는 종료한다. 만약 1개도 성공하지 않고 있었던 경우에는, 단계 611로 진행하고, 검사 실행 처리 실패로서 처리를 종료한다.
이상, 사용자(101)에 의해 스크립트 실행이 요구된 경우의 처리에 대해서 설명했지만, 전술한 바와 같이, 스크립트(102)로부터 다른 스크립트(102)를 호출하는 것도 가능하다. 이 경우, 호출원이 상이할 뿐이고, 스크립트 제어부(203)에 건네주는 데이터 및 그 후의 처리는 동일하다.
다음에, 도 2를 참조하면서 플러그인 제어부(204)의 동작에 대해서 설명한다. 플러그인 제어부(204)는 스크립트(102)의 검사 순서 기술부(405)에 기술된 플러그인 실행 명령을 스크립트 제어부(203)가 실행했을 때에 스크립트 제어부(203)에 의해 호출된다. 호출시에 건네받는 데이터는 실행할 플러그인(104)의 명칭 및 그 플러그인(104)이 필요로 하는 실행 파라미터이다.
플러그인 제어부(204)는 플러그인 축적부(207)로부터, 파라미터로서 건네받은 플러그인명에 대응하는 플러그인(104)을 취출하여 실행한다. 실행 결과는 호출원인 스크립트 제어부(203)에 되돌려져, 최종적으로는 플러그인 실행 명령에 대한 결과로서 스크립트(102)에 되돌려진다.
플러그인(104)은 그 실행 중에, 플랫폼 모의 프로그램 제어부(205)를 통해서 플랫폼 모의 프로그램(105)을 조작한다. 조작되는 플랫폼 모의 프로그램(105)은 프로그램이 동작하고 있는 호스트 컴퓨터의 어드레스와, 호스트 컴퓨터 내부에서 유일한 플랫폼 모의 프로그램 식별자로 지정된다. 플랫폼 모의 프로그램(105)에 요구할 수 있는 명령은 이하와 같다.
TCP/UDP/RAW 소켓 생성·파기
소켓(TCP/UDP)의 로컬 포트로의 Bind
소켓(TCP/UDP)의 리모트 포트로의 Connect
Connect된 소켓을 통한 Send, Recv
Connect되어 있지 않은 소켓을 통한 SendTo, RecvFrom
Process의 기동·종료
기동한 Process의 표준 입출력을 통한 데이터의 교환
취약성 검사 장치 호스트로부터 플랫폼 모의 프로그램 동작 호스트로의 파일 전송 및 그 반대 플랫폼 모의 프로그램 상태 취득
플랫폼 모의 프로그램 정지
다음에 도 2를 참조하면서 지식 공유부(103)의 동작에 대해서 설명한다. 지식 공유부(103)는 지식 축적부(208)에, 검사에 의해 얻어진 지식을 축적하고, 다른검사에서 그것을 재이용하는 것을 가능하게 하기 위해서 사용된다.
추론부(108)는 주어진 골을 만족하는 해(解)가 존재하는지 여부, 지식 축적부(208) 중의 지식에 근거해서 추론을 실행한다. 본 수단은 스크립트(102)의 실행 조건의 확인을 위해 스크립트 제어부(203)에 의해 호출된다. 또한, 스크립트(102)에 공유 지식 획득 명령을 기술해 둠으로써, 스크립트 실행 중에 호출되는 경우도 있다.
지식은 술어 논리로 표현되고 있으며, 추론은 Prolog 등의, 술어 논리에 근거한 추론 시스템에 의해 행해진다. 지식 축적부(208)에는 검사에서 얻어진 사실에 관한 지식뿐만 아니라, 변수를 이용한 추론 룰도 축적해 두는 것이 가능하다.
또한, 스크립트(102)를 실행하는 작용을 갖는 특별한 술어가 정의되어 있으며, 이 술어를 이용한 추론 룰을 기술해 둠으로써, 공유 지식이 부족한 경우에 지식을 획득하기 위해서 스크립트(102)를 실행할 수 있다. 이에 의해, 어떤 스크립트(102)의 실행 조건을 만족시키기 위해, 자동적으로 다른 스크립트(102)를 호출하는 것이 가능하게 된다.
추론 룰은 통상 시스템 초기화시에 초기 설정 파일(지식 파일)로부터 판독되어, 공유 지식 축적부(208)에 설정되지만, 검사 과정에서 추가하는 것도 가능하다. 또한, 축적된 지식을 초기 설정 파일(지식 파일)에 보존하는 것도 가능하다.
지식 파일의 예를 도 7에 나타냈다. 본 실시예에서는, 기법은 Prolog의 문법을 이용하고 있다.
본 실시예에서 나타내어지는 시스템에 의해, 다음과 같은 특징을 갖는 보안홀 진단 시스템을 실현할 수 있다.
먼저 검사 시나리오를 프로그래밍 언어로 기술된 스크립트(102)로서 표현하고, 스크립트(102)로부터 자동적으로 플러그인(검사 실행부에 해당)(104)을 호출함으로써, 복잡한 시험의 실행을 실시할 수 있다.
또한, 각 검사 실행부간의 파라미터의 수수는 스크립트(102)가 매개하도록 함으로써, 사용자는 검사 실행부간의 입출력의 관계에 대해서 알고 있을 필요를 없앤다.
또한, 스크립트(102)가 다른 스크립트(102)를 호출하도록 함으로써, 계층화된 시나리오의 실시를 실현할 수 있다.
또한, 추론 룰에 따라, 공유된 지식으로부터 새로운 지식을 도출하도록 함으로써, 각 스크립트(102)·플러그인(104)마다 추론 논리를 만들어 낼 필요가 없어진다.
또한, 플러그인(104)이 플랫폼 모의 프로그램(105)을 경유해서 검사를 실행함으로써, 현실의 공격자와 마찬가지의 플랫폼을 경유한 검사 시나리오를 실현할 수 있다.
또한, 스크립트에 클래스의 개념을 채용하는 것에 의해, 클래스명에 의한 그룹 분배가 가능하게 이루어지고, 스크립트로부터 다른 스크립트를 호출할 때에, 스크립트의 파일명이 아니라 클래스명으로부터도 호출할 수 있다.
(실시예 2)
실시예 1에서는, 조작부(201)와 검사 실행부(202)는 동일 장치내에 존재하지만, 이들을 네트워크상에 분산 배치하는 것도 가능하다.
본 실시예에서 나타내어지는 시스템에 의해, 다음과 같은 특징을 갖는 보안 홀 진단 시스템을 실현할 수 있다.
실시예 1에서의 특징에 부가해서, 검사 실행부를 방화벽(firewall)의 외측에 배치하고, 조작부를 방화벽의 내측에 배치하는 것이 가능하게 되어, 이에 의해, 이 시스템을 네트워크상에 배치하는 것의 보안상의 리스크를 저감하는 것이 가능하다.
(실시예 3)
실시예 1에서는, 플러그인(104)으로서 동적 로드 가능한 공유 라이브러리를 이용하고 있지만, 플랫폼 모의 프로그램 제어부(205)와의 인터페이스를 제공할 수 있는 인터프리터 언어에 의해서도 실현 가능하다.
본 실시예에서 나타내어지는 시스템에 의해, 다음과 같은 특징을 갖는 보안 홀 진단 시스템을 실현할 수 있다.
실시예 1에서의 특징에 부가해서, 플러그인(104)을 보다 설치하기 쉬워지는 동시에, 시스템 운용중이라도 간단히 플러그인(104)을 편집할 수 있게 된다.
(실시예 4)
본 실시예에서는 플랫폼 모의 프로그램(105, 106)끼리, 및 플랫폼 모의 프로그램(105)과 취약성 검사 장치(100) 사이의 통신은 TCP/IP상의 독자 프로토콜을 이용했지만, 방화벽을 고려해서 이것을 HTTP, SMTP 등의 방화벽 통과 가능한 일반적 통신 프로토콜상에 구축하는 것도 가능하다.
본 실시예에서 나타내어지는 시스템에 의해, 다음과 같은 특징을 갖는 보안 홀 진단 시스템을 실현할 수 있다.
실시예 1에서의 특징에 부가해서, 플랫폼 모의 프로그램과의 통신이 방화벽에 의해 차단되는 것을 방지할 수 있고, 보다 실제의 공격자와 동등한 공격 시나리오로 검사를 실행하도록 된다.
이상 설명한 바와 같이 본 발명에 의하면, 검사 시나리오를 프로그래밍 언어로 기술된 스크립트로서 표현하고, 스크립트로부터 자동적으로 플러그인(검사 실행부에 해당)을 호출함으로써, 복잡한 시험을 실시할 수 있다.
또한, 각 검사 실행부간의 파라미터의 수수는 스크립트가 매개하도록 함으로써, 사용자는 검사 실행부간의 입출력의 관계에 대해서 알고 있을 필요를 없앤다.

Claims (9)

  1. 부정 액세스를 위해 통상 공격자가 행하는 수순이 프로그래밍 언어로 기술된 스크립트가 복수개 축적된 스크립트 축적부와,
    이용자로부터의 입력에 의해 상기 스크립트의 일람을 요구하는 조작부와,
    상기 조작부의 요구에 따라, 상기 스크립트 축적부로부터 각 스크립트를 취출하고, 입출력 파라미터 기술, 스크립트 실행 필요 조건, 검사 순서를 나타낸 리스트를 작성해서 이용자에게 제시하고, 이용자가 선택한 스크립트를 실행하는 스크립트 제어부와,
    개개의 보안 홀 공격을 위한 로직이 실장된 플러그인이 축적된 플러그인 축적부과,
    스크립트 제어부가 스크립트를 실행하는 것에 의해 호출되어, 상기 플러그인 축적부로부터 실행 스크립트가 지정하는 플러그인을 취출하여, 그 플러그인을 검사 대상 컴퓨터에 대해서 실행하는 플러그인 제어부
    를 구비한 보안 홀 진단 시스템.
  2. 제 1 항에 있어서,
    패킷 송수신, 프로세스 기동·종료·프로세스와의 데이터 입출력, 파일 전송 기능을 갖는 플랫폼 모의 프로그램과,
    상기 플러그인으로부터의 지령에 의해 검사 대상 컴퓨터에 대한 플러그인의 실행을 상기 플랫폼 모의 프로그램을 거쳐서 실시하는 플랫폼 모의 프로그램 제어부
    를 구비한 것을 특징으로 하는 보안 홀 진단 시스템.
  3. 제 1 항에 있어서,
    상기 스크립트는 다른 스크립트를 호출시키는 기능을 갖도록 구성된 것을 특징으로 하는 보안 홀 진단 시스템.
  4. 제 1 항에 있어서,
    상기 스크립트에 클래스의 개념이 도입되고, 상기 스크립트는 다른 스크립트를 호출할 때, 클래스명을 지정하는 것에 의해 다른 스크립트를 호출시키는 기능을 갖도록 구성된 것을 특징으로 하는 보안 홀 진단 시스템.
  5. 제 1 항에 있어서,
    상기 스크립트 실행 필요 조건이 만족되고 있는지 여부를 확인하는 지식 공유부를 구비하고, 지식 공유부는 상기 스크립트가 실행되는 과정에서 수집된 정보를 추론 룰에 따라 새로운 지식으로 도출하는 추론부를 갖는 것을 특징으로 하는 보안 홀 진단 시스템.
  6. 제 5 항에 있어서,
    지식 공유부는 공유 지식이 부족한 경우에, 추론 룰에 따라서 지식 획득을 위한 스크립트를 실행하는 기능을 갖도록 구성된 것을 특징으로 하는 보안 홀 진단 시스템.
  7. 제 2 항에 있어서,
    상기 스크립트 제어부와, 상기 플러그인 축적부와, 상기 플러그인 제어부와, 상기 스크립트 축적부와, 상기 플랫폼 모의 프로그램 제어부로 검사 실행부를 형성하고, 검사 실행부와 상기 조작부는 네트워크상에 분산된 구성으로 된 보안 홀 진단 시스템.
  8. 제 1 항에 있어서,
    상기 플러그인은 인터프리터 언어로 기술된 것을 특징으로 하는 보안 홀 진단 시스템.
  9. 제 2 항에 있어서,
    플랫폼 모의 프로그램 제어부는 방화벽을 통과할 수 있는 프로토콜상에서 구축되어 있는 것을 특징으로 하는 보안 홀 진단 시스템.
KR1020047009823A 2002-10-22 2003-10-08 보안 홀 진단 시스템 KR100676574B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2002-00306536 2002-10-22
JP2002306536A JP2004145413A (ja) 2002-10-22 2002-10-22 セキュリティホール診断システム
PCT/JP2003/012914 WO2004038593A1 (ja) 2002-10-22 2003-10-08 セキュリティホール診断システム

Publications (2)

Publication Number Publication Date
KR20040086251A true KR20040086251A (ko) 2004-10-08
KR100676574B1 KR100676574B1 (ko) 2007-01-30

Family

ID=32170901

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047009823A KR100676574B1 (ko) 2002-10-22 2003-10-08 보안 홀 진단 시스템

Country Status (7)

Country Link
US (1) US20050241000A1 (ko)
JP (1) JP2004145413A (ko)
KR (1) KR100676574B1 (ko)
CN (1) CN1284093C (ko)
CA (1) CA2473577A1 (ko)
TW (1) TWI239445B (ko)
WO (1) WO2004038593A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100030874A1 (en) * 2008-08-01 2010-02-04 Louis Ormond System and method for secure state notification for networked devices
CN101661543B (zh) * 2008-08-28 2015-06-17 西门子(中国)有限公司 软件源代码安全漏洞的检测方法及检测装置
CN102054142B (zh) * 2011-01-28 2013-02-20 李清宝 硬件安全缺陷仿真与训练平台
JP6053948B2 (ja) 2013-10-24 2016-12-27 三菱電機株式会社 情報処理装置及び情報処理方法及びプログラム
US10826928B2 (en) * 2015-07-10 2020-11-03 Reliaquest Holdings, Llc System and method for simulating network security threats and assessing network security
GB201518910D0 (en) 2015-10-26 2015-12-09 Rieke Packaging Systems Ltd Dispensers
US10395040B2 (en) 2016-07-18 2019-08-27 vThreat, Inc. System and method for identifying network security threats and assessing network security
US10733345B1 (en) * 2018-08-23 2020-08-04 Cadence Design Systems, Inc. Method and system for generating a validation test
WO2020105156A1 (ja) * 2018-11-21 2020-05-28 三菱電機株式会社 シナリオ生成装置、シナリオ生成方法およびシナリオ生成プログラム
CN111611591B (zh) * 2020-05-22 2024-05-07 中国电力科学研究院有限公司 一种固件漏洞的检测方法、装置、存储介质及电子设备
WO2022038680A1 (ja) 2020-08-18 2022-02-24 三菱電機株式会社 攻撃手段評価装置、攻撃手段評価方法、および、攻撃手段評価プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6507948B1 (en) * 1999-09-02 2003-01-14 International Business Machines Corporation Method, system, and program for generating batch files
JP2002073462A (ja) * 2000-08-31 2002-03-12 Ricoh Co Ltd 情報入出力システムおよびそれに用いる端末

Also Published As

Publication number Publication date
CN1571961A (zh) 2005-01-26
CN1284093C (zh) 2006-11-08
KR100676574B1 (ko) 2007-01-30
WO2004038593A1 (ja) 2004-05-06
JP2004145413A (ja) 2004-05-20
US20050241000A1 (en) 2005-10-27
TW200408934A (en) 2004-06-01
TWI239445B (en) 2005-09-11
CA2473577A1 (en) 2004-05-06

Similar Documents

Publication Publication Date Title
US8006136B2 (en) Automatic grammar based fault detection and isolation
US8490196B2 (en) System and method for extending automated penetration testing to develop an intelligent and cost efficient security strategy
US8413237B2 (en) Methods of simulating vulnerability
EP2163027B1 (en) System and method for simulating computer network attacks
Michel et al. Adele: an attack description language for knowledge-based intrusion detection
CN110188543A (zh) 白名单库、白名单程序库更新方法及工控系统
KR100676574B1 (ko) 보안 홀 진단 시스템
CN104715195A (zh) 基于动态插桩的恶意代码检测系统及方法
JP2019527877A (ja) Plcの仮想的なパッチおよびセキュリティコンテキストの自動配信
CN110324338A (zh) 数据交互方法、装置、堡垒机与计算机可读存储介质
EP3958152B1 (en) Attack scenario simulation device, attack scenario generation system, and attack scenario generation method
KR102156379B1 (ko) 정보수집 프로세스를 통한 에이전트리스 방식 취약점 진단시스템 및 그 방법
KR20080043209A (ko) 윈도우 소켓 응용프로그램 인터페이스 후킹을 이용한네트워크 퍼징 방법
Wi et al. DiffCSP: Finding Browser Bugs in Content Security Policy Enforcement through Differential Testing
US11750635B2 (en) Minimizing production disruption through a scan rule engine
US20170220449A1 (en) Infrastructure rule generation
Alsmadi et al. Model-based testing of SDN firewalls: a case study
EP4278287A1 (en) Web attack simulator
CN113434217A (zh) 漏洞扫描方法、装置、计算机设备及介质
Lee et al. Collecting big data from automotive ECUs beyond the CAN bandwidth for fault visualization
CN115022085B (zh) 基于云原生场景的节点隔离方法及其装置、电子设备
US20220067171A1 (en) Systems and methods for automated attack planning, analysis, and evaluation
CN109688159A (zh) 网络隔离违规识别方法、服务器及计算机可读存储介质
CN116975874A (zh) 信创终端漏洞动态欺骗方法及系统
KR20240074402A (ko) 웹 브라우저 클라우드 기반의 원격 모바일 앱 취약점 진단 방법 및 서버

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20100111

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee