KR102393656B1 - 공방전 방식으로 해킹 테스트를 수행하는 방법 및 그 방법을 위한 관리서버 - Google Patents
공방전 방식으로 해킹 테스트를 수행하는 방법 및 그 방법을 위한 관리서버 Download PDFInfo
- Publication number
- KR102393656B1 KR102393656B1 KR1020200134668A KR20200134668A KR102393656B1 KR 102393656 B1 KR102393656 B1 KR 102393656B1 KR 1020200134668 A KR1020200134668 A KR 1020200134668A KR 20200134668 A KR20200134668 A KR 20200134668A KR 102393656 B1 KR102393656 B1 KR 102393656B1
- Authority
- KR
- South Korea
- Prior art keywords
- hacking
- server
- virtual
- team
- test
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
공방전 방식으로 해킹 테스트를 수행하는 방법 및 그 방법을 위한 관리서버이 개시된다. 본 발명의 관리서버는 해킹 테스트에 참여한 각 팀을 위해 가상서버를 제공한 다음 프록시 서버를 통해 해킹 접속을 할 수 있는 환경을 제공한다. 관리서버는 모든 해킹 접속에 대한 정보를 로그 데이터로 저장할 수 있고, 그 로그 데이터를 기초로 해킹 상황을 동적 이미지 형태로 표시할 수 있다.
Description
본 발명은 복수 개 해킹 팀의 해킹 대회나 해킹 연습을 위해 공방전 방식으로 해킹 테스트를 수행하는 방법 및 그 방법을 위한 관리서버에 관한 것이다.
해킹(Hacking)은 컴퓨터 프로그램 제작자가 걸어 놓은 프로그램 코드 락 알고리즘(Code Lock Algorithm)을 풀어서 프로그램 소스코드(Source Code)를 알아내거나 프로그램 소스코드를 변경하는 행위를 말한다. 해킹하면서 악의적으로 프로그램을 변경하는 것을 특별히 크래킹(Cracking)이라고 한다. 코드 락을 풀어서 프로그램 소스를 확인하는 해킹 자체는 범죄가 아니지만 악의적이고 불순한 의도로 악용하면 범죄가 된다.
해킹 연습이나 해킹 대회는 해킹 능력을 비교하고 겨루기 위한 목적으로 열리는데 CTF(Capture The Flag)형식으로 주어진 해킹 문제를 푸는 방식으로 진행된다. CTF는 공격자가 해킹에 성공해야만 할 수 있는 행위를 함으로써 얻는 일종의 문자열로서 간단히 플래그(Flag)라고도 부른다. 해킹대회에서 공격자들은 다양한 해킹방법으로 상대방(또는 방어자) 시스템의 플래그를 인증함으로써 해킹 공격(Hacking Attack)에 성공했음을 증명한다.
최근에 해킹대회는 일방만이 공격하는 형식에서 벗어나, 서로 해킹 공격과 방어를 동시에 수행하는 공방전의 형식으로 발전했다. 단순히 공격만 하던 종래의 해킹대회와 달리, 공방전에서 각 팀은 해킹 공격과 방어를 동시에 수행해야 한다. 공방전을 위해, 각 팀마다 동일한 환경의 서버가 제공되어야 하며, 각 팀이 동일한 코드를 직접 보며 취약점을 찾을 수 있어야 한다. 각자 본인의 팀의 소스 코드를 패치하여 추가적인 공격을 막을 수 있으며 본인이 찾은 취약점으로 다른 팀을 공격함으로써 점수 획득 및 방어가 가능하다.
본 발명의 목적은 복수 개 해킹 팀의 해킹 연습을 위해 공방전 방식으로 해킹 테스트를 수행하는 방법 및 그 방법을 위한 관리서버를 제공함에 있다.
상기 목적을 달성하기 위해 본 발명은 복수의 팀이 서로 상대방의 서버를 해킹하는 공방전 방식의 해킹 테스트방법을 제공한다. 본 발명의 방법은 관리서버의 테스트진행부가 상기 복수 개 팀의 서버로 사용할 복수 개의 가상 서버를 설정하는 단계와; 상기 관리서버가 네트워크를 통해 복수 개 팀의 단말기(상기 복수 개 팀은 서로 다른 IP 주소 또는 포트(Port) 번호를 사용하여 구분함)와 연결되는 단계와; 상기 관리서버의 프록시 서버가 상기 단말기 중 하나로부터 상기 복수 개의 가상 서버 중에서 선택된 공격대상 서버로 해킹을 시도하는 해킹 접속을 수신할 때마다 상기 해킹 접속을 상기 공격대상이 된 가상 서버로 포워딩하고 상기 해킹 접속을 파싱하여 획득한 해킹 접속 정보를 로그 데이터로 저장하는 단계와; 상기 관리서버의 테스트진행부가 상기 저장된 로그 데이터를 기초로 상기 복수 개의 가상 서버에 대한 해킹 공격 횟수에 대응하는 이미지를 표시부에 표시하는 단계를 포함한다.
실시 예에 따라, 상기 표시하는 단계에서 상기 테스트진행부는, 기설정된 시간 단위로 상기 저장된 로그 데이터를 분석하여 상기 복수 개의 가상 서버 각각에 대한 팀별 해킹 공격 횟수에 대응하는 복수 개의 템플릿 이미지를 하나의 화면으로 상기 표시부에 연속 표시함으로써 전체 해킹 상황을 동적으로 표시할 수 있다.
다른 실시 예에 따라, 본 발명은 상기 복수 개의 가상 서버에 동일한 서비스 코딩과 서로 다른 해킹 인증용 플래그가 저장되고, 상기 테스트진행부가 상기 단말기로부터 상기 공격대상 가상 서버에 저장된 플래그를 제공받는 경우에 상기 공격대상 가상서버가 해킹된 것으로 판단하는 단계를 더 포함할 수 있다. 이런 경우에 상기 표시하는 단계에서 상기 테스트진행부는 상기 화면에 상기 복수 개의 가상 서버에 대한 점수 게이지를 표시하고, 상기 해킹된 가상 서버의 점수 게이지를 기설정된 양만큼 줄인 상태로 표시함으로써 해킹 성공상황을 애니메이션 형태로 표시할 수 있다.
또 다른 실시 예에 따라, 상기 관리서버는, 상기 단말기가 상기 프록시 서버를 경유하지 않고 자신의 팀에 할당된 가상 서버에 접속하여 해킹 방지용 코드를 패치하거나 방화벽을 설치할 수 있도록 SSH(Secure Shell) 포트를 제공할 수 있다.
또 다른 실시 예에 따라, 상기 가상 서버는 도커 컨테이너(Docker Container) 방식으로 설정하여 제공될 수 있다.
본 발명은 상기 방법을 수행하는 테스트진행부, 프록시 서버 및 표시부를 포함하는 관리서버에도 미친다.
본 발명에 의하면, 공방전 형태의 해킹 연습이나 테스트 환경을 제공하고 해킹 상황을 모니터링할 수 있고 그 해킹 상황을 동적 이미지 형태로 표시함으로써 하나의 사이버 드릴 시스템(Cyber Drill System)으로 구현할 수 있다.
종래와 달리, 본 발명은 각 팀의 서버를 가상서버 형태로 제공하는 대신에 프록시 서버를 통해 해킹 접속을 할 수 있는 환경을 제공함으로써 테스트에 참여한 각 팀의 해킹 상황을 모니터링 할 수 있다. 또한, 본 발명의 관리서버는 해킹 접속에 대한 로그 데이터를 기초로 해킹 상황을 동적 이미지 형태로 표시할 수 있다.
도 1은 본 발명의 일 실시 예에 따른 해킹 테스트 시스템의 구성도,
도 2는 도 1의 해킹 테스트 시스템을 개념적으로 도시한 도면,
도 3은 본 발명의 관리서버의 로그 데이터 기록방법을 설명하는 흐름도,
도 4는 로그 데이터를 이용하여 해킹 상황을 동적 이미지로 표시하는 방법을 설명하는 흐름도, 그리고
도 5는 표시부에 표시되는 화면의 예를 도시한 도면이다.
도 2는 도 1의 해킹 테스트 시스템을 개념적으로 도시한 도면,
도 3은 본 발명의 관리서버의 로그 데이터 기록방법을 설명하는 흐름도,
도 4는 로그 데이터를 이용하여 해킹 상황을 동적 이미지로 표시하는 방법을 설명하는 흐름도, 그리고
도 5는 표시부에 표시되는 화면의 예를 도시한 도면이다.
이하 도면을 참조하여 본 발명을 더욱 상세히 설명한다.
도 1 및 도 2를 참조하면, 본 발명의 해킹 테스트 시스템(100)은 관리서버(110)와 복수 개의 단말기(131, 133, 151, 153, 171, 173)를 포함한다. 관리서버(110)와 복수 개의 단말기(131, 133, 151, 153, 171, 173)는 네트워크(10)를 통해 연결될 수 있다. 관리서버(110)는 본 발명의 테스트 관리자측의 장치이고, 단말기(131, 133, 151, 153, 171, 173)는 해킹 테스트에 참여하는 각 팀의 영역에 속하는 장치이다. 본 발명의 공방전에서 각 팀은 해킹 공격팀인 동시에 해킹 방어팀이 된다.
복수 개의 단말기(131, 133, 151, 153, 171, 173)는 관리서버(110)에 접속할 수 있는 네트워크 인터페이스를 구비한 컴퓨터 장치이면 족하다. 복수 개의 단말기(131, 133, 151, 153, 171, 173)는 해킹 테스트에 참여하는 복수의 해킹 팀의 단말기이다. 본 발명의 해킹 테스트에 참여하는 각 팀은 서로 다른 IP(Internet Protocol) 주소 또는 포트(Port) 번호를 사용하도록 설정된다. 하나의 팀에는 하나 또는 복수 개의 단말기가 연결될 수 있으며, 복수 개의 단말기를 사용하는 팀은 같은 네트워크 공유기(135, 155, 175)에 연결됨으로써 동일한 IP 주소를 사용해야 한다.
도 1에는 제1 팀, 제2 팀 및 제3 팀이 테스트에 참여 중인 상태를 도시한 것이고, 각 팀마다 2개의 단말기를 사용 중이다. 제1 팀(130)에는 제1a 단말기(131) 및 제1b 단말기(133)가 제1 공유기(135)를 통해 동일한 IP 주소가 부여되도록 구현되었다. 제2 팀(150)에는 제2a 단말기(151) 및 제2b 단말기(153)가 제2 공유기(155)를 통해 동일한 IP 주소가 부여되도록 구현되었다. 제3 팀(170)에는 제3a 단말기(171) 및 제3b 단말기(173)가 제3 공유기(175)를 통해 동일한 IP 주소가 부여되도록 구현되었다. 본 발명에서 각 팀은 IP 주소로 구분되기 때문에 한 팀내에 여러 개의 단말기가 연결되어 있어도 별도의 해킹 공격으로 구분되지 않는다. 따라서 한 팀에 몇 개의 단말기가 포함되어 있는지는 중요하지 않다. 이런 점을 고려하여, 이하의 설명에서 '제1 팀(130)'은 제1 팀에 속하는 제1a 단말기(131) 및/또는 제1b 단말기(133)를 포괄하여 지시하는 것으로 사용하고, '제2 팀(150)'은 제2 팀용 제2a 단말기(151) 및/또는 제2b 단말기(153)를 지시하는 것으로 사용하고, '제3 팀(170)'은 제3 팀에 속하는 제3a 단말기(171) 및/또는 제3b 단말기(173)를 지시하는 것으로 사용한다.
관리서버(110)는 본 발명의 공방전 방식의 해킹 테스트를 전체적으로 관리하고 진행한다. 이를 위해 관리서버(110)는 프록시 서버(Proxy Server)(111), 테스트진행부(113) 및 표시부(117)를 포함한다. 프록시 서버(111)와 표시부(117)는 관리서버(110)와 분리된 별도의 장치로 구현될 수도 있다.
관리서버(110)에는 (해킹 테스트에 참여한 팀 수×n)개 만큼의 복수 개 가상 서버가 설정되고, 각 팀마다 n개의 가상 서버가 할당되어 각 팀 서버로 동작한다. 따라서 해킹은 상대방 팀의 가상 서버를 공격하는 방식으로 진행되고 각 팀은 자신의 가상서버를 상대방의 해킹으로부터 방어해야 한다. 예를 들어, 제1 팀은 제2 팀에 할당된 제2 가상 서버를 공격하게 된다.
각각의 가상서버는 서로 다른 도메인 이름(Domain Name)으로 구분되며, 서브 도메인(Subdomain)을 사용하여 팀과 서비스를 구분할 수 있는 것이 좋다. 예를 들어, 제1 팀의 가상서버의 도메인 이름은 'team_1.stealien.com'으로 정하고, 제2 팀의 가상서버의 도메인 이름은 'team_2.stealien.com'으로 정해질 수 있다. 한편, 각 가상서버는 그 도메인 이름에 대응하는 IP 주소가 지정된다. 아래에서 설명하는 것처럼, 각 팀에서 가상서버에 해킹 접속을 시도할 때는 도메인 이름을 사용하고, SSH 단자로 가상서버에 접속할 때는 IP 주소를 사용한다.
가상 서버에는 특정 서비스 프로그램의 소스코드와 해킹 인증용 플래그가 저장되어 있다. 모든 가상서버에는 서로 다른 해킹 인증용 플래그가 저장된다. 공격팀이 상대방 서버의 플래그를 획득하면 해킹 성공이 된다. 공정한 테스트를 위해 각 팀이 보유한 가상서버의 개수와 종류는 동일해야 한다. 실시 예에 따라서, 각 팀에 복수 개의 가상 서버를 설정할 수 있는데, 예를 들어 각 팀마다 2개씩(n=2)의 가상 서버를 할당할 수 있다. 이러한 경우, 2개 가상서버에는 서로 다른 소스 코드의 프로그램가 저장된다. 만약 제1 팀에 서비스가 다른 2개 가상서버가 할당될 경우에 각 도메인 이름은 'team_1_a.stealien.com'과'team_1_b.stealien.com'으로 정하여 팀명과 서비스 명을 구분할 수 있도록 한다. 또한, 3개 팀이 2개씩 전체 6개의 가상서버가 설정될 경우에 전체 가상서버에는 모두 다른 해킹 인증용 플래그가 저장된다.
가상 서버는 다양한 방식으로 구현할 수 있다. 예를 들어, 도커 컨테이너(Docker Container) 방식으로 가상 서버를 관리서버(110) 내에 구현할 수 있다. 도커는 컨테이너 기반의 오픈소스 가상화 플랫폼이고, 컨테이너는 하나의 물리적 서버내에서 별도의 환경과 공간으로 분리하여 프로세스를 동작시키는 가상화 기술의 일종이다. 도커 컨테이너 방식으로 하나의 서버 내에 다양한 프로그램, 실행환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공함으로써 하나의 물리적 서버 내에 여러 개의 가상 서버를 구현할 수 있다.
가상 서버를 만드는 다른 방법 중 하나로 가상 머신(VM: Virtual Machine)을 이용할 수도 있다. 가상 머신은 호스트 OS(Host OS) 위에 하이퍼바이저(Hyperviser)를 이용하여 물리적인 장치를 가상화하는 방식으로 OS를 가상화하는 도커 컨테이너 방식과 구분된다. 가상 머신 방식은 가상화된 머신마다 별도의 OS를 설치해주어야 하는 부담이 있기 때문에, 도커 컨테이너 방식이 편리할 수 있다.
도 2의 예는 각 팀에 2개의 가상서버(n=2)가 할당된 예를 도시한 것으로서 물리적 연결을 나타내는 것은 아니다. 제1a 가상서버(211)와 제1b 가상서버(213)가 제1 팀에 할당되어 있다. 제2a 가상서버(215) 및 제2b 가상서버(217)가 제2 팀용으로 할당되어 있고, 제3a 가상서버(219) 및 제3b 가상서버(221)가 제3 팀용으로 할당되어 있다.
제1 팀(130)이 제2 팀을 공격한다고 하면, 제1 팀의 제1a 단말기(131)가 제2a 가상서버(215) 또는 제2b 가상서버(217)를 공격하는 것이 되어서, 제1 팀(130)이 '공격팀'이 되고 제2a 가상서버(215) 또는 제2b 가상서버(217)가 '공격대상 서버'가 된다. 제1a 단말기(131)가 제2a 가상서버(215)에 해킹 접속을 하려면 'team_2_a.stealien.com'로 접속을 시도해야 한다. 공격자 단말기와 공격대상 서버로 '해킹 공격'이 분류될 수 있다.
프록시 서버(111)는 서버와 클라이언트처럼 두 개 컴퓨터 시스템 사이에서 통신을 대리하는 장치를 말하는 것으로서, 도 1에는 프록시 서버(111)가 관리서버(110)의 내부 구성으로 도시되어 있으나, 관리서버(110)와 분리된 별도의 구성으로 구현될 수도 있다. 프록시 서버(111)는 각 단말기(131, 133, 151, 153, 171, 173)와 가상 서버(211, 213, 215, 217, 219, 221) 사이에서 통신을 대행한다. 각 단말기(131, 133, 151, 153, 171, 173)에서 상대방 팀의 가상 서버에 해킹 접속을 하려고 할 때의 모든 접속은 프록시 서버(111)를 경유하게 된다.
프록시 서버(111)는 리버스 프록시(Reverse Proxy) 기술을 사용하여, 각 팀으로부터 해킹 접속이 있으면 해당 해킹 접속에 포함된 데이터를 해당 접속의 공격대상이 된 가상서버로 포워딩하고, 해킹 접속을 파싱하여 획득한 해킹 접속 정보를 로그 데이터로 메모리(115)에 저장한다. 따라서 프록시 서버(111)가 처리하는 모든 해킹 접속은 '공격자 IP주소'와 '가상서버의 도메인 이름'을 기준으로 분류할 수 있다. 프록시 서버(111)는 해킹 접속으로부터 (1)공격자 IP 주소, (2)공격 대상 가상서버의 도메인 이름, (3)공격 시간, 그리고 (4)공격시 사용한 데이터(HTTP Raw data의 형태)를 추출하여 해킹 접속 정보로 저장한다.
프록시 서버(111)가 해킹 접속을 선별하고 공격 대상을 구분하기 위해 서브 도메인을 활용한다. 예를 들어, IP 주소가 192.168.1.20인 단말기(도 1의 제3 팀)가 http://team_1_a.stealian.com 라는 도메인(제1a 가상서버)에 접속하는 경우에, 프록시 서버(111)는 도메인 이름을 데이터베이스나 기저장해 둔 IP 주소 테이블에 조회하여 도메인에 대응하는 IP 주소를 확인하고 해당 제1a 가상서버(211)로 해킹 접속에 포함된 데이터를 포워딩할 수 있다.
관리서버(110)는 단말기(131, 133, 151, 153, 171, 173)의 해킹 접속을 위해 프록시 서버(111)를 제공하는 것과 별개로, 각 팀이 자신의 가상 서버(211, 213, 215, 217, 219, 221)에 방어용 코드를 패치(Patch)나 방화벽을 설치할 수 있도록 SSH 포트(Secure Shell Port)(119)를 제공한다. SSH는 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 때 사용하는 프로토콜 중 하나이다. 각 팀의 단말기(131, 133, 151, 153, 171, 173)는 SSH 포트(119)를 통해 자신의 가상 서버에 접속하여 취약한 소스코드(Source Code)를 패치하거나 방화벽을 설치할 수 있다.
테스트진행부(113)는 테스트에 참여한 각 팀을 위한 가상서버를 적어도 하나 이상 할당하고, 해킹 성공을 판단하고 테스트 중에 발생할 수 있는 각종 부정행위를 감시하는 등 테스트를 전반적으로 관리하고 감시한다.
또한, 테스트진행부(113)는 프록시 서버(111)가 메모리(115)에 저장한 로그 데이터를 기초로 해킹 상황을 동적 이미지 형태로(또는 애니메이션화하여) 표시부(117)에 표시함으로써 각 팀의 전체 해킹 상황을 하나의 화면으로 확인할 수 있도록 한다. 테스트진행부(113)가 해킹 상황을 애니메이션화하여 표시하는 방법은 다양할 수 있다.
또한, 테스트진행부(113)는 해킹 성공, 부정행위, 해킹 실패 등 다양한 이벤트를 기준으로 점수를 계산하여 각 팀의 해킹 점수를 계산할 수도 있다.
실시 예: 로그 데이터 생성방법 (도 3)
이하에서는 앞서 설명한 것을 기준으로 도 3을 참조하여, 관리서버(110)의 프록시 서버(111)와 테스트진행부(113)에 의해 수행되는 로그 데이터 생성방법을 시계열적으로 설명한다.
테스트진행부(113)는 테스트에 참여한 팀별로 적어도 하나의 가상서버를 설정하며, 관리서버(110)는 복수 개 팀의 단말기(131, 133, 151, 153, 171, 173)와 연결된다(S301).
각 팀의 해킹 공격을 위한 해킹 접속은 프록시 서버(111)가 수신한다(S303). 프록시 서버(111)는 특정 팀의 단말기가 특정 팀의 가상서버를 공격대상으로 하는 해킹 접속을 받으면, 해당 해킹 접속을 공격대상이 된 가상 서버로 포워딩한다(S305).
프록시 서버(111)는 동시에 해킹 접속을 파싱하여 획득한 해킹 접속 정보를 로그 데이터로 메모리(115)에 저장한다(S307).
테스트가 일정한 기준으로 종료할 때까지 S303 내지 S307의 단계가 반복 수행되면서 로그 데이터가 기록된다.
실시 예: 애니메이션화 방법 (도 4 및 도 5)
테스트진행부(113)는 기설정된 시간(예컨대 1분) 단위로 로그 데이터를 수집하여 해킹 상황을 동적 이미지로 표시할 수 있다.
도 4를 기초로 절차적으로 설명하면, 테스트진행부(113)는 프록시 서버(111)에 의해 기설정된 시간단위로 메모리(115)에 저장된 모든 로그 데이터를 해킹 공격단위(공격자와 공격대상 서버로 분류)로 분류하고, 분류된 로그 데이터의 양(즉, 공격횟수)을 계산한다. 테스트진행부(113)는 기설정된 시간단위로 로그 데이터를 메모리(115)로부터 읽어온 다음 메모리 기록을 삭제하기 때문에, 한번에 읽어오는 로그 데이터는 설정된 시간동안 기록된 데이터이다(S401, S403).
테스트진행부(113)는 해킹 공격별로 계산된 공격횟수에 대응하는 동적 이미지를 표시하게 된다. 특정 해킹 공격의 공격횟수가 많다는 것은 특정 공격자가 특정 팀의 가상서버를 향한 해킹 접속이 많았다는 것을 의미한다(S405).
테스트진행부(113)가 해킹 공격을 동적 이미지화 하는 방법은 기저장해 둔 템플릿 이미지 중에서 해당 공격 횟수에 대응하는 이미지를 표시하는 방법이 가능하다. 도 5는 표시부(117)에 표시되는 화면(P)의 일 예를 도시한 것으로서, 화살표(A1, A2, A3)를 이용하여 해킹 공격을 표시하고, 공격횟수가 많을수록 화살표(A1, A2, A3)를 굵게 표시하거나 진한 색상으로 표시할 수 있다. 도 5의 예에 의하면, 1분 전까지 제2 팀(150)이 제3 팀의 제3a 가상서버(219) 또는 제3b 가상서버(221)에 대한 해킹 공격이 제일 많았음을 알 수 있다. 그동안 제1 팀의 서버에 대한 공격이 없었다.
테스트진행부(113)가 기설정된 시간단위로 로그 데이터를 분류하기 때문에 실시간 상황은 아니지만, 공격횟수를 누적하여 표시하지 않기 때문에 기설정된 시간단위로 해킹 공격과 공격횟수가 변하면서 동적 이미지(애니메이션) 형태로 표시부(117)에 표시됨으로써, 늦어도 설정된 시간 이내의 공격상황을 표시할 수 있다.
추가적으로, 테스트진행부(113)는 특정 가상서버를 공격한 공격자가 해당 가상서버의 플래그를 제공한 경우에 해당 해킹 공격이 성공한 것으로 판단하고 해킹 성공을 표시하는 그래픽(예컨대 미사일이 떨어지는 이미지나 폭탄이 터지는 이미지)을 표시하여 공격 성공을 시각화할 수 있다. 도 5에서 제2 팀(150)의 제3a 가상서버(219) 공격이 성공하여 제3a 가상서버(219)가 해킹된 상태를 폭발 이미지(B)로 표시하고 있다. 또한, 도 5를 참조하면, 테스트진행부(113)는 표시부(117)의 화면(P)에 복수 개의 가상 서버에 대한 점수 게이지(G1, G2, G3)를 표시하고, 해킹된 가상 서버의 점수 게이지를 기설정된 양만큼 줄인 상태로 표시할 수도 있다. 도 5의 예에서, 제3 팀에 대한 해킹 공격이 제일 많이 성공하면서 제3 팀의 점수가 가장 낮게 표시되고 있다.
당연하지만, 특정 해킹 공격이 성공하여 공격대상 가상서버가 일단 해킹된 이후에는 동일한 해킹 공격에 의한 해킹 성공은 점수를 획득할 수 없다.
이상의 방법으로 본 발명의 관리서버(110)는 공방전 방식의 해킹 테스트를 진행할 수 있고, 해킹 상황을 동적 이미지로 표시할 수 있다.
이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.
Claims (10)
- 복수의 팀이 서로 상대방의 서버를 해킹하는 공방전 방식의 해킹 테스트방법에 있어서,
관리서버의 테스트진행부가 상기 복수 개 팀의 서버로 사용할 복수 개의 가상 서버를 설정하되, 상기 복수 개의 가상 서버에 동일한 서비스 코딩과 서로 다른 해킹 인증용 플래그를 저장하는 단계;
상기 관리서버가 네트워크를 통해 복수 개 팀의 단말기와 연결되는 단계. 상기 복수 개 팀은 서로 다른 IP 주소 또는 포트(Port) 번호를 사용하여 구분함;
상기 관리서버의 프록시 서버가 상기 단말기 중 하나로부터 상기 복수 개의 가상 서버 중에서 선택된 공격대상 서버로 해킹을 시도하는 해킹 접속을 수신할 때마다 상기 해킹 접속에 포함된 데이터를 상기 공격대상이 된 가상 서버로 포워딩하고 상기 해킹 접속을 파싱하여 획득한 해킹 접속 정보를 로그 데이터로 저장하는 단계;
상기 테스트진행부가 상기 단말기로부터 상기 공격대상 가상 서버에 저장된 플래그를 제공받는 경우에 상기 공격대상 가상서버가 해킹된 것으로 판단하는 단계; 및
상기 테스트진행부가 상기 저장된 로그 데이터를 기초로 상기 복수 개의 가상 서버에 대한 해킹 공격 횟수에 대응하는 이미지를 표시부에 표시하되, 기설정된 시간 단위로 상기 저장된 로그 데이터를 분석하여 상기 복수 개의 가상 서버 각각에 대한 팀별 해킹 공격 횟수에 대응하는 복수 개의 템플릿 이미지를 하나의 화면으로 상기 표시부에 연속 표시함으로써 전체 해킹 상황을 동적으로 표시하는 단계를 포함하고,
상기 표시하는 단계에서, 상기 테스트진행부가 상기 화면에 상기 복수 개의 가상 서버에 대한 점수 게이지를 표시하고, 상기 해킹된 가상 서버의 점수 게이지를 기설정된 양만큼 줄인 상태로 표시하는 것을 특징으로 하는 공방전 방식의 해킹 테스트방법.
- 삭제
- 삭제
- 제1항에 있어서,
상기 관리서버는,
상기 단말기가 상기 프록시 서버를 경유하지 않고 자신의 팀에 할당된 가상 서버에 접속하여, 해킹 방지용 코드를 패치하거나 방화벽을 설치할 수 있도록 SSH(Secure Shell) 포트를 제공하는 것을 특징으로 하는 공방전 방식의 해킹 테스트방법.
- 제1항 또는 제4항에 있어서,
상기 가상 서버는 도커 컨테이너(Docker Container) 방식 또는 가상 머신으로 설정하여 제공되는 것을 특징으로 하는 공방전 방식의 해킹 테스트방법.
- 네트워크를 통해 복수 개 팀의 단말기와 연결되어 상기 복수의 팀이 서로 상대방의 서버를 해킹하는 공방전 방식의 해킹 테스트를 수행하는 관리서버에 있어서,
상기 복수 개 팀의 서버로 사용할 복수 개의 가상 서버를 설정하고, 로그 데이터를 기초로 상기 복수 개의 가상 서버에 대한 해킹 공격 횟수에 대응하는 이미지를 표시부에 표시하는 테스트진행부. 상기 복수 개의 가상 서버에 동일한 서비스 코딩과 서로 다른 해킹 인증용 플래그가 저장됨;
상기 단말기 중 하나로부터 상기 복수 개의 가상 서버 중에서 선택된 공격대상 서버로 해킹을 시도하는 해킹 접속을 수신할 때마다 상기 해킹 접속을 상기 공격대상이 된 가상 서버로 포워딩하고 상기 해킹 접속을 파싱하여 획득한 해킹 접속 정보를 상기 로그 데이터로 저장하는 프록시 서버; 및
해킹 상황을 표시하는 상기 표시부를 포함하고,
상기 테스트진행부는,
기설정된 시간 단위로 상기 저장된 로그 데이터를 분석하여 상기 복수 개의 가상 서버 각각에 대한 팀별 해킹 공격 횟수에 대응하는 복수 개의 템플릿 이미지를 하나의 화면으로 상기 표시부에 연속 표시함으로써 전체 해킹 상황을 동적으로 표시하고, 상기 단말기로부터 상기 공격대상 가상 서버에 저장된 플래그를 제공받는 경우에 상기 공격대상 가상서버가 해킹된 것으로 판단하고, 상기 표시부의 화면에 상기 복수 개의 가상 서버에 대한 점수 게이지를 표시하되 상기 해킹된 가상 서버의 점수 게이지를 기설정된 양만큼 줄인 상태로 표시하는 것을 특징으로 하는 관리서버.
- 삭제
- 삭제
- 제6항에 있어서,
상기 단말기가 상기 프록시 서버를 경유하지 않고 자신의 팀에 할당된 가상 서버에 접속하여 해킹 방지용 코드를 패치하거나 방화벽을 설치할 수 있도록 SSH(Secure Shell) 포트를 제공하는 것을 특징으로 하는 관리서버.
- 제6항 또는 제9항에 있어서,
상기 가상 서버는 도커 컨테이너(Docker Container) 방식 또는 가상 머신으로 설정하여 제공되는 것을 특징으로 하는 관리서버.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200134668A KR102393656B1 (ko) | 2020-10-16 | 2020-10-16 | 공방전 방식으로 해킹 테스트를 수행하는 방법 및 그 방법을 위한 관리서버 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200134668A KR102393656B1 (ko) | 2020-10-16 | 2020-10-16 | 공방전 방식으로 해킹 테스트를 수행하는 방법 및 그 방법을 위한 관리서버 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220050698A KR20220050698A (ko) | 2022-04-25 |
KR102393656B1 true KR102393656B1 (ko) | 2022-05-04 |
Family
ID=81452193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200134668A KR102393656B1 (ko) | 2020-10-16 | 2020-10-16 | 공방전 방식으로 해킹 테스트를 수행하는 방법 및 그 방법을 위한 관리서버 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102393656B1 (ko) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015231138A (ja) * | 2014-06-05 | 2015-12-21 | 日本電信電話株式会社 | サイバー攻撃演習システム、演習環境提供方法、および、演習環境提供プログラム |
KR101741566B1 (ko) * | 2016-02-18 | 2017-05-30 | 국방과학연구소 | 사이버 훈련 환경에서의 공격단계 및 공격진행상황을 인지하는 방법 및 시스템 |
WO2019003373A1 (ja) * | 2017-06-29 | 2019-01-03 | 日本電気株式会社 | 攻撃状況可視化装置、攻撃状況可視化方法及び記録媒体 |
KR102113587B1 (ko) * | 2015-09-24 | 2020-05-22 | 서케이든스 코퍼레이션 | 임무 기반의 게임-실행형 사이버 교육 시스템 및 방법 |
-
2020
- 2020-10-16 KR KR1020200134668A patent/KR102393656B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015231138A (ja) * | 2014-06-05 | 2015-12-21 | 日本電信電話株式会社 | サイバー攻撃演習システム、演習環境提供方法、および、演習環境提供プログラム |
KR102113587B1 (ko) * | 2015-09-24 | 2020-05-22 | 서케이든스 코퍼레이션 | 임무 기반의 게임-실행형 사이버 교육 시스템 및 방법 |
KR101741566B1 (ko) * | 2016-02-18 | 2017-05-30 | 국방과학연구소 | 사이버 훈련 환경에서의 공격단계 및 공격진행상황을 인지하는 방법 및 시스템 |
WO2019003373A1 (ja) * | 2017-06-29 | 2019-01-03 | 日本電気株式会社 | 攻撃状況可視化装置、攻撃状況可視化方法及び記録媒体 |
Also Published As
Publication number | Publication date |
---|---|
KR20220050698A (ko) | 2022-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112187825B (zh) | 一种基于拟态防御的蜜罐防御方法、系统、设备及介质 | |
JP7046111B2 (ja) | マルウェアのランタイム中の自動検出 | |
AU2015279922B2 (en) | Automated code lockdown to reduce attack surface for software | |
CN102932329B (zh) | 一种对程序的行为进行拦截的方法、装置和客户端设备 | |
Cowan et al. | Defcon capture the flag: Defending vulnerable code from intense attack | |
CN107612924B (zh) | 基于无线网络入侵的攻击者定位方法及装置 | |
Doupé et al. | Hit'em where it hurts: a live security exercise on cyber situational awareness | |
US20140157415A1 (en) | Information security analysis using game theory and simulation | |
JP2004041719A (ja) | オンラインのコンソールベースのゲーム用の統計システム | |
JP2016046654A (ja) | セキュリティシステム、セキュリティ方法、セキュリティ装置、及び、プログラム | |
CN113098835A (zh) | 基于区块链的蜜罐实现方法、蜜罐客户端和蜜罐系统 | |
KR102393656B1 (ko) | 공방전 방식으로 해킹 테스트를 수행하는 방법 및 그 방법을 위한 관리서버 | |
CN110198300B (zh) | 一种蜜罐操作系统指纹隐蔽方法及装置 | |
JP2013236687A (ja) | コンピュータゲーム | |
JP5613000B2 (ja) | アプリケーション特性解析装置およびプログラム | |
Hu et al. | Security issues in massive online games | |
CN115277091A (zh) | 网络安全比赛中的攻防方法及装置 | |
Bardzell et al. | Virtual worlds and fraud: Approaching cybersecurity in massively multiplayer online games | |
CN112090087B (zh) | 游戏外挂的检测方法及装置、存储介质、计算机设备 | |
CN113709130A (zh) | 基于蜜罐系统的风险识别方法及装置 | |
JP6333763B2 (ja) | マルウェア解析装置およびマルウェア解析方法 | |
KR101267725B1 (ko) | 온라인 게임의 봇 프로그램 패턴 수집방법 | |
Abbas-Escribano et al. | An improved honeypot model for attack detection and analysis | |
Alese et al. | Improving deception in honeynet: Through data manipulation | |
JP2011002916A (ja) | 感染活動検知装置、感染活動検知方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right |