KR20080047248A - 알피씨 기반 소프트웨어의 원격지 보안 테스팅 장치 및방법 - Google Patents

알피씨 기반 소프트웨어의 원격지 보안 테스팅 장치 및방법 Download PDF

Info

Publication number
KR20080047248A
KR20080047248A KR1020070066157A KR20070066157A KR20080047248A KR 20080047248 A KR20080047248 A KR 20080047248A KR 1020070066157 A KR1020070066157 A KR 1020070066157A KR 20070066157 A KR20070066157 A KR 20070066157A KR 20080047248 A KR20080047248 A KR 20080047248A
Authority
KR
South Korea
Prior art keywords
function
rpc
testing
service
module
Prior art date
Application number
KR1020070066157A
Other languages
English (en)
Other versions
KR100930962B1 (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 KR20080047248A publication Critical patent/KR20080047248A/ko
Application granted granted Critical
Publication of KR100930962B1 publication Critical patent/KR100930962B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 RPC(Remote Procedure Call) 프로토콜 기반의 소프트웨어에 대한 원격지 보안 테스팅 및 자동화 방법에 관한 것으로 보다 구체적으로는 RPC 기반 서버 소프트웨어를 네트워크를 통하여 보안 테스트를 자동으로 수행하는 방법론에 관련된 것으로서, 그 구성은 (a). 보안 테스트 대상을 선택하고 서비스 및 함수를 선택하는 선택단계와, (b). (a)에서 선택된 함수를 호출하고, 서버로부터 전송되는 패킷을 수집하여 분석하는 분석단계와, (c). (b)에서의 수집되어 분석된 패킷을 모듈화하여 구현하는 제1 구현단계와, (d). 함수 호출시 전달되는 파라미터의 보안 테스트를 수정 및 보완하는 제2 구현단계와, (e). (a) 내지 (d)에서 처리된 보안 테스팅 자동화 수행 결과를 분석하는 분석단계로 구성되므로, RPC 기반 소프트웨어를 원격으로 테스팅 하는데 필요한 효율적인 절차 및 방법을 제공하는 효과가 있다.
RPC, 보안 테스트, 패킷, 프로토콜

Description

알피씨 기반 소프트웨어의 원격지 보안 테스팅 장치 및 방법{Security testing Apparatus and Method of remote Remote Procedure Call software}
본 발명은 RPC 기반 소프트웨어의 원격지 보안 테스팅 장치 및 방법에 관한 것으로, 특히 소프트웨어 테스트를 수행할 때 명세화되지 않은 네트워크 프로토콜 및 서비스에 대한 테스트를 수행하고 이를 자동화할 수 있을 뿐만 아니라 소스 코드가 공개되어 있지 않은 원격 RPC 기반의 소프트웨어에 대한 보안 테스트를 효율적으로 할 수 있도록 한 RPC 기반 소프트웨어의 원격지 보안 테스팅 장치 및 방법에 관한 것이다.
소프트웨어 보안 테스팅이란 소프트웨어가 결함없이 순조롭게 구동될 수 있도록 문제점 및 예외상황을 제거하는 일련의 절차이다. 소프트웨어 테스팅 기법은 크게 소스 코드를 볼 수 없는 상황에서 테스트하는 블랙박스(Black Box) 테스팅과 소스 코드를 볼 수 있는 상황에서 테스트하는 화이트 박스(White Box) 테스팅으로 나눌 수 있다. 이러한 테스팅 방법들은 리얼타임 임베디드 소프트웨어, 이동통신 장치 소프트웨어, 주문 제작된 소프트웨어 등을 테스트하는 데에 사용하고 있다.
상기와 같은 소프트웨어 테스트는 대부분 테스트하는 주체의 요구에 의해서 소스 코드를 볼 수 있어 소스 코드에 삽입하여 소프트웨어 테스트를 수행하므로 쉬운 반면에 소스 코드를 볼 수 없는 소프트웨어의 테스팅 수행은 매우 난해하다.
소스 코드를 볼 수 없는 상황에서는 테스팅 과정이 매우 난해하기 때문에 효율적인 보안 테스팅 방법론이 요구되지만 RPC 기반 원격 소프트웨어 테스팅은 체계적인 방법론이 전무한 상태이다. 뿐만 아니라 많은 시간을 요구하는 테스팅 방법론에서 시간에 대한 효율성을 높이는 도구 및 자동화에 대한 필요성이 요구된다.
이와 같은 필요성을 충족시키기 위한 종래 기술로서는 삼성전자주식회사가 출원한 대한민국 특허출원번호 제10-2001-33906호로 출원되어 있는 종래기술의 발명을 개시하고자 한다. 종래기술의 특허는 기존의 수작업으로 처리하던 디지털 TV의 소프트웨어 단위 및 통합 테스트를 자동화하기 위한 방법과 도구를 기술하고 있다. 자동화를 위한 방법은 테스트를 위한 단위인 태스크들의 상호 관련성이 존재하는 메시지 시퀀스 차트(MSC: Message Sequence Chart)를 만들고 이를 기반으로 테스트 데이터를 자동으로 만들어 소프트웨어를 테스팅한다.
종래기술의 특허에서 소프트웨어를 테스트하는 단계는 크게 4단계 메시지 ㅅ시퀀스 차트 작성 및 GFSM(Global Finite State Machine)으로 변환하는 과정, 테스트 시퀀스 생성 과정, 테스트 수행 과정, 테스트 드라이버 모니터링 과정으로 나뉜다.
메시지 시퀀스 차트 작성은 메시지 시퀀스 챠트를 이용하여 내장 소프트웨어 의 태스크들 사이의 상호 작용을 기술하는 과정을 말한다. GFSM 작성은 여러 장의 메시지 시퀀스 차트들의 수행에 의해 가질 수 있는 시스템의 상태와 메시지의 시퀀스에 의한 상태 간의 전이를 GFSM으로 변화하는 과정을 말한다.
테스트 시퀀스 생성 과정은 작성된 GFSM으로부터 시스템의 모든 상태와 전이를 방문할 수 있는 테스트 시퀀스를 생성하는 과정을 말한다. 테스트 시퀀스 생성기는 모든 상태를 최소한 한번 이상 수행하기 위해 테스트 시퀀스를 생성하는데 깊이 우선 탐색에 최단 경로 알고리즘을 결합하여 구현하였다. 테스트 수행 과정은 생성된 테스트 시퀀스를 내장 소프트웨어의 시뮬레이터 상에 구현되어 있는 테스트 드라이버를 이용해서 수행하는 과정을 말한다. 테스트 드라이버 모니터링 과정은 테스트 결과를 검사하기 위하여 네이티브 테스트 드라이버(native test driver)와 자바 테스트 드라이버(java test driver)를 모니터링하는 단계를 말한다. 일반적으로 네이티브 테스트 드라이버에서는 이벤트 전송이 특정 함수를 이용하여 이루어지므로 이 함수에 모니터링 기능을 구현하면 되지만 자바 테스트 드라이버의 경우에는 이벤트 전송을 위한 별도의 메소드가 존재하지 않기 때문에 선행 특허에서는 소스 코드 안에 모니터링 코드를 수작업으로 구현하는 방법을 사용한다. 종래기술의 특허상에 구현된 테스트 드라이버 모니터링은 내장 소프트웨어의 시뮬레이터 상에 구현되며 테스트 시퀀스 발생기가 스크립트 형식의 테스트 시퀀스를 발생하여 자동화된 테스트 및 모니터링이 가능하다.
그러나, 앞서 기술한 종래기술의 특허는 디지털 TV의 내장 소프트웨어를 테스팅 방법론과 도구이므로 특정 어플라이언에 구현된 소프트웨어 테스팅 방법에 관 한 것이나, 현재 시점에서는 범용적으로 구현할 수 있는 소프트웨어 테스팅 방법이 요구된다.
또한, 종래기술의 특허는 전반적인 디지털 TV에 내장된 소프트웨어의 통합 테스트를 위한 자동화 방법 및 도구에 관한 것으로 보안 취약점을 찾는 부분에 있어서는 취약한 문제점이 있다.
본 발명은 전술한 문제점을 해결하고, 전술한 필요성을 충족시키기 위하여 제안된 것으로서, 그 목적은 RPC 기반 소프트웨어의 원격 보안 테스트를 효율적으로 수행할 수 있도록 구성한 RPC 기반 소프트웨어의 원격지 보안 테스팅 장치 및 방법을 제공하는 데에 있는 것이다.
본 발명의 또 다른 목적은 보안 테스트를 수행하고자 하는 대상 소프트웨어에 대해 예외 상황 에러를 유발할 수 있는 일련의 절차를 정형화하고 이를 자동화하여 처리할 수 있도록 하는 RPC 기반 소프트웨어의 원격지 보안 테스팅 장치 및 방법을 제공하는 데에 있는 것이다.
상기의 목적을 달성하기 위한 본 발명에 따른 RPC 기반 소프트웨어의 원격지 보안 테스팅 장치는, 보안 테스트 대상 서비스 및 함수를 결정하는 테스팅대상 선정모듈과, 테스팅대상 선정모듈에서 선정된 서비스 및 함수를 RPC 통신하기 위해 인터페이스 하는 RPC인터페이스 모듈과, RPC인터페이스 모듈로부터 전송된 서비스 및 함수를 필터링하여 서비스의 함수를 호출하는 부분과 함수 호출에 필요한 연결 설정을 담당하는 네트워크 통신 부분으로 구분하며 서버 컴퓨터와의 연결 설정에 필요한 프로토콜 집합과 개별 프로토콜의 절차 및 설정 등의 정보를 분석하여 전체 패킷을 세분화하는 함수호출 및 분석모듈과, 전체 패킷을 RPC 함수 호출을 전달해 주는 네트워크 통신 프로토콜 부분만 단계를 구분하고 모듈화시켜 구현시키는 통신프로토콜 구현모듈과, 통신프로토콜 패킷을 보안 테스팅 점검 도구에 구현하여, 함수 호출시 전달되는 파라미터를 보안 테스트하는 보안 테스팅모듈과, 원격 컴퓨터에 있는 RPC 기반 소프트웨어의 보안 테스트를 수행하고 패킷을 모은 후 보안 테스트 수행 결과를 분석하는 결과분석모듈로 구성되는 것을 특징으로 한다.
또한, 상기의 목적을 달성하기 위한 본 발명에 따른 RPC 기반 소프트웨어의 원격지 보안 테스팅 방법은, (a). 보안 테스트 대상을 선택하고 서비스 및 함수를 선택하는 선택단계와, (b). (a)에서 선택된 함수를 호출하고, 서버로부터 전송되는 패킷을 수집하여 분석하는 분석단계와, (c). (b)에서의 수집되어 분석된 패킷을 모듈화하여 구현하는 제1 구현단계와, (d). 함수 호출시 전달되는 파라미터의 보안 테스트를 수정 및 보완하는 제2 구현단계와, (e). (a) 내지 (d)에서 처리된 보안 테스팅 자동화 수행 결과를 분석하는 분석단계로 구성되는 것을 특징으로 한다.
따라서, 본 발명은 소스 코드가 공개되지 않은 상태의 RPC 기반 소프트웨어를 외부 컴퓨터와의 통신 경로상의 함수에 다양한 패킷을 입력하기 위해 원격 보안 테스트의 단계별 처리 절차와 자동화 방법을 제공함으로써, RPC 기반의 원격 보안 테스트를 효율적으로 수행할 수 있는 효과가 있다.
또한, 본 발명은 보안 테스트를 수행하고자 하는 대상 소프트웨어에 대해 예외 상황 에러를 유발할 수 있는 일련의 절차를 정형화하고 이를 자동화하여 처리할 수 있도록 구성하여 알려지지 않은 RPC기반 소프트웨어의 내재되어 있을 수 있는 보안 취약점을 일련의 자동화된 절차에 의해 찾을 수 있는 효과가 있다.
이하, 첨부된 도면을 참조하여 본 발명의 구성에 대하여 보다 상세하게 설명하기로 한다.
도 1은 본 발명의 일실시예에 따른 RPC 기반 소프트웨어의 원격지 보안 테스트하는 장치의 구성을 나타낸 블록 구성도이다.
본 발명은 테스팅대상 선정모듈(110), RPC인터페이스모듈(120), 함수호출 및 분석모듈(130), 통신프로토콜 구현모듈(140), 보안 테스팅모듈(150), 결과분석모듈(160) 및 테스팅모듈(170)로 구성된다.
도 1을 참조하여 보면, 먼저, 테스팅대상 선정모듈(110)은 보안 테스트 대상 서비스 및 함수를 결정한다. 이는 취약성 점검을 위한 첫 번째 단계로 먼저 보안 테스트 대상 소프트웨어와 함수를 정한다.
효율적인 취약성 점검을 위해서는 취약점 존재시의 파급력과 서비스의 중요도가 함께 고려되어 선정될 필요가 있다. 테스트 대상으로는 서비스 시작의 자동 유무, 대기 수신 포트 방화벽 우회 유무, 보안 취약점이 다수 발견된 서비스 및/또는 문자열을 다루는 외부 함수 등이 있다. 후술하는 예에서는 문자열을 다루는 외부 함수에 대하여 테스트하는 것으로 가정하여 설명하기로 한다. 그리고, 서비스란 RPC 기반 소프트웨어가 통신을 위해 실행하는 백그라운드 형태의 프로그램으로 정 의하기로 한다.
구체적인 테스트 대상 선정 및 그 범위에 대해서는 후술하는 도 3을 참조하여 설명하기로 한다.
테스팅대상 선정모듈(110)에 의해 선정된 함수 및 서비스는 RPC인터페이스 모듈(120)을 통해 함수호출 및 분석모듈(130)로 전송된다. 함수호출 및 분석모듈(130)은 RPC 기반의 함수 호출에 필요한 통신 프로토콜과 호출 메커니즘을 파악하기 위해 구동되어 서버/클라이언트 간 상호 통신을 발생시킨다. 그리고 네트워크 패킷 수집 도구를 이용하여 상호 프로토콜 통신 패킷 중 RPC 통신 관련 패킷만 필터링하여 수신한다.
함수호출 및 분석모듈(130)은 크게 서버 측 서비스의 함수를 호출하는 부분과 함수 호출에 필요한 연결 설정을 담당하는 네트워크 통신 부분으로 나눌 수 있다. 그리고 함수호출 및 분석모듈(130)은 서버 컴퓨터와의 연결 설정에 필요한 프로토콜 집합과 개별 프로토콜의 절차 및 설정 등의 정보를 분석하여 전체 패킷을 세분화한다.
통신프로토콜 구현모듈(140)은 단계를 구분하고 모듈화시킨다. 통신프로토콜 구현모듈(140)은 RPC 함수 호출을 전달해 주는 네트워크 통신 프로토콜 부분만을 모듈화시켜 구현하며, 자동화를 위해 필요한 정보 즉, UUID(Universal Unique Identifier), 버전(Version), 네임드 파이프(Named Pipe) 등을 서버/클라이언트로 소프트웨어 설치 정보로부터 획득한 후 네트워크 통신 프로토콜 구현 코드의 인자로 넘겨준다.
보안 테스팅모듈(150)은 함수 호출에 직접적인 관련이 있는 통신프로토콜 패킷을 보안 테스팅 점검 도구에 구현하여, 함수 호출시 전달되는 파라미터의 보안 테스트를 담당한다.
서버측 서비스 함수로 보안 테스팅 점검 도구에서 보낸 메시지는 일반적으로 다양한 형태로 변조되기 때문에, 보안 테스팅모듈(150)은 해당 서비스 함수가 판독할 수 없는 파라미터를 전달한 것으로 판단되면 해당 서비스 함수로 전달되기 이전에 폐기처분시킨다.
결과분석모듈(160)은 원격 컴퓨터에 있는 RPC 기반 소프트웨어의 보안 테스트를 수행하고 네트워크 패킷 수집 도구를 통해 관련 패킷을 모은 후 보안 테스트 수행 결과를 분석한다. 결과분석모듈(160)은 스크립트 또는 프로그래밍 방식을 이용하여 다양한 함수 입력 파라미터 값이 반복적으로 자동 주입될 수 있도록 하여 취약점 점검의 신뢰성을 높인다.
테스팅대상 선정모듈(110)로부터 결과분석모듈(160)까지의 모듈에 의해 RPC 서비스에 비정상적 증상이 나타나지 않았다면 서비스의 해당 함수가 안정적이라고 판단할 수 있다. 하지만 함수 호출에 대한 해당 서비스의 응답률을 고려하여 테스트 방식을 보완하여 처리할 필요가 있다.
따라서, 테스팅모듈(170)은 가능한 많은 메시지를 서비스 제공 함수에 전달하여 임의의 입력에 대해 서비스가 안정적으로 동작하는지 점검한다. 테스팅모듈(170)은 결과분석모듈(160)에서 수집한 패킷 분석 결과 및 변경 계획을 보안 테스팅모듈(150)로 리턴시켜 테스트를 반복할 수 있다.
도 2는 본 발명의 일실시예에 따른 RPC 기반 소프트웨어의 원격지 보안 테스트를 위한 절차적 방법론을 나타내는 순서도이다.
도 2를 참조하여 보면, 본 발명의 방법은 RPC 기반의 소프트웨어 원격 보안 테스팅에 대한 방법 및 자동화에 관한 것으로써 일반적으로 운영체제에서 서비스 형태로 제공하는 RPC 기반 소프트웨어에 대한 예외 상황 에러를 유발할 수 있는 일련의 절차를 정형화하고 이를 자동화하여 처리하는 일련의 절차 및 자동화 방법에 대하여 설명하고자 한다.
1. 보안 테스트 대상 서비스 및 함수 결정단계(S210)
S210은 취약성 점검을 위한 첫 번째 단계로 먼저 보안 테스트 대상 소프트웨어와 함수를 정한다. 효율적인 취약성 점검을 위해서는 취약점 존재시의 파급력과 서비스의 중요도가 함께 고려되어 선정될 필요가 있다. 선정이 완료되면 취약 가능성이 높은 함수를 정하여 보안 테스트를 수행한다.
도 3은 본 발명의 도 2에 따른 RPC 기반 소프트웨어가 제공하는 원격 서비스의 보안 테스팅 범위를 구체화하는 단계이며, 다음의 (a) 내지 (d)의 단계로 설명한다.
(a) 서비스 시작의 자동 유무
RPC 기반 소프트웨어는 일반적으로 클라이언트/서버 기반으로 동작하며, 서버 기능 구현을 위해 서비스 형태로 구동된다. 일부는 시스템 부팅시 자동으로 시작되고 일부는 관리자에 의해 수동으로 시작된다. 관리자 개입 없이 항상 시작되는 서비스는 컴퓨터 시작시 기본으로 동작하고 있으므로 취약점 발견시 그 파급력 또 한 매우 크다. 따라서 자동 시작으로 설정된 서비스에 보안 테스팅 우선 순위를 둔다.
(b) 대기 수신 포트 방화벽 우회 유무
RPC 기반의 서버 소프트웨어는 외부 네트워크 컴퓨터 또는 사용자가 서비스를 이용할 수 있도록 수신 포트를 제공하는 데, 이 수신 포트 번호는 방화벽이 설치된 컴퓨터 환경에서 매우 중요한 의미를 지닌다. 따라서, 대부분의 방화벽은 컴퓨터 보안을 위하여 원격으로 컴퓨터에 접근할 수 있는 대기 중인 수신 포트를 막아 보안을 확보한다. 따라서 해당 포트가 방화벽에 의해 차단되지는 여부가 매우 중요하며, 방화벽을 우회하는 포트를 지닌 서비스에 보안 테스팅 우선 순위를 두어 테스트하여 이런 서비스를 방지하도록 한다.
(c) 보안 취약점이 다수 발견된 서비스
일반적으로 새로운 보안 취약점은 기존의 버그가 발생한 서비스에서 재발할 가능성이 매우 높다. 따라서 테스트 대상 서비스 선정시 기존에 보안 취약점이 기 발견되었는지 여부를 확인하여 다수 발견된 순서로 서비스를 선정한다.
(d) 문자열을 다루는 외부 함수
위 (a), (b) 및 (c) 단계를 거치면서 보안 테스트하고자 하는 서비스가 정해지면 실질적으로 보안 테스팅할 함수를 선정된 서비스에서 선택한다. 버퍼오버런 취약점은 개발자들이 가장 범하기 쉽고 가장 많이 발견되기 때문에 본 방법론에서는 문자열 다루는 외부 함수를 테스트 대상 함수로 선택한다. 함수 정보는 테스트 대상 서비스의 바이너리 정보로부터 추출가능하다.
다시 도 2를 참조하여 문자열 다루는 외부 함수에 대하여 테스트하는 단계에 대하여 계속하여 설명하기로 한다.
2. 함수 호출 패킷 수집 및 분석단계(S220)
RPC 기반의 함수 호출에 필요한 통신 프로토콜과 호출 메커니즘을 파악하기 위해 해당 소프트웨어를 구동시켜 서버/클라이언트 간 상호 통신을 발생시킨다. 그리고 네트워크 패킷 수집 도구를 이용하여 네트워크 통신 패킷 중 RPC 통신 관련 패킷만을 필터링한다.
수집된 RPC 관련 패킷은 크게 서버 측 서비스의 함수를 호출하는 부분과 함수 호출에 필요한 연결 설정을 담당하는 네트워크 통신 부분으로 나눌 수 있다. 그리고 서버 컴퓨터와의 연결 설정에 필요한 프로토콜 집합과 개별 프로토콜의 절차 및 설정 등의 정보를 분석하여 전체 패킷을 세분화한다.
3. 네트워크 통신 프로토콜 구현 및 자동화단계(S230)
한편, 도 4는 본 발명의 도 2에 따른 네트워크 통신 프로토콜을 자동화 구현하는 과정을 나타낸 순서도이다.
도 4를 참조하여 보면, S230은 재생 실험을 위해 보안 테스팅 점검 도구에 관련된 패킷을 직접 구현하는 첫 번째 단계이다. 본 단계에서는 RPC 함수 호출을 전달해 주는 네트워크 통신 프로토콜관련 패킷만을 수집 및 분석하여(S410), 네트워크 통신 프로토콜을 구현하고 자동화시킨다(S420). 자동화시키는 S420은 후술하는 다음의 S422, S424 및 S426을 포함하여 구성된다.
S420은 네트워크 프로토콜 관련 패킷을 분석하는 단계(S422)와, 자동화를 위 해 필요한 정보 즉, UUID, Version, Named Pipe를 소프트웨어 설치 정보로부터 식별하여 획득하는 단계(S424)와, S424에서 식별된 정보를 인자로 하는 통신프로토콜 함수를 구현하는 단계(S426)로 구성된다.
이때, RPC 기반 서버 소프트웨어가 제공하는 함수의 호출 관련 패킷을 분석해 보면(S430) 일반적으로 함수 호출에 직접 관련이 있는 패킷을 제외하고 나머지 네트워크 통신 관련 프로토콜의 내용은 동일한 것이 특징이다. 따라서 S420의 단계들을 구분하고 모듈화시켜 함수 보안 테스팅모듈을 구현한다(S440).
4. 함수 보안 테스팅 모듈 구현단계(S240)
다시 도 2를 참조하여 S240에 대하여 설명하기로 한다.
S240은 함수 호출에 직접적인 관련이 있는 패킷을 보안 테스팅 점검 도구에 구현하는 단계로 함수 호출시 전달되는 파라미터의 보안 테스트를 담당한다. 파라미터 보안 테스팅 방법론에 따라 윈도우 서비스 취약성 점검의 결과가 달라질 수 있기 때문에 보다 나은 결과를 얻기 위해서는 보안 테스팅 결과 분석을 통해 파라미터 보안 테스팅 방법을 수정 및 보완하는 과정을 거치도록 한다.
서버측 서비스 함수로 보안 테스팅 점검 도구에서 보낸 메시지는 일반적으로 다양한 형태로 변조되기 때문에 반드시 목적지 함수로 전달되지는 않는다. 파라미터는 보안 테스트 과정을 거치면서 서버측 서비스가 이해할 수 없는 메시지 형태로 전달되면 해당 서비스로 전달되기 이전에 폐기처분된다. 따라서, 파라미터를 폐기처분하기 이전에 파라미터 패키징 규칙을 준수하면서 응답률을 높일 수 있도록 모 듈을 구성한다.
또한, 파라미터의 변조 방법은 타입의 길이 변화 유무에 따라 아래 두 가지 형태로 사용하여 응답률을 높이는 것이 가능하다.
- 가변 길이 형태의 변수(예, 문자열)에 대해 길이 및 내용을 테스트한다.
- 고정 길이 형태의 변수에 대해 내용을 테스트한다.
5. 보안 테스팅 자동화 수행 및 결과 분석단계(S250)
원격 컴퓨터에 있는 RPC 기반 소프트웨어의 보안 테스트를 수행하고 네트워크 패킷 수집 도구를 통해 보안 테스트의 대상이 되는 패킷을 모은 후 보안 테스트 수행 결과를 분석한다. 본 단계에서는 스크립트 또는 프로그래밍 방식을 이용하여 다양한 함수 입력 파라미터가 반복적으로 자동 주입될 수 있도록 하여 결과적으로 취약점 점검결과에 대한 신뢰성을 높인다.
서버 측의 응답은 크게 해당 서비스 응답과 하부 통신 프로토콜 레벨 응답 그리고, 클라이언트측 함수 호출 요청에 대한 무응답 3가지가 존재한다. 각 응답의 종류에 따라 서비스 및 네트워크의 상태를 판단하며, 응답 패킷의 분석은 후술하는 단계인 ‘보안 테스팅 모듈 최적화단계’에도 활용한다.
6. 보안 테스팅 모듈 최적화단계(S260)
지금까지 과정을 통해 RPC 서비스에 비정상적 증상이 나타나지 않았다면 서비스의 해당 함수가 S250에서 분석된 결과에 대응하여 안정적이라고 판단할 수 있다. 하지만 함수 호출에 대한 해당 서비스의 응답률을 고려하여 테스트 방식을 보완하여 처리할 필요가 있다. 즉, 가능한 많은 메시지를 서비스 제공 함수에 전달하 여 임의의 입력에 대해 서비스가 안정적으로 동작하는지 점검할 필요가 있다. S260에서는 수집한 패킷 분석 결과를 바탕으로 보안테스팅 모듈 변경 계획을 세우고 S240인 함수 보안 테스팅 모듈 구현단계로 리턴하여 충분히 테스트를 받을 수 있도록 반복한다.
전술한 바와 같이 RPC 기반 소프트웨어의 원격 보안 테스팅 방법은 RPC 기반의 원격 소프트웨어를 대상으로 한다. 보안 테스팅 방법론은 총 6단계(S210 내지 S260)로 구성되며 S210부터 S250을 통해 일련의 소트프웨어 테스팅 과정을 마친다. S250에서 실험 결과를 분석한 후 서비스 취약점 점검의 효율성을 높이기 위해 S260단계에서 최적화 작업을 수행한다. 새롭게 수립된 테스팅 방법은 다시 S240의 '함수 보안 테스팅 모듈 구현' 단계에서 구현되어 테스팅 과정을 반복하도록 할 수 있다.
도 1은 본 발명의 일실시예에 따른 RPC 기반 소프트웨어의 원격지 보안 테스트하는 장치의 구성을 나타낸 블록 구성도.
도 2는 본 발명의 일실시예에 따른 RPC 기반 소프트웨어의 원격지 보안 테스트를 위한 절차적 방법론을 나타내는 순서도.
도 3은 본 발명의 도 2에 따른 RPC 기반 소프트웨어가 제공하는 원격 서비스의 보안 테스팅 범위를 구체화시켜 나타낸 계층도.
도 4는 본 발명의 도 2에 따른 네트워크 통신 프로토콜을 자동화 구현하는 과정을 나타낸 순서도.
<도면의 주요부분에 대한 부호의 간단한 설명>
110 : 테스팅대상 선정모듈 120 : RPC인터페이스모듈
130 : 함수호출 및 분석모듈 140 : 통신프로토콜 구현모듈
150 : 보안 테스팅모듈 160 : 결과분석모듈
170 : 테스팅모듈

Claims (15)

  1. 보안 테스트 대상 서비스 및 함수를 결정하는 테스팅대상 선정모듈과;
    상기 테스팅대상 선정모듈에서 선정된 서비스 및 함수를 RPC 통신하기 위해 인터페이스 하는 RPC인터페이스 모듈과;
    상기 RPC인터페이스 모듈로부터 전송된 상기 서비스 및 상기 함수를 필터링하여 상기 서비스의 함수를 호출하는 부분과 함수 호출에 필요한 연결 설정을 담당하는 네트워크 통신 부분으로 구분하며 서버 컴퓨터와의 연결 설정에 필요한 프로토콜 집합과 개별 프로토콜의 절차 및 설정 등의 정보를 분석하여 전체 패킷을 세분화하는 함수호출 및 분석모듈과;
    상기 전체 패킷을 RPC 함수 호출을 전달해 주는 네트워크 통신 프로토콜 부분만 단계를 구분하고 모듈화시켜 구현시키는 통신프로토콜 구현모듈과;
    통신프로토콜 패킷을 보안 테스팅 점검 도구에 구현하여, 함수 호출시 전달되는 파라미터를 보안 테스트하는 보안 테스팅모듈과;
    원격 컴퓨터에 있는 RPC 기반 소프트웨어의 보안 테스트를 수행하고 패킷을 모은 후 보안 테스트 수행 결과를 분석하는 결과분석모듈을 포함하여 이루어지는 것을 특징으로 하는 RPC 기반 소프트웨어의 원격지 보안 테스팅 장치.
  2. 제1항에 있어서,
    상기 수집한 패킷 분석 결과를 바탕으로 결과분석모듈까지의 결과 및 변경 계획을 상기 보안 테스팅모듈로 리턴시키도록 구성된 테스팅모듈을 더 포함하는 것을 특징으로 하는 RPC 기반 소프트웨어의 원격지 보안 테스팅 장치.
  3. 제1항에 있어서,
    상기 테스팅대상 선정모듈은, 서비스 시작의 자동 유무, 대기 수신 포트 방화벽 우회 유무, 보안 취약점이 다수 발견된 서비스 및/또는 문자열을 다루는 외부 함수 중 어느 하나를 선택하여 테스트하거나 순차적으로 테스트하는 것을 특징으로 하는 RPC 기반 소프트웨어의 원격지 보안 테스팅 장치.
  4. 제1항에 있어서,
    상기 통신프로토콜 구현모듈은 상기 서비스로부터 UUID, 버전, 네임드 파이프를 획득한 후 네트워크 통신 프로토콜 구현 코드의 인자로 넘겨주는 것을 특징으로 하는 RPC 기반 소프트웨어의 원격지 보안 테스팅 장치.
  5. 제1항 또는 제4항에 있어서,
    상기 통신프로토콜 구현모듈은 상기 서비스의 함수를 호출하는 부분과 상기 함수 호출에 필요한 연결 설정을 담당하는 네트워크 통신 부분으로 구분하여 모듈화하는 것을 특징으로 하는 RPC 기반 소프트웨어의 원격지 보안 테스팅 장치.
  6. 제1항에 있어서,
    상기 보안 테스팅모듈은 프로토콜이 이해할 수 없는 형태로 전달되는 것으로 판단되면 해당 서비스가 전달되기 이전에 프로토콜을 폐기 처분시키는 것을 특징으로 하는 RPC 기반 소프트웨어의 원격지 보안 테스팅 장치.
  7. (a). 보안 테스트 대상을 선택하고 서비스 및 함수를 선택하는 선택단계와;
    (b). 상기 (a)에서 선택된 함수를 호출하고, 서버로부터 전송되는 패킷을 수집하여 분석하는 분석단계와;
    (c). 상기 (b)에서의 수집되어 분석된 패킷을 모듈화하여 구현하는 제1 구현단계와;
    (d). 상기 함수 호출시 전달되는 파라미터의 보안 테스트를 수정 및 보완하는 제2 구현단계와;
    (e). 상기 (a) 내지 (d)에서 처리된 보안 테스팅 자동화 수행 결과를 분석하는 분석단계를 포함하여 이루어지는 것을 특징으로 하는 RPC 기반 소프트웨어의 원격지 보안 테스팅 방법.
  8. 제7항에 있어서,
    상기 (e)에서 실험 결과를 분석한 후 최적화 작업을 수행하는 최적화단계를 더 포함하는 것을 특징으로 하는 RPC 기반 소프트웨어의 원격지 보안 테스팅 방법.
  9. 제8항에 있어서,
    상기 (e)를 수행한 후에 (d)로 리턴하여 테스팅 과정을 반복하는 것을 특징으로 하는 RPC 기반 소프트웨어의 원격지 보안 테스팅 방법.
  10. 제7항에 있어서,
    상기 (d)는,
    (d-1) 원격 함수 호출시 전달되는 파라미터를 통한 보안 테스팅 방법을 수정하는 단계와;
    (d-2) 원격 서비스의 응답률을 높이기 위해 파라미터 패키징 규칙을 준수하는 단계와;
    (d-3) 가변 길이 형태의 변수에 대해 길이 및 내용을 테스트하는 단계와;
    (d-4) 고정 길이 형태의 변수에 대해 내용을 테스트하는 단계로 이루어지는 것을 특징으로 하는 RPC 기반 소프트웨어의 원격지 보안 테스팅 방법.
  11. 제7항에 있어서,
    상기 (a)는 상기 서비스와 함수로서 서비스 시작의 자동 유무, 대기 수신 포트 방화벽 우회 유무, 보안 취약점이 다수 발견된 서비스 및/또는 문자열을 다루는 외부 함수 중 어느 하나를 선택하여 테스트하거나, 또는 순차적으로 테스트하는 것을 특징으로 하는 RPC 기반 소프트웨어의 원격지 보안 테스팅 장치.
  12. 제7항에 있어서,
    상기 (b)에서 수집된 패킷은 상기 서비스의 함수를 호출하는 패킷과 상기 함수 호출에 필요한 연결 설정을 담당하는 네트워크 통신 패킷인 것을 특징으로 하는 RPC 기반 소프트웨어의 원격지 보안 테스팅 장치.
  13. 제12항에 있어서,
    상기 패킷을 모듈화하여 구현하는 (c)는 상기 서비스의 함수를 호출하는 패킷을 모듈화하고, 상기 함수 호출에 필요한 연결 설정을 담당하는 네트워크 통신 패킷을 모듈화하는 것을 특징으로 하는 RPC 기반 소프트웨어의 원격지 보안 테스팅 장치.
  14. 제7항 또는 제13항에 있어서,
    상기 (c)는
    (c-1). 네트워크 통신 프로토콜을 구현하고 자동화시키는 자동화단계와;
    (c-2). 이때, RPC 기반 서버 소프트웨어가 제공하는 함수의 호출 관련 패킷을 분석하는 분석단계와;
    (c-3). 상기 (c-1)에서의 자동화된 처리결과를 모듈화시켜 구성하는 모듈화단계로 이루어진 것을 특징으로 하는 RPC 기반 소프트웨어의 원격지 보안 테스팅 장치.
  15. 제14항에 있어서,
    상기 (c-2)는,
    UUID, 인터페이스 버전 및 네임드 파이프를 소프트웨어 설치 정보로부터 식별하여 획득하는 획득단계와;
    상기 획득단계에서 식별된 정보를 인자로 하는 통신프로토콜 함수를 구현하는 구현단계로 구성되는 것을 특징으로 하는 RPC 기반 소프트웨어의 원격지 보안 테스팅 장치.
KR1020070066157A 2006-11-23 2007-07-02 알피씨 기반 소프트웨어의 원격지 보안 테스팅 장치 및방법 KR100930962B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020060116569 2006-11-23
KR20060116569 2006-11-23

Publications (2)

Publication Number Publication Date
KR20080047248A true KR20080047248A (ko) 2008-05-28
KR100930962B1 KR100930962B1 (ko) 2009-12-10

Family

ID=39663903

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070066157A KR100930962B1 (ko) 2006-11-23 2007-07-02 알피씨 기반 소프트웨어의 원격지 보안 테스팅 장치 및방법

Country Status (1)

Country Link
KR (1) KR100930962B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102514797B1 (ko) * 2021-10-07 2023-03-29 한국과학기술원 Lte 단말기의 프로토콜 구현에 대한 네거티브 테스팅 기반 보안 분석 시스템 및 그 방법
CN116561013A (zh) * 2023-07-04 2023-08-08 建信金融科技有限责任公司 基于目标服务框架的测试方法、装置、电子设备和介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106502876B (zh) * 2016-10-26 2020-01-10 腾讯科技(深圳)有限公司 一种热点函数确定的方法及相关设备
KR102643690B1 (ko) * 2022-08-04 2024-03-05 부산대학교 산학협력단 블록체인 클라이언트 취약점 탐지 방법 및 취약점 탐지 장치

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100621573B1 (ko) * 1999-07-07 2006-09-12 삼성전자주식회사 내장 시스템 소프트웨어를 테스트하기 위한 시스템 및 방법
KR100621574B1 (ko) * 1999-07-07 2006-09-12 삼성전자주식회사 내장 시스템 소프트웨어 테스팅을 위한 테스트 드라이버 생성시스템
KR20040087767A (ko) * 2003-04-09 2004-10-15 바산네트워크(주) 리얼타임, 임베디드 s/w 컴포넌트 테스팅 및 실시간 분석 방법 및 시스템

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102514797B1 (ko) * 2021-10-07 2023-03-29 한국과학기술원 Lte 단말기의 프로토콜 구현에 대한 네거티브 테스팅 기반 보안 분석 시스템 및 그 방법
CN116561013A (zh) * 2023-07-04 2023-08-08 建信金融科技有限责任公司 基于目标服务框架的测试方法、装置、电子设备和介质
CN116561013B (zh) * 2023-07-04 2023-09-26 建信金融科技有限责任公司 基于目标服务框架的测试方法、装置、电子设备和介质

Also Published As

Publication number Publication date
KR100930962B1 (ko) 2009-12-10

Similar Documents

Publication Publication Date Title
CN109933522B (zh) 一种自动化用例的测试方法、测试系统及存储介质
CN102402481B (zh) 异步程序代码的模糊测试
WO2004021207A1 (en) Systems and methods for improving service delivery
Arora et al. Web application testing: A review on techniques, tools and state of art
US11392873B2 (en) Systems and methods for simulating orders and workflows in an order entry and management system to test order scenarios
US20040064806A1 (en) Verifiable processes in a heterogeneous distributed computing environment
EP2245532A1 (en) Method and apparatus for generating virtual software platform based on component model and validating software platform architecture using the platform
US8224625B2 (en) Closed-loop diagnostic system
CN111290958B (zh) 一种调试智能合约的方法及装置
JP2000215130A (ja) クラスタ性能監視ユ―ティリティ
WO2022231903A1 (en) On-premises action execution agent for cloud-based information technology and security operations applications
KR100930962B1 (ko) 알피씨 기반 소프트웨어의 원격지 보안 테스팅 장치 및방법
CN113347060B (zh) 基于流程自动化的电力网络故障检测方法、装置和系统
CN112583663B (zh) 一种基于国产操作系统的自动化网络性能测试方法
US8725901B2 (en) Analysis tool for intra-node application messaging
CN111447273A (zh) 云处理系统及基于云处理系统的数据处理方法
US7739420B2 (en) Communication error information output method, communication error information output device and recording medium therefor
CN112363707B (zh) 一种基于java反射技术的控制层通用调度方法
US20050108727A1 (en) Application binding in a network environment
CN115914055A (zh) 分布式网络测试方法、装置、介质及设备
CN100535866C (zh) 一种用于测试含有复杂计算过程协议的一致性测试方法
US9106514B1 (en) Hybrid network software provision
CN112181816A (zh) 一种基于场景的接口测试方法、装置、计算机设备及介质
US11895177B2 (en) State extractor for middlebox management system
CN112506497B (zh) 一种数据处理方法和数据处理系统

Legal Events

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

Payment date: 20121130

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130930

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140916

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee