KR102231726B1 - 취약점 진단방법 및 이를 위한 진단장치 - Google Patents

취약점 진단방법 및 이를 위한 진단장치 Download PDF

Info

Publication number
KR102231726B1
KR102231726B1 KR1020190036360A KR20190036360A KR102231726B1 KR 102231726 B1 KR102231726 B1 KR 102231726B1 KR 1020190036360 A KR1020190036360 A KR 1020190036360A KR 20190036360 A KR20190036360 A KR 20190036360A KR 102231726 B1 KR102231726 B1 KR 102231726B1
Authority
KR
South Korea
Prior art keywords
diagnosis
vulnerability
server
diagnosis target
external server
Prior art date
Application number
KR1020190036360A
Other languages
English (en)
Other versions
KR20200114487A (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 KR1020190036360A priority Critical patent/KR102231726B1/ko
Priority to US16/830,604 priority patent/US11363054B2/en
Publication of KR20200114487A publication Critical patent/KR20200114487A/ko
Application granted granted Critical
Publication of KR102231726B1 publication Critical patent/KR102231726B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • H04L61/1505
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1483Countermeasures against malicious traffic service impersonation, e.g. phishing, pharming or web spoofing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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 Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 출원은 취약점 진단을 위한 취약점 진단방법 및 이를 위한 진단장치에 관한 것으로서, 본 발명의 일 실시예에 의한 취약점 진단방법은, 진단대상 서버로부터 추출한 복수의 진단대상 URL(Uniform Resource Locator) 주소를 수신하는 진단대상 URL 수신단계; 상기 복수의 진단대상 URL 주소에 대응하는 각각의 식별키를 설정하는 식별키 설정단계; 외부 서버의 URL 주소 및 상기 식별키를 포함하는 진단 HTTP(hypertext transfer protocol) 요청문을 상기 진단대상 URL 주소에 삽입하여, 상기 진단대상 서버가 상기 외부 서버로 접속하도록 공격을 수행하는 취약점 진단단계; 상기 외부서버로 상기 진단대상 서버의 접속기록을 요청하는 접속기록 확인단계; 및 상기 접속기록에 포함된 상기 식별키를 이용하여, 상기 진단대상 서버의 취약점을 추출하는 취약점 추출단계를 포함할 수 있다.

Description

취약점 진단방법 및 이를 위한 진단장치 {Apparatus and method for analyzing vulnerabilities}
본 출원은 SSRF(Server Side Request Forgery) 등 다양한 종류의 취약점 진단을 수행할 수 있는 취약점 진단방법 및 이를 위한 진단장치에 관한 것이다.
최근 웹 서비스가 범람하고 웹 인터페이스가 사용자에게 친숙해짐에 따라 전통적 응용프로그램이 웹 기반 시스템으로 통합이 가속화되고 있다. 이러한, 웹 서비스의 발전 속에 웹 어플리케이션 자체의 문제점, 프로그래머의 보안에 대한 무지, 방화벽에서의 차단 불능, 침입탐지 회피 그리고 해킹 도구의 다양화와 같은 역기능이 심각한 문제점으로 부각되고 있다.
웹 어플리케이션에 대한 다양한 형태의 공격을 방지하기 위해서는 URL(Uniform Resource Locator)에 포함되어 있는 각 파라미터 별로 공격 코드가 침입하는 것을 차단하여야 하며, 각 파라미터 별로 공격 코드의 침입을 원천적으로 차단하기 위해서는 무엇보다도 각 URL에 포함된 모든 파라미터에 대해 각 공격 유형별로 취약성이 존재하는지 여부의 판단이 선행되어야 한다.
본 출원은, SSRF(Server Side Request Forgery) 등 다양한 종류의 취약점 진단을 수행할 수 있는 취약점 진단방법 및 이를 위한 진단장치를 제공하고자 한다.
본 출원은, 진단대상 서버에 포함된 SSRF 등 다양한 취약점들의 정확한 위치를 파악할 수 있는 취약점 진단방법 및 이를 위한 진단장치를 제공하고자 한다.
본 출원은, 취약점 진단 속도를 향상시킬 수 있는 취약점 진단방법 및 이를 위한 진단장치를 제공하고자 한다.
본 발명의 일 실시예에 의한 취약점 진단방법은, 진단대상서버에 대한 취약점을 진단하는 진단장치의 취약점 진단방법에 관한 것으로, 진단대상 서버로부터 추출한 복수의 진단대상 URL(Uniform Resource Locator) 주소를 수신하는 진단대상 URL 수신단계; 상기 복수의 진단대상 URL 주소에 대응하는 각각의 식별키를 설정하는 식별키 설정단계; 외부 서버의 URL 주소 및 상기 식별키를 포함하는 진단 HTTP(hypertext transfer protocol) 요청문을 상기 진단대상 URL 주소에 삽입하여, 상기 진단대상 서버가 상기 외부 서버로 접속하도록 모의공격을 수행하는 취약점 진단단계; 상기 외부서버로 상기 진단대상 서버의 접속기록을 요청하는 접속기록 확인단계; 및 상기 접속기록에 포함된 상기 식별키를 이용하여, 상기 진단대상 서버의 취약점을 추출하는 취약점 추출단계를 포함할 수 있다.
본 발명의 일 실시예에 의한 진단장치는, 진단대상 서버로부터 추출한 복수의 진단대상 URL(Uniform Resource Locator) 주소를 수신하는 진단대상 URL 수신부; 상기 복수의 진단대상 URL 주소에 대응하는 각각의 식별키를 설정하는 식별키 설정부; 외부 서버의 URL 주소 및 상기 식별키를 포함하는 진단 HTTP(hypertext transfer protocol) 요청문을 상기 진단대상 URL 주소에 삽입하여, 상기 진단대상 서버가 상기 외부 서버로 접속하도록 모의공격을 수행하는 취약점 진단부; 상기 외부서버로 상기 진단대상 서버의 접속기록을 요청하는 접속기록 확인부; 및 상기 접속기록에 포함된 상기 식별키를 이용하여, 상기 진단대상 서버의 취약점을 추출하는 취약점 추출부를 포함할 수 있다.
본 발명의 일 실시예에 의한 진단장치는, 프로세서; 및 상기 프로세서에 커플링된 메모리를 포함하는 것으로서, 상기 메모리는 상기 프로세서에 의하여 실행되도록 구성되는 하나 이상의 모듈을 포함하고, 상기 하나 이상의 모듈은, 진단대상 서버로부터 추출한 복수의 진단대상 URL(Uniform Resource Locator) 주소를 수신하고, 상기 복수의 진단대상 URL 주소에 대응하는 각각의 식별키를 설정하며, 외부 서버의 URL 주소 및 상기 식별키를 포함하는 진단 HTTP(hypertext transfer protocol) 요청문을 상기 진단대상 URL 주소에 삽입하여, 상기 진단대상 서버가 상기 외부 서버로 접속하도록 모의 공격을 수행하고, 상기 외부서버로 상기 진단대상 서버의 접속기록을 요청하며, 상기 접속기록에 포함된 상기 식별키를 이용하여, 상기 진단대상 서버의 취약점을 추출하는, 명령어를 포함할 수 있다.
덧붙여 상기한 과제의 해결수단은, 본 발명의 특징을 모두 열거한 것이 아니다. 본 발명의 다양한 특징과 그에 따른 장점과 효과는 아래의 구체적인 실시형태를 참조하여 보다 상세하게 이해될 수 있을 것이다.
본 발명의 일 실시예에 의한 취약점 진단방법 및 이를 위한 진단장치에 의하면, 진단대상 서버에 포함된 URL 주소에 설정한 각각 식별키를 외부서버에 접속기록으로 표시할 수 있으므로, 진단대상 서버에 포함된 취약점의 정확한 위치를 파악하는 것이 가능하다.
본 발명의 일 실시예에 의한 취약점 진단방법 및 이를 위한 진단장치에 의하면, 외부서버의 접속기록으로부터 진단대상 서버의 URL 주소에 대응하는 식별키를 일괄적으로 추출할 수 있으므로, 취약점 진단 속도를 향상시킬 수 있다.
본 발명의 일 실시예에 의한 취약점 진단방법 및 이를 위한 진단장치에 의하면, 진단장치의 식별정보를 외부서버에 미리 등록하므로, SSRF 취약점에 대한 오탐지 방지 및 접속기록에 대한 보안을 향상시킬 수 있다.
다만, 본 발명의 실시예들에 따른 취약점 진단방법 및 이를 위한 진단장치가 달성할 수 있는 효과는 이상에서 언급한 것들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도1은 본 발명의 일 실시예에 의한 취약점 진단 시스템을 나타내는 개략도이다.
도2 및 도3은 본 발명의 일 실시예에 의한 진단장치를 나타내는 블록도이다.
도4는 본 발명의 일 실시예에 의한 진단대상 URL 주소에 대한 식별키 설정을 나타내는 개략도이다.
도5는 본 발명의 일 실시예에 의한 진단 HTTP 요청문을 나타내는 개략도이다.
도6은 본 발명의 일 실시예에 의한 진단장치의 취약점 진단을 나타내는 개략도이다.
도7은 본 발명의 일 실시예에 의한 외부서버에서의 접속기록을 나타내는 테이블표이다.
도8은 본 발명의 일 실시예에 의한 취약점 진단 방법을 나타내는 순서도이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 즉, 본 발명에서 사용되는 '부'라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '부'는 어떤 역할들을 수행한다. 그렇지만 '부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '부'들로 결합되거나 추가적인 구성요소들과 '부'들로 더 분리될 수 있다.
또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
도1은 본 발명의 일 실시예에 의한 취약점 진단 시스템을 나타내는 개략도이다.
도1을 참조하면, 본 발명의 일 실시예에 의한 취약점 진단 시스템은, 진단장치(100), 클라우드 서버(200) 및 외부서버(300)를 포함할 수 있다.
이하 본 발명의 일 실시예에 의한 취약점 진단 시스템을 설명한다.
진단장치(100)는 진단대상 서버(210)를 진단하여, 진단대상 서버(210)가 제공하는 웹 페이지, 웹 어플리케이션 등의 취약점을 추출할 수 있다. 즉, 진단대상 서버(210)의 하드웨어 또는 소프트웨어의 결함이나 설계상의 허점으로 인하여, 단말장치(1)의 사용자에게 허용된 권한 이상의 동작이나 허용된 범위 이상의 정보 열람, 변조, 유출을 가능하게 하는 약점에 대하여 점검을 수행할 수 있다.
진단장치(100)는 다양한 종류의 취약점에 대한 진단을 수행할 수 있으며, SSRF(Server Side Request Forgery) 취약점, XXE(XML External Entity) 취약점, 명령삽입(command injection) 취약점 등 에 대한 진단을 수행할 수 있다. 여기서 SSRF 공격은 공격자가 서버로 변조된 요청을 전송하여, 서버가 내부망 등으로 악의적인 요청을 보내게 하는 것으로, SSRF 취약점은 SSRF 공격이 허용될 수 있는 웹 페이지 또는 웹 어플리케이션 상의 취약점에 해당한다. 진단장치(100)는 진단대상 서버(210)에 대한 모의공격 등을 수행하여, 진단대상 서버(210)의 취약점들을 추출할 수 있다.
클라우드 서버(200)는 클라우드 컴퓨팅(Cloud Computing)을 제공하는 서버일 수 있다. 클라우드 컴퓨팅은 인터넷 기술을 활용하여 IT 자원을 서비스로 제공하는 컴퓨팅 기술로서, 소프트웨어, 스토리지, 서버, 네트워크 장비 등의 IT 자원을 필요한 만큼 빌려서 사용하고, 서비스 부하에 따라서 실시간 확장성을 지원받으면서 사용한 만큼 비용을 지불하는 기술에 해당한다. 즉, 클라우딩 컴퓨팅은 가상화 기술을 이용하여 물리적 서버에 복수의 가상머신(VM: Virtual Machine)들을 실행할 수 있으며, 각각의 가상머신들은 상이한 운영체제, 서비스 등을 제공하는 가상 데스크탑, 스토리지, 서버들을 각각 구현할 수 있다.
한편, 도1에 도시한 바와 같이, 본 발명의 일 실시예에 의한 클라우드 서버(200)는, 내부에 복수의 진단대상 서버(210) 서버들을 포함할 수 있으며, 각각의 진단대상 서버(210)는 상이한 웹 서비스 등을 제공하는 웹 서버로 동작할 수 있다. 나아가, 실시예에 따라서는, 진단장치(100)를 클라우드 서버(200) 내의 가상머신으로 구현하는 것도 가능하다.
외부서버(300)는 취약점 진단을 위하여, 진단장치(100)가 임의로 설정한 서버일 수 있다. 예를들어, 진단장치(100)는 진단대상서버(210)에 대한 SSRF 모의공격시, 진단대상서버(210)가 외부서버(300)로 접속하도록 유도할 수 있다. 이때, 외부서버(300)는 접속한 진단대상 서버(210)의 접속기록을 생성할 수 있으며, 진단장치(100)는 외부서버(300)의 접속기록을 확인하는 방식으로, 진단대상 서버(210)의 SSRF 취약점을 추출할 수 있다. 또한, XXE 취약점, 명령삽입 취약점에 대한 모의공격의 경우에도, 진단장치(100)는 진단대상서버(210)가 외부서버(300)로 접속하도록 유도할 수 있으며, 외부서버(300)에 나타난 진단대상 서버(210)의 접속기록을 확인하는 방식으로, 진단대상 서버(210)의 취약점들을 추출하는 것이 가능하다.
추가적으로, 외부서버(300)는 진단장치(100)가 수행하는 각각의 취약점 진단에 대한 초기설정을 미리 수행할 수 있다. 실시예에 따라서는, 복수개의 진단장치(100)가 하나의 외부서버(300)를 이용하여 각각 취약점 진단을 수행하거나, 하나의 진단장치(100)가 복수의 진단대상 서버(210)에 대한 취약점 진단을 수행하는 경우가 존재할 수 있다. 이 경우, 외부서버(300)는 취약점 진단을 요청한 각각의 진단장치(100)와, 각각의 진단장치(100)들이 수행한 취약점 진단들을 구별할 필요가 있다.
이를 위하여, 외부서버(300)는 취약점 진단시 진단장치(100)와의 초기설정을 먼저 수행할 수 있으며, 이때 진단장치(100)의 식별정보와, 외부서버(300)가 수행하는 각각의 취약점 진단을 나타내는 진단작업정보를 설정할 수 있다. 여기서, 진단장치(100)의 식별정보는 진단장치(100)의 IP 주소, 호스트 네임 또는 MAC(Media Access Control) 주소 등일 수 있으며, 진단작업정보는 각각의 취약점 진단의 수행순서에 따라 순차적으로 지정되는 일련번호나 문자, 기호 등일 수 있다. 즉, 외부서버(300)는 접속기록 생성시, 대응하는 진단장치(100)의 식별정보와 진단작업정보를 포함하여, 각각의 진단장치(100)와 취약점 진단을 구별할 수 있다.
한편, 실시예에 따라서는, 취약점 진단시 진단장치(100)가 외부서버(300)에 접속하는 등의 경우가 발생할 수 있다. 예를들어, 진단장치(100)가 클라우드 서버(200) 내의 가상머신으로 구현된 경우, 진단장치(100)의 IP 주소 등이 진단대상 서버(210)와 유사하여, 진단대상서버(210)가 외부서버(300)에 접속한 것으로 오탐지되는 등의 경우가 발생할 수 있다. 다만, 외부서버(300)에 진단장치(100)의 IP 주소 등의 식별정보를 미리 저장한 경우에는, 외부서버(300)가 진단장치(100)의 접속시 접속기록에서 제외시킬 수 있으므로, 정확한 취약점 진단을 수행하는 것이 가능하다.
추가적으로, 외부서버(300)가 제공하는 접속기록으로부터 각각의 진단대상서버(210)들의 취약점을 추출할 수 있으므로, 접속기록에 대한 보안은 매우 중요하다. 다만, 외부서버(300)에는 초기설정을 통하여 취약점 진단을 요청한 진단장치(100)의 식별정보가 미리 등록되어 있으므로, 외부서버(300)는 식별정보를 이용하여, 취약점 진단을 요청한 진단장치(100)를 정확하게 구별하는 것이 가능하다. 즉, 외부서버(300)는 접속기록 요청시 식별정보를 이용하여 인증을 수행할 수 있으므로, 보안을 유지하면서 정확하게 접속기록을 제공할 수 있다. 종래에는 SSRF 등의 취약점 진단시, 실시간으로 외부서버를 모니터링하여, 외부서버로의 접속이 존재하는지를 확인하는 방식으로 진단을 수행하였다. 다만, 외부서버로의 접속이 진단대상서버에 의한 것인지를 확인하여야 하며, 진단대상서버에 의한 것이 맞는 경우 진단대상서버의 URL 주소 중 어느 URL 주소와 파라미터에 취약점이 존재하는지를 각각 진단해야하므로, 진단속도가 느린 문제점이 존재하였다.
반면에, 본 발명의 일 실시예에 의한 취약점 진단 시스템은, 진단장치(100)가 진단대상 서버(210)에 포함된 각각의 URL 주소에 대응하는 식별키를 설정하고, 외부서버(300)에 접속기록을 남길 때 각각의 식별키를 함께 기록하도록 하므로, 신속하고 정확하게 진단대상 서버(210)에 대한 취약점을 진단하는 것이 가능하다. 이하, 본 발명의 일 실시예에 의한 진단장치를 설명한다.
도2는 본 발명의 일 실시예에 의한 진단장치를 나타내는 개략도이다.
도2를 참조하면 본 발명의 일 실시예에 의한 진단장치(100)는 초기설정부(110), 진단대상 URL 수신부(120), 식별키 설정부(130), 취약점 진단부(140), 접속기록 확인부(150) 및 취약점 추출부(160)를 포함할 수 있다.
이하 도2를 참조하여 본 발명의 일 실시예에 의한 진단장치(100)를 설명한다.
초기설정부(110)는 외부서버(300)로 진단장치(100)의 식별정보 및 진단대상서버(210)에 대해 수행하는 취약점 진단작업에 대응하는 진단작업정보를 전송할 수 있다. 즉, 초기설정부(110)는 진단대상서버(210)에 대한 취약점 진단을 수행하기 전에, 미리 외부서버(300)로 취약점 진단작업을 등록할 수 있다. 따라서, 외부서버(300)는 초기설정부(110)에 의하여 등록된 식별정보 및 진단작업정보를 이용하여, 각각의 진단장치(100)가 수행하는 취약점 진단작업들을 구별할 수 있다.
여기서, 진단장치(100)의 식별정보는 진단장치(100)의 IP 주소, 호스트 네임 또는 MAC 주소 등일 수 있으며, 진단작업정보는 진단장치(100) 또는 외부서버(300)가 수행하는 취약점 진단의 수행횟수에 따라 순차적으로 지정되는 일련번호나 문자, 기호 등일 수 있다.
한편, 외부서버(300)는 초기설정부(110)가 등록한 진단장치의 식별정보 및 진단작업정보를 이용하여, 진단대상서버(210)의 접속에 대한 오탐지를 방지하고, 접속기록 요청에 대한 인증 등을 수행할 수 있다. 다만, 외부서버(300)에서의 오탐지 방지 및 접속기록 요청에 대한 인증은 앞서 설명하였으므로, 여기서는 구체적인 설명을 생략한다.
진단대상 URL 수신부(120)는 진단대상 서버(210)로부터 추출한 복수의 진단대상 URL(Uniform Resource Locator) 주소를 수신할 수 있다. 진단대상 서버(210)는 웹 서비스 등을 제공하기 위하여 복수의 웹 페이지를 포함할 수 있으며, 각각의 웹 페이지에 대응하는 복수의 URL 주소들이 설정될 수 있다. 단말장치(1)는 진단대상 서버(210)의 URL 주소를 이용하여 진단대상 서버(210)에 접속할 수 있으며, URL 주소에 대응하는 웹 페이지를 진단대상 서버(210)로부터 제공받아 단말장치(1)의 디스플레이부(미도시) 등에 출력할 수 있다.
다만, 진단대상 서버(210)에 대한 SSRF 등의 공격시에는, 진단대상 서버(210)의 URL 주소를 변조하여 입력할 수 있으므로, 진단대상 서버(210)에 포함된 URL 주소들을 수집할 필요가 있다. 즉, 진단대상 서버(210)의 URL 주소를 이용한 외부 공격가능성을 확인하고 취약점을 파악하기 위하여, 진단대상 서버(210)에 포함된 전체 URL 주소를 진단대상 URL 주소로 설정할 수 있다.
여기서, 진단대상 URL 수신부(120)가 직접 진단대상 서버(210)로부터 진단대상 URL 주소를 추출할 수도 있으나, 실시예에 따라서는, 웹 크롤러(web crawler)가 진단대상 서버(210)의 URL 주소를 수집하면, 진단대상 URL 수신부(120)가 웹 크롤러로부터 URL 주소들을 수신하여 진단대상 URL 주소로 설정하는 것도 가능하다.
식별키 설정부(130)는 복수의 진단대상 URL 주소에 대응하는 각각의 식별키를 설정할 수 있다. 여기서, 각각의 진단대상 URL 주소에 대한 개별적인 공격이 가능하므로, 전체 진단대상 URL 주소에 대한 취약점을 확인할 필요가 있다. 이때, 각각의 진단대상 URL 주소 중에서 어느 URL 주소에 취약점이 존재하는지 확인하기 위해서는, 각각의 진단대상 URL 주소에 식별키를 설정할 필요가 있다.
구체적으로, 도4에 도시한 바와 같이, 식별키 설정부(130)는 진단대상 URL 주소에 복수의 도메인을 포함하는 경우, 도메인에 대응하는 각각의 도메인 식별자(domainNo)를 설정하고, 각각의 진단대상 URL 주소를 도메인별로 구별할 수 있다. 예를들어, http://naver.com 의 진단대상 URL 주소를 가지는 진단대상 서버(210)의 경우, "webtoon", "news", "stock"의 세가지 도메인을 포함할 수 있다.
이 경우, 식별키 설정부(130)는 각각의 "webtoon", "news", "stock"의 도메인에 대하여, 도메인 식별자(domainNo)를 1, 2, 3으로 순차적으로 설정할 수 있다. 여기서는, 일련번호를 순차적으로 설정하는 실시예를 제시하였으나, 실시예에 따라서는 각각의 도메인들을 구별하기 해 다양한 숫자나 문자, 기호 등을 활용할 수 있다.
도메인 식별자를 설정한 이후에는, 각각의 "webtoon", "news", "stock"의 도메인에 포함되는 진단대상 URL 주소들을 수집할 수 있으며, 수집된 각각의 진단대상 URL 주소에 대하여 URL 식별자(urlNo)를 설정할 수 있다. 여기서, 도메인별로 수집된 각각의 진단대상 URL 주소에 대하여, 1부터 순차적으로 증가하는 일련번호를 URL 식별자로 설정할 수 있다. 다만, 각각의 도메인은 도메인 식별자로 구별가능하므로, 각 도메인들의 URL 식별자는 1부터 시작하도록 설정할 수 있다.
이후, 식별키 설정부(130)는 도메인 식별자(domainNo)와 URL 식별자(urlNo)를 결합하여, 각각의 진단대상 URL 주소의 식별키로 설정할 수 있다. 예를들어, domainNo=2, urlNo=3인 경우, "http://news.naver.com/page.php?no=5&url=./main"에 대응하는 진단대상 URL 주소를 특정하는 것으로 구분할 수 있다. 실시예에 따라서는, 진단장치(100) 내에 각각의 진단대상 URL 주소에 대응하는 식별키를 저장한 데이터베이스를 포함하는 것도 가능하다.
취약점 진단부(140)는 진단 HTTP(Hypertext transfer Protocol) 요청문을 생성할 수 있으며, 진단 HTTP 요청문을 진단대상 URL 주소에 삽입하여, 진단대상 서버(210)가 외부서버(300)로 접속하도록 모의공격을 수행할 수 있다. 구체적으로, 취약점 진단부(140)는 진단 HTTP 요청문을 진단대상 URL 주소에 포함된 파라미터 중 어느 하나의 파라미터 값으로 치환하여 입력할 수 있다. 여기서, 진단 HTTP 요청문에는 외부서버(300)의 URL 주소와, 진단 HTTP 요청문이 삽입되는 진단대상 URL 주소의 식별키가 포함될 수 있다. 이때, 진단 HTTP 요청문에는 식별키 및 파라미터 명칭을 외부 서버(300) 내에 기록하도록 외부 서버(300)에 요청하는 구문이 포함될 수 있다. 또한, 취약점 진단부(140)는 진단 HTTP 요청문에 진단작업정보를 더 포함하여 외부 서버(300)에 기록하도록 할 수 있다.
한편, 취약점 진단부(140)는 진단대상 URL 주소에 포함된 각각의 파라미터 별로 진단 HTTP 요청문을 생성할 수 있으며, 진단 HTTP 요청문에는 진단 HTTP 요청문이 삽입되는 파라미터에 대응하는 파라미터 명칭을 포함할 수 있다. 즉, 해당 진단 HTTP 요청문이 어떤 파라미터를 대체하여 입력되는 것인지 표시할 수 있으며, 진단대상 URL 주소에 포함된 파라미터가 복수개인 경우, 각각의 파라미터에 대응하는 진단 HTTP 요청문을 생성하여, 대응하는 파라미터에 치환하여 입력할 수 있다.
구체적으로, 도5(a)에 도시한 바와 같이, 진단대상 URL 주소가 존재할 수 있다. 여기서, 진단대상 URL 주소인 "http://webtoon.naver.com/page.php?no=5&url=./main"에 포함된 파라미터는 "no"와 "url"에 해당한다. 이때, "no"에 대한 취약점을 진단하는 경우에는, 도5(c)에 도시한 바와 같이, "no"의 파라미터 값에 진단 HTTP 요청문을 삽입할 수 있다.
이 경우, 진단 HTTP 요청문은, 도5(b)에 도시한 바와 같이 생성할 수 있다. 진단 HTTP 요청문에는 외부서버(300)의 URL 주소인 "http://example_domain.com"이 포함되며, 진단작업정보(a), 식별키(b, c) 및 파라미터 명칭(d)이 더 포함될 수 있다. 즉, "seq=9997"이므로 진단작업정보(a)는 "9997"이고, "domainNo=1"이므로 도메인 식별자(b)는 "1"이며, "urlNo=3"이므로 URL 식별자(c)는 "3"이다. 또한, "paramName=no"이므로 파라미터 명칭(d)은 "no"에 해당한다.
도4 및 도5(a)를 참조하면, 진단대상 URL 주소인 http://webtoon.naver.com/page.php?no=5&url=./main의 도메인은 "webtoon"이고, "webtoon"에 대응하는 도메인 식별자(b)는 "1"이므로, 진단 HTTP 요청문의 "domainNo"는 1로 설정된다. 또한, "http://webtoon.naver.com/page.php?no=5&url=./main"는 "webtoon" 도메인에서 3번째로 수집된 URL 주소이므로, URL 식별자(c)는 "3"에 해당하며, 진단 HTTP 요청문의 "urlNo"는 3으로 설정된다. 한편, 진단대상 URL 주소에 포함된 파라미터는 "no"와 "url"이지만, 여기서는 "no"에 대한 취약점을 진단하므로, 진단 HTTP 요청문의 파라미터 명칭(d)은 "no"에 해당하며, "paramName"은 "no"로 설정된다.
일반적으로, 진단 HTTP 요청문에 외부서버(300)의 URL 주소만을 포함하여도 진단대상 서버(210)가 외부서버로 접속하도록 유도하는 것이 가능하다. 다만, 본 발명의 일 실시예에 의한 취약점 진단부(140)는, 진단 HTTP 요청문 내에 진단작업정보(a), 식별키(b, c) 및 파라미터 명칭(d) 등을 더 포함하도록 할 수 있다. 이 경우, 외부서버(300)의 접속기록 내에 진단 HTTP 요청문이 삽입된 진단작업정보, 진단대상 URL 주소, 파라미터 명칭 등에 대한 정보가 추가적으로 기록될 수 있다. 즉, 진단대상서버(210)를 외부서버(300)로 접속하도록 하는 진단대상 URL 주소, 파라미터 명칭 등이 외부서버(300)의 접속기록에 명확하게 기록되므로, 취약점의 정확한 위치를 특정하는 것이 가능하다.
나아가, 외부서버(300)에 진단작업정보를 더 포함하여 기록하는 경우에는, 취약점 진단 이후 해당 진단작업정보에 대응하는 접속기록을 일괄적으로 추출하는 것도 가능하다. 즉, 취약점을 진단하는 동안 외부 서버(300)를 실시간으로 모니터링하는 대신에, 취약점 진단이 완료된 이후 일괄적으로 취약점들을 추출할 수 있다.
접속기록 확인부(150)는 외부서버(300)로 진단대상 서버(210)의 접속기록을 요청할 수 있다. SSRF 취약점, XXE 취약점, 명령어 삽입 취약점 등의 경우, 진단대상 서버(210)가 각각의 공격에 대응하여 외부서버(300)로 접속하는지를 확인하여, 해당 진단대상 서버(210) 의 취약점의 존재여부를 판별할 수 있다. 따라서, 접속기록 확인부(150)는 외부서버(300)에 접속한 진단대상 서버(210)의 접속기록을 요청할 수 있다.
다만, 접속기록으로부터 진단대상서버(210)의 취약점이 유출될 수 있으므로, 외부서버(300)는 접속기록 요청에 대응하여 사용자 인증을 요청할 수 있다. 이 경우, 접속기록 확인부(150)는 진단장치(100)가 수행한 취약점 진단작업에 대응하는 진단작업정보와 진단장치(100)의 식별정보를 외부서버(300)로 전송할 수 있다. 즉, 접속기록 확인부(150)는 진단장치(100)의 식별정보 및 진단작업정보를 외부서버(300)로 제공하여 사용자 인증을 수행할 수 있으며, 사용자 인증에 성공한 경우, 외부서버(300)로부터 진단작업정보에 대응하는 접속기록을 제공받을 수 있다. 실시예에 따라서는, 외부서버(300)가 도7에 도시한 바와 같이 접속기록을 제공할 수 있으며, 접속기록 확인부(150)는 진단작업정보(seq)를 이용하여, 해당 진단장치(100)가 수행한 취약점 진단에 대응하는 접속기록만을 제공하도록 할 수 있다. 즉, 도7의 경우, 진단작업정보(seq)가 "3"인 접속기록만을 제공하도록 제한한 것일 수 있다.
취약점 추출부(160)는 접속기록에 포함된 식별키를 이용하여, 진단대상 서버(210)의 취약점을 추출할 수 있다. 도6에 도시한 바와 같이, 진단장치(100)는 진단대상 URL 주소에 대한 모의공격을 수행할 수 있으며, 모의공격에 대응하여 진단대상 서버(210)가 외부서버(300)로 접속하는 경우가 존재할 수 있다. 즉, SSRF 등의 취약점이 존재하는 진단대상 URL 주소의 경우, 진단대상 서버(210)를 외부서버(300)에 접속하도록 유도할 수 있다. 도6에서는 URL 식별자(urlNo)가 2, 3, 4인 경우에는 외부서버(300)로 접속하지 않으므로 취약점이 존재하지 않지만, URL 식별자(urlNo)가 1, 5인 경우에는 외부서버(300)로 접속하므로, 취약점이 존재하는 것으로 볼 수 있다.
이 경우, 도7에 도시한 바와 같이, 외부서버(300)로부터 접속기록을 제공받을 수 있다. 여기서, 진단장치(100)가 수행한 취약점 진단의 진단작업정보(seq)는 "3"에 해당하며, 도6에서 수행한 취약점 진단은 "webtoon"도메인에 대한 것이므로, 도메인 식별자(domainNo)는 1로 일정할 수 있다.
도7을 참조하면, 도메인 식별자(domainNo)가 1이고, URL 식별자(urlno)가 1이며, 파라미터 명칭(paramName)이 "no"인 접속기록이 존재하므로, 취약점 추출부(160)는 도메인 식별자가 1이고, URL 식별자가 1인 진단대상 URL 주소 "http://webtoon.naver.com/board.php?menu=notice&no=1" 중에서 "no" 파라미터에 취약점이 존재하는 것으로 판단할 수 있다. 또한, 도메인 식별자가 1, URL 식별자가 5인 진단대상 URL 주소 "http://webtoon.naver.com/page.php?no=5&url=./main" 중에서 "no"와 "url" 파라미터에 각각 취약점이 존재하는 것으로 판단할 수 있다. 즉, 취약점 추출부(160)는 접속기록에 포함된 도메인 식별자, URL 식별자 등의 식별키를 추출할 수 있으며, 식별키에 대응하는 진단대상 URL 주소 및 파라미터를 취약점으로 설정할 수 있다.
한편, 도3에 도시한 바와 같이, 본 발명의 일 실시예에 의한 진단장치(100)는, 프로세서(10), 메모리(40) 등의 물리적인 구성을 포함할 수 있으며, 메모리(40) 내에는 프로세서(10)에 의하여 실행되도록 구성되는 하나 이상의 모듈이 포함될 수 있다. 구체적으로, 하나 이상의 모듈에는, 초기설정모듈, 진단대상 URL 수신모듈, 식별키 설정모듈, 취약점 진단모듈, 접속기록 확인모듈, 취약점 추출모듈 등이 포함될 수 있다.
프로세서(10)는, 다양한 소프트웨어 프로그램과, 메모리(40)에 저장되어 있는 명령어 집합을 실행하여 여러 기능을 수행하고 데이터를 처리하는 기능을 수행할 수 있다. 주변인터페이스부(30)는, 진단장치(100)의 입출력 주변 장치를 프로세서(10), 메모리(40)에 연결할 수 있으며, 메모리 제어기(20)는 프로세서(10)나 진단장치(100)의 구성요소가 메모리(40)에 접근하는 경우에, 메모리 액세스를 제어하는 기능을 수행할 수 있다. 실시예에 따라서는, 프로세서(10), 메모리 제어기(20) 및 주변인터페이스부(30)를 단일 칩 상에 구현하거나, 별개의 칩으로 구현할 수 있다.
메모리(40)는 고속 랜덤 액세스 메모리, 하나 이상의 자기 디스크 저장 장치, 플래시 메모리 장치와 같은 불휘발성 메모리 등을 포함할 수 있다. 또한, 메모리(40)는 프로세서(10)로부터 떨어져 위치하는 저장장치나, 인터넷 등의 통신 네트워크를 통하여 엑세스되는 네트워크 부착형 저장장치 등을 더 포함할 수 있다.
한편, 도3에 도시한 바와 같이, 본 발명의 일 실시예에 의한 진단장치(100)는, 메모리(40)에 운영체제를 비롯하여, 응용프로그램에 해당하는 초기설정모듈, 진단대상 URL 수신모듈, 식별키 설정모듈, 취약점 진단모듈, 접속기록 확인모듈, 취약점 추출모듈 등을 포함할 수 있다. 여기서, 각각의 모듈들은 상술한 기능을 수행하기 위한 명령어의 집합으로, 메모리(40)에 저장될 수 있다.
따라서, 본 발명의 일 실시예에 의한 진단장치(100)는, 프로세서(10)가 메모리(40)에 액세스하여 각각의 모듈에 대응하는 명령어를 실행할 수 있다. 다만, 초기설정모듈, 진단대상 URL 수신모듈, 식별키 설정모듈, 취약점 진단모듈, 접속기록 확인모듈, 취약점 추출모듈은 상술한 초기설정부, 진단대상 URL 수신부, 식별키 설정부, 취약점 진단부, 접속기록 확인부, 취약점 추출부에 각각 대응하므로 여기서는 자세한 설명을 생략한다.
도8은 본 발명의 일 실시예에 의한 취약점 진단 방법을 나타내는 순서도이다.
도8을 참조하면 본 발명의 일 실시예에 의한 취약점 진단 방법은, 초기 설정단계(S10), 진단대상 URL 수신단계(S20), 식별키 설정단계(S30), 취약점 진단단계(S40), 접속기록 확인단계(S50) 및 취약점 추출단계(S60)를 포함할 수 있다. 여기서, 상술한 각 단계들은 진단장치에 의하여 실행될 수 있다.
이하 도8을 참조하여 본 발명의 일 실시예에 의한 취약점 진단 방법을 설명한다.
초기설정단계(S10)에서는, 진단장치의 식별정보 및 진단대상서버에 대해 수행하는 취약점 진단작업에 대응하는 진단작업정보를, 외부서버로 전송할 수 있다. 즉, 진단대상서버에 대한 취약점 진단을 수행하기 전에, 미리 외부서버로 취약점 진단작업을 등록할 수 있다. 따라서, 외부서버는 진단장치에 의하여 등록된 식별정보 및 진단작업정보를 이용하여, 각각의 진단장치가 수행하는 취약점 진단작업들을 구별할 수 있다.
여기서, 진단장치의 식별정보는 진단장치의 IP 주소, 호스트 네임 또는 MAC 주소 등일 수 있으며, 진단작업정보는 진단장치 또는 외부서버가 수행하는 취약점 진단의 수행횟수에 따라 순차적으로 지정되는 일련번호나 문자, 기호 등일 수 있다.
진단대상 URL 수신단계(S20)에서는, 진단대상 서버로부터 추출한 복수의 진단대상 URL(Uniform Resource Locator) 주소를 수신할 수 있다. 여기서, 진단대상 서버에 대한 공격시, 공격자는 진단대상 서버의 URL 주소를 변조하여 입력할 수 있으므로, 공격대상이 될 수 있는 진단대상 서버의 URL 주소들을 수집할 필요가 있다. 즉, 외부 공격가능성을 확인하고 취약점을 파악하기 위하여, 진단대상 서버에 포함된 전체 URL 주소를 진단대상 URL 주소로 설정할 수 있다.
여기서, 진단장치가 직접 진단대상 서버로부터 진단대상 URL 주소를 추출하는 것도 가능하지만, 실시예에 따라서는, 웹 크롤러(web crawler)로부터 진단대상 서버의 URL 주소들을 수신하여 진단대상 URL 주소로 설정하는 것도 가능하다. 웹 크롤러는 진단대상 서버의 URL 주소를 수집하는 기능을 수행하는 것일 수 있다.
식별키 설정단계(S30)에서는, 복수의 진단대상 URL 주소에 대응하는 각각의 식별키를 설정할 수 있다. 즉, 복수의 진단대상 URL 주소 중에서 어느 URL 주소에 취약점이 존재하는지 확인하기 위해서는, 각각의 진단대상 URL 주소에 식별키를 설정할 필요가 있다.
구체적으로, 진단대상 URL 주소에 복수의 도메인을 포함하는 경우, 도메인에 대응하는 각각의 도메인 식별자를 설정하고, 각각의 진단대상 URL 주소를 도메인별로 구별할 수 있다. 여기서, 도메인 식별자는 순차적으로 설정되는 일련번호 등일 수 있다. 이후, 각각의 도메인에 포함되는 진단대상 URL 주소에 대하여 각각 URL 식별자를 설정할 수 있다. 즉, 도메인별로 수집된 각각의 진단대상 URL 주소에 대하여, 1부터 순차적으로 증가하는 일련번호를 URL 식별자로 설정할 수 있다. 여기서, 진단장치는 도메인 식별자와 URL 식별자를 결합하여 각각의 진단대상 URL 주소의 식별키를 설정할 수 있으며, 상기 식별키를 이용하여 진단대상 서버에 포함된 전체 진단대상 URL 주소를 특정할 수 있다.
취약점 진단단계(S40)에서는, 진단 HTTP(Hypertext transfer Protocol) 요청문을 생성할 수 있으며, 진단 HTTP 요청문을 진단대상 URL 주소에 삽입하여, 진단대상 서버가 외부서버로 접속하도록 모의공격을 수행할 수 있다. 구체적으로, 진단장치는 진단 HTTP 요청문을 진단대상 URL 주소에 포함된 파라미터 중 어느 하나의 파라미터 값으로 치환하여 입력할 수 있다. 여기서, 진단 HTTP 요청문에는 외부서버의 URL 주소와, 진단 HTTP 요청문이 삽입되는 진단대상 URL 주소의 식별키가 포함될 수 있다. 이때, 진단 HTTP 요청문에는 식별키 및 파라미터 명칭을 외부 서버 내에 기록하도록 요청하는 구문이 포함될 수 있다. 또한, 진단장치는 진단 HTTP 요청문에 진단작업정보를 더 포함하여 외부 서버에 기록하도록 할 수 있다.
한편, 진단장치는 진단대상 URL 주소에 포함된 각각의 파라미터 별로 진단 HTTP 요청문을 생성할 수 있으며, 진단 HTTP 요청문에는 진단 HTTP 요청문이 삽입되는 파라미터에 대응하는 파라미터 명칭을 포함할 수 있다. 즉, 해당 진단 HTTP 요청문이 어떤 파라미터를 대체하여 입력되는 것인지 표시할 수 있으며, 진단대상 URL 주소에 포함된 파라미터가 복수개인 경우, 각각의 파라미터에 대응하는 진단 HTTP 요청문을 생성하여, 대응하는 파라미터에 치환하여 입력할 수 있다.
여기서, 진단 HTTP 요청문 내에 진단작업정보, 식별키, 파라미터 명칭 등을 더 포함하므로, 외부서버의 접속기록 내에 진단작업정보, 진단대상 URL 주소, 파라미터 명칭 등에 대한 정보를 추가적으로 기록할 수 있다. 즉, 진단대상서버가 외부서버에 접속하도록 하는 진단대상 URL 주소, 파라미터 명칭 등이 외부서버의 접속기록에 명확하게 기록되므로, 취약점의 정확한 위치를 특정하는 것이 가능하다.
나아가, 외부서버에 진단작업정보를 더 포함하여 기록하는 경우에는, 취약점 진단 이후 해당 진단작업정보에 대응하는 접속기록을 일괄적으로 추출하는 것도 가능하다. 즉, 취약점 진단시 외부 서버를 실시간으로 모니터링하는 대신에, 취약점 진단이 완료된 이후 일괄적으로 접속기록을 추출하는 방식으로 취약점 진단을 수행하는 것이 가능하다.
접속기록 확인단계(S50)에서는 외부서버로 진단대상 서버의 접속기록을 요청할 수 있다. 즉, 진단장치는 진단대상서버에 대한 취약점 진단을 수행하기 위하여, 외부서버로 진단대상 서버의 접속기록을 요청할 수 있다.
다만, 접속기록으로부터 진단대상서버의 취약점을 추출하는 것이 가능하므로, 외부서버는 접속기록 요청에 대응하여 사용자 인증을 요청할 수 있다. 즉, 진단장치는 진단장치(100)의 식별정보를 외부서버로 제공하여 사용자 인증을 수행할 수 있으며, 사용자 인증에 성공한 경우, 외부서버로부터 진단작업정보에 대응하는 접속기록을 제공받을 수 있다.
취약점 추출단계(S60)에서는, 접속기록에 포함된 식별키를 이용하여, 진단대상 서버의 취약점을 추출할 수 있다. 진단장치는 진단대상 URL 주소에 대한 공격을 수행할 수 있으며, 취약점이 존재하는 진단대상 URL 주소의 경우, 진단대상 서버를 외부서버에 접속하도록 유도할 수 있다.
이 경우, 접속기록에는 진단대상 URL 주소에 대응하는 식별키와 파라미터 명칭이 포함될 수 있으며, 취약점 추출단계(S60)에서는 식별키에 대응하는 진단대상 URL 주소와 파라미터를 취약점으로 설정할 수 있다.
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 본 발명에 따른 구성요소를 치환, 변형 및 변경할 수 있다는 것이 명백할 것이다.
1: 단말장치 100: 진단장치
110: 초기설정부 120: 진단대상 URL 수신부
130: 식별키 설정부 140: 취약점 진단부
150: 접속기록 확인부 160: 취약점 추출부
200: 클라우드 서버 210: 진단대상서버
300: 외부서버
S10: 초기설정단계 S20: 진단대상 URL 수신단계
S30: 식별키 설정단계 S40: 취약점 진단단계
S50: 접속기록 확인단계 S60: 취약점 추출단계

Claims (14)

  1. 진단대상서버에 대한 취약점을 진단하는 진단장치의 취약점 진단방법에 있어서,
    진단대상 서버로부터 추출한 복수의 진단대상 URL(Uniform Resource Locator) 주소를 수신하는 진단대상 URL 수신단계;
    상기 복수의 진단대상 URL 주소에 대응하는 각각의 식별키를 설정하는 식별키 설정단계;
    외부 서버의 URL 주소 및 상기 식별키를 포함하는 진단 HTTP(hypertext transfer protocol) 요청문을 상기 진단대상 URL 주소에 삽입하여, 상기 진단대상 서버가 상기 외부 서버로 접속하도록 모의공격을 수행하는 취약점 진단단계;
    상기 외부서버로 상기 진단대상 서버의 접속기록을 요청하는 접속기록 확인단계; 및
    상기 접속기록에 포함된 상기 식별키를 이용하여, 상기 진단대상 서버의 취약점을 추출하는 취약점 추출단계를 포함하는 것으로,
    상기 진단 HTTP 요청문은
    상기 식별키를 상기 외부 서버의 접속기록 내에 기록하도록, 상기 외부 서버에 요청하는 구문을 포함하는 것을 특징으로 하는 취약점 진단방법.
  2. 제1항에 있어서,
    상기 외부서버로 상기 진단장치의 식별정보 및 상기 진단대상서버에 대한 취약점 진단작업에 대응하는 진단작업정보를 전송하는 초기설정단계를 더 포함하는 것을 특징으로 하는 취약점 진단방법.
  3. 제1항에 있어서, 상기 진단대상 URL 수신단계는
    상기 진단대상 서버에 접속하여 상기 진단대상 URL 주소를 수집하는 웹 크롤러(web crawler)로부터 상기 진단대상 URL 주소를 수신하는 것을 특징으로 하는 취약점 진단방법.
  4. 제1항에 있어서, 상기 식별키 설정단계는
    상기 진단대상 URL 주소에 복수의 도메인을 포함하는 경우, 상기 도메인에 대응하는 각각의 도메인 식별자를 설정하고, 상기 도메인에 포함된 각각의 진단대상 URL 주소들의 URL 식별자를 설정하며, 상기 도메인 식별자 및 URL 식별자를 결합하여 상기 진단대상 URL 주소의 식별키로 설정하는 것을 특징으로 하는 취약점 진단방법.
  5. 제1항에 있어서, 상기 취약점 진단단계는
    상기 진단 HTTP 요청문을 상기 진단대상 URL 주소에 포함된 파라미터 중 어느 하나의 파라미터 값으로 치환하여 입력하는 것을 특징으로 하는 취약점 진단방법.
  6. 제5항에 있어서, 상기 취약점 진단단계는
    상기 진단대상 URL 주소에 포함된 각각의 파라미터 별로 상기 진단 HTTP 요청문을 생성하며, 상기 진단 HTTP 요청문에는 상기 진단 HTTP 요청문이 삽입되는 파라미터에 대응하는 파라미터 명칭을 포함하는 것을 특징으로 하는 취약점 진단방법.
  7. 제5항에 있어서, 상기 취약점 진단단계는
    상기 진단대상 URL 주소에 포함된 파라미터가 복수개인 경우, 각각의 파라미터에 대응하는 상기 진단 HTTP 요청문을 각각 치환하여 입력하는 것을 특징으로 하는 취약점 진단방법.
  8. 제6항에 있어서, 상기 진단 HTTP 요청문은
    상기 파라미터 명칭을 상기 외부 서버의 접속기록 내에 기록하도록, 상기 외부 서버에 요청하는 구문을 더 포함하는 것을 특징으로 하는 취약점 진단방법.
  9. 제8항에 있어서, 상기 진단 HTTP 요청문은
    상기 진단대상서버에 대한 취약점 진단작업에 대응하는 진단작업정보를 더 포함하며, 상기 진단작업정보를 더 포함하여 상기 외부 서버에 기록하도록 하는 것을 특징으로 하는 취약점 진단방법.
  10. 제2항에 있어서, 상기 접속기록 확인단계는
    상기 진단장치의 식별정보 및 진단작업정보를 이용하여 사용자 인증을 수행하고, 상기 진단작업정보에 대응하는 접속기록을 제공받는 것을 특징으로 하는 취약점 진단방법.
  11. 제1항에 있어서, 상기 취약점 추출단계는
    상기 접속기록에 포함된 상기 식별키를 추출하고, 상기 식별키에 대응하는 진단대상 URL 주소 및 파라미터를 상기 취약점으로 설정하는 것을 특징으로 하는 취약점 진단방법.
  12. 하드웨어와 결합되어 제1항 내지 제11항 중 어느 한 항의 취약점 진단방법을 수행하기 위하여 매체에 저장된 컴퓨터 프로그램.
  13. 진단대상 서버로부터 추출한 복수의 진단대상 URL(Uniform Resource Locator) 주소를 수신하는 진단대상 URL 수신부;
    상기 복수의 진단대상 URL 주소에 대응하는 각각의 식별키를 설정하는 식별키 설정부;
    외부 서버의 URL 주소 및 상기 식별키를 포함하는 진단 HTTP(hypertext transfer protocol) 요청문을 상기 진단대상 URL 주소에 삽입하여, 상기 진단대상 서버가 상기 외부 서버로 접속하도록 모의공격을 수행하는 취약점 진단부;
    상기 외부서버로 상기 진단대상 서버의 접속기록을 요청하는 접속기록 확인부; 및
    상기 접속기록에 포함된 상기 식별키를 이용하여, 상기 진단대상 서버의 취약점을 추출하는 취약점 추출부를 포함하는 것으로,
    상기 진단 HTTP 요청문은
    상기 식별키를 상기 외부 서버의 접속기록 내에 기록하도록, 상기 외부 서버에 요청하는 구문을 포함하는 것을 특징으로 하는 진단장치.
  14. 프로세서; 및
    상기 프로세서에 커플링된 메모리를 포함하는 것으로서,
    상기 메모리는 상기 프로세서에 의하여 실행되도록 구성되는 하나 이상의 모듈을 포함하고,
    상기 하나 이상의 모듈은,
    진단대상 서버로부터 추출한 복수의 진단대상 URL(Uniform Resource Locator) 주소를 수신하고,
    상기 복수의 진단대상 URL 주소에 대응하는 각각의 식별키를 설정하며,
    외부 서버의 URL 주소 및 상기 식별키를 포함하는 진단 HTTP(hypertext transfer protocol) 요청문을 상기 진단대상 URL 주소에 삽입하여, 상기 진단대상 서버가 상기 외부 서버로 접속하도록 모의공격을 수행하고,
    상기 외부서버로 상기 진단대상 서버의 접속기록을 요청하며,
    상기 접속기록에 포함된 상기 식별키를 이용하여, 상기 진단대상 서버의 취약점을 추출하는,
    명령어를 포함하는 것으로,
    상기 진단 HTTP 요청문은
    상기 식별키를 상기 외부 서버의 접속기록 내에 기록하도록, 상기 외부 서버에 요청하는 구문을 포함하는 것을 특징으로 하는 진단장치.
KR1020190036360A 2019-03-28 2019-03-28 취약점 진단방법 및 이를 위한 진단장치 KR102231726B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190036360A KR102231726B1 (ko) 2019-03-28 2019-03-28 취약점 진단방법 및 이를 위한 진단장치
US16/830,604 US11363054B2 (en) 2019-03-28 2020-03-26 Apparatus and method for analyzing security vulnerabilities

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190036360A KR102231726B1 (ko) 2019-03-28 2019-03-28 취약점 진단방법 및 이를 위한 진단장치

Publications (2)

Publication Number Publication Date
KR20200114487A KR20200114487A (ko) 2020-10-07
KR102231726B1 true KR102231726B1 (ko) 2021-03-25

Family

ID=72604217

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190036360A KR102231726B1 (ko) 2019-03-28 2019-03-28 취약점 진단방법 및 이를 위한 진단장치

Country Status (2)

Country Link
US (1) US11363054B2 (ko)
KR (1) KR102231726B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102445505B1 (ko) * 2021-02-16 2022-09-20 충북대학교 산학협력단 메신저의 챗봇을 이용한 웹 애플리케이션 취약점 스캐너 시스템 및 방법
KR102339351B1 (ko) * 2021-03-10 2021-12-14 김국영 구글 해킹 취약점 자동 검색 장치 및 그 방법
CN113225379A (zh) * 2021-03-31 2021-08-06 北京三快在线科技有限公司 一种http请求消息的发送方法及装置
US11777908B1 (en) * 2021-06-24 2023-10-03 Gen Digital Inc. Protecting against a tracking parameter in a web link
CN114157452A (zh) * 2021-11-12 2022-03-08 湖北天融信网络安全技术有限公司 一种基于http连接平台的xxe漏洞的检测方法及系统
CN114301673A (zh) * 2021-12-28 2022-04-08 上海识装信息科技有限公司 一种漏洞检测方法、装置、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101424504B1 (ko) * 2012-12-26 2014-08-01 주식회사 윈스 포지티브 방식을 이용한 통합보안관제시스템

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100332401A1 (en) * 2009-06-30 2010-12-30 Anand Prahlad Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites
KR101200906B1 (ko) * 2011-04-27 2012-11-13 (주)소만사 네트워크 기반 고성능 유해사이트 차단 시스템 및 방법
ES2755780T3 (es) * 2011-09-16 2020-04-23 Veracode Inc Análisis estático y de comportamiento automatizado mediante la utilización de un espacio aislado instrumentado y clasificación de aprendizaje automático para seguridad móvil
US9853964B2 (en) * 2012-11-27 2017-12-26 Robojar Pty Ltd System and method for authenticating the legitimacy of a request for a resource by a user
US10182068B2 (en) * 2014-11-26 2019-01-15 Entit Software Llc Determine vulnerability using runtime agent and network sniffer
KR101885615B1 (ko) * 2016-07-19 2018-08-06 주식회사 스패로우 공격 문자열 생성 방법 및 장치
US10579803B1 (en) * 2016-11-17 2020-03-03 Jpmorgan Chase Bank, N.A. System and method for management of application vulnerabilities
US10454969B2 (en) * 2017-07-17 2019-10-22 Sap Se Automatic generation of low-interaction honeypots
US10747881B1 (en) * 2017-09-15 2020-08-18 Palo Alto Networks, Inc. Using browser context in evasive web-based malware detection
US10846410B2 (en) * 2017-12-21 2020-11-24 Microsoft Technology Licensing, Llc Automated fuzzing based on analysis of application execution flow
WO2019152710A1 (en) * 2018-01-31 2019-08-08 Aon Risk Consultants, Inc. System and methods for vulnerability assessment and provisioning of related services and products for efficient risk suppression
US10931702B2 (en) * 2018-04-24 2021-02-23 Cyberfortress, Inc. Vulnerability profiling based on time series analysis of data streams

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101424504B1 (ko) * 2012-12-26 2014-08-01 주식회사 윈스 포지티브 방식을 이용한 통합보안관제시스템

Also Published As

Publication number Publication date
KR20200114487A (ko) 2020-10-07
US20200314136A1 (en) 2020-10-01
US11363054B2 (en) 2022-06-14

Similar Documents

Publication Publication Date Title
KR102231726B1 (ko) 취약점 진단방법 및 이를 위한 진단장치
US11138095B2 (en) Identity propagation through application layers using contextual mapping and planted values
KR101001132B1 (ko) 웹 어플리케이션의 취약성 판단 방법 및 시스템
CN108989355B (zh) 一种漏洞检测方法和装置
EP2987110B1 (en) Unused parameters of application under test
Zhang et al. SRFuzzer: an automatic fuzzing framework for physical SOHO router devices to discover multi-type vulnerabilities
CN109039987A (zh) 一种用户账户登录方法、装置、电子设备和存储介质
KR20130126251A (ko) 웹 서비스 모니터링 시스템 및 방법
RU2697950C2 (ru) Система и способ выявления скрытого поведения расширения браузера
CN110943984B (zh) 一种资产安全保护方法及装置
CN113868659B (zh) 一种漏洞检测方法及系统
CN112115475A (zh) 越权漏洞的检测方法、装置、存储介质及计算机设备
CN114003794A (zh) 资产收集方法、装置、电子设备和介质
CN113206850B (zh) 恶意样本的报文信息获取方法、装置、设备及存储介质
CN113868669A (zh) 一种漏洞检测方法及系统
KR101658641B1 (ko) 하드웨어 기반의 커널 코드 삽입 공격 탐지 장치 및 그 방법
KR102433386B1 (ko) 취약점 진단방법 및 이를 위한 진단장치
KR102247073B1 (ko) Url 주소 판별장치 및 url 주소 판별방법
CN113868670A (zh) 一种漏洞检测流程检验方法及系统
CN110995738B (zh) 暴力破解行为识别方法、装置、电子设备及可读存储介质
KR102415833B1 (ko) 취약점 진단방법 및 이를 위한 진단장치
Carter Security Analysis of a Beckhoff CX-9020 Programmable Logic Controller
CN114357460A (zh) 漏洞检测方法、装置、设备及存储介质
CN117974322A (zh) 资产的扫描方法、装置、计算机设备及存储介质
CN114363006A (zh) 基于WinRM服务的防护方法及装置

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right