KR101810346B1 - 구성 경로들에 기초한 가능성 있는 악성 거동 사전 식별 방법, 디바이스 및 기록매체 - Google Patents

구성 경로들에 기초한 가능성 있는 악성 거동 사전 식별 방법, 디바이스 및 기록매체 Download PDF

Info

Publication number
KR101810346B1
KR101810346B1 KR1020167009425A KR20167009425A KR101810346B1 KR 101810346 B1 KR101810346 B1 KR 101810346B1 KR 1020167009425 A KR1020167009425 A KR 1020167009425A KR 20167009425 A KR20167009425 A KR 20167009425A KR 101810346 B1 KR101810346 B1 KR 101810346B1
Authority
KR
South Korea
Prior art keywords
configuration
mobile computing
computing device
probability
malicious
Prior art date
Application number
KR1020167009425A
Other languages
English (en)
Other versions
KR20160065863A (ko
Inventor
비나이 스리드하라
사티아지트 프라바카르 파트네
라자르시 굽타
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20160065863A publication Critical patent/KR20160065863A/ko
Application granted granted Critical
Publication of KR101810346B1 publication Critical patent/KR101810346B1/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
    • 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/55Detecting local intrusion or implementing counter-measures
    • 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
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/12Detection or prevention of fraud
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/12Detection or prevention of fraud
    • H04W12/128Anti-malware arrangements, e.g. protection against SMS fraud or mobile malware
    • 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
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Telephone Function (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

다양한 양태들이 현재 구성이 주어진다고 하면 모바일 컴퓨팅 디바이스들이 가까운 장래에 악성 거동을 경험할 위험에 처해 있는 경우를 그 모바일 컴퓨팅 디바이스들이 인식하는 것을 가능하게 하는 시스템들 및 방법들을 포함한다. 따라서, 다양한 양태들은 악성 거동이 시작된 후가 아니라 악성 거동이 시작되기 전에 모바일 컴퓨팅 디바이스들이 악성 거동들을 예상하는 것을 가능하게 한다. 다양한 양태들에서, 네트워크 서버가 다수의 모바일 컴퓨팅 디바이스들로부터 거동 벡터 정보를 수신하고 패턴 인식 기법들을 수신된 거동 벡터 정보에 적용하여 악성 구성들과 식별된 악성 구성들로 이어질 수도 있는 경로 구성들을 식별할 수도 있다. 네트워크 서버는 모바일 컴퓨팅 디바이스들에게 식별된 악성 구성들 및 대응하는 경로 구성들을 알려주는 것에 의해, 모바일 컴퓨팅 디바이스들이 악성 거동으로 이어지는 경로 구성에 들어간 경우를 인식함으로써 모바일 컴퓨팅 디바이스들이 악성 거동이 시작되는 것을 예상하고 방지하는 것을 가능하게 할 수도 있다.

Description

구성 경로들에 기초한 가능성 있는 악성 거동 사전 식별 방법, 디바이스 및 기록매체{METHOD, DEVICE AND STORAGE MEDIUM FOR PRE-IDENTIFYING PROBABLE MALICIOUS BEHAVIOR BASED ON CONFIGURATION PATHWAYS}
관련 출원들
본 출원은 발명의 명칭 "Malware Detection and Prevention by Monitoring and Modifying a Hardware Pipeline"으로 2013년 10월 3자로 출원된 미국 특허 출원 제14/044,956호 (대리인 사건 번호 133068U2) 에 관련되며 이로써 그 전체가 참조로 본원에 통합된다.
일반적으로, 모바일 컴퓨팅 디바이스의 성능 및 전력 효율은 시간 경과에 따라 저하한다. 안티-바이러스 회사들 (예컨대, 맥아피 (McAfee), 시만텍 (Symantec) 등) 은 이 저하를 늦추는 것을 목표로 하는 모바일 안티-바이러스, 방화벽, 및 암호화 제품들을 이제 판매한다. 그러나, 다수의 이들 솔루션들은, 모바일 컴퓨팅 디바이스의 프로세싱 및 배터리 자원들의 대다수를 소비하며, 연장된 시구간들 동안 모바일 컴퓨팅 디바이스를 느려지게 하거나 또는 쓸모 없게 만들고, 및/또는 그렇지 않으면 사용자 경험을 저하시킬 수도 있는, 모바일 디바이스 상의 계산 집약적 (computationally-intensive) 스캐닝 엔진의 주기적 실행에 의존한다. 덧붙여서, 이들 솔루션들은 알려진 바이러스들 및 맬웨어 (malware) 를 검출하는 것으로 통상 제한되고, 다수의 복잡한 요인들 및/또는 시간 경과에 따른 모바일 컴퓨팅 디바이스의 저하에 기여하기 위해 종종 결합되는 상호작용들을 (예컨대, 성능 저하가 바이러스들 또는 맬웨어로 인한 것이 아닐 경우) 해결하지 못한다. 이들 및 다른 이유들로, 현존하는 안티-바이러스, 방화벽, 및 암호화 제품들은, 시간 경과에 따른 모바일 디바이스의 저하에 기여할 수도 있는 수많은 요인들을 식별하기 위한 또는 모바일 컴퓨팅 디바이스 저하를 방지하기 위한 적절한 해결책들을 제공하지 못한다.
다양한 양태들은 모바일 컴퓨팅 디바이스 상의 악성 거동 (malicious behavior) 을 그 악성 거동이 발생된 또는 시작된 후가 아니라 그 악성 거동이 시작되기 전에 예상하기 위한 시스템을 제시한다. 다양한 양태들에서, 네트워크 서버가 다수의 모바일 컴퓨팅 디바이스들로부터 거동 벡터 정보를 수신할 수도 있고 수신된 거동 벡터 정보에 다양한 패턴 인식 기법들을 구현하여 악성 구성들 및 그들 악성 구성들로 이어지는 경로 (pathway) 구성들을 식별할 수도 있다. 네트워크 서버는 모바일 컴퓨팅 디바이스들에게 식별된 악성 구성들 및 대응하는 경로 구성들을 알려주는 것에 의해, 모바일 컴퓨팅 디바이스가 악성 거동으로 이어지는 경로 구성에 들어간 또는 막 들어가려고 하는 경우를 인식함으로써 모바일 컴퓨팅 디바이스가 악성 거동을 실시간으로 예상 및 방지하는 것을 가능하게 할 수도 있다.
일 양태에서, 네트워크 서버는 모바일 컴퓨팅 디바이스들이 진행중인 악성 활동을 검출한 후 복수의 모바일 컴퓨팅 디바이스들로부터 구성 정보를 수신할 수도 있다. 구성 정보는 악성 거동이 검출되었던 시간에서의 모바일 컴퓨팅 디바이스들의 구성들 또는 상태들, 뿐만 아니라 악성 거동으로까지 이어지는 모바일 컴퓨팅 디바이스들의 구성들 및 상태들의 이력을 나타낼 수도 있다. 네트워크 서버는 어셈블된 (assembled) 모바일 컴퓨팅 디바이스들의 구성 정보를 분석하여 악성 거동을 나타내는 구성들과 악성 구성들로 이어지는 구성들 간의 구성 패턴들 및 경로들 (즉, 경로 구성들) 을 결정할 수도 있다. 서버는 식별된 경로 구성들을 데이터베이스 또는 다른 적합한 데이터 구조 속으로 어셈블할 수도 있고, 모바일 컴퓨팅 디바이스들이 그들 소유의 거동들 및 구성들을 분석함에 있어서 사용할 수 있는 식별된 악성 구성들 및 경로 구성들의 데이터베이스 또는 데이터 구조를 제공하는 악성 및 경로 구성 데이터베이스들을 모바일 컴퓨팅 디바이스들로 전송할 수도 있다.
일 양태에서, 악성 및 경로 구성 데이터베이스를 수신한 후, 모바일 컴퓨팅 디바이스가 자신의 현재 구성을 결정하고, 자신의 현재 구성과 악성 및 경로 구성 데이터베이스에 포함된 구성들을 비교하여 자신의 현재 구성이 악성 거동으로 이어지는지 (즉, 경로 구성인지) 의 여부를 결정할 수도 있다. 모바일 컴퓨팅 디바이스의 현재 구성이 경로 구성인 경우, 모바일 컴퓨팅 디바이스는 악성 거동이 시작되는 것을 예방 또는 방지하는 다양한 예방책들을 구현할 수도 있다.
다른 양태에서, 네트워크 서버는 경로 구성이 악성 거동으로 이어질 확률을 또한 계산할 수도 있다. 이러한 양태에서, 네트워크 서버는 특정 경로 구성들이 악성 구성들로 이어질 확률들을 구성 데이터베이스 또는 데이터 구조와 함께 전송할 수도 있고, 모바일 컴퓨팅 디바이스는 구성 데이터베이스 또는 데이터 구조에서의 경로 구성들 외에도 수신된 확률들을 참조하여 자신의 현재 구성이 악성 구성으로 이어질 가능성이 있는지 여부를 결정할 수도 있다.
다른 양태에서, 네트워크 서버는 수행된다면 경로 구성을 악성 구성으로 바꿀 특정 명령들을 식별할 수도 있다. 네트워크 서버는 이러한 식별된 명령들을 구성 데이터베이스 또는 데이터 구조 내에 포함시킬 수도 있고, 모바일 컴퓨팅 디바이스는 구성 데이터베이스 또는 데이터 구조를 참조하여 디바이스의 현재 구성이 경로 구성이 되는 경우 식별된 명령들의 실행을 주의하고 방지할 수도 있다.
다양한 양태들은 복수의 모바일 컴퓨팅 디바이스들로부터 구성 정보와 구성 이력들을 수신하며, 악성 구성들을 식별하기 위해 구성 정보를 분석하며, 식별된 악성 구성들 및 구성 이력들에 기초하여 경로 구성들을 식별하며, 식별된 악성 구성들과 식별된 경로 구성들을 포함하는 악성 및 경로 구성 데이터베이스를 생성하고, 악성 및 경로 구성 데이터베이스를 복수의 모바일 컴퓨팅 디바이스들로 전송함으로써, 악성 거동으로 이어지는 모바일 컴퓨팅 디바이스 구성들을 식별하기 위해 네트워크 서버에 의해 구현된 방법을 포함한다. 일 양태에서, 그 방법은 식별된 경로 구성들의 각각에 대해 악성 구성으로 전이할 확률을 계산하는 단계와 악성 및 경로 구성 데이터베이스에 계산된 확률들을 포함시키는 단계를 또한 포함할 수도 있다. 다른 양태에서, 그 방법은 식별된 경로 구성에 있는 동안 실행된 경우 식별된 악성 구성으로 이어지는 악성 경로 명령들을 식별하는 단계와 악성 및 경로 구성 데이터베이스에 실행된 경우 식별된 악성 구성들로 이어지는 식별된 명령들의 리스트를 포함시키는 단계를 또한 포함할 수도 있다.
추가의 양태들은 악성 및 경로 구성 데이터베이스를 수신하는 단계, 현재 구성을 결정하는 단계, 악성 및 경로 구성 데이터베이스에 기초하여 현재 구성이 악성 구성으로 이어지는지 여부를 결정하는 단계, 및 현재 구성이 악성 구성으로 이어진다고 결정하는 것에 응답하여 악성 구성을 피하기 위한 예방책들을 구현하는 단계에 의해, 모바일 컴퓨팅 디바이스 상의 가능성 있는 악성 거동을 가능성 있는 악성 거동이 발생하기 전에 예측하기 위해 모바일 컴퓨팅 디바이스에 의해 구현되는 방법을 포함한다. 일 양태에서, 악성 구성을 피하기 위한 예방책들을 구현하는 단계는 현재 구성에 연관된 프로세스를 식별하는 단계와 그 프로세스의 실행을 늦추는 단계를 포함할 수도 있다.
다른 양태에서, 그 방법은 모바일 컴퓨팅 디바이스 상에서 발생하는 다른 거동들을 검사하는 단계, 다른 거동들의 검사에 기초하여 현재 구성이 악성 구성으로 이어질 실질적 가능성 (substantial likelihood) 이 있는지 여부를 결정하는 단계, 및 현재 구성이 악성 구성으로 이어질 실질적 가능성이 있다고 결정하는 것에 응답하여 프로세스에 대한 예방책들을 구현하는 단계를 또한 포함할 수도 있다. 또 다른 양태에서, 그 방법은 현재 구성의 분류를 결정하는 단계, 잠재적 장래 구성의 분류를 결정하는 단계, 현재 구성의 분류 및 잠재적 장래 구성의 분류에 기초하여 현재 구성이 악성 구성으로 이어질 가능성을 결정하는 단계, 가능성이 상당한지 여부를 결정하는 단계, 및 가능성이 상당하다고 결정하는 것에 응답하여 프로세스에 대한 예방책들을 구현하는 단계를 또한 포함할 수도 있다. 다른 양태에서, 그 방법은 현재 구성 및 구성 전이 확률들에 기초하여 현재 구성이 악성 구성으로 이어질 확률을 결정하는 단계로서, 구성 전이 확률들은 악성 및 경로 구성 데이터베이스에 포함되는, 현재 구성이 악성 구성으로 이어질 확률을 결정하는 단계, 현재 구성이 악성 구성으로 이어질 확률이 위험 임계값을 초과하는지 여부를 결정하는 단계, 및 현재 구성이 악성 구성으로 이어질 확률이 위험 임계값을 초과한다고 결정하는 것에 응답하여 프로세스에 대한 예방책들을 구현하는 단계를 또한 포함할 수도 있다.
추가의 양태들은 복수의 모바일 컴퓨팅 디바이스들로부터 구성 정보와 구성 이력들을 수신하는 동작, 악성 구성들을 식별하기 위해 구성 정보를 분석하는 동작, 식별된 악성 구성들 및 구성 이력들에 기초하여 경로 구성들을 식별하는 동작, 식별된 악성 구성들과 식별된 경로 구성들을 포함하는 악성 및 경로 구성 데이터베이스를 생성하는 동작, 및 악성 및 경로 구성 데이터베이스를 복수의 모바일 컴퓨팅 디바이스들로 전송하는 동작을 포함하는 동작들을 수행하기 위한 서버 실행가능 명령들로 구성된 서버 프로세서를 포함할 수도 있는 네트워크 서버를 포함할 수도 있다. 일 양태에서, 서버 프로세서는 식별된 경로 구성들의 각각에 대해 악성 구성으로 전이할 확률을 계산하는 동작과 악성 및 경로 구성 데이터베이스에 계산된 확률들을 포함시키는 동작을 포함하는 동작들을 수행하기 위한 서버 실행가능 명령들로 구성될 수도 있다. 다른 양태에서, 서버 프로세서는 식별된 경로 구성에 있는 동안 실행된 경우 식별된 악성 구성으로 이어지는 악성 경로 명령들을 식별하는 동작과 악성 및 경로 구성 데이터베이스에 실행된 경우 식별된 악성 구성들로 이어지는 식별된 명령들의 리스트를 포함시키는 동작을 포함하는 동작들을 수행하기 위한 서버 실행가능 명령들로 구성될 수도 있다.
추가의 양태들은 메모리, 트랜시버, 그리고 메모리 및 트랜시버에 커플링된 프로세서를 포함할 수도 있는 모바일 컴퓨팅 디바이스를 포함하는데, 프로세서는 악성 및 경로 구성 데이터베이스를 수신하는 동작, 현재 구성을 결정하는 동작, 악성 및 경로 구성 데이터베이스에 기초하여 현재 구성이 악성 구성으로 이어지는지 여부를 결정하는 동작, 및 현재 구성이 악성 구성으로 이어진다고 결정하는 것에 응답하여 악성 구성을 피하기 위한 예방책들을 구현하는 동작을 포함하는 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성될 수도 있다. 다른 양태에서, 프로세서는 악성 구성을 피하기 위한 예방책들을 구현하는 동작이 현재 구성에 연관된 프로세스를 식별하는 동작과 그 프로세스의 실행을 늦추는 동작을 포함하도록 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성될 수도 있다.
일 양태에서, 프로세서는 모바일 컴퓨팅 디바이스 상에서 발생하는 다른 거동들을 검사하는 동작, 다른 거동들의 검사에 기초하여 현재 구성이 악성 구성으로 이어질 실질적 가능성이 있는지 여부를 결정하는 동작, 및 현재 구성이 악성 구성으로 이어질 실질적 가능성이 있다고 결정하는 것에 응답하여 프로세스에 대한 예방책들을 구현하는 동작을 또한 포함하는 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성될 수도 있다. 다른 양태에서, 프로세서는 현재 구성의 분류를 결정하는 동작, 잠재적 장래 구성의 분류를 결정하는 동작, 현재 구성의 분류 및 잠재적 장래 구성의 분류에 기초하여 현재 구성이 악성 구성으로 이어질 가능성을 결정하는 동작, 가능성이 상당한지 여부를 결정하는 동작, 및 가능성이 상당하다고 결정하는 것에 응답하여 프로세스에 대한 예방책들을 구현하는 동작을 또한 포함하는 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성될 수도 있다. 다른 양태에서, 프로세서는 현재 구성 및 구성 전이 확률들에 기초하여 현재 구성이 악성 구성으로 이어질 확률을 결정하는 동작으로서, 구성 전이 확률들은 악성 및 경로 구성 데이터베이스에 포함되는, 현재 구성이 악성 구성으로 이어질 확률을 결정하는 동작, 현재 구성이 악성 구성으로 이어질 확률이 위험 임계값을 초과하는지 여부를 결정하는 동작, 및 현재 구성이 악성 구성으로 이어질 확률이 위험 임계값을 초과한다고 결정하는 것에 응답하여 프로세스에 대한 예방책들을 구현하는 동작을 또한 포함하는 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성될 수도 있다.
추가의 양태들은 복수의 모바일 컴퓨팅 디바이스들로부터 구성 정보와 구성 이력들을 수신하는 수단, 악성 구성들을 식별하기 위해 구성 정보를 분석하는 수단, 식별된 악성 구성들 및 구성 이력들에 기초하여 경로 구성들을 식별하는 수단, 식별된 악성 구성들과 식별된 경로 구성들을 포함하는 악성 및 경로 구성 데이터베이스를 생성하는 수단, 및 악성 및 경로 구성 데이터베이스를 복수의 모바일 컴퓨팅 디바이스들로 전송하는 수단을 포함하는 서버를 포함한다. 일 양태에서, 서버는, 식별된 경로 구성들의 각각에 대해 악성 구성으로 전이할 확률을 계산하는 수단과 악성 및 경로 구성 데이터베이스에 계산된 확률들을 포함시키는 수단을 또한 포함할 수도 있다. 다른 실시형태에서, 그 서브는 식별된 경로 구성에 있는 동안 실행된 경우 식별된 악성 구성으로 이어지는 악성 경로 명령들을 식별하는 수단과 악성 및 경로 구성 데이터베이스에 실행된 경우 식별된 악성 구성들로 이어지는 식별된 명령들의 리스트를 포함시키는 수단을 또한 포함할 수도 있다.
추가의 양태들은 악성 및 경로 구성 데이터베이스를 수신하는 수단, 현재 구성을 결정하는 수단, 악성 및 경로 구성 데이터베이스에 기초하여 현재 구성이 악성 구성으로 이어지는지 여부를 결정하는 수단, 및 현재 구성이 악성 구성으로 이어진다고 결정하는 것에 응답하여 악성 구성을 피하기 위한 예방책들을 구현하는 수단을 구비하는 모바일 컴퓨팅 디바이스를 포함한다. 일 양태에서, 악성 구성을 피하기 위한 예방책들을 구현하는 수단은 현재 구성에 연관된 프로세스를 식별하는 수단과 그 프로세스의 실행을 늦추는 수단을 포함할 수도 있다.
다른 양태에서, 모바일 컴퓨팅 디바이스는 모바일 컴퓨팅 디바이스 상에서 발생하는 다른 거동들을 검사하는 수단, 다른 거동들의 검사에 기초하여 현재 구성이 악성 구성으로 이어질 실질적 가능성이 있는지 여부를 결정하는 수단, 및 현재 구성이 악성 구성으로 이어질 실질적 가능성이 있다고 결정하는 것에 응답하여 프로세스에 대한 예방책들을 구현하는 수단을 포함할 수도 있다. 다른 양태에서, 모바일 컴퓨팅 디바이스는 현재 구성의 분류를 결정하는 수단, 잠재적 장래 구성의 분류를 결정하는 수단, 현재 구성의 분류 및 잠재적 장래 구성의 분류에 기초하여 현재 구성이 악성 구성으로 이어질 가능성을 결정하는 수단, 가능성이 상당한지 여부를 결정하는 수단, 및 가능성이 상당하다고 결정하는 것에 응답하여 프로세스에 대한 예방책들을 구현하는 수단을 또한 포함할 수도 있다. 다른 양태에서, 모바일 컴퓨팅 디바이스는 현재 구성 및 구성 전이 확률들에 기초하여 현재 구성이 악성 구성으로 이어질 확률을 결정하는 수단으로서, 구성 전이 확률들은 악성 및 경로 구성 데이터베이스에 포함되는, 현재 구성이 악성 구성으로 이어질 확률을 결정하는 수단, 현재 구성이 악성 구성으로 이어질 확률이 위험 임계값을 초과하는지 여부를 결정하는 수단, 및 현재 구성이 악성 구성으로 이어질 확률이 위험 임계값을 초과한다고 결정하는 것에 응답하여 프로세스에 대한 예방책들을 구현하는 수단을 또한 포함할 수도 있다.
추가의 양태들에서, 비일시적 서버-판독가능 저장 매체는 서버 프로세서로 하여금, 복수의 모바일 컴퓨팅 디바이스들로부터 구성 정보와 구성 이력들을 수신하는 동작, 악성 구성들을 식별하기 위해 구성 정보를 분석하는 동작, 식별된 악성 구성들 및 구성 이력들에 기초하여 경로 구성들을 식별하는 동작, 식별된 악성 구성들과 식별된 경로 구성들을 포함하는 악성 및 경로 구성 데이터베이스를 생성하는 동작, 및 악성 및 경로 구성 데이터베이스를 복수의 모바일 컴퓨팅 디바이스들로 전송하는 동작을 포함하는 동작들을 수행하게 하도록 구성된 서버 실행가능 명령들을 저장하고 있을 수도 있다. 일 양태에서, 저장된 서버 실행가능 명령들은, 서버 프로세서로 하여금, 식별된 경로 구성들의 각각에 대해 악성 구성으로 전이할 확률을 계산하는 동작과 악성 및 경로 구성 데이터베이스에 계산된 확률들을 포함시키는 동작을 포함하는 동작들을 수행하게 하도록 구성될 수도 있다. 다른 양태에서, 저장된 서버 실행가능 명령들은 서버 프로세서로 하여금, 식별된 경로 구성에 있는 동안 실행된 경우 식별된 악성 구성으로 이어지는 악성 경로 명령들을 식별하는 동작과 악성 및 경로 구성 데이터베이스에 실행된 경우 식별된 악성 구성들로 이어지는 식별된 명령들의 리스트를 포함시키는 동작을 포함하는 동작들을 수행하게 하도록 구성될 수도 있다.
추가의 양태들에서, 비일시적 프로세서 판독가능 저장 매체는 모바일 컴퓨팅 디바이스 프로세서로 하여금, 악성 및 경로 구성 데이터베이스를 수신하는 동작, 현재 구성을 결정하는 동작, 악성 및 경로 구성 데이터베이스에 기초하여 현재 구성이 악성 구성으로 이어지는지 여부를 결정하는 동작, 및 현재 구성이 악성 구성으로 이어진다고 결정하는 것에 응답하여 악성 구성을 피하기 위한 예방책들을 구현하는 동작을 포함하는 동작들을 수행하게 하도록 구성된 프로세서 실행가능 명령들을 저장하고 있을 수도 있다. 일 양태에서, 저장된 프로세서 실행가능 명령들은 모바일 컴퓨팅 디바이스 프로세서로 하여금, 악성 구성을 피하기 위한 예방책들을 구현하는 동작이 현재 구성에 연관된 프로세스를 식별하는 동작과 프로세스의 실행을 늦추는 동작을 포함하도록 동작들을 수행하게 하도록 구성될 수도 있다.
일 양태에서, 저장된 프로세서 실행가능 명령들은 모바일 컴퓨팅 디바이스 프로세서로 하여금, 모바일 컴퓨팅 디바이스 상에서 발생하는 다른 거동들을 검사하는 동작, 다른 거동들의 검사에 기초하여 현재 구성이 악성 구성으로 이어질 실질적 가능성이 있는지 여부를 결정하는 동작, 및 현재 구성이 악성 구성으로 이어질 실질적 가능성이 있다고 결정하는 것에 응답하여 프로세스에 대한 예방책들을 구현하는 동작을 포함하는 동작들을 수행하게 하도록 구성될 수도 있다. 다른 양태에서, 저장된 프로세서 실행가능 명령들은 모바일 컴퓨팅 디바이스 프로세서로 하여금, 현재 구성의 분류를 결정하는 동작, 잠재적 장래 구성의 분류를 결정하는 동작, 현재 구성의 분류 및 잠재적 장래 구성의 분류에 기초하여 현재 구성이 악성 구성으로 이어질 가능성을 결정하는 동작, 가능성이 상당한지 여부를 결정하는 동작, 및 가능성이 상당하다고 결정하는 것에 응답하여 프로세스에 대한 예방책들을 구현하는 동작을 포함하는 동작들을 수행하게 하도록 구성될 수도 있다. 다른 양태에서, 저장된 프로세서 실행가능 명령들은 모바일 컴퓨팅 디바이스 프로세서로 하여금, 현재 구성 및 구성 전이 확률들에 기초하여 현재 구성이 악성 구성으로 이어질 확률을 결정하는 동작으로서, 구성 전이 확률들이 악성 및 경로 구성 데이터베이스에 포함되는, 현재 구성이 악성 구성으로 이어질 확률을 결정하는 동작, 현재 구성이 악성 구성으로 이어질 확률이 위험 임계값을 초과하는지 여부를 결정하는 동작, 및 현재 구성이 악성 구성으로 이어질 확률이 위험 임계값을 초과한다고 결정하는 것에 응답하여 프로세스에 대한 예방책들을 구현하는 동작을 포함하는 동작들을 수행하게 하도록 구성될 수도 있다.
첨부 도면들은 본원에 통합되고 본 출원서를 구성하는 부분으로서, 본 발명의 예시적인 양태들을 도시하고, 위에서 주어진 전반적인 설명 및 아래에 주어지는 상세한 설명과 함께 본 발명의 특징들을 설명하는데 기여한다.
도 1은 다양한 양태들에서의 사용에 적합한 일 예의 통신 시스템의 네트워크 컴포넌트들을 예시하는 통신 시스템 블록도이다.
도 2는 특정 모바일 컴퓨팅 디바이스 거동, 소프트웨어 애플리케이션, 또는 프로세스가 악성 거동으로 이어지는지 여부를 결정하도록 구성된 일 양태의 모바일 컴퓨팅 디바이스에서의 예의 논리적 컴포넌트들 및 정보 흐름들을 도시하는 블록도이다.
도 3은 악성 구성들 및 악성 거동으로 이어질 구성들을 식별하고 이들 구성들을 모바일 컴퓨팅 디바이스 상의 악성 거동들을 피함에 있어서 사용하기 위해 모바일 컴퓨팅 디바이스로 전송하도록 구성된, 클라우드 서비스/네트워크에서의 네트워크 서버를 갖는 일 양태의 시스템에서의 예의 컴포넌트들 및 정보 흐름들을 도시하는 블록도이다.
도 4는 악성 구성들 및 경로 구성들에 관한 정보를 포함하는 악성 및 경로 구성 데이터베이스를 모바일 컴퓨팅 디바이스들로 전송하기 위한 일 양태의 방법을 예시하는 프로세스 흐름도이다.
도 5는 모바일 컴퓨팅 디바이스 상의 악성 구성을 예측하고 그 악성 구성을 피하기 위한 예방책들을 구현하는 일 양태의 방법을 예시하는 프로세스 흐름도이다.
도 6은 모바일 컴퓨팅 디바이스 상에서 발생하는 다른 거동들의 검사에 부분적으로 기초한 가까운 장래에 악성 거동의 실질적 가능성이 있다고 결정하는 것에 응답하여 예방책들을 구현하는 일 양태의 방법을 예시하는 프로세스 흐름도이다
도 7a는 가까운 장래의 악성 거동의 가능성을 예측하기 위한 유한 상태 기계 분석을 예시하는 유한 상태 기계 도면이다.
도 7b는 가까운 장래의 악성 거동의 가능성을 예측하는 경우에 사용되는 일 실시형태 룩업 테이블이다.
도 8은 현재 구성 및 잠재적 장래 구성들에 기초하여 악성 구성에 들어갈 가능성을 결정하는 일 양태의 방법을 예시하는 프로세스 흐름도이다.
도 9는 구성들 간의 전이 확률들에 기초하여 가까운 장래의 악성 거동의 확률을 예측하는 마르코프 체인 분석을 예시하는 마르코프 체인 도면이다.
도 10은 현재 구성이 악성 구성으로 이어질 확률에 기초하여 악성 구성에 들어갈 확률을 결정하는 일 양태의 방법을 예시하는 프로세스 흐름도이다.
도 11은 막 수행하려고 하는 명령들에 기초한 가까운 장래에 악성 거동의 실질적 가능성이 있다고 결정하는 것에 응답하여 예방책들을 구현하는 일 양태의 방법을 예시하는 프로세스 흐름도이다.
도 12는 일 양태에서의 사용에 적합한 모바일 컴퓨팅 디바이스의 컴포넌트 블록도이다.
도 13은 일 양태에서의 사용에 적합한 다른 모바일 컴퓨팅 디바이스의 컴포넌트 블록도이다.
도 14는 일 양태에서의 사용에 적합한 네트워크 서버 디바이스의 컴포넌트 블록도이다.
다양한 양태들이 첨부 도면들을 참조하여 상세히 설명될 것이다. 가능한 곳이라면 어디서든, 동일한 참조 번호들이 도면들 전체를 통해서 동일하거나 유사한 부분들을 참조하는데 사용될 것이다. 특정한 예들 및 구현예들에 대한 언급들은 예시의 목적을 위한 것이고, 발명 또는 청구항들의 범위를 제한하려는 의도는 아니다.
다수의 상이한 셀룰러 및 모바일 통신 서비스들 및 표준들이 이용가능하거나 또는 장래에 예상되는데, 이것들 모두는 다양한 양태들로부터 구현될 수도 있고 유익을 얻을 수도 있다. 이러한 서비스들 및 표준들은, 예컨대, 3세대 파트너십 프로젝트 (3GPP), LTE (long term evolution) 시스템들, 3세대 무선 모바일 통신 기술 (3G), 4세대 무선 모바일 통신 기술 (4G), 이동 통신 세계화 시스템 (GSM), 유니버셜 이동 통신 시스템 (UMTS), 3GSM, 일반 패킷 무선 서비스 (GPRS), 코드 분할 다중 접속 (CDMA) 시스템들 (예컨대, cdmaOne), EDGE (enhanced data rates for GSM evolution), AMPS (advanced mobile phone system), 디지털 AMPS (IS-136/TDMA), EV-DO (evolution-data optimized), DECT (digital enhanced cordless telecommunications), WiMAX (Worldwide Interoperability for Microwave Access), 무선 로컬 영역 네트워크 (WLAN), Wi-Fi 보호 접속 I & II (WPA, WPA2), 및 iden (integrated digital enhanced network) 을 포함한다. 이들 기술들의 각각은, 예를 들어, 음성, 데이터, 시그널링, 및/또는 콘텐츠 메시지들의 송신 및 수신을 수반한다. 개개의 원거리통신 표준 또는 기술에 관련된 기술용어 및/또는 기술적 세부사항들에 대한 임의의 참조들은 예시 목적들만을 위한 것이고, 청구항 표현에서 구체적으로 언급되지 않는 한 청구항들의 범위를 특정 통신 시스템 또는 기술로 제한하는 의도는 아니라는 것이 이해되어야 한다.
본원에서 사용되는 "모바일 컴퓨팅 디바이스"라는 용어는, 셀룰러 전화기들, 스마트폰들, 개인 또는 모바일 멀티미디어 플레이어들, 개인 정보 단말기들 (PDA들), 랩톱 컴퓨터들, 태블릿 컴퓨터들, 스마트북들, 울트라북들, 팜탑 컴퓨터들, 무선 전자 메일 수신기들, 멀티미디어 인터넷 가능 셀룰러 전화기들, 무선 게이밍 제어기들, 그리고 메모리, 성능이 중요한 프로그램가능 프로세서를 구비하고 전력 절약 방법들이 도움이 되도록 하는 배터리 전력 하에서 동작하는 유사한 개인용 전자 디바이스들 중 임의의 하나 또는 전부를 지칭한다. 다양한 양태들은 제한된 자원들을 갖는 스마트폰들과 같은 모바일 컴퓨팅 디바이스들에 대해 특히 유용하지만, 그 양태들은 프로세서를 구비하고 애플리케이션 프로그램들을 실행하는 임의의 전자 디바이스에서 대체로 유용하다.
"악성 거동"이라는 용어는 매우 다양한 바람직하지 않은 모바일 컴퓨팅 디바이스 동작들 및 특성들, 이를테면 더 긴 프로세싱 시간들, 더 낮은 배터리 수명, 개인 데이터의 소실, 악의적 경제 활동 (예컨대, 무단 (unauthorized) 프리미엄 SMS 메시지 전송), 모바일 컴퓨팅 디바이스의 탈취에 관련한 동작들, 또는 스파이 또는 봇네트 (botnet) 활동들을 위한 폰의 이용 등을 지칭하기 위해 본원에서 사용된다.
"악성 구성"이란 용어는 악성 거동을 나타내거나 또는 수행하는 모바일 컴퓨팅 디바이스, 애플리케이션, 프로세스 등의 구성을 지칭하기 위해 본원에서 사용된다. "의심되는 구성 (suspicious configuration)"이란 용어는 악성 거동의 얼마간의 증거가 있지만 악성 거동에 관한 최종적인 판단에 도달하기 전에 추가의 정보가 필요한 구성을 지칭하기 위해 본원에서 사용된다. "양성 구성 (benign configuration)"이란 용어는 악성 구성도 아니고 의심되는 구성도 아닌 구성을 지칭하기 위해 본원에서 사용된다.
"경로 구성"은 네트워크 서버가 악성 구성으로 이어질 중간 구성으로서 인식한 벡터 또는 경로를 지칭하기 위해 본원에서 사용된다. 다양한 양태들에서, 경로 구성이 악성 구성으로 이어지는 임의의 구성 (예컨대, 양성 구성, 의심되는 구성, 또는 악성 구성) 일 수도 있다.
형편없이 설계된 소프트웨어 애플리케이션들, 맬웨어, 바이러스들, 단편화된 메모리, 백그라운드 프로세스들, 및 다른 악성 거동을 포함하는, 시간 경과에 따른 모바일 컴퓨팅 디바이스의 성능 및 전력 이용 레벨들에서의 저하에 기여할 수도 있는 다양한 요인들이 있다. 그러나, 현대의 모바일 컴퓨팅 디바이스들의 복잡도로 인해, 사용자들, 운영 체제들, 및/또는 애플리케이션 프로그램들 (예컨대, 안티-바이러스 소프트웨어 등) 이 이러한 문제들의 근원들을 정확하고 효율적으로 식별하고 및/또는 식별된 문제들에 대해 적절한 구제책들을 제공하는 것은 점점 더 어렵다.
다양한 솔루션들이 컴퓨팅 디바이스 상의 악성 거동을 검출하기 위해 현재 존재한다. 많은 솔루션들이 서버 상에 구축된 악성 코드/맬웨어의 서명 데이터베이스에 전통적으로 의존한다. 이들 솔루션들은 코드의 아이덴티티 (즉, 서명), 이를테면 파일의 이름, 함수 호출의 이름, 특정 코드 세그먼트의 구조, 및 심지어 코드의 각각의 바이트의 서명에 기초하여 코드가 악성인지 여부를 검출하기 위해 서명 데이터베이스를 참조하는 것을 요구한다. 그러나, 이들 솔루션들은 코드가 실행되기까지 검출 불가능할 수도 있는 악성 거동을 검출하기에는 부적당하고 서명을 위조하는 새로운 기법들의 결과로서 점점 더 효과적이지 않다. 그 반면, 아래에서 설명되는 다양한 양태들은, 임의의 특정 아이덴티티 또는 서명에 상관 없이, 모바일 컴퓨팅 디바이스가 정상 동작들 동안 (즉, 실시간으로) 악성 거동을 검출하는 것과 이러한 악성 거동이 장래에 발생하는 것을 방지하는 것을 가능하게 한다.
다른 솔루션들은 컴퓨팅 디바이스들 상의 악성 및 양성 프로세스/프로그램들 간을 구별하기 위해 거동 모델들을 사용한다. 그러나, 이들 솔루션들은 개개의 애플리케이션 프로그램들 또는 프로세스들의 현재/진행중인 거동을 평가하는 것으로 현재 제한된다. 따라서, 이들 솔루션들은 문제들이 이미 시작된 후에만 그 문제들을 해결하는 것으로 제한된다. 그 반면, 아래에서 설명되는 다양한 양태들은 모바일 컴퓨팅 디바이스가 장래의 악성 거동을 이러한 악성 거동이 발생하기 전에 실시간으로 예상 및 방지하는 것을 가능하게 한다.
덧붙여, 일부 솔루션들은 선제 (preemptive) 스캔들을 개시함으로써 코드, 파일들, 스크립트들 등이 실행되기 전에 그것들에서 악성 거동의 징후들을 찾는다. 예를 들면, 솔루션이 인터넷 상의 로케이션으로부터 다운로드된 파일이 국부적으로 실행될 수 있기 전에 그 파일이 바이러스들에 대해 스캔되는 것을 요구할 수도 있다. 다른 솔루션들은 안전한 환경 (예컨대, 가상 기계) 에서 프로그램들 또는 프로세스들을 실행하고 그 프로그램들 또는 프로세스들이 실행하는 경우 악성으로 거동하는지 여부를 발견하는 것을 시도함으로써 악성 거동을 발견하는 것을 시도한다. 그러나, 이들 솔루션들은 상당한 컴퓨테이션 자원들의 투자를 요구하는데, 각각의 미심쩍은 프로그램들, 파일들, 프로세스들 등이 정상 동작들의 부분으로서 실행하는 것이 허용되기 전에 양성인 것으로 결정되어야만 하기 때문이다.
기존의 접근법들과는 대조적으로, 아래에서 설명되는 다양한 양태들은 모바일 컴퓨팅 디바이스가 악성 거동을 실시간으로 검출 및 방지하는 것을 가능하게 하여, 현대의 방법들의 상당한 시동 (startup) 비용을 없애고 모바일 컴퓨팅 디바이스가 장래의 악성 거동의 확실한 위험을 검출하기까지 애플리케이션들 및 프로세스들이 정상적으로 수행되는 것을 허용한다. 개요에서, 다양한 양태들은 모바일 컴퓨팅 디바이스의 동작의 현재 상태 또는 조건, 뿐만 아니라 실행을 위해 스케줄링된 동작들이 주어진다고 하면 모바일 디바이스들에게 모바일 컴퓨팅 디바이스들이 가까운 장래에 악성 거동을 경험할 위험에 처하는지 여부를 결정하는 것을 가능하게 하는 경로 구성들의 데이터베이스를 제공함으로써, 현대의 솔루션들의 제한들 - 이를테면 위에서 설명된 것들과 같음 - 을 해결한다. 따라서, 다양한 양태들은 모바일 컴퓨팅 디바이스 상의 악성 거동을 그 악성 거동이 발생된 또는 시작된 후가 아니라 그 악성 거동이 시작되기 전에 예상하기 위한 시스템을 제시한다. 다양한 양태들에서, 네트워크 서버가 다수의 모바일 컴퓨팅 디바이스들로부터 거동 벡터 정보를 수신할 수도 있고 수신된 거동 벡터 정보에 다양한 패턴 인식 기법들 (유한 상태 기계 분석을 포함함) 을 구현하여 악성 구성들 및 그들 악성 구성들로 이어지는 경로 구성들을 식별할 수도 있다. 네트워크 서버는 모바일 컴퓨팅 디바이스들에게 식별된 악성 구성들 및 대응하는 경로 구성들 (즉, 머지 않아 식별된 악성 구성들로 나갈 구성들) 을 알려주는 것에 의해, 모바일 컴퓨팅 디바이스가 악성 거동으로 이어지는 경로 구성에 들어간 또는 막 들어가려고 하는 경우를 인식함으로써 모바일 컴퓨팅 디바이스가 악성 거동을 실시간으로 예상 및 방지하는 것을 가능하게 할 수도 있다.
일 양태에서, 네트워크 서버는 모바일 컴퓨팅 디바이스들이 진행중인 악성 활동을 검출한 후 복수의 모바일 컴퓨팅 디바이스들로부터 구성 정보 (예컨대, 유한 상태 기계에서의 상태들 또는 거동 벡터에서의 벡터 값들) 를 수신할 수도 있다. 구성 정보는 악성 거동이 검출되었던 시간에서의 모바일 컴퓨팅 디바이스들의 구성들 또는 상태들, 뿐만 아니라 악성 거동으로까지 이어지는 모바일 컴퓨팅 디바이스들의 구성들 및 상태들의 이력을 나타낼 수도 있다. 네트워크 서버는 악성 거동을 나타내는 구성들을 결정하기 위해 (예컨대, 패턴 인식 또는 유한 상태 기계 분석을 이용함으로써) 어셈블된 모바일 컴퓨팅 디바이스들의 구성 정보를 분석할 수도 있다. 네트워크 서버는 악성 구성들로 이어지는 구성들 간의 구성 패턴들 및 경로들 (즉, 경로 구성들) 을 인식하기 위해 악성 구성들로부터 "되돌아가는 (walk back)"데 모바일 컴퓨팅 디바이스들의 구성 이력들을 이용할 수도 있다. 서버는 식별된 경로 구성들을 데이터베이스 또는 다른 적합한 데이터 구조 속으로 어셈블할 수도 있고, 모바일 컴퓨팅 디바이스들이 그들 소유의 거동들 및 구성들을 분석함에 있어서 사용할 수 있는 식별된 악성 구성들 및 경로 구성들의 데이터베이스 또는 데이터 구조를 제공하는 악성 및 경로 구성 데이터베이스들을 모바일 컴퓨팅 디바이스들로 전송할 수도 있다.
다른 양태에서, 악성 및 경로 구성 데이터베이스를 수신한 후, 모바일 컴퓨팅 디바이스가 자신의 현재 구성을 결정하고, 자신의 현재 구성과 악성 및 경로 구성 데이터베이스에 포함된 구성들을 비교하여 자신의 현재 구성이 악성 거동으로 이어지는지 여부를 결정할 수도 있다. 다르게 말하면, 모바일 컴퓨팅 디바이스는 자신의 현재 구성이 경로 구성인지 여부를 결정하기 위해 네트워크 서버로부터 수신된 구성 데이터베이스 또는 데이터 구조를 이용할 수도 있다. 모바일 컴퓨팅 디바이스의 현재 구성이 경로 구성인 경우, 모바일 컴퓨팅 디바이스는 악성 거동이 시작되는 것을 예방 또는 방지하는 다양한 예방책들을 구현할 수도 있다.
다른 양태에서, 네트워크 서버는 경로 구성이 악성 거동으로 이어질 확률을 또한 계산할 수도 있다. 이러한 양태에서, 네트워크 서버는 특정 경로 구성들이 악성 구성들로 이어질 확률들을 구성 데이터베이스 또는 데이터 구조와 함께 전송할 수도 있고, 모바일 컴퓨팅 디바이스는 구성 데이터베이스 또는 데이터 구조에서의 경로 구성들 외에도 수신된 확률들을 참조하여 자신의 현재 구성이 악성 구성으로 이어질 가능성이 있는지 여부를 결정할 수도 있다.
다른 양태에서, 네트워크 서버는 수행된다면 경로 구성을 악성 구성으로 바꿀 특정 명령들을 식별할 수도 있다. 네트워크 서버는 이러한 식별된 명령들을 구성 데이터베이스 또는 데이터 구조 내에 포함시킬 수도 있고, 모바일 컴퓨팅 디바이스는 구성 데이터베이스 또는 데이터 구조를 참조하여 디바이스의 현재 구성이 경로 구성이 되는 경우 식별된 명령들의 실행을 주의하고 방지할 수도 있다.
다양한 양태들이 도 1에 도시된 예의 통신 시스템 (100) 과 같은 다양한 통신 시스템들 내에 구현될 수도 있다. 전형적인 셀 전화기 네트워크 (104) 가 모바일 컴퓨팅 디바이스들 (102) (예컨대, 셀 전화기들, 랩톱들 테블릿들 등) 과 다른 네트워크 목적지들 간의 음성 통화 및 데이터를, 이를테면 전화 지상 선들 (예컨대, POTS 네트워크, 미도시) 및 인터넷 (110) 을 통해 접속시키도록 동작하는 네트워크 운영 센터 (108) 에 커플링된 복수의 셀 기지국들 (106) 을 구비한다. 모바일 컴퓨팅 디바이스들 (102) 및 전화망 (104) 간의 통신들은 양방향 무선 통신 링크들 (112), 이를테면 4G, 3G, CDMA, TDMA, LTE 및/또는 다른 셀 전화기 통신 기술들을 통해 달성될 수도 있다. 전화기 네트워크 (104) 는 인터넷 (110) 에 대한 접속을 제공하는 네트워크 운영 센터 (108) 에 커플링된 또는 그 네트워크 운영 센터 내의 하나 이상의 서버들 (114) 을 또한 포함할 수도 있다.
통신 시스템 (100) 은 전화망 (104) 에 그리고 인터넷 (110) 에 접속된 네트워크 서버들 (118) 을 더 포함할 수도 있다. 네트워크 서버 (116) 와 전화망 (104) 간의 접속은 인터넷 (110) 을 통하거나 또는 사설 네트워크 (점선 화살표로 도시된 바와 같음) 를 통할 수도 있다. 네트워크 서버 (116) 는 클라우드 서비스 제공자 네트워크 (118) 의 네트워크 인프라 내의 서버로서 또한 구현될 수도 있다. 네트워크 서버 (116) 와 모바일 컴퓨팅 디바이스들 (102) 간의 통신은 전화망 (104), 인터넷 (110), 사설 네트워크 (도시되지 않음), 또는 그것들의 임의의 조합을 통해 달성될 수도 있다.
모바일 컴퓨팅 디바이스들 (102) 은 모바일 컴퓨팅 디바이스 (102) 에서의 거동, 상태, 분류, 모델링, 성공률, 및/또는 통계 정보를 수집하고, 수집된 정보를 네트워크 서버 (116) 에 분석을 위해 (예컨대, 전화망 (104) 을 통해) 전송할 수도 있다. 일 양태에서, 모바일 컴퓨팅 디바이스들 (102) 은 악성 거동을 경험한 후 자신들의 현재 구성 정보 (예컨대, 자신들의 현재 상태를 기술하는 자신들의 거동 벡터들) 를 전송할 수도 있다. 모바일 컴퓨팅 디바이스 (102) 는 자신들의 구성 이력들을 네트워크 서버 (116) 로 또한 전송할 수도 있다. 구성 이력들은 악성 거동의 발견으로까지 이어지는 발생된 구성 변경들과, 옵션으로, 그들 구성 변경들을 초래한 명령들의 이력을 포함할 수도 있다. 네트워크 서버 (116) 는 도 4를 참조하여 아래에서 더 설명되는 바와 같이 모바일 컴퓨팅 디바이스들 (102) 로부터 수신된 정보를 사용하여 악성 구성들 및 악성 구성들까지 이어지는 구성들 (즉, 경로 구성들) 의 리스트를 결정할 수도 있다.
다른 양태에서, 네트워크 서버 (116) 는 악성 및 경로 구성 데이터베이스들을 모바일 컴퓨팅 디바이스들 (102) 로 전송할 수도 있으며, 그 모바일 컴퓨팅 디바이스는 악성 및 경로 구성 데이터베이스들을 수신 및 사용하여 장래의 악성 거동이 발생하기 전에 그 장래의 악성 거동을 예측할 수도 있다. 네트워크 서버 (116) 는 모바일 컴퓨팅 디바이스 데이터/거동 모델들을 대체, 업데이트, 생성 및/또는 유지하기 위해 후속하는 악성 및 경로 구성 데이터베이스들을 모바일 컴퓨팅 디바이스들 (102) 로 전송할 수도 있다.
도 2는 특정 모바일 컴퓨팅 디바이스 거동, 소프트웨어 애플리케이션, 또는 프로세스가 악성인지, 의심되는지, 또는 양성인지를 결정하도록 구성된 일 양태의 모바일 컴퓨팅 디바이스 (102) 에서의 예의 논리적 컴포넌트들 및 정보 흐름들을 도시한다. 도 2에 도시된 예에서, 모바일 컴퓨팅 시스템 (102) 은 거동 관찰자 유닛 (202), 거동 분석자 유닛 (204), 외부 콘텍스트 정보 유닛 (206), 및 액추에이터 유닛 (210) 을 구비할 수도 있다. 일 양태에서, 분류자 유닛 (208) 은 거동 분석자 유닛 (204) 의 부분으로서 구현될 수도 있다. 일 양태에서, 거동 분석자 유닛 (204) 은 하나 이상의 분류자 유닛들 (208) 을 생성하도록 구성될 수도 있으며, 그 분류자 유닛들의 각각은 하나 이상의 분류자들을 포함할 수도 있다.
유닛들 (202 내지 210) 의 각각은 소프트웨어, 하드웨어, 또는 그것들의 임의의 조합으로 구현될 수도 있다. 다양한 양태들에서, 유닛들 (202 내지 210) 은 운영 체제의 부분들 내에 (예컨대, 커널 내에, 커널 공간에서, 사용자 공간에서 등으로), 별개의 프로그램들 또는 애플리케이션들 내에, 전문화된 하드웨어 버퍼들 또는 프로세서들, 또는 그것들의 임의의 조합으로 구현될 수도 있다. 일 양태에서, 유닛들 (202 내지 210) 중 하나 이상은 모바일 컴퓨팅 디바이스 (102) 의 하나 이상의 프로세서들 상에서 실행하는 소프트웨어 명령들로서 구현될 수도 있다.
거동 관찰자 유닛 (202) 은 모바일 컴퓨팅 디바이스의 다양한 레벨들/모듈들에서 애플리케이션 프로그래밍 인터페이스들 (API들) 을 조정 또는 계장 (instrument) 하고 계장된 API들을 통해 다양한 레벨들/모듈들에서 모바일 컴퓨팅 디바이스 동작들 및 이벤트들 (예컨대, 시스템 이벤트들, 상태 변경들 등) 을 모니터링/관찰하며, 관찰된 동작들/이벤트들에 관계된 정보를 수집하며, 수집된 정보를 지능적으로 필터링하며, 필터링된 정보에 기초하여 하나 이상의 관찰결과들을 생성하고, 생성된 관찰결과들을 메모리에 (예컨대, 로그 파일 등으로) 저장하며 및/또는 생성된 관찰결과들을 (예컨대, 메모리 쓰기들, 함수 호출들 등을 통해) 거동 분석자 유닛204) 으로 전송하도록 구성될 수도 있다.
거동 관찰자 유닛 (202) 은 애플리케이션 프레임워크 또는 실행시간 라이브러리들에서의 라이브러리 API 호출들, 시스템 호출 API들, 파일 시스템 및 네트워킹 서브시스템 동작들, 디바이스 (센서 디바이스들을 포함함) 상태 변경들, 및 다른 유사한 이벤트들에 관계된 정보를 수집함으로써 모바일 컴퓨팅 디바이스 동작들 및 이벤트들을 모니터링/관찰할 수도 있다. 거동 관찰자 유닛 (202) 은 파일명들에 대한 검색, 파일 액세스들의 카테고리들 (개인 정보 또는 일반 데이터 파일들), 파일들 (예컨대, 유형 exe, zip 등) 의 생성 또는 삭제, 파일 읽기/쓰기/탐색 동작들, 파일 사용권한 변경 등을 포함할 수도 있는 파일 시스템 활동을 또한 모니터링할 수도 있다.
거동 관찰자 유닛 (202) 은 접속들의 유형들, 프로토콜들, 포트 번호들, 디바이스가 접속된 서버/클라이언트, 접속들의 수, 통신들의 볼륨 또는 빈도 등을 포함할 수도 있는 데이터 네트워크 활동을 또한 모니터링할 수도 있다. 거동 관찰자 유닛 (202) 은 전송된, 수신된, 또는 인터셉트된 호출들 또는 메시지들 (예컨대, SMS 등) 의 유형 및 수 (예컨대, 행해진 프리미엄 호출들의 수) 를 포함할 수도 있는 전화 네트워크 활동을 모니터링할 수도 있다.
거동 관찰자 유닛 (202) 은 포크 (fork) 들의 수, 메모리 액세스 동작들, 열린 파일들의 수 등을 모니터링하는 것을 포함할 수도 있는 시스템 자원 사용을 또한 모니터링/관찰할 수도 있다. 거동 관찰자 유닛 (202) 은 다양한 요인들, 이를테면 디스플레이가 온인지 또는 오프인지, 디바이스가 잠겨있는지 또는 잠금해제되어 있는지, 남은 배터리 양, 카메라의 상태 등을 모니터링하는 것을 포함할 수도 있는 모바일 컴퓨팅 디바이스의 상태를 모니터링할 수도 있다. 거동 관찰자 유닛 (202) 은, 예를 들어, 중요한 서비스들 (브라우저, 계약 제공자 등) 에 대한 의도들, 프로세스 간 통신들의 정도, 팝업 윈도우들 등을 모니터링함으로써 프로세스 간 통신들 (IPC) 을 또한 모니터링할 수도 있다.
거동 관찰자 유닛 (202) 은, 카메라들, 센서들, 전자 디스플레이들, WiFi 통신 컴포넌트들, 데이터 제어기들, 메모리 제어기들, 시스템 제어기들, 액세스 포트들, 타이머들, 주변 디바이스들, 무선 통신 컴포넌트들, 외부 메모리 칩들, 전압 조정기들, 발진기들, 위상 동기 루프들, 주변기기 브릿지들, 그리고 모바일 컴퓨팅 디바이스 상에서 실행되는 프로세서들 및 클라이언트들을 지원하는데 사용되는 유사한 다른 컴포넌트들을 포함할 수도 있는 하나 이상의 하드웨어 컴포넌트들의 스테이터스 및/또는 드라이버 통계를 또한 모니터링/관찰할 수도 있다.
거동 관찰자 유닛 (202) 은 모바일 컴퓨팅 디바이스 및/또는 모바일 컴퓨팅 디바이스 서브시스템들의 상태 또는 스테이터스를 나타내는 하나 이상의 하드웨어 카운터들을 또한 모니터링/관찰할 수도 있다. 하드웨어 카운터는, 모바일 컴퓨팅 디바이스에서 발생하는 하드웨어 관련 활동들 또는 이벤트들의 카운트 또는 상태를 저장하도록 구성되는, 프로세서들/코어들의 특수목적 레지스터를 포함할 수도 있다.
거동 관찰자 유닛 (202) 은, 소프트웨어 애플리케이션들의 액션들 또는 동작들, 애플리케이션 다운로드 서버 (예컨대, Apple? App Store 서버) 로부터의 소프트웨어 다운로드들, 소프트웨어 애플리케이션들에 의해 사용된 모바일 컴퓨팅 디바이스 정보, 호출 정보, 텍스트 메시징 정보 (예컨대, SendSMS, BlockSMS, ReadSMS 등), 미디어 메시징 정보 (예컨대, ReceiveMMS), 사용자 계정 정보, 로케이션 정보, 카메라 정보, 가속도계 정보, 브라우저 정보, 브라우저 기반 통신들의 콘텐츠, 음성 기반 통신들의 콘텐츠, 단거리 라디오 통신들 (예컨대, 블루투스, WiFi 등), 텍스트 기반 통신들의 콘텐츠, 레코딩된 오디오 파일들의 콘텐츠, 전화번호부 또는 연락처 정보, 연락처 목록들 등을 또한 모니터링/관찰할 수도 있다.
거동 관찰자 유닛 (202) 은, 음성메일 (VoiceMailComm), 디바이스 식별자들 (DeviceIDComm), 사용자 계정 정보 (UserAccountComm), 캘린더 정보 (CalendarComm), 로케이션 정보 (LocationComm), 레코딩된 오디오 정보 (RecordAudioComm), 가속도계 정보 (AccelerometerComm) 등을 포함하는 통신물들을 포함하는, 모바일 컴퓨팅 디바이스의 송신물들 또는 통신물들을 모니터링/관찰할 수도 있다.
거동 관찰자 유닛 (202) 은 나침반 정보에 대한 업데이트들/변경들의 사용, 모바일 컴퓨팅 디바이스 설정들, 배터리 수명, 자이로스코프 정보, 압력 센서들, 마그넷 센서들, 스크린 활동 등을 모니터링/관찰할 수도 있다. 거동 관찰자 유닛 (202) 은 소프트웨어 애플리케이션으로 및 그로부터 통신된 통지들 (AppNotifications), 애플리케이션 업데이트들 등을 모니터링/관찰할 수도 있다. 거동 관찰자 유닛 (202) 은 제 2 소프트웨어 애플리케이션의 다운로딩 및/또는 설치를 요청하는 제 1 소프트웨어 애플리케이션에 관계된 조건들 또는 이벤트들을 모니터링/관찰할 수도 있다. 거동 관찰자 유닛 (202) 은 사용자 검증에 관계된 조건들 또는 이벤트들, 이를테면 패스워드의 입력 등을 모니터링/관찰할 수도 있다.
거동 관찰자 유닛 (202) 은, 애플리케이션 레벨, 라디오 레벨, 및 센서 레벨을 포함하는, 모바일 컴퓨팅 디바이스의 다수의 레벨들에서 조건들 또는 이벤트들을 또한 모니터링/관찰할 수도 있다. 애플리케이션 레벨 관찰들은 얼굴 인식 소프트웨어를 통해 사용자를 관찰하는 것, 소셜 스트림들을 관찰하는 것, 사용자에 의해 입력된 노트들을 관찰하는 것, PassBook/Google Wallet/Paypal 등의 사용에 관계된 이벤트들을 관찰하는 것을 포함할 수도 있다. 애플리케이션 레벨 관찰들은, 가상 사설 네트워크들 (VPN들) 의 사용에 관련한 이벤트들과, 동기화, 음성 검색, 음성 제어 (예컨대, 하나의 단어를 말함으로써 폰을 잠금/잠금해제), 언어 번역기들, 컴퓨테이션들을 위한 데이터의 오프로딩 (offloading), 비디오 스트리밍, 사용자 활동 없는 카메라 사용, 사용자 활동 없는 마이크로폰 사용 등에 관계된 이벤트들을 관찰하는 것을 또한 포함할 수도 있다.
라디오 레벨 관찰들은, 라디오 통신 링크들의 확립 또는 정보 송신 전의 모바일 컴퓨팅 디바이스와의 사용자 상호작용, 이중 또는 다중 SIM 카드들, 인터넷 라디오, 모바일 폰 테더링 (tethering), 컴퓨테이션들을 위한 데이터의 오프로딩, 디바이스 상태 통신들, 게임 컨트롤러 또는 홈 제어기로서의 사용, 차량 통신들, 모바일 컴퓨팅 디바이스 동기화 등 중 임의의 것 또는 그 이상의 존부, 존재 또는 양을 결정하는 것을 포함할 수도 있다. 라디오 레벨 관찰들은 포지셔닝, 피어 투 피어 (p2p) 통신들, 동기화, 차량 대 차량 통신들, 및/또는 머신 대 머신 (m2m) 통신들을 위한 라디오들 (WiFi, WiMax, 블루투스 등) 의 사용을 모니터링하는 것을 또한 포함할 수도 있다. 라디오 레벨 관찰들은 네트워크 트래픽 사용, 통계, 또는 프로파일들을 더 포함할 수도 있다.
센서 레벨 관찰들은 모바일 컴퓨팅 디바이스의 사용 및/또는 외부 환경을 결정하기 위해 마그넷 센서 또는 다른 센서를 모니터링하는 것을 포함할 수도 있다. 예를 들어, 모바일 컴퓨팅 디바이스 프로세서는 폰이 홀스터 (holster) 내에 있는지를 (예컨대, 홀스터 내의 자석을 감지하도록 구성된 마그넷 센서를 통해) 또는 사용자의 주머니에 있는지를 (예컨대, 카메라 또는 광 센서에 의해 검출된 광의 양을 통해) 결정하도록 구성될 수도 있다. 모바일 컴퓨팅 디바이스가 홀스터 내에 있음을 검출하는 것은 악성 거동들을 인식하는 것에 관계가 있을 수도 있는데, 예를 들어, 모바일 컴퓨팅 디바이스가 홀스터된 동안 발생하는 사용자에 의한 액티브 사용에 관련된 활동들 및 기능들 (예컨대, 사진들 또는 비디오들의 촬영, 메시지들의 전송, 음성 호출 수행, 사운드들의 레코딩 등) 이 (예컨대, 사용자를 추적하거나 또는 염탐하기 위해) 디바이스 상에서 실행하는 불법 (nefarious) 프로세스들의 징후들일 수 있기 때문이다.
사용 또는 외부 환경들에 관련된 센서 레벨 관찰들의 다른 예들은, 근접장 통신들 (near-field communications, NFC) 을 검출하는 것, 신용 카드 스캐너, 바코드 스캐너, 또는 모바일 태그 판독기로부터의 정보를 수집하는 것, USB 전력 충전 소스의 존부를 검출하는 것, 키보드 또는 보조 디바이스가 모바일 컴퓨팅 디바이스에 커플링되었음을 검출하는 것, 모바일 컴퓨팅 디바이스가 컴퓨팅 디바이스에 (예컨대, USB 등을 통해) 커플링되었음을 검출하는 것, LED, 플래시, 손전등, 또는 광원이 수정 또는 불능화되었는지를 검출하는 것 (예컨대, 비상 시그널링 앱 등을 악의적으로 불능화시키는 것), 스피커 또는 마이크로폰이 턴 온 또는 전력 공급됨을 검출하는 것, 충전 또는 파워 이벤트를 검출하는 것, 모바일 컴퓨팅 디바이스가 게임 컨트롤러로서 사용되고 있음을 검출하는 것 등을 포함할 수도 있다. 센서 레벨 관찰들은, 의료 또는 보건 센서들로부터 또는 사용자의 신체를 스캐닝하는 것으로부터 정보를 수집하는 것, USB/오디오 잭에 꽂아진 외부 센서로부터의 정보를 수집하는 것, 촉각 또는 햅틱 센서로부터 (예컨대, 진동기 인터페이스 등을 통해) 정보를 수집하는 것, 모바일 컴퓨팅 디바이스의 열적 상태에 관계된 정보를 수집하는 것 등을 또한 포함할 수도 있다.
모니터링되는 요인들의 수를 관리가능 레벨로 줄이기 위해, 일 양태에서, 거동 관찰자 유닛 (202) 은, 모바일 컴퓨팅 디바이스의 저하에 기여할 수 있는 모든 요인들의 작은 서브세트인 거동들 또는 요인들의 초기 세트를 모니터링/관찰함으로써 거친 관찰들을 수행할 수도 있다. 일 양태에서, 거동 관찰자 유닛 (202) 은 네트워크 서버 (116) 및/또는 클라우드 서비스 또는 네트워크 (118) 에서의 컴포넌트로부터 거동들 및/또는 요인들의 초기 세트를 수신할 수도 있다. 일 양태에서, 거동들/요인들의 초기 세트는 네트워크 서버 (116) 또는 클라우드 서비스/네트워크 (118) 로부터 수신된 데이터/거동 모델들에서 특정될 수도 있다. 일 양태에서, 거동들/요인들의 초기 세트는 감소 특징 모델 (reduced feature model, RFM) 들에서 특정될 수도 있다.
거동 분석자 유닛 (204) 및/또는 분류자 유닛 (208) 은 거동 관찰자 유닛 (202) 으로부터 관찰결과들을 수신하며, 수신된 정보 (즉, 관찰결과들) 와 외부 콘텍스트 정보 유닛 (206) 으로부터 수신된 콘텍스트 정보를 비교하고, 시간 경과에 따라 디바이스의 저하에 기여하고 있 (거나 또는 기여할 가능성이 있) 는, 또는 그렇지 않으면 디바이스 상에 문제들 (예컨대, 악성 거동) 을 초래할 수도 있는 수신된 관찰결과들에 연관된 서브시스템들, 프로세스들, 및/또는 애플리케이션들을 식별할 수도 있다.
일 양태에서, 거동 분석자 유닛 (204) 및/또는 분류자 유닛 (208) 은, 디바이스의 시간 경과에 따른 저하에 기여하고 있 - 거나 또는 기여할 가능성이 있 - 는, 또는 그렇지 않으면 디바이스 상에 문제들을 초래할 수도 있는 거동들, 프로세스들, 또는 프로그램들을 식별하기 위해 정보의 제한된 세트 (즉, 거친 관찰결과들) 를 이용하는 지능을 구비할 수도 있다. 예를 들어, 거동 분석자 유닛 (204) 은 다양한 유닛들 (예컨대, 거동 관찰자 유닛 (202), 외부 콘텍스트 정보 유닛 (206) 등) 로부터 수집된 (예컨대, 관찰들의 형태의) 정보를 분석하며, 모바일 컴퓨팅 디바이스의 정상 동작 거동들을 학습하고, 비교들의 결과들에 기초하여 하나 이상의 거동 벡터들을 생성하도록 구성될 수도 있다. 거동 분석자 유닛 (204) 은 생성된 거동 벡터들을 장래의 분석을 위해 분류자 유닛 (208) 에게 전송할 수도 있다.
분류자 유닛 (208) 은 거동 벡터들을 수신하고 그것들과 하나 이상의 거동 모듈들을 비교하여 특정 모바일 컴퓨팅 디바이스 거동, 소프트웨어 애플리케이션, 또는 프로세스가 악성인지, 양성인지, 또는 의심되는지를 결정할 수도 있다.
거동, 소프트웨어 애플리케이션, 또는 프로세스가 악성이라고 분류자 유닛 (208) 이 결정하는 경우, 분류자 유닛 (208) 은 액추에이터 유닛 (210) 에게 통지할 수도 있으며, 그 액추에이터 유닛은 악성 또는 성능 저하인 것으로 결정된 모바일 컴퓨팅 디바이스 거동들을 정정하는 다양한 액션들 또는 동작들을 수행하며 및/또는 식별된 문제를 치유, 치료, 격리, 또는 아니면 픽스 (fix) 하는 동작들을 수행할 수도 있다.
추가의 양태들에서, 거동 분석자 유닛 (204) 및/또는 분류자 유닛 (208) 은 네트워크 서버 (예컨대, 네트워크 서버 (116)) 로부터 수신된 악성 및 경로 구성 데이터베이스를 참조하여 모바일 컴퓨팅 디바이스 (102) 의 현재 구성이 경로 구성인지 여부를 결정할 수도 있다. 일 양태에서, 분류자 유닛 (208) (또는 거동 분석자 유닛 (204)) 은 모바일 컴퓨팅 디바이스의 현재 구성과 네트워크 서버로부터 수신된 악성 및 경로 구성 데이터베이스에 포함된 하나 이상의 경로 구성들을 비교하여 모바일 컴퓨팅 디바이스 (102) 의 현재 구성이 악성 및 경로 구성 데이터베이스에 포함된 경로 구성과 일치하는지 여부를 결정할 수도 있다. 예를 들어, 거동 분석자 유닛 (204) 은 모바일 컴퓨팅 디바이스 상에서 현재 실행 중인 특정 애플리케이션에 대한 거동 벡터를 생성할 수도 있고, 분류자 유닛 (208) 은 그 애플리케이션의 거동 벡터와 악성 및 경로 구성 데이터베이스에 포함된 경로 구성들을 비교하여 애플리케이션의 현재 구성이 모바일 컴퓨팅 디바이스 상의 악성 거동으로 이어지는지 여부를 결정할 수도 있다.
모바일 컴퓨팅 디바이스 (102) 의 현재 구성이 네트워크 서버로부터 수신된 악성 및 경로 구성 데이터베이스에 포함된다 (즉, 모바일 컴퓨팅 디바이스 (102) 의 현재 구성이 악성 거동으로 이어진다) 고 분류자 유닛 (208) 이 결정하는 경우, 분류자 유닛 (208) 은 액추에이터 유닛 (210) 에게 통지할 수도 있으며, 그 액추에이터 유닛은 모바일 컴퓨팅 디바이스 상의 악성 거동 또는 다른 성능 저하 활동들을 이러한 악성 거동이 발생하기 전에 방지하는 다양한 액션들 또는 동작들을 수행할 수도 있다.
도 3은 모바일 컴퓨팅 디바이스 (102) 상에서 악성 구성들과 악성 거동들로까지 이어지는 구성들을 지능적으로 그리고 효율적으로 식별하기 위해 클라우드 서비스/네트워크 (118) 와 연계하여 동작하도록 구성된 네트워크 서버 (116) 를 포함하는 일 양태 시스템 (300) 에서의 예의 컴포넌트들 및 정보 흐름들을 도시한다. 도 3에 도시된 예에서, 네트워크 서버 (116) 는 클라우드 유닛 (302), 악성 및 경로 구성 데이터베이스 생성자 유닛 (304), 및 훈련 데이터 유닛 (306) 을 포함한다. 모바일 컴퓨팅 디바이스 (102) 는 거동 관찰자 유닛 (202), 분류자 유닛 (208), 및 액추에이터 유닛 (210) 을 구비한다. 일 양태에서, 분류자 유닛 (208) 은 거동 분석자 유닛 (204) (도 2에 도시됨) 내에, 또는 그 거동 분석자 유닛의 부분으로서 포함될 수도 있다. 일 양태에서, 모델 생성자 (304) 유닛은 실시간 온라인 분류자일 수도 있다.
클라우드 유닛 (302) 은 클라우드 서비스/네트워크 (118) 로부터 대량의 정보를 수신하고 악성 거동들로 이어지는 특징들, 데이터 포인트들, 및/또는 요인들의 전부 또는 대부분을 포함하는 전체 또는 강력한 데이터/거동 모델을 구성할 수도 있다. 일 양태에서, 클라우드 서비스/네트워크 (118) 로부터의 정보는 어떤 형태의 악성 거동을 검출했던 다수의 모바일 컴퓨팅 디바이스들로부터 보고된 구성 정보와 구성 이력들을 포함할 수도 있다. 예를 들어, 다수의 모바일 컴퓨팅 디바이스들은 특정 구성에 대한 악성 거동을 보고했을 수도 있고 검출된 악성 거동으로까지 이어지는 그것들의 구성들/상태들/명령들을 또한 보고했을 수도 있다.
악성 및 경로 구성 데이터베이스 생성자 (304) 는 클라우드 유닛 (302) 에서 생성된 전체 거동 모델에 기초한 거동 모델들을 포함하는 악성 및 경로 구성 데이터베이스를 생성할 수도 있다. 일 양태에서, 거동 모델들을 생성하는 것은 클라우드 유닛 (302) 에 의해 생성된 전체 모델에 포함된 특징들 및 데이터 포인트들의 서브세트를 포함하는 하나 이상의 감소 특징 모델들 (RFM들) 을 생성하는 것을 포함할 수도 있다. 일 양태에서, 악성 및 경로 구성 데이터베이스 생성자 (304) 는 분류자 유닛 (208) 이 특정 모바일 컴퓨팅 디바이스 거동이 악성 거동으로 이어지는지 여부를 확정적으로 결정하는 것을 가능하게 하는 최고 유력자 (probable) 를 갖도록 결정된 정보를 포함하는 초기 특징 세트 (예컨대, 초기 감소 특징 모델) 를 포함하는 악성 및 경로 구성 데이터베이스를 생성할 수도 있다. 악성 및 경로 구성 데이터베이스 (304) 는 생성된 악성 및 경로 구성 데이터베이스를 분류자 유닛 (208) 으로 전송할 수도 있다.
거동 관찰자 유닛 (202) 은 모바일 컴퓨팅 디바이스 (102) 상의 모바일 컴퓨팅 디바이스 거동들을 모니터링/관찰하며, 관찰결과들을 생성하고, 관찰결과들을 분류자 유닛 (208) 으로 전송할 수도 있다. 분류자 유닛 (208) 은 실시간 분석 동작들을 수행할 수도 있는데, 그 실시간 분석 동작들은 모바일 컴퓨팅 디바이스 (102) 의 현재 상태가 악성 거동으로 이어지는지 여부를 결정하기 위해 악성 및 경로 구성 데이터베이스에서의 거동 모델들과 거동 관찰자 유닛 (202) 에 의해 수집된 구성 정보를 비교하는 것을 포함할 수도 있다. 모바일 컴퓨팅 디바이스 (102) 의 현재 구성이 악성 및 경로 구성 데이터베이스에 포함된 경로 구성과 일치한다고 분류자 유닛 (208) 이 결정하는 경우 분류자 유닛 (208) 은 모바일 컴퓨팅 디바이스 거동이 악성 거동으로 이어진다고 결정할 수도 있다. 도 2를 참조하여 위에서 논의된 바와 같이, 분류자 유닛 (208) 이 일치를 찾는 경우, 분류자 유닛 (208) 은 장래의 악성 거동을 피하기 위한 단계들을 시작할 것을 액추에이터 유닛 (210) 에게 경고할 수도 있다.
다른 양태에서, 모바일 컴퓨팅 디바이스 (102) 는 모델들의 애플리케이션에 연관된 자신의 동작들 및/또는 성공률들의 결과들을 네트워크 서버 (116) 로 전송할 수도 있다. 예를 들어, 분류자 유닛 (208) 은 악성 및 경로 구성 데이터베이스에서 일치물을 찾을 수도 있지만, 악성 및 경로 구성 데이터베이스들의 다음의 배포물에 포함시키기 위해 모바일 컴퓨팅 디바이스 (102) 가 네트워크 서버 (116) 에 보고할 수도 있는 이전의 미검출된 악성 거동 (즉, 보호에서의 갭) 을 나타내는 악성 거동이 여전히 발생할 수도 있다. 네트워크 서버 (116) 는 모델 생성자 (304) 에 의한 사용을 위해 그 결과들/성공률들에 기초하여 훈련 데이터를 (예컨대, 훈련 데이터 유닛 (306) 을 통해) 생성할 수도 있다. 모델 생성자는 훈련 데이터에 기초하여 업데이트된 악성 및 경로 구성 데이터베이스들을 생성할 수도 있고, 업데이트된 악성 및 경로 구성 데이터베이스들을 모바일 컴퓨팅 디바이스 (102) 및 다른 모바일 컴퓨팅 디바이스들에 주기적으로 전송할 수도 있다.
도 4는 모바일 컴퓨팅 디바이스들에게 악성 구성들 및 경로 구성들을 식별하는 악성 및 경로 구성 데이터베이스를 전송하기 위해 네트워크 서버 상에서 구현될 수도 있는 일 양태의 방법 (400) 을 도시한다. 방법 (400) 을 수행함에 있어서, 네트워크 서버는 악성 거동을 나타내는 구성들과 그들 악성 구성들로 이어질 경로 구성들을 식별하기 위해 다수의 모바일 컴퓨팅 디바이스들로부터 정보를 수신, 컴파일, 및 분석하는 집중형 허브로서 기능을 할 수도 있다. 그 서버는 모바일 컴퓨팅 디바이스들이 자신들의 현재 거동 (또는 모바일 컴퓨팅 디바이스들 상에서 동작하는 애플리케이션 또는 프로세스의 거동) 이 악성 거동을 향하는 경향이 있는지 여부를 검출하는 것을 가능하게 하는 보고들을 다수의 모바일 컴퓨팅 디바이스들에게 또한 제공할 수도 있다.
블록 402에서, 네트워크 서버는 복수의 모바일 컴퓨팅 디바이스들로부터 구성 정보와 구성 이력들을 수신할 수도 있다. 일 양태에서, 모바일 컴퓨팅 디바이스가 악성 거동 (예컨대, 해킹됨, 악성코드, 또는 바이러스들 등) 을 검출하는 경우, 모바일 컴퓨팅 디바이스는 모바일 컴퓨팅 디바이스가 악성 거동을 발견했던 시간의 모바일 컴퓨팅 디바이스의 구성을 나타내는 거동 벡터 또는 유사한 정보를 네트워크 서버에게 전송할 수도 있다. 덧붙여, 모바일 컴퓨팅 디바이스들은 악성 거동이 검출되었기까지 발생했던 구성들의 진행을 기술하는 구성 이력들을 또한 전송할 수도 있다.
일 양태에서, 모바일 컴퓨팅 디바이스는 초기 구성, 이를테면 시동 구성으로부터 시작하는 구성 변경들의 리스트를 유지할 수도 있다. 예를 들어, 모바일 컴퓨팅 디바이스는 자신의 거동 벡터가 [0, 2, 1, 0,..., 4]인 경우 악성코드 활동을 검출할 수도 있다. 모바일 컴퓨팅 디바이스는 모바일 컴퓨팅 디바이스의 구성들을 [0, 2, 1, 0,..., 4]로부터 더 이전의 구성, 이를테면 초기 구성 (예컨대, [0,0, 0, 0,..., 0]) 으로 철회하기 위한 정보와 거동 벡터 [0, 2, 1, 0,..., 4]를 네트워크 서버로 전송할 수도 있다. 다른 양태에서, 모바일 컴퓨팅 디바이스는 축약된 구성 이력만을 유지함으로써 자원들을 보존할 수도 있다 (즉, 모바일 컴퓨팅 디바이스는 악성 구성으로까지 이어지는 특정한 수의 이전 구성들만을 기록할 수도 있다).
블록 404에서, 네트워크 서버는 악성 구성들을 식별하기 위해 구성 정보를 분석할 수도 있다. 일 양태에서, 네트워크 서버는 여러 모바일 컴퓨팅 디바이스들에 의해 보고된 동일한 또는 유사한 거동들을 악성 거동을 나타내기 위해 일치시킴으로써 악성 구성들을 식별할 수도 있다. 추가의 양태에서, 모바일 컴퓨팅 디바이스들의 특정한 수 또는 백분율이 구성을 악성으로서 식별하는 경우에만 네트워크 서버는 그 구성을 악성으로서 식별할 수도 있다. 다르게 말하면, 네트워크 서버는 보고하고 있는 모바일 컴퓨팅 디바이스들 중에서 어느 정도의 합의가 있는 경우에만 거동들을 악성으로서 라벨 표시하기 위해 신뢰 임계값을 채용할 수도 있다.
다른 양태에서, 네트워크 서버는 동일한 능력들 또는 구성들을 공유할 수도 없는 다양한 유형들 및 모델들의 모바일 컴퓨팅 디바이스들로부터 구성 정보를 수신할 수도 있고 따라서 모바일 컴퓨팅 디바이스는 유사하지 않은 구성 정보 /거동 벡터들을 가질 수도 있다. 이러한 양태에서, 네트워크 서버는 다수의 모바일 컴퓨팅 디바이스들이 악성 거동을 나타내기 위해 통상적으로 보고하는 악성 구성들 또는 특정 특징들을 검출하는 다양한 패턴 매칭 알고리즘들 또는 전략들을 구현함으로써 악성 구성들을 식별할 수도 있다. 다르게 말하면, 네트워크 서버는 상이한 모델들의 모바일 컴퓨팅 디바이스들로부터 수천 개의 보고들을 컴파일하고 모바일 컴퓨팅 디바이스들이 악성 거동을 검출했던 시간에 항상 존재하는 구성 특성들을 결정할 수도 있다. 예를 들어, 네트워크 서버는 다양한 유형들의 모바일 컴퓨팅 디바이스들의 구성들이 "스크린 오프", "연락처 정보 액세스", 및 "데이터 송신"을 포함했던 경우 그 모바일 컴퓨팅 디바이스들이 악성 거동을 거의 항상 보고했다고 결정할 수도 있다.
블록 406에서, 네트워크 서버는 식별된 악성 구성들에 기초하여 경로 구성들을 식별할 수도 있다. 일 양태에서, 경로 구성이 악성 구성으로까지 이어지는 "전구체 (precursor)" 구성일 수도 있다. 다르게 말하면, 경로 구성이 일부 환경들 하에서 악성 구성으로 진화할 위험이 있을 수도 있다. 예를 들어, 경로 구성이 악성 구성에서부터 떨어져 있는 (away from) 하나 또는 두 개의 구성 변경들일 수도 있다.
일 양태에서, 수많은 구성 이력들을 수신한 후, 네트워크 서버는 궁극적인 악성 구성으로 이어지는 하나 이상의 패턴들 또는 구성들을 발견하기 위해 (구성 이력이 상태들 간의 전이들로서 존재한다면) 패턴 인식 또는 상태 기계 분석을 구현할 수도 있다. 다르게 말하면, 네트워크 서버는 악성 구성들로 이어진 더 이전의 구성 또는 구성들을 식별하기 위해 악성 구성으로부터 (즉, "구성 경로들"을 따라) "되돌아가는" 다양한 모바일 컴퓨팅 디바이스들로부터의 구성 이력들을 사용할 수도 있다. 이들 더 이전의 구성들은 후속 구성이 악성이 될 상당한 확률이 있다고 분석이 결정하는 경우, 위에서 정의된 바와 같이, 경로 구성들로서 식별될 수도 있다. 도 7a를 참조하여 아래에서 논의되는 바와 같이, 임의의 주어진 구성 또는 상태가 다음에 수행되는 명령들 또는 동작들에 의존하여 임의의 수의 후속 구성들 또는 상태들로 진화 또는 변환될 수도 있다. 따라서, 악성 구성에 선행했던 구성이, 다른 명령들 또는 동작들이 수행된다면, 악성 구성으로 반드시 이어지지 않을 수도 있다. 이를 해결하기 위해, 서버 분석은 주어진 구성이 직접 악성 구성으로 얼마나 빈번하게 이어지는지를 보고된 정보로부터 결정하고, 악성 구성들로 빈번하게 이어지는 (즉, 그 빈도가 임계값 또는 확률을 초과하는) 그들 구성들만을 "경로 구성들"로서 식별할 수도 있다. 예를 들어, 네트워크 서버는 구성이 악성 거동으로 이어질 10 %를 초과하는 찬스가 있는 경우의 구성만을 경로 구성으로서 분류할 수도 있다. 서버 분석은 수행되는 경우 경로 구성을 악성 구성으로 변환하는 명령들/동작들을 또한 식별할 수도 있다.
일 양태에서, 네트워크 서버는 블록 404를 참조하여 위에서 논의된 바와 같은 악성 구성/상태, 하나 이상의 중간 구성들, 및 시작 구성을 우선 식별할 수도 있다. 예를 들어, 네트워크 서버는 "스크린이 오프인 동안 주소록 정보를 송신하는 것"이 악성 구성이라고 우선 식별할 수도 있고, "디스플레이 스크린이 오프인 동안 주소록 정보에 액세스하는 것"이 "그 스크린이 오프인 동안 주소록 정보를 송신하는 것"으로 빈번하게 이어지는 경로 구성임을 발견하기 위해 "되돌아갈" 수도 있다.
일 양태에서, 경로 구성들을 장래의 악성 거동의 조기 경보 사인들로서 사용하는 효과를 증가시키기 위해, 네트워크 서버는 구성이 악성 구성으로부터 떨어져 있는 임계 수의 "단계들" 내에 있는 경우 그 구성만을 "경로 구성"인 것으로서 분류할 수도 있다. 서버 분석은 악성 거동으로 직접적으로 이어지는 후속 경로 구성들, 뿐만 아니라 수행되는 경우 모바일 컴퓨팅 디바이스가 식별된 경로 구성에서부터 악성 구성까지의 일련의 단계들을 통해 취하는 명령들/동작들을 또한 식별할 수도 있다.
블록 408에서, 네트워크 서버는 식별된 악성 구성들과 식별된 경로 구성들을 포함하는 악성 및 경로 구성 데이터베이스를 생성할 수도 있다. 일 양태에서, 악성 및 경로 구성 데이터베이스는 모바일 컴퓨팅 디바이스가 도 5, 도 6, 도 8, 도 10, 및 도 11을 참조하여 아래에서 논의되는 바와 같은 악성 구성에 진입할 위험이 있는지 여부를 모바일 컴퓨팅 디바이스가 평가하는 것을 가능하게 할 수도 있는 정보를 포함할 수도 있다.
위에서 논의된 바와 같이, 옵션적 블록 410에서, 네트워크 서버는 각각의 식별된 경로 구성에 대해 악성 구성으로 전이할 확률을 계산할 수도 있다. 그 확률들을 계산하기 위해, 네트워크 서버는 경로 구성에서부터 악성 구성으로의 전이가 얼마나 자주 발생하는지를 결정하기 위해 수천 개의 모바일 컴퓨팅 디바이스들의 구성 이력들을 분석할 수도 있다. 예를 들어, 100,000 개의 모바일 컴퓨팅 디바이스들로부터의 보고들을 분석한 후, 네트워크 서버는 모바일 컴퓨팅 디바이스들 70,000 개가 특정한 경로 구성에서부터 양성 구성으로 전이했다는 것 (즉, 70% 또는 0.7) 과 30,000 개가 특정한 경로 구성에서부터 악성 구성으로 전이했다는 것 (즉, 30% 또는 0.3) 을 결정할 수도 있다. 일 양태에서, 네트워크 서버는 이 정보를 아래의 도 9에 예시된 바와 같이 각각의 구성 (즉, 상태) 과 하나의 구성에서부터 다른 구성으로 전이할 확률들을 포함하는 마르코프 체인 분석에서 표현할 수도 있다. 네트워크 서버는 옵션적 블록 412에서 악성 및 경로 구성 데이터베이스에 계산된 확률들을 또한 포함시킬 수도 있다.
또한 위에서 논의된 바와 같이, 옵션적 블록 414에서, 네트워크 서버는 식별된 경로 구성에 있는 동안 실행된 경우 악성 구성으로 이어지는 악성 경로 명령들 또는 동작들을 식별할 수도 있다. 이 동작에서, 네트워크 서버는 경로 구성으로 하여금 악성 구성으로 변하게 하는 코드, 파라미터들, 또는 다른 명령들을 식별하기 위해 거동 벡터 정보 및 구성 이력들을 분석할 수도 있다. 네트워크 서버는 특정 경로 구성들의 맥락에서 이러한 명령들을 식별할 수도 있다. 따라서, 네트워크 서버는, 실행되는 경우, 경로 구성들로 하여금 악성이 되게 함으로써, 모바일 컴퓨팅 디바이스가 악성 구성으로 진화할 위험이 있는지 여부에 대해 더 나은 결정을 하게 하는 것을 가능하게 할 수도 있는 명령들을 결정할 수도 있다. 다르게 말하면, 네트워크 서버는 특정 경로 구성에서의 모바일 컴퓨팅 디바이스가 "악성 경로 명령들"로서 본원에서 지칭되는 특정한 명령들을 실행한 후 악성이 될 것이라고 결정할 수도 있다. 악성 경로 명령들은 모바일 컴퓨팅 디바이스가 경로 구성에 있는 동안 그 명령들이 실행되는 경우에만 악성 거동 또는 악성 구성들이 초래되게 할 수도 있다는 것에 주의해야 한다. 이 방식으로 다양한 양태들은 기존의 악성코드 검출 시스템들과 상이한데, 그 양태들은 대부분의 환경들에서 안전하고 악성 거동들과 연관되지 않는 명령들/동작들을 인식하는 것과 그러한 명령들/동작들에 반응하는 것을 가능하게 하기 때문이다.
네트워크 서버는 옵션적 블록 416에서, 악성 및 경로 구성 데이터베이스에 실행된 경우 식별된 악성 구성들로 이어지는 식별된 명령들의 리스트를 포함시킬 수도 있다. 추가의 양태에서, 네트워크 서버는 경로 구성과 경로 구성이 악성이 되게 할 악성 경로 명령 또는 명령들 간의 연관을 또한 포함할 수도 있다. 모바일 컴퓨팅 디바이스는 도 11을 참조하여 아래에서 더 설명되는 바와 같이 악성 거동으로 이어질 명령들의 리스트를 포함하는 악성 및 경로 구성 데이터베이스를 이러한 악성 거동을 피하기 위해 이용할 수도 있다.
블록 418에서, 네트워크 서버는 악성 및 경로 구성 데이터베이스를 복수의 모바일 컴퓨팅 디바이스들로 전송할 수도 있다. 다양한 양태들에서, 모바일 컴퓨팅 디바이스는 악성 거동으로 이어질 수도 있는 경로 구성들을 선제적으로 식별함에 있어서의 사용을 위해 악성 및 경로 구성 데이터베이스들을 사용할 수도 있다. 일 양태에서, 악성 및 경로 구성 데이터베이스들은 악성 및 경로 구성들을, 모바일 컴퓨팅 디바이스 상에서 동작하는 거동 분석자 유닛 (204) 및/또는 분류자 유닛 (208) 에 의해 이용될 수 있는 거동 벡터 값들로서, 경로 (path) 들로서, 또는 유한 상태 기계에서의 상태들로서 제시할 수도 있다.
옵션적 양태에서, 네트워크 서버는 그것이 블록 402에서 모바일 컴퓨팅 디바이스들로부터 거동 벡터 정보 및 구성 이력들을 계속해서 수신함에 따라 프로세스를 하나의 루프 내에서 실행할 수도 있다. 이러한 양태에서, 네트워크 서버는 거동 벡터 정보 및 구성 이력들을 수시로 수신할 수도 있다. 다르게 말하면, 네트워크 서버는 모바일 컴퓨팅 디바이스들로부터의 악성 거동의 정보를 그것들이 발생하는 대로 계속해서 수신할 수도 있고, 네트워크 서버는 추가의 거동 벡터 정보 및 구성 이력들이 수신됨에 따라 악성 구성들 및 경로 구성들을 계속해서 분석 및 식별할 수도 있다. 이처럼, 네트워크 서버는 업데이트된 악성 및 경로 구성 데이터베이스들을 수신된 새로운 정보에 기초하여 모바일 컴퓨팅 디바이스들로 계속해서 전송하기 위하여 그 프로세스를 반복할 수도 있다.
도 5는 악성 구성들을 선제적으로 식별하기 위해 모바일 컴퓨팅 디바이스에 의해 구현될 수도 있는 일 양태의 방법 (500) 을 도시한다. 일 양태에서, 모바일 컴퓨팅 디바이스는 모바일 컴퓨팅 디바이스의 상태 (또는 모바일 컴퓨팅 디바이스의 애플리케이션, 프로세스, 또는 컴포넌트의 현재 구성) 가 악성 거동들로 이어지는 경우를 결정하기 위해 악성 구성들과 경로들 구성들을 식별하는 악성 및 경로 구성 데이터베이스를 이용할 수도 있다. 그 결정에 기초하여, 모바일 컴퓨팅 디바이스는 이러한 악성 활동을 회피 또는 방지하기 위해 다양한 대책들을 구현할 수도 있다.
블록 502에서, 모바일 컴퓨팅 디바이스는 악성 및 경로 구성 데이터베이스를 수신할 수도 있다. 도 4를 참조하여 설명된 위의 방법 (400) 의 블록 418에서 논의된 바와 같이, 네트워크 서버는 다른 모바일 컴퓨팅 디바이스들에 의해 보고된 어떤 형태의 악성 거동으로 이어질 위험을 갖는 특정한 구성들을 식별하기 위해 크라우드 소싱된 (crowd-sourced) 구성 정보 및/또는 구성 이력들을 사용할 수도 있다. 네트워크 서버는 악성 및 경로 구성들에 관한 정보를 악성 및 경로 구성 데이터베이스로 컴파일할 수도 있고 하나 이상의 악성 및 경로 구성 데이터베이스들을 모바일 컴퓨팅 디바이스로 전송할 수도 있다. 추가의 양태에서, 모바일 컴퓨팅 디바이스는 악성 및 경로 구성 데이터베이스들을 네트워크 서비스가 관리하는 주기적 서비스의 부분으로서 일상적으로 수신할 수도 있다 (예컨대, 모바일 컴퓨팅 디바이스는 악성 및 경로 구성 데이터베이스들을 수신하기 위해 네트워크 서버에 등록할 수도 있다).
블록 504에서, 모바일 컴퓨팅 디바이스는 자신의 현재 구성을 결정할 수도 있다. 도 2를 참조하여 위에서 설명된 바와 같이, 일 양태에서, 거동 관찰자 유닛 (202) 이 모바일 컴퓨팅 디바이스의 현재 동작들/스테이터스/상태에 관한 다양한 유형들의 정보 (즉, "거동 관찰결과들"), 뿐만 아니라 모바일 컴퓨팅 디바이스가 겪은 구성 또는 상태 변경들을 수집할 수도 있다.
일 양태에서, 모바일 컴퓨팅 디바이스는 모바일 컴퓨팅 디바이스의 현재 구성을 확인하기 위해 거동 벡터를 참조할 수도 있다. 다른 양태에서, 거동 분석자 유닛 (204) 이 거동 관찰자 유닛 (202) 으로부터 거동 관찰결과들을 수신할 수도 있고, 거동 분석자 유닛 (204) 은 모바일 컴퓨팅 디바이스의 현재 구성의 거동 벡터 또는 다른 표시를 생성하기 위해 거동 관찰결과들을 사용할 수도 있다. 예를 들어, 거동 분석자 유닛 (204) 은 모바일 컴퓨팅 디바이스의 현재 구성이 데이터가 송신되고 있다는 것과 스크린이 오프라는 것을 나타낸다고 결정할 수도 있다. 거동 분석자 유닛 (204) 은 거동 관찰결과들을 사용하여 유한-상태 분석 (finite-state analysis) 을 수행할 수도 있으며, 이 유한-상태 분석에 의해 거동 분석자 유닛 (204) 은 현재 상태 (즉, 현재 구성) 로의 일련의 상태 전이들을 추종함으로써 모바일 컴퓨팅 디바이스의 현재 구성을 결정할 수도 있다. 유한-상태-기계 분석을 사용하여 현재 구성을 결정하는 것은 도 7a를 참조하여 논의되는 바와 같이 아래에서 더 상세히 설명된다.
결정 블록 506에서, 모바일 컴퓨팅 디바이스는 악성 및 경로 구성 데이터베이스에 기초하여 현재 구성이 악성 구성으로 이어지는지 여부를 결정할 수도 있다. 다르게 말하면, 모바일 컴퓨팅 디바이스는 자신의 현재 구성이 경로 구성인지 여부를 결정할 수도 있다. 일 양태에서, 거동 분석자 유닛 (204) 및/또는 분류자 유닛 (208) 은 모바일 컴퓨팅 디바이스의 현재 구성 (예컨대, 모바일 컴퓨팅 디바이스의 현재 구성을 표현하는 거동 벡터) 과 네트워크 서버로부터 수신된 악성 및 경로 구성 데이터베이스에 포함된 경로 구성들 및 악성 구성들을 비교하여, 현재 구성이 악성 및 경로 구성 데이터베이스에 포함된 경로 구성과 일치하는지 여부를 결정할 수도 있다.
모바일 컴퓨팅 디바이스가 악성 및 경로 구성 데이터베이스에 기초하여 현재 구성이 악성 구성으로 이어지지 않는다고 결정하는 경우 (즉, 결정 블록 506 = "아니오"), 모바일 컴퓨팅 디바이스는 블록 510에서 수행을 정상적으로 계속할 수도 있다. 그 프로세스는 모바일 컴퓨팅 디바이스가 블록 504에서 모바일 컴퓨팅 디바이스의 현재 구성을 결정하는 것으로 계속할 수도 있음에 따라 루프를 계속할 수도 있다. 따라서, 일 양태에서, 모바일 컴퓨팅 디바이스는 장래의 악성 거동의 위험에 처하지 않는 것을 확실히 하기 위해 자신의 현재 구성을 계속해서 체크할 수도 있다.
모바일 컴퓨팅 디바이스가 악성 및 경로 구성 데이터베이스에 기초하여 현재 구성이 악성 구성으로 이어진다고 결정하는 경우 (즉, 결정 블록 506 = "예"), 모바일 컴퓨팅 디바이스는 옵션적 결정 블록 507에서 악성 구성을 회피하기 위해 예방책들을 구현할지 여부를 결정할 수도 있다.
어떤 경우들에서, 모바일 컴퓨팅 디바이스는 디바이스 또는 디바이스 상의 컴포넌트의 현재 구성이 악성 구성으로 이어질 것으로 결정되는 때마다 예방책들을 구현하는 것에 의해 열악한 또는 용인 불가능한 성능을 경험할 수도 있다. 현재 구성이 악성 구성으로 실제로 진화할 것이라는 확실성이 없기 때문에, 모바일 컴퓨팅 디바이스는 보안 및 성능의 효과적인 균형을 달성하기 위하여 미리 정의된 임계값을 초과하는 악성 거동의 특정한 위험이 가까운 장래에 있는 경우에만 예방책들을 선택적으로 구현할 수도 있다. 예를 들어, 모바일 컴퓨팅 디바이스는 도 8을 참조하여 아래에서 추가로 설명된 바와 같이 현재 구성이 악성 구성으로 이어질 실질적 가능성을 갖는 경우에만 예방책들을 구현할 수도 있다. 마찬가지로, 다른 예에서, 도 10을 참조하여 아래에서 더 설명되는 바와 같이 현재 구성으로부터 악성 구성으로 진입할 계산된 위험이 미리 정의된 확률/위험 임계값을 초과하는 경우에만 모바일 통신 디바이스는 예방책들을 구현할 수도 있다.
추가의 양태에서, 미리 정의된 임계값은 모바일 컴퓨팅 디바이스 상의 사용자 인터페이스 컴포넌트로부터 수신된 사용자 입력에 기초하여 설정될 수도 있고, 미리 정의된 임계값은 사용자의 보안-대-성능 선호를 반영할 수도 있다. 예를 들어, 정보 기관에서의 사용자가 모든 악성 애플리케이션들이 포착되는 것을 보장하기 위해 더 높은 보안 (즉, 모바일 컴퓨팅 디바이스가 장래의 악성 구성을 피하기 위해 예방책을 구현할 것을 결정하는 추가의 사례들) 을 요구할 수도 있고, 이러한 사용자는 예방책들이 시간의 대부분 또는 전부를 차지하도록 낮은 임계값을 사용하기 위해 모바일 컴퓨팅 디바이스를 구성할 수도 있다. 다른 예에서, 다른 사용자가 모든 악성 거동을 중단시키는 것이 성능에 영향을 미치치 않는다고 결정할 수도 있고, 악성 구성에 진입할 위험이 높은 임계값을 초과하는 경우에만 예방책들을 구현하기 위해 모바일 컴퓨팅 디바이스를 구성할 수도 있다.
모바일 컴퓨팅 디바이스가 악성 구성을 피하기 위해 예방책들을 구현하지 않는다고 결정하는 경우 (즉, 옵션적 결정 블록 507 = "아니오"), 모바일 컴퓨팅 디바이스는 블록 510에서 수행을 정상적으로 계속할 수도 있다. 그 프로세스는 모바일 컴퓨팅 디바이스가 블록 504에서 모바일 컴퓨팅 디바이스의 현재 구성을 결정하는 것으로 계속할 수도 있음에 따라 루프를 계속할 수도 있다. 따라서, 일 양태에서, 모바일 컴퓨팅 디바이스는 장래의 악성 거동의 위험에 처하지 않는 것을 확실히 하기 위해 자신의 현재 구성을 계속해서 체크할 수도 있다.
모바일 컴퓨팅 디바이스가 악성 구성을 피하기 위해 예방책들을 구현할 것을 결정하는 경우 (즉, 옵션적 결정 블록 507 = "예"), 그 디바이스는 블록 508에서 악성 구성을 피하기 위한 예방책들을 구현할 수도 있다. 일 양태에서, 모바일 컴퓨팅 디바이스는 장래의 악성 구성을 피하기 위한 다양한 동작들, 이를테면 장래의 악성 구성들에 연관된 애플리케이션들/프로세스들을 결정하는 것과 그들 애플리케이션들/프로세스들을 종료, 검역, 및/또는 치료를 수행할 수도 있다. 예방책들을 구현하는 것은 도 6을 참조하여 아래에서 더 상세히 설명된다.
예방책들을 구현한 후, 모바일 컴퓨팅 디바이스는 블록 510에서 수행을 정상적으로 계속할 수도 있다. 그 프로세스는 분석 엔진이 블록 504에서 모바일 컴퓨팅 디바이스의 현재 구성을 결정하는 것으로 계속할 수도 있음에 따라 루프 내에서 계속할 수도 있다.
위의 설명은 모바일 컴퓨팅 디바이스의 현재 구성이 악성 구성으로 이어지는지 여부를 결정하는 것에 관계하지만, 추가의 양태들에서, 모바일 컴퓨팅 디바이스 또는 모바일 컴퓨팅 디바이스 상에서 동작하는 컴포넌트는 대신에, 모바일 컴퓨팅 디바이스 상에서 동작하는 개개의 하드웨어 또는 소프트웨어 컴포넌트의 현재 구성이 악성 구성으로 이어지는지 여부를 결정할 수도 있다. 예를 들어, 모바일 컴퓨팅 디바이스는 애플리케이션의 현재 구성이 악성 구성으로 이어지는 경로 구성이라고 결정할 수도 있다. 이들 대안적 양태들에서, 네트워크 서버로부터 수신된 악성 및 경로 구성 데이터베이스는 개개의 애플리케이션들 또는 하드웨어 컴포넌트들이 가까운 장래에 악성 거동의 위험이 있는지 여부를 결정하기 위해 모바일 컴퓨팅 디바이스 (또는 모바일 컴퓨팅 디바이스 상에서 동작하는 컴포넌트) 에 필요한 악성 및 경로 구성들에 관한 정보를 포함할 수도 있다.
도 6은 모바일 컴퓨팅 디바이스가 현재 경로 구성으로 있는 경우 가까운 장래의 악성 구성을 피하기 위한 예방책들을 구현하기 위해 모바일 컴퓨팅 디바이스 상에서 구현될 수도 있는 일 양태의 방법 (600) 을 도시한다. 일 양태에서, 현재 경로 구성에 있다고 결정한 후, 모바일 컴퓨팅 디바이스는 가까운 장래에 악성 거동의 위험이 실제로 있는지 여부를 평가하기 위해 모바일 컴퓨팅 디바이스 상에서 발생하는 다른 거동들을 검사하기 위한 충분한 시간을 모바일 컴퓨팅 디바이스에게 제공하기 위해 현재 경로 구성에 연관된 하나 이상의 프로세스들을 느리게 하거나 또는 일시 정지시킬 수도 있다.
방법 (600) 의 동작들은 도 5를 참조하여 위에서 설명된 방법 (500) 의 블록 508의 동작들의 일 양태를 구현한다. 따라서, 모바일 컴퓨팅 디바이스는 현재 모바일 컴퓨팅 디바이스가 악성 거동으로 이어질 경로 구성에 있다고 결정한 후 (즉, 결정 블록 506 = "예") 방법 (600) 의 수행을 시작할 수도 있다.
블록 602에서, 모바일 컴퓨팅 디바이스는 현재 구성에 연관된 하나 이상의 프로세스들을 식별할 수도 있다. 일 양태에서, 하나 이상의 프로세스들은 모바일 컴퓨팅 디바이스 상에서 동작하는 애플리케이션들, 프로그램들, 스크립트들, 하드웨어 컴포넌트들, 또는 다른 컴포넌트들일 수도 있다. 예를 들어, 현재 구성은 "카메라 온" 및 "스크린 오프"를 포함할 수도 있고, 모바일 컴퓨팅 디바이스는 그들 특성들과 모바일 컴퓨팅 디바이스 상에서 현재 실행중인 카메라 애플리케이션을 연관시킬 수도 있다.
다른 양태에서, 모바일 컴퓨팅 디바이스는 모바일 컴퓨팅 디바이스의 현재 경로 구성에 연관된 하나 이상의 프로세스들을 식별하는 악성 및 경로 구성 데이터베이스에 포함된 정보를 수신할 수도 있고, 모바일 컴퓨팅 디바이스는 현재 구성에 관련된 하나 이상의 프로세스들을 식별하기 위해 이 정보를 활용할 수도 있다. 예를 들어, 경로 구성에 있다고 결정한 후, 모바일 컴퓨팅 디바이스는 모바일 컴퓨팅 디바이스 상에서 동작하는 소셜 미디어 애플리케이션이 경로 구성과 연관되고 따라서 모바일 컴퓨팅 디바이스를 악성 거동으로 이어지게 할 책임이 있을 가능성을 발견하기 위해 악성 및 경로 구성 데이터베이스를 참조할 수도 있다. 추가의 양태에서, 악성 및 경로 구성 데이터베이스는 경로 구성에 링크된 하나를 초과하는 프로세스 또는 컴포넌트의 아이덴티티들을 포함할 수도 있다.
블록 604에서, 모바일 컴퓨팅 디바이스는 하나 이상의 프로세스들의 실행을 늦출 수도 있다. 일 양태에서, 하나 이상의 프로세스들을 늦추는 것은, 도 5를 참조하여 설명된 위의 방법 (500) 의 결정 블록 506에서 설명된 바와 같이 현재 구성이 경로 구성이라는 초기 발견 직후에 일어날 수도 있는, 악성 거동의 진행중인 발달을 저지하는 초기 예방책일 수도 있다. 다른 양태에서, 모바일 컴퓨팅 디바이스는 대신에 하나 이상의 프로세스들의 실행을 완전히 중단시킬 수도 있다.
하나 이상의 프로세스들의 실행을 늦추는 것 또는 일시 중지시키는 것이 모바일 컴퓨팅 디바이스의 기능 및 성능을 일시적으로 감소시킬 수도 있지만, 이러한 비용들보다는 가까운 장래의 악성 거동을 피한다는 잠재적 이점들이 더 클 수도 있다. 다양한 양태들은 이들 비용들을 추가로 감소시키는데, 모바일 컴퓨팅 디바이스는 모바일 컴퓨팅 디바이스가 현재 경로 구성에 있다고 결정한 후에만 이 프로세싱들의 동작들에 신중하게 개입할 수도 있기 때문이다. 따라서, 장래의 악성 거동의 검출된 위험이 있는 경우 (즉, 모바일 컴퓨팅 디바이스가 현재 경로 구성에 있는 경우) 에만 액션을 취하는 것에 의해, 모바일 컴퓨팅 디바이스는 모바일 컴퓨팅 디바이스 상에서 동작하는 하나 이상의 프로세스들 또는 컴포넌트들에 최소로 영향을 초래하면서도 자신을 보호할 수도 있다.
도 6으로 돌아가서, 블록 606에서, 모바일 컴퓨팅 디바이스는 모바일 컴퓨팅 디바이스 상에서 현재 발생하는 다른 거동들을 검사할 수도 있다. 일 양태에서, 하나 이상의 프로세스들이 느려지거나 또는 중단되지만, 모바일 컴퓨팅 디바이스는 현재 구성이 악성 거동을 향하는 경향이 있는지 여부에 대해 더 나은 예측을 하도록 시도할 시 다른 진행중인 활동들을 조사할 수도 있다. 예를 들어, 모바일 컴퓨팅 디바이스는 다른 비정상 또는 의심되는 거동을 발견하려는 시도 시 하나 이상의 프로세스들에 관련된 또는 그러한 프로세스들에 의해 사용되는 애플리케이션들 또는 하드웨어 컴포넌트들을 스캔할 수도 있다. 다른 양태에서, 다른 거동들의 검사는 포괄적이고 철저한 스캐닝 및 분석을 포함할 수도 있고, 하나 이상의 프로세스들을 늦추는 것은 현재 구성이 악성 구성으로 진화하기 전에 모바일 컴퓨팅 디바이스가 이들 포괄적인 스캔들을 완료하는 것을 가능하게 할 수도 있다.
옵션적 결정 블록 608에서, 모바일 컴퓨팅 디바이스는 현재 구성이 악성이 되는지 여부의 최종적인 판정을 하기 전에 추가의 검사가 요구되는지 여부를 결정할 수도 있다. 추가의 검사가 필요하다고 모바일 컴퓨팅 디바이스가 결정하는 경우 (즉, 옵션적 결정 블록 608 = "예"), 모바일 컴퓨팅 디바이스는 옵션적 블록 610에서 모바일 컴퓨팅 디바이스 상에서 현재 발생하는 다른 거동들을 계속 검사할 수도 있다. 모바일 컴퓨팅 디바이스는 현재 구성이 악성이 되는지 여부 및/또는 무엇이 모바일 컴퓨팅 디바이스가 악성 거동으로 향하는 경향이 있도록 유발하는지의 최종적인 판정을 합리적으로 할 수 있기까지 다른 거동들을 계속 검사할 수도 있다.
따라서, 모바일 컴퓨팅 디바이스가 추가의 검사가 요구되지 않는다고 결정하면 (즉, 옵션적 결정 블록 608 = "아니오"), 모바일 컴퓨팅 디바이스는 결정 블록 612에서 다른 거동들의 검사에 기초하여 현재 구성이 악성 구성으로 이어질 실질적 가능성이 있는지 여부를 결정할 수도 있다. 하나 이상의 프로세스들이 스크린이 오프인 동안 화상을 취하는 카메라 애플리케이션인 (즉, 현재 구성이 "카메라 온" 및 "스크린 오프"인) 일 예에서, 모바일 컴퓨팅 디바이스는, 모바일 컴퓨팅 디바이스 상의 다른 활동이 스크린이 사용자의 입력에 응답하여 막 켜지려고 함을 나타내기 때문에, 현재 구성이 악성 상태 (예컨대, "스크린 오프", "카메라 온", 및 "카메라 데이터 송신 온") 에 진입하지 않는다고 판단할 수도 있다. 이 예에서, 현재 구성에는 악성 구성이 아닐 수도 있는 "카메라 온" 및 "스크린 온"으로의 전이가 예상된다.
모바일 컴퓨팅 디바이스가 현재 구성이 악성 구성으로 이어질 실질적 가능성이 없다고 결정하는 경우 (즉, 결정 블록 612 = "아니오"), 모바일 컴퓨팅 디바이스는 블록 618에서 하나 이상의 프로세스들을 정상 동작들로 복귀시킬 수도 있다. 일 양태에서, 하나 이상의 프로세스들은 정상 속도에서 동작들을 계속할 수도 있다.
모바일 컴퓨팅 디바이스가 현재 구성이 악성이 되고 있다고 결정하는 경우 (즉, 결정 블록 612 = "예"), 모바일 컴퓨팅 디바이스는 옵션적 블록 614에서 하나 이상의 프로세스들을 인터럽트할 수도 있다. 일 양태에서, 하나 이상의 프로세스들을 인터럽트하는 것은 하나 이상의 프로세스들의 실행을 완전히 중단시키는 것 또는 그 프로세스들을 종료시키는 것을 포함할 수도 있다.
블록 616에서, 모바일 컴퓨팅 디바이스는 하나 이상의 프로세스들에 대한 예방책들을 구현할 수도 있다. 일 양태에서, 모바일 컴퓨팅 디바이스는 하나 이상의 프로세스들을 모바일 컴퓨팅 디바이스 상의 다른 애플리케이션들 또는 컴포넌트들과 상호작용하는 것으로부터 분리시키는 것과 초기, 양성 구성으로부터 하나 이상의 프로세스들을 리셋/재시작하는 것을 포함하는, 악성 거동을 피하기 위한 다양한 기법들을 구현할 수도 있다. 다른 기법들은 양성인 것으로 알려진 더 앞선 프로세싱 포인트로 하나 이상의 프로세스들을 복원시키는 것 (예컨대, 애플리케이션을 더 이전의 버전으로 되돌리는 것) 을 포함할 수도 있다. 모바일 컴퓨팅 디바이스는 블록 618에서 하나 이상의 프로세스들을 정상 동작들로 또한 복귀시킬 수도 있다.
모바일 컴퓨팅 디바이스는 도 5를 참조하여 위에서 설명된 방법 (500) 의 블록 504에서 현재 구성을 결정하는 것으로 계속할 수도 있다.
도 7a는 유한 상태 기계 ("FSM") (700) 로서 표현되는 일 양태의 모바일 컴퓨팅 디바이스 상의 구성들과 구성들 간의 전이들의 상태도를 도시한다.
일 양태에서, FSM (700) 은 모바일 컴퓨팅 디바이스의 가능한 구성들의 각각에 대한 상태 (즉, 구성) ("스크린 온", "스크린 오프", "데이터 전송" 등) 를 포함할 수도 있다. FSM (700) 은 모바일 컴퓨팅 디바이스의 구성이 시간 경과에 따라 하나의 상태/구성에서부터 다른 상태/구성으로의 전이들로 변하는 방법을 또한 표현할 수도 있다. 예를 들어, FSM (700) 은 특정 구성 A (702) (예컨대, "스크린 온" 및 "사운드 오프") 가 다른 구성 B (704) (예컨대, "스크린 온" 및 "사운드 온") 으로 전이할 수도 있다는 것을 나타낼 수도 있다.
일 양태에서, 네트워크 서버는 다수의 모바일 디바이스들로부터 획득된 구성 정보 및/또는 구성 이력들에 기초하여 FSM (700) 을 생성할 수도 있다. 예를 들면, 네트워크 서버는 다수의 모바일 컴퓨팅 디바이스들로부터 구성 정보를 수신할 수도 있고 이 정보를 컴파일하여 모바일 컴퓨팅 디바이스들의 구성들/상태들 및 그들 구성들 간의 전이들을 표현하는 FSM을 생성할 수도 있다. 일 예에서, 네트워크 서버는 수천 개의 모바일 컴퓨팅 디바이스들로부터 구성 이력들을 수신할 수도 있고, 초기 구성 (예컨대, "파워 온" 상태) 에서부터 다양한 중간 및 말단 구성들로의 구성 전이들을 나타내는 FSM을 생성할 수도 있다. 다른 양태에서, 상이한 모바일 컴퓨팅 디바이스들이 상이한 특징들 또는 기능들을 가질 수도 있기 때문에, 네트워크 서버는 유사한 특성들 (예컨대, 동일한 모델 번호, 제조업자 등) 을 공유하는 모바일 컴퓨팅 디바이스들에 대해 전문화된 FSM들을 생성할 수도 있다.
다른 양태에서, 네트워크 서버는 FSM (700) 에서의 각각의 구성/상태를 양성 구성, 의심되는 구성, 또는 악성 구성으로서 분류할 수도 있다. 일 양태에서, 네트워크 서버는 다수의 모바일 컴퓨팅 디바이스들로부터 수신된 구성 정보에 기초하여 거동 분석을 수행할 수도 있다. 예를 들어, 네트워크 서버는 악성 거동의 보고들과 지속적으로 링크된 구성들 (즉, 악성 구성들), 구성들이 악성인지 여부를 결정하기 위해 추가의 검사를 요구하는 구성들 (즉, 의심되는 구성들), 및 악성 거동을 나타내지 않는 구성들 (즉, 양성 구성들) 을 식별할 수도 있다. 따라서, 추가의 양태에서, 네트워크 서버는 구성들과 그들 구성들 간의 전이들, 뿐만 아니라 각각의 구성의 분류를 기술하는 FSM을 생성할 수도 있다.
덧붙여, 다른 양태에서, FSM (700) 에서 구성들을 분류한 후, 네트워크 서버는 도 4를 참조하여 위에서 설명된 바와 같이 그들 악성 구성들로 이어질 실질적 위험을 갖는 구성들 (즉, 경로 구성들) 을 식별하기 위해 악성 구성들로부터 "되돌아갈" 수도 있다. 예를 들어, 네트워크 서버 다수의 모바일 디바이스들로부터 수신된 구성 정보와 구성 이력들을 사용하여 악성 거동을 향하는 경향의 시작을 지속적으로 나타내는 특정 구성들을 결정할 수도 있다.
다른 양태에서, FSM (700) 을 생성하며, FSM (700) 에서의 구성들을 분류하고, FSM (700) 에서 악성 구성들로 이어질 경로 구성들을 식별한 후, 네트워크 서버는 FSM (700) 에 관한 이 정보를 모바일 컴퓨팅 디바이스에, 이를테면 도 4를 참조하여 위에서 설명된 바와 같은 악성 및 경로 구성 데이터베이스로 전송할 수도 있다.
일 양태에서, 모바일 컴퓨팅 디바이스는 FSM (700) 을 이용하여 자신의 구성들을 실시간으로 추적할 수도 있다. 예를 들어, 정상 동작들 동안, 모바일 컴퓨팅 디바이스는 자신의 현재 구성의 추적을 유지하기 위해 FSM (700) 에서의 구성 전이들을 추종할 수도 있다. 다른 양태에서, 모바일 컴퓨팅 디바이스는 (예컨대, 네트워크 서버로부터 수신된 악성 및 경로 구성 데이터베이스에서 나타내어진 바와 같이) 자신의 현재 구성이 경로 구성인지 여부를 결정할 수도 있다. 모바일 컴퓨팅 디바이스가 현재 경로 구성에 있다고 결정하는 경우, 모바일 컴퓨팅 디바이스는 모바일 컴퓨팅 디바이스가 가까운 장래에 전이할 수도 있는 잠재적 구성들을 결정하기 위해 FSM (700) 을 분석할 수도 있다. 다르게 말하면, 모바일 컴퓨팅 디바이스는 다음에 발생할 수도 있는 구성들 (즉, 잠재적 장래 구성들) 을 결정하기 위해 유한-상태-기계 분석을 수행하고 모바일 컴퓨팅 디바이스의 현재 구성으로부터 "되돌아갈" 수도 있다.
일 양태에서, 잠재적 장래 구성들은 모바일 컴퓨팅 디바이스가 특정 수의 전이들 후에 도달할 수도 있는 구성들일 수도 있다. 예를 들어, 모바일 컴퓨팅 디바이스의 현재 구성은 "스크린 오프 및 사운드 오프"일 수도 있다. 따라서, 모바일 컴퓨팅 디바이스는 하나의 전이/구성 변경으로 도달 가능할 수도 있는 두 개의 잠재적 장래 구성들, 이를테면 "스크린 온 및 사운드 오프" 및 "스크린 오프 및 사운드 온"을 가질 수도 있다. 추가의 예에서, 모바일 컴퓨팅 디바이스는 두 개의 전이들로 도달 가능한 다른 잠재적 장래 구성 (예컨대, "스크린 온 및 사운드 온") 으로 전이할 수도 있다.
일 양태에서, 잠재적 장래 구성들을 식별한 후, 모바일 컴퓨팅 디바이스는 그것들의 분류들을 결정하고, 그들 잠재적 장래 구성들의 분류들에 기초하여 장래에 악성 구성으로 진입하는 것을 방지 또는 회피하기 위한 필요한 단계들을 취할 수도 있다. 일 예에서, 모바일 컴퓨팅 디바이스는 현재 구성 A (702) 에 있을 수도 있는데 그 구성 A는 양성이고 경로 구성이 아니다 (즉, 현재 구성이 주어진다고 하면 장래의 악성 거동의 식별된 위험은 없다). 이 이벤트에서, 모바일 컴퓨팅 디바이스는 동작을 정상적으로 계속할 수도 있다. 다르게 말하면, 모바일 컴퓨팅 디바이스는 상당한 컴퓨테이션 자원들을 낭비하는 일 없이 실시간으로 (즉, 실제, 정상 동작들 동안) 자신의 현재 상태가 악성 거동으로 이어지는지 여부를 빠르게 체크할 수도 있다.
위의 예의 계속으로, 모바일 컴퓨팅 디바이스는 모바일 컴퓨팅 디바이스로 하여금 구성 A (702) 에서부터 구성 B (704) 로 전이하게 할 수도 있는 하나 이상의 구성 변경들을 시간 경과에 따라 겪을 수도 있다. 구성 B (704) 로 진입 시, 모바일 컴퓨팅 디바이스는 자신의 현재 구성이 경로 구성이라고 결정할 수도 있다. 따라서, 모바일 컴퓨팅 디바이스는 가까운 장래에 악성 구성으로 전이할 위험이 있다고 결정할 수도 있다. 이 시점에, 모바일 컴퓨팅 디바이스는 악성 거동이 가까운 장래에 발생할 가능성을 평가하는 추가적인 시간을 허용하기 위해 구성 B (704) 에 관련된 하나 이상의 프로세스들을 느리게 하거나 또는 중단시킬 수도 있다. 따라서, 장래의 악성 거동의 식별된 위험이 있기까지 예방책들을 시작하는 것을 기다리는 것에 의해, 모바일 컴퓨팅 디바이스는 불필요한 컴퓨테이션들을 회피할 수도 있다.
일 양태에서, 경로 구성에 진입한 후, 모바일 컴퓨팅 디바이스는 도 7b를 참조하여 기술된 표 (725) 에서 예시된 바와 같은 자신의 현재 구성의 분류 및 잠재적 장래 구성들의 분류들에 기초하여 가까운 장래에 악성 거동의 실질적 가능성이 있는지 여부를 결정할 수도 있다. 도 9를 참조하여 아래에서 더 설명되는 다른 양태에서, 모바일 컴퓨팅 디바이스는 네트워크 서버로부터 수신된 정보를 이용하여 가까운 장래에 발생할 악성 거동의 확률 (예컨대, 0.0부터 1.0까지의 값) 을 결정할 수도 있고, 그 디바이스는 악성 거동의 확률이 특정한 임계 확률 (예컨대, 25%) 을 초과하는 경우 악성 거동의 실질적 가능성이 있다고 결정할 수도 있다.
일 예에서, 모바일 컴퓨팅 디바이스가 구성 B (704) 가 경로 구성이라고 결정한 후, 모바일 컴퓨팅 디바이스는 구성 B (704) 가 양성이라는 것과 하나의 단계에서 도달 가능한 잠재적 장래 구성들 (즉, 구성 C (706) 및 구성 D (708)) 이 각각 양성 및 악성이라고 결정할 수도 있다. 일 양태에서, 모바일 컴퓨팅 디바이스는 테이블 (725) 을 참조하고, 구성 B (704) 가 악성 구성으로 직접적으로 이어지기 때문에, 테이블 룩업에 기초하여, 장래에 악성 거동의 실질적 가능성이 있다고 판단할 수도 있다.
다른 예에서, 모바일 컴퓨팅 디바이스의 현재 구성이 구성 E (710) 인 경우, 잠재적 장래 구성 (즉, 구성 F (712)) 만이 양성이기 때문에, 모바일 컴퓨팅 디바이스는 결국에는 악성 거동으로 이어질 비실질적 가능성이 있다고 결정할 수도 있다. 그러나, 모바일 컴퓨팅 디바이스가 구성 F (712) 로 전이한다면, 잠재적 장래 구성들이 모두 악성이기 때문에 모바일 컴퓨팅 디바이스는 장래에 악성 거동의 실질적 위험이 있다고 결정할 수도 있다.
모바일 컴퓨팅 디바이스의 현재 구성이 구성 G (714) 인 다른 예에서, 그 구성 G (714) 이 의심되는 것이기 때문에 모바일 컴퓨팅 디바이스는 현재 구성이 악성 거동으로 이어질 실질적 가능성이 있다고 결정할 수도 있다. 일 양태에서, 모바일 컴퓨팅 디바이스 (또는 네트워크 서버) 는 구성이 양성인지 또는 악성인지를 결정하기 위하여 추가의 정보가 필요한 경우 그 구성을 의심되는 것으로서 분류할 수도 있다.
일 양태에서, 장래의 악성 거동의 가능성을 결정한 후, 모바일 컴퓨팅 디바이스는 결정된 가능성에 기초하여 장래의 악성 거동을 회피할 다양한 예방책들을 구현할지 여부를 결정할 수도 있다. 결정된 가능성에 기초하여 적절한 대책들을 결정하는 프로세스는 도 8을 참조하여 아래에서 설명된다.
도 8은 현재 구성의 악성 거동으로 이어질 실질적 가능성이 있는 경우 예방책들을 구현하기 위해 모바일 컴퓨팅 디바이스 상에서 구현될 수도 있는 일 양태의 방법 (800) 을 도시한다. 일 양태에서, 현재 경로 구성에 있다 (즉, 가까운 장래에 악성 거동의 위험이 있다) 고 결정한 후, 모바일 컴퓨팅 디바이스는 모바일 컴퓨팅 디바이스의 현재 구성 및 모바일 컴퓨팅 디바이스가 자신의 현재 구성으로부터 전이할 수도 있는 구성에 기초하여 가까운 장래에 악성 거동을 경험할 실질적 가능성이 있는지 여부를 결정할 수도 있다.
방법 (800) 의 동작들은 도 5를 참조하여 위에서 설명된 방법 (500) 의 블록 508의 동작들의 일 양태를 구현한다. 따라서, 모바일 컴퓨팅 디바이스는 도 5를 참조하여 위에서 설명된 바와 같이 현재 구성이 경로 구성이라는 결정 후 (결정 블록 506 = "예") 방법 (800) 의 수행을 시작할 수도 있다.
블록 602에서, 모바일 컴퓨팅 디바이스는 도 6을 참조하여 위에서 설명된 바와 같이 현재 구성에 연관된 하나 이상의 프로세스들을 식별할 수도 있다. 모바일 컴퓨팅 디바이스는 블록 604에서 하나 이상의 프로세스들의 실행을 또한 늦출 수도 있다. 일 양태에서, 하나 이상의 프로세스들의 실행을 늦추는 것에 의해, 모바일 컴퓨팅 디바이스는 예방책들이 가까운 장래에 악성 거동을 회피하는데 필요한지 여부를 결정하기 위한 추가적인 시간을 가질 수도 있다.
블록 802에서, 모바일 컴퓨팅 디바이스는 현재 구성의 분류를 결정할 수도 있다. 일 양태에서, 모바일 컴퓨팅 디바이스는 현재 구성이 양성인지, 악성인지, 또는 의심되는 것인지를 결정할 수도 있다. 일 양태에서, 네트워크 서버가 모바일 컴퓨팅 디바이스의 다양한 구성들의 분류들을 도 7a와 도 7b를 참조하여 설명된 바와 같이 (예컨대, 모바일 컴퓨팅 디바이스의 구성들 및 그들 구성들 간의 전이들을 기술하는 FSM의 부분으로서) 결정하였을 수도 있고 그 분류들을 모바일 컴퓨팅 디바이스에 의해 수신된 악성 및 경로 구성 데이터베이스의 부분으로서 전송하였을 수도 있다.
다른 양태에서, 네트워크 서버로부터의 모바일 컴퓨팅 디바이스의 현재 구성의 분류를 악성 및 경로 구성 데이터베이스의 부분으로서 수신하는 것이 아니라, 모바일 컴퓨팅 디바이스 상에서 동작하는 거동 분석자 유닛 (204) 및/또는 분류자 유닛 (208) 이 대신에, 모바일 컴퓨팅 디바이스의 현재 구성의 분류를 도 2를 참조하여 위에서 논의된 바와 같이 국부적으로 결정할 수도 있다. 예를 들어, 거동 분석자 유닛 (204) 이 거동 관찰자 유닛으로부터 현재 거동 관찰결과들을 수신할 수도 있고 모바일 컴퓨팅 디바이스의 현재 구성을 표현하는 거동 벡터를 생성할 수도 있다. 분류자 유닛 (208) 은 그 다음에 모바일 컴퓨팅 디바이스의 현재 구성이 양성인지, 의심되는 것인지, 또는 악성인지를 생성된 거동 벡터가 나타내는지 여부를 결정할 수도 있다.
옵션적 결정 블록 1614에서, 모바일 컴퓨팅 디바이스는 현재 구성이 악성인지 여부를 결정할 수도 있다. 모바일 컴퓨팅 디바이스가 현재 구성이 악성이라고 결정하는 경우 (즉, 옵션적 결정 블록 804 = "예"), 모바일 컴퓨팅 디바이스는 옵션적 블록 808에서 현재 악성 구성을 해결하기 위해 현재 구성에 연관된 하나 이상의 프로세스들에 대한 구제책들 (remedial measures) 을 구현할 수도 있다. 일 양태에서, 모바일 컴퓨팅 디바이스의 현재 구성이 악성인 경우, 악성 거동을 방지하기에는 너무 느릴 수도 있고, 따라서 모바일 컴퓨팅 디바이스는 진행중인 악성 거동을 중단시키는 구제책들을 구현하는 것이 필요할 수도 있다. 예를 들어, 모바일 컴퓨팅 디바이스는 맬웨어, 바이러스들, 손상 파일들 등을 스캔 및 제거할 수도 있다. 모바일 컴퓨팅 디바이스는 블록 618에서 하나 이상의 프로세스들을 정상 동작들로 또한 복귀시킬 수도 있다. 모바일 컴퓨팅 디바이스는 도 5를 참조하여 위에서 설명된 방법 (500) 의 블록 504에서 현재 구성을 결정하는 것으로 또한 계속할 수도 있다.
모바일 컴퓨팅 디바이스가 현재 구성이 악성이 아니라고 결정하는 경우 (즉, 옵션적 결정 블록 804 = "아니오"), 모바일 컴퓨팅 디바이스는 블록 806에서 잠재적 장래 구성들의 분류들을 결정할 수도 있다. 일 양태에서, 모바일 컴퓨팅 디바이스는 블록 802에서 현재 구성의 분류를 결정하는 것을 참조하여 위에서 논의된 바와 같이 잠재적 장래 구성들의 분류들을 결정할 수도 있다. 예를 들어, 악성 및 경로 구성 데이터베이스의 부분이 네트워크 서버로부터 전송되었다면 모바일 컴퓨팅 디바이스는 잠재적 장래 구성들의 분류들을 수신하였을 수도 있다. 다른 예에서, 모바일 컴퓨팅 디바이스 (또는 모바일 컴퓨팅 디바이스 상에서 동작하는 하나 이상의 컴포넌트들) 는 잠재적 장래 구성들에 기초하여 거동 벡터들을 생성하고 그들 거동 벡터들을 분류할 수도 있다.
블록 810에서, 모바일 컴퓨팅 디바이스는 현재 구성 및 잠재적 장래 구성들의 분류들에 기초하여 현재 구성이 악성 구성으로 이어질 가능성을 결정할 수도 있다. 일 양태에서, 모바일 컴퓨팅 디바이스는 현재 구성의 악성 거동으로 이어질 가능성을 결정하기 위해 도 7b를 참조하여 위에서 설명된 표 (725) 같은 룩업 테이블을 참조할 수도 있다.
결정 블록 812에서, 모바일 컴퓨팅 디바이스는 현재 구성이 악성 구성으로 이어질 실질적 가능성을 갖는지 여부를 결정할 수도 있다. 예를 들어, 모바일 컴퓨팅 디바이스는 잠재적 장래 구성들의 모두와 현재 구성이 양성인 경우 가까운 장래에 악성 거동의 비실질적 위험이 있다고 결정할 수도 있다. 다른 예에서, 모바일 컴퓨팅 디바이스는 심지어 현재 구성이 양성임에도 잠재적 장래 구성들 중 하나 이상이 악성인 경우 악성 거동의 실질적 위험이 있다고 결정할 수도 있다.
모바일 컴퓨팅 디바이스가 악성 구성으로 이어질 실질적 가능성이 있다고 결정하는 경우 (즉, 결정 블록 812 = "아니오"), 모바일 컴퓨팅 디바이스는 블록 618에서 하나 이상의 프로세스들을 정상 동작들로 복귀시킬 수도 있다. 모바일 컴퓨팅 디바이스는 도 5를 참조하여 위에서 설명된 방법 (500) 의 블록 504에서 현재 구성을 결정하는 것으로 계속할 수도 있다.
모바일 컴퓨팅 디바이스가 현재 구성이 악성 거동으로 이어질 실질적 가능성이 있다고 결정하는 경우 (즉, 결정 블록 812 = "예"), 모바일 컴퓨팅 디바이스는 옵션적 블록 614에서 하나 이상의 프로세스들의 실행을 옵션적으로 인터럽트할 수도 있다. 일 양태에서, 모바일 컴퓨팅 디바이스는 모바일 컴퓨팅 디바이스에게 임의의 장래의 악성 거동을 피하기에 충분한 시간을 제공하기 위해 하나 이상의 프로세스들의 실행을 중단시킬 수도 있다.
블록 616에서, 모바일 컴퓨팅 디바이스는 위의 도 6에 예시된 방법 (600) 의 블록 616에서 설명된 바와 같이 하나 이상의 프로세스들에 대한 예방책들을 구현할 수도 있다. 일 양태에서, 예방책들을 구현하는 것은 예상된 악성 거동을 피하기 위해 하나 이상의 프로세스들의 성능 또는 구성을 조정하는 것을 포함할 수도 있다. 예를 들어, 하나 이상의 프로세스들은 양성인 것으로 알려진 더 이전의 구성으로 되돌아갈 수도 있다.
블록 618에서, 모바일 컴퓨팅 디바이스는 하나 이상의 프로세스들을 정상 동작들로 복귀시킬 수도 있다. 일 양태 (미도시) 에서, 모바일 컴퓨팅 디바이스가 가까운 장래에 더 이상 악성 거동의 실질적 가능성이 없다고 결정하는 경우 모바일 컴퓨팅 디바이스는 하나 이상의 프로세스들의 정상 실행을 재개할 수도 있다. 모바일 컴퓨팅 디바이스는 도 5를 참조하여 위에서 설명된 방법 (500) 의 블록 504에서 현재 구성을 결정하는 것으로 계속할 수도 있다.
도 9는 모바일 컴퓨팅 디바이스 상의 악성 거동을 예측하는 것과 함께 사용하기 위한 마르코프 체인 분석을 예시한다. 일 양태에서, 도 7a를 참조하여 위에서 설명된 FSM 분석처럼, 마르코프 체인 분석이 모바일 컴퓨팅 디바이스의 다양한 구성들 및 그들 구성들 간의 전이들을 기술할 수도 있다. 게다가, 마르코프 체인 분석은 하나의 구성에서부터 다음의 구성으로 전이할 확률을 또한 포함할 수도 있다.
일 양태에서, 네트워크 서버는 도 7a에 예시된 FSM (700) 을 참조하여 위에서 설명된 바와 같이 다수의 모바일 컴퓨팅 디바이스로부터 수신된 구성 정보/구성 이력들로부터 FSM (900) 을 생성할 수도 있다. 따라서, FSM (900) 은 그들 구성들 중에서의 다양한 구성들/상태들 및 전이들을 포함할 수도 있다. 네트워크 서버는 또한, FSM (900) 에서 각각의 구성에 대한 분류 (즉, 양성, 악성, 또는 의심되는 것) 를 결정하고 악성 거동으로 이어지는 하나 이상의 구성들 (즉, 경로 구성들) 을 결정할 수도 있다.
덧붙여, 다른 양태에서, 네트워크 서버는 경로 구성이 특정 잠재적 장래 구성으로 (예컨대, "스크린 오프"에서부터 "스크린 온"으로) 직접적으로 전이할 확률을 계산할 수도 있다. 예를 들면, 네트워크 서버는 다수의 모바일 컴퓨팅 디바이스들로부터 보고들을 수신할 수도 있고, 보고된 전이들의 총 수 중에서 각각의 경로 구성이 잠재적 장래 구성으로 전이된 횟수를 결정할 수도 있다. 예를 들어, 도 9에 예시된 바와 같이, 네트워크 서버는 구성 B (904) 에서의 모바일 컴퓨팅 디바이스들이 기회 (time) 의 10% 동안 구성 C (906) 로 전이했고 그 기회의 90% 동안 구성 D (908) 로 전이했다고 계산하였을 수도 있다.
추가의 양태에서, 현재 구성이 경로 구성이라고 결정한 후, 모바일 컴퓨팅 디바이스는 잠재적 장래 구성들의 분류들과 현재 구성이 잠재적 장래 구성들의 각각으로 전이할 확률을 결정할 수도 있다. 악성의 잠재적 장래 구성으로 직접적으로 전이할 확률이 특정한 임계값을 초과한다면, 모바일 컴퓨팅 디바이스는 예상된 악성 거동을 회피하기 위한 예방책들을 구현할 수도 있다. 예를 들어, 구성 E (910) 에서의 모바일 컴퓨팅 디바이스가 악성 구성으로 직접적으로 전이할 0% 찬스를 가질 수도 있다. 이 상황에서, 모바일 컴퓨팅 디바이스는 예방책들을 구현하지 않을 수도 있는데 악성 구성으로 직접적으로 전이할 확률이 임계 확률 미만이기 때문이다. 그러나, 구성 F (912) 에서의 모바일 컴퓨팅 디바이스가 악성 상태로 직접적으로 전이할 100% (0.7 + 0.3 = 1.0 = 100%) 찬스를 가질 수도 있고, 그러므로, 모바일 컴퓨팅 디바이스는 현재 구성이 악성 거동으로 이어질 매우 높은 확률을 피하기 위해 예방책들을 구현할 수도 있다.
다른 양태에서, 네트워크 서버는 도 4의 옵션적 블록 410을 참조하여 위에서 설명된 바와 같이 각각의 경로 구성에 대해 결국에는 악성 구성으로 전이할 확률을 계산할 수도 있다. 일 예에서, 구성 H (916) 에서의 모바일 컴퓨팅 디바이스가 두 개의 악성 구성들 (즉, 구성 D (908) 및 구성 I (918)) 로 결국에는 전이할 수도 있다. 구성 H (916) 에서부터 구성 D로 전이할 확률은 9% (구성 B (904) 로 전이할 10% 확률과 그 다음의 구성 B (904) 에서부터 구성 D (908) 로 전이할 90% 확률) 이다. 구성 H (916) 에서부터 구성 I (918) 로 전이할 확률은 2.5% (구성 H (916) 에서 구성 G (914) 로 전이할 5% 확률과 구성 G (914) 에서 구성 I (918) 로 전이할 50% 확률) 이다. 그러므로, 구성 H에서의 모바일 컴퓨팅 디바이스는 결국에는 악성 구성으로 이어질 총 11.5% (9% + 2.5% = 11.5%) 찬스를 가질 수도 있다.
네트워크 서버는 모바일 컴퓨팅 디바이스에게, 경로 구성이 결국에는 악성 거동으로 이어질 확률을 모바일 컴퓨팅 디바이스가 결정하는 것을 가능하게 할 수도 있는 확률 정보를 전송할 수도 있다. 다른 양태에서, 모바일 컴퓨팅 디바이스는 경로 구성에서부터 잠재적 장래 구성들로 전이할 확률들 (즉, 현재 구성에서부터 다음의 구성으로 직접적으로 전이할 확률들) 을 수신할 수도 있고, 현재 경로 구성이 결국에는 악성 거동으로 이어질 확률을 국부적으로 계산할 수도 있다.
도 10은 악성 구성으로 이어질 현재 구성의 확률에 기초하여 악성 거동을 피하는 예방책들을 구현하기 위한, 모바일 컴퓨팅 디바이스 상에서 구현될 수도 있는 일 양태의 방법 (1000) 을 도시한다. 방법 (1000) 의 동작들은 도 5를 참조하여 위에서 설명된 방법 (500) 의 동작들의 일 양태를 구현한다. 일 양태에서, 현재 경로 구성에 있다고 결정한 후, 모바일 컴퓨팅 디바이스는 모바일 컴퓨팅 디바이스의 현재 구성으로부터 악성 구성으로 전이할 확률이 특정한 임계값을 초과하는 경우 악성 거동을 피하기 위한 예방책들을 구현할 수도 있다.
블록 1002에서, 모바일 컴퓨팅 디바이스는 구성 전이 확률들을 포함하는 악성 및 경로 구성 데이터베이스를 네트워크 서버로부터 수신할 수도 있다. 도 9를 참조하여 논의된 바와 같이, 구성 전이 확률들은, 경로 구성이 악성 구성으로 전이할 확률을 포함하는, 모바일 컴퓨팅 디바이스가 하나의 구성에서부터 다른 구성으로 전이할 가능성을 기술할 수도 있다. 일 양태에서, 구성 전이 확률들은 경로 구성에서부터 악성 구성으로 직접적으로 전이할 확률 (즉, 단일 전이로 악성 구성에 진입할 확률) 을 기술할 수도 있다. 다른 양태에서, 구성 전이 확률들은 경로 구성에서부터 악성 구성으로 결국에는 전이할 전체 확률 (즉, 하나 이상의 전이들로 악성 구성으로 진입할 확률) 을 나타낼 수도 있다.
블록 504에서, 모바일 컴퓨팅 디바이스는 도 5를 참조하여 위에서 설명된 방법 (500) 의 블록 504를 참조하여 논의되는 바와 같이 자신의 현재 구성을 결정할 수도 있다. 예를 들어, 거동 분석자 유닛은 거동 관찰결과들에 기초하여 모바일 컴퓨팅 디바이스의 현재 구성을 기술하는 거동 벡터를 생성할 수도 있다.
결정 블록 506에서, 모바일 컴퓨팅 디바이스는 악성 및 경로 구성 데이터베이스에 기초하여 현재 구성이 악성 구성으로 이어지는지 여부를 결정할 수도 있다. 다르게 말하면, 모바일 컴퓨팅 디바이스는 모바일 컴퓨팅 디바이스의 현재 구성과 네트워크 서버로부터 수신된 악성 및 경로 구성 데이터베이스에 포함된 경로 구성들의 리스트를 비교함으로써 모바일 컴퓨팅 디바이스가 경로 구성인지 여부를 결정할 수도 있다. 모바일 컴퓨팅 디바이스가 현재 구성이 경로 구성이 아니라고 결정하는 경우 (즉, 결정 블록 506 = "아니오"), 프로세스는 모바일 컴퓨팅 디바이스가 자신의 현재 구성이 경로 구성이라 (즉, 장래에 악성 거동의 위험이 있다) 고 결정하기까지 루프 내에서 계속할 수도 있다.
모바일 컴퓨팅 디바이스가 현재 구성이 경로 구성이라고 결정하는 경우 (즉, 결정 블록 506 = "예"), 모바일 컴퓨팅 디바이스는 블록 602에서 현재 구성에 연관된 하나 이상의 프로세스들을 식별할 수도 있다. 모바일 컴퓨팅 디바이스는 블록 604에서 하나 이상의 프로세스들의 실행을 또한 늦출 수도 있다. 일 양태에서, 모바일 컴퓨팅 디바이스는 도 6을 참조하여 위에서 설명된 것들과 유사한 방식으로 하나 이상의 프로세스들의 실행을 식별하고 늦출 수도 있다.
옵션적인 양태에서, 모바일 컴퓨팅 디바이스는 옵션적 결정 블록 804에서 현재 구성이 악성인지 여부를 결정할 수도 있다. 예를 들어, 모바일 컴퓨팅 디바이스가 네트워크 서버로부터 악성 및 경로 구성 데이터베이스를 수신하기까지, 모바일 컴퓨팅 디바이스의 현재 구성은 이미 악성 구성일 수도 있다. 모바일 컴퓨팅 디바이스가 현재 구성이 악성이라고 결정하는 경우 (즉, 옵션적 결정 블록 804 = "예"), 모바일 컴퓨팅 디바이스는 옵션적 블록 808에서 현재 악성 구성들을 해결하기 위해 하나 이상의 프로세스들에 대한 구체책들을 구현할 수도 있다. 예를 들어, 모바일 컴퓨팅 디바이스는 악성코드를 스캔하고 제거하는 전통적인 방법들을 채용할 수도 있다. 모바일 컴퓨팅 디바이스는 블록 618에서 하나 이상의 프로세스들을 정상 동작들로 복귀시킬 수도 있다. 프로세스는 모바일 컴퓨팅 디바이스가 모바일 컴퓨팅 디바이스가 블록 504에서 시작하는 경로 구성으로 진입하는 경우를 계속 인식할 수도 있다면 루프 내에서 계속할 수도 있다.
모바일 컴퓨팅 디바이스가 현재 구성이 악성이 아니라고 결정하는 경우 (즉, 옵션적 결정 블록 804 = "아니오"), 모바일 컴퓨팅 디바이스는 블록 1004에서 현재 구성 및 구성 전이 확률들에 기초하여 현재 구성이 악성 구성으로 이어질 확률을 결정할 수도 있다. 일 양태에서, 모바일 컴퓨팅 디바이스는 네트워크 서버로부터 수신된 구성 전이 확률들을 참조하고 모바일 컴퓨팅 디바이스가 자신의 현재 구성에서부터 악성 구성으로 직접적으로 전이할 확률을 결정할 수도 있다.
다른 양태에서, 모바일 컴퓨팅 디바이스는 현재 구성에서부터 하나 이상의 악성 구성들로의 전이들을 추종할 수도 있다. 모바일 컴퓨팅 디바이스는 모바일 컴퓨팅 디바이스의 자신의 현재 구성에서부터 하나 이상의 전이들 후의 악성 구성으로의 전이를 계산하기 위해 네트워크 서버로부터 수신된 구성 전이 확률들을 이용할 수도 있다. 예를 들어, 모바일 컴퓨팅 디바이스는 자신의 현재 구성에서부터 중간 구성으로 전이할 75% 찬스와 중간 구성에서부터 악성 구성으로 전이할 50% 찬스를 가질 수도 있다. 따라서, 현재 구성이 결국에는 악성 구성으로 이어질 37.5% (75% * 50% = 37.5%) 찬스가 있을 수도 있다.
결정 블록 1006에서, 모바일 컴퓨팅 디바이스는 현재 구성이 악성 구성으로 이어질 확률이 위험 임계값을 초과하는지 여부를 결정할 수도 있다. 일 양태에서, 위험 임계값은 예방책들을 구현하는 비용이 악성 거동을 피하는 이점들을 초과할 수도 있는 포인트를 나타낼 수도 있다. 예를 들어, 현재 구성에 연관된 하나 이상의 프로세스들을 이전의 상태 또는 버전으로 복원하는 비용은 현재 구성이 악성 구성으로 실제로 발전할 5% 찬스만이 있는 경우 비용 효과적이지 않을 수도 있다. 예방책들을 구현하는 비용은 현재 구성이 악성 거동으로 이어질 95% 찬스가 있는 경우 모바일 컴퓨팅 디바이스의 전체 성능에 매우 유익할 수도 있다. 도 5를 참조하여 위에서 언급했듯이, 위험 임계값은 사용자 인터페이스 디바이스로부터 수신된 사용자 입력에 기초하여 설정됨으로써, 사용자가 소망의 레벨의 보안을 특정하는 것을 가능하게 할 수도 있다.
모바일 컴퓨팅 디바이스가 현재 구성이 악성 구성으로 이어질 확률이 위험 임계값을 초과하지 않는다고 결정하는 경우 (즉, 결정 블록 1006 = "아니오"), 모바일 컴퓨팅 디바이스는 도 6을 참조하여 위에서 설명된 바와 같이 블록 618에서 하나 이상의 프로세스들을 정상 동작들로 복귀시킬 수도 있다. 프로세스는 모바일 디바이스가 블록 504에서 현재 구성을 결정하는 것으로 계속할 수도 있음에 따라 루프 내에서 계속할 수도 있다.
모바일 컴퓨팅 디바이스가 현재 구성이 악성 구성으로 이어질 확률이 위험 임계값을 초과한다고 결정하는 경우 (즉, 결정 블록 1006 = "예"), 모바일 컴퓨팅 디바이스는 옵션적 블록 614에서의 하나 이상의 프로세스들의 실행을 옵션적으로 인터럽트할 수도 있다. 모바일 컴퓨팅 디바이스는 도 6을 참조하여 위에서 설명된 바와 같이 블록 616에서 하나 이상의 프로세스들에 대한 예방책들을 또한 구현할 수도 있다. 모바일 컴퓨팅 디바이스는 블록 618에서 하나 이상의 프로세스들을 정상 동작들로 또한 복귀시킬 수도 있다.
프로세스는 모바일 컴퓨팅 디바이스가 모바일 컴퓨팅 디바이스가 블록 504에서 시작하는 경로 구성으로 진입하는 경우를 계속 인식할 수도 있다면 루프 내에서 계속할 수도 있다.
도 11은 악성 거동을 초래한다고 결정된 명령들의 실행을 방지하기 위해 모바일 컴퓨팅 디바이스 상에 구현될 수도 있는 일 양태의 방법 (1100) 을 도시한다. 방법 (1100) 의 동작들은 도 5를 참조하여 위에서 설명된 방법 (500) 의 동작들의 일 양태를 구현한다.
블록 1102에서, 모바일 컴퓨팅 디바이스는 악성 경로 명령들의 리스트를 포함하는 악성 및 경로 구성 데이터베이스를 네트워크 서버로부터 수신할 수도 있다. 도 4에서 옵션적 블록 414를 참조하여 위에서 설명된 바와 같이, 네트워크 서버는 다수의 모바일 디바이스들로부터 수신된 구성 정보와 구성 이력들로부터 악성 거동을 초래한 것에 연관된 명령들의 리스트를 컴파일할 수도 있다. 예를 들어, 모바일 컴퓨팅 디바이스는 악성 거동을 발견했던 포인트에서의 자신의 구성들뿐만 아니라 모바일 컴퓨팅 디바이스가 악성 거동에까지 이어지게 수행했던 명령들의 리스트 양쪽 모두를 보고할 수도 있다. 따라서, 일 양태에서, 네트워크 서버는 이들 잠재적으로 악성 경로 명령들을 포함하는 악성 및 경로 구성 데이터베이스를 생성함으로써, 모바일 컴퓨팅 디바이스가 아래에서 설명되는 바와 같이 이들 명령들의 실행을 모니터링하고 방지하는 것을 가능하게 할 수도 있다.
블록 504에서, 모바일 컴퓨팅 디바이스는 도 5를 참조하여 위에서 설명된 방법 (500) 의 블록 504를 참조하여 논의되는 바와 같이 자신의 현재 구성을 결정할 수도 있다. 예를 들어, 거동 분석자 유닛은 거동 관찰결과들에 기초하여 모바일 컴퓨팅 디바이스의 현재 구성을 기술하는 거동 벡터를 생성할 수도 있다.
결정 블록 506에서, 모바일 컴퓨팅 디바이스는 악성 및 경로 구성 데이터베이스에 기초하여 현재 구성이 악성 구성으로 이어지는지 여부를 결정할 수도 있다. 다르게 말하면, 모바일 컴퓨팅 디바이스는 모바일 컴퓨팅 디바이스의 현재 구성과 네트워크 서버로부터 수신된 악성 및 경로 구성 데이터베이스에 포함된 경로 구성들의 리스트를 비교함으로써 모바일 컴퓨팅 디바이스가 경로 구성인지 여부를 결정할 수도 있다. 모바일 컴퓨팅 디바이스가 현재 구성이 경로 구성이 아니라고 결정하는 경우 (즉, 결정 블록 506 = "아니오"), 프로세스는 모바일 컴퓨팅 디바이스가 자신의 현재 구성이 경로 구성이라 (즉, 장래에 악성 거동의 위험이 있다) 고 결정하기까지 루프 내에서 계속할 수도 있다.
모바일 컴퓨팅 디바이스가 현재 구성이 경로 구성이라고 결정하는 경우 (즉, 결정 블록 506 = "예"), 모바일 컴퓨팅 디바이스는 블록 602에서 현재 구성에 연관된 하나 이상의 프로세스들을 식별할 수도 있다. 모바일 컴퓨팅 디바이스는 블록 604에서 하나 이상의 프로세스들의 실행을 또한 늦출 수도 있다. 일 양태에서, 모바일 컴퓨팅 디바이스는 도 6을 참조하여 위에서 설명된 것들과 유사한 방식으로 하나 이상의 프로세스들의 실행을 식별하고 늦출 수도 있다.
블록 1104에서, 모바일 컴퓨팅 디바이스는 하나 이상의 프로세스들에 의해 막 실행되려고 하는 하나 이상의 명령들을 결정할 수도 있다. 일 양태에서, 모바일 컴퓨팅 디바이스는 하나 이상의 프로세스들이 막 실행하려고 하는 명령들을 프리뷰 (preview) 할 수도 있고, 그들 명령들과 네트워크 서버로부터 수신된 악성 및 경로 구성 데이터베이스에 포함된 악성 경로 명령들의 리스트를 비교할 수도 있다.
결정 블록 1106에서, 모바일 컴퓨팅 디바이스는 막 실행하려고 하는 하나 이상의 명령들이 악성 경로 명령들의 리스트 내에 있는지 여부를 결정할 수도 있다. 예를 들어, 모바일 컴퓨팅 디바이스는 하나 이상의 프로세스들이 막 호출하려고 하는 함수 호출들의 이름들을 발견할 수도 있고, 모바일 컴퓨팅 디바이스는 악성 및 경로 구성 데이터베이스를 체크하여 그들 함수 호출 이름들이 악성 경로 명령들의 리스트 내에 포함되는지 여부를 결정한다.
모바일 컴퓨팅 디바이스가 막 실행되려고 하는 하나 이상의 명령들이 악성 경로 명령들의 리스트 내에 없다고 결정하는 경우 (즉, 결정 블록 1106 = "아니오"), 모바일 컴퓨팅 디바이스는 도 6을 참조하여 위에서 설명된 바와 같이 블록 618에서 하나 이상의 프로세스들을 정상 동작들로 복귀시킬 수도 있다. 프로세스는 모바일 컴퓨팅 디바이스가 블록 504에서 현재 구성을 결정하는 것으로 계속할 수도 있음에 따라 루프 내에서 계속할 수도 있다.
모바일 컴퓨팅 디바이스가 막 실행되려고 하는 하나 이상의 명령들이 악성 경로 명령들의 리스트 내에 있다고 결정하는 경우 (즉, 결정 블록 1106 = "예"), 모바일 컴퓨팅 디바이스는 옵션적 블록 614에서 하나 이상의 프로세스들의 실행을 옵션적으로 인터럽트할 수도 있다.
블록 1108에서, 모바일 컴퓨팅 디바이스는 막 실행되려고 하는 하나 이상의 명령들의 실행을 방지할 수도 있다. 일 양태에서, 모바일 컴퓨팅 디바이스는 하나 이상의 프로세스들을 리셋/재시작하거나 또는 하나 이상의 프로세스들을 이전의, 양성 구성으로 되돌릴 수도 있다. 다른 양태에서, 모바일 컴퓨팅 디바이스는 하나 이상의 프로세스들이 악성인 것으로 결정된 하나 이상의 명령들을 실행하는 것만을 방지할 수도 있고, 모바일 컴퓨팅 디바이스는 그렇지 않으면 하나 이상의 프로세스들이 블록 618에서 정상적으로 동작하는 것을 허용할 수도 있다.
모바일 컴퓨팅 디바이스는 모바일 컴퓨팅 디바이스가 경로 구성에 진입했는지 여부를 모바일 컴퓨팅 디바이스가 지속적으로 모니터링하도록 블록 504로 복귀하는 연속 루프에서 그 양태의 프로세스를 실행할 수도 있다.
다양한 양태들은 다양한 모바일 컴퓨팅 디바이스들 중 어느 것으로 구현될 수도 있으며, 그런 디바이스들의 일 예가 도 12에 도시된다. 모바일 컴퓨팅 디바이스 (1200) 는 내부 메모리 (1206) 에 커플링된 프로세서 (1202) 를 포함할 수도 있다. 프로세서 (1202) 는 일반 또는 특정 프로세싱 태스크들을 위해 지정된 하나 이상의 다중코어 집적회로들일 수도 있다. 내부 메모리 (1206) 는 휘발성 또는 비휘발성 메모리일 수도 있고, 또한, 보안형 및/또는 암호화된 메모리, 또는 비보안형 및/또는 비암호화 메모리, 또는 그것들의 임의의 조합일 수도 있다. 프로세서 (1202) 는 터치스크린 패널 (1212), 이를테면 저항 감지 (resistive-sensing) 터치스크린, 정전용량 감지 (capacitive-sensing) 터치스크린, 적외선 감지 터치스크린 등에 또한 커플링될 수도 있다. 덧붙여, 모바일 컴퓨팅 디바이스 (1200) 의 디스플레이는 터치 스크린 능력을 가질 필요가 없다.
모바일 컴퓨팅 디바이스 (1200) 는 서로에게 및/또는 프로세서 (1202) 에 커플링된, 통신물들을 전송 및 수신하기 위한 하나 이상의 라디오 신호 트랜시버들 (1208) (예컨대, Peanut?, Bluetooth?, Zigbee?, Wi-Fi, RF 라디오) 및 안테나 (1210) 를 가질 수도 있다. 트랜시버들 (1208) 과 안테나 (1210) 는 다양한 무선 송신 프로토콜 스택들 및 인터페이스들을 구현하기 위해 위에서 언급된 회로와 함께 사용될 수도 있다. 모바일 컴퓨팅 디바이스 (1200) 는 셀룰러 네트워크를 통해 통신을 가능하게 하고 프로세서에 커플링되는 셀룰러 네트워크 무선 모뎀 칩 (1216) 을 포함할 수도 있다.
모바일 컴퓨팅 디바이스 (1200) 는 프로세서 (1202) 에 커플링된 주변 디바이스 접속 인터페이스 (1218) 를 포함할 수도 있다. 주변 디바이스 접속 인터페이스 (1218) 는 하나의 유형의 접속을 수용하도록 특이하게 구성될 수도 있거나, 또는 USB, FireWire, 썬드볼트, 또는 PCIe와 같이, 공유 또는 사유의 다양한 유형들의 물리적 및 통신 접속들을 수용하도록 구성될 수도 있다. 주변 디바이스 접속 인터페이스 (1218) 는 유사하게 구성된 주변 디바이스 접속 포트 (미도시) 에 또한 커플링될 수도 있다.
모바일 컴퓨팅 디바이스 (1200) 는 오디오 출력들을 제공하기 위한 스피커들 (1214) 을 또한 구비할 수도 있다. 모바일 컴퓨팅 디바이스 (1200) 는, 본원에서 논의된 컴포넌트들의 전부 또는 일부를 포함하기 위해, 플라스틱, 금속, 또는 재료들의 조합으로 구성된 하우징 (1220) 을 또한 포함할 수도 있다. 모바일 컴퓨팅 디바이스 (1200) 는 프로세서 (1202) 에 커플링된 전력원 (1222), 이를테면 일회용 또는 재충전가능 배터리를 포함할 수도 있다. 재충전가능 배터리는 모바일 컴퓨팅 디바이스 (1200) 외부의 소스로부터 충전 전류를 수신하는 주변 디바이스 접속 포트에 또한 커플링될 수도 있다. 모바일 컴퓨팅 디바이스 (1200) 는 사용자 입력들을 수신하기 위한 물리적 버튼 (1224) 을 또한 포함할 수도 있다. 모바일 컴퓨팅 디바이스 (1200) 는 모바일 컴퓨팅 디바이스 (1200) 를 턴 온 및 오프하기 위한 전원 버튼 (1226) 을 또한 구비할 수도 있다.
위에서 설명된 다양한 양태들은 다양한 모바일 컴퓨팅 디바이스들, 이를테면 도 13에 예시된 바와 랩톱 컴퓨터 (1300) 내에 또한 구현될 수도 있다. 많은 랩톱 컴퓨터들은, 컴퓨터의 포인팅 디바이스로서 역할을 하고 따라서 터치 스크린 디스플레이가 장비되고 위에서 설명된 모바일 컴퓨팅 디바이스들 상에 구현된 것들과 유사하게 드래그, 스크롤, 및 플릭 (flick) 제스처들을 수신할 수도 있는 터치패드 터치 표면 (1317) 을 구비한다. 랩톱 컴퓨터 (1300) 는 휘발성 메모리 (1312) 및 대용량 비휘발성 메모리, 이를테면 플래시 메모리의 디스크 드라이브 (1313) 에 커플링된 프로세서 (1311) 를 일반적으로 구비할 것이다. 덧붙여, 모바일 컴퓨팅 디바이스 (1300) 는 프로세서 (1311) 에 커플링된 무선 데이터 링크 및/또는 셀룰러 전화기 트랜시버 (1316) 에 접속될 수 있는, 전자기 복사를 전송하고 수신하기 위한 하나 이상의 안테나 (1308) 를 가질 수도 있다. 컴퓨터 (1300) 는 프로세서 (1311) 에 커플링된 플로피 디스크 드라이브 (1314) 및 콤팩트 디스크 (CD) 드라이브 (1315) 를 또한 구비할 수도 있다. 노트북 구성에서, 컴퓨터 하우징은 프로세서 (1311) 에 모두가 커플링된 터치패드 (1317), 키보드 (1318), 및 디스플레이 (1319) 를 구비한다. 컴퓨팅 디바이스의 다른 구성들은, 다양한 양태들에 연계하여 또한 사용될 수도 있는 잘 알려진 바대로의 프로세서에 (예컨대, USB 입력을 통해) 커플링된 컴퓨터 마우스 또는 트랙볼을 구비할 수도 있다.
이 양태의 방법들의 부분들은, 이 양태의 방법들을 실행하는 동안 모바일 컴퓨팅 디바이스 프로세서에 의해 액세스될 수도 있는 서버에서 정상 동작 거동들의 데이터베이스들을 유지하는 것과 같은 프로세싱의 일부가 발생하는 클라이언트-서버 아키텍처에서 달성될 수도 있다. 이러한 양태들은 다양한 상업적으로 입수 가능한 서버 디바이스들 중 임의의 것, 이를테면 도 14에 예시된 서버 (1400) 상에 구현될 수도 있다. 이러한 서버 (1400) 는 휘발성 메모리 (1402) 및 대용량 비휘발성 메모리, 이를테면 디스크 드라이브 (1403) 에 커플링된 프로세서 (1401) 를 보통 구비한다. 서버 (1400) 는 프로세서 (1401) 에 커플링된 플로피 디스크 드라이브, 콤팩트 디스크 (CD) 또는 DVD 디스크 드라이브 (1404) 를 또한 구비할 수도 있다. 서버 (1400) 는 다른 브로드캐스트 시스템 컴퓨터들 및 서버들에 커플링된 로컬 영역 네트워크와 같은 네트워크 (1406) 와의 데이터 접속들을 확립하기 위해 프로세서 (1401) 에 커플링된 네트워크 액세스 포트들 (1405) 을 또한 구비할 수도 있다. 프로세서 (1401) 는 위에서 설명된 다양한 양태들의 기능들을 포함하는, 다양한 기능들을 수행하기 위한 소프트웨어 명령들 (애플리케이션들) 에 의해 구성될 수 있는 임의의 프로그램가능 마이크로프로세서, 마이크로컴퓨터 또는 다중 프로세서 칩 또는 칩들일 수도 있다. 통상, 소프트웨어 애플리케이션들은 그것들이 액세스되어 프로세서 (1401) 에 로딩되기 전에 내부 메모리 (1402, 1403) 에 저장될 수도 있다. 프로세서 (1401) 는 애플리케이션 소프트웨어 명령들을 저장하기에 충분한 내부 메모리를 구비할 수도 있다.
앞서의 방법 설명들 및 프로세스 흐름도들은 구체적인 예들로서만 제공되고 다양한 양태들의 단계들이 제시된 순서로 반드시 수행되어야 함을 요구하거나 의미하도록 의도된 것은 아니다. 당업자에 의해 이해될 바와 같이 앞서의 양태들에서의 순서의 단계들은 어떤 순서로도 수행될 수도 있다. 단어들 이를테면 "그 후", "그 다음", "다음에" 등은 단계들의 순서를 제한하려는 의도는 아니고; 이들 단어들은 단지 방법들의 기재를 통하여 독자에게 설명하는데 사용된다. 게다가, 단수형으로, 예를 들어, 관사 "a", "an" 또는 "the"의 사용에 해당하는 것으로 여겨질 수 있는 청구항 엘리먼트들에 대한 어떠한 언급이라도, 그 엘리먼트를 단수형으로 제한하는 것으로 해석되지는 않는다.
본 출원에서 사용된 바와 같이, "컴포넌트", "모듈", "시스템", "엔진", "생성자", "관리자" 등은, 특정 동작들 또는 기능들을 수행하도록 구성된 컴퓨터 관련된 엔티티, 이를테면 하드웨어, 펌웨어, 하드웨어 및 소프트웨어의 조합, 소프트웨어, 또는 실행 중인 소프트웨어 (software in execution) 등을 포함하지만 그것들로 제한되지 않는 것으로 의도된다. 예를 들어, 컴포넌트가 프로세서 상에서 실행 중인 프로세스, 프로세서, 오브젝트, 실행가능물 (executable), 실행 스레드 (thread of execution), 프로그램, 및/또는 컴퓨터일 수도 있지만 그것들로 제한되지 않는다. 예시로서, 컴퓨팅 디바이스 상에서 실행중인 애플리케이션 및 컴퓨팅 디바이스 둘 다가 하나의 컴포넌트라고 지칭될 수도 있다. 하나 이상의 컴포넌트들이 프로세스 및/또는 실행 스레드 내에 상주할 수도 있고 컴포넌트가 하나의 프로세서 또는 코어 상에서 국소화되고 그리고/또는 둘 이상의 프로세서들 또는 코어들 사이에서 분산될 수도 있다. 덧붙여서, 이들 컴포넌트들은 다양한 명령들 및/또는 데이터 구조들을 저장하고 있는 다양한 비일시적 컴퓨터 판독가능 매체들로부터 실행될 수도 있다. 컴포넌트들은 로컬 및/또는 원격 프로세스들, 함수 또는 프로시저 호출들, 전자 신호들, 데이터 패킷들, 메모리 읽기/쓰기들, 및 다른 알려진 네트워크, 컴퓨터, 프로세서, 및/또는 프로세스 관련된 통신 수법들을 통해 통신할 수도 있다.
본원에서 개시된 양태들에 관련하여 설명되는 각종 구체적인 논리 블록들, 모듈들, 회로들, 및 알고리즘 단계들은 전자적 하드웨어, 컴퓨터 소프트웨어, 또는 이것 둘의 조합들로 구현될 수도 있다. 하드웨어 및 소프트웨어의 이러한 교환가능성을 명백하게 예증하기 위하여, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들이 일반적으로 그것들의 기능성의 관점에서 설명되어 있다. 이러한 기능성이 하드웨어 또는 소프트웨어 중 어느 것으로 구현되는지는 전체 시스템에 부과되는 특정 애플리케이션 및 설계 제약들에 달려있다. 당업자들은 설명된 기능을 각각의 특정한 애플리케이션에 대하여 다양한 방식들로 구현할 수도 있지만, 이러한 구현 결정은 본 발명의 범위를 벗어나게 하는 것으로 해석되지 않아야 한다.
본원에 개시된 양태들에 관련하여 설명된 다양한 예시적인 로직들, 논리 블록들, 모듈들, 및 회로들을 구현하는데 사용되는 하드웨어는 본원에서 설명된 기능들을 수행하도록 설계된 범용 프로세서, 디지털 신호 프로세서 (DSP), 주문형 집적회로 (ASIC), 필드 프로그램가능 게이트 어레이 (FPGA) 또는 다른 프로그램가능 로직 디바이스, 개별 게이트 또는 트랜지스터 로직, 개별 하드웨어 컴포넌트들, 또는 그것들의 임의의 조합으로 구현되거나 또는 수행될 수도 있다. 범용 프로세서가 멀티프로세서일 수도 있지만, 대안적으로는, 이 프로세서는 임의의 기존 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 프로세서가, 컴퓨팅 디바이스들의 조합, 예컨대, DSP 및 멀티프로세서의 조합, 복수의 멀티프로세서들의 조합, DSP 코어와 협력하는 하나 이상의 멀티프로세서들의 조합, 또는 임의의 다른 이러한 구성으로 또한 구현될 수도 있다. 다르게는, 일부 단계들 또는 방법들이 주어진 기능에 특정된 회로에 의해 수행될 수도 있다.
하나 이상의 예시적인 양태들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 그것들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현된다면, 기능들은 하나 이상의 명령들 또는 코드로서 비일시적 컴퓨터 판독가능 매체 또는 비일시적 프로세서 판독가능 매체 상에 저장될 수도 있다. 본원에서 개시된 방법 또는 알고리즘의 단계들은, 비일시적 컴퓨터 판독가능 저장 매체 또는 프로세서 판독가능 저장 매체 상에 존재할 수도 있는 프로세서 실행가능 소프트웨어 모듈로 실시될 수도 있다. 비일시적 컴퓨터 판독가능 또는 프로세서 판독가능 저장 매체들은 컴퓨터 또는 프로세서에 의해 액세스될 수도 있는 임의의 저장 매체들일 수도 있다. 비제한적인 예로, 이러한 비일시적 컴퓨터 판독가능 또는 프로세서 판독가능 매체들은 RAM, ROM, EEPROM, FLASH 메모리, CD-ROM 또는 다른 광 디스크 스토리지, 자기 디스크 스토리지, 또는 다른 자기적 저장 디바이스들, 또는 소망의 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 저장하는데 사용될 수도 있는 컴퓨터에 의해 액세스될 수도 있는 임의의 다른 매체를 포함할 수도 있다. 디스크 (disk 및 disc) 는 본원에서 사용되는 바와 같이, 콤팩트 디스크 (compact disc, CD), 레이저 디스크, 광 디스크, 디지털 다용도 디스크 (DVD), 플로피 디스크 (floppy disk) 및 블루레이 디스크를 포함하는데, disk들은 보통 데이터를 자기적으로 재생하지만, disc들은 레이저들로써 광적으로 데이터를 재생한다. 상기한 것들의 조합들은 또한 비일시적 컴퓨터 판독가능 및 프로세서 판독가능 매체들의 범위 내에 포함된다. 덧붙여, 방법 또는 알고리즘의 동작들은 코드들 및/또는 명령들의 하나 또는 임의의 조합 또는 세트로서 컴퓨터 프로그램 제품에 통합될 수도 있는 비일시적 프로세서 판독가능 매체 및/또는 컴퓨터 판독가능 매체 상에 존재할 수 있다.
개시된 양태들의 전술한 설명은 이 기술분야의 숙련된 임의의 사람이 본 발명을 제작하고 사용할 수 있게끔 제공된다. 이들 양태들에 대한 다양한 변형예들은 이 기술분야의 숙련된 자들에게 쉽사리 명확하게 될 것이고, 여기에 정의된 일반 원리들은 본 발명의 사상 또는 범위로부터 벗어남 없이 다른 양태들에 적용될 수도 있다. 따라서, 본 발명은 본 명세서에서 보인 양태들로 한정할 의도는 아니며 다음의 청구항들 및 여기에 개시된 원리들 및 신규한 특징들과 일치하는 가장 넓은 범위를 부여하는 것을 의도한다.

Claims (32)

  1. 모바일 컴퓨팅 디바이스 상의 가능성 있는 악성 거동을 예측하는 방법으로서,
    상기 모바일 컴퓨팅 디바이스의 프로세서를 통해, 서버 컴퓨팅 디바이스로부터 경로 구성 (configuration) 데이터베이스를 수신하는 단계로서, 수신된 상기 경로 구성 데이터베이스는,
    구성 패턴;
    비-양성 (non-benign) 구성으로 이어지는 구성들 사이의 경로; 및
    상기 경로가 비-양성 거동으로 이어질 확률을 식별하는 확률 값
    을 식별하는 정보를 포함하는, 상기 경로 구성 데이터베이스를 수신하는 단계;
    상기 프로세서를 통해, 상기 모바일 컴퓨팅 디바이스 상에서의 실행을 위해 스케줄링된 동작들을 결정하는 단계;
    상기 프로세서를 통해, 상기 수신된 경로 구성 데이터베이스에 포함된 상기 정보에 기초하여, 스케줄링된 동작들의 실행이 상기 모바일 컴퓨팅 디바이스에서 상기 비-양성 거동을 초래할 확률을 결정하는 단계; 및
    상기 스케줄링된 동작들의 실행이 상기 비-양성 거동을 초래할 상기 확률이 임계 값을 초과한다고 결정하는 것에 응답하여 예방책들을 구현하는 단계를 포함하는, 모바일 컴퓨팅 디바이스 상의 가능성 있는 악성 거동을 예측하는 방법.
  2. 제 1 항에 있어서,
    상기 예방책들을 구현하는 단계는,
    상기 모바일 컴퓨팅 디바이스 상에서의 실행을 위해 스케줄링된 상기 동작들과 연관된 프로세스를 식별하는 단계; 및
    상기 프로세스의 실행을 늦추는 단계를 포함하는, 모바일 컴퓨팅 디바이스 상의 가능성 있는 악성 거동을 예측하는 방법.
  3. 제 2 항에 있어서,
    상기 모바일 컴퓨팅 디바이스 상에서 발생하는 다른 거동들을 검사하는 단계;
    상기 모바일 컴퓨팅 디바이스의 현재 구성을 결정하는 단계;
    상기 다른 거동들을 검사하는 것에 기초하여 상기 현재 구성이 상기 비-양성 거동을 초래할 확률이 특정한 임계 확률을 초과하는지 여부를 결정하는 단계; 및
    상기 다른 거동들을 검사하는 것에 기초하여 상기 현재 구성이 상기 비-양성 거동을 초래할 확률이 특정한 임계 확률을 초과한다고 결정하는 것에 응답하여 상기 프로세스에 대해 상기 예방책들을 구현하는 단계를 더 포함하는, 모바일 컴퓨팅 디바이스 상의 가능성 있는 악성 거동을 예측하는 방법.
  4. 제 2 항에 있어서,
    상기 모바일 컴퓨팅 디바이스의 현재 구성의 분류를 결정하는 단계;
    상기 모바일 컴퓨팅 디바이스의 잠재적 장래 구성의 분류를 결정하는 단계;
    상기 현재 구성의 분류 및 상기 잠재적 장래 구성의 분류에 기초하여 상기 현재 구성이 상기 비-양성 거동을 야기할 확률을 결정하는 단계;
    상기 확률이 특정한 임계 확률을 초과하는지 여부를 결정하는 단계; 및
    상기 확률이 특정한 임계 확률을 초과한다고 결정하는 것에 응답하여 상기 프로세스에 대해 상기 예방책들을 구현하는 단계를 더 포함하는, 모바일 컴퓨팅 디바이스 상의 가능성 있는 악성 거동을 예측하는 방법.
  5. 제 2 항에 있어서,
    상기 모바일 컴퓨팅 디바이스의 현재 구성을 결정하는 단계;
    상기 수신된 경로 구성 데이터베이스에 포함된 상기 확률 값 및 상기 현재 구성에 기초하여 상기 현재 구성이 상기 비-양성 거동을 야기하는 확률을 결정하는 단계;
    상기 비-양성 거동으로 이어지는 상기 현재 구성의 상기 확률이 위험 임계치를 초과하는지 여부를 결정하는 단계; 및
    상기 비-양성 거동을 야기하는 상기 현재 구성의 상기 확률이 상기 위험 임계치를 초과한다고 결정하는 것에 응답하여 상기 프로세스에 대해 상기 예방책들을 구현하는 단계를 더 포함하는, 모바일 컴퓨팅 디바이스 상의 가능성 있는 악성 거동을 예측하는 방법.
  6. 모바일 컴퓨팅 디바이스로서,
    메모리;
    트랜시버; 및
    상기 메모리 및 상기 트랜시버에 커플링된 프로세서를 포함하며,
    상기 프로세서는,
    서버 컴퓨팅 디바이스로부터 경로 구성 (configuration) 데이터베이스를 수신하는 동작으로서, 수신된 상기 경로 구성 데이터베이스는, 구성 패턴, 비-양성 (non-benign) 구성으로 이어지는 구성들 사이의 경로, 및 상기 경로가 비-양성 거동으로 이어질 확률을 식별하는 확률 값을 식별하는 정보를 포함하는, 상기 경로 구성 데이터베이스를 수신하는 동작;
    상기 모바일 컴퓨팅 디바이스 상에서의 실행을 위해 스케줄링된 동작들을 결정하는 동작;
    상기 수신된 경로 구성 데이터베이스에 포함된 상기 정보에 기초하여, 스케줄링된 동작들의 실행이 상기 모바일 컴퓨팅 디바이스에서 상기 비-양성 거동을 초래할 확률을 결정하는 동작; 및
    상기 스케줄링된 동작들의 실행이 상기 비-양성 거동을 초래할 상기 확률이 임계 값을 초과한다고 결정하는 것에 응답하여 예방책들을 구현하는 동작
    을 포함하는 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성되는, 모바일 컴퓨팅 디바이스.
  7. 제 6 항에 있어서,
    상기 프로세서는, 상기 예방책들을 구현하는 동작이,
    상기 모바일 컴퓨팅 디바이스 상에서의 실행을 위해 스케줄링된 상기 동작들과 연관된 프로세스를 식별하는 동작; 및
    상기 프로세스의 실행을 늦추는 동작
    을 포함하도록 하는 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성되는, 모바일 컴퓨팅 디바이스.
  8. 제 7 항에 있어서,
    상기 프로세서는,
    상기 모바일 컴퓨팅 디바이스 상에서 발생하는 다른 거동들을 검사하는 동작;
    상기 모바일 컴퓨팅 디바이스의 현재 구성을 결정하는 동작;
    상기 다른 거동들을 검사하는 것에 기초하여 상기 현재 구성이 상기 비-양성 거동을 초래할 확률이 특정한 임계 확률을 초과하는지 여부를 결정하는 동작; 및
    상기 다른 거동들을 검사하는 것에 기초하여 상기 현재 구성이 상기 비-양성 거동을 초래할 확률이 특정한 임계 확률을 초과한다고 결정하는 것에 응답하여 상기 프로세스에 대해 상기 예방책들을 구현하는 동작
    을 더 포함하는 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성되는, 모바일 컴퓨팅 디바이스.
  9. 제 7 항에 있어서,
    상기 프로세서는,
    상기 모바일 컴퓨팅 디바이스의 현재 구성의 분류를 결정하는 동작;
    상기 모바일 컴퓨팅 디바이스의 잠재적 장래 구성의 분류를 결정하는 동작;
    상기 현재 구성의 분류 및 상기 잠재적 장래 구성의 분류에 기초하여 상기 현재 구성이 상기 비-양성 거동을 야기할 확률을 결정하는 동작;
    상기 확률이 특정한 임계 확률을 초과하는지를 결정하는 동작; 및
    상기 확률이 특정한 임계 확률을 초과한다고 결정하는 것에 응답하여 상기 프로세스에 대해 상기 예방책들을 구현하는 동작
    을 더 포함하는 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성되는, 모바일 컴퓨팅 디바이스.
  10. 제 7 항에 있어서,
    상기 프로세서는,
    상기 모바일 컴퓨팅 디바이스의 현재 구성을 결정하는 동작;
    상기 수신된 경로 구성 데이터베이스에 포함된 상기 확률 값 및 상기 현재 구성에 기초하여 상기 현재 구성이 상기 비-양성 거동을 야기하는 확률을 결정하는 동작;
    상기 비-양성 거동을 야기하는 상기 스케줄링된 동작들의 실행의 상기 확률이 위험 임계치를 초과하는지 여부를 결정하는 동작; 및
    상기 비-양성 거동을 야기하는 상기 현재 구성의 상기 확률이 상기 위험 임계치를 초과한다고 결정하는 것에 응답하여 상기 프로세스에 대해 상기 예방책들을 구현하는 동작
    을 더 포함하는 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성되는, 모바일 컴퓨팅 디바이스.
  11. 모바일 컴퓨팅 디바이스로서,
    서버 컴퓨팅 디바이스로부터 경로 구성 (configuration) 데이터베이스를 수신하는 수단으로서, 수신된 상기 경로 구성 데이터베이스는,
    구성 패턴;
    비-양성 (non-benign) 구성으로 이어지는 구성들 사이의 경로; 및
    상기 경로가 비-양성 거동으로 이어질 확률을 식별하는 확률 값
    을 식별하는 정보를 포함하는, 상기 경로 구성 데이터베이스를 수신하는 수단;
    상기 모바일 컴퓨팅 디바이스 상에서의 실행을 위해 스케줄링된 동작들을 결정하는 수단;
    상기 수신된 경로 구성 데이터베이스에 포함된 상기 정보에 기초하여, 스케줄링된 동작들의 실행이 상기 모바일 컴퓨팅 디바이스에서 상기 비-양성 거동을 초래할 확률을 결정하는 수단; 및
    상기 스케줄링된 동작들의 실행이 상기 비-양성 거동을 초래할 상기 확률이 임계 값을 초과한다고 결정하는 것에 응답하여 예방책들을 구현하는 수단을 포함하는, 모바일 컴퓨팅 디바이스.
  12. 제 11 항에 있어서,
    상기 예방책들을 구현하는 수단은,
    현재 구성과 연관된 프로세스를 식별하는 수단; 및
    상기 프로세스의 실행을 늦추는 수단을 포함하는, 모바일 컴퓨팅 디바이스.
  13. 제 12 항에 있어서,
    상기 모바일 컴퓨팅 디바이스 상에서 발생하는 다른 거동들을 검사하는 수단;
    상기 다른 거동들의 검사에 기초하여 상기 현재 구성이 상기 비-양성 거동을 초래할 확률이 특정한 임계 확률을 초과하는지 여부를 결정하는 수단; 및
    상기 다른 거동들을 검사하는 것에 기초하여 상기 현재 구성이 상기 비-양성 거동을 초래할 확률이 특정한 임계 확률을 초과한다고 결정하는 것에 응답하여 상기 프로세스에 대해 예방책들을 구현하는 수단을 더 포함하는, 모바일 컴퓨팅 디바이스.
  14. 제 12 항에 있어서,
    상기 현재 구성의 분류를 결정하는 수단;
    잠재적 장래 구성의 분류를 결정하는 수단;
    상기 현재 구성의 분류 및 상기 잠재적 장래 구성의 분류에 기초하여 상기 현재 구성이 상기 비-양성 거동을 야기할 확률을 결정하는 수단;
    상기 확률이 특정한 임계 확률을 초과하는지 여부를 결정하는 수단; 및
    상기 확률이 특정한 임계 확률을 초과한다고 결정하는 것에 응답하여 상기 프로세스에 대해 예방책들을 구현하는 수단을 더 포함하는, 모바일 컴퓨팅 디바이스.
  15. 제 12 항에 있어서,
    상기 수신된 경로 구성 데이터베이스에 포함된 상기 확률 값 및 상기 현재 구성에 기초하여 상기 현재 구성이 악성 구성으로 이어지는 확률을 결정하는 수단;
    상기 악성 구성으로 이어지는 상기 현재 구성의 상기 확률이 위험 임계치를 초과하는지 여부를 결정하는 수단; 및
    상기 악성 구성으로 이어지는 상기 현재 구성의 상기 확률이 상기 위험 임계치를 초과한다고 결정하는 것에 응답하여 상기 프로세스에 대해 예방책들을 구현하는 수단을 더 포함하는, 모바일 컴퓨팅 디바이스.
  16. 프로세서 실행가능 명령들을 저장하고 있는 비일시적 프로세서 판독가능 저장 매체로서,
    상기 프로세서 실행가능 명령들은 모바일 컴퓨팅 디바이스의 모바일 컴퓨팅 디바이스 프로세서로 하여금,
    서버 컴퓨팅 디바이스로부터 경로 구성 (configuration) 데이터베이스를 수신하는 동작으로서, 수신된 상기 경로 구성 데이터베이스는,
    구성 패턴;
    비-양성 (non-benign) 구성으로 이어지는 구성들 사이의 경로; 및
    상기 경로가 비-양성 거동으로 이어질 확률을 식별하는 확률 값
    을 식별하는 정보를 포함하는, 상기 경로 구성 데이터베이스를 수신하는 동작;
    상기 수신된 경로 구성 데이터베이스에 포함된 상기 정보에 기초하여, 스케줄링된 동작들의 실행이 상기 모바일 컴퓨팅 디바이스에서 상기 비-양성 거동을 초래할 확률을 결정하는 동작; 및
    상기 스케줄링된 동작들의 실행이 상기 비-양성 거동을 초래할 상기 확률이 임계 값을 초과한다고 결정하는 것에 응답하여 예방책들을 구현하는 동작
    을 포함하는 동작들을 수행하게 하도록 구성되는, 비일시적 프로세서 판독가능 저장 매체.
  17. 제 16 항에 있어서,
    저장된 상기 프로세서 실행가능 명령들은, 모바일 컴퓨팅 디바이스 프로세서로 하여금, 상기 예방책들을 구현하는 동작이,
    상기 모바일 컴퓨팅 디바이스 상에서의 실행을 위해 스케줄링된 상기 동작들과 연관된 프로세스를 식별하는 동작; 및
    상기 프로세스의 실행을 늦추는 동작을 포함하도록 하는 동작들을 수행하게 하도록 구성되는, 비일시적 프로세서 판독가능 저장 매체.
  18. 제 17 항에 있어서,
    저장된 상기 프로세서 실행가능 명령들은, 모바일 컴퓨팅 디바이스 프로세서로 하여금,
    상기 모바일 컴퓨팅 디바이스 상에서 발생하는 다른 거동들을 검사하는 동작;
    상기 모바일 컴퓨팅 디바이스의 현재 구성을 결정하는 동작;
    상기 다른 거동들을 검사하는 것에 기초하여 상기 현재 구성이 상기 비-양성 거동을 초래할 확률이 특정한 임계 확률을 초과하는지 여부를 결정하는 동작; 및
    상기 다른 거동들을 검사하는 것에 기초하여 상기 현재 구성이 상기 비-양성 거동을 초래할 확률이 특정한 임계 확률을 초과한다고 결정하는 것에 응답하여 상기 프로세스에 대해 상기 예방책들을 구현하는 동작
    을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비일시적 프로세서 판독가능 저장 매체.
  19. 제 17 항에 있어서,
    저장된 상기 프로세서 실행가능 명령들은, 모바일 컴퓨팅 디바이스 프로세서로 하여금,
    상기 모바일 컴퓨팅 디바이스의 현재 구성의 분류를 결정하는 동작;
    상기 모바일 컴퓨팅 디바이스의 잠재적 장래 구성의 분류를 결정하는 동작;
    상기 현재 구성의 분류 및 상기 잠재적 장래 구성의 분류에 기초하여 상기 현재 구성이 상기 비-양성 거동을 야기할 확률을 결정하는 동작;
    상기 확률이 특정한 임계 확률을 초과하는지 여부를 결정하는 동작; 및
    상기 확률이 특정한 임계 확률을 초과한다고 결정하는 것에 응답하여 상기 프로세스에 대해 상기 예방책들을 구현하는 동작
    을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비일시적 프로세서 판독가능 저장 매체.
  20. 제 17 항에 있어서,
    저장된 상기 프로세서 실행가능 명령들은, 모바일 컴퓨팅 디바이스 프로세서로 하여금,
    상기 모바일 컴퓨팅 디바이스의 현재 구성을 결정하는 동작;
    상기 수신된 경로 구성 데이터베이스에 포함된 상기 확률 값 및 상기 현재 구성에 기초하여 상기 현재 구성이 상기 비-양성 거동을 야기하는 확률을 결정하는 동작;
    상기 비-양성 거동을 야기하는 상기 현재 구성의 상기 확률이 위험 임계치를 초과하는지 여부를 결정하는 동작; 및
    상기 비-양성 거동을 야기하는 상기 현재 구성의 상기 확률이 상기 위험 임계치를 초과한다고 결정하는 것에 응답하여 상기 프로세스에 대해 상기 예방책들을 구현하는 동작
    을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비일시적 프로세서 판독가능 저장 매체.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
KR1020167009425A 2013-10-03 2014-09-19 구성 경로들에 기초한 가능성 있는 악성 거동 사전 식별 방법, 디바이스 및 기록매체 KR101810346B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/044,937 2013-10-03
US14/044,937 US9519775B2 (en) 2013-10-03 2013-10-03 Pre-identifying probable malicious behavior based on configuration pathways
PCT/US2014/056666 WO2015050727A1 (en) 2013-10-03 2014-09-19 Pre-identifying probable malicious behavior based on configuration pathways

Publications (2)

Publication Number Publication Date
KR20160065863A KR20160065863A (ko) 2016-06-09
KR101810346B1 true KR101810346B1 (ko) 2018-01-18

Family

ID=51842755

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167009425A KR101810346B1 (ko) 2013-10-03 2014-09-19 구성 경로들에 기초한 가능성 있는 악성 거동 사전 식별 방법, 디바이스 및 기록매체

Country Status (6)

Country Link
US (1) US9519775B2 (ko)
EP (1) EP3053319A1 (ko)
JP (1) JP6161807B2 (ko)
KR (1) KR101810346B1 (ko)
CN (1) CN105637833A (ko)
WO (1) WO2015050727A1 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9213831B2 (en) * 2013-10-03 2015-12-15 Qualcomm Incorporated Malware detection and prevention by monitoring and modifying a hardware pipeline
US9519775B2 (en) 2013-10-03 2016-12-13 Qualcomm Incorporated Pre-identifying probable malicious behavior based on configuration pathways
AU2013101573A4 (en) * 2013-11-29 2014-01-09 Macau University Of Science And Technology Method for predicting and detecting network intrusion into a computer network
RU2595511C2 (ru) * 2014-12-05 2016-08-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ ограничения работы доверенных приложений при наличии подозрительных приложений
US9785776B2 (en) 2015-04-27 2017-10-10 Iboss, Inc. High risk program identification based on program behavior
US10148678B2 (en) * 2015-10-01 2018-12-04 The Boeing Company Cybersecurity system with differentiated capacity to deal with complex cyber attacks
US9906551B2 (en) * 2016-02-09 2018-02-27 International Business Machines Corporation Forecasting and classifying cyber-attacks using crossover neural embeddings
US10402563B2 (en) * 2016-02-11 2019-09-03 Morphisec Information Security Ltd. Automated classification of exploits based on runtime environmental features
WO2017157801A1 (en) * 2016-03-17 2017-09-21 Johann Schlamp Constructible automata for internet routes
US10826933B1 (en) * 2016-03-31 2020-11-03 Fireeye, Inc. Technique for verifying exploit/malware at malware detection appliance through correlation with endpoints
US10893059B1 (en) 2016-03-31 2021-01-12 Fireeye, Inc. Verification and enhancement using detection systems located at the network periphery and endpoint devices
US10491610B2 (en) 2016-05-20 2019-11-26 International Business Machines Corporation Remote monitoring of software
US10803177B2 (en) * 2017-07-19 2020-10-13 International Business Machines Corporation Compliance-aware runtime generation based on application patterns and risk assessment
US10462162B2 (en) * 2017-07-24 2019-10-29 Rapid7, Inc. Detecting malicious processes based on process location
CN109936545B (zh) * 2017-12-18 2020-07-24 华为技术有限公司 暴力破解攻击的检测方法和相关装置
US11431748B2 (en) 2017-12-20 2022-08-30 Mounir Talal NSOULI Predictive crowdsourcing-based endpoint protection system
WO2019170615A1 (en) * 2018-03-05 2019-09-12 British Telecommunications Public Limited Company Improved application deployment
US11782965B1 (en) * 2018-04-05 2023-10-10 Veritas Technologies Llc Systems and methods for normalizing data store classification information
US10885226B1 (en) * 2018-06-06 2021-01-05 NortonLifeLock, Inc. Systems and methods for enforcing secure shared access on computing devices by content state pinning
WO2019246573A1 (en) * 2018-06-22 2019-12-26 Avi Networks A statistical approach for augmenting signature detection in web application firewall
US11201855B1 (en) 2018-06-22 2021-12-14 Vmware, Inc. Distributed firewall that learns from traffic patterns to prevent attacks
US11483325B2 (en) * 2018-07-17 2022-10-25 Netflix, Inc. Differencing engine for digital forensics
CN109195154B (zh) * 2018-08-13 2021-06-29 中国联合网络通信集团有限公司 物联网窜卡用户识别方法和装置
CN109348065B (zh) * 2018-11-27 2020-12-25 湘潭大学 一种基于qq聊天互动行为的手机电磁辐射预测方法
US20220279007A1 (en) * 2019-07-17 2022-09-01 Nec Corporation Analysis system, method, and program
US12130908B2 (en) * 2020-05-01 2024-10-29 Forcepoint Llc Progressive trigger data and detection model

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150101047A1 (en) 2013-10-03 2015-04-09 Qualcomm Incorporated Pre-Identifying Probable Malicious Behavior Based on Configuration Pathways

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7257523B1 (en) * 1999-05-06 2007-08-14 Fisher-Rosemount Systems, Inc. Integrated distributed process control system functionality on a single computer
JP2002251374A (ja) * 2000-12-20 2002-09-06 Fujitsu Ltd 情報管理システム、情報管理方法、およびその方法をコンピュータに実行させるプログラム、並びにそのプログラムを記録したコンピュータ読み取り可能な記録媒体
US7028338B1 (en) * 2001-12-18 2006-04-11 Sprint Spectrum L.P. System, computer program, and method of cooperative response to threat to domain security
US7370360B2 (en) 2002-05-13 2008-05-06 International Business Machines Corporation Computer immune system and method for detecting unwanted code in a P-code or partially compiled native-code program executing within a virtual machine
WO2004077294A1 (ja) 2003-02-26 2004-09-10 Secure Ware Inc. 不正処理判定方法、データ処理装置、コンピュータプログラム、及び記録媒体
US7024548B1 (en) * 2003-03-10 2006-04-04 Cisco Technology, Inc. Methods and apparatus for auditing and tracking changes to an existing configuration of a computerized device
US7409593B2 (en) * 2003-06-30 2008-08-05 At&T Delaware Intellectual Property, Inc. Automated diagnosis for computer networks
WO2005017690A2 (en) 2003-08-11 2005-02-24 Chorus Systems, Inc. Systems and methods for creation and use of an adaptive reference model
JP3999188B2 (ja) * 2003-10-28 2007-10-31 富士通株式会社 不正アクセス検知装置、不正アクセス検知方法および不正アクセス検知プログラム
JP4371905B2 (ja) * 2004-05-27 2009-11-25 富士通株式会社 不正アクセス検知装置、不正アクセス検知方法、不正アクセス検知プログラムおよび分散型サービス不能化攻撃検知装置
EP1619572A1 (en) 2004-07-23 2006-01-25 Texas Instruments Incorporated System and method of identifying and preventing security violations within a computing system
US7389444B2 (en) * 2004-07-27 2008-06-17 Microsoft Corporation Method and system for troubleshooting a misconfiguration of a computer system based on product support services information
US20060075494A1 (en) 2004-10-01 2006-04-06 Bertman Justin R Method and system for analyzing data for potential malware
US7770785B2 (en) 2005-06-13 2010-08-10 Qualcomm Incorporated Apparatus and methods for detection and management of unauthorized executable instructions on a wireless device
JP4528680B2 (ja) * 2005-07-05 2010-08-18 株式会社日立製作所 自己再組織化システム
WO2007007326A2 (en) 2005-07-14 2007-01-18 Gryphonet Ltd. System and method for detection and recovery of malfunction in mobile devices
US9419981B2 (en) * 2005-10-31 2016-08-16 The Trustees Of Columbia University In The City Of New York Methods, media, and systems for securing communications between a first node and a second node
US7774843B1 (en) 2005-11-16 2010-08-10 Mcafee, Inc. System, method and computer program product for preventing the execution of unwanted code
WO2007089786A2 (en) * 2006-01-30 2007-08-09 Sudhakar Govindavajhala Identifying unauthorized privilege escalations
US20080005797A1 (en) * 2006-06-30 2008-01-03 Microsoft Corporation Identifying malware in a boot environment
US8365286B2 (en) 2006-06-30 2013-01-29 Sophos Plc Method and system for classification of software using characteristics and combinations of such characteristics
US9069957B2 (en) * 2006-10-06 2015-06-30 Juniper Networks, Inc. System and method of reporting and visualizing malware on mobile networks
US8201246B1 (en) 2008-02-25 2012-06-12 Trend Micro Incorporated Preventing malicious codes from performing malicious actions in a computer system
US9916611B2 (en) * 2008-04-01 2018-03-13 Certona Corporation System and method for collecting and targeting visitor behavior
US8745703B2 (en) 2008-06-24 2014-06-03 Microsoft Corporation Identifying exploitation of vulnerabilities using error report
US8667583B2 (en) 2008-09-22 2014-03-04 Microsoft Corporation Collecting and analyzing malware data
CN101483658B (zh) * 2009-01-09 2012-11-28 招商银行股份有限公司 浏览器输入内容保护的系统和方法
US8528080B2 (en) 2009-09-15 2013-09-03 Reefedge Networks, Llc Short-range mobile honeypot for sampling and tracking threats
US8375450B1 (en) 2009-10-05 2013-02-12 Trend Micro, Inc. Zero day malware scanner
US8464345B2 (en) 2010-04-28 2013-06-11 Symantec Corporation Behavioral signature generation using clustering
US20120137369A1 (en) * 2010-11-29 2012-05-31 Infosec Co., Ltd. Mobile terminal with security functionality and method of implementing the same
US9088601B2 (en) 2010-12-01 2015-07-21 Cisco Technology, Inc. Method and apparatus for detecting malicious software through contextual convictions, generic signatures and machine learning techniques
TW201227385A (en) 2010-12-16 2012-07-01 Univ Nat Taiwan Science Tech Method of detecting malicious script and system thereof
US8412945B2 (en) * 2011-08-09 2013-04-02 CloudPassage, Inc. Systems and methods for implementing security in a cloud computing environment
US9672355B2 (en) 2011-09-16 2017-06-06 Veracode, Inc. Automated behavioral and static analysis using an instrumented sandbox and machine learning classification for mobile security
US20130097660A1 (en) * 2011-10-17 2013-04-18 Mcafee, Inc. System and method for whitelisting applications in a mobile network environment
US9832211B2 (en) 2012-03-19 2017-11-28 Qualcomm, Incorporated Computing device to detect malware
KR101701014B1 (ko) * 2012-03-30 2017-01-31 인텔 코포레이션 운영 체제에의 악성 활동 보고
US20130311385A1 (en) * 2012-05-18 2013-11-21 Park S. Foreman Third Party Security Monitoring & Audit
US8819772B2 (en) * 2012-06-25 2014-08-26 Appthority, Inc. In-line filtering of insecure or unwanted mobile device software components or communications
US10180851B2 (en) * 2013-01-14 2019-01-15 Cisco Technology, Inc. Detection of unauthorized use of virtual resources
US20140259167A1 (en) * 2013-03-11 2014-09-11 Samsung Electronics Co. Ltd. Behavior based application blacklisting
US9069955B2 (en) * 2013-04-30 2015-06-30 International Business Machines Corporation File system level data protection during potential security breach
US9213831B2 (en) 2013-10-03 2015-12-15 Qualcomm Incorporated Malware detection and prevention by monitoring and modifying a hardware pipeline

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150101047A1 (en) 2013-10-03 2015-04-09 Qualcomm Incorporated Pre-Identifying Probable Malicious Behavior Based on Configuration Pathways

Also Published As

Publication number Publication date
WO2015050727A1 (en) 2015-04-09
CN105637833A (zh) 2016-06-01
JP6161807B2 (ja) 2017-07-12
EP3053319A1 (en) 2016-08-10
US20150101047A1 (en) 2015-04-09
KR20160065863A (ko) 2016-06-09
JP2016538618A (ja) 2016-12-08
US9519775B2 (en) 2016-12-13

Similar Documents

Publication Publication Date Title
KR101810346B1 (ko) 구성 경로들에 기초한 가능성 있는 악성 거동 사전 식별 방법, 디바이스 및 기록매체
US10089459B2 (en) Malware detection and prevention by monitoring and modifying a hardware pipeline
KR101720930B1 (ko) 행위 계약들을 사용한 가능성 있는 악성 루트킷 행위 사전 식별
US9690635B2 (en) Communicating behavior information in a mobile computing device
US9609456B2 (en) Methods, devices, and systems for communicating behavioral analysis information
KR101829114B1 (ko) 모바일 디바이스에 대한 거동 특징들의 적응적 관찰
US9357397B2 (en) Methods and systems for detecting malware and attacks that target behavioral security mechanisms of a mobile device
US9491187B2 (en) APIs for obtaining device-specific behavior classifier models from the cloud
TWI530141B (zh) 動態地產生及使用裝置特定及裝置狀態特定之分類器模型以高效率分類行動裝置行為之方法及系統
US20160232353A1 (en) Determining Model Protection Level On-Device based on Malware Detection in Similar Devices
US9298494B2 (en) Collaborative learning for efficient behavioral analysis in networked mobile device
US20130304677A1 (en) Architecture for Client-Cloud Behavior Analyzer

Legal Events

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