KR20140136894A - 악성 프로그램을 탐지하는 방법 및 장치 - Google Patents
악성 프로그램을 탐지하는 방법 및 장치 Download PDFInfo
- Publication number
- KR20140136894A KR20140136894A KR1020140060485A KR20140060485A KR20140136894A KR 20140136894 A KR20140136894 A KR 20140136894A KR 1020140060485 A KR1020140060485 A KR 1020140060485A KR 20140060485 A KR20140060485 A KR 20140060485A KR 20140136894 A KR20140136894 A KR 20140136894A
- Authority
- KR
- South Korea
- Prior art keywords
- terminal
- terminals
- information
- malicious program
- server
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/567—Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Telephonic Communication Services (AREA)
- Information Transfer Between Computers (AREA)
Abstract
서버에서 복수의 단말기들 각각에 대응되는 가상 머신(virtual machine)들을 생성하고, 복수의 단말기들 각각의 프로파일 정보에 기초하여, 생성된 가상 머신들을 클러스터링(clustering) 하고, 복수의 단말기 중 적어도 하나의 단말기에서 악성 프로그램이 탐지되는 경우, 악성 프로그램이 탐지된 제 1 단말기에 대응되는 제 1 가상 머신과 동일한 그룹으로 클러스터링 된 제 2 가상 머신을 통해, 제 2 가상 머신에 대응되는 제 2 단말기에 악성 프로그램의 탐지에 관한 정보를 제공함으로써, 단말기가 악성 프로그램에 감염되는 것을 예방할 수 있는 단말기의 악성 프로그램을 탐지하는 방법이 개시된다.
Description
악성 프로그램을 탐지하는 방법, 장치 및 기록매체에 관한 것이다.
일반적으로 악성 프로그램은 시스템 사용자의 승인 없이 시스템에 침입하는 악성 소프트웨어들의 집합을 의미한다. 악성 프로그램은 기밀 정보에 접근하거나 원격으로 시스템을 제어하고, 핵심적인 서비스들을 방해하는 등의 악의적인 목적으로 설계된다. 악성 프로그램은 코드, 데이터/시스템 파일, 드라이브의 일부분을 감염시킬 수 있고, 서비스의 거부를 유발하는 네트워크 상의 초과 트레픽을 생성할 수 있다.
악성 프로그램은 스마트폰, 태블릿, 컴퓨터 등과 같은 다양한 전자 디바이스들에 침투할 수 있어, 쉽게 확산될 수 있다. 여기에서, 전자 디바이스들 각각은 직접적으로 또는 간접적으로 다른 전자 디바이스들과 연결될 수 있다. 예를 들어, 전자 디바이스들 각각은 와이 파이(Wi-fi), 블루투스(Bluetooth), IR(Infrared) 및 NFC(Near Field Communication)나 이메일, SMS(Short Message Service), MMS(Multimedia Message Service), IM(Instant Message) 등의 메시지 교환을 통해 다른 전자 디바이스들과 연결될 수 있다. 악성 프로그램이 침투한 전자 디바이스들 각각은 다른 전자 디바이스들과의 연결을 통해, 악성 프로그램을 확산시킬 수 있다.
전자 디바이스들 상의 악성 프로그램을 탐지하기 위한 종래의 시스템 및 방법은 네트워크 운영자에게 악성 프로그램을 제어하기 위해 악성 프로그램이 탐지된 단말기의 IP(Internet Protocol) 주소, 도메인(domain) 이름 및 URL(Uniform Resource Locator) 등을 이용한다. 예를 들어, 정책 엔진(policy engine) 및 웹 필터링(web filtering) 어플리케이션은 악성 프로그램이 탐지된 단말기의 IP(Internet Protocol) 주소, 도메인(domain) 이름 및 URL(Uniform Resource Locator) 등의 정보에 기초하여, 악성 프로그램 소스를 식별하고, 식별된 악성 프로그램의 소스와의 통신을 제한한다.
그러나 악성 프로그램 확산 에이전트(malware-spreading-agent)는 악성 프로그램의 확산을 방지하기 위한 정책 엔진(policy engine) 및 웹 필터링(web filtering) 어플리케이션이 위치한 사이트와 도메인을 검출하여, 검출된 사이트 및 도메인에 악성 프로그램을 확산시킬 수 있다.
또한, 대부분의 안티-악성 프로그램 소프트웨어는 악성 프로그램의 특성에 기초한 이진 패턴과 같은 악성 프로그램의 시그니쳐 패턴에 의존한다. 시그니쳐 패턴에 의존하는 안티-악성 프로그램 소프트웨어는 의심되는 악성 프로그램의 시그니쳐를 반복적으로 체크해야 한다는 문제가 있다.
한편, 악성 프로그램을 탐지하기 위한 행동 기반(behavior-based)의 모니터링 방법에 따라, 매쓰 메일러(mass mailer)와 같은 기술이 프로그램의 악성 프로그램 감염 여부를 판단하는데 사용될 수 있다. 행동 기반의 모니터링 방법에 따르면, 정상적인 프로그램의 행동에 대한 아웃라인을 생성하고, 프로파일에 벗어난 동작을 수행하는 전자 디바이스를 악성 프로그램에 감염된 것으로 의심해 볼 수 있다. 그러나, 행동 기반의 모니터링 방법은 복잡하고, 프로파일을 구성하는 것 역시 어렵다.
이외에도, 기본 탐지법(basic detection), 레이트 리미팅(rate-limiting), 블로킹(blocking), 격리 매커니즘(quarantine mechanism)이 전자 디바이스들에 악성 프로그램이 확산되는 것을 제어하는데 이용되고 있다.
전술한 바와 같이, 종래의 방법 및 시스템에는 전자 디바이스들에 악성 프로그램이 확산되는 것을 제어하기 위해 해결해야 하는 문제점들이 여전히 존재한다.
단말기들에 악성 프로그램이 확산되는 것을 방지하기 위해, 악성 프로그램이 탐지된 단말기를 검출하여, 검출된 단말기와 다른 단말기와의 통신을 제한함으로써, 다른 단말기들이 악성 프로그램에 감염되는 것을 방지할 수 있다.
본 발명의 일 실시예에 따른 서버에서 단말기의 악성 프로그램을 탐지하는 방법은 서버에서 복수의 단말기들 각각에 대응되는 가상 머신(virtual machine)들을 생성하는 단계; 상기 복수의 단말기들 각각의 프로파일 정보에 기초하여, 상기 생성된 가상 머신들을 클러스터링(clustering) 하는 단계; 및 상기 복수의 단말기 중 적어도 하나의 단말기에서 악성 프로그램이 탐지되는 경우, 상기 악성 프로그램이 탐지된 제 1 단말기에 대응되는 제 1 가상 머신과 동일한 그룹으로 클러스터링 된 제 2 가상 머신을 통해, 상기 제 2 가상 머신에 대응되는 제 2 단말기에 상기 악성 프로그램의 탐지에 관한 정보를 제공하는 단계를 포함한다.
본 발명의 일 실시예에 따른 서버에서 단말기의 악성 프로그램을 탐지하는 방법은 상기 복수의 단말기들 각각의 구성 정보 및 상기 복수의 단말기들 간의 인터렉션 정보를 획득하는 단계; 및 상기 획득한 구성 정보 및 상기 인터렉션 정보를 기초로 상기 복수의 단말기들 각각에 대한 프로파일 정보를 산출하는 단계를 더 포함하고, 상기 클러스터링 하는 단계는, 상기 산출된 프로파일 정보에 기초하여, 상기 생성된 가상 머신들을 클러스터링 한다.
본 발명의 일 실시예에 따른 서버에서 단말기의 악성 프로그램을 탐지하는 방법에 있어서, 상기 생성된 가상 머신들을 클러스터링 하는 단계는, 상기 프로파일 정보에 기초하여 상기 복수의 단말기들 상호간에 유사도를 산출하는 단계; 및 상기 산출된 유사도에 기초하여 상기 생성된 가상 머신들을 클러스터링 하는 단계를 포함한다.
본 발명의 일 실시예에 따른 서버에서 단말기의 악성 프로그램을 탐지하는 방법에 있어서, 상기 복수의 단말기들 상호간에 유사도를 산출하는 단계는, 상기 복수의 단말기들 각각에 대한 상기 프로파일 정보를 상기 복수의 단말기들 각각에 대응되는 가상 머신들에 저장하는 단계; 및 상기 복수의 단말기들 각각에 대응되는 가상 머신들간에 상기 저장된 프로파일 정보를 교환하는 단계를 포함하고, 상기 유사도를 산출하는 단계는, 상기 교환된 프로파일 정보에 기초하여 상기 복수의 단말기들 상호간에 상기 유사도를 산출한다.
본 발명의 일 실시예에 따른 서버에서 단말기의 악성 프로그램을 탐지하는 방법에 있어서, 상기 저장된 프로파일 정보를 교환하는 단계는, 상기 복수의 단말기들 중 통신을 수행하는 단말기들에 대응되는 가상 머신들간에 상기 프로파일 정보를 교환한다.
본 발명의 일 실시예에 따른 서버에서 단말기의 악성 프로그램을 탐지하는 방법에 있어서, 상기 악성 프로그램의 탐지에 관한 정보를 제공하는 단계는, 상기 제 1 단말기에 대응되는 상기 제 1 가상 머신이 포함된 그룹을 식별하는 단계; 상기 식별된 그룹에 포함되는 상기 제 2 가상 머신을 검출하는 단계; 및 상기 검출된 제 2 가상 머신에 대응되는 상기 제 2 단말기에 상기 악성 프로그램의 탐지에 관한 정보를 포함하는 메시지를 전송하는 단계를 포함한다.
본 발명의 일 실시예에 따른 단말기에서 악성 프로그램을 탐지하는 방법은 단말기에서, 서버에 생성된 상기 단말기에 대응되는 가상 머신(virtual machine)에 상기 단말기의 프로파일에 대한 정보를 전송하는 단계; 상기 단말기와 동일한 그룹에 클러스터링 된 다른 단말기에서 악성 프로그램이 탐지된 경우, 상기 서버에 생성된 가상 머신으로부터 상기 악성 프로그램의 탐지에 관한 정보를 수신하는 단계; 및 상기 수신된 악성 프로그램의 탐지에 관한 정보를 디스플레이 하는 단계를 포함한다.
본 발명의 일 실시예에 따른 단말기에서 악성 프로그램을 탐지하는 방법에 있어서, 상기 단말기에서 악성 프로그램이 탐지된 경우, 상기 악성 프로그램의 탐지에 관한 정보를 상기 서버에 전송하는 단계를 더 포함한다.
본 발명의 일 실시예에 따른 단말기에서 악성 프로그램을 탐지하는 방법에 있어서, 상기 프로파일 정보는, 상기 단말기의 구성 정보 및 상기 단말기와 통신을 수행하는 단말기들 간의 인터렉션 정보에 기초하여 산출된다.
본 발명의 일 실시예에 따른 단말기에서 악성 프로그램을 탐지하는 방법에 있어서, 상기 단말기와 상기 다른 단말기는 상기 단말기의 프로파일 정보에 기초하여 산출된 유사도에 따라 동일한 그룹으로 클러스터링 된다.
본 발명의 일 실시예에 따른 단말기의 악성 프로그램을 탐지하는 서버는 복수의 단말기들 각각에 대응되는 가상 머신들을 저장하는 메모리 유닛; 상기 복수의 단말기들 각각의 프로파일 정보에 기초하여, 상기 가상 머신들을 클러스터링(clustering)하는 프로세싱 유닛; 및 상기 복수의 단말기 중 적어도 하나의 단말기에서 악성 프로그램이 탐지되는 경우, 상기 악성 프로그램이 탐지된 제 1 단말기에 대응되는 제 1 가상 머신과 동일한 그룹으로 클러스터링 된 제 2 가상 머신을 통해, 상기 제 2 가상 머신에 대응되는 제 2 단말기에 상기 악성 프로그램의 탐지에 관한 정보를 제공하는 제어 유닛을 포함한다.
본 발명의 일 실시예에 따른 단말기의 악성 프로그램을 탐지하는 서버에 있어서, 상기 제어 유닛은, 상기 복수의 단말기들 각각의 구성 정보 및 상기 복수의 단말기들 간의 인터렉션 정보를 획득하고, 상기 획득한 구성 정보 및 상기 인터렉션 정보를 기초로 상기 복수의 단말기 각각에 대한 프로파일 정보를 산출하고, 상기 프로세싱 유닛은, 상기 산출된 프로파일 정보에 기초하여 상기 생성된 가상 머신들을 클러스터링 한다.
본 발명의 일 실시예에 따른 단말기의 악성 프로그램을 탐지하는 서버에 있어서, 상기 프로세싱 유닛은, 상기 프로파일 정보에 기초하여 상기 복수의 단말기들 상호간에 유사도를 산출하고 상기 산출된 유사도에 기초하여 상기 생성된 가상 머신들을 클러스터링 한다.
본 발명의 일 실시예에 따른 단말기의 악성 프로그램을 탐지하는 서버에 있어서, 상기 메모리 유닛은, 상기 복수의 단말기들 각각에 대한 상기 프로파일 정보를 상기 복수의 단말기들 각각에 대응되는 가상 머신들에 저장하고, 상기 제어 유닛은, 상기 복수의 단말기들 각각에 대응되는 가상 머신들간에 상기 저장된 프로파일 정보를 교환하고, 상기 프로세싱 유닛은, 상기 교환된 프로파일 정보에 기초하여 상기 복수의 단말기들 상호간에 유사도를 산출한다.
본 발명의 일 실시예에 따른 단말기의 악성 프로그램을 탐지하는 서버에 있어서, 상기 제어 유닛은, 상기 복수의 단말기들 중 통신을 수행하는 단말기들에 대응되는 가상 머신들간에 상기 프로파일 정보를 교환한다.
본 발명의 일 실시예에 따른 단말기의 악성 프로그램을 탐지하는 서버에 있어서, 상기 제어 유닛은, 상기 제 1 단말기에 대응되는 상기 제 1 가상 머신이 포함된 그룹을 식별하고, 상기 식별된 그룹에 포함되는 상기 제 2 가상 머신을 검출하여, 상기 제 2 가상 머신에 대응되는 상기 제 2 단말기에 상기 악성 프로그램의 탐지에 관한 정보를 포함하는 메시지를 전송한다.
본 발명의 일 실시예에 따른 악성 프로그램을 탐지하는 단말기는 서버에 생성된 상기 단말기에 대응되는 가상 머신(virtual machine)으로 상기 단말기의 프로파일에 대한 정보를 전송하는 전송부; 상기 단말기와 동일한 그룹에 클러스터링 된 다른 단말기에서 악성 프로그램이 탐지된 경우, 상기 서버에 생성된 가상 머신으로부터 상기 악성 프로그램의 탐지에 관한 정보를 수신하는 수신부; 및 상기 수신된 악성 프로그램에 관한 정보를 디스플레이 하는 디스플레이부를 포함한다.
본 발명의 일 실시예에 따른 악성 프로그램을 탐지하는 단말기에 있어서, 상기 전송부는, 상기 단말기에서 악성 프로그램이 탐지된 경우, 상기 악성 프로그램의 탐지에 관한 정보를 상기 서버에 전송한다.
본 발명의 일 실시예에 따른 악성 프로그램을 탐지하는 단말기는, 상기 단말기의 구성 정보 및 상기 단말기와 통신을 수행하는 단말기들 간의 인터랙션 정보에 기초하여 상기 단말기의 프로파일 정보를 산출하는 제어부를 더 포함한다.
본 발명의 일 실시예에 따른 악성 프로그램을 탐지하는 단말기에 있어서, 상기 단말기와 상기 다른 단말기는, 상기 단말기의 프로파일 정보에 기초하여 산출된 유사도에 따라 동일한 그룹으로 클러스터링 된다.
도 1은 일 실시예에 따라 악성 프로그램의 탐지 기술을 실행하는 시스템을 간략하게 도시한 도면이다.
도 2는 일 실시예에 따라 서버에서 악성 프로그램을 탐지하는 방법을 설명하기 위한 흐름도이다.
도 3은 일 실시예에 따라 클라우드 네트워크에서의 단말기들과 클론들을 도시한 도면이다.
도 4는 일 실시예에 따른 악성 프로그램 탐지 방법을 보다 상세하게 설명하기 위한 흐름도이다.
도 5는 일 실시예에 따라 프로파일 벡터를 계산하는 방법을 설명하기 위한 다이어그램이다.
도 6은 일 실시예에 따른 클라우드 네트워크 상에서 통신하는 클론들에 대응되는 단말기들 간에 유사도를 표시한 다이어그램이다.
도 7은 일 실시예에 따른 서버가 클론들을 클러스터링 하는 방법을 설명하기 위한 도면이다.
도 8 및 도 9는 일 실시예에 따른 서버에서 악성 프로그램이 탐지된 단말기에 대응되는 클론과 동일한 그룹으로 클러스터링 된 클론들에 대응되는 단말기들을 탐지하는 방법을 설명하기 위한 도면이다.
도 10은 일 실시예에 따른 악성 프로그램을 탐지하는 서버를 설명하기 위한 블록도이다.
도 11은 다른 실시예에 따라 악성 프로그램을 탐지하는 시스템을 도시한 다이어그램이다.
도 12는 다른 실시예에 따른 악성 프로그램 탐지 방법을 수행하는 어플리케이션이 실행되는 컴퓨팅 환경을 도시한 도면이다.
도 13은 도 11에 도시된 다른 실시예에 따른 악성 프로그램을 탐지하는 시스템에 의해 수행되는 다양한 기능을 설명하기 위한 흐름도를 도시한 도면이다.
도 14는 일 실시예에 따라 단말기에서 악성 프로그램을 탐지하는 방법을 설명하기 위한 흐름도이다.
도 15는 일 실시예에 따라 악성 프로그램을 탐지하는 단말기를 도시한 블록도이다.
도 16는 다른 실시예에 따른 악성 프로그램 탐지 시스템을 도시한 다이어그램이다.
도 2는 일 실시예에 따라 서버에서 악성 프로그램을 탐지하는 방법을 설명하기 위한 흐름도이다.
도 3은 일 실시예에 따라 클라우드 네트워크에서의 단말기들과 클론들을 도시한 도면이다.
도 4는 일 실시예에 따른 악성 프로그램 탐지 방법을 보다 상세하게 설명하기 위한 흐름도이다.
도 5는 일 실시예에 따라 프로파일 벡터를 계산하는 방법을 설명하기 위한 다이어그램이다.
도 6은 일 실시예에 따른 클라우드 네트워크 상에서 통신하는 클론들에 대응되는 단말기들 간에 유사도를 표시한 다이어그램이다.
도 7은 일 실시예에 따른 서버가 클론들을 클러스터링 하는 방법을 설명하기 위한 도면이다.
도 8 및 도 9는 일 실시예에 따른 서버에서 악성 프로그램이 탐지된 단말기에 대응되는 클론과 동일한 그룹으로 클러스터링 된 클론들에 대응되는 단말기들을 탐지하는 방법을 설명하기 위한 도면이다.
도 10은 일 실시예에 따른 악성 프로그램을 탐지하는 서버를 설명하기 위한 블록도이다.
도 11은 다른 실시예에 따라 악성 프로그램을 탐지하는 시스템을 도시한 다이어그램이다.
도 12는 다른 실시예에 따른 악성 프로그램 탐지 방법을 수행하는 어플리케이션이 실행되는 컴퓨팅 환경을 도시한 도면이다.
도 13은 도 11에 도시된 다른 실시예에 따른 악성 프로그램을 탐지하는 시스템에 의해 수행되는 다양한 기능을 설명하기 위한 흐름도를 도시한 도면이다.
도 14는 일 실시예에 따라 단말기에서 악성 프로그램을 탐지하는 방법을 설명하기 위한 흐름도이다.
도 15는 일 실시예에 따라 악성 프로그램을 탐지하는 단말기를 도시한 블록도이다.
도 16는 다른 실시예에 따른 악성 프로그램 탐지 시스템을 도시한 다이어그램이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
개시된 실시예들은 네트워크 상에서 전자 디바이스들(이하, 단말기들)간에 악성 프로그램이 확산되는 것을 제어하기 위한, 단말기의 악성 프로그램(malware)을 탐지하는 방법이다. 본 발명의 일 실시예에 따르면, 단말기들에 대응되는 각각의 가상 머신(virtual machine)들이 서버에 생성될 수 있다. 여기에서 서버는 클라우드 서버를 포함할 수 있다. 이하에서는 클라우드 서버를 기준으로, 일 실시예에 따른 악성 프로그램 탐지 기술에 대해 설명하도록 한다. 다만, 일 실시예에 따른 악성 프로그램 탐지 기술이 클라우드 서버에만 한정되어 적용되는 것은 아니다.
이하에서는 도 1 내지 도 16을 참고하여 일 실시예에 따른 악성 프로그램의 탐지 기술에 대해 설명하도록 한다.
도 1은 일 실시예에 따라 악성 프로그램의 탐지 기술을 실행하는 시스템(100)(이하, 악성 프로그램 탐지 시스템(100))을 간략하게 도시한 도면이다.
도 1의 (a)를 참고하면, 악성 프로그램 탐지 시스템(100)에는 클라우드 네트워크(108) 상에서 서로 통신을 수행하는 적어도 하나의 단말기(102-1, 102-2, 102-N, 이하 단말기들(102)) 및 적어도 하나의 가상 머신(104-1, 104-2, 104-N)이 포함된다. 적어도 하나의 가상 머신(104-1, 104-2, 104-N)은 단말기들(102) 각각에서 실행되는 응용 프로그램들을 단말기들(102)과 동일하게 수행할 수 있는 소프트웨어이다. 본 명세서에서 “가상 머신”의 용어는 “클론”의 용어와 상호 교환적으로 사용된다. 이하에서는 설명의 편의상 적어도 하나의 가상 머신(104-1, 104-2, 104-N)을 클론들(이하, 104)로 지칭하여 설명하도록 한다.
단말기들(102)에는 스마트폰, 태블릿, 랩탑, 컴퓨터, 커뮤니케이터 및 휴대용 단말기 등이 포함될 수 있다. 다만 이러한 악성 프로그램 탐지 시스템(100)에 포함되는 단말기들(102)의 종류는 일 실시예일 뿐, 본 발명이 이에 한정되는 것은 아니다.
일 실시예에 따르면, 클론들(104)은 스마트폰과 같은 단말기들(102)의 실행 이미지(running image)를 포함한다. 단말기들(102)은 클라우드 네트워크(108)상에서 대응되는 클론들(104) 각각에 실행 이미지를 복사한다. 실행 이미지에는 예를 들어, 구성 파라미터(configuration parameter) 및 인터렉션 파라미터(interaction parameter) 등의 단말기(예를 들어, 102-1)와 관련된 적어도 하나의 파라미터가 포함된다.
여기에서, 구성 파라미터는 단말기(예를 들어, 102-1)에 설치되어 있는 다양한 소프트웨어의 종류 정보, 기능 정보 및 버전 정보를 포함할 수 있다. 또한, 인터렉션 파라미터는 단말기들(102) 간에 통신 내역에 관련된 정보를 포함할 수 있다. 예를 들어, 인터렉션 파라미터는 소정의 단말기(예를 들어, 102-1)와 다른 단말기들(예를 들어, 102-2, 102-N)간에 연결이 빈번하게 일어나는지 여부를 나타내는 정보를 포함할 수 있다.
다른 예에 따르면, 클론들(104)은 클라우드 네트워크(108)에서 운영되고 있는 모바일 운영 시스템(OS) 또는 폰 에뮬레이터(emulator)일 수 있다.
한편, 클론(104-1)은 클론투클론(Clone to Clone, C2C)으로 불리는 클라우드 네트워크(108) 내에 생성된 다른 클론들(예를 들어, 104-2, 104-N)과 통신한다. 단말기들(102)에 각각 대응되는 클론들(104)이 포함되어 있는 클라우드 네트워크(108)에서는 클론들(104)간에 자원을 공유하고, 집단 지성(collective intelligence)을 생성함으로써 클론들(104)간에 서로 협력(collaborate)하여 악성 프로그램을 탐지할 수 있다.
클라우드 네트워크(108)는 클라우드 인프라 스트럭쳐(infra structure)를 관리한다. 또한, 클라우드 네트워크(108)는 컨텐츠 검색, 악성 프로그램 탐지 및 악성 프로그램 제어와 같은 서비스가 클론들(104) 상에 배치될 수 있도록 서비스 제공자를 위한 플랫폼(platform)을 제공한다.
한편, 클라우드 네트워크(108)에서의 악성 프로그램 탐지 방법은 일 실시예일 뿐, 본 발명의 적용 범위가 클라우드 네트워크(108)에 한정되는 것은 아니다. 예를 들어, 유선 네트워크, 무선 네트워크, 셀룰러 네트워크, 이동 통신에 대한 전역 시스템(global system) 네트워크, 지역(local) 네트워크, 원격(remote) 네트워크 및 이것들의 조합 또는 다른 통신 네트워크에서도 일 실시예에 따른 악성 프로그램 탐지 방법이 적용될 수 있다.
예를 들어, 단말기들(102)은 클라우드 네트워크(108) 상에서 클론들(104)과 통신하기 위해 110, 112 및 114와 같은 네트워크를 이용할 수 있다. 여기에서, 네트워크는 지역 또는 원격 네트워크를 포함할 수 있다. 단말기들(102)에 의해 이용되는 110, 112 및 114와 같은 지역 또는 원격 네트워크는 서로 같거나 다를 수 있다.
도 1의 (b)를 참고하면, 다른 실시예에 따른 악성 프로그램 탐지 시스템(100)은 단말기들(102) 및 적어도 하나의 서버(103)를 포함할 수 있다. 도 1의 (b)는 적어도 하나의 서버(103) 내에 클론들(104)이 포함된다는 점에서 도 1의 (a)와 차이가 있다.
악성 프로그램 탐지 시스템(100)에서 서버(103)는 단말기들(102)에 각각 대응되는 클론들(104)을 생성한다. 단말기들(102)에 각각 대응되는 클론들(104)은 단말기들(102)과 협력(collaborate)하여, 악성 프로그램이 단말기들(102)에 확산되는 것을 방지한다. 단말기들(102)과 클론들(104)이 협력하여 악성 프로그램의 확산을 방지하는 방법에 대해서는 다음에서 구체적으로 설명하도록 한다.
일 실시예에 따른 서버(103)는 단말기들(102)에 관한 정보를 수신한다. 서버(103)는 수신된 정보를 기초로, 단말기들(102)에 대응되는 클론들(104)을 싱글 또는 그룹으로 클러스터링 한다. 여기에서, 서버(103)가 단말기들(102)로부터 수신한 정보에는 단말기들(102)과 관련된 파라미터 정보가 포함된다.
서버(103)는 단말기들(102)과 관련된 파라미터에 기초하여 클론들(104)을 싱글 또는 그룹으로 클러스터링 한다. 단말기들(102)과 관련된 파라미터에는 전술한 구성 파라미터와 인터렉션 파라미터가 포함될 수 있다. 예를 들어, 서버(103)는 수신한 구성 파라미터 및 인터렉션 파라미터에 기초하여, 클론들(104)에 대응되는 단말기들(102)간에 구성 파라미터가 유사한지 여부 및 단말기들(102)간에 통신을 빈번하게 수행하는지 여부를 판단할 수 있다. 서버(103)는 판단 결과에 따라 클론들(104)을 싱글 또는 그룹으로 클러스터링 할 수 있다.
서버(103)는 단말기들(102) 중 적어도 하나의 단말기(예를 들어, 102-1)에서 악성 프로그램이 탐지되는 경우, 악성 프로그램에 관한 정보를 다른 단말기들(예를 들어, 102-2 또는 102-N)에 전송한다.
예를 들어, 서버(103)는 단말기들(102) 중 악성 프로그램이 탐지된 제 1 단말기(예를 들어, 102-1)에 대한 정보를 획득할 수 있다. 또한, 서버(103)는 제 1 단말기(예를 들어, 102-1)와 동일한 그룹으로 클러스터링 된 제 2 단말기(예를 들어, 102-2)에 대한 정보를 획득할 수 있다. 서버(103)는 획득된 정보를 기초로, 제 2 단말기(예를 들어, 102-2)에 제 1 단말기(예를 들어, 102-1)의 악성 프로그램에 관한 정보를 전송할 수 있다.
일 실시예에 따른 악성 프로그램 탐지 시스템(100)은 단말기들(102)간에 악성 프로그램이 확산되는 것을 탐지하고 제어하는데 있어, 동적이고, 견고하며, 신뢰 가능하다. 악성 프로그램 탐지 시스템(100)은 미리 악성 프로그램에 대해 대응할 수 있도록 악성 프로그램에 취약한 단말기(예를 들어, 102-2)를 식별하고, 식별된 단말기(예를 들어, 102-2)에 악성 프로그램에 대한 경고를 보낼 수 있다.
경고를 받은 단말기(예를 들어, 102-2)는 악성 프로그램이 탐지된 단말기(예를 들어, 102-1)로부터 어플리케이션을 다운로드 하는 등의 악성 프로그램이 탐지된 단말기(예를 들어, 102-1)와 통신하는 동작을 제한할 수 있다.
악성 프로그램 탐지 시스템(100)은 기존의 인프라 스트럭쳐(infra structure), 컴포넌트들(components)과 모듈들(modules)을 이용하여 구현될 수 있고, 광범위한 설치나 기기를 필요로 하지 않는다.
한편, 도 1에 도시된 악성 프로그램 탐지 시스템(100)은 일 실시예일 뿐, 악성 프로그램 탐지 시스템(100)에 포함되는 단말기들(102)과 서버(103)의 개수 및 배치는 제한되지 않고 다양하게 구성될 수 있다.
도 2는 개시된 일 실시예에 따라 서버(103)에서 악성 프로그램을 탐지하는 방법을 설명하기 위한 흐름도이다.
단계 210에서, 서버(103)는 단말기들(102)에 각각 대응되는 클론들(104)을 생성한다. 서버(103)는 클라우드 네트워크(108) 상에서, 단말기들(102) 각각의 실행 이미지를 복사하여 단말기들(102)에 대응되는 클론들(104)에 저장한다.
실행 이미지에는 구성 파라미터 및 인터렉션 파라미터 등이 포함될 수 있다. 서버(103)는 단말기들(120)로부터 수신한 구성 파라미터 및 인터렉션 파라미터를 단말기들(120) 각각에 대응되는 클론들(104)에 저장할 수 있다.
구성 파라미터는 예를 들어, 운영 시스템 버전 정보, 브라우져 버전 정보, 디바이스 드라이버 정보, 미들웨어(middleware) 정보 및 전송 제어 소프트웨어 정보 등을 포함할 수 있다. 또한, 인터렉션 파라미터는 콜 상세(call detail) 정보, 컨택트 리스트(contact list) 정보, SMS 상세(Short Message Service details) 정보, MMS 상세(Multimedia Message Service details) 정보, 이메일 상세(Email details) 정보 및 NFC(Near Field Communication), 와이파이, 블루투스 연결 상에서의 페어(pair) 단말기에 대한 정보 등 단말기들(102)간에 통신 내역과 관련된 정보를 포함할 수 있다.
한편, 서버(103)는 수신한 단말기들(102)의 구성 파라미터 및 인터렉션 파라미터를 기초로 단말기들(102) 각각에 대한 프로파일 정보를 산출한다. 서버(103)가 구성 파라미터 및 인터렉션 파라미터를 기초로 프로파일 정보를 산출하는 방법에 대해서는 도 5를 참고하여 구체적으로 후술하도록 한다.
단계 220에서, 서버(103)는 단말기들(102) 각각의 프로파일 정보에 기초하여, 클론들(104)을 클러스터링 한다. 예를 들어, 서버(103)는 단말기들(102) 간의 프로파일 정보에 기초하여 산출된 유사도 정보에 따라 클론들(104)을 클러스터링 할 수 있다. 서버(103)에서 단말기들(102)의 프로파일 정보를 기초로 유사도 정보를 산출하는 방법에 대해서는 도 4를 참고하여, 구체적으로 후술하도록 한다.
단계 230에서, 서버(103)는 단말기들(102) 중 적어도 하나의 단말기(예를 들어, 102-1)에서 악성 프로그램이 탐지되는 경우, 악성 프로그램이 탐지된 제 1 단말기(예를 들어, 102-1)에 대응되는 제 1 클론(예를 들어, 104-1)과 동일한 그룹으로 클러스터링 된 제 2 클론(예를 들어, 104-2)에 대응되는 제 2 단말기(예를 들어, 102-2)에 악성 프로그램의 탐지에 관한 정보를 제공한다.
제 1 단말기(예를 들어, 102-1)에서 악성 프로그램이 탐지된 경우, 서버(103)는 악성 프로그램이 탐지된 제 1 단말기(예를 들어, 102-1)에 관한 정보를 획득한다. 또한, 서버(103)는 탐지된 악성 프로그램의 종류에 관한 정보를 획득할 수도 있다. 다른 실시예에 따라 서버(103)는 외부 디바이스를 이용하여 단말기들(102) 중 악성 프로그램이 탐지된 제 1 단말기(예를 들어, 102-1)가 존재하는지 여부를 확인할 수 도 있다.
한편, 서버(103)는 제 1 단말기(예를 들어, 102-1)와 동일한 그룹으로 클러스터링 된 제 2 단말기(예를 들어, 102-2)를 검출한다. 서버(103)가 제 1 단말기(예를 들어, 102-1)와 동일한 그룹으로 클러스터링 된 제 2 단말기(예를 들어, 102-2)를 검출하는 방법은 도 9를 참고하여 구체적으로 후술하도록 한다.
또한, 서버(103)는 제 2 단말기(예를 들어, 102-2)에 제 1 단말기(예를 들어, 102-1)에서 악성 프로그램이 탐지되었다는 정보를 전송한다. 예를 들어, 서버(103)는 제 2 단말기(예를 들어, 102-2)에 제 1 단말기(예를 들어, 102-1)와의 통신을 제한하기 위한 경고 메시지를 전송할 수 있다.
여기에서 경고 메시지에는 오디오 메시지, 비디오 메시지, 텍스트 메시지, 윈도우/ 팝업 메시지 등이 포함될 수 있으나, 전술한 경고 메시지의 종류는 일 실시예일 뿐, 본 발명에 따른 경고 메시지의 종류가 이에 한정되는 것은 아니다.
도 3은 일 실시예에 따른 클라우드 네트워크(108)에서의 단말기들(102)과 클론들(104)을 도시한 도면이다.
도 3을 참고하면, 클론들(104)은 전술한 도 1의 (a) 및 (b)에서의 클론들(104)과 대응될 수 있다.
클론들(104) 각각은 클라우드 네트워크(108) 상에서 서로 통신한다. 예를 들어, 클론들(104)에는 라우팅 가능한 네트워크 이름에 대한 정보가 포함되어 있어, 네트워크 이름에 대한 정보를 기초로 클론들(104) 간에 통신이 수행될 수 있다. 여기에서, 네트워크 이름에는 클라우드 네트워크(108)에서 라우팅 가능한 적어도 하나의 IP 주소가 포함될 수 있다.
일 실시예에 따르면, 클론들(104) 각각에 대응되는 단말기들(102) 간에 통신이 수행되는 경우 클론들(104)은 서로 통신할 수 있다. 예를 들어, 클론 104-1에 대응되는 단말기 102-1과 클론 104-2에 대응되는 단말기 102-2가 통신(302)하는 경우, 클론 104-1과 클론 104-2 는 서로 통신(304)할 수 있다. 클론 104-1과 클론 104-2는 서로 통신(304)하는 과정에서, 단말기 102-1과 단말기 102-2에 각각 관련된 구성 파라미터와 인터렉션 파라미터를 교환할 수 있다.
또한, 클론들(104)은 각각 대응되는 단말기(102)들과 통신한다. 예를 들어, 클론 104-1, 클론 104-2 및 클론 104-N 은 각각 대응되는 단말기인 단말기 102-1, 단말기 102-2 및 단말기 102-N 과 통신할 수 있다.
한편, 일 실시예에 따른 악성 탐지 프로그램 방법은, 승인되지 않은 접근으로부터 단말기들(102)과 클론들(104) 각각에 저장되어 있는 데이터 및 정보를 보호하기 위해 통신을 허용하고자 하는 단말기들(102)과 클론들(104)을 식별한다.
도 4는 일 실시예에 따른 악성 프로그램 탐지 방법을 보다 상세하게 설명하기 위한 흐름도이다.
단계 401에서, 서버(103)는 단말기들(102)에 대응되는 클론들(104)을 생성한다. 또한, 서버(103)는 단말기들(102)로부터 수신한 각각의 실행 이미지를 클론들(104) 각각에 저장한다. 실행 이미지에는 전술한 바와 같이 단말기(예를 들어, 102-1)의 구성 파라미터 및 인터렉션 파라미터와 같이 단말기(예를 들어, 102-1)와 관련된 적어도 하나의 파라미터가 포함될 수 있다.
단계 402에서, 서버(103)는 생성된 클론들(104) 각각에 저장되어 있는 단말기들(102)의 구성 파라미터를 기초로 단말기들(102) 각각의 특성(feature) 벡터를 계산한다. 특성 벡터는 단말기들(102) 각각의 구성 파라미터를 이진 비트 패턴으로 표현한 정보를 포함할 수 있다. 예를 들어, 구성 파라미터에 단말기 C1에 대한 안드로이드 플랫폼, 안드로이드 브라우저, 디바이스 드라이버, 미들웨어 및 전송 제어 소프트웨어에 대한 정보가 포함되는 경우, 안드로이드 플랫폼은 코드 0110, 안드로이드 브라우저 코드는 0011, 디바이스 드라이버 코드는 0111, 미들웨어 코드는 0101, 전송 제어 소프트웨어 코드는 1110으로 나타낼 수 있다.
또한, 서버(103)는 특정 시점에서의 단말기 C1의 구성 파라미터를 특성 벡터로 나타낼 수 있다. 예를 들어, 시간 t1에서의 단말기 C1의 특성 벡터(C1, t1)은 비트 패턴(0110, 0011, 0111, 0101, 1110)으로 나타낼 수 있다. 다음은 단말기 C1의 특성 벡터를 나타낸 표 1이다.
운영 시스템 버전 |
브라우저 버전 | 디바이스 드라이버 |
미들웨어 | 전송 제어 소프트웨어 |
0110 | 0011 | 0111 | 0101 | 1110 |
단계 403에서 서버(103)는 클론들(104) 각각에 대응되는 단말기들(102)의 인터렉션 파라미터를 기초로 인터렉션 벡터를 계산한다. 인터렉션 파라미터에는 단말기(예를 들어, 단말기 102-1)가 다른 단말기(예를 들어, 단말기 102-2, 102-N)와 통신을 수행한 빈도수(frequency)에 대한 정보가 포함될 수 있다.
다음은 단말기 C1에 대한 시간 t1에서의 인터렉션 벡터 (C1, t1)를 도시한 표 2이다.
U1 | U2 | U3 | U4 | U5 |
29 | 21 | 15 | 7 | 3 |
표 2 를 참고하면, 인터렉션 벡터의 각각의 엔트리에는 단말기 C1과 각각의 다른 단말기(U1, U2, U3, U4, U5)간에 수행된 통신의 횟수가 포함된다. 예를 들어, 표 2에 개시된 바와 같이 단말기 C1과 단말기 U1간에 수행된 통신 횟수는 29, 단말기 C1과 단말기 U2간에 수행된 통신 횟수는 21인 것을 확인할 수 있다.
한편, 서버(103)는 단말기들(102) 중에서 기설정된 시간 이상 통신한 단말기에 대해서만 프로파일 정보를 산출할 수도 있다.
단계 404에서, 서버(103)는 클론들(104) 각각에 대응되는 특성 벡터와 인터렉션 벡터를 이용하여 클론들(104)과 대응되는 단말기들(102)에 대한 프로파일 정보를 산출한다. 여기에서, 프로파일 정보에는 단말기들(102) 각각에 대한 구성 벡터와 인터렉션 벡터에 기초하여 산출된 프로파일 벡터가 포함될 수 있다.
프로파일 벡터(C1, t1)는 단말기 C1의 시간 t1에서의 특성 벡터(C1, t1)와 인터렉션 벡터(C1, t1)의 합으로 계산될 수 있다.
단계 405에서, 서버(103)는 단말기들(102) 각각의 프로파일 정보를 기초로 단말기들(102)간에 유사도를 산출한다. 일 실시예에 따르면 서버(103)는 단말기들(102)간에 유사도를 산출하기 위해 클론들(104)이 단말기들(102)의 프로파일 정보를 공유하도록 제어할 수 있다. 이하에서는, 프로파일 정보의 일 예인 프로파일 벡터를 기준으로 설명하도록 한다.
예를 들어, 서버(103)는 단말기 C1과 단말기 C2가 서로 콜(call), SMS 및 MMS 등을 통해 통신하는 경우, 단말기 C1 및 단말기 C2에 각각 대응되는 클론 C1 및 클론 C2가 서로 프로파일 벡터를 교환하도록 클론 C1 및 클론 C2를 제어할 수 있다. 클론 C1은 클론 C2와의 프로파일 벡터의 교환 과정을 통해 단말기 C2의 프로파일 벡터를 획득할 수 있다. 서버(103)는 단말기 C1의 프로파일 벡터와 획득된 단말기 C2의 프로파일 벡터를 기초로 단말기 C1과 단말기 C2간에 유사도를 산출하도록 클론 C1을 제어할 수 있다.
서버(103)는 코사인 함수를 이용하여, 클론들(104) 간에 유사도를 산출할 수 있다. 예를 들어, 클론 C1은 단말기 C1의 프로파일 벡터(이하, 프로파일 벡터 A)와 단말기 C2의 프로파일 벡터(이하, 프로파일 벡터 B)를 다음 수학식 1에 적용하여, 단말기 C1과 단말기 C2간에 유사도를 산출할 수 있다. 프로파일 벡터 A 와 프로파일 벡터 B 사이의 유사도는 다음 수학식 1에 의해 결정될 수 있다.
<수학식 1>
수학식 1에 기초하여 산출된 단말기 C1과 단말기 C2간에 유사도는 -1 내지 1 사이의 값을 가질 수 있다. 유사도의 값이 양수인 경우에는, 단말기 C1과 단말기 C2 간에 구성이 유사하고, 단말기 C1과 단말기 C2가 서로 빈번하게 통신한다는 것을 확인할 수 있다. 한편, 유사도의 값이 음수인 경우에는 단말기 C1과 단말기 C2 간에 구성이 유사하지 않고 단말기 C1과 단말기 C2가 서로 빈번하게 통신하지 않는다는 것을 확인할 수 있다.
다음은 클론 C1과 다른 클론들(Ci, Ck, Cl, Cm, Cn 및 Cp) 간에 유사도를 나타낸 표 3이다.
Ci | Ck | Cl | Cm | Cn | Cp |
-0.6 | 0.9 | 0.03 | 0.44 | 0.12 | -0.6 |
단계 406에서 서버(103)는 산출된 유사도에 기초하여 클론들(104)을 싱글 또는 그룹으로 클러스터링 한다. 예를 들어, 서버(103)는 유사도가 기설정된 값 이상을 갖는 클론들(예를 들어, C1, Ck, Cm)을 동일한 그룹으로 클러스터링 할 수 있다.
서버(103)는 각각 싱글 또는 그룹으로 클러스터링 된 클론들(104)의 정보를 저장할 수 있다. 또한, 서버(103)는 클론들(104)의 클러스터링 정보와 함께, 클론들(104) 각각이 대응되는 단말기들(102)에 대한 정보를 저장할 수 있다.
단계 407에서 서버(103)는 단말기들(102)과 관련된 악성 프로그램을 탐지한다. 예를 들어, 서버(103)는 단말기들(102) 각각의 동작에 기초하여, 단말기(예를 들어, 단말기 102-1)를 악성 프로그램이 탐지된 것으로 판단할 수 있다. 여기에서, 악성 프로그램을 탐지에는 기술로는 종래의 일반적인 방법들이 사용될 수 있다. 또한, 서버(103)는 단말기들(102)로부터 악성 프로그램 탐지 여부에 대한 정보를 수신할 수도 있다. 단말기들(102) 각각은 악성 프로그램에 감염되었다고 판단한 경우, 악성 프로그램에 감염되었다는 정보를 서버(103)에 전송할 수 있다.
한편, 전술한 단말기(예를 들어, 102-1)의 악성 프로그램 감염 여부를 판단하는 주체는 일 실시예일 뿐, 본 발명이 이에 한정되는 것은 아니다. 다른 예에 따르면, 안티 악성 프로그램 소프트웨어와 같은 외부 소스가 단말기(예를 들어, 102-1)와 관련된 악성 프로그램을 탐지할 수도 있다.
단계 408에서 서버(103)는 악성 프로그램 탐지에 관한 정보를 생성한다. 예를 들어, 단말기(예를 들어, 102-1)에서 악성 프로그램이 탐지되는 경우, 서버(103)는 악성 프로그램에 대한 경고를 포함하는 메시지를 생성하도록 할 수 있다. 예를 들어, 메시지는 오디오 메시지, 비디오 메시지, 텍스트 메시지, 윈도우/팝업 형태의 경고 메시지 등을 포함할 수 있으나, 전술한 메시지의 종류는 일 실시예일 뿐, 본 발명이 이에 한정되는 것은 아니다.
단계 409에서, 서버(103)는 악성 프로그램이 탐지된 단말기(예를 들어, 102-1)와 동일한 그룹으로 클러스터링 된 적어도 하나의 단말기들(예를 들어, 102-2, 102-N)에 대응되는 클론들(예를 들어, 104-2, 104-N)에 악성 프로그램의 탐지에 관한 정보를 전송한다. 예를 들어, 서버(103)는 악성 프로그램에 취약한 단말기들(예를 들어, 102-2, 102-N)에 대응되는 클론들(예를 들어, 104-2, 104-N)로 구성된 그룹을 식별하고, 식별된 그룹에 포함된 각 단말기들(예를 들어, 102-2, 102-N)에 악성 프로그램의 탐지에 관한 정보를 전송할 수 있다.
다른 실시예에 따르면, 서버(103)는 소셜 네트워킹 사이트와 같은 외부 소스를 통해 악성 프로그램에 취약한 단말기들(예를 들어, 102-2, 102-N)에 악성 프로그램의 탐지에 관한 정보를 전송할 수 있다. 악성 프로그램의 탐지에 관한 정보를 수신한 단말기들(예를 들어, 102-2, 102-N)은 악성 프로그램이 탐지된 단말기(102-1)로부터 어플리케이션을 다운로드 받지 않거나, 데이터를 수신하는 등의 동작을 수행하지 않도록 제어될 수 있다.
도 5는 일 실시예에 따른 프로파일 벡터(506)를 계산하는 방법을 설명하기 위한 다이어그램(500)이다.
서버(103)에 생성된 클론들(104)은 각각 대응되는 단말기들(102)과 연관된 구성 파라미터를 이용하여 특성 벡터(502)를 계산할 수 있다. 예를 들어, 구성 파라미터에는 운영 시스템 버전 정보, 브라우저 버전 정보, 디바이스 드라이버 정보, 미들웨어 정보 및 전송 제어 소프트웨어 정보가 포함될 수 있다.
또한, 클론들(104)은 각각 대응되는 단말기들(102)과 연관된 인터렉션 파라미터를 이용하여 인터렉션 벡터(504)를 계산할 수 있다. 인터렉션 파라미터는 콜 상세 정보, 컨택트 리스트 정보, SMS 상세 정보, MMS 상세 정보, 이메일 상세정보, NFC, 와이파이, 블루투스 연결 상에서의 페어 디바이스에 대한 정보 등 단말기간에 통신 내역과 관련된 정보를 포함할 수 있다.
일 실시예에 따르면, 전술한 바와 같이 클론들(104)은 각각에 대응되는 단말기들(102)의 특성 벡터(502)와 인터렉션 벡터(504)를 이용하여 프로파일 벡터(506)를 산출할 수 있다.
도 6은 일 실시예에 따른 클라우드 네트워크(108) 상에서 통신하는 클론들에 대응되는 단말기들 간에 유사도를 표시한 다이어그램(600)이다.
도 6을 참고하면, 단말기들은 다이어그램(600)에서 노드들(602, C2-C16, C20)로 표시된다. 도 6에서 설명하는 단말기들과 클론들은 도 1의 (a)와 (b)에서 전술한 단말기들(102) 및 클론들(104)과 동일한 기능을 수행한다. 예를 들어, C8(604)은 도 1 (a) 및 (b)에 도시된 단말기 102-N과 대응 가능하다.
서버(103)는 노드 u(예를 들어, C3)와 노드 v(예를 들어, C14)를 연결할 수 있다. 노드 u(예를 들어, C3)는 제 1 단말기(102-1)에 대응될 수 있고 노드 v(예를 들어, C14)는 제 2 단말기(102-2)에 대응될 수 있다. 서버(103)는 노드 u(예를 들어, C3)와 노드 v(예를 들어, C14) 간에 유사도가 기설정된 임계값 보다 높은 경우, (u, v) 또는 (v, u)간에 연결에 대한 가중치룰 최대값으로 설정할 수 있다.
일 실시예에 따르면, 서버(103)는 클론들(104)에 적어도 하나 이상의 클러스터링 기법을 사용할 수 있다. 예를 들어, 클러스터링 기법에는 파티셔닝 기법(partitioning technique), 계층 기법(hierarchical technique), 싱글 링크 기법(single-link technique), 거리 기반 클러스터링 기법, 지역 기반 클러스터링 기법(locality-based clustering technique) 및 유사도 기반 클러스터링 기법(similarity-based clustering technique) 등 적어도 하나 이상의 클러스터링 기법 등이 포함될 수 있다. 다만, 전술한 클러스터링 기법들은 일 실시예일 뿐, 본 발명이 이에 한정되는 것은 아니다.
도 7은 일 실시예에 따른 서버(103)가 클론들을 클러스터링 하는 방법을 설명하기 위한 다이어그램(700)이다. 도 7에서 설명하는 단말기들과 클론들은 도 1의 (a)와 (b)에서 전술한 단말기들(102) 및 클론들(104)과 동일한 기능을 수행한다.
도 7에 도시된 노드들(C2-C16, C20)은 대응되는 단말기들간에 프로파일 벡터(506)를 기준으로 산출된 유사도 값이 기설정된 값 이상인 경우 동일한 그룹으로 클러스터링 된다. 예를 들어, 노드 C3, C9, C14 및 C15는 제 1 그룹, 노드 C2, C6, C7, C8 및 C20은 제 2 그룹 및 노드 C4, C5, C6, C10, C11, C12 및 C13은 제 N 그룹으로 클러스터링 될 수 있다.
동일한 그룹으로 클러스터링 된 단말기들(예를 들어, 노드 C3, C9, C15 및 C14)간에는 다른 그룹으로 클러스터링 된 단말기들(예를 들어, C2, C6, C7, C8 및 C20)에 비해 구성 파라미터가 유사하고, 인터렉션 파라미터의 값이 상대적으로 높다. 예를 들어, 제 1 그룹에 포함된 노드 C3, C9, C14 및 C15 간에는 구성 파라미터가 유사하고 인터렉션 파라미터의 값이 상대적으로 높을 수 있다. 서버(103)는 노드 C3, C9, C14 및 C15들 중 어느 하나의 노드(예를 들어. C3)에 대응되는 단말기에서 악성 프로그램이 탐지된 경우, 제 1 그룹에 포함된 노드들(C9, C14 및 C15)에 대응되는 단말기들이 탐지된 악성 프로그램에 취약한 것으로 판단할 수 있다.
도 8 및 도 9는 일 실시예에 따른 서버(103)에서 악성 프로그램이 탐지된 단말기(예를 들어, 단말기 X)에 대응되는 클론과 동일한 그룹으로 클러스터링 된 클론들에 대응되는 단말기들(예를 들어, 102-6, 102-7, 102-N)을 식별하는 방법을 설명하기 위한 도면이다.
도 8은 단말기들(102-1, 102-2, 102-3, 102-4, 102-5, 102-6, 102-7 및 X)이 도시되어 있다. 도 8에 도시된 단말기들(102-1, 102-2, 102-3, 102-4, 102-5, 102-6, 102-7 및 X)에는 동일 그룹으로 클러스터링 가능한 단말기들(예를 들어, 102-6, 102-7, 102-N)이 포함될 수 있다.
일 실시예에 따라, 악성 프로그램 탐지 시스템(100)은 단말기들(102)과 관련된 악성 프로그램을 탐지할 수 있다. 악성 프로그램 탐지 시스템(100)은 악성 프로그램을 포함하거나 악성 프로그램에 의해 영향을 받은 단말기 X를 검출할 수 있다.
도 9는 일 실시예에 따라 악성 프로그램이 탐지된 단말기 X와 동일한 그룹에 포함되는 단말기들(예를 들어, 102-6, 102-7, 102-N)을 식별하는 방법을 설명하기 위한 도면이다. 서버(103)는 단말기 X와 동일한 그룹에 포함되는 단말기들(예를 들어, 102-6, 102-7, 102-N))을 악성 프로그램에 취약한 단말기들 (예를 들어, 102-6, 102-7, 102-N)로 판단할 수 있다. 서버(103)는 악성 프로그램에 취약한 단말기들(예를 들어, 102-6, 102-7, 102-N)을 포함하는 그룹을 식별하고, 식별된 그룹의 단말기들(예를 들어, 102-6, 102-7, 102-N)에 악성 프로그램의 탐지에 관한 정보를 전송할 수 있다.
예를 들어, 도 9에 도시된 바와 같이, 단말기 X가 악성 프로그램을 포함하거나 악성 프로그램에 영향을 받은 경우, 단말기 X는 감염된 어플리케이션을 다른 단말기들(102-6, 102-7, 102-N)과 공유할 수 있다. 단말기 X는 동일 그룹으로 클러스터링 된 다른 단말기들(102-6, 102-7, 102-N)과 구성 파라미터와 인터렉션 파라미터의 유사도가 높으므로, 단말기 X로부터 감염된 어플리케이션을 수신하여 악성 프로그램이 감염될 확률이 상대적으로 높다. 종래와 달리, 일 실시예에 따르면, 서버(103)는 취약한 단말기들(102-6, 102-7, 102-N)을 식별하고, 식별된 단말기들(102-6, 102-7, 102-N)에 탐지된 악성 프로그램에 관한 정보를 클론들(104)을 통해 전송할 수 있다.
도 10은 일 실시예에 따른 악성 프로그램 탐지하는 서버(1000)를 설명하기 위한 블록도이다.
도 10에서의 서버(1000)는 도 1의 서버(103)와 대응될 수 있다.
일 실시예에 따른 서버(1000)는 메모리 유닛(1010), 프로세싱 유닛(1020) 및 제어 유닛(1030)을 포함할 수 있다. 그러나 도시된 구성요소 모두가 포함되지 않을 수도 있다. 도시된 구성요소보다 많은 구성요소에 의해 서버(1000)가 구현될 수도 있고, 그보다 적은 구성요소에 의해서도 서버(1000)는 구현될 수 있다.
이하 상기 구성요소들에 대해 차례로 살펴본다.
메모리 유닛(1010)은 복수의 단말기들(102)에 각각 대응되는 가상 머신인 클론들(104)을 저장한다. 예를 들어, 메모리 유닛(1010)은 단말기들(102) 각각의 실행 이미지를 복사하여 저장함으로써, 단말기들(102)에 대응되는 클론들(104)을 생성할 수 있다. 여기에서, 실행 이미지에는 구성 파라미터 및 인터렉션 파라미터 등 단말기들(102)과 관련된 파라미터들이 포함될 수 있다.
한편, 프로세싱 유닛(1020)은 수신한 단말기들(102)의 구성 파라미터 및 인터렉션 파라미터를 기초로 단말기들(102) 각각에 대한 프로파일 정보를 산출한다. 프로세싱 유닛(1020)은 단말기들(102)의 프로파일 정보를 비교함으로써, 단말기들(102)간에 유사도를 산출할 수 있다. 프로세싱 유닛(1020)에서 프로파일 정보를 산출하는 방법은 도 4를 참고하여 설명한 서버(103)가 프로파일 정보를 산출하는 방법과 동일할 수 있다.
프로세싱 유닛(1020)은 단말기들(102) 각각의 프로파일 정보에 기초하여, 클론들(104)을 클러스터링 한다. 프로세싱 유닛(1020)은 단말기들(102) 각각의 프로파일 정보를 비교하여 산츨된 유사도가 기설정된 값 이상인 적어도 하나의 단말기(예를 들어, 102-1, 102-2, 102-N)를 싱글 또는 그룹으로 클러스터링 할 수 있다. 한편, 프로세싱 유닛(1020)이 유사도 정보를 산출하는 방법은 도 4를 참고하여 설명한 서버(103)가 유사도를 산출하는 방법과 동일할 수 있다.
제어 유닛(1030)은 단말기들(102) 중 적어도 하나의 단말기(예를 들어, 102-1)에서 악성 프로그램이 탐지되는 경우, 적어도 하나의 단말기(예를 들어, 102-1)와 동일한 그룹에 포함되는 단말기(예를 들어, 102-2, 102-N)에 악성 프로그램의 탐지에 관한 정보를 제공한다.
또한, 제어 유닛(1030)은 단말기들(102) 중 적어도 하나의 단말기(예를 들어, 102-1)에서 악성 프로그램이 탐지되는 경우, 악성 프로그램이 탐지된 단말기(예를 들어, 102-1)에 대한 정보를 획득할 수 있다. 또한, 제어 유닛(1030)은 악성 프로그램의 종류에 대한 정보를 획득할 수도 있다. 다른 실시예에 따라 제어부(1030)는 외부 디바이스로부터 단말기들(102) 중 악성 프로그램이 탐지된 단말기(예를 들어, 102-1)에 대한 정보를 획득할 수도 있다.
한편, 제어 유닛(1030)은 악성 프로그램에 감염된 단말기(예를 들어, 102-1)와 동일한 그룹으로 클러스터링 된 단말기들(예를 들어, 102-2, 102-N)을 식별할 수 있다. 제어 유닛(1030)는 동일한 그룹으로 클러스터링 된 단말기들(예를 들어, 102-2, 102-N) 각각에 악성 프로그램에 관련된 경고 메시지를 전송할 수 있다.
도 11은 다른 실시예에 따라 단말기(예를 들어, 102-1)의 악성 프로그램을 탐지 하는 시스템(1100)을 도시한 다이어그램이다. 도 11을 참고하면, 제어 유닛(1130)은 클라우드 네트워크(108)의 외부에 존재할 수 있다. 여기에서, 제어 유닛(1130)은 도 10의 제어 유닛(1030)과 대응 가능하다.
일 실시예에 따르면, 제어 유닛(1130)은 클라우드 네트워크(108)의 외부에서, 클라우드 네트워크(108)의 내부에 존재하는 클론들(104)과 통신을 수행하여, 악성 프로그램이 탐지된 제 1 단말기(예를 들어, 102-1)에 대한 정보를 획득할 수 있다. 제어 유닛(1130)은 획득한 제 1 단말기(예를 들어, 102-1)에 대한 정보를 제 1 단말기(예를 들어, 102-1)에 대응되는 제 1 클론(예를 들어, 104-1)과 동일한 그룹으로 클러스터링 된 제 2 클론(예를 들어, 104-2)에 대응되는 제 2 단말기(예를 들어, 102-2)에 전송할 수 있다.
도 12는 일 실시예에 따른 악성 프로그램 탐지 방법을 수행하는 어플리케이션이 실행되는 컴퓨팅 환경(1202)을 도시한 블록도(1200)이다. 도시된 바와 같이 컴퓨팅 환경(1202)은 제어 유닛(1206)과 ALU(Arithmatic Logical Unit, 1208)를 포함한 프로세싱 유닛(1204), 메모리 유닛(1210), 저장 유닛(1212), 클락칩(1214), 네트워킹 디바이스(1216) 및 입출력 디바이스(1218)를 포함할 수 있다. 컴퓨팅 환경(1202)은 동일한 종류 또는 서로 다른 종류로 이루어진 복수개의 코어, 서로 다른 종류의 복수개의 CPU(Central Processing Unit), 특정 미디어 및 가속기들로 구성될 수 있다.
도 12를 참고하면, 제어 유닛(1206)은 프로세싱 유닛(1204)의 내부에 존재할 수도 있다. 프로세싱 유닛(1204)은 제어 유닛(1206)이 획득한 정보에 기초하여, 단말기들(102)의 프로파일 정보를 산출한다. 또한, 프로세싱 유닛(1204)은 프로파일 정보에 기초하여, 단말기들(102)간에 유사도 정보를 산출한다.
프로세싱 유닛(1204)은 알고리즘 수행에 있어서, 필요한 인스트럭션(instruction)을 처리하는 역할을 수행한다. 프로세싱 유닛(1204)은 제어 유닛(1206)으로부터 인스트럭션을 처리하기 위한 정보를 수신하고, 인스트럭션에 따른 프로세스를 수행한다. 프로세싱 유닛(1204)은 싱글 칩 또는 복수개의 칩에 위치할 수 있다.
한편, 프로세싱 유닛(1204)에서 처리되는 인스트럭션과 관련된 논리적 또는 산술적 연산은 ALU(1208)에서 수행된다.
코드 및 인스트럭션들로 구성된 알고리즘은 메모리 유닛(1210) 또는 저장 유닛(1212)에 저장된다. 메모리 유닛(1210) 및/또는 저장 유닛(1212)으로부터 획득된 인스트럭션은, 프로세싱 유닛(1204)에서 처리될 수 있다. 프로세싱 유닛(1204)은 클락칩(1214)에 의해 발생되는 시간 시그널에 기초하여 인스트럭션 처리에 필요한 연산을 동기화하여, 인스트럭션을 처리할 수 있다.
또한, 메모리 유닛(1210) 또는 저장 유닛(1212)에는 단말기들(102)에 대응되는 클론들(104)이 저장된다.
도 13은 도 11에 도시된 악성 프로그램을 탐지하는 시스템(1100)에 의해 수행되는 다양한 기능을 설명하기 위한 흐름도(1300)를 도시한 도면이다.
단계 1301에서, 단말기들(102)은 서버(103)에 생성된 클론들(104)에 각각 단말기들(102)에 대한 실행 이미지를 전송한다. 실행 이미지는 단말기들(102) 각각과 관련된 적어도 하나의 파라미터를 포함한다. 여기에서, 파라미터에는 예를 들어, 구성 파라미터 및 인터렉션 파라미터 등이 포함될 수 있다.
단계 1302에서, 단말기들(102)과 연결된 클론들(104) 각각은 구성 파라미터를 기초로 특성 벡터(502)를 계산한다. 특성 벡터(502)는 단말기들(102) 각각의 구성 파라미터를 이진 비트 패턴으로 표현하는데 사용될 수 있다.
단계 1303에서 클론들(104)은 인터렉션 파라미터를 이용하여 인터렉션 벡터(504)를 계산한다.
단계 1304에서, 클론들(104)은 특성 벡터(502)와 인터렉션 벡터(504)를 이용하여 단말기들(102)에 대한 프로파일 벡터(506)를 산출한다. 프로파일 벡터(506)를 산출하는 방법은 도 4에서 전술한 바와 동일하다.
단계 1305에서 클론들(104)은 산출된 프로파일 벡터(506)를 클론들(104)간에 서로 공유한다. 예를 들어, 클론들(104)은 주기적으로 프로파일 벡터(506)를 공유할 수 있다. 다른 예에 따르면, 클론들(104)은 각각 대응되는 단말기들(102) 간에 통신이 수행되는 경우, 서로 프로파일 벡터(506)를 공유할 수 있다.
단계 1306에서 클론들(104)은 서로 공유한 프로파일 벡터(506)들을 기초로 유사도를 산출한다. 클론들(104) 각각은 자신(예를 들어, 104-1)에 대응되는 단말기(예를 들어, 102-1)의 프로파일 벡터(506)와 다른 단말기(예를 들어, 102-2)의 프로파일 벡터(506)를 비교하여 유사도를 산출할 수 있다. 유사도를 산출하는 구체적인 방법은 도 4에서 전술한 바와 동일하다.
단계 1307에서 클론들(104)은 제어 유닛(1130)에 산출된 유사도에 대한 정보를 전송한다.
단계 1308에서 제어 유닛(1130)은 수신한 유사도 정보에 기초하여 클론들(104)을 싱글 또는 그룹으로 클러스터링 한다.
단계 1309에서 제어 유닛(1130)은 단말기들(102)과 관련된 악성 프로그램을 탐지한다. 예를 들어, 제어 유닛(1130)은 단말기들(102)과 관련되어 악성 프로그램을 탐지할 수 있는 안티 악성 프로그램 소프트웨어와 같은 외부 소스와 통신할 수 있다.
단계 1310에서 제어 유닛(1130)은 악성 프로그램에 관한 정보를 포함하는 메시지를 생성한다. 여기에서, 메시지는 오디오 메시지, 비디오 메시지, 텍스트 메시지, 윈도우/ 팝업 등이 포함될 수 있으나, 전술한 메시지의 종류는 일 실시예일 뿐, 본 발명의 메시지의 종류가 이에 한정되는 것은 아니다.
단계 1311에서, 제어 유닛(1130)은 악성 프로그램에 취약한 단말기들(예를 들어, 102-2, 102-N)을 포함하는 그룹을 식별하고, 식별된 그룹에 포함된 클론들(예를 들어, 104-2, 104-N)을 통해, 악성 프로그램이 탐지되었다는 정보를 악성 프로그램에 취약한 단말기들(예를 들어, 102-2, 102-N)에 전송할 수 있다.
도 14는 일 실시예에 따라 단말기(예를 들어, 102-1)에서 악성 프로그램을 탐지하는 방법을 설명하기 위한 흐름도이다.
단계 1410에서, 단말기(예를 들어, 102-1)는 서버(103)에 생성된 단말기(예를 들어, 102-1)에 대응되는 클론(예를 들어, 104-1)에 단말기(예를 들어, 102-1)의 프로파일에 대한 정보를 전송한다. 여기에서 프로파일 정보는 단말기(예를 들어, 102-1)와 관련된 구성 파라미터 및 인터렉션 파라미터를 기초로 산출될 수 있다.
단말기(예를 들어, 102-1)가 구성 파라미터 및 인터렉션 파라미터를 기초로 프로파일 정보를 산출하는 방법은 도 4에서 전술된 서버(103)가 구성 파라미터 및 인터렉션 파라미터에 기초하여 프로파일 정보를 산출하는 방법과 동일하다.
한편, 서버(103)는 단말기(예를 들어, 102-1)로부터 전송된 프로파일 정보에 기초하여, 단말기들(102)에 대응되는 클론들(104)을 싱글 또는 그룹으로 클러스터링 할 수 있다. 예를 들어, 서버(103)는 수신한 단말기들(102)의 프로파일 정보를 기초로 산출된 단말기들(102)간에 유사도에 따라 클론들(104)을 클러스터링 할 수 있다.
단계 1420에서, 단말기(예를 들어, 102-1)는 동일한 그룹으로 클러스터링 된 다른 단말기(예를 들어, 102-2)에 악성 프로그램이 탐지되는 경우, 서버(103)에 생성된 단말기(예를 들어, 102-1)에 대응되는 클론(예를 들어, 104-1)으로부터 악성 프로그램에 관한 정보를 수신한다. 악성 프로그램에 관한 정보는 오디오 메시지, 비디오 메시지, 텍스트 메시지, 윈도우/ 팝업 메시지 등의 형태로 단말기에 전송될 수 있으나, 전술한 메시지의 종류는 일 실시예일 뿐, 본 발명이 이에 한정되는 것은 아니다.
단계 1430에서, 단말기(예를 들어, 102-1)는 수신한 악성 프로그램에 관한 정보를 디스플레이 한다.
단말기(예를 들어, 102-1)는 수신한 악성 프로그램에 관한 정보를 텍스트, 이미지, 오디오 및 비디오 데이터 등의 형태로 디스플레이 할 수 있다. 악성 프로그램에 관한 정보를 수신한 단말기들(예를 들어, 102-2, 102-N)은 어플리케이션을 다운로드 하거나 감염된 단말기(예를 들어, 102-1)와 공유할 수 있는 수단들을 스스로 차단함으로써, 악성 프로그램에 감염되는 것을 예방할 수 있다.
한편, 다른 실시예에 따라, 단말기(예를 들어, 102-1)가 악성 프로그램에 감염된 경우에는, 악성 프로그램에 감염되었다는 정보를 서버(103)에 전송할 수 있다. 서버(103)는 단말기와 동일한 그룹에 포함된 다른 단말기들(예를 들어, 102-2, 102-N)을 식별하여, 식별된 다른 단말기들(예를 들어, 102-2, 102-N)에 악성 프로그램이 단말기(예를 들어, 102-1)에서 탐지되었다는 정보를 전송할 수 있다.
도 15는 일 실시예에 따라 악성 프로그램을 탐지하는 단말기(1500)를 도시한 블록도이다. 도 15에서의 단말기(1500)는 도 1의 단말기들(102) 중 어느 하나의 단말기(예를 들어, 102-1)에 대응될 수 있다.
본 발명의 일 실시예에 따른 단말기(1500)는 전송부(1510), 수신부(1520) 및 디스플레이부(1530)를 포함할 수 있다. 그러나 도시된 구성요소 모두가 필수구성요소인 것은 아니다. 도시된 구성요소보다 많은 구성요소에 의해 단말기(1500)가 구현될 수도 있고, 그보다 적은 구성요소에 의해서도 단말기(1500)는 구현될 수 있다.
이하 상기 구성요소들에 대해 차례로 살펴본다.
전송부(1510)는 서버(103)에 생성된 단말기(1500)에 대응되는 클론에 단말기(1500)의 프로파일 정보를 전송할 수 있다. 여기에서 프로파일 정보는 단말기(1500)와 관련된 구성 파라미터 및 인터렉션 파라미터를 기초로 산출될 수 있다.
한편, 전송부(1510)로부터 서버(103)에 전송된 프로파일 정보에 기초하여, 서버(103)는 단말기들(102)간에 유사도를 산출할 수 있다. 서버(103)는 산출된 유사도에 따라 단말기들(102)을 싱글 또는 그룹으로 클러스터링 할 수 있다.
수신부(1520)는 단말기(1500)와 동일한 그룹으로 클러스터링 된 다른 단말기(예를 들어, 102-2)에 악성 프로그램이 탐지되는 경우, 서버(103)에 생성된 단말기(1500)와 대응되는 클론(예를 들어, 104-1)으로부터 악성 프로그램에 관한 정보를 수신할 수 있다.
서버(1100)의 클러스터링 결과에 기초하여, 단말기(1500)와 동일한 그룹으로 클러스터링 된 단말기(예를 들어, 102-2)에서 악성 프로그램이 탐지되는 경우, 수신부(1520)는 악성 프로그램에 대한 통지를 수신할 수 있다. 예를 들어, 악성 프로그램이 탐지된 다른 단말기(예를 들어, 102-2)가 서버(103)에 악성 프로그램에 관한 정보를 전달하는 경우, 서버(103)는 수신한 정보를 기초로 악성 프로그램이 탐지된 다른 단말기(예를 들어, 102-2)가 포함되어 있는 그룹을 식별할 수 있다.
또한, 서버(103, 미도시)는 식별된 그룹에 포함된 클론들(예를 들어, 104-1, 104-N) 각각에 대응되는 단말기(예를 들어, 102-1, 102-N)에 악성 프로그램에 관한 정보를 전송하도록 클론들(예를 들어, 104-1, 104-N) 을 제어할 수 있다.
디스플레이부(1530)는 수신한 악성 프로그램에 관한 정보를 디스플레이 한다. 디스플레이부(1530)는 수신한 악성 프로그램에 관한 정보를 텍스트, 이미지, 오디오 및 비디오 데이터 등의 형태로 디스플레이 하여, 사용자에게 정보를 제공할 수 있다. 악성 프로그램에 관한 정보를 수신한 단말기들(예를 들어, 102-2, 102-N)은 어플리케이션을 다운로드하거나 감염된 단말기(예를 들어, 102-1)와 공유할 수 있는 수단들을 스스로 차단함으로써, 악성 프로그램에 감염되는 것을 예방할 수 있다.
한편, 다른 실시예에 따라, 단말기(1500)에서 악성 프로그램이 탐지되는 경우, 전송부(1510)는 악성 프로그램이 탐지되었다는 정보를 서버(103)에 전송할 수 있다. 서버(103)는 단말기(1500)와 동일한 그룹에 클러스터링 된 다른 단말기들(102-2, 102-N)을 식별하여, 식별된 다른 단말기들(102-2, 102-N)에, 악성 프로그램의 탐지에 관한 정보를 통지할 수 있다.
도 16는 다른 실시예에 따른 악성 프로그램 탐지 시스템(100)을 도시한 다이어그램(1600)이다.
도 16를 참고하면, 도 15의 단말기(1500)는 전송부(1510), 수신부(1520) 및 디스플레이부(1530) 이외에 제어부(1540)를 더 포함할 수 있다. 도 16에 도시된 단말기들(102)에는 설명의 편의상 제어부들(1541, 1542, 1543, 이하 제어부(1540))만을 도시하였다.
단말기들(102)의 내부에 존재하는 제어부들(1540)은 단말기들(102) 각각의 구성 파라미터 및 인터렉션 파라미터를 기초로 프로파일 정보를 산출할 수 있다. 또한, 제어부들(1540)은 서버(103)에 존재하는 클론들(104)과 통신하여, 동일한 그룹으로 클러스터링 된 단말기들(예를 들어, 102-1, 102-2, 102-N) 중 적어도 하나의 단말기(예를 들어, 102-1)에 악성 프로그램이 탐지된 경우, 이에 대한 정보를 다른 단말기들(예를 들어, 102-2, 102-N)에 통지할 수 있다.
본 발명에서 인용하는 공개 문헌, 특허 출원, 특허 등을 포함하는 모든 문헌들은 각 인용 문헌이 개별적으로 및 구체적으로 병합하여 나타내는 것 또는 본 발명에서 전체적으로 병합하여 나타낸 것과 동일하게 본 발명에 병합될 수 있다.
본 발명의 이해를 위하여, 도면에 도시된 바람직한 실시 예들에서 참조 부호를 기재하였으며, 본 발명의 실시 예들을 설명하기 위하여 특정 용어들을 사용하였으나, 특정 용어에 의해 본 발명이 한정되는 것은 아니며, 본 발명은 당업자에 있어서 통상적으로 생각할 수 있는 모든 구성 요소들을 포함할 수 있다.
본 발명은 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 발명은 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 본 발명에의 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 발명은 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 발명은 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. “매커니즘”, “요소”, “수단”, “구성”과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
본 발명의 명세서(특히 특허청구범위에서)에서 “상기”의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 발명에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 본 발명에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 본 발명이 한정되는 것은 아니다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 발명의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다
1000: 서버
1010: 메모리 유닛
1020: 프로세싱 유닛
1030: 제어 유닛
1010: 메모리 유닛
1020: 프로세싱 유닛
1030: 제어 유닛
Claims (21)
- 서버에서 복수의 단말기들 각각에 대응되는 가상 머신(virtual machine)들을 생성하는 단계;
상기 복수의 단말기들 각각의 프로파일 정보에 기초하여, 상기 생성된 가상 머신들을 클러스터링(clustering) 하는 단계; 및
상기 복수의 단말기 중 적어도 하나의 단말기에서 악성 프로그램이 탐지되는 경우, 상기 악성 프로그램이 탐지된 제 1 단말기에 대응되는 제 1 가상 머신과 동일한 그룹으로 클러스터링 된 제 2 가상 머신을 통해, 상기 제 2 가상 머신에 대응되는 제 2 단말기에 상기 악성 프로그램의 탐지에 관한 정보를 제공하는 단계를 포함하는 서버에서 단말기의 악성 프로그램을 탐지하는 방법. - 제 1항에 있어서,
상기 복수의 단말기들 각각의 구성 정보 및 상기 복수의 단말기들 간의 인터렉션 정보를 획득하는 단계; 및
상기 획득한 구성 정보 및 상기 인터렉션 정보를 기초로 상기 복수의 단말기들 각각에 대한 프로파일 정보를 산출하는 단계를 더 포함하고,
상기 클러스터링 하는 단계는, 상기 산출된 프로파일 정보에 기초하여, 상기 생성된 가상 머신들을 클러스터링 하는 서버에서 단말기의 악성 프로그램을 탐지하는 방법. - 제 1항에 있어서, 상기 생성된 가상 머신들을 클러스터링 하는 단계는,
상기 프로파일 정보에 기초하여 상기 복수의 단말기들 상호간에 유사도를 산출하는 단계; 및
상기 산출된 유사도에 기초하여 상기 생성된 가상 머신들을 클러스터링 하는 단계를 포함하는 서버에서 단말기의 악성 프로그램을 탐지하는 방법. - 제 3항에 있어서, 상기 복수의 단말기들 상호간에 유사도를 산출하는 단계는,
상기 복수의 단말기들 각각에 대한 상기 프로파일 정보를 상기 복수의 단말기들 각각에 대응되는 가상 머신들에 저장하는 단계; 및
상기 복수의 단말기들 각각에 대응되는 가상 머신들간에 상기 저장된 프로파일 정보를 교환하는 단계를 포함하고,
상기 유사도를 산출하는 단계는,
상기 교환된 프로파일 정보에 기초하여 상기 복수의 단말기들 상호간에 상기 유사도를 산출하는 서버에서 단말기의 악성 프로그램을 탐지하는 방법. - 제 4항에 있어서, 상기 저장된 프로파일 정보를 교환하는 단계는,
상기 복수의 단말기들 중 통신을 수행하는 단말기들에 대응되는 가상 머신들간에 상기 프로파일 정보를 교환하는 서버에서 단말기의 악성 프로그램을 탐지하는 방법. - 제 1항에 있어서, 상기 악성 프로그램의 탐지에 관한 정보를 제공하는 단계는,
상기 제 1 단말기에 대응되는 상기 제 1 가상 머신이 포함된 그룹을 식별하는 단계;
상기 식별된 그룹에 포함되는 상기 제 2 가상 머신을 검출하는 단계; 및
상기 검출된 제 2 가상 머신에 대응되는 상기 제 2 단말기에 상기 악성 프로그램의 탐지에 관한 정보를 포함하는 메시지를 전송하는 단계를 포함하는 서버에서 단말기의 악성 프로그램을 탐지하는 방법. - 단말기에서, 서버에 생성된 상기 단말기에 대응되는 가상 머신(virtual machine)에 상기 단말기의 프로파일에 대한 정보를 전송하는 단계;
상기 단말기와 동일한 그룹에 클러스터링 된 다른 단말기에서 악성 프로그램이 탐지된 경우, 상기 서버에 생성된 가상 머신으로부터 상기 악성 프로그램의 탐지에 관한 정보를 수신하는 단계; 및
상기 수신된 악성 프로그램의 탐지에 관한 정보를 디스플레이 하는 단계를 포함하는 단말기에서 악성 프로그램을 탐지하는 방법. - 제 7항에 있어서,
상기 단말기에서 악성 프로그램이 탐지된 경우, 상기 악성 프로그램의 탐지에 관한 정보를 상기 서버에 전송하는 단계를 더 포함하는 단말기에서 악성 프로그램을 탐지하는 방법. - 제 7항에 있어서, 상기 프로파일 정보는,
상기 단말기의 구성 정보 및 상기 단말기와 통신을 수행하는 단말기들 간의 인터렉션 정보에 기초하여 산출되는 단말기에서 악성 프로그램을 탐지하는 방법. - 제 7항에 있어서,
상기 단말기와 상기 다른 단말기는 상기 단말기의 프로파일 정보에 기초하여 산출된 유사도에 따라 동일한 그룹으로 클러스터링 되는 단말기에서 악성 프로그램을 탐지하는 방법. - 복수의 단말기들 각각에 대응되는 가상 머신들을 저장하는 메모리 유닛;
상기 복수의 단말기들 각각의 프로파일 정보에 기초하여, 상기 가상 머신들을 클러스터링(clustering)하는 프로세싱 유닛; 및
상기 복수의 단말기 중 적어도 하나의 단말기에서 악성 프로그램이 탐지되는 경우, 상기 악성 프로그램이 탐지된 제 1 단말기에 대응되는 제 1 가상 머신과 동일한 그룹으로 클러스터링 된 제 2 가상 머신을 통해, 상기 제 2 가상 머신에 대응되는 제 2 단말기에 상기 악성 프로그램의 탐지에 관한 정보를 제공하는 제어 유닛을 포함하는 단말기의 악성 프로그램을 탐지하는 서버. - 제 11항에 있어서, 상기 제어 유닛은,
상기 복수의 단말기들 각각의 구성 정보 및 상기 복수의 단말기들 간의 인터렉션 정보를 획득하고, 상기 획득한 구성 정보 및 상기 인터렉션 정보를 기초로 상기 복수의 단말기 각각에 대한 프로파일 정보를 산출하고,
상기 프로세싱 유닛은,
상기 산출된 프로파일 정보에 기초하여 상기 생성된 가상 머신들을 클러스터링 하는 단말기의 악성 프로그램을 탐지하는 서버. - 제 11항에 있어서, 상기 프로세싱 유닛은,
상기 프로파일 정보에 기초하여 상기 복수의 단말기들 상호간에 유사도를 산출하고 상기 산출된 유사도에 기초하여 상기 생성된 가상 머신들을 클러스터링 하는 단말기의 악성 프로그램을 탐지하는 서버. - 제 13항에 있어서, 상기 메모리 유닛은,
상기 복수의 단말기들 각각에 대한 상기 프로파일 정보를 상기 복수의 단말기들 각각에 대응되는 가상 머신들에 저장하고,
상기 제어 유닛은,
상기 복수의 단말기들 각각에 대응되는 가상 머신들간에 상기 저장된 프로파일 정보를 교환하고,
상기 프로세싱 유닛은,
상기 교환된 프로파일 정보에 기초하여 상기 복수의 단말기들 상호간에 유사도를 산출하는 단말기의 악성 프로그램을 탐지하는 서버. - 제 14항에 있어서, 상기 제어 유닛은,
상기 복수의 단말기들 중 통신을 수행하는 단말기들에 대응되는 가상 머신들간에 상기 프로파일 정보를 교환하는 단말기의 악성 프로그램을 탐지하는 서버. - 제 11항에 있어서, 상기 제어 유닛은,
상기 제 1 단말기에 대응되는 상기 제 1 가상 머신이 포함된 그룹을 식별하고, 상기 식별된 그룹에 포함되는 상기 제 2 가상 머신을 검출하여, 상기 제 2 가상 머신에 대응되는 상기 제 2 단말기에 상기 악성 프로그램의 탐지에 관한 정보를 포함하는 메시지를 전송하는 단말기의 악성 프로그램을 탐지하는 서버. - 서버에 생성된 상기 단말기에 대응되는 가상 머신(virtual machine)으로 상기 단말기의 프로파일에 대한 정보를 전송하는 전송부;
상기 단말기와 동일한 그룹에 클러스터링 된 다른 단말기에서 악성 프로그램이 탐지된 경우, 상기 서버에 생성된 가상 머신으로부터 상기 악성 프로그램의 탐지에 관한 정보를 수신하는 수신부; 및
상기 수신된 악성 프로그램에 관한 정보를 디스플레이 하는 디스플레이부를 포함하는 악성 프로그램을 탐지하는 단말기. - 제 17항에 있어서, 상기 전송부는,
상기 단말기에서 악성 프로그램이 탐지된 경우, 상기 악성 프로그램의 탐지에 관한 정보를 상기 서버에 전송하는 악성 프로그램을 탐지하는 단말기. - 제 17항에 있어서,
상기 단말기의 구성 정보 및 상기 단말기와 통신을 수행하는 단말기들 간의 인터랙션 정보에 기초하여 상기 단말기의 프로파일 정보를 산출하는 제어부를 더 포함하는 악성 프로그램을 탐지하는 단말기. - 제 17항에 있어서, 상기 단말기와 상기 다른 단말기는, 상기 단말기의 프로파일 정보에 기초하여 산출된 유사도에 따라 동일한 그룹으로 클러스터링 되는 악성 프로그램을 탐지하는 단말기.
- 제 1항 내지 제 10항 중 어느 하나의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN1508/DEL/2013 | 2013-05-21 | ||
IN1508DE2013 | 2013-05-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140136894A true KR20140136894A (ko) | 2014-12-01 |
KR101901911B1 KR101901911B1 (ko) | 2018-09-27 |
Family
ID=51936335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140060485A KR101901911B1 (ko) | 2013-05-21 | 2014-05-20 | 악성 프로그램을 탐지하는 방법 및 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9361461B2 (ko) |
KR (1) | KR101901911B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220137852A (ko) * | 2016-11-17 | 2022-10-12 | 삼성전자주식회사 | 데이터 인식 및 트레이닝 장치 및 방법 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2502254B (en) * | 2012-04-20 | 2014-06-04 | F Secure Corp | Discovery of suspect IP addresses |
US9699201B2 (en) * | 2014-09-25 | 2017-07-04 | International Business Machines Corporation | Automated response to detection of threat to cloud virtual machine |
US9860208B1 (en) | 2014-09-30 | 2018-01-02 | Palo Alto Networks, Inc. | Bridging a virtual clone of a target device in a honey network to a suspicious device in an enterprise network |
US10044675B1 (en) | 2014-09-30 | 2018-08-07 | Palo Alto Networks, Inc. | Integrating a honey network with a target network to counter IP and peer-checking evasion techniques |
US9882929B1 (en) | 2014-09-30 | 2018-01-30 | Palo Alto Networks, Inc. | Dynamic selection and generation of a virtual clone for detonation of suspicious content within a honey network |
US9495188B1 (en) | 2014-09-30 | 2016-11-15 | Palo Alto Networks, Inc. | Synchronizing a honey network configuration to reflect a target network environment |
US9600320B2 (en) | 2015-02-11 | 2017-03-21 | International Business Machines Corporation | Mitigation of virtual machine security breaches |
US9756065B2 (en) * | 2015-09-28 | 2017-09-05 | International Business Machines Corporation | Sequencing virtual machines |
US9917811B2 (en) | 2015-10-09 | 2018-03-13 | International Business Machines Corporation | Security threat identification, isolation, and repairing in a network |
US11053065B2 (en) | 2016-12-30 | 2021-07-06 | Pill Development Group, LLC | Tablet and capsule dispensing assembly |
WO2018126190A1 (en) | 2016-12-30 | 2018-07-05 | Brady Robert Owen | Tablet and capsule dispensing assembly |
US11116698B2 (en) | 2016-12-30 | 2021-09-14 | Pill Development Group, LLC | Method of installing and removing a rotation mechanism within pill dispensing assemblies |
US10540496B2 (en) | 2017-09-29 | 2020-01-21 | International Business Machines Corporation | Dynamic re-composition of patch groups using stream clustering |
CN108197473B (zh) * | 2017-12-25 | 2021-12-28 | 中国科学院信息工程研究所 | 一种抗干扰的环境敏感型恶意软件行为相似性评测方法和装置 |
US11265346B2 (en) | 2019-12-19 | 2022-03-01 | Palo Alto Networks, Inc. | Large scale high-interactive honeypot farm |
US11271907B2 (en) | 2019-12-19 | 2022-03-08 | Palo Alto Networks, Inc. | Smart proxy for a large scale high-interaction honeypot farm |
US11301259B1 (en) * | 2020-10-13 | 2022-04-12 | Dell Products L.P. | System control processor (SCP) cloning system |
US11803646B2 (en) * | 2021-01-30 | 2023-10-31 | Hewlett Packard Enterprise Development Lp | Vulnerability scanning |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007117636A2 (en) | 2006-04-06 | 2007-10-18 | Smobile Systems, Inc. | Malware detection system and method for comprssed data on mobile platforms |
US9177145B2 (en) * | 2009-03-24 | 2015-11-03 | Sophos Limited | Modified file tracking on virtual machines |
US8869277B2 (en) * | 2010-09-30 | 2014-10-21 | Microsoft Corporation | Realtime multiple engine selection and combining |
US20120144489A1 (en) | 2010-12-07 | 2012-06-07 | Microsoft Corporation | Antimalware Protection of Virtual Machines |
US9298918B2 (en) * | 2011-11-30 | 2016-03-29 | Elwha Llc | Taint injection and tracking |
US9135040B2 (en) * | 2012-08-03 | 2015-09-15 | International Business Machines Corporation | Selecting provisioning targets for new virtual machine instances |
US8997173B2 (en) * | 2012-09-12 | 2015-03-31 | Ca, Inc. | Managing security clusters in cloud computing environments using autonomous security risk negotiation agents |
-
2014
- 2014-05-20 KR KR1020140060485A patent/KR101901911B1/ko active IP Right Grant
- 2014-05-21 US US14/283,496 patent/US9361461B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220137852A (ko) * | 2016-11-17 | 2022-10-12 | 삼성전자주식회사 | 데이터 인식 및 트레이닝 장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
US20140351934A1 (en) | 2014-11-27 |
KR101901911B1 (ko) | 2018-09-27 |
US9361461B2 (en) | 2016-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101901911B1 (ko) | 악성 프로그램을 탐지하는 방법 및 장치 | |
US11632392B1 (en) | Distributed malware detection system and submission workflow thereof | |
US10873597B1 (en) | Cyber attack early warning system | |
US10445502B1 (en) | Susceptible environment detection system | |
US10574698B1 (en) | Configuration and deployment of decoy content over a network | |
US10148693B2 (en) | Exploit detection system | |
EP2755157B1 (en) | Detecting undesirable content | |
US10785255B1 (en) | Cluster configuration within a scalable malware detection system | |
US10581874B1 (en) | Malware detection system with contextual analysis | |
US20230122247A1 (en) | Monitoring cloud computing resources | |
US9398028B1 (en) | System, device and method for detecting a malicious attack based on communcations between remotely hosted virtual machines and malicious web servers | |
US9215209B2 (en) | Source request monitoring | |
US8706871B2 (en) | Tag latency monitoring and control system for enhanced web page performance | |
CN106339309B (zh) | 应用程序的测试方法、客户端及系统 | |
WO2015200308A1 (en) | Entity group behavior profiling | |
WO2013059138A1 (en) | System and method for whitelisting applications in a mobile network environment | |
EP2769324A1 (en) | System and method for whitelisting applications in a mobile network environment | |
GB2507360A (en) | Threat detection through the accumulated detection of threat characteristics | |
CN108028858B (zh) | 移动计算装置和用于操作移动计算装置的方法以及介质 | |
US11652828B1 (en) | Systems and methods for automated anomalous behavior detection and risk-scoring individuals | |
GB2554657A (en) | Protection from malicious and/or harmful content in cloud-based service scenarios | |
US8935784B1 (en) | Protecting subscribers of web feeds from malware attacks | |
KR102275065B1 (ko) | 보안 통제 장치 및 방법 | |
US10666533B2 (en) | Tag latency monitoring and control system for enhanced web page performance | |
US12047410B2 (en) | Systems and methods for avoiding offloading traffic flows associated with malicious data |
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 |