KR20180107932A - 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치, 방법 및 컴퓨터 프로그램 - Google Patents

소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치, 방법 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR20180107932A
KR20180107932A KR1020170036876A KR20170036876A KR20180107932A KR 20180107932 A KR20180107932 A KR 20180107932A KR 1020170036876 A KR1020170036876 A KR 1020170036876A KR 20170036876 A KR20170036876 A KR 20170036876A KR 20180107932 A KR20180107932 A KR 20180107932A
Authority
KR
South Korea
Prior art keywords
program
malicious
target network
network program
behavior graph
Prior art date
Application number
KR1020170036876A
Other languages
English (en)
Other versions
KR101966514B1 (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 KR1020170036876A priority Critical patent/KR101966514B1/ko
Priority to US15/811,248 priority patent/US20180278635A1/en
Publication of KR20180107932A publication Critical patent/KR20180107932A/ko
Application granted granted Critical
Publication of KR101966514B1 publication Critical patent/KR101966514B1/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/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • G06F17/30598
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • H04L43/045Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/42Centralised routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • 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/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Computational Linguistics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 소프트웨어 정의 네트워크에서 발생하는 대상 네트워크 프로그램의 행위 그래프의 특징을 추출하여 기계 학습을 적용하고, 대상 네트워크 프로그램을 클러스터링하여 악성 여부를 판단하는 장치, 방법 및 컴퓨터 프로그램에 관한 것으로서, 악성 프로그램들이 설치되기 이전에 악성 여부를 탐지하여 소프트웨어 정의 네트워크의 보안성 및 안정성을 향상시킬 수 있다.

Description

소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치, 방법 및 컴퓨터 프로그램{APPARATUS, METHOD AND COMPUTER PROGRAM FOR MALWARE DETECTION OF SOFTWARE DEFINED NETWORK}
본 발명은 악성 프로그램을 탐지하는 장치, 방법 및 컴퓨터 프로그램에 관한 것으로서, 보다 구체적으로 본 발명은 소프트웨어 정의 네트워크에서 발생하는 대상 네트워크 프로그램의 행위 그래프를 도출하고, 기계 학습을 적용하여 대상 네트워크 프로그램의 클러스터링을 통해 악성 여부를 판단하는 기술에 관한 것이다.
소프트웨어 정의 네트워킹(Software Defined Networking, 이하 SDN이라 칭함)은 네트워크의 모든 네트워크 장비를 지능화된 중앙관리시스템에 의해 관리하는 기술을 의미한다. SDN 기술에서는 기존 하드웨어 형태의 네트워크 장비에서 자체적으로 수행하는 패킷 처리와 관련된 제어 동작을 소프트웨어 형태의 컨트롤러가 대신하여 처리함으로써, 기존의 네트워크 구조보다 다양한 기능을 개발하고 부여할 수 있다.
SDN 시스템은 기존의 네트워크 환경과는 다르게 논리적으로 중앙 집중화된 컨트롤 플레인(Control plane)이 존재하고, 그 상에 다양한 네트워크 프로그램들이 구동된다. 이러한 시스템 구조에서 악성 프로그램에 의해 전체 시스템에 악영향을 미칠 수 있다.
이하에서는, 도 1을 참조하여 SDN 시스템에 악영향을 미치는 예에 대하여 상세히 설명하고자 한다.
도 1은 기존의 SDN 환경에서의 악성 프로그램에 의해 악영향이 발생되는 예를 도시한 것이다.
도 1을 참조하면, SDN 환경에서의 악성 프로그램(Malicious App)은 SDN 컨트롤러(SDN Controller)과 통신(1)하여 호스트 A에서 호스트 B로의 데이터 플로우(DataFlow)을 파악(2)할 수 있다.
악성 프로그램은 SDN 컨트롤러를 통해 데이터 플레인(Data plane)에서 패킷을 처리하는 오픈플로우 스위치(OpenFlow Switch)의 기능을 임의로 제어(3)하여 호스트 A에서 호스트 B로의 데이터를 차단(4)할 수 있다.
여기서, 오픈플로우 스위치는 패킷의 송수신 기능만을 담당하게 되고, 패킷의 경로 설정, 관리 및 제어는 모두 SDN 컨트롤러에서 이루어진다. 이에 따라서, SDN 환경에서의 악성 프로그램은 SDN 컨트롤러를 통해 SDN 환경 전체에 악영향을 미칠 수 있다.
도 1에 도시된 SDN 환경에서의 플로우 테이블(Flow Table)을 살펴보면, 호스트 A에서 호스트 C로의 데이터 전송은 정상적으로 이루어지는 반면, 호스트 A에서 호스트 B로의 데이터 전송이 차단(drop)되는 것을 확인할 수 있다.
도 1에 도시된 바와 같이 기존의 SDN 환경에서의 네트워크 프로그램들은 어떠한 제약이 없이 구동이 가능하다. 그러므로, 네트워크 관리자는 프로그램을 설치하기 이전에 해당 프로그램에 대한 악성 또는 결백의 판단이 필요하다.
다만, 현재 SDN 환경에서는 해당 프로그램의 악성 프로그램 또는 결백한 프로그램을 구분하는 악성 여부를 판단하는 시스템이 존재하지 않으며, 그 어떠한 기준도 정립되어 있지 않다.
한국공개특허 제10―2016―0145373호(2016.12.30 공개), "소프트웨어 정의 네트워크에서 취약점을 분석하는 방법, 장치 및 컴퓨터 프로그램" 한국등록특허 제10―1491699호(2015.02.03 등록), "소프트웨어 정의 네트워킹에서 제어 장치 및 그 동작 방법"
본 발명은 악성 프로그램들이 설치되기 이전에 악성 여부를 탐지하여 소프트웨어 정의 네트워크의 보안성 및 안정성을 향상시킬 수 있는 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치, 방법 및 컴퓨터 프로그램을 제공하고자 한다.
또한, 본 발명은 기존의 SDN 시스템 구조의 변화 없이 악성 프로그램을 탐지하여 악성 프로그램의 설치 및 실행을 방지할 수 있는 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치, 방법 및 컴퓨터 프로그램을 제공하고자 한다.
또한, 본 발명은 하나의 네트워크 프로그램을 수초 이내에 분석 및 탐지하여 악성 여부를 판단함으로써, 네트워크 관리자의 편의성 및 효율성을 향상시킬 수 있는 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치, 방법 및 컴퓨터 프로그램을 제공하고자 한다.
본 발명의 실시예에 따른 SDN(Software Defined Networking)에서의 악성 프로그램을 탐지하는 장치는 소프트웨어 정의 네트워크에서 발생하는 대상 네트워크 프로그램의 소스 코드를 분석하여 보안성 연관 API(Application Programming Interface)를 도출하고, 상기 도출된 보안성 연관 API로부터 상기 대상 네트워크 프로그램의 행위 그래프를 도출하는 행위 그래프 도출부 및 상기 도출된 행위 그래프로부터 상기 대상 네트워크 프로그램을 특징화하고, 기계 학습(machine learning)이 적용된 상기 대상 네트워크 프로그램을 클러스터링(Clustering)하여 악성 여부를 판단하는 제어부를 포함한다.
상기 행위 그래프 도출부는 상기 대상 네트워크 프로그램의 소스 코드를 분석하여 상기 대상 네트워크 프로그램이 사용하는 API(Application Programming Interface) 중 상기 보안성 연관 API의 사용을 탐색할 수 있다.
상기 행위 그래프 도출부는 상기 대상 네트워크 프로그램의 제어 플로우(Control Flow) 및 데이터 플로우(Data Flow)을 파악하여 소스 코드를 분석하는 정적 분석(static analysis)을 수행할 수 있다.
상기 행위 그래프 도출부는 상기 분석 결과를 이용하여 상기 보안성 연관 API의 사용 관계에 따른 실행 순서를 포함하는 상기 행위 그래프를 도출할 수 있다.
상기 제어부는 상기 도출된 행위 그래프에 기반하여 보안성 연관 API 호출의 빈도(Frequency) 및 순서(Sequence)와, 소프트웨어 정의 네트워크에서의 컨트롤러와 상기 대상 네트워크 프로그램의 노스바운드 상호작용(Northbound interactiveness)을 특징화할 수 있다.
상기 제어부는 상기 보안성 연관 API 호출의 빈도(Frequency) 및 순서(Sequence)와, 상기 노스바운드 상호작용(Northbound interactiveness)을 포함하는 상기 대상 네트워크 프로그램의 특징에 기계 학습(machine learning)을 적용하여 악성(Malicious) 또는 결백(Benign)의 카테고리로 클러스터링할 수 있다.
상기 제어부는 기 설정된 분류 기준에 따른 카테고리가 저장되어 유지되는 데이터베이스부를 기반으로 상기 기계 학습이 적용된 상기 대상 네트워크 프로그램을 상기 악성 또는 결백의 카테고리로 분류할 수 있다.
상기 제어부는 기 설정된 분류 기준 및 확률과, 상기 도출된 행위 그래프를 비교하여 클러스터링하고, 상기 도출된 행위 그래프를 반영하여 상기 데이터베이스부에 적용할 수 있다.
상기 제어부는 상기 클러스터링에 기초하여 상기 대상 네트워크 프로그램의 악성(Malicious) 또는 결백(Benign)의 카테고리에서의 TP(True Positive), FP(False Positive), TN(True Negative) 및 FN(False Negative) 중 적어도 어느 하나 이상의 분류를 판단할 수 있다.
본 발명의 다른 실시예에 따른 SDN(Software Defined Networking)에서의 악성 프로그램을 탐지하기 위하여 매체에 저장된 어플리케이션은 소프트웨어 정의 네트워크에서 발생하는 대상 네트워크 프로그램의 소스 코드를 분석하여 보안성 연관 API를 도출하고, 상기 도출된 보안성 연관 API로부터 상기 대상 네트워크 프로그램의 행위 그래프를 도출하는 기능 및 상기 도출된 행위 그래프로부터 상기 대상 네트워크 프로그램을 특징화하고, 기계 학습(machine learning)이 적용된 상기 대상 네트워크 프로그램을 클러스터링(Clustering)하여 악성 여부를 판단하는 기능을 수행한다.
본 발명의 실시예에 따른 SDN(Software Defined Networking)에서의 악성 프로그램을 탐지하는 방법은 소프트웨어 정의 네트워크에서 발생하는 대상 네트워크 프로그램의 소스 코드를 분석하여 보안성 연관 API(Application Programming Interface)를 도출하고, 상기 도출된 보안성 연관 API로부터 상기 대상 네트워크 프로그램의 행위 그래프를 도출하는 단계, 상기 도출된 행위 그래프로부터 상기 대상 네트워크 프로그램을 특징화하는 단계 및 상기 대상 네트워크 프로그램의 특징에 적용되는 기계 학습(machine learning) 결과를 클러스터링(Clustering)하여 악성 여부를 판단하는 단계를 포함한다.
상기 행위 그래프를 도출하는 단계는 상기 대상 네트워크 프로그램의 소스 코드를 분석하여 상기 대상 네트워크 프로그램이 사용하는 API(Application Programming Interface) 중 상기 보안성 연관 API의 사용을 탐색하는 단계일 수 있다.
상기 행위 그래프를 도출하는 단계는 상기 대상 네트워크 프로그램의 제어 플로우(Control Flow) 및 데이터 플로우(Data Flow)을 파악하여 소스 코드를 분석하는 정적 분석(static analysis)을 수행하는 단계일 수 있다.
상기 행위 그래프를 도출하는 단계는 상기 분석 결과를 이용하여 상기 보안성 연관 API의 사용 관계에 따른 실행 순서를 포함하는 상기 행위 그래프를 도출하는 단계일 수 있다.
상기 대상 네트워크 프로그램을 특징화하는 단계는 상기 도출된 행위 그래프에 기반하여 보안성 연관 API 호출의 빈도(Frequency) 및 순서(Sequence)와, 소프트웨어 정의 네트워크에서의 컨트롤러와 상기 대상 네트워크 프로그램의 노스바운드 상호작용(Northbound interactiveness)을 특징화하는 단계일 수 있다.
상기 악성 여부를 판단하는 단계는 상기 보안성 연관 API 호출의 빈도(Frequency) 및 순서(Sequence)와, 상기 노스바운드 상호작용(Northbound interactiveness)을 포함하는 상기 대상 네트워크 프로그램의 특징에 기계 학습(machine learning)을 적용하여 악성(Malicious) 또는 결백(Benign)의 카테고리로 클러스터링하는 단계일 수 있다.
또한, 상기 악성 여부를 판단하는 단계는 상기 클러스터링에 기초하여 상기 대상 네트워크 프로그램의 악성(Malicious) 또는 결백(Benign)의 카테고리에서의 TP(True Positive), FP(False Positive), TN(True Negative) 및 FN(False Negative) 중 적어도 어느 하나 이상의 분류를 판단하는 단계일 수 있다.
본 발명의 실시예에 따르면, 악성 프로그램들이 설치되기 이전에 악성 여부를 탐지하여 소프트웨어 정의 네트워크의 보안성 및 안정성을 향상시킬 수 있다.
또한, 본 발명의 실시예에 따르면, 기존의 SDN 시스템 구조의 변화 없이 악성 프로그램을 탐지하여 악성 프로그램의 설치 및 실행을 방지할 수 있다.
또한, 본 발명의 실시예에 따르면, 하나의 네트워크 프로그램을 수초 이내에 분석 및 탐지하여 악성 여부를 판단함으로써, 네트워크 관리자의 편의성 및 효율성을 향상시킬 수 있다.
도 1은 기존의 SDN 환경에서의 악성 프로그램에 의해 악영향이 발생되는 예를 도시한 것이다.
도 2는 본 발명의 실시예에 따른 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치의 구성을 나타내는 블록도를 도시한 것이다.
도 3은 본 발명의 실시예에 따른 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치의 실행 과정을 도식화한 것이다.
도 4a 내지 도 4c는 본 발명의 실시예에 따른 클러스터링을 위한 대상 네트워크 프로그램의 특징화 예를 도시한 것이다.
도 5는 본 발명의 실시예에 따른 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 방법의 흐름도를 도시한 것이다.
이하, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 또한, 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
또한, 본 명세서에서 사용되는 용어(terminology)들은 본 발명의 바람직한 실시예를 적절히 표현하기 위해 사용된 용어들로서, 이는 시청자, 운용자의 의도 또는 본 발명이 속하는 분야의 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
앞서 설명한 바와 같이 SDN 네트워크는 종래의 하드웨어 기반의 네트워크와 전혀 상이하게 구현된다. 따라서, 종래의 하드웨어 형태의 네트워크에서의 악성 프로그램을 탐지하는 기법들은 SDN 네트워크에는 적용될 수 없다.
나아가 현재는 SDN의 시작 단계이기 때문에, SDN 네트워크에서 발생할 수 있는 악성 프로그램의 종류 및 형태와, SDN 네트워크에서 발생되는 악성 프로그램에 의한 어떤 피해가 발생할 수 있는지에 대한 정보가 구조화 및/또는 특징화(systematized and/or characterized)되어 축적되어 있지 않다.
따라서 SDN 네트워크에서의 악성 프로그램을 탐지하기 위해서는 악성 프로그램의 종류 및 형태와 임의의 공격 시나리오에 대한 테스트 모듈을 각각 개발해야 한다. 나아가 테스트 및 관리는 관리자가 직접 네트워크 프로그램을 분석해야 하므로 네트워크의 안전성 및 보안성에 의구심을 가질 수 있다.
본 발명은 상기와 같은 문제를 해결하기 위한 것이다. 본 발명은 SDN 네트워크에서 발생할 수 있는 악성 프로그램의 침입을 미리 탐지할 수 있는 표준화된 프레임워크를 제안한다.
도 2는 본 발명의 실시예에 따른 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치의 구성을 나타내는 블록도를 도시한 것이다.
도 2를 참조하면, 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치(200)는 소프트웨어 정의 네트워크에서 발생하는 대상 네트워크 프로그램의 행위 그래프의 특징을 추출하여 기계 학습을 적용하고, 대상 네트워크 프로그램을 클러스터링하여 악성 여부를 판단한다.
이에 따른, 본 발명의 실시예에 따른 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치(200)는 행위 그래프 도출부(210) 및 제어부(220)를 포함한다.
행위 그래프 도출부(210)는 SDN(Software Defined Networking)에서 발생하는 대상 네트워크 프로그램의 소스 코드를 분석하여 보안성 연관 API(Application Programming Interface)를 도출하고, 도출된 보안성 연관 API로부터 대상 네트워크 프로그램의 행위 그래프를 도출한다.
행위 그래프 도출부(210)는 대상 네트워크 프로그램의 소스 코드를 분석하여 대상 네트워크 프로그램이 사용하는 API 중 보안성 연관 API의 사용을 탐색할 수 있다.
예를 들면, 행위 그래프 도출부(210)는 대상 네트워크 프로그램이 사용하는 인터페이스(API)를 도출할 수 있으며, 이때 모든 API들 중 탐지 시스템의 정확도를 높이기 위한 보안성 연관 API들(security―sensitive APIs)의 사용만을 탐색하여 도출할 수 있다.
상기 보안성 연관 API는 SDN 시스템에서 중요한 자산(asset)을 제어할 수 있는 노스바운드 API(Northbound API)일 수 있다. 여기서, 상기 중요한 자산은 어플리케이션(Application), 컨트롤러(Controller), 장치(Device), 플로우(Flow), 호스트(Host), 인텐트(Intent), 링크(Link), 오픈플로우(OpenFlow), 패킷(Packet), 라우팅(Routing), 토폴로지(Topology) 및 사용자(User) 등을 포함할 수 있다.
행위 그래프 도출부(210)는 보안성 연관 API의 제어 플로우(Control Flow) 및 데이터 플로우(Data Flow)을 파악하여 소스 코드를 분석하는 정적 분석(static analysis)을 수행할 수 있다.
예를 들면, SDN 시스템에서의 네트워크 프로그램은 API를 활용하여 플로우 규칙을 설치함으로써 네트워크 동작을 제어할 수 있다. 이에 따라서, 행위 그래프 도출부(210)는 명확한 구별이 없는 악성(Malicious) 프로그램과 결백한(Benign) 프로그램을 보다 정확히 파악하기 위해 소스 코드를 분석하는 정적 분석을 사용할 수 있다.
이후, 행위 그래프 도출부(210)는 분석 결과를 이용하여 보안성 연관 API의 사용 관계에 따른 실행 순서를 포함하는 행위 그래프를 도출할 수 있다.
예를 들면, 행위 그래프 도출부(210)는 정적 분석을 통한 정적 데이터 플로우(static data―flow)의 분석 결과를 이용하여 적어도 두 개의 보안성 연관 API 호출간의 데이터 종속성(data dependency)을 행위 그래프의 가장자리로 형성하고, 보안성 연관 API 간의 사용 관계에 따른 실행 순서 및 고유 ID를 포함하여 행위 그래프를 도출할 수 있다.
이에 따라서, 본 발명의 실시예에 따른 행위 그래프는 기존의 행위 그래프(traditional behavior graphs)와 비교하여 거짓 에지(false edges)를 포함할 가능성이 적다.
제어부(220)는 도출된 행위 그래프로부터 대상 네트워크 프로그램을 특징화하고, 기계 학습(machine learning)이 적용된 대상 네트워크 프로그램을 클러스터링(Clustering)하여 악성 여부를 판단한다.
예를 들면, 제어부(220)는 도출된 행위 그래프에 기반하여 보안성 연관 API 호출의 빈도(Frequency) 및 순서(Sequence)와, 소프트웨어 정의 네트워크에서의 컨트롤러와 대상 네트워크 프로그램의 노스바운드 상호작용(Northbound interactiveness)을 특징화할 수 있다.
보다 구체적으로 제어부(220)는 도출된 행위 그래프 내의 모든 노드를 탐색하여 보안성 연관 API 호출의 빈도를 도출할 수 있다. 실시예에 따라서, 제어부(220)는 각 호출의 의미를 고려하여 API 호출의 빈도를 도출할 수 있으며, 예를 들어 플로우 클래스(Flow class)에 속하는 API 호출의 수를 결합하여 상기 API 호출의 빈도를 도출할 수 있다.
또한, 제어부(220)는 도출된 행위 그래프 내의 보안성 연관 API 호출의 순서를 도출할 수 있다. 실시예에 따라서, 제어부(220)는 보안성 연관 API 중 임의의 API 호출 시퀀스와 또 다른 API 호출 시퀀스 간의 상관 관계(correlation) 및 시퀀스 간의 거리를 측정하여 API 호출의 순서를 도출할 수 있다.
또한, 제어부(220)는 소프트웨어 정의 네트워크에서의 컨트롤러와 대상 네트워크 프로그램의 노스바운드 상호작용(Northbound interactiveness)을 도출할 수 있다.
SDN 시스템에서의 프로그램은 SDN 컨트롤러(controller)와 상호작용하여 다양한 노스바운드 상호작용을 통해 의미있는 네트워킹 결정을 수행할 수 있다. 이에 따라서, 제어부(220)는 대상 네트워크 프로그램과 SDN 컨트롤러 간의 정보 교환 빈도를 파악하여 노스바운드 상호작용을 특징화할 수 있다.
구체적으로 제어부(220)는 도출된 행위 그래프에서 노스바운드 API(Northbound API) 호출의 각 매개변수에 대한 데이터 플로우 분석(data―flow analysis, DFA)을 수행하고, 보안성 연관 API 호출 수를 산출함으로써 노스바운드 상호작용을 계량화하여 상호작용 여부를 도출할 수 있다.
이후, 제어부(220)는 보안성 연관 API 호출의 빈도(Frequency) 및 순서(Sequence)와, 노스바운드 상호작용(Northbound interactiveness)을 포함하는 대상 네트워크 프로그램의 특징에 기계 학습(machine learning)을 적용하여 악성(Malicious) 또는 결백(Benign)의 카테고리로 클러스터링할 수 있다.
예를 들면, 제어부(220)는 기계 학습 모델(machine learning model)을 악성 또는 결백의 카테고리로 클러스터링하고, 생성된 기계 학습 모델을 대상 네트워크 프로그램에 적용하여 대상 네트워크 프로그램의 클러스터링에 따른 분류를 판단할 수 있다.
실시예에 따라서, 제어부(220)는 참조 클러스터 기법 및 샘플 태그 기법으로 대상 네트워크 프로그램을 클러스터링할 수 있다.
구체적으로 상기 참조 클러스터 기법(Reference Cluster)은 데이터베이스부(230)에 저장되어 유지되는 샘플 프로그램을 임의로 샘플링하여 참조 클러스터 모델(악성 또는 결백)을 구축하는 기법이다. 제어부(220)는 대상 네트워크 프로그램에 기계 학습을 적용하여 악성 또는 결백의 상기 참조 클러스터 모델 중 어느 하나에 위치한 대상 네트워크 프로그램을 클러스터링할 수 있다.
또 다른 기법인 상기 샘플 태그 기법(Sample Tagging)은 대상 네트워크 프로그램을 포함하는 전체 샘플 프로그램 중 약 20%의 프로그램을 임의로 추출하여 클러스터링하고, 각 프로그램에 태그(악성 또는 결백)를 첨부하는 기법이다. 제어부(220)는 클러스터 내에서 양성 태그 또는 결백 태그의 수를 파악하여 클러스터의 악성 또는 결백을 판단하고, 클러스터 내의 대상 네트워크 프로그램의 위치를 파악하여 클러스터링할 수 있다.
제어부(220)는 기 설정된 분류 기준에 따른 카테고리가 저장되어 유지되는 데이터베이스부(230)를 기반으로 기계 학습이 적용된 대상 네트워크 프로그램을 악성 또는 결백의 카테고리로 분류할 수 있다.
예를 들면, 데이터베이스부(230)는 참조 클러스터 기법에 기반하여 샘플 프로그램을 무작위로 샘플링하여 구축된 참조 클러스터 모델을 포함할 수 있으며, 참조 클러스터 모델은 제어부(220)를 통해 수정 및 보완될 수 있다.
제어부(220)는 기설정된 분류 기준 및 확률과, 도출된 행위 그래프를 비교하여 클러스터링하고, 도출된 행위 그래프를 반영하여 데이터베이스부(230)에 적용할 수 있다.
예를 들면, 제어부(220)는 도출된 행위 그래프, 보안성 연관 API 호출의 빈도 및 순서와, 노스바운드 상호작용, 참조 클러스터 기법 및 샘플 태그 기법 중 어느 하나의 분류 기준, 및 확률을 기반으로 대상 네트워크 프로그램의 클러스터링을 제어할 수 있으며, 대상 네트워크 프로그램의 클러스터링에 따른 데이터베이스부(230)의 수정 및 보완을 제어할 수도 있다.
실시예에 따라서, 제어부(220)는 기계 학습을 기반으로 하여 대상 네트워크 프로그램의 클러스터링 과정에서 획득하게 되는 시행착오를 통해 주어진 환경(state)을 학습하고, 정해진 정책에 따라 행동(action)을 결정하여 실행할 수 있으며, 행동에 따라 획득하게 되는 보상(reward)을 기초로 데이터베이스부(230)에 저장되어 유지되는 데이터를 수정 및 보완해가면서 학습할 수 있다.
제어부(220)는 클러스터링에 기초하여 대상 네트워크 프로그램의 악성 또는 결백의 카테고리에서의 TP(True Positive), FP(False Positive), TN(True Negative) 및 FN(False Negative) 중 적어도 어느 하나 이상의 분류를 판단할 수 있다.
실시예에 따라서, 제어부(220)는 분류된 TP 및 FN을 악성 프로그램으로 판단하고, 분류된 FP 및 TN을 결백한 프로그램으로 판단할 수 있다.
도 3은 본 발명의 실시예에 따른 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치의 실행 과정을 도식화한 것이다.
도 3을 참조하면, 본 발명의 실시예에 따른 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치는 대상 네트워크 프로그램(SDN Apps)을 행위 그래프(Behavior Graph)화 하고, 행위 그래프에 기반하여 특징을 추출(Feature Extraction)하여 악성 프로그램의 여부를 판단(Malware Detection(Cluster Analysis))한다.
보다 구체적으로, 첫 번째 단계는 소프트웨어 정의 네트워크에서 발생하는 대상 네트워크 프로그램의 행위 그래프를 도출한다. 첫 번째 단계에서의 본 발명의 실시예에 따른 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치는 대상 네트워크 프로그램의 보안성 연관 API를 탐색하여 도출하고, 정적 분석을 기반으로 보안성 연관 API의 사용 관계에 따른 실행 순서를 포함하는 행위 그래프를 도출할 수 있다.
이후, 두 번째 단계는 행위 그래프를 기반으로 대상 네트워크 프로그램의 특징을 추출한다.
두 번째 단계에서의 본 발명의 실시예에 따른 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치는 도출된 행위 그래프에 기반하여 보안성 연관 API 호출의 빈도(Frequency) 및 순서(Sequence)와, 소프트웨어 정의 네트워크에서의 컨트롤러와 대상 네트워크 프로그램의 노스바운드 상호작용(Northbound interactiveness)을 특징화할 수 있다.
이하에서는 도 4a 내지 도 4c를 참조하여 본 발명의 실시예에 따른 대상 네트워크 프로그램을 특징화하는 예에 대해 상세히 설명하기로 한다.
도 4a 내지 도 4c는 본 발명의 실시예에 따른 클러스터링을 위한 대상 네트워크 프로그램의 특징화 예를 도시한 것이다.
보다 구체적으로 도 4a는 대상 네트워크 프로그램 내 보안성 연관 API 호출의 빈도를 도출하는 예를 도시한 것이고, 도 4b는 보안성 연관 API 호출의 순서를 도출하는 예를 도시한 것이며, 도 4c는 노스바운드 상호작용의 예를 도시한 것이다.
도 4a를 참조하면, 본 발명의 실시예에 따른 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치는 행위 그래프(SSBGs, Security―Sensitive Behavior Graph)에서 파생된 행위 그래프 집합(SSBGs or App 1…n)에서의 모든 노드를 탐색하여 보안성 연관 API 호출의 빈도를 산출한다(Security―sensitive API Call Frequency).
실시예에 따라서, 본 발명의 실시예에 따른 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치는 보안성 연관 API 호출의 빈도를 산출하기 위해 각 호출의 의미를 고려할 수 있다. 예를 들면, 플로우 클래스(Flow Class)에 포함되는 보안성 연관 API 호출의 빈도를 결합하여 총 플로우 센시티브 API(Flow―sensitive API)의 호출 빈도를 획득할 수도 있다.
도 4b를 참조하면, 본 발명의 실시예에 따른 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치는 행위 그래프(SSBGs)에서 파생된 행위 그래프 집합(SSBGs or App 1…n)에서의 모든 노드를 탐색하여 보안성 연관 API 호출의 순서를 산출한다(Security―sensitive API Call Sequence).
실시예에 따라서, 본 발명의 실시예에 따른 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치는 대상 네트워크 프로그램의 API 각각에 고유한 ID를 할당(Unique ID of the API)하여 보안성 연관 API 호출 시퀀스를 추출할 수 있다. 이후, 추출된 보안성 연관 API 호출 시퀀스와 서로 다른 API 호출 시퀀스 간의 상관 관계 정보를 포함하는 n행 n열의 거리 테이블(Distance Table)을 형성할 수 있다.
상기 거리 테이블은 악성 프로그램 또는 결백한 프로그램을 클러스터링하기 위한 기능으로 사용되며, API 호출 순서의 차이점을 명확하게 나타낼 수 있다. 또한, 상기 거리 테이블은 대상 네트워크 프로그램과 다른 모든 응용 프로그램(App1, App2, …, App n)에서 각기 추출한 시퀀스 간의 거리 정보를 포함할 수 있다.
도 4c와 하기의 [표 1]을 참조하면, 본 발명의 실시예에 따른 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치는 packetOut() API를 보안성 연관 API로 간주하고, param1 및 temp4의 두 매개변수에 대한 데이터 플로우 분석(data―flow analysis, DFA)을 수행하여 대상 네트워크 프로그램과 SDN 컨트롤러의 노스바운드 상호작용(Northbound interactiveness) 여부를 판단할 수 있다.
여기서, [표 1]은 데이터 플로우 분석에 대한 예시 코드를 나타낸다.
[표 1]
Figure pat00001
예를 들면, 본 발명의 실시예에 따른 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치는 [표 1]을 통해 packetOut() 메소드의 파라미터(i.e., context)의 사용과, 그에 따른 정의(use &def)를 파악할 수 있다.
보다 구체적으로, packetOut() 호출 노드를 사용하여 use―def chain을 역 추적할 수 있으며, 변수가 정의되는 위치와 호출자 메소드(FLOOD())의 위치(내부 또는 외부)를 확인할 수 있다.
이에 따라서, 노스바운드 API(Northbound API) 호출에 제공된 매개변수가 SDN 컨트롤러 내에 선언되어 초기화되면 대상 네트워크 프로그램이 컨트롤러와 정보를 교환하는 것으로 판단할 수 있으며, 소프트웨어 정의 네트워크에서의 컨트롤러와 대상 네트워크 프로그램의 노스바운드 상호작용을 특징화할 수 있다.
다시 도 3을 참조하면, 세 번째 단계는 대상 네트워크 프로그램의 악성 여부를 판단한다.
세 번째 단계에서의 본 발명의 실시예에 따른 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치는 알고리즘을 사용하여 악성 프로그램 또는 결백한 프로그램을 각기 다중 클러스터로 분할하여 클러스터링할 수 있다.
예를 들면, 본 발명의 실시예에 따른 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치는 입력 객체를 k개의 클러스터로 분할하는 k―means 클러스터링 알고리즘을 이용하여 SDN 프로그램을 클러스터로 분할하고, 분할된 클러스터의 악성 또는 결백을 판단하여 클러스터링할 수 있다.
이후, 본 발명의 실시예에 따른 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치는 참조 클러스터 기법 또는 샘플 태그 기법을 이용하여 대상 네트워크 프로그램의 악성 여부를 판단할 수 있다.
도 5는 본 발명의 실시예에 따른 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 방법의 흐름도를 도시한 것이다.
도 5에 도시된 방법은 도 2에 도시된 본 발명의 실시예에 따른 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치에 의해 수행될 수 있다.
도 5를 참조하면, 단계 510에서 소프트웨어 정의 네트워크에서 발생하는 대상 네트워크 프로그램의 소스 코드를 분석하여 보안성 연관 API(Application Programming Interface)를 도출하고, 도출된 보안성 연관 API로부터 대상 네트워크 프로그램의 행위 그래프를 도출한다.
단계 510에서 대상 네트워크 프로그램의 소스 코드를 분석하여 대상 네트워크 프로그램이 사용하는 API(Application Programming Interface) 중 보안성 연관 API의 사용을 탐색할 수 있다.
단계 510은 대상 네트워크 프로그램의 제어 플로우(Control Flow) 및 데이터 플로우(Data Flow)를 파악하여 소스 코드를 분석하는 정적 분석(static analysis)을 수행하는 단계일 수 있다.
이후, 단계 510은 분석 결과를 이용하여 보안성 연관 API의 사용 관계에 따른 실행 순서를 포함하는 행위 그래프를 도출하는 단계일 수 있다.
단계 520에서 도출된 행위 그래프로부터 대상 네트워크 프로그램을 특징화한다.
단계 520은 도출된 행위 그래프에 기반하여 보안성 연관 API 호출의 빈도(Frequency) 및 순서(Sequence)와, 소프트웨어 정의 네트워크에서의 컨트롤러와 대상 네트워크 프로그램의 노스바운드 상호작용(Northbound interactiveness)을 특징화하는 단계일 수 있다.
단계 530에서 대상 네트워크 프로그램의 특징에 적용되는 기계 학습(machine learning) 결과를 클러스터링(Clustering)하여 악성 여부를 판단한다.
단계 530은 보안성 연관 API 호출의 빈도(Frequency) 및 순서(Sequence)와, 노스바운드 상호작용(Northbound interactiveness)을 포함하는 대상 네트워크 프로그램의 특징에 기계 학습(machine learning)을 적용하여 악성(Malicious) 또는 결백(Benign)의 카테고리로 클러스터링하는 단계일 수 있다.
이후, 단계 530은 클러스터링에 기초하여 대상 네트워크 프로그램의 악성(Malicious) 또는 결백(Benign)의 카테고리에서의 TP(True Positive), FP(False Positive), TN(True Negative) 및 FN(False Negative) 중 적어도 어느 하나 이상의 분류를 판단하는 단계일 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD―ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기―광 매체(magneto―optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
200: 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치
210: 행위 그래프 도출부
220: 제어부
230: 데이터베이스부

Claims (17)

  1. SDN(Software Defined Networking)에서의 악성 프로그램을 탐지하는 장치에 있어서,
    소프트웨어 정의 네트워크에서 발생하는 대상 네트워크 프로그램의 소스 코드를 분석하여 보안성 연관 API(Application Programming Interface)를 도출하고, 상기 도출된 보안성 연관 API로부터 상기 대상 네트워크 프로그램의 행위 그래프를 도출하는 행위 그래프 도출부; 및
    상기 도출된 행위 그래프로부터 상기 대상 네트워크 프로그램을 특징화하고, 기계 학습(machine learning)이 적용된 상기 대상 네트워크 프로그램을 클러스터링(Clustering)하여 악성 여부를 판단하는 제어부
    를 포함하는 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치.
  2. 제1항에 있어서,
    상기 행위 그래프 도출부는
    상기 대상 네트워크 프로그램의 소스 코드를 분석하여 상기 대상 네트워크 프로그램이 사용하는 API(Application Programming Interface) 중 상기 보안성 연관 API의 사용을 탐색하는 것을 특징으로 하는 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치.
  3. 제2항에 있어서,
    상기 행위 그래프 도출부는
    상기 대상 네트워크 프로그램의 제어 플로우(Control Flow) 및 데이터 플로우(Data Flow)을 파악하여 소스 코드를 분석하는 정적 분석(static analysis)을 수행하는 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치.
  4. 제3항에 있어서,
    상기 행위 그래프 도출부는
    상기 분석 결과를 이용하여 상기 보안성 연관 API의 사용 관계에 따른 실행 순서를 포함하는 상기 행위 그래프를 도출하는 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치.
  5. 제1항에 있어서,
    상기 제어부는
    상기 도출된 행위 그래프에 기반하여 보안성 연관 API 호출의 빈도(Frequency) 및 순서(Sequence)와, 소프트웨어 정의 네트워크에서의 컨트롤러와 상기 대상 네트워크 프로그램의 노스바운드 상호작용(Northbound interactiveness)을 특징화하는 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치.
  6. 제5항에 있어서,
    상기 제어부는
    상기 보안성 연관 API 호출의 빈도(Frequency) 및 순서(Sequence)와, 상기 노스바운드 상호작용(Northbound interactiveness)을 포함하는 상기 대상 네트워크 프로그램의 특징에 기계 학습(machine learning)을 적용하여 악성(Malicious) 또는 결백(Benign)의 카테고리로 클러스터링하는 것을 특징으로 하는 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치.
  7. 제6항에 있어서,
    상기 제어부는
    기 설정된 분류 기준에 따른 카테고리가 저장되어 유지되는 데이터베이스부를 기반으로 상기 기계 학습이 적용된 상기 대상 네트워크 프로그램을 상기 악성 또는 결백의 카테고리로 분류하는 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치.
  8. 제7항에 있어서,
    상기 제어부는
    기 설정된 분류 기준 및 확률과, 상기 도출된 행위 그래프를 비교하여 클러스터링하고, 상기 도출된 행위 그래프를 반영하여 상기 데이터베이스부에 적용하는 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치.
  9. 제1항에 있어서,
    상기 제어부는
    상기 클러스터링에 기초하여 상기 대상 네트워크 프로그램의 악성(Malicious) 또는 결백(Benign)의 카테고리에서의 TP(True Positive), FP(False Positive), TN(True Negative) 및 FN(False Negative) 중 적어도 어느 하나 이상의 분류를 판단하는 것을 특징으로 하는 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치.
  10. SDN(Software Defined Networking)에서의 악성 프로그램을 탐지하기 위하여 매체에 저장된 어플리케이션에 있어서,
    소프트웨어 정의 네트워크에서 발생하는 대상 네트워크 프로그램의 소스 코드를 분석하여 보안성 연관 API를 도출하고, 상기 도출된 보안성 연관 API로부터 상기 대상 네트워크 프로그램의 행위 그래프를 도출하는 기능; 및
    상기 도출된 행위 그래프로부터 상기 대상 네트워크 프로그램을 특징화하고, 기계 학습(machine learning)이 적용된 상기 대상 네트워크 프로그램을 클러스터링(Clustering)하여 악성 여부를 판단하는 기능을 수행하는 것을 특징으로 하는 컴퓨터 프로그램.
  11. SDN(Software Defined Networking)에서의 악성 프로그램을 탐지하는 방법에 있어서,
    소프트웨어 정의 네트워크에서 발생하는 대상 네트워크 프로그램의 소스 코드를 분석하여 보안성 연관 API(Application Programming Interface)를 도출하고, 상기 도출된 보안성 연관 API로부터 상기 대상 네트워크 프로그램의 행위 그래프를 도출하는 단계;
    상기 도출된 행위 그래프로부터 상기 대상 네트워크 프로그램을 특징화하는 단계; 및
    상기 대상 네트워크 프로그램의 특징에 적용되는 기계 학습(machine learning) 결과를 클러스터링(Clustering)하여 악성 여부를 판단하는 단계
    를 포함하는 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 방법.
  12. 제11항에 있어서,
    상기 행위 그래프를 도출하는 단계는
    상기 대상 네트워크 프로그램의 소스 코드를 분석하여 상기 대상 네트워크 프로그램이 사용하는 API(Application Programming Interface) 중 상기 보안성 연관 API의 사용을 탐색하는 것을 특징으로 하는 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 방법.
  13. 제12항에 있어서,
    상기 행위 그래프를 도출하는 단계는
    상기 대상 네트워크 프로그램의 제어 플로우(Control Flow) 및 데이터 플로우(Data Flow)을 파악하여 소스 코드를 분석하는 정적 분석(static analysis)을 수행하는 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 방법.
  14. 제13항에 있어서,
    상기 행위 그래프를 도출하는 단계는
    상기 분석 결과를 이용하여 상기 보안성 연관 API의 사용 관계에 따른 실행 순서를 포함하는 상기 행위 그래프를 도출하는 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 방법.
  15. 제11항에 있어서,
    상기 대상 네트워크 프로그램을 특징화하는 단계는
    상기 도출된 행위 그래프에 기반하여 보안성 연관 API 호출의 빈도(Frequency) 및 순서(Sequence)와, 소프트웨어 정의 네트워크에서의 컨트롤러와 상기 대상 네트워크 프로그램의 노스바운드 상호작용(Northbound interactiveness)을 특징화하는 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 방법.
  16. 제15항에 있어서,
    상기 악성 여부를 판단하는 단계는
    상기 보안성 연관 API 호출의 빈도(Frequency) 및 순서(Sequence)와, 상기 노스바운드 상호작용(Northbound interactiveness)을 포함하는 상기 대상 네트워크 프로그램의 특징에 기계 학습(machine learning)을 적용하여 악성(Malicious) 또는 결백(Benign)의 카테고리로 클러스터링하는 것을 특징으로 하는 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 방법.
  17. 제16항에 있어서,
    상기 악성 여부를 판단하는 단계는
    상기 클러스터링에 기초하여 상기 대상 네트워크 프로그램의 악성(Malicious) 또는 결백(Benign)의 카테고리에서의 TP(True Positive), FP(False Positive), TN(True Negative) 및 FN(False Negative) 중 적어도 어느 하나 이상의 분류를 판단하는 것을 특징으로 하는 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 방법.
KR1020170036876A 2017-03-23 2017-03-23 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치, 방법 및 컴퓨터 프로그램 KR101966514B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170036876A KR101966514B1 (ko) 2017-03-23 2017-03-23 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치, 방법 및 컴퓨터 프로그램
US15/811,248 US20180278635A1 (en) 2017-03-23 2017-11-13 Apparatus, method, and computer program for detecting malware in software defined network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170036876A KR101966514B1 (ko) 2017-03-23 2017-03-23 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치, 방법 및 컴퓨터 프로그램

Publications (2)

Publication Number Publication Date
KR20180107932A true KR20180107932A (ko) 2018-10-04
KR101966514B1 KR101966514B1 (ko) 2019-04-05

Family

ID=63583120

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170036876A KR101966514B1 (ko) 2017-03-23 2017-03-23 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치, 방법 및 컴퓨터 프로그램

Country Status (2)

Country Link
US (1) US20180278635A1 (ko)
KR (1) KR101966514B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102090423B1 (ko) * 2019-04-25 2020-05-04 숭실대학교산학협력단 동적 api 추출 기반의 애플리케이션 악성코드 탐지 방법, 이를 수행하기 위한 기록 매체 및 장치
KR102200666B1 (ko) * 2019-12-31 2021-01-12 충남대학교 산학협력단 안드로이드 미디어프레임워크 취약점과 심각도 분석 시스템 및 방법

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10701037B2 (en) 2015-05-27 2020-06-30 Ping Identity Corporation Scalable proxy clusters
US10587580B2 (en) 2016-10-26 2020-03-10 Ping Identity Corporation Methods and systems for API deception environment and API traffic control and security
EP4020282A1 (en) * 2017-10-13 2022-06-29 Ping Identity Corporation Methods and apparatus for analyzing sequences of application programming interface traffic to identify potential malicious actions
US11212310B2 (en) * 2018-04-30 2021-12-28 Aapi System for reducing application programming interface (API) risk and latency
US11496475B2 (en) 2019-01-04 2022-11-08 Ping Identity Corporation Methods and systems for data traffic based adaptive security
US11847214B2 (en) 2020-04-21 2023-12-19 Bitdefender IPR Management Ltd. Machine learning systems and methods for reducing the false positive malware detection rate
CN111797400B (zh) * 2020-07-08 2023-09-01 国家计算机网络与信息安全管理中心 一种车联网恶意应用动态检测方法及装置
US11775641B2 (en) * 2020-11-06 2023-10-03 Vmware, Inc. Systems and methods for classifying malware based on feature reuse
CN117034273A (zh) * 2023-08-28 2023-11-10 山东省计算中心(国家超级计算济南中心) 基于图卷积网络的安卓恶意软件检测方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120073018A (ko) * 2010-12-24 2012-07-04 한국인터넷진흥원 악성 코드 탐지를 위한 시스템 및 방법
KR101491699B1 (ko) 2013-11-12 2015-02-11 아토리서치(주) 소프트웨어 정의 네트워킹에서 제어 장치 및 그 동작 방법
WO2015194604A1 (ja) * 2014-06-18 2015-12-23 日本電信電話株式会社 ネットワークシステム、制御装置、通信装置、通信制御方法および通信制御プログラム
KR101645019B1 (ko) * 2016-01-15 2016-08-02 지티원 주식회사 소프트웨어 보안취약점 검출을 위한 규칙명세언어
KR20160145373A (ko) 2015-06-10 2016-12-20 한국과학기술원 소프트웨어 정의 네트워크에서 취약점을 분석하는 방법, 장치 및 컴퓨터 프로그램

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120073018A (ko) * 2010-12-24 2012-07-04 한국인터넷진흥원 악성 코드 탐지를 위한 시스템 및 방법
KR101491699B1 (ko) 2013-11-12 2015-02-11 아토리서치(주) 소프트웨어 정의 네트워킹에서 제어 장치 및 그 동작 방법
WO2015194604A1 (ja) * 2014-06-18 2015-12-23 日本電信電話株式会社 ネットワークシステム、制御装置、通信装置、通信制御方法および通信制御プログラム
KR20160145373A (ko) 2015-06-10 2016-12-20 한국과학기술원 소프트웨어 정의 네트워크에서 취약점을 분석하는 방법, 장치 및 컴퓨터 프로그램
KR101645019B1 (ko) * 2016-01-15 2016-08-02 지티원 주식회사 소프트웨어 보안취약점 검출을 위한 규칙명세언어

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102090423B1 (ko) * 2019-04-25 2020-05-04 숭실대학교산학협력단 동적 api 추출 기반의 애플리케이션 악성코드 탐지 방법, 이를 수행하기 위한 기록 매체 및 장치
US11019099B2 (en) 2019-04-25 2021-05-25 Foundation Of Soongsil University-Industry Cooperation Method of application malware detection based on dynamic API extraction, and readable medium and apparatus for performing the method
KR102200666B1 (ko) * 2019-12-31 2021-01-12 충남대학교 산학협력단 안드로이드 미디어프레임워크 취약점과 심각도 분석 시스템 및 방법

Also Published As

Publication number Publication date
KR101966514B1 (ko) 2019-04-05
US20180278635A1 (en) 2018-09-27

Similar Documents

Publication Publication Date Title
KR101966514B1 (ko) 소프트웨어 정의 네트워크에서의 악성 프로그램 탐지 장치, 방법 및 컴퓨터 프로그램
US9781144B1 (en) Determining duplicate objects for malware analysis using environmental/context information
KR100926115B1 (ko) 특정 이벤트/조건에서 동작하는 윈도우용 악성 코드탐지를 위한 프로그램 자동 분석 장치 및 방법
US9736173B2 (en) Differential dependency tracking for attack forensics
US10303873B2 (en) Device for detecting malware infected terminal, system for detecting malware infected terminal, method for detecting malware infected terminal, and program for detecting malware infected terminal
US9171160B2 (en) Dynamically adaptive framework and method for classifying malware using intelligent static, emulation, and dynamic analyses
US20180020024A1 (en) Methods and Systems for Using Self-learning Techniques to Protect a Web Application
CN109101815B (zh) 一种恶意软件检测方法及相关设备
KR102225040B1 (ko) 인공 지능 기반의 통합 로그 관리 방법 및 그 시스템
US11575688B2 (en) Method of malware characterization and prediction
CN109684833B (zh) 使程序危险行为模式适应用户计算机系统的系统和方法
US11669779B2 (en) Prudent ensemble models in machine learning with high precision for use in network security
US20200104486A1 (en) Systems and methods for analyzing process chains to detect malicious behavior
KR102134653B1 (ko) 익스플로잇 공격에 대한 탐지 정확도를 향상시키기 위한 룰 최적화 장치 및 그 방법
EP4189871B1 (en) Conjoining malware detection models for detection performance aggregation
KR20220032730A (ko) 그래프 임베딩과 인간참여 방식을 통한 악성코드 제작그룹 식별 방법
US11042637B1 (en) Measuring code sharing of software modules based on fingerprinting of assembly code
KR102018443B1 (ko) 네트워크 침입 탐지 시스템 및 방법, 이를 수행하기 위한 기록매체
Pranav et al. Detection of botnets in IoT networks using graph theory and machine learning
KR101628602B1 (ko) 프로그램의 유사도를 판단하기 위한 유사도 판단 방법 및 유사도 판단 장치
KR102415494B1 (ko) 에뮬레이션 기반의 임베디드 기기 취약점 점검 및 검증 방법
KR102280774B1 (ko) 프로파일링 로그 분석을 통한 자동화된 웹 방화벽 정책 수립 장치 및 방법
US20230214489A1 (en) Rootkit detection based on system dump files analysis
WO2023067665A1 (ja) 解析機能付与方法、解析機能付与装置及び解析機能付与プログラム
US20190156024A1 (en) Method and apparatus for automatically classifying malignant code on basis of malignant behavior information

Legal Events

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