KR20130129184A - 서버 결합된 멀웨어 방지를 위한 시스템 및 방법 - Google Patents

서버 결합된 멀웨어 방지를 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20130129184A
KR20130129184A KR1020137007412A KR20137007412A KR20130129184A KR 20130129184 A KR20130129184 A KR 20130129184A KR 1020137007412 A KR1020137007412 A KR 1020137007412A KR 20137007412 A KR20137007412 A KR 20137007412A KR 20130129184 A KR20130129184 A KR 20130129184A
Authority
KR
South Korea
Prior art keywords
data
server
mobile communication
data object
application
Prior art date
Application number
KR1020137007412A
Other languages
English (en)
Other versions
KR101558715B1 (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
Priority claimed from US12/868,676 external-priority patent/US9367680B2/en
Priority claimed from US12/868,672 external-priority patent/US8533844B2/en
Priority claimed from US12/868,669 external-priority patent/US8347386B2/en
Application filed by 룩아웃, 인코포레이티드 filed Critical 룩아웃, 인코포레이티드
Publication of KR20130129184A publication Critical patent/KR20130129184A/ko
Application granted granted Critical
Publication of KR101558715B1 publication Critical patent/KR101558715B1/ko

Links

Images

Classifications

    • 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
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/564Static detection by virus signature recognition
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2115Third party

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephone Function (AREA)

Abstract

본 발명은 멀웨어, 스파이웨어 및 다른 바람직하지 않은 어플리케이션이 모바일 커뮤니케이션 장치(예를 들어, 스마트폰, 넷북, 및 태블릿)에 영향을 끼치는 것으로부터 방지하기 위한 시스템 및 방법을 대상으로 한다. 모바일 커뮤니케이션 장치는 바람직하지 않은 어플리케이션의 제거 및 식별을 보조하기 위해 서버를 사용한다. 어플리케이션을 스캔할 때, 장치는 분석을 위해 어플리케이션에 대한 정보를 서버에 전송한다. 서버는 정보를 수신하고, 어플리케이션에 대한 평가를 생산하고, 그리고 장치에 평가를 전송한다. 서버 상에 평가를 수행함에 의해서, 본 발명은 장치에 바람직하지 않은 어플리케이션에 대해 보호를 위한 성능 비용 및 배터리를 감소하도록 허용한다. 서버는 바람직하지 않은 것으로 발견되는 어플리케이션을 설치했다는 경고를 장치에 전송한다. 서버는 많은 장치로부터 어플리케이션에 대한 데이터를 수신하고, 긍정 오류(false positives)를 최소화하고 그리고 공지된 위협 및 미상의 위협에 대해 종합적인 보호를 제공하도록 조합된 데이터를 사용한다.

Description

서버 결합된 멀웨어 방지를 위한 시스템 및 방법{System and Method for Server-Coupled Malware Prevention}
본 발명은 일반적으로 모바일 보안에 관한 것이고, 구체적으로는, 데이터가 단일 모바일 커뮤니케이션 장치 또는 그룹의 모바일 커뮤니케이션 장치들에 악영향을 끼치는 것으로부터 감지하고 방지하는 것에 관한 것이다.
셀룰러 폰, 스마트폰, 무선-지원 PDA(personal data assistants), 태블릿 PC, 넷북, 등과 같은, 오늘날의 모바일 커뮤니케이션 장치는, 다양한 소프트웨어 어플리케이션을 위한 플랫폼으로 더 보편화되고 있다. 모바일 커뮤니케이션 장치 사용자는 이제 상이한 소프트웨어 어플리케이션을 선택해서 설치할 수 있는 더 많은 자유를 갖고, 이에 의해 모바일 커뮤니케이션 장치 경험을 맞춤화한다. 그러나, 시중에는 가용한 많은 양호한(positive) 소프트웨어 어플리케이션이 있지만, 제3자 소프트웨어에 필수불가결하게 상호작용하고, 설치하며, 운용하는 능력은 모바일 커뮤니케이션 장치를 취약한 상태, 멀웨어, 및 다른 유해한 소프트웨어 어플리케이션에 쉽게 놓이게 한다. 유해한 소프트웨어 어플리케이션에 대하여 바이러스차단 소프트웨어를 설치 및 구동할 수 있는 데스크탑 컴퓨터 및 다른 이동성 컴퓨팅 장치들과는 다르게, 모바일 커뮤니케이션 장치는 유사한 소프트웨어를 효과적으로 구동하기 위한 처리 전력 또는 리소스가 부족하다.
모바일 커뮤니케이션 장치 상에 기초적인 판독 기능을 제공하는 제3자 어플리케이션이 개발되어오고 있다; 그러나, 이러한 어플리케이션은 종종 장치, 운영 시스템, 또는 특정화된 어플리케이션이다. 이러한 것으로서, 모바일 커뮤니케이션 장치를 효율적으로 모니터링, 판독, 치료, 및 보호하기 위한 단일한 범용의 플랫폼-애그나스틱 시스템(single universal platform-agnostic system)은 존재하지 않는다. 어떤 모바일 커뮤니케이션 장치 상에서도 동작하고, 하드웨어 및 소프트웨어에 관계없이 사용할 수 있고, 지속적인 실시간 보호를 제공하도록 주기적으로 업데이트될 수 있는, 그러한 시스템을 제공하는 것이 바람직할 것이다. 더불어, 다수의 모바일 커뮤니케이션 장치에 영향을 끼치는 요구 및 변경에 행동하고 반응할 수 있는 적응 가능 시스템을 제공하는 것이 바람직할 것이고, 이에 의해 지능형 멀웨어 보호를 제공한다.
많은 모바일 커뮤니케이션 장치들에 공통적인 하나의 특징은 장치가 네트워크에 꾸준히 연결된다는 사실이다. 그러나, 이러한 보편적인 연결에도 불구하고, 장치가 추가적인 네트워크에 연결되고 암호화된 서비스를 이용할 수 있으므로, 모바일 커뮤니케이션 장치들을 모바일 네트워크 수준으로 충분히 자체보호하기는 어렵고, 상기 두가지는 종종 네트워크 수준 방어를 우회한다. 상기 처리 과정 및 네트워크 상의 각각의 모바일 커뮤니케이션 장치의 메모리 리소스에 전적으로 의존하기 보다는, 모바일 커뮤니케이션 장치를 원격으로 보호하고, 각 장치 상에 로컬로 구동하는 그러한 방안들의 오버헤드(overhead) 없이 다수의 장치에 멀웨어 방지 및 분석 방안을 제공하는 시스템을 제공하는 것이 바람직할 것이다.
모바일 커뮤니케이션 장치를 바람직하지 않은 어플리케이션으로부터 보호하기 어렵게 하는 문제들 중 하나는 그러한 장치들에 가용한 많은 상이한 종류의 데이터 및 어플리케이션들이다. 서비스 공급자들이 어플리케이션을 제공함에 있어서 네트워크 트래픽을 관리할 수 있는 한편, 어플리케이션이 사용자의 모바일 커뮤니케이션 장치 상에 설치되어진 후에 이러한 어플리케이션의 행동을 효과적으로 모니터링하는 현존하는 방법이 없다. 추가적인 결과로서, 전에 공지되지 않은, 신규의 악성 어플리케이션을 그들의 행동에 의해 인식하고 그리고 유해한 어플리케이션 및 데이터의 확산 및 파종을 방지하는 것은 일단 그들이 네트워크에 풀린 이상 어렵다. 모바일 커뮤니케이션 장치 상에 어플리케이션의 설치 및 행동에 대하여 데이터를 수집하기 위하여 한 그룹의 모바일 커뮤니케이션 장치를 활발히 모니터링할 수 있는 시스템을 제공하는 것이 바람직할 수 있다.
일단 그러한 시스템이 자리하게 되는 경우에, 사용자가 그의 모바일 커뮤니케이션 장치 상에서 구동하도록 선택한 어플리케이션에 대하여 더 교양 있는 결정을 하도록 돕고 그리고 개인적 장치 및 네트워크 모두를 전체적으로 더 보호하기 위하여 관리자 및 네트워크 작업자가 방지 방안을 취하게 허용하도록 모바일 커뮤니케이션 장치 어플리케이션에 대하여 획득된 데이터 및 정보를 사용함이 바람직할 것이다.
본 발명은 모바일 커뮤니케이션 장치, 모바일 통신 네트워크, 또는 모바일 커뮤니케이션 장치 상에 존재하는 소프트웨어 어플리케이션의 제조 및 모델에 상관 없이, 요구되지 않는 어플리케이션으로부터 보호 및 제거 또는 단일의 모바일 커뮤니케이션 장치 또는 다수의 모바일 커뮤니케이션 장치에 영향을 끼칠 수 있는 다른 데이터 객체로부터 보호 및 제거를 제공하기 위해 서버를 사용하기 위한 시스템 및 방법을 대상으로 한다.
본 발명에서 사용된 바대로, 잠재적으로 요구되지 않는 어플리케이션 또는 다른 데이터 객체의 식별, 분석, 및 제거와 관련되는 모든 서비스들 뿐만 아니라, 모바일 커뮤니케이션 장치 보호는 비-제한적 용어인 "보안" 하에서 기술된다. 따라서, 본 발명의 일 실시예는 한 그룹의 근로자를 위한 다수의 모바일 커뮤니케이션 장치, 또는 특정한 네트워크에 접근하는 다수의 모바일 커뮤니케이션 장치와 같은, 다수의 모바일 커뮤니케이션 장치에 안전을 제공하고자 한다. 본 발명의 일 실시예는 개인적인 모바일 커뮤니케이션 장치 또는 모바일 네트워크에 부담을 가함이 없이 모바일 커뮤니케이션 장치 상의 어플리케이션에 대한 정보를 안전하고 견고하게 수집하고 그리고 모바일 커뮤니케이션 장치를 보호하기 위해서 어플리케이션에 대한 정보를 사용하고자 한다. 본 발명의 일 실시예는 모바일 커뮤니케이션 장치를 위한 장래의 생산품 또는 서비스를 개발하도록 사용될 수 있는 사용자 또는 장치 정보를 발생하도록 모바일 커뮤니케이션 장치로부터 수집된 정보를 사용하고자 한다.
본 발명의 일 실시예는 많은 방법으로 실행될 수 있다는 것으로 이해되어야 하고, 즉 프로세스, 장치, 시스템, 장치, 방법, 컴퓨터 판독 가능 명령 또는 컴퓨터 프로그램 코드를 포함하는 컴퓨터 판독 가능 저장 매체와 같은 컴퓨터 판독 가능 매체로서이거나, 또는 그 내부에 내장된 컴퓨터 판독 가능 프로그램 코드를 갖는 컴퓨터 이용가능 매체를 포함하는 컴퓨터 프로그램 제품으로서일 수 있다. 본 발명에서 기술되는 모바일 커뮤니케이션 장치는 스마트폰, PDA, 태블릿, 모바일 폰 등과 같은, 휴대용 또는 모바일 장치 상에 사용을 위한 운영 시스템을 구동하는 어떤 컴퓨터 또는 연산 장치를 포함할 수 있다는 것으로 이해할 것이다. 예를 들어, 모바일 커뮤니케이션 장치는 애플 아이폰®, 애플 아이패드®, 팜 프리™, 또는 애플 iOS™, 안드로이드 iOS™, 구글 크롬 OS™, 심비안 OS®, 윈도우즈 모바일® OS, 팜 OS®, 팜 웹 OS™ 를 구동하는 어떤 장치를 포함할 수 있다. 본 발명에서 사용되는 바대로, 모바일 커뮤니케이션 장치는 또한 모바일 장치, 모바일 클라이언트, 또는 단순히 장치 또는 클라이언트으로 언급될 수 있다.
본 명세서는 실시예로서 기술되는 것이고 수반하는 도면 상의 숫자로 한정하는 것이 아니고, 여기에서 같은 참조는 동일한 요소를 지칭한다.
도 1은 본 발명의 실시 형태를 묘사하는 예시적인 블록 다이어그램,
도 2는 본 발명의 실시 형태로서의 단계를 도시하는 예시적인 흐름도,
도 3은 본 발명의 실시 형태로서의 단계를 도시하는 예시적인 흐름도,
도 4는 본 발명의 실시 형태로서의 단계를 도시하는 예시적인 흐름도,
도 5는 본 발명의 실시 형태로서의 단계를 도시하는 예시적인 흐름도,
도 6은 본 발명의 실시 형태로서의 단계를 도시하는 예시적인 흐름도,
도 7은 본 발명의 실시 형태로서의 단계를 도시하는 예시적인 흐름도,
도 8은 본 발명의 실시 형태로서의 단계를 도시하는 예시적인 흐름도,
도 9는 본 발명의 실시 형태로서의 단계를 도시하는 예시적인 흐름도,
도 10은 본 발명의 실시 형태로서의 단계를 도시하는 예시적인 흐름도,
도 11은 본 발명의 실시 형태로서의 단계를 도시하는 예시적인 흐름도,
도 12는 본 발명의 실시 형태로서의 단계를 도시하는 예시적인 흐름도이다.
본 명세서의 문맥에서, 컴퓨터 이용가능 매체 또는 컴퓨터 판독 가능 매체는 명령 실행 시스템, 장치 또는 장치에 의한 사용을 위해 또는 연결된 사용을 위해 상기 프로그램을 포함하거나 저장할 수 있는 어떤 매체일 수 있다. 예를 들어, 컴퓨터 판독 가능 저장 매체 또는 컴퓨터 이용가능 매체는 램(random access memory,RAM), 롬(read-only memory,ROM), 또는 대용량 저장 장치, 하드 드라이브, CDROM, DVDROM, 테이프, 소거 프로그램 가능 ROM(erasable programmable read-only memory, EPROM or flash memory), 또는 정보 저장을 위한 어떤 자기적, 전자기적, 적외선의, 광학적, 또는 전기적 시스템, 장치, 또는 장치와 같은, 영속적 저장장치일 수 있지만, 이에 제한되는 것은 아니다. 대안적으로 또는 추가적으로, 컴퓨터 판독 가능 저장 매체 또는 컴퓨터 이용가능 매체는 이러한 장치들의 어떤 조합 또는 심지어 종이 또는 프로그램 코드가 인쇄되는 또다른 적합성 매체일 수 있고, 이때 상기 프로그램 코드는, 예를 들어, 상기 종이 또는 다른 매체의 광학적 스캐닝을 거쳐 전기적으로 캡쳐될 수 있고, 이어서 컴파일되고, 번역되며, 또는 필요하다면, 그렇지 않으면 적합한 상태로 처리되어지고, 그리고 이어서 컴퓨터 메모리에 저장될 수 있다.
어플리케이션, 소프트웨어 프로그램, 또는 컴퓨터 판독 가능 명령은 성분(component) 또는 모듈 또는 데이터 객체 또는 데이터 아이템으로 언급될 수 있다. 어플리케이션은 하드웨어에서 고정 배선이거나 또는 하드 코딩되거나(hard coded) 또는 일반적 목적의 컴퓨터 상에 실행되는 소프트웨어의 형상을 가질 수 있게 함으로써 상기 소프트웨어가 상기 컴퓨터로 로딩되거나 및/또는 상기 컴퓨터에 의해 실행되는 경우에, 상기 컴퓨터는 본 발명을 실시하기 위한 장치가 된다. 어플리케이션은 본 명세서의 실시예를 생성 및 구현을 가능하게 하기 위한 소프트웨어 개발 키트 또는 툴키트의 사용을 통해 전체적으로 또는 부분적으로 또한 다운로드될 수 있다. 본 명세서에서, 이러한 구현들, 또는 본 발명의 실시예가 가질 수 있는 어떤 다른 형태는, 기법(techniques)으로 언급될 수 있다. 일반적으로, 개시된 처리 단계의 순서는 본 발명의 범위 내에서 변경될 수 있다.
전술한 바와 같이, 보안 서비스는 단일 서버 또는 함께 운용하는 서버 그룹에 의해 하나 또는 그보다 많은 모바일 커뮤니케이션 장치에 제공될 수 있다. 다수의 서버가 본 발명의 범위로부터 벗어남이 없이 보안 서비스를 제공하기 위해 함께 운용할 수 있는 많은 가능한 방법이 있다. 본 시스템의 실시예는 도 1에 도시되고, 여기에서 하나 또는 그보다 많은 서버(151)는 셀룰러, 무선 인터넷 또는 다른 네트워크(121)를 통해 하나 또는 그보다 많은 모바일 커뮤니케이션 장치와 커뮤니케이션한다. 상기에서 언급된 바와 같이, 모바일 커뮤니케이션 장치(101)는 "모바일 클라이언트 장치", "클라이언트 장치", "장치", 또는 "클라이언트"로 또한 언급될 수 있고, 단수 또는 복수 형태로 언급될 수 있다. 상기 하나 또는 그보다 많은 서버(151)는 하나 또는 그보다 많은 모바일 커뮤니케이션 장치(101)에 대한 보안 정보를 저장하는 데이터 저장장치(111)에 접근할 수 있다. 데이터, 평가 정보, 모바일 커뮤니케이션 장치(101)에 대한 정보, 또는 저장을 위한 다른 객체는 서버(151) 및/또는 데이터 저장장치(111) 상에 저장될 수 있다. 서버(151) 또는 데이터 저장장치(111)는 단수 또는 복수일 수 있거나, 또는 물리적 또는 가상적일 수 있다. 데이터 저장장치(111)는 데이터베이스, 데이터 테이블, 데이터 구조, 파일 시스템 또는 다른 메모리 저장장치일 수 있다. 상기 하나 또는 그보다 많은 서버(151)가 데이터 저장장치(111)에 접근할 수 있는 한, 데이터 저장장치(111)는 상기 하나 또는 그보다 많은 서버(151) 중 어느 하나 상에 호스팅될 수 있거나, 또는 하나 또는 그보다 많은 서버(151)로부터 외부적으로 존재할 수 있다. 실시예에서, 데이터 저장장치(111)는 아마존 웹 서비스(Amazon Web Services, LLC)에 의해 제공되는 S3(Simple Storage Service) 또는 다른 제품과 같은, 제3자에 의해 제공되는 외부적 서비스이다. 도 1에서 설명되는 시스템의 구성은 전혀 제한하는 것이 아니고 단지 예시적일 뿐이며, 그리고 다른 구성이 본 발명으로부터 벗어남이 없이 가능하다는 것을 이해할 수 있을 것이다.
모바일 커뮤니케이션 장치(101)와 서버(151) 사이에서의 커뮤니케이션은 다양한 네트워킹 프로토콜 및 보안 방안을 이용할 수 있다는 것을 이해할 것이다. 일 실시예에서, 서버(151)는 HTTP 서버로서 운용하고, 장치(101)는 HTTP 클라이언트으로 운용한다. 전달 중에 데이터를 보호하기 위해, 모바일 커뮤니케이션 장치(101)와 서버(151)는 TLS(Transaction Layer Security)를 사용할 수 있다. 추가적으로, 모바일 커뮤니케이션 장치(101)가 서버(151)에 접근할 권한을 가짐을 인증하기 위해서, 및/또는 모바일 커뮤니케이션 장치(101)의 정체성을 확인하기 위해서, 장치(101)는 서버(151)에 하나 또는 그보다 많은 식별자 또는 자격 부여 인증을 송부할 수 있다. 예를 들어, 인증 자격은 사용자명, 비밀 번호, 장치 특정 자격(device-specific credentials), 또는 모바일 커뮤니케이션 장치(101)를 서버(151)에 식별하게 하는 어떤 다른 데이터를 포함할 수 있다. 장치(101)에 맞춤화된 서비스를 제공하고, 그리고 모바일 커뮤니케이션 장치(101)의 보안 상태의 지속적인 관점을 달성하기 위해서, 인증은 서버(151)가 모바일 커뮤니케이션 장치(101)에 특화된 정보 또는 모바일 커뮤니케이션 장치(101)와 서버(151)와 관련된 계정을 저장하게 허용한다.
모바일 커뮤니케이션 장치(101)에 대한 보안 서비스를 제공하기 위해서, 당업자는 모바일 커뮤니케이션 장치(101)가 서버(151)에 특정한 데이터를 전달할 것이라는 것을 이해할 것이다. 이하에 더 상세히 설명될 바와 같이, 서버(151)는 이러한 데이터를 분석하고, 보안 관련된 평가, 응답, 및/또는 다른 행동을 제공할 것이다. 아래에서는 모바일 커뮤니케이션 장치(101)로부터 서버(151)로 전달되는 데이터의 형태(들), 서버(151)에 의해 수행되는 분석, 및 모바일 커뮤니케이션 장치(101)를 이용하거나 또는 모바일 커뮤니케이션 장치(101)에 의한 행동을 기술한다.
본 발명의 실시예는 모바일 커뮤니케이션 장치(101) 상에 독립적으로 존재할 수 있거나, 또는 2008년 10월 21일에 출원된 명칭“SYSTEM AND METHOD FOR MONITORING AND ANALYZING MULTIPLE INTERFACES AND MULTIPLE PROTOCOLS(다수의 인터페이스 및 다수의 프로토콜을 분석하고 모니터링하기 위한 시스템 및 방법)”인 미국특허출원번호 제12/255,614호에 기술된 것과 같은 모바일 커뮤니케이션 장치에 상존하는 존재 보안 시스템으로 참고될 수 있고, 그리고 본 발명에서 전체로 참고될 수 있다. 당업자는 또한 본 발명의 실시예를 다양한 모바일 커뮤니케이션 장치 플랫폼 상에서 구현하기 위해서, 2008년 10월 21일에 출원된 명칭“SYSTEM AND METHOD FOR A MOBILE CROSS PLATFORM SOFTWARE SYSTEM(모바일 플랫폼 공통사용 소프트웨어 시스템에 대한 시스템 및 방법”인 미국특허출원번호 제12/255,626호에 개시된 것과 같은 플랫폼 공통사용(cross-platform) 시스템을 참고하는 것이 필요할 수 있고, 그리고 본 발명에서 전체로 참고될 수 있다. 추가적으로, 하기에 더 설명되는 바와 같이, 본 발명의 관점은 2008년 10월 21일에 출원된 명칭“SECURE MOBILE PLATFORM SYSTEM(안전 모바일 플랫폼 시스템)”인 미국특허출원번호 제12/255,632호에 기술된 것과 같은 모바일 커뮤니케이션 장치(101)에 대한 보안 상태를 결정하기 위해 사용될 수 있고, 그리고 본 발명에서 전체로 참고될 수 있다.
당업자는 모바일 커뮤니케이션 장치가 상이한 형태의 데이터에 노출된다는 것을 이해할 것이다. 이러한 데이터는 모바일 커뮤니케이션 장치로 전달되거나, 또는 모바일 커뮤니케이션 장치에 의해 수신되거나, 또는 모바일 커뮤니케이션 장치 상에 설치될 수 있는 네트워크 데이터, 파일, 실행 가능한 어플리케이션 및 실행 불가능한 어플리케이션, 이메일, 및 다른 형식의 객체를 포함한다. 모바일 커뮤니케이션 장치는 또한 구체적으로 블루투스, WiFi, 적외선, 라디오 수신기 등을 포함한, 하나 또는 그보다 많은 네트워크 인터페이스를 통해 데이터를 전달하고 수신한다. 유사하게, 데이터는 TCP/IP, HTTP, 블루투스 등과 같은, 층을 이룬 통신 프로토콜(layered communications protocol) 또는 프로토콜 세트로 봉입될 수 있다. 데스크탑 및 랩탑 컴퓨터에 대해 현재 가용한 것들과 같은, 현존하는 서버-클라이언트 보안 모델은, 다수의 모바일 커뮤니케이션 장치에 적절한 평가 및 보안을 제공하기 위하여 그들의 성능을 확장할 수 없다.
본 발명은 모바일 커뮤니케이션 장치를 평가하고 보호하기 위하여 사용될 수 있는 적어도 2가지 형태의 데이터를 고려한다. 제 1 형태의 데이터는 모바일 커뮤니케이션 장치에 대한 데이터, 즉 "장치 데이터(device data)"를 포함한다. 장치 데이터는 사용자 맞춤화가 부족한 모든 유사 장치에 보편적일 수 있는 상태, 성능, 운용 시스템, 펌웨어 버전, 메모리 용량, 가용한 통신 포트, 배터리 한계, 하드웨어 특징, 및 다른 "베이스라인(baseline)" 정보에 관련된다. 장치 데이터는 제조자, 서비스 공급자, 또는 IT 서비스로부터 수신되는 경우에 장치에 대한 디폴트 스펙(default specifications)을 포함할 수 있다. 장치 데이터는 모두 어떤 방식으로 업그레이드되어진 이후에 모든 유사 모바일 통신에 보편적인 상태 정보를 포함할 수 있다. 하기에 더 설명되는 바와 같이, 장치 데이터는 비방어 통신 포트(unguarded communication ports), 운영 시스템 공격(operating system exploits), 장치 특정 공격(device-specific attacks) 등으로 인하여 취약성이 존재하는지 여부를 평가하도록 사용될 수 있다.
모바일 커뮤니케이션 장치를 평가하도록 사용될 수 있는 제 2 형태의 데이터는 모바일 커뮤니케이션 장치에 설치되어 구동될 수 있는 구체적인 어플리케이션, 파일, 또는 객체에 관련한 데이터이다. 본 명세서에서 사용된 바와 같이, 이러한 데이터는 "어플리케이션 데이터(application data)"로 언급된다. 어플리케이션 데이터는 거동 데이터(behavioral data) 또는 메타 데이터(metadata)와 같은, 데이터 객체 및 데이터 객체에 대한 정보를 모두 포함한다. 데이터 객체는 특정한 모바일 커뮤니케이션 장치에 특화될 수 있는 어플리케이션 패키지를 포함한다. 예를 들어, 아이폰 OS 장치는 구체적으로 IPA 파일 또는 APP 패키지를 사용하고, 안드로이드 OS 장치는 구체적으로 APK 파일을 사용하고, 윈도우즈 모바일 장치는 구체적으로 CAB, EXE 또는 DLL 파일을 사용하고, 및 심비안 OS 장치는 구체적으로 SIS 파일을 사용한다. 장치들은 또한 Adobe’s Flash runtime의 기저를 이루는 SWF 포맷 또는 Java virtual machines 상에서 구동될 수 있는 JAR 파일과 같은 플랫폼 공통사용 어플리케이션 포맷을 지원할 수 있다.
어플리케이션 데이터는 멀웨어 또는 스파이웨어인 데이터 객체를 포함하고, 그리고 이에 의해 모바일 커뮤니케이션 장치에 악영향을 끼칠 수 있다. 멀웨어 또는 스파이웨어는 모바일 커뮤니케이션 장치로부터의 정보에 악영향을 끼치거나 또는 훔치도록 의도적으로 디자인되는 어플리케이션, 파일, 및 다른 데이터 객체를 포함한다. 어플리케이션 데이터는 비도덕적인 이유로 디자인되지 않는 데이터 객체를 포함하지만, 장치에 악영향을 끼칠 수 있는 코딩 결함 또는 다른 문제를 가질 수 있다. 어플리케이션 데이터는 또한 다양한 이유로 바람직하지 않을 수 있는 데이터 객체를 포함할 수 있다. 예를 들어, 데이터 객체는 사생활을 절충하고, 장치의 배터리 또는 네트워크 연결을 혹사하게 하고, 및/또는 부적당한 내용을 가지기 때문에 바람직하지 않을 수 있다. 본 명세서에서 사용된 바대로, "데이터 객체"는 "데이터 아이템"으로 또한 언급될 수 있다. 어떤 용어의 사용이던지 상기 데이터를 어느 하나의 형태로 제한하는 것은 아니다.
어플리케이션 데이터는 데이터 객체에 대한 메타 데이터를 포함한다. 예를 들어, 메타 데이터는 데이터 객체 그 자체라기보다는, 특정한 데이터 객체에 대한 정보이다. 메타 데이터는 데이터 객체가 저장되는 모바일 커뮤니케이션 장치의 파일 시스템 상에서의 위치, 데이터 객체의 해시, 데이터 객체명, GUID 또는 UUID와 같은 데이터 객체에 존재하거나 연관되는 특이 식별자, 암호화된 서명자 정보 또는 부여된 권한 수준과 같은 데이터 객체와 관련되는 보안 정보, 및 상기 데이터 객체가 모바일 커뮤니케이션 장치의 운영 시스템 상에 어떻게 설치되거나 통합하는지에 관한 특징을 포함한다. 데이터 객체에 대한 메타 데이터는 또한 상기 데이터 객체가 입수된 장소(예를 들어, 다운로드된 URL, 다운로드된 어플리케이션 시장, 설치되거나 저장되는 메모리 카드)를 포함한다. 메타 데이터는 또한 어플리케이션 시장으로부터 회수될 수 있다. 시장 메타 데이터로 호칭되는, 그러한 메타 데이터는 다운로드 수, 데이터 객체에 대한 사용자 코멘트, 데이터 객체의 설명, 데이터 객체에 의해 의해 요청된 허가, 데이터 객체에 대한 하드웨어 또는 소프트웨어 요청, 데이터 객체의 작성자에 대한 정보, 데이터 객체의 가격, 데이터 객체에 의해 지원되는 언어 또는 언어들, 및 시장이 제공할 수 있는 다른 정보와 같은 데이터 객체에 대한 정보를 포함한다.
일 실시예에서, 어플리케이션 데이터는 또한 거동 데이터를 포함한다. 거동 데이터는 메모리 사용량, 배터리 사용량, 네트워크 사용량, 저장장치 사용량, CPU 사용량, API 사용량, 에러 및 고장(errors and crashes), 연결된 네트워크 서비스(예를 들어, 원격 호스트 어드레스 및 포트), 및 런타임 라이브러리 링키지(runtime library linkage) 와 같은, 모바일 커뮤니케이션 장치의 리소스를 어플리케이션이 상호작용하거나 또는 사용하는 방법에 대한 정보를 포함한다. 거동 데이터는 또한 어플리케이션, 파일, 또는 데이터 객체가 구동되는 경우에, 공정들 또는 설치된 어플리케이션 사이에서의 주의 및 메시징과 같은, 모바일 커뮤니케이션 장치의 운용 시스템의 기능을 이용하는 방법에 대한 정보를 포함한다.
이하에 더 설명되어질 바와 같이, 장치 데이터 및 어플리케이션 데이터는 저장된 데이터에 기초한 장치(예를 들어, 설치된 어플리케이션)의 보안 평가를 제공하거나 또는 상기 장치를 통과하는데에 유용하다. 당업자는 장치 데이터 및 어플리케이션 데이터가 모바일 커뮤니케이션 장치를 보호하거나 또는 모바일 커뮤니케이션 장치에 관련한 다른 기능들을 제공하기 위해 사용될 수 있는 단지 데이터 형태의 실시예일 뿐이라는 것을 이해할 것이다. 다른 형태의 데이터는 또한 본 발명의 범위로부터 벗어남이 없이 개방된 시스템에 의해 평가될 수 있다. 본 명세서에서 사용된 바대로, 상기 평가(assessment)란 용어는 데이터 객체의 동작 또는 동작의 효과를 평가하거나 또는 그렇지 않으면 더 이해하도록 사용될 수 있는 데이터 객체에 관련한 정보를 언급한다. 예를 들어, 평가는 어플리케이션이 악성 또는 비악성인지, 불량인지 또는 양호한지, 불안한지 또는 안전한지에 대한 결정, 또는 어플리케이션이 블랙리스트 또는 화이트리스트에 나타나는지에 대한 결정을 포함할 수 있다. 평가는 데이터 객체에 대한 카테고리화 또는 특징화 데이터, 보안 등급, 사생활 등급, 성능 등급, 퀄러티 등급, 데이터 객체에 대한 배터리 충격 등급, 데이터 객체에 대한 신뢰 등급, 데이터 객체에 대한 분배 데이터를 포함할 수 있다. 평가는 서버(151)에 의한 데이터 수집 및/또는 처리로부터 도출할 수 있고 그리고 API, 사용자 인터페이스, 데이터 공급, 또는 다른 방법을 경유하여 서버(151)에 의해 사용자 또는 다른 시스템에 노출될 수 있다. "평가"에 대한 앞선 설명은 어떤 방식으로 제한하는 것을 의미하진 않는 것으로 이해할 것이다.
A. 장치 데이터 수집
이하에서는 장치 데이터 및 어플리케이션 데이터가 본 발명의 일 실시예에 따라서, 수집되고 저장되는 방법에 대한 설명이다. 일반적으로, 이하의 설명은 네크워크(121)을 통해 서버(151)와 모바일 커뮤니케이션 장치(101) 사이의 커뮤니케이션을 포함한다. 이러한 커뮤니케이션을 통해 전달되거나 수신되는 어떤 데이터는 서버(151) 또는 데이터 저장장치(111) 상에 저장될 수 있다. 일 실시예에서, 서버(151) 또는 데이터 저장장치(111)에 저장된 데이터는 상기 시스템에 공지된 특정한 계정 또는 장치와 연관된다. 데이터 및 장치 또는 계정 사이의 연관은 서버(151)가 앞서 수신된 데이터 상에 기초한 계정 또는 장치에 대한 재단된 기능들을 제공하도록 허용할 수 있다. 일 실시예에서, 상기 데이터의 일부 또는 전체는 특정한 계정 또는 장치에 익명의 연관을 갖는 서버(151) 또는 데이터 저장장치(111) 상에 저장된다. 예를 들어, 데이터는 사생활 목적에 대한 익명의 연관을 갖도록 저장될 수 있음으로써 서버(151) 또는 데이터 저장장치(111) 상의 데이터의 검사는 익명으로 연관된 데이터를 특정한 계정 또는 장치에 묶을 수 없게 한다; 그러나, 장치는 이러한 익명으로 연관된 데이터를 채우거나 업데이트할 수 있다. 익명의 연관은 하기에서 더 자세히 기술된다. 일 실시예에서, 서버(151)는 모바일 커뮤니케이션 장치(101)로부터 정보를 요청할 것이고, 상기 모바일 커뮤니케이션 장치(101)는 상기 요청된 정보에 응답할 것이다. 일 실시예에서, 모바일 커뮤니케이션 장치(101)는 분석 및 평가를 위해 장치 데이터 및/또는 어플리케이션 데이터를 서버(151)에 전달할 것이다. 예를 들어, 모바일 커뮤니케이션 장치(101)의 사용자는 그의 장치로 파일을 다운로드하길 바랄 것이지만, 상기 파일을 설치하기에 앞서서, 상기 파일이 악성 또는 그렇지 않다면 바람직하지 않은지 여부를 체크하기 위해서 상기 파일 또는 상기 파일과 관련된 확인 데이터를 서버(151)에 송부하고자 할 수 있다. 서버(151)는 이어서 모바일 커뮤니케이션 장치(101) 중 어느 하나에 가용한 보안 평가를 제공하기 위해서 이러한 수신된 정보를 분석할 것이다. 또다른 예에서, 평가된 데이터 객체가 모바일 커뮤니케이션 장치의 성능 또는 행동에 영향을 끼치는 방법을 인식하는 것은 유용할 수 있고, 상기 평가는 데이터 객체의 평균 배터리 충격 또는 평균 네트워크 사용량과 같은 정보를 포함한다. 일 실시예에서, 서버(151)는 분석 후에 데이터 객체의 평가를 저장하고 그리고 많은 방법으로 이러한 평가에 접근을 제공할 수 있다. 서버(151)에 의해 수행되는 분석은 이하에 더 설명될 것이다. 서버(151)가 평가 정보에 접근을 제공하는 공정은 또한 이하에 더 설명될 것이다.
네트워크 트래픽으로 네크워크(121) 및 서버(151)에 가해지는 부담을 방지하기 위하여, 다양한 방법이 서버(151)에 의해 요청되고 그리고 전달되는 데이터의 양을 감소하기 위해 사용될 수 있다. 예를 들어, 분석을 위해, 어플리케이션 파일 또는 어플리케이션 패키지와 같은, 전체적인 데이터 객체를 전달하기보다는, 해시 기능 또는 해시 알고리즘이 데이터에 적용될 수 있고, 상기 데이터의 결과적인 해시가 서버(151)에 보내질 수 있다. 서버(151)는 데이터 객체를 특이하게 식별하기 위해서 해시를 사용할 수 있다. 서버가 해시에 의해 식별된 데이터 객체의 평가를 앞서 수행하였다면 서버(151)는 여전히 유효하다면 상기 앞선 평가를 반송할 수 있다. 서버가 데이터 객체에 대한 평가를 아직 수행하지 않았다면, 상기 평가가 공지되지 않음을 지적하는 응답을 반송하고 및/또는 모바일 커뮤니케이션 장치(101)로부터 추가적인 데이터를 요청할 수 있다. 당업자는 해시 알고리즘이 임의 분량의 데이터를 고정된 길이 식별자로 변형할 것이라는 것을 이해할 것이다. 예를 들어, SHA-1 해시 알고리즘은 임의 분량의 입력 데이터를 160-비트 해시로 소화할 수 있다. 또다른 실시예에서, 데이터 객체의 해시 뿐만 아니라 메타 데이터도 데이터 객체 그 자체의 장소로 보내질 수 있어서 예를 들어, 어플리케이션에 대한 메타 데이터가 어플리케이션 전체 대신에 평가를 위해 보내질 수 있다. 많은 경우에, 패키지명, 어플리케이션명, 파일 이름, 파일 크기, 요청된 허가, 암호 서약자, 다운로드 소스, UUID와 같은 특이 식별자, 및 다른 정보와 같은, 메타 데이터는 데이터 객체에 대한 식별 정보로서 충분할 수 있다; 이어서 서버(151)가 적절한 식별 정보를 수신한다면, 상기 데이터 객체가 바람직한지 여부를 결정할 수 있다. 당업자는 서버(151)에 전체적인 데이터 객체를 전달해야 함이 없이 장치(101)에 설치되는 데이터 객체가 악성인지 여부를 서버(151)가 결정하게 허용할 수 있는 그러한 방법으로 데이터 객체가 식별될 수 있는 다양한 방법이 있다는 것을 이해할 것이다.
본 발명의 일 실시예에서, 서버(151)는 완전한 데이터 객체 보다는, 데이터 객체의 일부를 요청할 수 있다. 데이터 객체 전부는 점증적으로 전달될 수 있음으로써 네트워크(121)는 네트워크 트래픽에 의해 부담되지 않게 된다. 대안적으로 또는 추가적으로, 서버(151)는 특정한 어플리케이션에 대한 정보를 요청할 수 있지만, 각각이 이러한 어플리케이션을 갖는 모바일 커뮤니케이션 장치 그룹에 문의할 수 있다. 이러한 방식으로, 서버(151)는 하나의 모바일 커뮤니케이션 장치로부터 데이터의 일부 또는 "덩어리(chunk)"를 수신할 수 있고, 그리고 제 2 모바일 커뮤니케이션 장치로부터 데이터의 또다른 일부를 수신할 수 있다. 서버(151)는 이어서 수신되어지는 중에 이러한 정보를 종합할 수 있고, 그에 의해 어느 특정한 모바일 커뮤니케이션 장치를 부과함이 없이 어플리케이션/파일 데이터를 갖는 다수의 모바일 커뮤니케이션 장치로부터 종합할 수 있다. 이러한 방법의 일 실시예는 이하에 더 설명된다.
도 2는 모바일 커뮤니케이션 장치(101)와 서버(151) 사이에서 상이한 형태의 데이터의 전달에 대한 일반적인 뷰이다. 도 2에 도시되는 바와 같이, 블록(201)에서, 모바일 커뮤니케이션 장치(101)는 서버(151)로 어플리케이션 데이터를 보내고, 상기 서버(151)는 이러한 데이터를 수신한다(블록 203). 이러한 실시예에서, 모바일 커뮤니케이션 장치는 서버(151)에 식별 또는 인증 정보를 전달함으로써 서버(151)는 모바일 커뮤니케이션 장치(101)에 대하여 앞서 저장된 식별 또는 인증 정보를 참조할 수 있고, 모바일 커뮤니케이션 장치(101)과 연관되는 데이터를 저장하고 회수할 수 있고, 그리고 다른 모바일 커뮤니케이션 장치들 사이에서 모바일 커뮤니케이션 장치(101)를 구체적으로 식별하거나 또는 인증할 수 있다.
일 실시예에서, 서버(151)는 모바일 커뮤니케이션 장치(101)로 주의를 송신한다(블록 205). 이러한 경고는 모바일 커뮤니케이션 장치(101)에 특수한 어플리케이션 데이터 또는 장치 데이터에 관련한 경고, 메시지, 명령, 다른 정보일 수 있다. 일 실시예에서, 상기 주의는 서버(151)에 의해 바람직하지 않은 것으로 초기에 평가되지 않았지만 이어서 서버(151)에 의해 바람직하지 않은 것으로 결정된 데이터 객체에 상응하는 어플리케이션 데이터를 앞서 보낸 장치에 기인한 것이다. 블록 207에서, 모바일 커뮤니케이션 장치(101)는 주의를 수신하고, 그리고 블록 209에서, 모바일 커뮤니케이션 장치(101)는 주의에 기초하여 행동한다. 이하에 더 상세하게 설명되는 바와 같이, 그러한 행동은 모바일 커뮤니케이션 장치(101) 상에 하나 또는 그보다 많은 특징 또는 어플리케이션을 비활성화함을 포함할 수 있다.
당업자는 모바일 커뮤니케이션 장치(101)와 서버(151) 사이에서의 상호 작용이 서버로부터 모바일 커뮤니케이션 장치로의 커뮤니케이션 뿐만 아니라, 모바일 커뮤니케이션 장치로부터 서버로의 커뮤니케이션을 포함한다는 것을 이해할 것이다. 예를 들어, 일 실시예에서, 서버(151)는 모바일 커뮤니케이션 장치(101)로부터 어플리케이션 데이터를 수신할 수 있지만, 서버(151)는 평가를 제공하거나 또는 주의를 전달하기 전에 추가적인 정보를 요청할 수 있다. 블록 211에서, 서버(151)는 모바일 커뮤니케이션 장치(101)로부터 추가적인 정보를 요청할 수 있다. 모바일 커뮤니케이션 장치는 상기 요청을 수신하고(블록 213), 서버(151)에 의해 요청된 대로 추가적인 정보를 수집하고(블록 215), 이어서 블록 217에서, 서버(151)에 추가적인 정보를 전달한다. 블록 219에서, 서버(151)는 요청된 추가적인 정보를 수신한다. 이러한 공정은 필요한 만큼 반복되는 것을 이해할 것이다.
도 3 내지 7은 어플리케이션 데이터 및 장치 데이터의 전달 및 수집을 더 상세하게 설명한다. 도 3은 서버(151)가 모바일 커뮤니케이션 장치(101) 상에 저장된 데이터 객체 내의 변경을 평가하는 실시예를 설명한다. 도 3에서, 모바일 커뮤니케이션 장치(101)는 특별한 데이터 객체에서 변경을 감지한다(블록 301). 당업자는 데이터 객체에서 변경을 감지하는 것은 메커니즘을 포함할 수 있다는 것을 이해할 것이고, 상기 메커니즘은 시스템 요청(calls) 또는 파일 시스템 운영, 파일 시스템 또는 다른 데이터 객체 변경 리스너(listener)를 차단하고, 패키지 매니지먼트 시스템(예를 들어, PACKAGE_UPDATED and/or PACKAGE_REPLACED intents in the Android™ operating system)으로부터의 이벤트를 수신하고, 그리고 데이터 객체를 열거할 수 있는 파일 시스템 또는 다른 시스템에서 데이터 객체에 대한 폴링(polling)하는 것과 같다. 변경을 감지하는 다른 기법은 또한 사용될 수 있다. 대안적으로 또는 추가적으로, 다음의 방법들은 모바일 커뮤니케이션 장치 사용자에 의한 요청시에, 또는 모바일 커뮤니케이션 장치 상에 데이터 객체를 분석하고 평가하기 위한 미리 구성된 스케쥴시에, 데이터 객체로의 변경이 감지되는 경우에 일어날 수 있다.
일 실시예에서, 데이터 객체에서 변경은 데이터 객체가 추가되고, 제거되고, 또는 수정되는 어느 시점을 포함한다. 데이터 객체에 대한 어플리케이션 데이터를 전달한 후에 모바일 커뮤니케이션 장치(101)는 데이터 객체에 대한 어플리케이션 데이터를 성공적으로 전달했다는 것을 기록하기 전에 상기 서버로부터 확인을 대기한다. 모바일 커뮤니케이션 장치(101)로부터 데이터 객체에 대한 어플리케이션 데이터를 수신한 후에, 서버(151)는 확인을 전달한다. 전달에서 또는 데이터 자체에 오류가 있었다면, 서버(151)는 오류를 반송한다. 모바일 커뮤니케이션 장치(101)가 서버(151)로부터 오류를 수신한다면, 또는 데이터 객체에 대한 어플리케이션 데이터를 전달한 후에 어떤 응답도 없는 경우에는, 모바일 커뮤니케이션 장치(101)는 송신되어졌던 대로 데이터 객체에 대한 어플리케이션 데이터를 기록하지 않을 것이고, 그리고 모바일 커뮤니케이션 장치(101)는 미래의 어떤 시점에서 상기 데이터를 다시 송신할 수 있다. 당업자는 모바일 커뮤니케이션 장치가 때때로 네트워크에 연결할 수 없거나 또는 전달하는 과정에서 그들의 네트워크 연결을 차단될 수 있다는 것을 인식할 것이다. 이러한 바와 같이, 서버(151)가 데이터 객체에 대한 어플리케이션 데이터를 성공적으로 수신했는지 여부를 기록하는 모바일 커뮤니케이션 장치(101)는 신뢰할 수 있는 데이터 수집 시스템의 기능에 중요하다. 일 실시예에서, 데이터 객체에 대한 어플리케이션 데이터가 모바일 커뮤니케이션 장치(101)로부터 전달되지 않고 그리고 서버(151)에 의해 수신되지 않은 어느 시점에서, 변경이 고려되고 그리고 전달되어야 할 필요가 있다.
일 실시예에서, 모바일 커뮤니케이션 장치(101)는 장치에 존재하는 하나 또는 그보다 많은 데이터 객체에 대한 어플리케이션 데이터를 전달했는지 여부 및 서버(151)가 성공적으로 수신했는지 여부를 저장한다. 어느 데이터 객체가 서버(151)에 보고된 적절한 어플리케이션 데이터를 가졌는지를 식별하기 위하여, 모바일 커뮤니케이션 장치(101)는 장치가 그러한 데이터 객체에 대한 어플리케이션 데이터를 전달할 필요가 있는지 여부를 결정하기 위해서 서버(151)에 성공적으로 보고된 데이터 객체에 대한 식별 정보를 포함하는 데이터베이스를 저장할 수 있다. 예를 들어, 파일 시스템에서의 파일인 데이터 객체는 그 컨텐츠의 해시에 의해 식별될 수 있다. 상기 데이터 객체가 최초로 모바일 커뮤니케이션 장치(101) 상에 설치될 때, 데이터 베이스는 데이터 객체에 대한 어떤 데이터도 포함하지 않을 수 있다. 데이터 객체에 대한 어떠한 식별 정보도 없기 때문에, 모바일 커뮤니케이션 장치(101)는 데이터 객체를 새로운 것으로 인식하고 그리고 서버(151)에 객체는 새로운 것을 지칭하는 데이터 객체에 대한 어플리케이션 데이터를 전달한다. 서버(151)에 데이터 객체에 대한 어플리케이션 데이터를 전달하고 서버가 성공적으로 어플리케이션 데이터를 수신했다는 확인을 수신한 후에, 장치는 파일 컨텐츠의 해시 및 파일이 데이터베이스에 잔류하는 파일 시스템의 위치를 저장한다. 데이터 객체가 삭제되어진다면, 모바일 커뮤니케이션 장치(101)는 앞서 저장된 파일 시스템 위치에 어떤 파일도 없다는 것을 감지할 수 있고 그리고 파일 시스템 위치 및/또는 데이터 객체에 대한 해시 식별 정보를 보고함에 의해서 서버(151)에 데이터 객체의 삭제를 보고할 수 있다. 데이터 객체가, 어플리케이션이 업데이트되는 경우와 같이, 수정되어진다면, 모바일 커뮤니케이션 장치(101)는 앞서 저장된 파일 시스템 위치에 파일이 있는 반면, 파일의 컨텐츠 해시는 저장된 컨텐츠 해시에 매칭하지 않는다는 것을 감지할 수 있다. 이러한 경우에, 모바일 커뮤니케이션 장치(101)는 파일 위치 및/또는 앞선 컨텐츠 해시에 의해 식별되는 데이터 객체가 업데이트 되어졌다는 것을 서버에 보고할 수 있고 그리고 새로운 파일의 컨텐츠 해시를 보고할 수 있다.
일 실시예에서, 모바일 커뮤니케이션 장치(101)에 설치된 보안 시스템은 데이터 객체의 평가를 수신한 목적으로 데이터 객체에 대한 어플리케이션 데이터를 보고할 수 있다. 모바일 커뮤니케이션 장치가 악성인 새로운 어플리케이션을 다운로드한다면, 보안 시스템이 가능한 빨리 이 새로운 아이템을 감지하는 것이 중요하다. 서버(151)는 새로운 어플리케이션을 분석하고 그 결과에 기초하여 작용이 가해질 수 있는 보안 평가를 제공할 수 있다. 또다른 실시예에서, 어플리케이션의 제 1 버전은 안전하지만, 어플리케이션의 제 2 버전은 악성일 수 있다. 보안 시스템이 어플리케이션의 제 1 버전으로부터 이러한 업데이트를 상이한 것으로 인식함으로써 상기 제 2 버전의 새로운 평가를 생산하고 단지 제 1 평가를 보고하진 않게 한다는 것은 중요하다. 서버(151)는 업데이트된 어플리케이션을 분석하고 그 결과에 기초하여 작용이 가해질 수 있는 보안 평가를 제공할 수 있다.
도 3의 블록 303에서, 모바일 커뮤니케이션 장치(101)는 모바일 커뮤니케이션 장치에 대한 식별 정보를 서버(151)에 전달한다. 일 실시예에서, 식별 정보는 인증 정보이다. 일 실시예에서, 식별 정보는 비밀로 고려되지 않는 장치 ID와 같은 장치에 대한 비-권한적인 식별자이다. 일 실시예에서, 식별 정보는 모바일 커뮤니케이션 장치에 대한 장치 정보(예를 들어, 제조자, 모델, 하드웨어 특징)를 포함한다. 추가적으로, 모바일 커뮤니케이션 장치(101)는 변경된 데이터 객체에 대한 정보를 전달한다. 그러한 정보는 메타 데이터(예를 들어, 해시, 패키지명, 파일 이름, 파일 경로, 암호화 서명, UUID와 같은 특이한 식별자) 등과 같은,데이터 객체에 대한 식별 정보를 포함한다. 블록 305에서, 서버(151)는 모바일 커뮤니케이션 장치(101)에 대한 식별자 및 변경된 데이터 객체에 대한 정보를 수신한다. 수신된 데이터는 서버 또는 데이터 저장소(111) 상의 서버(151)에 의해 저장된다(블록 307). 일 실시예에서, 서버(151)에 의해 수신된 데이터 중 단지 일부가 저장된다. 블록 309에서, 서버(151)는 본 명세서에 개시된 기법 또는 본 발명에 전체로 참고되는 미국특허출원번호 제12/255,621호에 개시된 기술 중 어느 하나를 사용하여 변경된 데이터 객체에 대한 평가를 제공한다. 평가는 명령 및/또는 변경된 데이터 객체를 안전, 악성, 또는 미상(unknown)으로 라벨링하는 분류일 수 있다. 일 실시예에서, 수신된 데이터의 일부 또는 모두는 서버(151) 또는 데이터 저장소(111) 상에 저장되고 상기 데이터를 전달한 장치와 연관된다. 예를 들어, 이는 차후에 장치가 어느 어플리케이션을 마주하는지 서버(151)가 결정하는 것을 허용하게 한다. 또다른 실시예에서, 상기 수신된 데이터의 일부 또는 모두는 서버가 직접적으로 상기 정보를 특정한 장치에 묶을 수 없는 방식으로 서버(151) 또는 데이터 저장소(111) 상에 저장된다. 예를 들어, 서버(151)는 특정한 장치 또는 계정에의 어떤 링크 없이 수신된 데이터를 저장할 수 있다. 또다른 실시예에서, 데이터는 저장될때 데이터를 식별자와 연관하는 서버에 의해 익명으로 장치와 연관될 수 있다. 서버(151)가 저장된 데이터를 특정한 장치와 연관할 수 없다는 것을 보장하기 위해서, 식별자는 데이터를 전달하는 장치에만 공지되고 그리고 장치가 데이터를 전달하는 때에는 언제나 서버에 제공된다. 서버는 이러한 식별자를 저장하지 않음으로써 식별자는 특정한 장치 또는 서버(151) 또는 데이터 저장소(111) 상의 계정과 결코 직접적으로 연결되지 않는다. 일 실시예에서, 서버(151)는 서버 또는 데이터 저장소(111) 상의 평가 결과를 저장한다. 데이터 객체에 대한 평가가 요구되고(309) 그리고 데이터 객체에 대한 앞선 평가가 존재하고 유효하게 고려된다면, 서버(151)는 새로운 평가를 수행하는 대신에 데이터 저장소(111)로부터 앞선 평가를 회수한다. 평가는, 상기 평가가 동일한 해시, 동일한 패키지명, 동일한 암호화 서명, 또는 동일한 파일 경로를 갖는 데이터 객체에 관한 것인 경우를 포함하여, 각각의 객체에 관한 메타 데이터가 다양한 방식으로 매칭한다면, 평가가 동일한 해시, 동일한 패키지명, 동일한 암호화 서명, 또는 동일한 파일 경로를 갖는 데이터 객체에 관한 동일한 데이터 객체에 대한 것으로 고려될 수 있다. 블록 311에서, 평가는 모바일 커뮤니케이션 장치(101)에 전달되고, 모바일 커뮤니케이션 장치(101)는 서버(151)로부터 이러한 평가를 수신하고(블록 313), 그리고는 상기 평가를 처리하거나 또는 적절한 작용을 취한다(블록 315).
당업자는 서버(151)가 평가가 변경되는 데이터 객체를 개선하기 위하여 주의 또는 명령을 선제적 작용으로 전달할 수 있고, 그에 의해 모바일 커뮤니케이션 장치(101)에 의해 작용을 요청할 수 있다는 점에서, 모바일 커뮤니케이션 장치(101)와 서버(151) 사이의 상호작용이 동적이라는 것을 이해할 것이다. 도 4는 그러한 일 실시예를 설명한다. 도 4의 블록 401에서, 모바일 커뮤니케이션 장치(101)는 구체적인 데이터 객체에서 변경을 감지한다. 블록 403에서, 모바일 커뮤니케이션 장치(101)는 서버(151)에 장치에 대한 식별 정보 및 변경된 데이터 객체에 대한 정보를 송신한다. 서버(151)는 모바일 커뮤니케이션 장치(101)에 대한 식별 정보 및 변경된 데이터 객체에 대한 정보를 수신한다(블록 405). 블록 407에서, 서버(151)는 서버 또는 데이터 저장소(111) 상에서 변경된 데이터 정보를 저장한다. 블록 409에서, 서버(151)는 변경된 데이터 객체를 분석하고 평가할 수 있고, 그리고 모바일 커뮤니케이션 장치(101)에 평가를 보고한다(블록 411). 앞서 설명된 바와 같이, 평가가 데이터 객체에 대해 이미 수행되어졌다면, 상기 평가를 재수행하는 대신에 앞서 수행된 평가는 회수되어 사용될 수 있다. 서버(151)가 평가를 보고한다면, 모바일 커뮤니케이션 장치(101)는 블록 413에서 평가 또는 다른 경고를 수신하고, 그리고 상기 평가를 처리한다(블록 415).
일 실시예에서, 데이터 객체에 대한 평가는 변경할 수 있다. 예를 들어, 앞서 안전 또는 미상인 것으로 평가될 수 있었던 데이터 객체는 차후에, 앞선 미상인몇몇 취약성을 야기하는, 또는 네트워크 남용 또는 배터리 방전과 같은 바람직하지 않은 행동을 야기하는, 악성인 것으로 식별될 수 있다. 블록 417에서 서버(151) 앞서 분석된 데이터 객체에 대한 평가에서 변경을 감지하면, 블록 419에서 서버(151)는 모바일 커뮤니케이션 장치(101)에 주의, 치료 명령 등을 전달할 수 있다. 모바일 커뮤니케이션 장치(101)는 서버(151)로부터 주의를 수신하면(블록 421), 추천된 작용 또는 치료 명령을 수행한다(블록 425). 블록 425에서 모바일 커뮤니케이션 장치(101)는 요구되는 작용를 수행했다는 확인을 전달하고, 이를 서버(151)가 수신한다(블록 427). 일 실시예에서, 데이터 객체가 모바일 커뮤니케이션 장치에 존재한다고 결정되면, 주의는 오직 모바일 커뮤니케이션 장치(151)에만 송신된다. 일 실시예에서, 상기 서버(151)가 서버(151) 또는 데이터 저장소(111) 상에 정보를 저장하여, 서버(151)가 모바일 커뮤니케이션 장치(101)가 현재 상기 데이터 객체를 갖고 있는지 여부 또는 앞서 상기 데이터 객체에 대한 평가를 요청하였는지 여부를 결정하도록 허용한다.
당업자는 도 4가 모바일 커뮤니케이션 장치에 평가 변경을 보고할 수 있는 방법의 하나의 실시예 만을 제공하고, 몇몇 단계는 본 발명으로부터 벗어남이 없이 생략될 수 있다는 것을 이해할 것이다. 예를 들어, 모바일 커뮤니케이션 장치는 서버(151)에 확인을 송신함이 없이 치료 명령 또는 다른 요구 작용을 수행할 수 있다.
일 실시예에서, 서버(151)는 모바일 커뮤니케이션 장치(101)로부터 특정한 데이터 객체에 대한 추가적인 정보를 요청할 수 있다. 예를 들어, 모바일 커뮤니케이션 장치(101)는 서버(151)에 변경된 데이터 객체에 대한 정보를 송신할 수 있다; 그러나, 송신된 상기 정보는 서버(151)가 결정적인 분석을 수행하기에는 불충분할 수 있다. 도 5는 이러한 실시예를 설명한다. 도 5의 블록 501에서, 모바일 커뮤니케이션 장치(101)는 데이터 객체가 변경한 것을 감지하고, 그리고 변경된 데이터 객체에 대한 정보를 갖는 모바일 커뮤니케이션 장치(101)에 대한 식별 정보를 서버(151)에 전달한다(블록 503). 서버(151)는 모바일 커뮤니케이션 장치(101)에 대한 식별 정보 및 변경된 데이터 객체에 대한 정보를 수신하고(블록 505), 그리고 서버 또는 데이터 저장소(111) 상에 변경된 데이터 객체에 대한 정보를 저장한다(블록 507). 블록 509에서, 서버(151)는 변경된 데이터 객체에 대한 추가적인 정보를 요구하는지 여부를 결정한다. 예를 들어, 서버(151)는 변경된 데이터 객체가 안전 또는 악성인지 여부를 평가하도록 시도할 수 있지만, 결정적인 평가를 제공할 수는 없다(즉, 상기 평가는 결과적으로 "미상(unknown)"일 것이다). 데이터가 충분한지 않다면 서버(151)가 평가를 시작하기전, 또는 전체적으로 또는 부분적으로 데이터의 부족으로 인하여 평가가 비결정적으로 회귀한 후 중 어느 하나에서 더많은 정보가 필요한지 여부에 대한 결정이 수행될 수 있다. 추가적인 정보가 요구되는 경우에는, 서버(151)는 모바일 커뮤니케이션 장치(101)로부터 추가적인 정보를 요청할 수 있다(블록 511).
도 5의 블록 513에서, 모바일 커뮤니케이션 장치(101)는 추가 정보에 대한 요청을 수신하고, 요청된 정보를 수집하고(블록 515), 그리고는 추가 정보를 서버(151)에 전달한다(블록 517). 일 실시예에서, 추가 정보는 데이터 객체에 대한 컨텐츠와 같은, 데이터 객체에 대한 거동 데이터 및 데이터 객체에 대한 어플리케이션 데이터를 포함한다. 블록 519에서, 서버(151)는 모바일 커뮤니케이션 장치(101)로부터 추가 정보를 수신하고, 상기 추가 정보를 저장한다(블록 521). 그리고는 서버(151)는 평가를 제공하기 위해 추가 정보를 갖는 변경된 데이터 객체 정보를 분석할 수 있고(블록 523), 이는 모바일 커뮤니케이션 장치(101)로 송신될 수 있다(블록 525). 블록 527에서, 모바일 커뮤니케이션 장치(101)는 서버(151)로부터 변경된 데이터 객체의 평가를 수신하고 그리고는 상기 평가를 처리한다(블록 529).
일 실시예에서, 모바일 커뮤니케이션 장치(101)는 추가 정보를 서버(151)에 전달하는 것을 선택할 수 있다. 예를 들어, 서버(151)는 데이터 객체를 분석할 수 있지만, 결정적인 평가를 제공할 수는 없다. 모바일 커뮤니케이션 장치(101)로부터 추가 정보를 요청하기보다는, 장치는 서버(151)에 데이터 객체에 대한 추가 정보를 제공함에 의해서 추가 평가를 요청할 수 있다. 도 6은 이러한 실시예를 설명한다.
도 6의 블록 601에서, 모바일 커뮤니케이션 장치(101)는 데이터 객체에서 변경을 감지하고, 그리고는 블록 603에서, 모바일 커뮤니케이션 장치(101)는 식별 정보 및 변경된 데이터 객체에 대한 정보를 갖는 모바일 커뮤니케이션 장치(101)에 대한 식별 정보를 서버(151)에 송신한다. 블록 605에서, 서버(151)는 모바일 커뮤니케이션 장치(101)에 대한 식별 정보 및 변경된 데이터 객체에 대한 정보를 수신한다. 이러한 정보는 서버 또는 데이터 저장장치(111) 상에 서버(151)에 의해 저장되고(블록 607), 그리고는 서버(151)에 의해 분석되어 결과적으로 평가로 이어진다(블록 609). 블록 611에서, 서버(151)는 모바일 커뮤니케이션 장치(101)에 평가 또는 적절한 주의를 전달한다. 모바일 커뮤니케이션 장치(101)는 서버(151)로부터 평가를 수신한다(도 6의 블록 613). 블록 615에서, 모바일 커뮤니케이션 장치(101)는 데이터 객체에 대한 추가 정보를 송신하는지 여부를 결정한다. 예를 들어, 서버(151)는 가용하게 갖는 데이터가 주어지는 데이터 객체에 대한 평가를 생산할 수 없고, 그리하여 평가를 생산할 수 있게 하도록 더 많은 정보를 필요로 한다. 블록 617에서, 모바일 커뮤니케이션 장치(101)가 데이터 객체에 대한 추가 정보를 송신해야 하는 것으로 결정한다면, 정보는 수집된다. 블록 619에서, 모바일 커뮤니케이션 장치(101)는 추가 정보를 서버(151)에 전달하고, 서버(151)는 이러한 정보를 수신하고(블록 621), 상기 수신된 추가 정보를 저장한다(블록 623). 모바일 커뮤니케이션 장치(101)가 추가 정보를 갖는 식별 정보를 전달할 것이므로, 상기 추가 정보가 서버(151)에 의해 앞서 수신된 정보에 속할 것을 서버(151)가 인식할 것이라는 점을 이해할 것이다(블록 605).
도 6의 블록 625에서, 서버(151)는 모바일 커뮤니케이션 장치(101)로부터 수신된 추가 정보를 분석한다. 일 실시예에서, 추가 정보는 앞서 수신된 정보로 분석될 수 있다(블록 605). 블록 627에서, 서버(151)는 모바일 커뮤니케이션 장치(101)에 평가를 전달하고, 이는 평가를 처리한다(블록 629). 모바일 커뮤니케이션 장치(101)가 여전히 추가 정보를 송신할 필요가 있다면, 필요한 만큼 상기 프로세스를 반복할 것이다.
앞서 언급한 바대로, 서버(151)는 다수의 모바일 커뮤니케이션 장치에 접근할 수 있고, 상기 모바일 커뮤니케이션 장치 중 일부는 어플리케이션 프로그램 또는 데이터 객체를 구동하거나 또는 저장할 수 있다. 단일의 모바일 커뮤니케이션 장치로부터 데이터 객체 정보를 요청하는 것은 네트워크 트래픽을 야기할 수 있고, 단일 모바일 커뮤니케이션 장치 뿐만 아니라 네트워크 상의 다른 장치에 영향을 끼친다. 일 실시예에서, 하나의 단일 장치에 의존하기 보다는, 서버(151)가 하나의 모바일 커뮤니케이션 장치 이상에 저장되는 데이터 객체에 대한 정보를 요청하면, 서버(151)는 모바일 커뮤니케이션 장치의 각각으로부터 요구된 정보의 영역을 수집할 수 있다. 도 7은 제 1 및 제 2 모바일 커뮤니케이션 장치를 사용한 일 실시예를 설명하고, 그에 의해 2개 이상의 모바일 커뮤니케이션 장치로부터 데이터 수집을 최적화한다.
도 7의 블록 701에서, 제 1 모바일 커뮤니케이션 장치는 데이터 객체에서 변경을 감지한다. 상기 데이터 객체는 또한 제 2 모바일 커뮤니케이션 장치 상에서 확인되지만, 동일한 변경을 실현할 수 있거나 또는 실현할 수 없다. 제 1 모바일 커뮤니케이션 장치는 그 식별 정보 및 변경된 데이터 객체에 대한 정보를 서버(151)에 전달한다(블록 703). 블록 705에서, 서버(151)는 변경된 데이터 객체에 대한 정보를 갖는 제 1 모바일 커뮤니케이션 장치에 대한 식별 정보를 수신한다. 이러한 정보는 서버(151)에 의해 저장된다(블록 709). 블록 711에서, 서버(151)는 데이터 객체에 대한 추가 정보를 요구하는지 결정한다. 블록 713에서, 서버(151)가 데이터 객체에 대한 추가 정보 뿐만 아니라 데이터 객체를 인식하고 또한 저장하는 제 2 모바일 커뮤니케이션 장치를 서버(151)가 식별한다.
도 7의 블록 715에서, 서버(151)는 제 2 모바일 커뮤니케이션 장치로부터 데이터 객체에 대한 추가 정보를 요청한다. 이러한 요청은 제 2 모바일 커뮤니케이션 장치에 의해 수신된다(블록 717). 응답으로, 제 2 모바일 커뮤니케이션 장치는 추가 정보를 수집하고(블록 719), 그리고는 추가 정보를 서버(151)에 전달한다(블록 721). 서버(151)는 제 2 모바일 커뮤니케이션 장치로부터 데이터 객체에 대한 추가 정보를 서버(151) 또는 데이터 저장장치(111) 상에 수신하고(블록 723) 저장하며(블록 725), 그리고는 평가를 제공하기 위하여 제 1 모바일 커뮤니케이션 장치로부터 앞서 수신된 정보를 갖는 이러한 추가 정보를 분석한다(블록 727). 이러한 평가가 제 1 모바일 커뮤니케이션 장치에 전달되고(블록 729), 제 1 모바일 커뮤니케이션 장치는 평가를 수신하고(블록 731) 그리고 평가를 처리한다(블록 733). 관련이 있다면, 서버(151)는 또한 평가를 제 2 모바일 커뮤니케이션 장치에 전달할 수 있음을 이해할 것이다.
일 실시예에서, 서버(151)는 다수의 장치로부터 추가적인 정보를 수집할 수 있다. 일 실시예에서, 서버(151)는 서버에 의해 앞서 저장된 장치 정보 및 어플리케이션 데이터를 분석함에 의해서 어느 장치로부터 추가적인 정보를 요청할지 선택한다. 예를 들어, 스팸 목적으로 SMS 를 남용하는지 여부를 결정하기 위해 SMS 메시징의 어플리케이션 사용을 특징화하는 것은 상기 어플리케이션을 설치한 것으로 앞서 보고한 많은 모바일 커뮤니케이션 장치로부터 어플리케이션에 의해 송신된 SMS 메시지의 카운트를 요청할 수 있다. 일 실시예에서, 서버는 장치로부터 데이터 객체에 대한 정보를 수신하기 위해 최초로 대기함이 없이 평가를 생산하도록 데이터 객체를 분석하는 것을 시도한다. 대신에, 서버는 다른 소스로부터 데이터를 수신할 수 있고 데이터 객체에 대한 평가를 생성하기 위해 선제적 작용으로 하나 또는 그보다 많은 장치로부터 정보를 요청할 수 있다.
일 실시예에서, 모바일 커뮤니케이션 장치(101)에 의해 서버(151)에 수집되고 전달되는 데이터 객체에 대한 어플리케이션 데이터는 데이터 객체에 대한 거동 데이터를 포함한다. 분석 동안과 같은 서버(151)에 의한 상기 데이터 사용량은 하기에 더 자세히 설명된다. 거동 데이터는 장치에서 구동하는 경우에 데이터 객체가 행한 것에 대한 정보를 포함한다. 거동 데이터의 실시예들은 데이터 객체에 의해 야기된 네트워크 연결에 대한 정보(예를 들어, 서버 이름, 소스/목적지 주소와 포트, 연결의 지속, 연결 프로토콜, 전달되거나 수신된 정보의 양, 전체 연결수, 연결 주파수, 및 상기 연결에 대한 네트워크 인터페이스 정보, 제조된 DNS 청구), 구동될 때 데이터 객체의 행동(예를 들어, 시스템 요청, API 요청, 사용된 라이브러리, 처리중 통신 요청, 전달된 SMS 메시지의 개수, 송신된 이메일 메시지의 개수, 표시된 사용자 인터페이스에 대한 정보, 접근된 URL들), 데이터 객체에 의해 야기된 오버헤드(예를 들어, 사용된 배터리, 사용된 CPU 시간, 전달된 네트워크 데이터, 사용된 저장장치, 사용된 메모리)를 포함한다. 다른 거동 데이터는 특정한 행동이 발생할 때의 문맥을 포함한다(예를 들어, 데이터 객체가 SMS 메시지를 송신할 때 폰의 화면이 꺼지는 여부, 원격 서버에 연결되어질 때 사용자가 데이터 객체를 사용하는지 여부, 등).
많은 거동 데이터는 데이터 객체들이 구동하는 매번 상기 데이터 객체들에 의해 발생되기 때문에, 모바일 커뮤니케이션 장치가 가능한 거동 데이터 모두를 수집하거나 전달하지 않은 것이 중요하다; 그렇지 않다면, 거동 데이터의 수집 및 전달은 장치(101), 서버(151), 및 네트워크(121) 상에서 리소스을 과다 이용할 수 있다. 일 실시예에서, 모바일 커뮤니케이션 장치(101)는 그것이 수집하고 전달하는 데이터 객체에 대한 어떤 타입의 거동 데이터 및 데이터 객체가 변경된 이후로 얼마나 자주 시간 주기에 기초한 거동 데이터를 수집하고 전달하는지를 제한한다. 예를 들어, 데이터 객체가 모바일 커뮤니케이션 장치 상에 최초로 설치될 때, 장치는 매일 가용한 거동 데이터의 전체 양을 수집하고 전달할 수 있다. 데이터 객체를 설치하고 일주일 후에, 상기 장치는 매주 거동 데이터의 제한된 일부분만을 송신할 수 있다. 설치 한 달 후에, 상기 장치는 월별 간격으로 단지 최소한 양의 거동 데이터를 송신할 수 있다. 일 실시예에서, 데이터 객체가 업데이트된다면(예를 들어, 다른 버전으로 어플리케이션을 업데이트하는 것), 장치는 전체 범위의 거동 데이터를 전달하고 그리고 수집 및 전달된 데이터의 범위 및 주파수를 감소시킬 수 있다. 일 실시예에서, 서버(151)는 장치가 특정 주파수로 특정 형식의 거동 데이터를 송신하는 것을 요청하도록 모바일 커뮤니케이션 장치(101)에 구성을 송신한다. 장치는 구성을 저장함으로써 데이터 객체에 대한 거동 데이터를 수집하고 및/또는 전달할지 여부를 결정할 수 있게 된다. 일 실시예에서, 구성 정보는 특정한 데이터 객체에 특징적이다. 일 실시예에서, 구성 정보는 장치에 의해 마주되어지는 모든 데이터 객체에 대한 것이다. 일 실시예에서, 서버(151)는 특정한 데이터 객체에 대한 거동 데이터를 요청함으로써 서버는 불필요하게 수집 및 전달되는 거동 데이터를 최소화할 수 있다.
일 실시예에서, 서버(151)는 장치(101)로부터 서버(151)로 거동 데이터의 수집 및 전달에 영향을 끼칠 수 있다. 예를 들어, 서버(151)는 모바일 커뮤니케이션 장치(101)에 명령을 전달할 수 있고, 장치가 현재 데이터 객체를 갖는 것을 지칭하는 정보를 서버가 갖고 있는지, 및 상기 서버가 상기 데이터 객체에 더 잘 접근하기 위해서 더 많은 거동 데이터를 필요로 하는지 데이터 객체에 대한 거동 데이터를 요청한다. 일 실시예에서, 서버(151)는 거동 데이터를 이미 보고해 온 장치의 개수에 기초한 객체에 대한 더 많은 거동 데이터를 필요로 함을 결정한다. 예를 들어, 서버는 확실한 평가를 갖기 위해서 각 데이터 객체에 대한 거동 데이터를 보고하는 적어도 백 개(100개)의 장치를 요청할 수 있다. 일 실시예에서, 상이한 장치들에 의해 보고되는 거동 데이터의 차이는 평가가 확실해지기 위해서 얼마나 많은 거동 데이터가 요구되는지 결정하기 위해 사용된다. 예를 들어, 30개의 장치 모두가 작은 차이 내에서 데이터 객체에 의한 배터리 사용량을 보고했다면, 상기 서버는 상기 객체에 대한 거동 데이터를 더이상 요청하지 않을 수 있다; 상기 서버는 200개의 장치로부터 거동 데이터를 요청할 수 있다.
일 실시예에서, 모바일 커뮤니케이션 장치는 상기 데이터가 정상 한도를 벗어난다면 단지 거동 데이터를 전달할 수 있다. 일 실시예에서, 상기 한도가 모든 데이터 객체에 범용적이다. 예를 들어, 네트워크 용법 상의 한도는 세팅될 수 있고, 그렇게 해서 데이터 객체가 구동하는 시간의 50% 초과 동안 적어도 하나의 개방된 연결을 단지 유지한다면 또는 데이터 객체가 24시간 주기 내에 일 메가바이트 이상을 전달한다면, 모바일 커뮤니케이션 장치는 데이터 객체의 네트워크 연결에 대한 거동 데이터를 전달할 수 있다. 일 실시예에서, 서버(151)는 업데이트된 한도 정보를 상기 장치에 전달함에 의해 모바일 커뮤니케이션 장치(101) 상의 한도를 업데이트할 수 있다. 일 실시예에서, 한도는 하나 또는 그보다 많은 데이터 객체에 특징적일 수 있다. 예를 들어, 장치는 한 세트의 디폴트 한도를 가질 수 있고 이에 의해 거동 데이터를 송신할 수 있지만, 상기 서버는 특정한 데이터 객체에 대한 한도를 전달하고, 해시, 암호화 서명, 패키지명, 또는 파일시스템 위치와 같은 식별 정보를 통해 상기 데이터 객체를 식별한다. 업데이트된 한도는 상기 디폴트된 세트의 한도보다 더 많거나 작은 거동 데이터를 송신하도록 장치에 지칭할 수 있다. 예를 들어, 모바일 커뮤니케이션 장치는 거동 데이터를 전혀 송신하지 않는 것이 디폴트일 수 있다. 새로운 데이터 객체가 상기 장치에 설치될때, 장치는 설치 이벤트 및 데이터 객체와 연관된 메타 데이터를 서버에 보고한다. 서버가 다른 장치들로부터의 거동 데이터를 통해 데이터 객체를 이미 특징화했다면, 서버는 다른 장치들 상의 데이터 객체의 전형적인 행동을 구체화하는 장치에 한도를 세팅할 수 있다(예를 들어, 하루당 100 킬로바이트보다 작은 데이터를 사용, SMS 메신저를 전혀 송신하지 않음, E-메일을 전혀 송신하지 않음). 그럼으로써 데이터 객체가 이러한 한도로부터 이탈한 경우에는, 모바일 커뮤니케이션 장치가 이탈된 거동 데이터를 서버에 송신할 것이다. 그러한 이탈은 공격당하고(exploited) 평소답지 않은(uncharacteristic) 행동을 나타내는 합법적인 어플리케이션의 경우에 또는 단지 특정한 시간 후에 악성으로 되기 시작하는 "타임봄(time-bomb)" 어플리케이션의 경우에 유용할 수 있다.
일 실시예에서, 모바일 커뮤니케이션 장치(101)로부터 서버(151)에 전달되는 데이터는 사용자 사생활을 보호하기 위해, 장치, 네트워크, 또는 서버 리소스의 과다 사용을 방지하거나; 또는 다른 이유들로 구성 가능하다. 몇몇 예시적인 구성은 초기 전달이 실패하지 않는 한, 장치(101)로부터 서버(151)로 어떤 어플리케이션 데이터가 송신되는지, 얼마나 자주 어플리케이션 데이터가 송신되는지, 및 어떻게 어플리케이션 데이터가 송신되는지 재전달되는지를 선택하는 것을 포함한다. 예시적인 구성은 (예를 들어, 추가 메타 데이터 또는 거동 데이터가 아닌)식별 정보 만을 전달하는 것, 어떤 어플리케이션도 전달하지 않는 것, 데이터 객체 컨텐츠를 전혀 전달하지 않는 것, 데이터 객체의 소스에 기초하여 데이터 객체에 대한 어플리케이션 데이터 만을 전달하는 것, 단지 특정한 형태의 거동 데이터 만을 전달하는 것, 하루당 단지 특정한 양의 어플리케이션 데이터 만을 전달하는 것, 하루당 하나의 데이터 객체의 컨텐츠 만을 전달하는 것, 하루의 데이터 객체 당 한번 최대의 거동 데이터 만을 전달하는 것 등을 더 포함할 수 있다. 당업자는 추가적 구성은 본 발명의 범위로부터 벗어남이 없이 가능하다는 것을 이해할 것이다. 일 실시예에서, 구성은 모바일 장치(101), 및/또는 특정한 전달을 행하는 장치 만에 의한 서버(151) 및/또는 장치로부터 특정한 요청을 행하는 서버에 의해 강화될 수 있다. 일 실시예에서, 하나 또는 그보다 많은 당사자에 의해 제어된다. 예를 들어, 구성은 모바일 커뮤니케이션 장치(101) 상에 존재하는 서버(151) 또는 소프트웨어에 의해 자동적으로 세팅되거나, 서버(151)를 경유한 관리자에 의해 제어되거나, 및/또는 모바일 장치(101)를 경유한 사용자에 의해 제어될 수 있다. 일 실시예에서, 구성의 일부는 상이한 제3자에 의해 제어된다. 예를 들어, 사용자는 데이터 객체가 서버(151)에 보고되는지 여부를 제어할 수 있지만 한편 서버(151) 상의 관리자는 보안 시스템의 배터리 사용을 최적화하기 위해 모든 장치에 대한 주파수를 보고하는 거동 데이터를 제어할 수 있다.
일 실시예에서, 모바일 커뮤니케이션 장치(101) 상의 소프트웨어는 데이터 객체에 대한 어플리케이션 데이터를 전달하게 하는 요청을 수신할 때 사용자 인터페이스 다이알로그(dialog)를 표시한다. 전술한 바와 같이, 데이터 객체의 컨텐츠에 대한 요청은 전체 컨텐츠에 대한 것이거나 컨텐츠의 일 부분에 대한 것일 수 있고, 요청은 일 부분이 요청되는 경우에 컨텐츠의 어느 부분인지를 식별하는 것이다. 표시되는 사용자 인터페이스 다이알로그는 어플리케이션 데이터가 전달되는 데이터 객체를 식별하고, 그리고 장치의 사용자에게 전달을 허락하거나 거절할 기회를 부여한다. 일 실시예에서, 다이알로그는 사용자에게 미래의 데이터 객체에 대한 그 또는 그녀의 결정을 장치에 기억하게 하도록 허용한다. 일 실시예에서, 다이알로그는 사용자에게 송신되는 어플리케이션 데이터에 대한 더 상세한 정보를 관찰하게 허용하고, 그리고 사용자에게 사생활 정책, 사생활 설명, 또는 데이터가 어떻게 전달되고, 저장되고, 사용되는지를 설명하는 다른 컨텐츠에의 연결과 같은 데이터를 송신하는 사생활 암시(implication)를 이해하게 하는 방안을 제공한다. 일 실시예에서, 모바일 커뮤니케이션 장치는 서버(151)가 평가를 생산하기 위해 더 많은 정보를 요한다는 지칭을 수신할 때 데이터 객체를 전달하려고 시도한다. 이러한 시점에서, 장치가 데이터 객체를 전달하려고 시도할 때, 장치는 장치의 사용자에게 데이터 객체의 컨텐츠를 전달할지 여부를 선택하도록 촉진하는 사용자 인터페이스 대화를 표시할 수 있다. 일 실시예에서, 데이터 객체의 컨텐츠와 같은, 특정한 형태의 어플리케이션 데이터의 전달을 시도한 몇몇은, 결과적으로 확인을 위한 사용자 인터페이스 다이알로그인 반면, 메타 데이터 또는 거동 데이터와 같은, 다른 형태의 어플리케이션 데이터는 사용자 확인을 요청함이 없이 전달된다.
특정한 어플리케이션은 다수의 데이터 객체를 사용할 수 있기 때문에, 어플리케이션이 전체적으로 분석될 수 있게 하기 위해서 모바일 커뮤니케이션 장치(101) 및/또는 서버(151)에게 다수의 데이터 객체를 함께 그룹화하게 하는 것이 바람직할 수 있다. 일 실시예에서, 모바일 커뮤니케이션 장치(101) 및/또는 서버(151)는 다수의 데이터 객체 사이에서 어플리케이션 데이터를 비교함에 의해서 그룹핑을 수행할 수 있다. 예를 들어, 데이터 객체를 그룹화하기 위해서 사용될 수 있는 어플리케이션 데이터는, 어떻게 데이터 객체가 설치되는지(예를 들어, 동일한 설치자로부터의 데이터 객체가 그룹핑될 수 있다는 것), 데이터 객체가 구동시 또는 동적으로 함께 연관되는지, 다수의 데이터 객체가 동일한 파일시스템 디렉토리 내에 있는지, 및 데이터 객체가 암호화 서명을 공유하는지를 포함한다. 예를 들어, 어플리케이션 설치자는 실행 가능 파일 및 다수의 라이브러리들을 모바일 커뮤니케이션 장치 상의 파일 시스템으로 추출할 수 있다. 모바일 커뮤니케이션 장치(101)는 그룹화된 데이터 객체를 고려하기 위해 공통된 설치자를 사용할 수 있고 그리고 거동 데이터를 수집에서 사용을 위해 그룹핑 정보를 저장할 수 있다(이하에 설명됨). 서버(151)가 그룹을 인식하기 위해서, 각 데이터 객체의 어플리케이션 데이터는 공통된 설치자에 대한 식별 정보를 포함한다. 서버(151)는 분석 중에 그룹핑 정보를 효율적으로 접근하기 위해 서버(151) 또는 데이터 저장장치(111) 상에 그룹화된 관계를 명백하게 저장할 수 있다.
단일 처리의 문맥에서와 같이 다수의 객체가 함께 실행할 때 거동 데이터가 단일 객체 데이터로 항상 기여될 수는 없기 때문에, 장치 운용 시스템이 분할의 거동 데이터를 지원하지 않거나 또는 다른 메커니즘을 통하지 않는 경우, 모바일 커뮤니케이션 장치(101)가 다수의 데이터 객체를 함께 그룹화하고 상기 그룹에 대한 거동 데이터를 함께 보고하게 하는 것이 바람직할 수 있다. 일 실시예에서, 모바일 커뮤니케이션 장치(101)는 그룹화된 데이터 객체가 연관되는 것을 지칭하는 정보를 전달하고 그리고 상기 그룹화된 데이터 객체에 대한 어플리케이션 데이터를 서버(151)에 함께 전달한다. 예를 들어, 모바일 통신 상의 처리가 상이한 공급자로부터의 다수의 성분을 로딩하고 그리고 네트워크 데이터가 단지 처리 수준 상에 수집될 수 있다면, 및/또는 처리가 알려진 악성의 서버에 연결하는 것으로 감지된다면, 처리에 로딩되는 모든 성분이 공격적인 성분을 결정하기 위해 서버에 의해 식별 가능하게 되는 것이 바람직할 수 있다. 모바일 커뮤니케이션 장치(101)가 처리를 위해 거동 데이터(상기 처리가 연결되는 IP 어드레스와 같은)를 수집할 때, 장치는 처리에 연관되는 모든 데이터 객체에 대한 식별 정보를 서버에 보고한다. 서버가 한 그룹의 데이터 객체에 대한 거동 데이터를 수신할 때 서버는 다수의 장치로부터 거동 데이터를 분석하고 특정한 데이터 객체를 포함하는 그룹만이 악성 서버에 연결할 것이라는 것을 결정할 수 있다. 따라서, 결과적으로 악성 서버에 연결되는 데이터 객체 만이 악성으로 고려될 것이다. 일 실시예에서, 모바일 커뮤니케이션 장치가 특정한 데이터 객체의 행동에 대한 분할(granular) 정보를 제공하지 않는다면, 장치에 대한 거동 데이터는 전체적으로 장치에 설치되는 모든 데이터 객체의 그룹을 표시하는 것으로 상기 서버에 전달될 것이다. 예를 들어, 운용 시스템이 처리당 배터리 사용량 정보를 제공하지 않는다면, 운용 시스템을 구동하는 장치는 각 장치에 설치되는 어플리케이션 리스트 및 각 장치에 대한 전체적인 배터리 수명을 서버(151)에 전달할 수 있다. 서버는 그리고는 어느 어플리케이션이 더 양호하거나 더 불량한 배터리 수명에 연관되는지를 결정하고 장치에 설치되는 경우에 각 어플리케이션의 배터리 수명에의 공헌도를 측정하기 위해서 이러한 데이터에 관한 분석을 수행할 수 있다. 일 실시예에서, 한 그룹의 다수의 데이터 객체가 상이한 거동 데이터 수집 구성을 갖는 경우에, 모바일 커뮤니케이션 장치는 그 구성에 합류할 것이다. 예를 들어, 모바일 커뮤니케이션 장치(101)가 매일 하나의 데이터 객체에 대한 많은 양의 거동 데이터를 보고하도록 구성되는 한편, 또다른 데이터 객체에 대한 이례적인 거동 데이터 만을 보고하도록 구성되고, 데이터 객체는 그룹화된다면, 장치는 두개의 구성을 결합하고 그룹에 대한 많은 양의 거동 데이터를 보고할 수 있다. 대안적으로, 제 2 데이터 객체가 사생활 이유로 거동 데이터를 전혀 보고하지 못하도록 구성된다면, 어떤 거동 데이터도 사생활 제약으로 인해 그룹에 대해 보고될 수 없다.
당업자는 메타 데이터, 거동 데이터, 구성 정보, 거동 데이터 한도, 그룹핑 데이터, 추가 데이터에 대한 요청, 주의, 및 다른 형태의 데이터와 같이, 서버(151) 또는 모바일 커뮤니케이션 장치(101)에 의해 전달된 데이터가 이진 포맷 또는 비-이진 포맷을 사용하여 포맷될 수 있다는 것을 이해할 것이다. 실시예들은 XML, JSON, 또는 URI의 부분으로서 데이터를 포맷하는 것을 포함한다. 상기 데이터는 TCP, UDP, DNS, 및 HTTP를 포함한, 다양한 프로토콜을 사용하여 전달될 수 있다. 다른 포맷 및/또는 프로토콜은 본 명세서로부터 벗어남이 없이 사용될 수 있다.
상술한 바는 하나 또는 그보다 많은 모바일 커뮤니케이션 장치로부터 데이터가 수집되고 모아지는 방법의 다양한 비-제한적인 실시예들이다. 데이터 수집을 최적화하기 위한 기법은 또한 상술한 바에 개시된다. 설명된 바와 같이, 모바일 커뮤니케이션 장치(101)는 분석을 위해 상술한 바에 설명된 데이터 중 전부 또는 일부를 서버(151)에 전달할 것이고 그에 따라 서버(151)는 분석된 데이터의 평가를 제공할 수 있다. 아래의 섹션은 분석 기법의 비-제한적인 실시예들을 설명한다. 당업자는 아래의 개시내용과 실시예들이 본 명세서에서 설명되는 방법들을 사용하여 수집된 데이터를 사용하는 동안에, 다른 형태의 데이터들이 전달될 수 있고 그리고 본 개시내용이 본 명세서에 기술된 데이터에 제한되지 않는다는 것을 이해할 것이다.
B. 데이터 수집 시스템
당업자는 서버(151)가 데이터 객체를 분석하고 평가를 생산하는 사용을 위해 모바일 커뮤니케이션 장치보다 소스로부터 데이터를 수신할 수 있다는 것을 이해할 것이다. 도 10은 서버(151)가 다수의 소스로부터 데이터를 수신하고 다수의 사용자에 대한 평가 정보를 전달할 수 있는 실시예를 기술한다. 다수의 서버가 본 명세서에 개시된 기능성을 제공하도록 조합되어 운용할 수 있음을 강조하기 위해 하나 또는 그보다 많은 서버(151)는 "클라우드"로 기술된다. 하나 또는 그보다 많은 모바일 커뮤니케이션 장치(101)는 다수의 장치가 서버(151)에 주고 받는 정보를 전달하고 수신할 수 있음을 강조하기 위해 그룹으로 기술된다. 전술한 바와 같이, 하나 또는 그보다 많은 모바일 커뮤니케이션 장치(101)는 데이터 객체에 대한 어플리케이션 데이터를 서버(151)에 전달할 수 있고 그리고 장치(101)는 서버(151)로부터 평가 데이터, 더 많은 정보에 대한 요청, 주의 등을 수신할 수 있다.
모바일 커뮤니케이션 장치로부터 데이터를 수집하기 위해서, 서버(151)는 다양한 데이터 수집 시스템으로부터 데이터 객체에 속하는 정보를 수신할 수 있다. 그러한 시스템은 서버(151)로부터 분리될 수 있거나 서버(151)의 일부일 수 있다. 일 실시예에서, 데이터 수집 시스템은 하나 또는 그보다 많은 데이터 객체에 대한 정보를 가지고 데이터베이스 또는 서버(151) 상의 다른 저장장치 또는 데이터 저장장치(111)를 직접적으로 업데이트할 수 있다. 일 실시예에서, 데이터 수집 시스템은 서버(151)에 정보를 제공하기 위해서 서버(151)와 통신한다. 서버(151)에 데이터 공급장치로서 사용될 수 있는 많은 형태의 시스템이 있다. 몇몇 실시예들은 웹 크롤러(web crawlers)(1003), 어플리케이션 시장 데이터 수집 시스템(application marketplace data gathering systems)(1005), 허니팟(honeypots), 및 모바일 장치 어플리케이션에 관한 정보를 서버(151)에 공급할 수 있는 다른 시스템을 포함한다.
실시예에서, 웹 크롤러(1003)는 모바일 커뮤니케이션 장치 상에서 구동할 수 있는 데이터 객체를 다운로드하며 데이터 객체에 대한 정보를 회수하고, 상기 두가지 모두를 서버(151)에 공급한다. 예를 들어, 웹 크롤러(1003)는 모바일 어플리케이션을 관리하는 웹 사이트를 찾기 위해서 검색 엔진을 사용할 수 있다. 일단 크롤러(1003)가 모바일 다운로드를 관리하는 사이트를 식별한 경우, 상기 크롤러는 그러한 사이트에서 가용한 웹 페이지를 회수하고, 회수할 추가 페이지를 결정하기 위해서 각 페이지의 컨텐츠를 검사할 수 있다. 예를 들어, 모바일 다운로드 사이트 상의 페이지는 데이터 객체를 다운로드하는 링크 뿐만 아니라 다른 페이지에의 링크를 포함할 수 있다. 인터넷 상에는 모바일 커뮤니케이션 장치에 영향을 끼치지 않는 많은 가용한 컨텐츠가 있기 때문에(예를 들어, PC 소프트웨어), 데이터 수집 시스템 모바일 장치에 관련한 정보 만을 서버(151)에 전달하는 것이 바람직할 수 있다. 일 실시예에서, 크롤러(1003)는 다운로드에 가용한 데이터 객체 또는 이미 다운로드되어진 데이터 객체가 모바일 커뮤니케이션 장치 상에서 구동할 수 있는지를 식별할 수 있다. 예를 들어, 크롤러(1003)는 URL이 모바일 어플리케이션 패키지(예를 들어, SIS, APK, CAB, IPA)에 일치한다는 것을 지칭하는 특정 스트링에 대한 다운로드 URL을 검사할 수 있다. 다른 실시예에서, 데이터 객체가 모바일 커뮤니케이션 장치에 영향을 끼치는지 여부 등, 특정 모바일 플랫폼에 영향을 끼치는지 여부를 결정하도록 다운로드되어진 후에 크롤러(1003)는 데이터 객체를 검사할 수 있다. 이러한 경우에, 크롤러(1003)는 그 명칭과 같은 특징을 위해 다운로드되어진 데이터 객체, 어느 모바일 플랫폼과 호환 가능한 실행 코드를 포함하는지 여부, 또는 특정한 모바일 장치 플랫폼에 대해 전형적인 데이터를 포함하는지 여부를 검사할 수 있다. 실시예에서, 웹 크롤러(1003)는 데이터 아이템에 대한 시장 메타 데이터를 수집하고 서버(151)에 시장 메타 데이터를 전달한다. 몇몇 예시적인 시장 메타 데이터는 어느 웹 사이트에서 데이터 객체가 다운로드를 위해 가용한지, 유저 등급과 데이터 객체에 대한 코멘트, 구입을 위해 가용한 경우 데이터 객체의 가격, 데이터 객체의 다운로드된 횟수, 데이터 객체의 작성자의 정보, 및 웹 사이트에 가용한 데이터 객체에 속하는 다른 정보를 포함한다. 아래에 설명될 것인 바와 같이, 주어진 데이터 객체가 가용한 장소는 데이터 객체가 얼마나 신뢰적인지 결정하는데 사용될 수 있다. 예를 들어, 저명한 회사의 웹 사이트로부터 가용한 데이터 객체는 포럼 사용자 중의 하나에 의해 모바일 장치 포럼 상에 업로드된 데이터 객체보다 더 신뢰적으로 고려될 수 있다.
많은 모바일 어플리케이션이 단지 모바일 어플리케이션 시장을 경유하여 가용하기 때문에, 서버(151)가 어플리케이션 시장에서 가용한 데이터 객체에 대한 정보를 수신하는 것이 중요할 수 있다. 일 실시예에서, 어플리케이션 시장 데이터 수집 시스템(1005)은 모바일 어플리케이션 시장으로부터 데이터 객체의 컨텐츠 및 데이터 객체에 대한 시장 메타 데이터와 같은, 데이터 객체에 대한 정보를 회수하고 그리고 상기 정보를 서버(151)에 보고한다. 일 실시예에서, 어플리케이션 시장 데이터 수집 시스템(1005)은 서버(151)의 부분이다. 일 실시예에서, 어플리케이션 시장 데이터 수집 시스템은 서버(151)로부터 분리된다. 어플리케이션 시장은 자주 모바일 플랫폼 공급자(예를 들어, 안드로이드 시장, 블랙베리 APP 월드, 애플 APP 스토어, 노키아 Ovi 스토어) 또는 제3자(예를 들어, GerJar, Handango)에 의해 제공되고 독점 API를 사용할 수 있다. 실시예에서, 어플리케이션 시장 데이터 수집 시스템(1005)은 독점 프로토콜을 경유하여 어플리케이션 시장 서버와 통신하도록 구성된다. 어플리케이션 시장 서버로부터 서버(151)에 수신된 데이터를 서버(151)에 의해 가용한 방식으로 전달하기 위해서, 어플리케이션 시장 데이터 수집 시스템(1005)은 데이터 객체에 대한 어플리케이션 데이터를 독점 포맷으로부터 서버(151)가 분석을 위해 사용할 수 있는 포맷으로 변환할 수 있다. 예를 들어, 어플리케이션 시장은 어플리케이션에 대한 사용자의 코멘트 및 등급에 접근하기 위해 API를 제공할 수 있다; 그러나, API에 의해 회신된 데이터는 또다른 어플리케이션 시장의 코멘트 데이터와는 상이할 수 있다. 또다른 실시예에서, 어플리케이션 시장은 선제적 작용으로 어플리케이션 시장 데이터 수집 시스템(1005)에 데이터를 전달할 수 있게 함으로써 상기 데이터 수집 시스템이 반복적으로 질문할 필요가 없게 한다. 서버(151)가 다수의 어플리케이션 시장으로부터의 코멘트 데이터를 분석할 수 있게 하도록, 어플리케이션 시장 데이터 수집 시스템(1005)은 서버(151)로의 전달을 위해 표준 포맷으로 상이하게 포맷된 코멘트 데이터를 변환할 수 있다. 일 실시예에서, 어플리케이션 시장 데이터 수집 시스템(1005)은 사용자 리뷰에서 "배터리 드레인", "고장(crash)", "사생활 세팅", "동작하지 않음", "폰 넘버", "접촉(contacts)" 등과 같은, 특정한 용어들을 검색할 수 있고, 이는 어플리케이션을 "공지된 불량"으로 특징짓는 것으로 사용되거나 또는 본 명세서에서 사용되는 시스템 성분을 사용하여 어플리케이션의 신뢰성을 확립하는데 사용될 수 있다. 대안적인 실시예에서, 어플리케이션 시장 데이터 수집 시스템(1005)은 모든 코멘트 데이터를 수집할 수 있고 그리고 코멘트 데이터의 분석은 서버(151)에 의해 수행될 수 있다. 유사하게, 서버(151) 또는 어플리케이션 시장 데이터 수집 시스템(1005)은 데이터 객체에 대한 긍정적인 리뷰 또는 스코어를 인식할 수 있고, 이에 의해 데이터 객체에 대한 평가 및/또는 신뢰성을 증가시킬 수 있다.
데이터 객체 정보의 자동화된 수집을 위해서, 서버(151)가 인간 정보(1007)를 수락하는 것이 중요할 수 있다. 그러한 정보는 모바일 어플리케이션 공급자에 대한 주관적인 신뢰 스코어, 특정 키워드 또는, 체험과 같이, 모바일 어플리케이션을 의심스러운 것으로 분류할 수 있는 다른 특징들을 포함할 수 있다. 당업자는 모바일 장치에 대한 데이터 객체의 분석에 관한 다른 형식의 정보가 인간에 의해 제공될 수 있다는 것이 개시하는 범주로부터 벗어남이 없이 가능하다는 것을 인식할 수 있을 것이다. 일 실시예에서, 서버(151)는 사용자 인터페이스를 제공하고 이에 의해 누군가는 구체적인 데이터 객체, 한 그룹의 데이터 객체(예를 들어, 특정한 개발자로부터의 데이터 객체, 구체적인 플랫폼 상의 모든 데이터 객체), 또는 전체적인 시스템 분석을 위해서(예를 들어, 업데이트된 분석 체험)에 대한 정보를 서버(151)에 제공할 수 있다. 일 실시예에서, 서버(151)로부터 분리된 서버는 사용자 인터페이스를 제공하고 그에 의해 누군가는 구체적인 데이터 객체, 한 그룹의 데이터 객체, 또는 전체적인으로 분석 시스템에 대한 정보를 제공할 수 있다. 이러한 분리된 서버는 사용자-제공된 정보를 서버(151)에 전달할 수 있고 여기에서 서버(151)는 서버(151) 또는 데이터 저장장치(111)에 그것을 저장한다. 일 실시예에서, 분리된 서버는 사용자-제공된 정보를 가지고 데이터 저장장치(111)를 업데이트할 수 있다.
도 10은 서버(151)가 어떻게 외부 시스템에 데이터 객체에 대한 정보를 제공하는지를 설명한다. 일 실시예에서, 서버(151)의 의해 제공되는 정보는 API를 경유하여 전달되고; 리스트, 데이터 공급장치, 리포트, 또는 방화벽 또는 바이러스 정의과 같은 포맷된 데이터로서 제공되고; 또는 다른 형태로 제공된다. 일 실시예에서, 서버(151)는 어플리케이션 시장(1009)에 데이터 객체에 대한 정보를 제공한다. 예를 들어, 서버(151)는 어플리케이션 시장(1009)에 존재하는 악성 데이터 객체의 리스를 제공할 수 있다. 또다른 실시예에서, 서버(151)는 API를 노출할 수 있고 이에 의해 어플리케이션 시장(1009)은 데이터 객체가 악성 또는 그렇지 않다면 바람직하지 않은 것으로 고려될 수 있는지를 결정하기 위해서 서버(151)에 식별 정보(예를 들어, 데이터 객체 컨텐츠의 해시)를 전달할 수 있다. 일 실시예에서, 서버(151)는 네트워크 보안 인프라스트럭쳐(1011)에 데이터를 제공할 수 있으므로써 네트워크 보안 인프라스트럭쳐(1011)은 네트워크 수준에서 악성 또는 바람직하지 않은 어플리케이션에 대하여 보호할 수 있다. 예를 들어, 네트워크 수준으로 보호함에 의해서, 설치된 보안 소프트웨어를 갖지 않는 모바일 커뮤니케이션 장치는 보호로부터 이익을 얻을 수 있다. 일 실시예에서, 네트워크 보안 인프라스트럭쳐(1011)에 위협 서명을 전달한다. 그러한 위협 서명은 다양한 형태를 가질 수 있고, 예를 들어, 바람직하지 않은 어플리케이션의 해시, 바람직하지 않은 어플리케이션에 대한 이진 신호, 바람직하지 않은 어플리케이션의 패키지명, 악성 서버 또는 공격을 차단하기 위한 방화벽 규정, 및 Snort와 같은 네트워크 보안 시스템에 대한 규정이다. 일 실시예에서, 서버(151)는 데이터 공급소(1013)의 형태로 데이터를 제공한다. 데이터 공급소(1013)는 서버의 데이터 수집 또는 추가적인 분석 중 하나로부터 서버(151) 또는 데이터 저장장치(11)에 가용한 다양한 데이터를 포함할 수 있다(이하에 설명됨). 예를 들어, 비행동적이거나 모욕적인 어플리케이션을 식별하기 위해 주어진 문턱값보다 많은 네트워크 트래픽을 사용하는 어느 데이터 객체의 리스트, 가장 유행하는 악성 데이터 객체, 및 잠재적으로 악성의 어플리케이션을 식별하기 위한 일련의 체험과 같은 범주에 매칭하는 어플리케이션의 리스트이다.
C. 서버 측 분석 시스템
데이터 객체 또는 다른 형태의 유용한 출력에 대한 평가를 생산하기 위해서, 서버는 다양한 분석 방법을 사용할 수 있다. 일 실시예에서, 서버는 하나 또는 그보다 많은 소스로부터 데이터 객체에 대해 수집된 정보에 접근을 가지므로, 서버는 데이터 객체에 대한 평가를 생산하기 위해 정보를 처리할 수 있다. 도 11은 데이터 객체에 대한 어플리케이션 데이터를 수집하고, 정보를 저장하고, 데이터 객체에 대한 특징화 및 분류화를 제공하고, 평가 정보를 생산하기 위해 데이터 객체를 평가하고, 및 평가 정보를 전달하는 일 실시예를 설명한다. 도 11의 블록 1101에서, 어플리케이션 데이터(예를 들어, 데이터 객체 컨텐츠, 메타 데이터, 거동 데이터, 시장 데이터)는 데이터 객체를 위해 수집된다. 데이터를 수집하는 방법 및 형식 중 몇몇은 상술되어져 왔다. 블록 1103에서, 데이터 객체에 대한 어플리케이션 데이터는 서버(151) 또는 데이터 저장장치(111)에 저장됨으로써 상기 데이터는 수집될 때보다 상이한 시점에 사용될 수 있다.
블록 1105에서, 장치 데이터는 서버(151) 또는 데이터 저장장치(11)에 수집되고 저장된다(블록 1107). 장치 데이터는 보고되는 장치에 대한 어플리케이션 데이터에 링크되어짐으로써 평가, 분류화, 및 특징화가 상기 데이터의 소스를 고려하게 할 수 있는 것이 바람직할 수 있다. 예를 들어, 특정한 장치 형식에 설치되는 경우에 어플리케이션 만이 오기능한다면, 어떤 특정한 장치 형식이 데이터를 제공했는지에 관한 문맥에서 장치에 의해 제공되는 어플리케이션 데이터를 서버(151)가 분석할 수 있게 하는 것이 중요하다. 일 실시예에서, 어플리케이션 데이터가 저장되는 경우에(1103), 그를 제공한 장치에 대한 장치 데이터와 연관된다. 예를 들어, 장치가 어플리케이션 데이터를 서버(151)에 전달할때, 장치는 서버(151)가 앞서 저장된 장치 정보를 회수하게 허용하는 인증 정보를 전달할 수 있다. 장치가 이미 장치 데이터를 서버(151)에 전달했다면, 앞서 저장된 장치 데이터는 새로운 어플리케이션 데이터와 연관될 수 있다. 그러한 데이터 수집 시스템에서, 사생활을 보호하고 그리고 서버(151) 또는 데이터 저장장치(11)에 의해 저장된 식별 정보를 개별적으로 최소화하는 것이 중요할 수 있다. 일 실시예에서, 동일한 장치 데이터를 갖는 다수의 장치에 대한 어플리케이션 데이터는 총합됨으로써 저장된 데이터는 특정한 장치에 링크되진 않지만, 하나 또는 그보다 많은 장치에 의해 공유되는 일련의 장치 데이터에 링크된다. 그러한 시스템의 디자인에서, 총합된 데이터가 특정한 장치로 할당될 수 있는 수준 및 장치 데이터의 분할(granularity) 사이에서 균형을 고려하는 것이 중요할 수 있다.
데이터 객체의 분석의 일부로서, 서버(151)가 상기 데이터 객체를 분류화하고 및/또는 특징화하는 것이 바람직할 수 있다(블록 1109). 일 실시예에서, 서버(151)는 데이터 객체에 대한 분류화 및 특징화 데이터를 저장한다(블록 1111). 더 많은 데이터가 가용하거나 데이터의 분석이 변경함에 따라 분류화 및 특징화 데이터가 업데이트되는 것이 바람직할 수 있다. 일 실시예에서, 분석 시스템에 의해 사용되는 데이터 객체에 대한 새롭고 업데이트된 데이터가 이용 가능할 때 서버(151)는 추가 분석을 수행하고(블록 1109) 데이터 객체에 대한 저장된 분류화 및 특징화 데이터를 업데이트한다(블록 1111).
특징화 데이터는 그 역량, 데이터 객체에 대한 지표, 데이터 객체에 관한 다른 데이터의 분석 등과 같은, 데이터 객체의 기능성, 행동, 및 명성을 설명하는 정보를 포함한다. 일 실시예에서, 서버(151)는 어플리케이션 데이터, 장치 데이터, 시장 데이터, 분배 데이터, 및 서버(151)에 가용한 다른 데이터를 사용하여 데이터 객체에 관한 특징화 데이터를 생산한다. 몇몇 방법들이 이하에 설명되는 동안에, 당업자는 개시하는 범주를 벗어남이 없이 채용될 수 있는 특징화 정보를 발생하기 위한 다른 방법이 있음을 이해할 것이다. 일 실시예에서, 서버(151)는 평가로서 특징화 정보를 전달한다. 어플리케이션을 설치할지 여부를 결정할 때 특징화 정보는 사용자가 이해하기에 유용할 수 있다는 것을 이해할 것이다. 예를 들어, 사용자가 게임을 다운로드하려고 고려중이지만 사용자가 게임이 사용자의 위치를 인터넷에 송신할 가능성을 가진다는 것을 지칭하는 평가를 수신한다면, 사용자는 게임을 설치하지 않는 것으로 결정할 수 있다. 또다른 실시예에서, 사용자가 인스턴트 메시징 어플리케이션을 다운로드하려고 고려중이고 어플리케이션이 불균형적인 양의 배터리 전력을 사용하는 것이 염려된다면, 사용자는 어플리케이션의 배터리 사용량 지표를 보기 위해 평가를 수신하고 그리고 지표에 기초하여, 어플리케이션이 설치하도록 수락할 것인지 결정할 수 있다. 일 실시예에서, 특징화 정보는 하나 또는 그보다 많은 다른 분석 시스템에 입력으로서 소비된다. 예를 들어, 어플리케이션의 사생활 위험의 평가를 생산하는 분석 시스템은 어플리케이션이 인터넷 서버에 송신 위치 또는 접촉 리스트 정보와 같은 위험 역량을 갖는지 여부를 결정하기 위해 특징화 정보를 사용할 수 있다.
역량(capabilities)은 서버(151)가 생산하는 특징화 정보의 한 형태일 수 있다. 일 실시예에서, 서버(151)는 데이터 객체로부터 역량을 추출한다. 특정한 모바일 운영 시스템 또는 어플리케이션 환경에서, 어플리케이션은 장치 상의 특권화된 기능성에 접근하기 위해, 네트워크 데이터를 송신하고 수신함, 전화기의 위치에 접근함, 접촉 엔트리를 읽고 기록, 및 SMS 메시징과 같은, 분할 허가를 요청할 수 있다. 일 실시예에서, 데이터 객체의 역량을 결정하기 위해 서버(151)는 데이터 객체에 의해 요청된 허가에 대한 데이터를 사용한다. 서버는 장치에 의해 보고되는 메타 데이터 및 거동 데이터, 시장 데이터, 데이터 객체의 정적 분석, 및 데이터 객체의 동적 분석을 포함하여, 다양한 수단에 의해 허가 데이터를 결정할 수 있다. 예를 들어, 안드로이드 운영 시스템 상의 어플리케이션은 설치 시점에서 허가를 선언해야 하고, 그래서 서버(151)는 허가 데이터를 결정하기 위해 하나 또는 그보다 많은 장치에 의해 보고되는 어플리케이션 패키지에 대한 메타 데이터를 경유하거나 또는 시장 데이터를 경유하여 직접적으로 어플리케이션 패키지에 이러한 선언된 허가를 분석할 수 있다.
일 실시예에서, 서버(151)는 데이터 객체가 장치 상의 어떤 API를 이용하는지를 결정하기 위해 데이터 객체의 컨텐츠의 분석을 수행한다. 일 실시예에서, API 분석은 API 요청을 지칭하는 데이터 시퀀스에 대한 데이터 객체의 조사; 구체적 라이브러리, 기능, 클래스, 및 데이터 객체에 다른 수입(import) 데이터 구조의 분석; 동적 링커 요청의 분석; 로컬 또는 원격 서비스로의 요청 분석; 데이터 객체에 동적 분석; 및 하나 또는 그보다 많은 장치에 의해 보고되는 거동 데이터의 분석을 포함할 수 있다. 일 실시예에서, 어플리케이션이 특정한 역량을 갖는지를 결정하기 위해 서버(151)는 추출된 API 요청 정보를 이용한다. 예를 들어, 어플리케이션이 장치 상의 GPS 라디오와 상호작용하기 위해서 API를 요청한다면 서버(151)는 어플리케이션이 장치의 위치를 결정할 역량을 갖고 있는지를 결정한다. 그러한 분석이 비록 데이터 객체에 의해 사용되는 대다수의 API를 감지할 수 있지만, 향상된 자기-수정(self modifying)의 코드는 데이터 객체의 완전한 분석을 방지할 수 있다. 일 실시예에서, 서버(151)는 상기 코드가 자기-수정(self modifying)인지, 또는 가능성이 있는 것인지 여부를 감지한다. 그 자체를 수정하는 데이터 객체의 역량은 상기 데이터 객체가 더 단순한 데이터 객체보다 더 높은 위험이 있다는 것을 의미할 수 있다. 많은 예들의 PC 상의 멀웨어가 멀웨어-대비 시스템으로부터 숨기 위해서 자기-수정(self modifying) 코드를 사용하는 동안에, 복사 방지 시스템은 또한 자주 공인되지 않은 접근을 막기 위해서 암호 코드를 사용한다; 따라서, 자기-수정(self modifying)은 단독으로 데이터 객체를 악성으로 분류하기에 충분하지 않을 수 있고, 거동 데이터와 같이, 다른 특징에 부가적으로, 데이터 객체에 대한 평가를 생산하기 위해, 분석 시스템에 의해 사용될 수 있다.
일 실시예에서, 서버(151)는 데이터 객체에 대한 역량을 결정하기 위해 거동 데이터를 분석한다. 예를 들어, 서버(151)는 폰 요청을 만들고, SMS 메시지를 송신하고, 인터넷에 접근하고, 또는 특별한 어플리케이션 역량을 지칭하는 다른 작용를 수행하는 데이터 객체를 찾을 수 있다. 몇몇 경우에, 어떤 단일 기능이 데이터 객체에 의해 이용되는지 뿐만 아니라, 어플리케이션이 API 사이에서 데이터를 변경하는지 여부를 이해하는 것이 중요할 수 있다. 예를 들어, 인터넷을 사용하고 장치의 접촉 리스트를 판독할 수 있는 어플리케이션은 상당히 상이한 위험을 갖는 다수의 역량을 가질 수 있다. 예를 들어, 단순히 업데이트를 위해 인터넷을 사용하는 어드레스 북 어플리케이션은 접촉을 판독하고 인터넷에 접촉을 송신하는 어드레스 북 어플리케이션보다 덜한 사생활 위험을 갖는다. 일 실시예에서, 서버(151)는 하나의 API 또는 서비스에 의해 생산되거나 회신된 데이터가 또다른 API 또는 서비스로 송신되어지는 코드 경로가 있는지 여부를 결정하기 위해 데이터 객체를 분석한다. 예를 들어, 서버(151)는 어플리케이션이 API 사이에서 데이터를 전달하는지 여부를 결정하기 위해 두개의 API 사이에서 오점 추적(taint tracking)을 수행할 수 있다. 예를 들어, 서버(151)는 모바일 장치 상에 접점 API에 어느 요청에 의해 회신되는 데이터가 장치 상의 어느 네트워크 API에 제공될 수 있는 데이터 객체 내에 코드 경로가 있는지 여부를 결정할 수 있다. 코드 경로가 있다면, 서버(151)는 데이터 객체가 인터넷에 접촉을 송신할 역량을 갖는지를 결정한다. 그러한 역량을 갖는 것은 어플리케이션이 접촉에 접근하고 어플리케이션이 인터넷에 접근하는 것을 단순히 아는 것보다 서버(151) 또는 사용자에 의해 추가 분석 동안에 더 가치있게 될 수 있다. 많은 어플리케이션은 두가지 허가를 사용할 수 있다; 그러나, 인터넷에 실제로 접촉 데이터를 송신하는 경우는 거의 없다. 사용자 또는 자동화된 분석 시스템은 덜한 분할 역량 측정보다 훨씬 강력한 역량의 지칭자로서 두개의 API 사이에서 코드 경로가 있다는 것을 아는 역량을 사용할 수 있을 것이다.
일 실시예에서, 서버(151)는 가상의(예를 들어, 시뮬레이션된 또는 에뮬레이션된) 또는 물리적 장치에서 데이터 객체를 구동하고 구동될 때 데이터 객체의 행동을 분석한다. 일 실시예에서, 가상의 또는 물리적 장치는 장치화되어짐으로써 데이터 객체에 대한 거동 데이터를 보고한다. 일 실시예에서, 가상의 또는 물리적 장치의 네트워크 트래픽, 요청, 및 SMS 메시지는 서버(151)에 의해 분석된다. 예를 들어, 가상의 장치는 어느 실제 세상 환경에서는 발생할 것 같지 않은 위치 API를 경유하여 구체적인 위치를 항상 보고하도록 구성될 수 있다. 이진 더블 인코딩, 베이스 64 인코딩, 및 텍스트 인코딩과 같은, 장치 위치의 다양한 인코딩으로 장치의 네트워크 트래픽을 분석함에 의해, 서버(151)는 데이터 객체가 장치의 위치를 서버에 보고하도록 시도할지 여부를 결정할 수 있다. 일 실시예에서, 데이터 객체가 장치 상에서 구동되기 전에 그리고 데이터 객체가 구동한 후에, 서버(151)는 가상의 또는 물리적 장치의 상태에서의 차이를 검사한다. 예를 들어, 데이터 객체는 스텔스 루트킷(stealth rootkit)을 설치하기 위해서 설치되는 장치 상에 커널(kernel)을 공격(exploit)할 수 있다. 이러한 경우에, 시스템 요청 디스패치 테이블(system call dispatch table)과 같이, 가상의 장치는 특정한 메모리 섹션에서 실질적인 차이를 도시할 수 있고, 이는 보통 환경하에서는 변경할 수 없다. 일 실시예에서, 가상의 또는 물리적 장치는 신뢰되는 인증서 리스트에서 커스텀 루트 인증 권한(custom root certificate authority)을 갖고 서버(151)는 모든 TLS 트래픽을 차단하고, 커스텀 루트 인증 권한에 의해 서명된 서버 인증을 사용하고, 및 원래의 목적지로 트래픽을 위임한다. 장치가 커스텀 인증 권한을 갖기 때문에, 데이터 객체는 서버(151)를 통해 유효한 TLS 연결을 확립할 수 있고 모든 암호 트래픽은 서버(151)에 의해 분석될 수 있다.
데이터 객체의 역량은 제외하고라도, 서버(151)에 장치 상에 구동하는 데이터 객체의 노력 또는 장치 상에 데이터 객체의 사용 역량에 관련한 지표를 수집하는 것이 중요할 수 있다. 예를 들어, 네트워크 데이터, 이메일, 또는 SMS 메시징의 과도한 사용은 악성 또는 공격성(exploited) 어플리케이션을 지칭하거나 또는 악영향을 주는(abusive) 것으로 고려될 수 있다. 일 실시예에서, 서버(151)는 많은 모바일 커뮤니케이션 장치로부터, 메타 데이터와 거동 데이터, 장치 데이터, 및 데이터 객체를 특징화하는 지표 데이터를 생산하기 위해 그에 가용한 다른 데이터와 같은, 어플리케이션 데이터를 분석한다. 예를 들어, 어플리케이션이 모든 장치에 대해 또는 특별한 장치 형식에 대해 평균적으로 얼마나 많은 배터리 사용을 요구하는지, 데이터 객체가 어느 네트워크 인터페이스 또는 셀룰러 vs 와이파이 네트워크 인터페이스로 얼마나 많은 데이터를 송신하는지, 데이터 객체가 얼마나 많은 이메일 메시지 또는 SMS 메시지를 송신하는지, 데이터 객체가 얼마나 많은 전화 요청을 만드는지, 및 다른 지표들을 서버(151)는 결정할 수 있다.
서버(151)는 상술된 바로부터, 평가를 생산하기 위해 서버(151)에 의해 추가적인 분석을 보조할 수 있거나 또는 서버(151)에 의해 직접적으로 노출될 수 있는, 다른 특징화 정보를 생산할 수 있다. 일 실시예에서, 데이터 객체가 연결되는 서버 리스트, 데이터 객체가 통신하는 그러한 서버 상의 포트들 및 프로코콜들, 얼마나 많은 데이터가 각 서버로부터 전달되고 수신되는지와 같은, 네트워크 특징화 데이터를 생산하기 위해 데이터 객체와 연관되는 네트워크 트래픽 정보를 서버(151)가 분석한다. 일 실시예에서, 네트워크 특징화 정보는 특정한 데이터 객체를 구동하는 어떤 비율의 장치가 각 서버에 연결하는지를 포함한다. 예를 들어, IM 서버 또는 공지된 악성 보트 커맨드(bot command) 및 제어 서버에 연결하는 어플리케이션은 설치되는 모든 장치 상에 단지 하나 또는 작은 수의 서버에 연결할 수 있다; 그러나, 웹 브라우저 또는 사용자-특정화된(user-specified) 연결을 허용하는 어플리케이션은 상이한 장치 상에 극히 많은 수의 상이한 서버에 연결할 수 있다. 일 실시예에서, 데이터 객체가 많은 상이한 서버에 연결된다면, 서버(151)는 하나 또는 그보다 많은 장치가 불필요한 데이터 보고를 최소화하기 위해서 데이터 객체에 대한 네트워크 거동 데이터를 수집하기 않도록 알린다. 일 실시예에서, 네트워크 트래픽 정보는 모바일 커뮤니케이션 장치로부터 거동 데이터로 수집되거나 또는 가상적 또는 물리적 장치 상에 데이터 객체를 구동하는 서버(151)에 의해 수집된다.
일 실시예에서, 서버(151)는 데이터 객체가 모바일 커뮤니케이션 장치(101)를 악성의 인터넷 또는 다른 공공의 또는 개인 네트워킹에 접근하게 유도하는지 여부를 결정한다. 예를 들어, 모바일 커뮤니케이션 장치가 악성 웹사이트에 접근하게 유도하는 데이터 객체는 장치를 공격 당하도록 만들 수 있다. 본 발명의 실시예는 어드레스가 모바일 커뮤니케이션 장치를 비도덕적인 웹사이트 또는 피싱 사기가 아닌, 안전한 웹사이트로 안내하는지 여부를 결정하가 위해 전달된 인터넷 또는 인트라넷 어드레스(예를 들어, URL)의 해상도를 감안한다. 이러한 정보는 특별한 데이터 객체에 관한 것으로 저장될 수 있다.
사용자가 모든 단일 어플리케이션에 대해 분리된 결정을 해야 함이 없이 어플리케이션 정책을 모바일 장치에 적용하기 위해서, 어플리케이션을 분류하는 것이 바람직할 수 있고, 그럼으로써 사용자는 어떤 카테고리의 어플리케이션을 허가하거나 부정하도록 단순히 결정할 수 있다. 실시예에서, 서버(151)는 어플리케이션 데이터, 장치 데이터, 시장 데이터, 및 특징화 데이터와 같은 가용한 데이터를 사용하여 데이터 객체를 분류한다. 예를 들어, 데이터 객체가 모바일 커뮤니케이션 장치 상에 요청 위치 API로 특징화된다면, 서버(151)는 데이터 객체를 매핑 또는 다른 위치-기반 어플리케이션으로 분류할 수 있다. 실시예에서, 접촉 리스트를 판독하는 어플리케이션 또는 인터넷에 당신의 위치를 송신할 수 있는 어플리케이션과 같이, 카테고리는 역량에 직접으로 맵핑할 수 있다. 다른 예시적인 카테고리는 데이터 객체가 모바일 커뮤니케이션 장치의 접촉 리스트로부터 어떤 정보를 전달하는지 여부, 데이터 객체가 장치의 전화번호와 같은 다른 데이터를 모바일 커뮤니케이션 장치에 의해 전달되어지게 유도하는지 여부, 및 모바일 커뮤니케이션 장치의 사생활 보안에 영향을 끼칠 수 있는 다른 행동들을 포함한다. 일 실시예에서, 서버(151)는 분류하기 위해 데이터 객체에 대한 지표 데이터를 사용한다. 예를 들어, 서버는 장치 배터리의 10% 이상을 전형적으로 사용하는 데이터 객체를 포함하는 다량 배터리 사용자의 카테고리를 가질 수 있다. 분류화가 특징화 데이터에 부가하여 장치 데이터에 의존적일 수 있기 때문에, 배터리 낭비자의 카테고리는 평가가 어떤 형식의 장치에 대한 것인지에 의존할 수 있다. 예를 들어, 하나의 장치의 배터리의 10% 이상을 사용하는 데이터 객체는 또다른 장치의 배터리의 5%만을 사용할 수 있다.
일 실시예에서, 데이터 객체가 분류화 정보를 직접적으로 제공하지 않는다면, 서버(151)는 그러한 정보를 유추할 수 있다. 예를 들어, 데이터 객체가 공지된 인스턴트 메시징 서버와 통신한다면, 서버(151)는 데이터 객체가 IM 어플리케이션이라고 결정할 수 있다. 예를 들어, 유명한 소셜 네트워크에 속하는 서버에 연결하는 어플리케이션은 분석 동안에 소셜 네트워킹 어플리케이션으로 분류될 수 있고, 공지된 IRC 서버에 연결하는 어플리케이션은 악성 보트로 분류될 수 있고, 그리고 하나 또는 그보다 많은 장치의 배터리를 드레인하는 어플리케이션은 배터리 드레이너(drainer)로 표기될 수 있다.
어플리케이션 분류화가 주관적이고 자동적으로 결정하기가 어렵기 때문에, 조직의 내부에 또는 협동적인 공동체 노력의 일부로서, 어플리케이션의 카테고리를 결정하기 위해 하나 또는 그보다 많은 사람을 갖는 것이 바람직할 수 있다. 일 실시예에서, 서버(151)는 사용자가 데이터 객체에 대한 카테고리를 제안할 수 있는 인터페이스를 노출한다. 예를 들어, 서버(151)는 아이들에게 부적당한 어플리케이션의 카테고리를 제안할 수 있고, 상기 어플리케이션은 포르노그래피 또는 폭력을 포함하는 컨텐츠를 갖는다. 이러한 실시예에서, 서버(151)에 알려진 모든 어플리케이션을 검색하고 브라우즈할 수 있는 웹 어플리케이션으로 제공되는 공동체 투표 시스템에 하나 또는 그보다 많은 사용자가 서명할 수 있다. 어플리케이션 리스트는 장치에 의해 보고되는 어플리케이션 데이터 및 시장 크롤링에 의해 밀집해질 수 있다. 각 어플리케이션은 사용자가 그러한 어플리케이션에 대해 그들의 추천된 카테고리를 선택할 수 있는 페이지를 가질 수 있다. 일 실시예에서, 사용자 인터페이스는 총합된 어플리케이션 데이터, 데이터 객체의 특징, 및 서버(151)에 가용한 다른 정보와 같은, 데이터 객체에 대한 정보를 도시하고 그럼으로써 사용자는 분석 결과에 기초하여 결정할 수 있다. 일 실시예에서, 사용자 인터페이스는 사용자에게 카테고리 리스트로부터 선택하는 것, 새로운 카테고리를 부가하는 것, 및 데이터 객체에 대한 태그(tag)를 부가하는 것을 허용하게 한다. 실시예에서, 사용자 인터페이스는 데이터 객체에 대한 적절한 분류화를 설명할 수 있게 하도록 설명 성분를 가진다. 일 실시예에서, 어플리케이션에 대한 카테고리는 사용자가 어플리케이션에 대한그들의 선호되는 카테고리를 선택할 수 있는 투표 시스템에 의해 결정되고, 대부분의 사용자에 의해 선택되는 카테고리는 어플리케이션에 대해 권위적인 카테고리가 된다. 일 실시예에서, 사용자 인터페이스는 모바일 커뮤니케이션 장치 상에 표시되고, 장치 상에 설치되는 데이터 객체의 리스트를 표시하고, 그리고 사용자에게 그러한 데이터 객체에 대한 카테고리를 제안하도록 허용한다.
일 실시예에서, 서버(151)는 데이터 객체에 대한 분배 데이터를 결정하기 위해 어플리케이션 데이터 및 장치 데이터를 처리한다. 분배 데이터는 주어진 어플리케이션이 현재 얼마나 넓게 분배되었는지, 어플리케이션의 분배 성장이 상기 어플리케이션이 이용 가능하게 되어진 시간 주기를 얼마나 지나쳤는지, 지리학과 같은, 통계학자가 어플리케이션을 설치했는지, 및 모바일 커뮤니케이션 장치의 그룹들 상에서 어플리케이션의 유행하는 다른 기능들을 포함할 수 있다. 예를 들어, 서버(151)는 어플리케이션이 얼마나 유행하는지를 결정하기 위해서 현재 시점에서 데이터 객체를 설치한 얼마나 많은 모바일 커뮤니케이션 장치 리포트를 검사할 수 있다. 실시예에서, 서버(151)는 이하에 설명되는 바와 같이, 데이터 객체의 신뢰성을 결정하기 위해서 또는 위험에 대해 데이터 객체를 분석하기 위해서 분배 데이터를 사용한다. 예를 들어, 설치제거 없이 오랜시간 주기 동안 많은 장치 상에 설치되어져온 어플리케이션은 새로운 브랜드이거나 극히 적은 장치에 단지 설치되는 어플리케이션보다 덜 위험할 것이다.
서버(151)는 개발 중인 합법적인 어플리케이션을 마주하고 따라서 넒게 분배되지 않기 때문에, 개시하는 일 실시예는 어플리케이션이 개발 중일 수 있다는 것을 식별하는 서버(151)를 대상으로 하고, 그에 의해 어플리케이션이 멀웨어-대비 또는 다른 시스템에 바람직하지 않게 분류되어지는 것을 방지한다. 서버(151)는 디버깅 심볼, 디버깅 가능한 허가 또는 표기, 디버깅 라이브러리에의 연결, 및 다른 특징들과 같이, 데이터 객체가 개발 중인 어플리케이션에 고유한 특징을 가진다는 것을 지칭하는 데이터 객체에 대한 어플리케이션 데이터를 수신할 수 있다. 개발 중인 어플리케이션은 또한 저조한 분배 또는 고립된 분배를 가지려고 할 수 있다. 서버(151)는 어플리케이션을 개발 중인 것으로 식별한다면, 개발 중으로 고려될 수 있는 어플리케이션의 지칭을 저장할 수 있고 그리고 서버(151)가 어플리케이션을 의심스럽거나 바람직하지 않은 것으로 접근하는 것으로부터 방지하거나 서버가 그러한 평가에 도달할 가능성을 감소하는 지칭을 사용한다. 일 실시예에서, 데이터 객체가 "개발 중임"으로 다루어져야만 하는지 여부를 결정할 때에는, 서버(151)는 질문 상태의 데이터 객체를 마주하는 장치에 의해 마주되어지는 앞선 데이터 객체를 고려한다. 장치가 자주 개발 중인 데이터 객체를 마주한다면, 서버(151)는 좀더 데이터 객체를 개발 중인 것으로 분류할 개연성이 있다. 장치가 뜸하게 개발 중인 데이터 객체를 마주한다면, 서버(151)는 데이터 객체를 개발 중인 것으로 분류할 가능성이 더 작을 개연성이 있다.
일 실시예에서, 서버(151)는 데이터 객체에 대한 명성 또는 신뢰 수준을 확립한다. 일 실시예에서, 신뢰 수준은 수동 또는 자동으로 결정되고 단일 데이터 객체, 어플리케이션의 일부인 다수의 데이터 객체, 어플리케이션의 다수의 버전, 또는 하나의 플랫폼 또는 다수의 플랫폼 상에 주어진 개발자로부터 모든 어플리케이션에 대해 할당된다. 일 실시예에서, 신뢰 데이터는 서버 상의 서버(151)에 의해 또는 데이터 저장장치(111)에 저장되고 이어서 직접적으로 또는 평가를 생산하는 일부로서 사용될 수 있다.
일 실시예에서, 신뢰는 어플리케이션에 대한 수동 리뷰 처리를 경유하여 인정된다. 예를 들어, 서버(151)가 어플리케이션을 단지 그 역량에 기초하여 간주한다면(예를 들어, 개인 데이터에 접근을 갖거나 및/또는 민감한 API를 이용하는), 평가를 고려하는 사용자는, 어플리케이션이 잘 고려되어질지라도, 그를 다운로드하지 않는 것을 선택할 수 있다. 어플리케이션은 수동 리뷰에 의해 신뢰 등급이 할당될 수 있다. 리뷰가 어플리케이션을 신뢰성 있는 것으로 간주한다면, 평가는 어플리케이션을 위험하기 않은 것으로 보고한다; 그러나, 리뷰 시에, 어플리케이션이 의심스러운 것으로 결정된다면, 평가는 계속적으로 어플리케이션을 위험한 것으로 보고할 수 있다. 저명한 어플리케이션은 다수의 데이터 객체로 구성할 수 있거나, 새로운 데이터 객체로 업데이트될 수 있거나, 또는 다수의 플랫폼에 대한 버전을 가질 수 있기 때문에, 다수의 데이터 객체, 어플리케이션, 및 심지어 플랫폼을 확장하기 위해 신뢰 등급을 허가하는 것이 중요할 수 있고 그럼으로써 수동 리뷰는 어플리케이션의 일부인 파일 또는 모든 버전에 대해 완성되어야 할 필요가 없다. 유사하게, 많은 저명한 소프트웨어 공급자가 신뢰성 있는 것으로 가정될 수 있는 다수의 어플리케이션을 생산할 수 있기 때문에, 상기 공급자로부터 비롯하는 식별된 데이터 객체에 높은 수준의 신뢰를 자동으로 인정하는 것이 바람직할 수 있다. 실시예에서, 데이터 객체의 암호화 서명, 패키지명, 또는 시장 메타 데이터와 같은 서버(151)에 가용한 데이터를 통해서 상기 데이터 객체가 신뢰되는 공급자 또는 신뢰되는 어플리케이션에서 기인할 수 있다면, 서버(151)는 데이터 객체에 높은 수준의 신뢰를 인정한다.
일 실시예에서, 서버(151)는 어플리케이션에 대한 신뢰를 확립하기 위해 분배 데이터 및 어플리케이션 데이터를 사용한다. 예를 들어, 구글 지도와 같은, 유명한 어플리케이션이 수백만의 모바일 커뮤니케이션 장치 상에 설치되고 그리고 모두 동일한 암호화 서명 및 유사한 분배 특징을 갖는 다수의 앞선 버전의 어플리케이션이 있다면, 상기 암호화 서명를 갖는 연이은 버전의 어플리케이션은 높은 수준의 신뢰를 갖는 것으로 간주될 것이다. 서버(151)가 구글 지도와 같은, 유명한 어플리케이션으로서 동일한 이름을 갖는 또다른 유명한 어플리케이션을 대면하고, 단지 희박한 장치 상에 설치되고, 및 상이한 암호화 서명를 사용한다면, 서버(151)는 낮은 분배 어플리케이션에 낮은 수준의 신뢰를 인정할 수 있다. 멀웨어-대비 시스템은 데이터 객체를 부적당한 것으로 자동적으로 평가하거나 또는 수동 리뷰에 대해 상기 데이터 객체를 표시하기 위해 데이터 객체가 낮은 신뢰를 갖는다는 것을 지칭하는 그러한 데이터를 사용할 수 있다. 일 실시예에서, 어플리케이션에 대한 신뢰 데이터는 동일한 플랫폼 또는 상이한 플랫폼 상에 동일한 개발자에 의해 생성되도록 결정되는 어플리케이션과 같은 관련된 어플리케이션을 고려할 수 있다. 예를 들어, 회사가 상당한 수의 사용자 및 좋은 등급을 갖는 하나의 모바일 플랫폼에 대한 어플리케이션을 생산하고, 그리고 회사가 상이한 플랫폼 상에 새로운 어플리케이션을 출시한다면, 새로운 어플리케이션은 제 1 어플리케이션에 기초하여 높은 신뢰 등급이 주어질 수 있다.
일 실시예에서, 서버(151)는 데이터 객체가 모바일 커뮤니케이션 장치 운용 시스템의 일부이거나 또는 제조자 또는 운용자에 의해 미리 로딩된지 여부를 결정하기 위해 어플리케이션 데이터를 분석한다. 일 실시예에서, 서버(151)는 데이터 객체가 모바일 커뮤니케이션 장치 운용 시스템의 일부이거나 또는 미리 로딩된 것으로 결정한다면, 자동적으로 높은 신뢰 수준이 인정되어진다.
일 실시예에서, 서버(151)는 어플리케이션 시장 데이터 수집 시스템(1005)과 같이, 사용자-발생된 등급 및 어플리케이션에 대한 코멘트를 분석한다. 예를 들어, 서버(151)는 어플리케이션에 대한 신뢰 등급을 결정하기 위해 등급 및 리뷰를 사용할 수 있다. 어플리케이션 "고장" 또는 다르게는 "불량"을 지칭하는 부정적 코멘트 및 낮은 등급을 어플리케이션이 갖는다면, 서버(151)는 그 코멘트에 지칭된 명성에 기초하여 어플리케이션에 낮은 신뢰 등급을 할당한다; 그러나, 어플리케이션이 연속적으로 높은 등급 및 많은 리뷰를 갖는다면, 서버(151)는 어플리케이션에 높은 신뢰 등급을 할당한다. 또다른 실시예에서, 서버(151)는 어플리케이션에 대한 평가를 생성하는 중에 사용을 위해 어플리케이션 품질의 주관적인 지칭자로서 등급 및 리뷰를 사용한다. 어플리케이션 "배터리를 드레인한다" 또는 "배터리를 빨아들인다"고 지칭하는 텍스트를 갖는 상당한 수의 리뷰를 어플리케이션이 갖는다면, 서버(151)는 어플리케이션이 부정적인 배터리 효과를 갖는 명성을 갖는 것을 결정하고 그리고 이를 지칭하는 어플리케이션의 평가를 생산한다.
일 실시예에서, 서버는 API를 경유하여 제 3 당사자에게 신뢰 데이터를 노출한다. 예를 들어, 신뢰되는 어플리케이션은 경계에 의해 인증된 것으로 고려될 수 있다. 일 실시예에서, API에 의해 노출된 신뢰 수준은 이진(예를 들어, 신뢰된, 신뢰되지 않은), 퍼지(예를 들어, 86% 신뢰된, 11% 신뢰된), 또는 분류적(예를 들어, 완전히 신뢰된, 악성의, 의심스러운, 세미(semi)-신뢰된)이다. 모바일 어플리케이션 시장은 어플리케이션 다운로드 사용자 인터페이스 상에 인증의 지칭을 어플리케이션이 좋은 명성을 갖는 신호로서 표시하고자 할 수 있다. 이러한 경우에, 서버(151)는 API를 노출할 수 있고 이에 의해 제3자는 해시 식별자, 패키지명, 또는 암호화 서명와 같은 데이터 객체에 대한 식별 정보 또는 데이터 객체를 공급할 수 있다. 데이터 객체 또는 하나를 식별하는 충분한 정보를 수신한 후에, 서버(151)는 데이터 객체가 인증된 것으로 고려되는지 여부에 대한 지칭로 응답한다. 일 실시예에서, 응답은 서버(151)가 데이터 객체를 인증된 것으로 고려하는지 아닌지를 지칭하는 이미지이다. 일 실시예에서, 응답은 서버(151)로 하이퍼링크를 포함하고, 그에 의해 사용자는 상기 어플리케이션에 대한 인증이 진정한 것인지를 입증할 수 있다. 일 실시예에서, 하이퍼링크에 의해 언급된 웹 페이지는, 왜 그것이 신뢰된 것으로 고려되거나 아닌지(예를 들어, 수동 리뷰, 커멘트, 분배 데이터를 통해), 어플리케이션에 의해 어떤 허가가 요청되는지, 어플리케이션이 갖는 특징과 역량, 및 수동 리뷰 동안에 어플리케이션에 대한 논평과 같은, 상기 어플리케이션에 대한 추가 정보를 도시한다.
서버(151)에 의해 수집된 데이터를 이용하거나 또는 본 명세서에 설명된 분석 시스템으로부터, 서버는 평가를 생산할 수 있다(도 11의 블록 1113). 평가를 생산한 후에, 서버(151)는 데이터 객체의 평가를 저장할 수 있음으로써 나중에 회수될 수 있다(블록 1115). 서버는 그리고는 데이터 객체의 평가를 전달할 수 있다(블록 1117). 예를 들어, 서버는 어플리케이션 공급자 웹사이트 상에 평가를 공개하고, 검색 가능한 리포트의 형태로 평가를 제공하고, 모바일 커뮤니케이션 장치에 경고를 전달하고, 주어진 데이터 객체가 공지된 양호 또는 공지된 불량인지에 대한 평가를 포함하는 바이러스 평가를 전달하고, 및 데이터 객체의 평가에 질의하는 API 요청에 응답을 전달할 수 있다. 그러한 정보는 판독 가능한 텍스트, 기계 판독 가능한 포맷의 형태일 수 있고, "스코어", 배지, 아이콘, 또는 다른 상징적 순위를 포함할 수 있다. 당업자는 서버가 데이터 객체에 대한 평가를 전달하는 상황이 개시하는 범위를 벗어남이 없이 가능하다는 것을 이해할 것이다.
일 실시예에서, 평가 데이터는 특징화 데이터, 분류화 데이터, 신뢰 데이터, 및 분배 데이터와 같은, 분석 시스템으로부터의 출력을 포함한다. 예를 들어, 데이터 객체에 대한 평가는(단독으로 또는 다른 정보에 부가하여) 데이터 객체에 대한 감지된 역량, 데이터 객체에 대한 평균적 배터리 사용, 데이터 객체에 의해 송신된 SMS 또는 이메일 메시지의 평균 개수, 데이터 객체가 연결하는 가장 보편적인 서버, 데이터 객체에 대한 네트워크 데이터의 평균적 양, 및 데이터 객체에 대한 신뢰 등급을 포함한다. 상기의 평가 데이터가 서버(151)로 입력으로서 제공될 수 있다는 것을 이해할 것이다. 예를 들어, 네트워크 운용자 또는 기업은 평가 데이터를 생산하는 서버를 운용하고 그리고 마스터 서버에 그 데이터를 도로 공급할 수 있다. 또다른 실시예에서, 사용자는 평가 데이터를 결정하고 웹 어플리케이션과 같은 인터페이스를 경유하여 서버(151)에 제공할 수 있다. 이러한 경우에, 사용자는 서버에 의해 사용될 수 있는 주관적인 신뢰 데이터, 위험 등급, 분류화, 또는 다른 평가 데이터를 제공할 수 있다. 실시예에서, 서버(151)는 총합된 평가를 생산하기 위해 다수의 소스로부터 수신된 평가 데이터를 조합한다. 예를 들어, 서버(151)에 잘못된 평가를 생산하게 야기하고자 하는 바람에서 악성 어플리케이션이 안전하다는 것을 지칭하는 평가를 멀웨어 작성자가 서버(151)에 전달하려고 시도한다면, 서버는 총합된 평가를 생산하기 위해 그러한 소스의 평가 및 신뢰성을 제공하는 많은 수의 특이한 소스를 이용할 수 있다. 어플리케이션이 악성이라고 지칭하는 네트워크 운용자 또는 기업과 같은 상이하고, 신뢰적인 소스로부터 100개의 평가가 수신되는 반면, 어플리케이션이 안전하다고 지칭하는 특별한 미입증된 소스로부터 10000개의 평가가 수신된다면, 서버는 어플리케이션이 악성이라고 지칭하는 총합된 평가를 생산한다.
일 실시예에서, 서버(151)에 의해 생산된 평가 데이터는 데이터 객체에 대한 하나 또는 그보다 많은 등급을 포함한다. 예를 들어, 데이터 객체에 대한 평가는 어플리케이션이 위치 데이터, 접촉 데이터, SMS 메시지, 또는 장치로부터 서버로의 파일을 송신하는 역량을 갖는지 여부를 고려하여 서버(151)에 의한 데이터 객체의 사생활에 대한 등급을 포함할 수 있다. 또다른 실시예에서, 데이터 객체에 대한 평가는 어플리케이션에 대한 어떤 공지된 취약성이 있는지 여부, 어플리케이션이 어떤 포트 상의 네트워크 연결에 귀를 기울이는지 여부, 어플리케이션이 안전한 코딩 가이드라인을 만족하는지 여부, 어플리케이션의 신뢰 수준이 무엇인지, 및 어플리케이션에 기형이 있는지 여부(예를 들어, 스텔스 코드, 해독된 코드, 구조 기형)를 고려하여 서버(151)에 의한 데이터 객체의 보안에 대한 등급을 포함할 수 있다. 또다른 실시예에서, 데이터 객체에 대한 평가는 장치에 의해 보고된 배터리 사용 데이터를 고려함에 의해 폰 배터리 수명 감소의 측정된 수분(as estimated number of minutes)과 같은, 데이터 객체의 배터리 충격에 대한 등급을 서버에 의해 고려하여 포함할 수 있다. 또다른 실시예에서, 데이터 객체에 대한 평가는 어플리케이션의 평균적 CPU 사용 및 어플리케이션이 사용자 입력 이벤트에 응답하기 않는 주파수를 고려하여 서버(151)에 의해 생산된 데이터 객체의 성능에 대한 평가를 포함할 수 있다. 또다른 실시예에서, 데이터 객체에 대한 평가는 어플리케이션 고장, 사용자 코멘트, 사용자 등급, 및 어플리케이션이 장치 상에 유지되는 평균 시간을 고려하여 서버(151)에 의해 생산된 품질 등급을 포함할 수 있다. 일 실시예에서, 서버(151)는 다수의 차원에 따라 데이터 객체에 대한 평가를 제공하기 위해서 하나의 평가의 일부로서 다수의 등급을 제공한다. 일 실시예에서, 평가는 이진(예를 들어, 양호, 불량) 또는 퍼지(예를 들어, 100&, 90%, 10%)일 수 있다. 일 실시예에서, 다수의 등급은 전체적인 등급으로 조합된다.
일 실시예에서, 서버(151)는 데이터 객체에 대한 등급을 생산하기 위해서 서버에 가용한 다수의 데이터 소스를 처리한다. 예를 들어, 서버(151)는 어플리케이션이 악성인지 여부를 결정하기 위해 어플리케이션 데이터, 장치 데이터, 특징화 데이터, 신뢰 데이터, 및 사용자 공급된 데이터를 이용할 수 있다. 서버는 평가를 생산하기 위해서 서버에 가용한 데이터에 적용되는 다양한 시스템 및 모델을 이용할 수 있다. 예를 들어, 데이터 객체가 악성인지 여부에 대한 평가를 생산하는 것은 악성일 것 같은 데이터 객체의 행동을 식별하기 위해 특징적 데이터를 분석하는 체험 엔진을 포함하는 멀웨어 감지 시스템을 포함할 수 있다. 몇몇 예시적인 체험들은 설치되는 OS 상에 어플리케이션 계산 시스템으로부터 숨김에 의해 감지를 피하는 어떤 역량을 데이터 객체가 이용하는지 여부, 어플리케이션이 그 자체를 변경하고자 시도하는지 여부, 어플리케이션이 공지된 스파이웨어와 연관된 역량을 갖는지 여부, 및 어플리케이션이 공지된 악성의 서버에 연결하는지 여부를 감지하는 것을 포함한다.
당업자는 평가를 생산하기 위해 서버(151)에서 수행되는 분석의 일부가 데이터 객체에 대한 추출 특성으로서 보여질 수 있고, 그리고 분석의 또다른 일부는 유용한 평가를 생산하기 위해 그러한 특성에 모델을 적용하는 것으로 보여질 수 있다는 것을 이해할 것이다. 따라서, 요구되는 형태의 순위 또는 평가에 도달하도록 데이터 객체에 대한 특성을 처리하기 위해서, 인공 지능 시스템 또는 알고리즘과 같은, 다양한 시스템을 적용할 수 있다.
일 실시예에서, 서버(151)는 상이한 장치 데이터 또는 구성 정보를 고려하는 데이터 객체에 대한 다수의 평가를 생산할 수 있다. 예를 들어, 서버(151)가 데이터 객체가 정확히 기능할 것인지 여부에 대한 평가를 생산하도록 구성된다면 그리고 하나의 형식의 장치 상에 설치될 때 데이터 객체가 오기능하는 반면, 또다른 장치 형식 상에 설치될 때 정확히 기능하는 경우에, 서버는 데이터 객체에 대한 2가지 평가를 생산할 수 있다. 서버(151)는 API를 갖고 그에 의해 모바일 커뮤니케이션 장치(101)는 데이터 객체에 대한 정보를 식별하는 주어진 데이터 객체에 대한 평가를 요청할 수 있고 모바일 커뮤니케이션 장치가 장치 데이터를 서버(151)에 송신한다면, 서버(151)는 평가를 요청하는 장치에 일치하는 데이터 객체에 대한 평가를 제공할 수 있다. 오기능하는 데이터 객체가 평가를 요청한다면, 서버(151)는 상기 장치(101) 상에 데이터 객체의 오기능하는 행동을 지칭하는 평가를 회신할 것이다. 데이터 객체가 정확하게 기능하는 장치(101)가 평가를 요청한다면, 서버(151)는 상기 장치(101) 상에 정확히 기능하는 행동을 지칭하는 평가를 회신할 것이다.
일 실시예에서, 평가는 데이터 객체가 관리자에 의해 세팅되는 정책이 주어지는 장치 상에 구동하도록 허가되는지 여부를 지칭한다. 다수의 정책들이 서버(151) 상에 구성되고, 데이터 저장장치(111)가 어느 정책이 장치(101)에 적용되어져야할지를 저장한다면, 그러면 주어진 데이터 객체는 평가에 대해 질문하는 장치의 정책에 의존하는 다수의 평가를 가질 수 있다. 예를 들어, 엄격한 사생활 정책을 갖는 장치가 사용자의 위치를 공유할 수 있는 어플리케이션에 대한 평가를 요청한다면, 서버(151)는 어플리케이션이 허가되지 않는다는 것을 지칭하는 평가를 전달한다. 관대한 사생활 정책을 갖는 장치가 동일한 어플리케이션에 대한 평가를 요청한다면, 서버(151)는 어플리케이션이 허가된다는 것을 지칭하는 평가를 전달한다. 일 실시예에서, 평가 데이터는 저정되지 않고 그리고 어플리케이션 데이터, 장치 데이터, 분배 정보, 특성화 정보, 신뢰 데이터, 및 분류화 정보와 같은 평가를 생산하기 위해 사용되는 단지 정보가 저장되고 그리고 평가가 저장된 정보에 정책을 적용함에 의해 요청시 수행된다.
자동화된 분석 시스템이 대부분의 시간에 받아들일 수 있는 결과를 생산할 수 있지만, 수동 분석이 자동 분석의 결과를 무시하는 상황일 수 있다. 일 실시예에서, 서버(151)는 데이터 객체에 대한 수동 분석 결과를 저장하고 그리고 수동 분석 결과를 평가로 저장한다. 예를 들어, 서버(151)는 그 거동 데이터에 기초하여 어플리케이션을 소셜 네트워킹 어플리케이션으로 분류할 수 있다; 그러나, 어플리케이션은 사용자에게 소셜 네트워크에 정보를 공개하게 허가하는 사실상 워드 처리 어플리케이션일 수 있다. 이러한 경우에, 사용자 또는 관리자는 데이터 객체의 분류화를 무시할 수 있고, 서버(151)는 분류화를 저장하고 데이터 객체에 대한 평가에 대한 요청에 응답하여 전달한다. 또다른 실시예에서, 멀웨어-대비 시스템은 특정한 특징을 갖는 데이터 객체를 바람직하지 않은 것으로 식별한다. 사용자가 특별한 데이터 객체를 바람직하지 않은 것으로 다루기 위해 수동으로 서버를 구성하는 것은 또한 바람직할 수 있다. 서버(151)는 바람직하지 않은 것으로 고려되는 데이터 객체 리스트을 저장하고, 이러한 데이터 객체 중 하나에 대한 평가가 요청되는 경우에 상기 데이터 객체가 바람직하지 않음을 지칭하는 평가를 회신한다.
일 실시예에서, 가용한 가장 최신의 정보를 반영하는 것이 데이터 객체에 대하여 평가에 바람직할 수 있기 때문에, 추가 어플리케이션 데이터 또는 장치 데이터가 이용 가능하게 되거나 또는 분석 시스템 자체가 업데이트된다면 서버(151)는 최초에 평가를 생산하고 평가를 업데이트한다. 일 실시예에서, 데이터 객체가 재접근된다면(예를 들어, 새로운 어플리케이션 데이터, 장치 데이터, 또는 업데이트된 분석 시스템), 서버(151)는 새로운 분석을 저장하고(1111) 그를 전달한다(1113). 예를 들어, 10 개의 장치로부터 데이터 객체에 대한 장치 데이터 및 어플리케이션 데이터를 수집한 후에, 서버(151)는 데이터 객체에 대한 평가를 발생할 수 있다. 그리고는, 서버(151)가 더 많은 1000개의 장치로부터 장치 데이터 및 어플리케이션 데이터를 수신한다면, 새로운 데이터의 관점에서 데이터 객체를 재분석하고, 데이터 객체에 대한 새로운 평가를 생산할 수 있다. 업데이트된 평가가 제1 평가와 재질적으로 상이하다면, 장치 또는 사용자에게 알림과 같은 작용가 서버(151)에 의해 수행될 수 있다.
C. 멀웨어-대비 시스템(Anti-Malware System)
일 실시예에서, 서버(151) 및 모바일 커뮤니케이션 장치(101)는 모바일 커뮤니케이션 장치에 악영향을 끼치는 것으로부터 멀웨어 또는 스파이웨어를 방지하기 위해서 함께 기능하도록 구성된다. 모바일 커뮤니케이션 장치는 메모리, 처리 능력, 및 배터리 용량에 제한되기 때문에, 어플리케이션이 분석을 수행하는 각 장치보다는 멀웨어 또는 스파이웨어로 고려되는지 여부를 결정하기 위해, 본 명세서 상에서 설명되는 분석과 같은, 분석을 서버(151)가 수행하는 것이 바람직할 수 있다. 더 나아가, 다수의 장치가 동일한 어플리케이션을 마주한다면, 분석이 반복되어질 필요가 없기 위해서, 서버가 분석 결과를 저장하는 것이 바람직할 수 있다. 부가적으로, 분석 시스템에 의한 사용을 위해 다양한 소스로부터 데이터를 제공하기 위해서, 서버(151)가 잠재적으로 악성 어플리케이션에 대한 데이터를 수집하고, 본 명세서에서 설명된 데이터 수집 시스템을 사용하는 것이 바람직할 수 있다.
일 실시예에서, 데이터 객체가 악성인지 또는 그렇지 않다면 바람직하지 않은지 여부를 결정하기 위해서, 모바일 커뮤니케이션 장치(101)가 어플리케이션 패키지 또는 실행가능 파일과 같은, 데이터 객체에 접근할 때, 장치는 서버(151)에 데이터 객체에 대한 평가 요청을 송신하고, 요청은 데이터 객체에 대한 식별 정보를 포함한다. 일 실시예에서, 모바일 커뮤니케이션 장치(101)에 의해 전달된 요청은 평가를 수행함에 있어서 서버에 의한 사용을 위해 데이터 객체에 대한 어플리케이션 데이터를 포함한다. 예를 들어, 어플리케이션 패키지명 및 해시와 같은 식별 정보를 전달함에 부가하여, 모바일 커뮤니케이션 장치는 이용된 API 리스트과 같이, 정적 분석을 수행함으로써 장치에 의해 결정된 정보 및 데이터 객체에 의해 요청된 허가를 추가적으로 전달할 수 있다.
일 실시예에서, 모바일 커뮤니케이션 장치(101)는 설비가 제공된 운용 시스템 및 잠재적으로 추가 처리를 사용함에 의해 데이터 객체에 대한 메타 데이터를 수집한다. 예를 들어, 블랙베리 및 안드로이드 플랫폼 모두는 장치 상에 반-멀웨어가 설치된 패키지 리스트을 문의할 수 있는 메카니즘을 제공한다. 또한 각각은 암호 서명 정보와 같은 패키지에 대한 추가 정보 및 상기 패키지가 어떻게 운용 시스템에 그 자체를 병합하거나 노출하도록 선택하는지에 대한 정보를 질문하기 위한 방법을 제공한다.
또다른 실시예에서, 모바일 커뮤니케이션 장치(101)는 평가를 생산하는 서버(151)를 보조하기 위해 데이터 객체로부터 특성을 추출할 수 있다. 실시예에서, 모바일 커뮤니케이션 장치(101)는 서버(151)에 전달할 어플리케이션 데이터를 추출하기 위해서 데이터 객체에 정적 분석을 수행한다. 예를 들어, 안드로이드 상에서, 장치는 어플리케이션 패키지의 실행 가능한 영역을, 전형적으로 "classes.dex"로 호칭되는 분석할 수 있다. 장치는 "blinder" 메카니즘을 이용하는 실행 가능한 파일에 의해 직접적으로 또는 간접적으로 수행되는 공정간 통신 요청 리스트을 추출하고 그리고 어플리케이션 패키지를 분석함에 있어 사용을 위해 서버(151)로 요청에 대한 정보를 전달할 수 있다.
일 실시예에서, 서버(151)는 즉시 데이터 객체를 분석할 수 있고, 또는 본 명세서 상에 개시된 것과 같은 프로세스를 사용한 추가 정보를 수집하도록 필요할 수 있다. 데이터 객체에 대한 평가를 생산한 후에, 서버는 모바일 커뮤니케이션 장치(101)에 평가를 전달한다. 일 실시예에서, 평가는 데이터 객체가 바람직하지 않은지 여부에 대한 지칭를 포함한다. 예를 들어, 서버(151)는 공지된 양호, 공지된 불량, 및 미상 등 3 가지 평가 중의 하나를 전달할 수 있다. 서버가 데이터 객체는 공지된 양호로 결정한다면(예를 들어, 높은 신뢰 수준을 갖기 때문에), 데이터 객체는 공지된 양호 평가를 회신한다. 서버가 데이터 객체는 공지된 불량으로 결정한다면(예를 들어, 멀웨어의 조각인 것으로 결정되기 때문에), 데이터 객체는 공지된 불량 평가를 회신한다. 서버가 결정을 내릴 충분한 정보를 갖지 않는다면, 데이터 객체가 미상이라는 평가를 회신할 것이다. 일 실시예에서, 평가는 데이터 객체의 위험 수준 또는 공지된 양호 또는 공지된 불량 평가의 확신 수준을 포함함으로써 모바일 커뮤니케이션 장치 또는 그 사용자가 데이터 객체 분류하는 방법을 결정하기 위해 위험 또는 확신 수준을 사용할 수 있다.
일 실시예에서, 서버(151)에 의해 모바일 커뮤니케이션 장치(101)에 전달된 평가는 데이터 객체가 바람직하지 않았다는 것으로 서버(151)가 결정한 이유에 관한 정보를 포함한다. 예를 들어, 서버(151)는 데이터 객체가 속하는 것으로 결정되었던 멀웨어 패밀리의 이름을 전달할 수 있거나 또는 서버는 모바일 커뮤니케이션 장치(101)가 서버(151)에 대한 추가 정보를 표시하게 사용할 수 있는 서버를 참조하는 HTTP URL을 전달할 수 있고, 여기에서 상기 URL은 서버(151)에 의해 디코딩된 식별자를 포함하여 데이터 객체에 대하여 저장된 정보를 회수하게 허용한다. 웹 페이지는 평가를 생산하기 위해 사용되는 상이한 분석 시스템으로부터의 출력과 같은 추가 정보를 표시할 수 있다. 예를 들어, 웹 페이지는 데이터 객체의 분배 정보, 데이터 객체에 의해 연결되는 보편적 서버에 대한 정보, 데이터 객체의 인간 분석에 의해 제공되는 정보, 데이터 객체와 연관되는 신뢰 정보, 데이터 객체의 지리학적 분배에 대한 정보, 및 데이터 객체의 작성자에 대한 정보를 표시할 수 있다.
데이터 객체의 분석을 위해 모바일 커뮤니케이션 장치(101)가 서버(151)에 송신할 필요가 있는 요청을 최소화하는 것이 바람직할 수 있고 그럼으로써 장치는 전달하고 수신하는 데이터의 양을 최소화하고, 데이터 객체에 접근하도록 요구되는 시간을 감소시키고, 배터리 소모를 최적화시키고, 및 서버(151) 상에 하중을 최소화시킨다. 일 실시예에서, 모바일 커뮤니케이션 장치(101)는 서버(151)로부터 수신되는 평가 정보의 로컬 캐쉬를 유지한다. 로컬 캐쉬는 SQLite과 같은 가벼운 데이터베이스를 사용하거나 또는 평가 저장장치에 대해 최적화되는 독점 이진 파일 포맷으로 저장될 수 있다. 예를 들어, 캐쉬는 데이터 객체가 바람직하지 않은지 여부에 관한 지칭, 데이터 객체와 연관된 위험 수준, 및 데이터 객체에 대한 식별 정보와 같은 정의 정보를 포함한다. 장치가 데이터 객체를 검색할때, 장치는 로컬 캐쉬에서 데이터 객체의 식별 정보를 찾을 수 있다. 데이터 객체에 대한 평가가 캐쉬화된다면, 평가는 사용된다. 평가가 캐쉬화되지 않는다면, 장치는 서버(151)로부터 평가를 회수한다. 일 실시예에서, 모바일 커뮤니케이션 장치는 상기 장치 상에 마주하는 데이터 객체에 대한 캐쉬 내로 평가를 삽입할 때, 데이터 객체에 대한 정의 정보를 발생하게 한다. 예를 들어, 장치는 서버로부터 평가 결과를 캐쉬화하는 것을 보증하기 위해 데이터 객체의 컨텐츠의 해시를 사용할 수 있다. 일 실시예에서, 서버(151)는 평가를 갖는 정의 정보를 전달함으로써 모바일 커뮤니케이션 장치는 평가를 적당한 세트의 어플리케이션에 적용할 수 있다. 예를 들어, 몇몇 경우에 서버(151)는 평가가 단지 그 컨텐츠의 해시에 의해 식별되는 구체적인 데이터 객체에 적용한다는 것을 지칭할 수 있는 한편 다른 경우에 서버가 평가가 동일한 암호키로 서명되는 모든 데이터 객체에 적용한다는 지칭할 수 있다.
일 실시예에서, 모바일 커뮤니케이션 장치(101)는 모바일 커뮤니케이션 장치 상에서 운용하는 인식 성분(하기에 설명됨)에 의한 사용을 위해 공지된 불량 데이터 객체 및 공지된 양호 데이터 객체에 대한 정보의 로컬 캐쉬를 저장한다. 인식 성분을 사용하는 경우에, 로컬 캐쉬가 의심스런 데이터 객체에 일치하는 일치 평가 및 정의를 포함한다면 모바일 커뮤니케이션 장치는 의심스런 데이터 객체에 대한 평가를 결정할 수 있다. 예를 들어, 정의는 해시 식별자, 패키지명, 및 데이터 객체에 매칭하는 암호화 서명와 같은 기준을 사용할 수 있다. 각 정의는 일치 정보를 가질 수 있다.(예를 들어, "양호","불량") 정의가 의심스런 데이터 객체에 매칭한다면, 정의의 평가는 의심스런 데이터 객체에 대하여 사용된다. 어떤 정의도 안전하거나 또는 안전하지 않은 것으로 인식되는 데이터와 같이, 데이터 객체에 일치하지 않는다면, 모바일 커뮤니케이션 장치(101)는 더 포괄적인 분석을 위해 의심스런 데이터 객체에 대한 어플리케이션 데이터를 서버(151)에 전달할 수 있다.
일 실시예에서, 모바일 커뮤니케이션 장치(101) 상의 반-멀웨어가 서버(151)를 컨설팅해야 함이 없이 데이터 객체를 악성인 것으로 또는 악성으로 인식할 것인지 여부를 결정하는 반-멀웨어 정보의 제 1 저장장치로 상기 캐쉬가 사용된다. 일 실시예에서, 캐쉬는 장치 상의 인식 성분에 의해 사용되는 정의 정보를 저장한다. 예를 들어, 캐쉬는 캐시화된 평가를 가진 장치 상에 데이터 객체를 매칭하도록 사용되는 로직, 패키지명, 암호화 서명, 바이트 시퀀스, 또는 패턴을 포함할 수 있다. 캐쉬가 특별한 바이트 시퀀스를 악성 어플리케이션인 평가에 연결하는 엔트리를 포함하고 장치 상의 데이터 객체가 바이트 시퀀스를 포함한다면, 장치는 데이터 객체가 서버(151)에 접촉해야 함이 없이 악성이 되도록 결정할 것이다. 일 실시예에서, 캐쉬는 정의 정보 만을 포함하고, 모든 정의는 악성인 데이터 객체의 단일 평가에 일치한다. 일 실시예에서, 캐쉬는 평가 정보를 포함할 수 있고, 평가 정보는, 전술한 바와 같이, 상기 장치가 사용자에게 표시를 위한 정보를 회수하도록 하기 위해서 서버(151)에 전달될 수 있는 식별자를 가능하게 포함한다. 서버(151)로부터 데이터를 회수하기 위해 사용되는 그러한 식별자는 캐쉬가 잠재적인 멀웨어에 대하여 저장하는 정보를 최소화하도록 허용한다. 일 실시예에서, 장치 캐쉬는 화이트리스트 또는 블랙리스트 둘다로서 이바지한다. 캐쉬는 공지된 양호 데이터 객체 및 공지된 불량 데이터 객체에 대한 정의 정보를 포함하고 결과적으로 데이터 객체가 양호로 공지되거나 불량으로 공지된 것으로 결정된다면, 장치는 서버(151)로부터 평가를 요청할 필요가 없다. 일 실시예에서, 화이트리스트 또는 블랙리스트 둘다로서 이바지하는 캐쉬는 데이터 객체가 인지할 수 있을 정도로 불량인지 또는 인지할 수 있을 정도로 양호한지를 결정하기 위해 모바일 커뮤니케이션 장치(101) 상에서 인식 성분에 의해 사용된다. 캐쉬에 저장된 정의 정보에 기초하여 장치에 의해 마주되는 데이터 객체가 인지할 수 있을 정도로 불량하지 않고 또는 인지할 수 있을 정도로 양호하지도 않다면, 장치는 서버(151)에 데이터 객체에 대한 어플리케이션 데이터를 전달할 수 있고 그러므로 장치는 서버로부터 데이터 객체에 대한 평가를 수신할 수 있다. 일 실시예에서, 모바일 커뮤니케이션 장치(101) 상의 멀웨어-대비는 새로운 평가를 수신하거나 또는 저장된 평가가 무효인 것으로 간주되는 경우에 장치에 의해 변경되는 정의의 미리 지정된 캐쉬로 설치된다.
일 실시예에서, 장치 상에 캐시화된 평가 및 정의는 단지 시간 주기 동안에 유효한 것으로 고려됨으로써 모바일 커뮤니케이션 장치는 잠재적으로 뒤떨어진 데이터에 의존하지 않는다. 일 실시예에서, 캐시화된 평가 및 정의는 무기한적으로 저장되고 시간 제약 없이 유효한 것으로 고려된다. 일 실시예에서, 장치는 특정 형식의 평가 및 정의만을 저장한다. 예를 들어, 장치는 공지된 양호 평가 만을 캐쉬화할 수 있거나 공지된 불량 평가만을 캐쉬화할 수 있다. 이러한 경우에, 정의는 일치하는 평가를 갖는 경우에만 저장된다. 일 실시예에서, 캐쉬의 일부는 RAM과 같은, 휘발성 저장장치에 저장되고, 캐쉬의 일부는 플래쉬와 같은, 비휘발성 메모리에 저장된다. 휘발성 메모리는 전형적으로 비휘발성 메모리보다 더 빠르지 않으나 더 제한되기 때문에, 장치는 휘발성 메모리에 접근된 평가 및 정의를 잦은 빈도로 저장할 수 있는 한편 비휘발성 메모리에 접근된 평가 및 정의를 덜 잦은 빈도로 저장할 수 있다. 예를 들어, 반-멀웨어가 개방되어지는 매번 데이터 객체를 분석한다면, 데이터 객체가 최근에 검색되었고 변경되지 않았다면 데이터 객체에 대한 평가를 매우 빨리 결정하는 것이 바람직할 수 있다. 최근에 사용된 평가 및 정의를 휘발성 메모리에 저장함으로써, 장치는 앞선 평가를 매우 신속하게 재현할 수 있다.
일 실시예에서, 서버(151)는 장치가 평가를 캐쉬화해야 하는지 여부, 및 만약 그렇다면, 얼마나 오래 동안 인지를 지칭하는, 평가를 갖는 캐쉬 제어 정보를 전달한다. 예를 들어, 서버(151)는 장치가 평가를 캐쉬화해야 하는 것을 지칭하는 캐쉬 제어 정보를 포함하여, 저명한 회사로부터 유명한 어플리케이션에 대한 평가를 전달할 수 있다. 서버(151)가 덜 알려진 어플리케이션에 대한 평가를 전달한다면, 장치가 평가를 캐쉬화하면 안되는 것을 지칭하는 캐쉬 제어 정보를 포함할 수 있는데, 이에 대해 보다 많은 것이 알려지면 어플리케이션이 미래에 바람직하지 않은 것으로 판명될 수 있기 때문이다. 일 실시예에서, 서버(151)는 평가의 확신에 기초하여 캐쉬 제어 정보를 결정한다. 예를 들어, 높은 신뢰 수준을 갖는 어플리케이션에 대한 공지된 양호 평가는 꽤 만족적인 것으로 고려될 수 있는 한편, 어플리케이션이 서버에 가용한 데이터의 부족으로 인하여 미상인 것을 지칭하는 평가는 만족적인 것으로 고려될 수 없다. 일 실시예에서, 평가가 만료될때, 평가와 연관된 캐시화된 정의 정보는 또한 만료된다.
캐시화된 평가를 회수하는 것이 서버(151)로부터 평가를 회수하는 것보다 더 빠르기 때문에(그에 의해 데이터 객체가 악성인지 아닌지 여부를 결정하는 오버헤드 및 딜레이를 최소화하고), 캐시화된 데이터로부터 로컬하게 결정될 수 있는 평가의 수를 최대화하는 것이 바람직할 수 있다. 일 실시예에서, 서버는 평가를 요청하는 장치 없이 모바일 커뮤니케이션 장치에 평가를 전달하고 그리고 모바일 커뮤니케이션 장치는 이러한 정보를 그 캐쉬에 저장한다. 서버(151)에 가용한 모든 평가가 모바일 커뮤니케이션 장치(101) 상에 바람직한 것보다 더 많은 저장장치를 요청할 수 있기 때문에, 서버는 그 가용한 평가의 부분을 단지 전달할 수 있다. 일 실시예에서, 서버(151)는 장치 데이터 및 어플리케이션 데이터를 분석함에 의해서 모바일 커뮤니케이션 장치(101)에 어떤 평가를 전달할지를 결정한다. 예를 들어, 서버(151)는 데이터 객체가 서버가 주어진 운용 시스템에 관련한 모든 평가에 대해 문의할 수 있는 그런 방식으로 데이터 객체에 대한 평가와 연관되는 호환 가능한 운용 시스템을 저장할 수 있다. 서버(151)는 장치가 구동하고 있는 운용 시스템과 호환 가능한 데이터 객체에 대한 것인 모바일 커뮤니케이션 장치에 단지 평가를 전달할 수 있다. 다른 평가는 상기 다른 평가에 의해 참조된 데이터 객체가 장치의 운용 시스템 상에서 구동할 수 없기 때문에 장치에 전달되지 않을 것이다. 또다른 실시예에서, 서버는 어떤 평가를 장치에 전달할지 결정하기 위해서 장치의 국가, 언어, 또는 지역 코드를 사용할 수 있다. 러시아에서의 사용자가 스페인 언어의 어플리케이션을 다운로드하지 않을 개연성이 있는 것과 마찬가지로, 미국에서의 사용자는 러시아 언어의 어플리케이션을 다운로드하지 않을 개연성이 있다.
일 실시예에서, 서버(151)는 미리 장치에 전달하였고 장치가 성공적으로 수신한 평가를 저장함으로써 평가는 불필요하게 재전달되지 않는다. 장치가 요구되는 평가를 수신하지 못했다면, 서버는 장치가 연결하는 다음번에 평가를 전달한다. 장치에 이미 수신되어진 평가를 효율적으로 추적하기 위해서, 서버(151)는 평가를 그룹화하고, 결과적으로 주어진 장치는 하나 또는 그보다 많은 그룹으로 모든 평가를 수신한다. 예를 들어, 주어진 그룹의 평가는 하루당 여러번 변경을(예를 들어, 접근되는 새로운 데이터 객체, 존재하는 평가로의 변경) 가질 수 있다; 그러나, 장치는 하루당 단지 한번 업데이트된 평가를 수신하도록 구성될 수 있다. 어떤 평가를 장치에 전달하는지 결정하기 위해서, 서버는 장치가 최근의 평가를 마지막으로 수신한 시간을 기록할 수 있고 그리고 장치가 평가를 마지막으로 수신한 이후로 상기 그룹에 변경을 단지 검사한다. 예를 들어, 장치가 주어진 그룹에 대한 모든 평가를 월요일에 수신하고 2개의 새로운 평가가 화요일에 그룹에 부가된다면, 그리고는, 장치가 수요일에 연결한다면, 서버는 어떤 평가가 월요일 이후로 그룹에서 변경했는지를 단지 질문할 필요가 있고 단지 2개의 추가된 평가의 전달을 필요로 한다는 것을 결정할 것이다. 일 실시예에서, 서버는 장치에 전달할 준비가 이루어진 추가적 평가가 있는 장치에 경고를 주기 위해 본 명세서에서 설명된 것와 같은 푸쉬 서비스를 이용한다. 그러한 푸쉬 서비스를 이용할 때, 서버가 그룹의 일부인 평가를 업데이트할 때, 그룹에 대한 평가를 전달하는 모든 장치들은 거의 즉시 최근의 평가로 업데이트될 수 있다.
장치에 선택적으로 평가를 전달하기 위해서 평가가 서버(151)에 의해 그룹화될 수 있는 다양한 방식이 있다. 예를 들어, 장치 상에 저장하기 위해 바람직한 것보다 주어진 운용 시스템과 호환 가능한 데이터 객체에 대한 더 많은 평가가 있을 수 있다. 이러한 경우에, 서버는 서버(151)에 가용한 시장 데이터 및 분배 데이터에 기초하여, 가장 유행하는 데이터 객체에 일치하는 한 그룹의 평가를 생산할 수 있다. 이러한 경우에, 장치는 가장 마주할 것 같은 데이터 객체에 대한 평가를 캐쉬화할 수 있다. 장치가 데이터 객체에 대한 캐쉬화된 평가를 가지는 가능성을 추가로 개선하는 것이 또한 가능하고, 장치는 상기 장치에 의해 앞서 마주되어지는 데이터 객체에 일치하는 서버에 가용한 어플리케이션 데이터를 분석하고 그리고, 그러한 앞선 마주한 객체들에 기초하여, 장치가 미래에 어떤 데이터 객체를 마주할 것 같은지를 예견하는 서버(151)에 의해 대면한다. 이러한 개연성 있는 데이터 객체에 대한 평가는 장치에 전달될 수 있다.
장치 상에 캐쉬화하는 최적의 양의 평가는 장치의 하드웨어, 사용자 행동, 또는 사용자 선호도에 따라 상이할 수 있기 때문에, 상기 데이터 량은 변동가능한 것이 바람직할 수 있다. 일 실시예에서, 모바일 커뮤니케이션 장치(101) 상에 캐쉬화하는 평가 데이터의 양은 서버(151)에 의해 결정된다. 예를 들어, 서버(151)는 장치 상에 가용한 저장장치의 양, 사용자가 어플리케이션을 다운로드하는 주파수, 및 얼마나 개연성 있게 추가 캐쉬화된 평가 데이터를 상기 장치에 의해 전달된 요구된 평가 요청의 수를 감소시킬 것인가를 검사할 수 있다. 장치가 많은 가용한 저장장치를 갖고 그 사용자가 많은 어플리케이션을 다운로드한다면, 서버는 많은 평가 데이터를 캐쉬화하는 것을 결정할 수 있다; 그러나, 장치가 가용한 적은 저장장치를 갖고 그 사용자가 희박하게 어플리케이션을 다운로드한다면, 서버는 단지 작은 량의 데이터를 캐쉬화하거나 데이터를 전혀 캐쉬화하지 않는 것을 결정할 수 있다. 서버는 또한 요청이 추가 평가 정보를 캐쉬화하는 장치에 의해 회피될 수 있었는지를 결정하기 위해 상기 장치에 의해 행해진 앞선 평가 요청을 검사할 수 있다. 예를 들어, 장치가 특별한 그룹의 어플리케이션에 속하는 평가를 현재 수신하고 추가 그룹의 어플리케이션에 대한 평가를 어느 장치가 수신할 것인지를 서버가 평가하고 있다면, 서버는 그러한 평가 중의 얼마나 많은 평가가 제2 그룹에 있는지를 결정하기 위해 평가 요청을 앞서 검사한다. 서버(151)가 충분한 평가 요청이 회피될 수 있었을 것으로 결정한다면, 그러면 2개의 모든 그룹으로부터 장치에 평가 전달을 시작할 것이다. 일 실시예에서, 사용자는 모바일 커뮤니케이션 장치(101) 상에 캐쉬화된 평가를 할당하는 저장장치의 양을 제어할 수 있다.
절대적인 평가를 항상 생산하는 대신에(예를 들어, 공지된 양호 또는 공지된 불량), 아직 평가를 가지지 않은 것을 서버(151)가 보고하는 것이 바람직할 수 있다. 일 실시예에서, 서버(151)가 객체의 부적당함이 공지되지 않은 것을 지칭하는 데이터 객체에 대한 평가를 전달한다. 모바일 커뮤니케이션 장치(101)가 데이터 객체를 마주하고, 서버(151)에 평가에 대한 요청을 전달하고, 및 공지되지 않은 평가를 수신할 때, 장치는 일시적으로 데이터 객체를 신뢰하고, 차후에 평가에 대한 요청을 재시도한다. 불필요한 요청을 회피하기 위해서, 공지되지 않은 평가를 계속 수신한다면, 장치는 재시도 사이에서 시간 지연을 증가시킨다. 일시적인 신뢰 주기 동안에, 장치는 데이터 객체가 검색되는 매번 평가에 대한 요청을 재시도하지 않는다. 예를 들어, 파일 시스템 상에 파일을 검색하도록 디자인된 모바일 장치 상의 멀웨어-대비 시스템에서, 접근되는 경우에, 데이터 객체로의 제 1 접근은 결과적으로 서버(151)에 평가 요청을 전달하는 장치일 수 있다. 서버가 알려지지 않은 평가를 회신한다면, 장치는 데이터 객체에 대한 식별 정보를 지칭하는 그 평가 데이터 베이스에 일시적인 엔트리, 데이터 객체가 허가되는 것을 지칭하는 일시적인 평가, 및 상기 평가가 유효한 시간 주기를 저장한다.
일 실시예에서, 서버(151)는 공지되지 않은 평가에 데이터 객체에 대한 정보를 전달하고 모바일 커뮤니케이션 장치(101)는 로컬 분석 시스템으로의 입력으로서 서버(151)로부터 데이터 평가를 사용한다. 예를 들어, 모바일 커뮤니케이션 장치(101)는 데이터 객체가 악성인지 여부를 결정하기 위해 데이터 객체의 컨텐츠를 분석하는 체험 시스템을 가질 수 있다. 서버(151)로부터 공지된 양호 또는 공지된 불량의 결과의 경우에, 장치는 체험 시스템을 구동하지 않거나 또는 체험 시스템으로부터 결과를 포기한다. 서버(151)가 데이터 객체의 신뢰 수준을 포함하는 공지되지 않은 결과를 회신한다면, 장치(101)는 데이터 객체를 바람직하지 않은 것으로 다룰 것인지 아닌지를 결정하기 위해서 체험 시스템으로부터의 결과를 서버에 의해 제공된 신뢰 수준과 조합한다. 예를 들어, 모바일 커뮤니케이션 장치(101)는 서버(151)에 의해 제공된 신뢰 수준에 기초하여 로컬 분석으로부터의 결과를 조절할 수 있다. 장치 상의 체험 시스템이 데이터 객체가 66% 위험하고 서버(151)로부터 공지되지 않은 평가가 데이터 객체가 의심스러운 1% 신뢰 수준을 갖는 것을 지칭한다면, 장치는 데이터 객체가 바람직하지 않은 것을 결정한다; 그러나, 서버(151)로부터 공지되지 않은 평가가 데이터 객체가 70% 신뢰 수준을 갖는 것을 지칭한다면, 장치는 데이터 객체가 바람직하다는 것을 결정한다.
멀웨어 및 스파이웨어와 같은, 바람직하지 않은 어플리케이션에 응답하기 위해서, 그들이 그러한 것으로 식별되는 즉시, 서버(151)가 앞서 양호 또는 미상인 것으로 분류된 후에 바람직하지 않은 것으로 결정된 데이터 객체에 대하여 모바일 커뮤니케이션 장치(101)에 주의를 전달하는 것이 바람직할 수 있다. 일 실시예에서, 서버(151)는 모바일 커뮤니케이션 장치(101)에 의해 마주하는 데이터 객체에 대한 정보를 저장함으로써 장치에 의해 마주되어지는 데이터 객체가 양호 또는 미상인 것으로 접근되지만 이어서 바람직하지 않은 것으로 결정된다면 서버(151)는 데이터 객체를 마주해 온 모든 장치를 결정하고 데이터 객체가 바람직하지 않다고 지칭하는 주의를 전달할 수 있다. 일 실시예에서, 주의의 주제인 데이터 객체가 장치의 운용 시스템 상에서 운용할 수 있다면, 서버(151)는 단지 장치(101)에 주의를 전달한다. 예를 들어, 장치가 블랙베리를 구동하고 안드로이드 스파이웨어 어플리케이션을 마주한다면, 서버(151)는 주의를 전달할 것이다. 본 명세서에서 설명된 바대로, 데이터 객체가 주어진 장치 상에서 운용할 수 있는지 여부에 대한 결정은 장치에 대한 장치 데이터 및 데이터 객체에 대한 어플리케이션 데이터를 분석함에 의해서 결정될 수 있다.
일 실시예에서, 서버(151)로부터 장치(101)로 전달된 주의는 장치에 의해 소비되도록 디자인되고 데이터 객체에 대한 치료 정보 및 식별 정보 모두를 포함한다. 예를 들어 주의는 플랫폼 공급자에 의해 공급되는 푸쉬 서비스를 이용하고 그리고 데이터 객체에 대한 컨텐츠 해시 및 패키지명을 포함할 수 있다. 주의는 또한 데이터 객체를 포함하는 어떤 프로세스를 "죽이는 것", 사용자에게 데이터 객체를 언인스톨하게 요청하는 것, 및 사용자 간섭 없이 데이터 객체를 삭제하는 것과 같은 치료 작용을 명시할 수 있다. 일 실시예에서, 주의는 치료 지칭, 데이터 객체가 왜 바람직하지 않은 것으로 고려되는지에 대한 설명, 또는 특별한 작용을 가하고자 하는 요청과 같이 데이터 객체에 대하여 사용자에게 표시를 위한 정보를 포함한다. 일 실시예에서, 주의는 텍스트 메시지, 이메일, 또는 전화 요청과 같은, 인간 판독 가능 메시지의 형태이다. 사용자가 위험한 데이터 객체에 응답하는 것을 보증하기 위해서 인간의 판독 가능한 경고 및 기계 판독 가능한 주의를 모두 서버가 수행하게 하는 것이 바람직할 수 있다. 예를 들어, 서버는 이메일 메시지를 사용자에게 전달하고 그리고 사용자 간섭 없이 데이터 객체를 제거하기 위해 장치에 대한 주의를 전달할 수 있다.
일 실시예에서, 모바일 커뮤니케이션 장치(101)는 장치 상에 존재하는 모든 데이터 객체의 데이터베이스를 포함하고 그리고 서버(151)는 장치에 업데이트된 서명 데이터를 전달하고 그때 장치에 의해 마주되어지는 데이터 객체가 바람직하지 않은 것으로 결정된다. 장치가 업데이트된 서명 데이터를 수신할때, 업데이트된 서명 데이터를 장치 상에 존재하는 데이터 객체와 비교한다. 장치 상에 존재하는 어떤 객체가 업데이트된 서명 데이터에 의해 바람직하지 않은 것으로 고려된다면, 장치는 데이터 객체가 검색되는 다음 번을 대기함이 없이, 즉시 치료 작용을 초기화한다.
멀웨어-대비 시스템이 데이터 객체에 대한 평가를 수행한다면, 데이터 객체를 재평가해야 하는 것을 회피하기 위해 변경하지 않는 한 데이터 객체를 신뢰하는 것이 바람직할 수 있다. 일 실시예에서, 모바일 커뮤니케이션 장치(101)는 바람직한 것으로 고려되고 분석되어진 식별된 데이터 객체 리스트을 유지한다. 데이터 객체가 검색되도록 요구된다면, 장치는 먼저 데이터 객체가 존재하는지 여부를 보기 위해 상기 리스트를 체크할 수 있다. 객체가 존재한다면, 장치는 객체를 재검색하지 않는다. 파일을 검색하고 그것을 바람직한 것으로 결정한 후에, 상기 장치는 리스트에 데이터 객체에 대한 식별자를 위치시킨다. 예시적인 식별자들은 파일 이름, 파일 시스템 노드 식별자, 또는 구체적 데이터 객체가 다루는 운용 시스템을 포함한다. 일 실시예에서, 모바일 통신은 이러한 데이터 객체의 리스트를 비휘발성 저장장치에 저장함으로써 장치가 재부팅되거나 배터리가 방전되는 경우일지라도 리스트가 보존될 수 있다. 평가를 저장하고 후에 평가를 재접근하는 경우에, 어떤 저장된 평가가 단지 특별한 세트의 데이터 객체 컨텐츠에 대해 유효한 것이 중요하다. 데이터 객체가 원래의 데이터 객체에는 존재하지 않았던 악성 코드를 포함하도록 변경되어졌을 수 있기 때문에, 데이터 객체의 컨텐츠가 변경한다면, 상이한 평가가 필요할 수 있다. 실시예에서, 리스트는 데이터 객체의 컨텐츠의 암호화 해시를 포함할 수 있다. 장치가 데이터 객체가 리스트에 있는 것으로 고려할 지 여부를 결정할 때, 장치 상에 저장된 데이터 객체의 해시를 리스트에 저장된 해시와 비교한다. 해시가 매칭한다면, 데이터 객체는 리스트에 있는 것으로 고려한다. 실시예에서, 반-멀웨어는 언제 파일이 개방되고 폐쇄되는지를 결정할 수 있다. 리스트 상의 파일이 쓰기 접근으로 개방된다면, 상기 파일은 리스트로부터 제거된다. 파일에 개방된 기록장치가 있다면, 상기 파일은 상기 리스트에 부가될 수 없다.
개시하는 실시예는 모바일 커뮤니케이션 장치를 보호하기 위해 충분한 옵션을 제공하는 한편 네트워크 트래픽을 감소시키기 위해 다른 방식을 고려한다는 것을 이해할 것이다. 일 실시예에서, 모바일 커뮤니케이션 장치가 최초로 시작하거나 또는 전원이 들어올 때, 또는 모바일 통신을 모니터링하는데 책임이 있는 어플리케이션이 최초로 런칭될때, 모바일 커뮤니케이션 장치는 장치에 상존하는 모든 데이터의 분석을 요청할 수 있다. 상술한 바는 모바일 커뮤니케이션 장치에 대한 기본적 보안을 제공한다. 장래의 검색은 모바일 커뮤니케이션 장치에 의해 새로운 어플리케이션이 접근되어질 때, 또는 미리 세팅된 시간 간격으로, 또는 사용자 요청시에 수행될 수 있다. 검색은 네크워크(121)로의 접근에 의존하여 조정될 수 있다. 연결성이 문제라면, 단지 더 새로운 데이터가 접근되어질 수 있고, 또는 데이터를 의심한다. 연결성이 개선할 때 검색은 줄지어져 수행될 수 있다.
일 실시예에서, 모바일 커뮤니케이션 장치(101) 상의 멀웨어-대비 시스템은 장치 상에 존재하는 모든 데이터 객체의 온-디맨드 및 예정된 검색 모두를 수행하는 역량을 갖는다. 멀웨어-대비 시스템이 데이터 객체에 대한 평가를 수행하기 위해서 서버(151)를 이용한다면, 상기 검색을 수행하기 위해 요구되는 시간을 최적화하는 것이 바람직할 수 있다. 네트워크 잠복은 평가에 대한 요청이 장치에 의해 전달되는 시간 및 상기 장치가 서버(151)로부터 응답을 수신하는 시간 사이에 지연을 일으키기 때문에, 응답을 대기하는 동안에 상기 장치가 단순히 아이들링하지 않는 그러한 방식으로 요청을 연결하는 것이 바람직할 수 있다. 일 실시예에서, 모바일 커뮤니케이션 장치는 다수의 데이터 객체에 대한 평가를 제공하기 의해 서버(151)에 요청을 전달하고 그리고 서버(151)는 다수의 데이터 객체에 대한 평가를 상기 장치에 전달한다. 예를 들어, 온-디맨드 검색 동안에, 장치는 상기 장치 상에 모든 데이터 객체를 최초로 열거하도록 구성될 수 있고 그리고 상기 열거된 모든 데이터 객체에 접근하기 위해서 서버(151)에 요청을 송신할 수 있다. 또다른 실시예에서, 장치는 추가 데이터 객체를 검색하기 전에, 한 번에 10개의 데이터를 열거하고, 서버에 요청을 송신하고, 10개의 데이터에 대한 응답을 수신할 수 있다. 또다른 실시예에서, 장치는 데이터 객체를 열거하고 평가 요청을 전달하고, 서버로부터 평가 응답을 대기함이 없이 열거 프로세스를 연속한다. 상기 장치는 상기 열거가 완전한 경우에 단지 응답을 대기한다.
시스템이 어떤 배치에 도달할 때까지 데이터 객체의 로딩 또는 실행을 차단하는 멀웨어-대비 시스템에서, 데이터 객체가 로딩되거나 또는 실행될 필요가 있기 전에 데이터 객체를 평가하는 것이 바람직할 수 있다. 실시예에서, 모바일 커뮤니케이션 장치(101)는 선제적 작용으로 데이터 객체를 검색하고 결과를 저장함으로써 데이터 객체가 로딩되어질때, 장치는 앞선 검색 결과를 참조할 수 있다. 예를 들어, 장치가 다수의 다른 파일 상에 의존하는 프로그램을 로딩할때(예를 들어, 공유된 라이브러리에 연결되는 실행 파일), 의존하는 모든 라이브러리를 결정하기 위해 장치 상에 멀웨어-대비 시스템이 프로그램을 분석할 수 있고, 프로그램 및 그것의 의존하는 라이브러리에 대한 평가를 서버(151)에 요청을 송신하고, 그리고 장치가 긍정적인 평가 정보를 수신한 이상 프로그램의 실행이 속행하게 허용하게 한다. 장치의 운용 시스템이 어플리케이션이 의존하는 라이브러리를 로딩하는 경우에, 시스템은 라이브러리에 대한 최신의 평가를 갖고 있기 때문에 서버(151)로의 어떤 요청도 필요로 하지 않는다. 라이브러리가 선제적 작용으로 분석되지 않는다면, 장치가 연속으로 발생하는 서버(151)로의 다수의 요청을 대기해야할 수 있으므로 프로그램에 대한 전체적인 로딩 시간은 더 클 수 있다. 일 실시예에서, 모바일 커뮤니케이션 장치 상의 소프트웨어는 데이터 객체가 다운로드된 후이지만 실행되기 전에 데이터 객체를 분석한다. 예를 들어, 장치 상에 반-멀웨어는 새로운 파일의 다운로드 디렉토리를 감시할 수 있거나 또는 생성되고, 기록되고, 및 폐쇄되는 파일을 단순히 대기할 수 있다. 다운로드가 완성한다면, 소프트웨어는 새로운 파일의 검색을 초기화할 수 있음으로써 상기 파일이 일단 개방되면, 시스템은 이미 그것을 검색하고 앞선 평가를 재현할 수 있다.
멀웨어-대비 시스템이 데이터 객체를 평가하는 중에 사용자 요청된 운용 또는 시스템 운용을 차단한다면, 특히 평가가 중요한 잠복을 가질 수 있는 네트워크 연결에 의존한다면, 사용자에게 평가가 진행 중이라는 지칭을 주는 것이 바람직할 수 있다. 일 실시예에서, 모바일 커뮤니케이션 장치(101) 상의 멀웨어-대비 시스템은 시스템이 데이터 객체를 검색하고 사용자 요청된 운용 차단할 때 데이터 객체가 검색되고 있다는 것을 지칭하는 사용자 인터페이스를 표시한다. 예를 들어, 멀웨어-대비 시스템이 어플리케이션 및 그의 모든 의존하는 라이브러리들이 어플리케이션 개시 프로세스에서 그 자체를 삽입함에 의해서 평가되어질 때까지 어플리케이션의 실행을 방지한다면, 장치의 사용자에게 인식가능한 중대한 지연이 있을 수 있다. 지연과 연관되는 불쾌감은 단순히 무반응으로 간주되는 장치 대신에 일어나는 것을 사용자에게 알림에 의해 완화될 수 있다. 사용자가 어플리케이션을 개시할 때, 장치는 멀웨어-대비 시스템이 사용자가 개시한 어플리케이션을 평가한다는 것을 지칭하는 사용자 인터페이스 관점을 표시한다. 실시예에서, 사용자 인터페이스는 장치의 사용자가 스캔을 끝내기 위해 대기하는 것을 생략하게 허용한다. 예를 들어, 장치의 데이터 객체에 대한 스캔이 서버(151)에 연결할 필요가 있고 사용자는 대기하길 원지 않는다면, 사용자는 회신할 평가를 대기함이 없이 속행할 것이다. 평가가 이어서 상기 데이터 객체가 악성이라고 회신한다면, 데이터 객체가 구동하도록 허가되는 경우일지라도, 장치는 데이터 객체를 포함하는 어떤 프로세스를 죽이고 그리고 상기 데이터 객체를 삭제하는 것과 같은, 치료 작용를 초기화할 수 있다.
사용자는 평가되는 어플리케이션을 갖는 것에 관심이 있을 수 있지만, 서버(151)로부터 응답을 대기하길 바라진 않는다. 사용자는 분석 결과를 대기하는 동안에 완전한 분석을 선행하도록 선택할 수 있고 어플리케이션을 사용할 수 있다. 그러한 상황에서, 서버(151) 또는 사용자의 모바일 커뮤니케이션 장치(101)가 형식적 분석에 앞서서 일시적인 신뢰성 평가를 제공할 수 있다면 바람직할 것이다. 보고는 인터페이스 요소, 주의, 경고, 위험 순위, 등의 형태일 수 있다. 실시예에서, 모바일 커뮤니케이션 장치(101)는 어플리케이션이 일시적으로 신뢰적인지 여부를 결정하기 위해 로컬 분석을 구동할 수 있다. 멀웨어-대비 시스템이 언제 서버로부터 평가를 대기하는지를 지칭하는 사용자 인터페이스 상에 데이터 객체에 대한 정보를 도시하는 것이 바람직할 수 있고, 그럼으로써 사용자는 예기치 않게 높은 위험의 아이템을 지나치지 않게 한다. 실시예에서, 대기 중인 사용자 인터페이스는 서버(151)로부터 평가를 대기하는 중에 로컬 분석 결과를 도시한다. 예를 들어, 사용자 인터페이스는 데이터 객체의 역량 또는 데이터 객체에 대한 위험 지수를 도시할 수 있다. 일 실시예에서, 로컬 분석이 데이터 객체가 낮은 위험이라고 결정한다면, 장치는 단지 사용자에게 서버(151)로부터 평가 대기를 생략하게 허가한다. 예를 들어, 위험 지수는 데이터 객체가 얼마나 민감한 기능성에 접근하는지를 분석함으로써 계산될 수 있다. 사용자의 접촉 리스트 및 브라우저 히스토리에 접근하는 데이터 객체는 어떤 민감한 기능성에도 접근하지 않는 데이터 객체보다 더 위험성이 있는 것으로 간주될 수 있다.
일 실시예에서, 장치(101) 상의 멀웨어-대비 시스템이 스캔의 문맥에 기초하여 결론에 도달하기 전에 서버(151)로부터 응답을 대기해야 하는지 여부를 결정한다. 예를 들어, 시스템 시작 동안에 또는 활동적인 네크워크 연결이 전혀 없을때 발생하는 스캔은 서버로부터 응답을 대기하는 것을 차단하면 안된다. 네크워크 연결이 있는지 여부를 결정하기 위해서, 멀웨어-대비 시스템은 운용 시스템에 의해 제공되는 네크워크 인터페이스 상태 정보에 문의하고 그리고 서버(151)로의 요청 시간이 다 되었는지 여부와 같은 다양한 방식에 의존할 수 있다. 멀웨어-대비 시스템이 시스템 요청을 가로채는 경우에는, 데이터 객체를 실행하고자 하는 시스템의 결과로서 발생하는 스캔은 서버(151)로부터 응답을 대기하는 동안에 차단해야 하고 한편 데이터 객체에 대한 정보를 얻는 어플리케이션으로부터 도출하는 검색은 응답을 대기하는 동안에 차단하면 안된다. 실시예에서, 데이터 객체 평가에 대한 요청이 완성될 수 없다면, 추후에 반복된다.
일 실시예에서, 정확한 평가가 추가 분석 없이 생산될 수 있다면 서버 또는 로컬 분석의 일부를 멀웨어-대비 시스템은 생략한다. 예를 들어, 로컬 분석이 데이터 객체가 위험하지 않다는 것으로 결정한다면, 상기 장치는 서버(151)로부터 분석을 요청하지 않을 수 있다. 스캔되는 데이터 객체가 장치 상의 로컬 분석 성분에 의해 결정되는 경우에 최소한의 위험도를 갖는가면 장치는 단지 서버로부터 분석을 요청할 수 있다. 일 실시예에서, 추가 결과를 대기하는 것을 생략할지 여부에 대한 결정은 결과 및 어느 시스템이 상기 결과를 회신할지 모두에 의해 결정된다. 서버(151)로부터 결과를 수신하기 전에 로컬 분석으로부터의 "불량" 결과는 데이터 객체를 악성으로 다루기에 충분할 수 있다; 그러나, 로컬 분석으로부터의 "양호" 결과는 최종적인 처분을 결정하기 전에 데이터 객체가 양호한 것을 확인하기 위해서 여전히 상기 시스템에 서버(151)로부터 대시하도록 요청할 수 있다.
일 실시예에서, 다수의 분석 시스템이 상이한 결과를 생산한다면, 장치 상의 멀웨어-대비 시스템은 데이터 객체의 최종적인 처분에 관한 결정을 하기 위해서 시스템의 결과를 분석하고, 상기 결정은 어떤 결과가 생산되었는지 및 어느 시스템이 각 결과를 생산했는지 모두를 고려한다. 예를 들어, 멀웨어-대비 시스템은 단일의 바람직한 결과가 데이터 객체를 바람직하지 않은 것으로 표시하기에 충분한지를 결정할 수 있다. 또다른 실시예에서, 서버(151)는 권한적인 것으로 다루어질 수 있고 또는 서버(151)는 그 평가의 확신 수준을 전달할 수 있음으로써 장치(101)는 평가를 권한 있는 것으로 다룰지 여부를 결정할 수 있다. 또다른 실시예에서, 서버(151)로부터 공지된 불량 결과는 권한적일 수 있고 서버로부터 공지된 양호 결과는 장치(101) 상의 로컬 분석 시스템으로부터 공지된 불량 결과에 의해 무시될 수 있다.
일 실시예에서, 서버(151)는 장치 상에 감지되고 그리고 장치 상에 여전히 활동적인 멀웨어 리스트 또는 다른 바람직하지 않은 어플리케이션을 저장한다. 리스트를 밀집되도록 하기 위해서, 모바일 커뮤니케이션 장치(101)는 바람직하지 않은 어플리케이션을 마주하는 언제든지, 바람직하지 않은 어플리케이션이 제거되는 언제든지, 및 바람직하지 않은 어플리케이션이 무시되는 언제든지 등을 포함하여, 서버(151)로 이벤트를 송신한다. 이벤트는 데이터 객체에 대한 식별 정보를 포함함으로써 서버(151)는 이벤트를 공지된 데이터 객체와 연관시킨다. 예를 들어, 사용자는 멀웨어를 무시하고자 선택할 수 있기 때문에, 악성 사용자가 누군가의 폰 상에 멀웨어를 설치하고 멀웨어를 무시하기 위하여 폰 상에 반-멀웨어를 구성하는 상황을 회피하기 위해서 사용자가 무시되는 멀웨어의 리스트을 볼 수 있는 것이 중요하다. 상기 시스템이 자동적으로 그를 제거하는 것으로부터 방지한다. 이러한 환경에서, 전화기의 합법적인 사용자는 멀웨어의 조각이 그의 또는 그녀의 장치 상에 활동적이라는 것을 진술할 수 있다. 일 실시예에서, 서버(151)는 장치(101)가 현재 활동적인 멀웨어를 갖는지 여부를 지칭하는 데이터를 갖고 있으므로, 주어진 장치에 대한 서버(151)에 질문하는 네트워크 접근은 네트워크 접근 제어 시스템에 의해 그 멀웨어 상태에 의존하는 장치에 허가되거나 부인될 수 있다.
개시하는 실시예에서, 서버 측 또는 "클라우드" 분석은 본 발명에서 전체로 참고되는, 미국 특허출원번호 12/255,621에 설명된 3개의 성분 시스템의 일 버전을 사용하여 수행될 수 있다. 3개의 성분 시스템의 일 실시예는 도 9에 기술되고 그리고 안전한 또는 "공지된 양호"(또한 "화이트리스트" 상에 포함되어지거나 또는 그 일부를 형성하는 것으로 본 명세서 언급될 수 있는)인 데이터를 인식하도록 사용될 수 있는 제 1 성분(903)을 포함한다. 제 2 성분(905)은 악성의, 쓰레기 장치 리소스, 또는 "공지된 불량"(또한 "블랙리스트" 상에 포함되어지거나 또는 그 일부를 형성하는 것으로 본 명세서 언급될 수 있는)인 데이터를 인식하도록 사용될 수 있다. 제 3 성분(907)은 공지된 양호 또는 공지된 불량도 아닌 즉, "미상" 데이터를 평가하도록 사용될 수 있는 결정 성분이다. 일 실시예에서, 공지된 양호 성분(903)과 공지된 불량 성분(905)은 모바일 커뮤니케이션 장치(101) 상에 상존할 수 있고, 결정 성분(907)은 서버(151) 상에 모두 상존할 수 있다. 일 실시예에서, 공지된 양호 성분(903), 공지된 불량 성분(905) 및 결정 성분(907)은 모두 서버(151) 상에 모두 상존할 수 있다. 일 실시예에서, 공지된 양호 성분(903)의 일부, 공지된 불량 성분(905) 및/또는 결정 성분(907)은 모두 모바일 커뮤니케이션 장치(101) 상에 모두 상존할 수 있다. 일 실시예에서, 공지된 양호 성분(903)의 일부, 공지된 불량 성분(905) 및/또는 결정 성분(907)은 모두 서버(151) 상에 모두 상존할 수 있다. 일 실시예에서, 결정 성분(907)이 모바일 커뮤니케이션 장치(101) 상에 상존하는 동안에 공지된 양호 성분(903)의 일부, 공지된 불량 성분(905)은 서버(151) 상에 모두 상존할 수 있다.
예를 들어, 데이터 저장장치(111)는 서버(151)에 의해 접근 가능하고 연속적으로 업데이트되는 멀웨어 정의를 포함할 수 있다. 모바일 커뮤니케이션 장치(101)는 분석을 위해 서버(151)에 용의자 데이터 객체에 대한, 해시 식별자와 같은, 어플리케이션 데이터를 송신하도록 구성될 수 있다. 서버(151)는 공지된 양호 성분(903), 공지된 불량 성분(905) 및 결정 성분(907)을 포함하거나 또는 상기 성분들은 2개 이상의 서버를 가로질러 분배될 수 있다. 하나 또는 그보다 많은 서버는 그에 의해 용의자 데이터 객체가 인식가능할 정도로 안전한 데이터 객체인지 여부를 결정하기 위해서 어플리케이션 데이터를 사용할 수 있다. 용의자 데이터 객체가 인식가능할 정도로 안전하다면, 하나 또는 그보다 많은 서버는 모바일 커뮤니케이션 장치에 경고하거나 또는 장치에 데이터 객체를 허가하고 처리할 수 있다는 것을 지칭할 수 있다. 하나 또는 그보다 많은 서버는 용의자 데이터 객체가 인식가능할 정도로 악성인지 여부를 결정하기 위해서 어플리케이션 데이터를 사용할 수 있다. 용의자 데이터 객체가 인식가능할 정도로 악성이면, 하나 또는 그보다 많은 서버는 모바일 커뮤니케이션 장치에 경고하거나 또는 장치에 데이터 객체를 거절하고 추가로 처리하지 않을 것을 지칭할 수 있다. 공지된 양호 성분 및 공지된 불량 성분은 공지된 양호 및 공지된 불량 데이터 객체를 인식하는 다양한 방법을 가질 수 있다. 양호 또는 불량 데이터 객체를 인식가능하게 식별하기 위해 공지된 양호 및/또는 공지된 불량 성분에 의해 사용되는 어느 다른 정보, 데이터, 및 로직은, 각각, "서명" 또는 "정의"로 불릴 수 있다(하기에 추가로 설명됨).
공지된 양호 및 공지된 불량 성분이 결정적이 아닌 경우에는, 하나 또는 그보다 많은 서버는 데이터 객체의 처분과 같은 결정에 도달하기 위해서 추가 분석을 수행할 수 있다. 일 실시예에서, 서버(151)는 데이터 객체에 대한 어플리케이션 데이터를 분석하고 데이터 객체가 바람직하지 않은지 여부에 관해 결정하기 위한 하나 또는 그보다 많은 분석 시스템을 사용하는 결정 성분을 포함한다. 일 실시예에서, 추가 분석을 수행하기 위해 충분한 정보가 없다면, 하나 또는 그보다 많은 서버는 모바일 커뮤니케이션 장치가 분석을 위해 서버에 추가 어플리케이션 데이터를 송신하는 것을 요청할 수 있다. 예를 들어, 장치는 분석을 위해 서버에 데이터 객체에 대한 암호 사명자 정보, 해시 식별자, 및 패키지명을 초기에 송신할 수 있다. 공지된 양호 성분 및 공지된 불량 성분이 공지된 양호 및 공지된 불량으로 데이터 객체를 식별하는데 실패한다면, 데이터 객체 자체가 분석될 수 있게 하기 위해서 장치가 서버에 전체 데이터 객체를 송신하는 것을 서버가 요청할 수 있다. 추가 어플리케이션 데이터를 수신하는 경우에, 장치가 데이터 객체를 허가할지 또는 거절할지 여부에 대한 처분에 도달하기 위한 추가 분석은 결정 성분(907) 또는 수동으로 수행될 수 있다. 일 실시예에서, 서버는 주어진 데이터 객체가 수동 분석을 필요로 하는지 여부를 저장함으로써 분석팀은 어떤 데이터 객체가 분석되어져야 할 필요가 있는지를 쉽게 결정할 수 있다.
데이터 객체에 대한 평가는 인간 분석에 의존할 수 있기 때문에, 서버(151)는 추가로 연구를 필요로 하는 용의자 데이터 객체의 리스트를 생산 및 저장하기 위해 분석 시스템을 사용할 수 있다. 일 실시예에서, 서버(151) 상에 분석 시스템으부터 몇몇 결과는 모바일 커뮤니케이션 장치(101)으로 전달되는 평가를 생산하고 그리고 다른 결과는 인간 분석을 필요로 하는 데이터 객체를 식별한다. 예를 들어, 서버(151)가 악성 어플리케이션을 식별하기 위해서 일련의 체험을 이용한다면, 몇몇 체험은 잘 테스트될 수 있고 악성 행동을 정확히 식별하는데에 받아들일 만한 정확성을 제공할 수 있는 한편 또다른 체험은 실험적이고, 인간 분석에 결과가 받아들일 만한 것인지를 결정하도록 요청한다.
이하는 식별되는 각각의 성분(component)을 보다 상세히 설명한다. 모바일 커뮤니케이션 장치를 위한 공지된 양호 어플리케이션의 총 개수가 식별될 수 있기 때문에, 데이터베이스, 논리, 또는 양호한 데이터 객체를 위한 정의를 포함하는 다른 데이터 저장장치(예를 들어, 해시 식별자(hash identifier)와 같은 어플리케이션 데이터에 커플링된 공지된 양호 성분(known good component)(903)의 사용은 거짓-양성의 바람직하지 않은 어플리케이션 감지를 매우 감소시키고 컴퓨터적으로 값비싼 분석을 수행할 필요 또는 분석용 서버에 접속할 필요를 감소시킴을 당업자는 알 것이다. 공지된 양호 성분(903)의 사용은 특히 실행가능 파일(executable) 소프트웨어 코드에 효과적일 수 있음을 알 것이다. 주어진 어플리케이션에서 실행가능 파일 소프트웨어 코드는 상이한 모바일 커뮤니케이션 장치 사이에서 거의 변하지 않으며, 따라서 어플리케이션 데이터의 평가를 위한 공지된 양호 어플리케이션 데이터 또는 논리의 데이터베이스 생성은 안전하거나 또는 신뢰적인 데이터를 인지하기 위한 효과적 방법일 수 있다. 이러한 데이터베이스는 모바일 커뮤니케이션 장치에서 가용한 리소스(resource)에 따라 크기가 다양할 수 있다. 대안적으로, 공지된 양호 성분 및 공지된 불량 성분(known bad component)과 같이 개시하는 양상들은 도 1의 데이터 저장장치(111)에 커플링된 서버(151)와 같은 양호 또는 불량 데이터 객체를 위한 어플리케이션 데이터의 보다 큰 라이브러리를 구비한 원격 서버에 대해 접근할 수 있다.
개시하는 실시예에서, 공지된 불량 성분(905)은 메모리에 많은 양을 차지하지 않으면서 모바일 커뮤니케이션 장치에 저장될 수 있는 공지된 불량 데이터 객체를 위한 정의를 포함한 다른 데이터 저장장치, 논리 또는 데이터베이스에 접근할 수 있다. 예를 들어, 바이러스 또는 다른 멀웨어(malware) 또는 스파이웨어(spyware) 정의는 데이터베이스 또는 다른 메모리 캐쉬에 저장되는 해시 식별자, 패키지명(package name), 암호화 서명(cryptographic signer), 바이트 시퀀스(byte sequence) 및 바이트 패턴(byte pattern)과 같은 어플리케이션 데이터를 포함할 수 있다. 달리 표현하면, 모바일 커뮤니케이션 장치(101)에 저장되는 공지된 양호 데이터베이스에 덧붙여진 불량 데이터베이스가 있을 수 있다. 추가적으로 또는 대안적으로, 공지된 불량 성분(905)은 다른 멀웨어 코드에 알려진 특징을 사용하는 멀웨어로 식별될 수 있다. 네트워크 데이터 또는 데이터 파일에 적용되면, 공지된 불량 성분(905)은 보안 위협을 나타내는 파일 형식 또는 프로토콜 데이터 유닛의 다른 특징 또는 패턴을 포함하는 데이터베이스에 접근할 수 있다. 또한, 공지된 불량 성분(905)은 예를 들어, 취약성에 노출, 배터리 수명 감소, 사적 또는 비승인 정보를 제3자에게 전달, 또는 불필요한 장치 리소스 사용과 같은 모바일 커뮤니케이션 장치에 바람직하지 않은 영향을 주는 데이터를 식별할 수 있다. 공지된 양호 성분(903) 및 데이터베이스와 유사하게 "불량"으로 식별된 어떠한 데이터도 모바일 커뮤니케이션 장치에 의한 처리로부터 삭제되거나, 격리되거나, 또는 제거될 수 있다. 공지된 불량 데이터 객체가 삭제되면, 개시하는 실시예는 경고 또는 다른 메시지를 디스플레이할 수 있으며, 이는 본 발명에서 전체로 참고되며 함께 출원중인 미국 특허출원 제12/255,635호의 "SECURITY STATUS AND INFORMATION DISPLAY SYSTEM(보안 상태 및 정보 디스플레이 시스템"에 개시된 것과 유사하다.
결정 성분(decision component)(907)은 공지된 양호인지 또는 공지된 불량인지 특징화될 수 없는 데이터를 평가하도록 사용될 수 있다. 모바일 커뮤니케이션 장치(101)에서 수신되는 데이터의 대부분은 이러한 카테고리 내에 떨어질 수 있으므로, 이러한 성분은 서버(151)에 존재할 수 있다. 이러한 성분은 데이터 객체를 위한 평가를 제공하는 다양한 방법을 사용할 수 있으며, 여기에 개시된 분석 시스템 중 어느 하나를 사용하는 것을 포함할 수 있다. 예를 들어, 결정 성분(907)은 수신한 데이터가 의도된 목표로 통과할 수 있는지 또는 장치에 닥치는 손상을 방지하도록 거절될 수 있는지 결정하도록 정적 분석, 동적 분석, 분배 분석(distribution analysis) 또는 다른 분석 방법을 적용할 수 있다. 이러한 분석의 예시는 아래에서 다룬다.
아래의 예시는, 하나 또는 그보다 많은 서버가 미국 특허출원 제 12/255,621호에 개시된 방법을 어떻게 대체하거나 또는 보강하도록 사용될 수 있는지를 설명한다.
공지된 양호 성분, 공지된 불량 성분 및 결정 성분을 포함하는 다수의 시스템이 가능하다. 분석되는 데이터의 특정 형태 및 방지되어야 하는 보안 위협의 형태에 따라, 각각의 성분의 결과에 적용되는 실행가능 파일 및 논리의 상이한 순서가 채택될 수 있다. 일 실시예에서, 데이터가 공지된 양호 성분(903)으로 결정되지 않으면(블록 805), 처리(813)가 거절될 것이다. 공지된 양호 성분(903)이 양호한 것으로 결정한 데이터는(블록 805) 여전히 공지된 불량 성분(905)에 의해 분석된다(블록 807). 공지된 불량 성분(905)이 데이터가 불량한 것으로 결정하면(블록 807), 처리(813)가 거절되고 데이터는 결정 성분(907)에서 분석될 것이다. 일 실시예에서, 데이터가 공지된 양호 성분(903)에 의해 양호한 것으로 결정되지 않으면, 공지된 불량 성분(905)이 이를 분석한다. 공지된 양호 성분이 데이터가 양호한 것으로 결정하면 이는 허용된다. 공지된 불량 성분(905)이 데이터가 불량한 것으로 결정하면 처리(813)가 거절될 것이다. 공지된 불량 성분(905)이 데이터가 불량한 것으로 결정하지 않으면, 데이터는 결정 성분(907)에 의해 결정될 수 있어서 데이터 평가에 이른다.
모바일 커뮤니케이션 장치 상에 나타나는 데이터 파일 또는 네트워크 데이터의 예시적인 분석이 도 8에 도시된다. 도 8에 도시된 바와 같이, 블록(801)은 모바일 커뮤니케이션 장치에 송신하거나 이로부터 수신하는 데이터 수집에 관련될 수 있다. 데이터는 그 프로토콜을 식별하고 상태를 추적하도록 분석될 것이다(블록803). 블록 805에서 모바일 커뮤니케이션 장치에 존재하는 공지된 양호 성분(903)은 공지된 양호 특징을 위해 수집된 데이터를 평가할 수 있다. 공지된 양호 특징은 앞서 설명되거나 미국특허출원 제 12/255,621호에 개시된 특징을 포함할 수 있다. 데이터가 충분하게 공지된 양호 특징을 포함한다면, 처리, 실행 또는 다른 작업을 위해 의도된 목표에 진행되도록 처리가 허용될 것이다(블록 811). 대안적으로, 데이터는 모바일 커뮤니케이션 장치 상에 존재하는 공지된 불량 성분(905)에 의해 더 분석될 수 있어서 데이터가 온전하게 안전한지를 확인한다(블록 807). 공지된 불량 성분(905)이 데이터가 온전하게 안전한지를 결정하면, 데이터는 의도된 목표에 진행되도록 허용될 것이다(블록 811). 결정 성분(907)은 데이터가 진행(블록 811)되기 이전에 최종 체크(블록 809)을 제공하도록 사용될 수도 있다.
데이터 객체의 분석은 어떠한 시간에도 수행될 수 있다. 예를 들어, 데이터 객체는, 데이터가 어플리케이션인 경우, 접근 또는 다운로드에 앞서 평가될 수 있으며, 또는 다운로드 이후이되 설치 이전에, 또는 설치 이후이되 데이터 객체의 새로운 버전의 설치 이전에, 또는 데이터 객체의 새로운 버전의 설치 이후에도 평가될 수 있다. 일 실시예에서, 장치에 아직 다운로드되지 않았던 데이터 객체는 데이터 객체에 대한 식별 정보를 이용하여 평가될 수 있다. 예를 들어, 모바일 커뮤니케이션 장치에서 접근 가능한 어플리케이션 마켓이 어플리케이션의 다운로드를 가용하게 하고 어플리케이션 컨텐츠의 해시 또는 어플리케이션의 패키지명과 같은 데이터 객체에 대한 식별 정보를 제공하면, 모바일 커뮤니케이션 장치의 소프트웨어는 여기에 개시된 시스템 중 어느 하나를 사용하여 로컬로 식별 정보를 평가함으로써 또는 식별 정보를 서버(151)에 전달하고 서버로부터 평가를 수신함으로써 식별 정보를 이용하여 어플리케이션의 평가를 결정할 수 있다. 이러한 방법으로, 모바일 커뮤니케이션 장치 상의 소프트웨어는 어플리케이션이 바람직한지 아닌지를 사용자가 이를 다운로드하기 이전에 평가할 수 있다.
분석 동안 언제라도, 공지된 양호 성분(903), 공지된 불량 성분(905) 또는 결정 성분(907)(아래에서 상술함)이 데이터가 양호하지 않거나 또는 보안 위협, 데이터 불일치 등을 포함함을 결정한다면, 블록 813에서 데이터가 막히거나, 거절되거나, 삭제되거나, 또는 격리될 것이다. 개시하는 실시예에서, 신호 이벤트 또는 보안 이벤트 정보 로그는 오염된 데이터를 만났다는 기록으로 업데이트될 것이다.
모바일 커뮤니케이션 장치 상의 라이브러리, 어플리케이션 및/또는 프로그램과 같은 실행가능 파일의 분석은 도 9에서 도시되는 바와 같이 진행될 수 있다. 블록(901)에서 실행가능 파일은 실행가능 파일에 접근하려는 시도의 결과로서 양호한지 불량한지 여부를 구분할 필요를 결정하거나, 실행가능 파일을 설치하거나 또는 실행가능 파일이 다운로드되거나 모바일 장치에 전달된다. 실행가능 파일은 모바일 커뮤니케이션 장치 상에 존재하는 공지된 양호 성분(903)에 의하여 평가되기 전에 해시 식별자, 암호화 서명, 패키지명, 또는 다른 특징과 같은 추가적인 어플리케이션 데이터를 추출하도록 처리되거나 또는 처리되지 않을 수 있다(블록 903). 이러한 평가는 실행가능 파일의 해시 식별자 또는 다른 특징을 공지된 양호 특징의 데이터베이스에 대하여 비교하고, 충분하게 공지된 양호 특징이거나 또는 앞서 설명되거나 미국 특허출원 제 12/255,621호에서 개시된 기준 중 어느 하나를 갖는지 여부를 식별하는 단계를 포함한다.
실행가능 파일이 공지된 양호로 인지되면, 블록 911에서 실행가능 파일이 그 코드를 실행하거나 또는 처리나 다른 작업을 위해 의도된 목표로 진행된다. 공지된 양호 성분(903)이 실행가능 파일의 데이터를 허용하는데 실패하면, 모바일 커뮤니케이션 장치 상에 존재하는 공지된 불량 성분(905)은 그 분석을 수행할 수 있다(블록 905). 공지된 불량 성분(905)은 실행가능 파일이 악성인 것을 확인하면, 실행가능 파일은 격리되거나, 거부되거나 또는 삭제될 수 있으며, 이벤트는 로그기록될 수 있다(블록 909). 공지된 불량 성분(905)이 실행가능 파일을 특징화할 수 없으면, 결정 성분(905)은 후술할 방법으로 분석을 수행한다(블록 907). 결정 성분(907)이 궁극적으로 실행가능 파일이 안전하다고 결정하면, 실행가능 파일이 허용된다(블록 911). 결정 성분(907)이 궁극적으로 실행가능 파일이 안전하지 않거나 불확실하다고 결정하면, 실행가능 파일은 격리될 수 있다(블록 909). 실행가능 파일이 모바일 커뮤니케이션 장치에 심각한 손상을 야기할 수 있는 코드를 포함할 수 있음을 이해할 것이며, 실행가능 파일 진행이 허용되기 전에 보다 엄격한 분석이 필요할 것이다.
모바일 커뮤니케이션 장치에 의하여 접근되는 개연성이 높은 이러한 어플리케이션에 대하여 오직 정의 정보만을 저장함으로써, 공지된 양호 성분(903) 및 공지된 불량 성분(905)은 존재하는 모바일 커뮤니케이션 장치 상에서 가볍게 유지될 수 있음을 이해할 것이다. 전술한 바와 같이, 이러한 정보는, 예를 들어 장치 데이터, 모바일 커뮤니케이션 장치에 먼저 설치된 어플리케이션 및 모바일 커뮤니케이션 장치가 사용되는 방법(예를 들어, 사무 관련인지 또는 엔터테인먼트인지, 공공 네트워크 접근인지 또는 사설 네트워크 접근인지 등)에 의하여 결정될 수 있다. 각각의 모바일 커뮤니케이션 장치는 상이한 정의 정보를 저장할 수 있으며, 개시하는 이러한 데이터 분할(granularity)을 고려한다.
전술한 기재 및 사상과 같이, 개시하는 실시예는 공지된 양호 성분(903)과 공지된 불량 성분(905)이 데이터가 안전한지 여부를 결정할 수 없는 이벤트에서 데이터의 서버-측 분석을 지칭한다. 결정 성분(907)은 모바일 커뮤니케이션 장치와 네트워크(121)을 따라 통신하는 하나 또는 그보다 많은 서버(151)에, 즉 "클라우드에(in the cloud)" 위치한다. 결정 성분은 여기에서 개시되는 분석 시스템과 같은 하나 또는 그보다 많은 분석 시스템에 의할 수 있다. 결정 성분(907)이 모바일 커뮤니케이션 장치보다 강력한 컴퓨팅 리소스에 존재하므로, 데이터가 장치(101)를 위해 불량 또는 양호한 것으로 고려되어야 하는지를 결정하는 보다 강건한 분석을 제공할 수 있다. 더욱이, 서버(151)에서 이루어지는 분석은 서버에 의해 수집되는 데이터의 이점을 가질 수 있어서 모바일 커뮤니케이션 장치(101)에서 가용한 데이터에만 의존하지 않는 평가를 제공한다. 예를 들어 장치에 의해 보고되는 거동 데이터가 설치된 장치 상에서 우선순위 높은 SMS 메시지를 전달하거나 우선순위 높은 전화번호를 다이얼링한다면, 서버(151) 상의 결정 성분(907)이 데이터 객체가 악성인 것으로 결정할 수 있다.
일 실시예에서, 결정 성분(907)은 하나 또는 그보다 많은 형식의 내부 분석 시스템을 사용하며, 이는 데이터 객체가 양호한지 불량하지 여부를 특징화한다. 결정 성분(907)은 보호받는 위협을 위한 특정 목표 없이 보안 위협을 감지하도록 디자인된다. 달리 말하면, 결정 성분(907)은 공지된 양호 성분(903) 또는 공지된 불량 성분(905)으로부터의 약점을 보상하고 이전에 식별된 적이 없었던 새로운 위협을 식별하는 추가 보안 성분으로서 운용할 수 있다.
결정 성분(907)에 의해 사용되는 다수의 분석 시스템이 있음을 알 것이며, 이는 제한되지 않는 예시로서 체험 알고리즘(heuristic algorithm), 규칙-기반 또는 비-규칙-기반 전문가 시스템, 퍼지 논리 시스템(fuzzy logic system), 신경 네트워크(neural networks) 또는 시스템이 데이터 객체를 분류할 수 있는 다른 방법을 포함한다. 전술한 바와 같이, 이러한 시스템은 결정 성분(907)에 가용한 다양한 데이터를 사용할 수 있으며, 이는 제한되지 않은 예시로서 분배 데이터, 특징 데이터, 카테고리 데이터, 신뢰성 데이터, 어플리케이션 데이터, 및 유사한 것들을 포함한다. 예를 들어, 결정 성분(907)은 어플리케이션, 라이브러리, 또는 모바일 커뮤니케이션 장치 상에서의 다른 실행가능 파일을 분석할 수 있다. 일례에서, 결정 성분(907)은 실행가능 파일의 특징을 분석하고 네트워크 연결 특징에 기초하여 보안 평가를 결정하는 신경 네트워크를 포함한다. 이러한 특징들은 실행가능 파일의 컨텐츠를 처리하는 결과로서 또는 실행가능 파일 형식에 포함된 정보에 기초하여 결정될 수 있다. 다른 예를 들어, 결정 성분(907)은 기능 요청(call), 시스템 요청, 또는 실행가능 파일이 운용 시스템을 수행하는 운용을 분석하는 전문가-시스템을 포함할 수 있다. 실행가능 파일이 악성 행동을 증가시키는 방식으로 민감한 시스템 요청에 접근한다면, 시스템은 실행가능 파일을 잠재적 멀웨어로 표기하고(flag) 작업이 이루어진다.
결정 성분(907)이 모바일 커뮤니케이션 장치(101)에 위치한다면, 결정 성분(907)을 운용하는 실행가능 파일 코드의 업데이트와 무관하게 규칙 또는 분석 파라미터를 업데이트하는 것이 바람직하다. 일 실시예에서, 결정 성분(907)은 실행가능 파일이 그 자체의 결정 성분과 무관하게 업데이트될 수 있는 일련의 규칙에 의하여 분류될 수 있는 가상 기계식-기초 결정 시스템(virtual machine-based decision system)을 포함한다. 이러한 시스템은 전체적인 결정 성분의 업데이트 없이도 때마다 바람직하지 않은 어플리케이션의 특정한 신규 분류를 감지하는 새로운 논리를 추가할 수 있다. 시스템은 실행가능 파일을 미리-진행시켜서 가상 기계적 논리가 실행가능 파일 자체를 실행시키는 대신 실행가능 파일을 상징적으로 참조할 수 있다.
일 실시예에서, 결정 성분(907)은 데이터를 평가하기 위해 제3자 정보를 고려할 수 있다. 당업자는, 모바일 커뮤니케이션 장치(101)가 Apple의 App Store, Android Market 또는 다른 소프트웨어 보관소 또는 모바일 커뮤니케이션 장치에서 다운로드되고 설치되기 위하여 가용한 어플리케이션을 제공하는 디지털 분배 플랫폼과 같이 어플리케이션 제공자를 평가할 수 있음을 이해할 것이다. 일 실시예에서, 서버(151)는 그러한 어플리케이션의 제공자에 접근하고 특정 어플리케이션에 대한 정보를 수집할 수 있다. 예를 들어, 서버(151)는 어플리케이션에 대한 사용자-생성 리뷰 또는 등급을 찾고 수집할 수 있다. 좋은 등급을 갖는 어플리케이션은 안전한 것으로 생각할 수 있으며, 심각하게 부정적인 등급을 갖는 어플리케이션은 바람직하지 않은 것으로 생각할 수 있다. 또한, 서버(151)는 데이터 객체를 위한 신뢰도 데이터를 결정할 수 있기 때문에, 부정적 리뷰의 어플리케이션을 위한 평가는, 어플리케이션이 낮은 등급을 갖는다면 바람직하지 않음을 지적할 수 있으며, 높은 신뢰도 등급과 부정적 리뷰를 갖는 어플리케이션은 멀웨어-대비 시스템에 의하여 여전히 바람직한 것으로 고려될 수 있다.
전술한 실시예들은 결정 성분(907)이 모바일 커뮤니케이션 장치에 의해 수신되고 이로부터 전달되는 데이터의 위협 수준을 충분히 평가하기 위한 다수의 분석 방법을 어떻게 사용하는지 설명하였다. 다른 실시예들이 본 발명의 범위를 벗어나지 않으면서 가능할 것이다.
모바일 커뮤니케이션 장치(101) 또는 서버(151)에서 인지 가능한 양호 데이터 객체 및 인지 가능한 불량 데이터 객체를 식별하는 것은 구분된 "공지된 양호" 및 "공지된 불량"에 의하여 수행되는 대신 단일 성분으로 수행될 수 있음을 알 것이다. 일 실시예에서, 단일의 인지 성분은 인지 가능한 양호 및 인지 가능한 불량의 식별 기능을 수행한다.
일 실시예에서, 인지 성분은 데이터 객체를 위한 평가를 결정하도록 정의를 사용한다. 인지 성분은 먼저 어떠한 정의가 데이터 객체에 상응하는지 결정하도록 데이터 객체를 위한 어플리케이션 데이터를 검사한다. 예를 들어, 인지 성분이 데이터 객체의 컨텐츠의 해시인 정의에 접근한다면, 주어진 데이터 객체의 컨텐츠의 해시와 동일한 해시를 갖는 정의가 데이터 객체에 상응하는 것으로 결정된다. 다른 예를 들어, 인지 성분이 바이트 시퀀스 서명을 포함하는 정의에 접근한다면, 데이터 객체의 컨텐츠 내에 바이트 시퀀스를 구비한 정의가 데이터 객체에 상응하는 것으로 결정된다. 각각의 정의는 평가와 관련될 수 있어서, 인지 성분은 데이터 객체를 위한 어플리케이션 데이터를 검사할 수 있으며, 상응하는 정의를 결정하고, 상응하는 정의용 평가를 결정하고, 이에 따라 데이터 객체에 상응하는 평가를 제공한다. 예를 들어, 데이터 객체용 어플리케이션 데이터는 데이터 객체의 해시, 패키지명, 고유 식별자, 또는 데이터 객체의 컨텐츠와 같은 다른 어플리케이션 데이터와 같은 식별 정보를 포함할 수 있다. 일 실시예에서, 인지 성분에 의해 사용되는 정의는 공지된 데이터 객체를 나타낸다. 이 경우, 인지 성분이 공지된 데이터 객체용 평가가 분석되는 데이터 객체에 상응하는지 여부를 결정하면, 분석되는 데이터 객체와 공지된 데이터 객체는 정확하게 동일할 필요가 없다. 예를 들어, 특정 개발자로부터의 제 1 어플리케이션이 분석(예를 들어, 수동 분석, 자동 분석)을 통하여 바람직하지 않은 것으로 결정된다면, 제 1 어플리케이션을 위한 정의는 제 1 어플리케이션의 패키지명에 매칭되도록 생성될 수 있다. 그 개발자가 제 1 어플리케이션과 동일한 패키지명을 갖는 수정 어플리케이션을 생성하고 인지 성분이 수정 어플리케이션을 마주하였다면, 정의 내의 패키지명이 수정 어플리케이션의 패키지 명에 매칭되기 때문에, 그 정의는 수정 어플리케이션에 상응하도록 결정된다. 다음, 인지 성분은 제 1 어플리케이션을 위한 바람직하지 않은 평가를 수정 어플리케이션에 적용하는 결정을 한다.
예를 들어, 인지 성분은 정의의 데이터베이스에 접근할 수 있으며, 각각의 정의는 데이터 객체의 컨텐츠의 해시를 지칭하고 정의가 상응하는 데이터 객체가 양호 또는 불량으로 고려되는지를 지칭한다. 일 실시예에서, 서버(151)에서 운용하는 하나 또는 그 이상의 인지 성분에 의해 사용되는 정의는 서버(151) 또는 데이터 저장장치(111)에 저장된다. 일 실시예에서, 공지된 양호 성분(903)과 공지된 불량 성분(905)은 각각 서버(151)에서 인지 성분을 사용하여 수행된다. 예를 들어, 공지된 양호 성분은, 인지 성분에 의하여 접근되는 모든 정의가 데이터 객체가 양호한 것으로 고려되는 평가에 상응하는 인지 성분을 포함할 수 있다. 일 실시예에서, 공지된 양호 또는 공지된 불량 성분은 각각이 데이터 객체용 어플리케이션 데이터가 공지된 양호 및 공지된 불량 어플리케이션 데이터에 대하여 매칭되는 인지 성분으로서 수행된다. 예를 들어, 공지된 양호 성분은 분석되는 데이터 객체로 매칭이 시도되는 공지된 양호 해시 식별자, 패키지명, 및 암호화 서명의 리스트를 가질 수 있다. 일 실시예에서, 데이터 객체가 공지된 양호 리스트 내의 특성을 갖는다면, 이는 안전한 것으로 고려된다. 일 실시예에서, 서버는 공지된 불량 어플리케이션 데이터를 분석되는 데이터 객체용 어플리케이션 데이터에 매칭하는 유사한 공지된 불량 시스템을 사용할 수 있다. 다른 공지된 양호 및 공지된 불량 분석 시스템이 개시하는 범위를 벗어나지 않으면서 가능하다. 일 실시예에서, 인지 성분은 다양한 평가를 제공하며 - 단순히 "양호" 또는 "불량"이 아니다. 일 실시예에서, 인지 성분이 데이터 객체가 "공지된 불량"인지 여부만을 식별하는 경우와 같이 모든 정의가 오직 단일의 상응하는 평가를 갖는다면, 인지 성분은 다수의 평가를 저장하는 대신 단일의 평가를 제공한다. 다른 변형이 개시하는 범위를 벗어나지 않으면서 가능하다.
도 12는 모바일 커뮤니케이션 장치에서 데이터 객체 평가에 사용되는 개시하는 실시예를 도시한다. 먼저, 모바일 커뮤니케이션 장치(101)는 전체 시스템 스캔의 경우 또는 데이터 객체가 실행되거나 설치되는 경우와 같이 데이터 객체를 스캔한다(1201). 인지 성분은 데이터 객체용 어플리케이션 데이터(예를 들어, 패키지명, 데이터 객체의 컨텐츠의 해시, 고유 식별자, 데이터 객체의 컨텐츠)를 평가하여, 인지 성분에 접근 가능한 정의가 데이터 객체에 상응하는지 여부를 결정한다(블록 1202). 예를 들어, 전술한 바와 같이, 상응하는 것은, 데이터 객체용 식별 정보가 정의 내에 포함된 데이터에 매칭되는 것을 포함하거나 또는 데이터 객체의 컨텐츠가 정의에 포함된 논리, 시퀀스 또는 패턴에 매칭되는 것을 포함한다. 정의가 데이터 객체에 상응하면, 인지 성분은 데이터 객체를 위한 상응하는 평가를 결정한다. 일 실시예에서, 블록 1202에서의 인지 성분은 정의 및 평가 정보를 위한 데이터 저장장치를 사용한다. 예를 들어, 전술한 바와 같이, 모바일 커뮤니케이션 장치에 저장된 정의가 미리 존재하고 있을 수도 있으며, 또는 모바일 커뮤니케이션 장치가 서버(151)로부터 정의 및 평가 정보를 수신하는 경우 존재할 수 있다. 일 실시예에서, 모바일 커뮤니케이션 장치에 저장된 정의는 캐쉬로 고려될 수 있으며, 캐쉬는 전술한 바와 같은 기능을 한다. 모바일 커뮤니케이션 장치 상의 인지 성분이 데이터 객체를 위한 평가를 결정하면(블록 1203), 그 평가는 데이터 객체를 어떻게 처리할지 결정하도록 처리된다(블록 1204). 예를 들어, 평가가 데이터 객체가 악성임을 지칭하면, 모바일 커뮤니케이션 장치는 데이터 객체가 실행되는 것을 허용하지 않거나 또는 즉각적으로 장치 사용자가 데이터 객체의 설치 제거를 하도록 한다. 모바일 커뮤니케이션 장치 상의 인지 성분이 데이터 객체를 위한 평가를 결정하지 않으면(블록 1203), 모바일 커뮤니케이션 장치(101)는 어플리케이션 데이터(예를 들어, 식별 정보, 데이터 객체의 컨텐츠)와 같은 데이터 객체 정보를 서버(151)에 전달한다(블록 1205). 서버는 데이터 객체 정보를 수신하고(블록 1206), 서버 상의 인지 성분은 데이터 객체 정보가 데이터 객체 정보를 평가하여, 인지 성분에 접근 가능한 정의가 데이터 객체에 상응하는지 여부를 결정한다(블록 1207). 정의가 데이터 객체에 상응한다면(블록 1208), 서버(151)는 데이터 객체용 평가를 결정하고 모바일 커뮤니케이션 장치에 전달한다(블록 1209). 인지 성분이 데이터 객체용 평가 또는 정의를 결정하지 않으면(블록 1208), 서버 상의 결정 성분이 데이터 객체 정보를 분석한다(블록 1210). 결정 성분이 평가를 제공하면, 서버(151)는 평가를 모바일 커뮤니케이션 장치에 전달한다(블록 1209). 어떠한 평가도 결정 성분에서 제공되지 않으면, 서버는 데이터 객체가 모바일 커뮤니케이션 장치에 미상(unknown)임을 지칭한다(블록 1209). 모바일 커뮤니케이션 장치(101)는 서버로부터 평가를 수신하고(블록 1211) 데이터 객체를 어떻게 처리하는지 결정하는 평가 정보를 처리한다(블록 1204). 일 실시예에서, 모바일 커뮤니케이션 장치(101)는 평가 정보를 처리하는 경우 서버(151)로부터 수신한 평가로부터 로컬 정의 캐쉬에 정보를 추가한다(블록 1204). 예를 들어, 장치는 데이터 객체용 성향(disposition)과 같은 정보(예를 들어, "공지된 양호", "공지된 불량", "멀웨어", "스파이웨어"), 서버(151)로부터 전달된 식별자 및 서버(151)로부터 전달되거나 장치에 의해 생성된 정의 정보를 저장할 수 있다.
일 실시예에서, 모바일 커뮤니케이션 장치는, 모바일 커뮤니케이션 장치 상의 인지 성분이 평가를 결정하지 않는 경우 서버(151)에 데이터 객체 정보를 전달하기 전에 모바일 커뮤니케이션 장치 상의 로컬 결정 성분을 이용하여 스캔되는 데이터 객체 상의 분석을 수행한다. 일 실시예에서, 로컬 결정 성분에 의한 분석과 데이터 객체 정보를 서버에 전달하는 것이 사용자의 시간 지연을 최소화하도록 평행하게 이루어진다. 당업자는 조합된 클라이언트-서버 멀웨어 대비 시스템에서 성분의 다양한 구성이 개시되는 범위를 벗어나지 않고 가능함을 인지할 것이다.
일 실시예에서, 모바일 커뮤니케이션 장치(101)는 데이터 객체에 대한 정보를 송신할 때면 언제나 자격부여 인증(authentication credential)과 같은 인증 정보 또는 세션 정보를 서버(151)에 전달하며, 이에 따라 서버는 서버 상의 특정 계정과 교환되는 정보에 연관될 수 있다.
D. 어플리케이션 평가 및 조언 시스템
앞서 개시된 부분은, 하나 또는 그보다 많은 모바일 커뮤니케이션 장치의 상이한 형식을 수집하는 것은 물론 수집된 데이터를 분석하여 데이터 객체의 평가를 제공하는 다양한 시스템 및 방법을 기술하였다. 이하에서는 서버(151)가 디스플레이, API를 통한 노출, 및 다른 다양한 목적을 위하여 평가를 어떻게 활용할 수 있는지 논의한다. 여기에서 개시되었던 소정의 평가 실시예들은 하나 또는 그보다 많은 분석 시스템(예를 들어, 특징 데이터, 분류 데이터, 신뢰도 데이터 및 분배 데이터)으로부터의 출력과 데이터 객체용 하나 또는 그보다 많은 등급(예를 들어, 안전 등급, 사생활(privacy) 등급, 배터리 등급, 성능 등급, 품질 등급)을 포함한다. 당업자는, 평가 정보가, 데이터 객체가 악성인지 아닌지 여부에 대한 전형적인 멀웨어-대비 시스템의 평가와 비교하여, 모바일 커뮤니케이션 장치 상에서 주어진 데이터 객체의 설치 효과를 이해하는데 사용될 수 있는 매우 다양한 정보를 포함한다는 것을 이해할 것이다. 추가하여, 이러한 평가 정보는 데이터 객체의 상이한 형식을 다운로드하고 설치할지 여부에 대한 결정을 안내하도록 사용될 수 있다. 이러한 정보는 자신의 모바일 커뮤니케이션 장치에 특정 어플리케이션을 설치할지 여부를 결정하는 것을 시도하는 개별적인 사용자에게 유용할 것이다. 또한, 이러한 정보는 다수의 모바일 커뮤니케이션 장치에 특정 어플리케이션을 전개할지 여부를 결정하는 것을 시도하는 IT 관리자에게도 유용할 것이다. 일 실시예에서, 사용자 또는 IT 관리자는 어플리케이션 시행 정책을 위하여 이러한 평가 정보를 이용할 수 있다.
당업자는 서버(151)에 가용한 데이터와 서버에 의해 제조된 평가가 멀웨어-대비 목적을 넘어 유용하다는 것을 이해할 것이다. 예를 들어, 평가는, 데이터 객체가 모바일 커뮤니케이션 장치의 배터리 소비를 과도하게 야기하는 것이 공지되었는지 여부, 또는 데이터 객체가 바람직하지 않은 양의 네트워크 리소스를 사용하는지 여부를 상세히 알 수 있다. 서버(151)는 일 실시예에서 평가 정보를 제조하도록 데이터를 연속적으로 수집하고, 저장하고, 그리고 분석하기 때문에, 서버(151)는 데이터 객체가 모바일 커뮤니케이션 장치에 설치되기 전에 데이터 객체가 어떻게 모바일 커뮤니케이션 장치에 영향을 줄 것인지에 대한 상세한 정보를 제공할 수 있다. 예를 들어, 서버(151)는 어플리케이션을 위한 개략적인 배터리 사용 정보 및/또는 네트워크 사용 정보를 제공할 수 있다.
사용자가 평가와 상호작용하면, 평가가 적절한 분할 수준을 나타내는 것이 바람직할 수 있어서, 사용자는 평가가 너무 넓거나 또는 너무 좁다고 느끼지 않는다. 일 실시예에서, 서버(151)는 다수의 데이터 객체를 단일 평가로 병합하고 병합된 평가를 전달한다. 예를 들어, 어플리케이션이 다수의 데이터 객체를 포함하는 경우(예를 들어, 실행가능 파일과 다수의 라이브러리), 사용자는 전체로서 어플리케이션의 평가를 보기를 원할 것이며, 그 구성 데이터 객체에 대한 다수의 평가를 보기 원하지 않을 것이다. 유사하게, 유사한 특징을 만족하는 어플리케이션의 다수의 버전이 (단일 플랫폼 또는 다수의 플랫폼에) 있다면, 어플리케이션에 대한 결정을 하는 기업 정책 관리자는 어플리케이션의 모든 버전을 아우르는 단일 평가를 보고자 할 것이다.
다수의 데이터 객체의 평가를 병합하기 위해, 데이터 객체 그룹이 어플리케이션의 특정 버전에 존재하는지 여부 또는 하나 또는 그보다 많은 데이터 객체 또는 데이터 객체 그룹이 어플리케이션의 상이한 버전에 속하는지를 결정하도록, 서버(151)는 파일 경로, 버전 넘버, 패키지명, 암호화 서명, 인스톨러 소스, 및 다른 정보와 같은 어플리케이션 데이터를 사용할 것이다. 예를 들어, 일련의 실행가능 파일이 동일한 디렉토리에서 함께 공통적으로 나타난다면, 서버(151)는 이러한 실행가능 파일들이 모두 동일한 어플리케이션에 관련된 것으로 결정할 수 있다. 다른 예를 들어, 어플리케이션 패키지가 패키지명 및 이에 임베디드된 버전 식별자를 모두 갖는다면, 서버(151)는 동일한 패키지명과 인간판독가능(human-readable) 어플리케이션 이름을 갖되 상이한 버전 식별자를 구비한 2개의 데이터 객체가 동일한 어플리케이션으로 결정할 수 있다.
평가가 플랫폼들 사이에서 일관된 폼(form)의 정보를 제공하는 것이 바람직할 수 있기에, 개시하는 실시예는, 상이한 플랫폼에서 구동되는 데이터 객체를 위한 평가에서 동일한 필드(field)의 전부 또는 일부를 포함하는 서버(151)를 지칭한다. 예를 들어, 상이한 스마트폰 운용 시스템(OS)에서 구동되는 위치 API(application program interface; 응용프로그램 인터페이스)아 상이한 기능으로 매우 상이하여도, 서버(151)는 각각의 데이터 객체가 장치의 위치에 접근하는지 여부에 대하여 플랫폼-공통사용(cross-platform)이 가능한 평가를 제공하도록, 데이터 객체의 운용 시스템 특정 분석을 수행할 수 있다. 평가가 데이터 객체를 위한 기능 리스트 폼이라면, BlackBerry의 지도 어플리케이션과 Android에서의 위치-기반 소셜 네트워크는 "장치 위치 접근" 기능을 가질 것이다. 유사하게, 배터리 사용은 상이한 플랫폼에서 상이하게 계산될 수 있지만, 서버(151)는 총 배터리 용량에 대한 비율로서 개략적인 매일 배터리 사용량에 대한 플랫폼-공통사용 평가를 제공할 것이다. 일 실시예에서, 다수의 데이터 객체를 위한 병합된 평가는 데이터 객체를 위한 분류 및 특징의 범위에 대한 정보를 포함한다. 예를 들어, 평가는 어플리케이션의 다수의 버전에서 배터리 사용에 대한 경향을 보여줄 수 있다. 구식 버전에서 많은 배터리를 사용하지만 그 배터리 사용이 최근 감소한 어플리케이션은 수용 가능할 수 있으나, 지속적으로 배터리 사용이 증가하는 어플리케이션은 수용되기 힘들 것이다.
개시하는 실시예는, 웹 인터페이스를 통하여 접근 가능한 데이터 객체의 평가를 만드는 서버(151)를 지칭한다. 예를 들어, 사용자는 자신의 모바일 장치에서 갖는 어플리케이션의 특징 및 기능에 대하여 보다 더 배우고자 할 수 있다. 서버(151)는 웹 인터페이스로서 평가가 가용한 어플리케이션의 인덱스 및 이러한 어플리케이션 각각의 평가를 노출시킬 수 있다. 어플리케이션의 용이한 위치를 가능하게 하도록, 서버(151)는 알파벳순, 특징, 분류, 및 플랫폼에 의한 것과 같이 다양한 방법으로 어플리케이션을 정리할 수 있다. 추가로, 서버(151)는 사용자가 어플리케이션의 평가에서 어플리케이션의 이름, 설명 또는 분야에 매칭되는 용어를 사용하여 어플리케이션을 검색하는 것을 허용할 수 있다(예를 들어, Android OS에서 구동되고 인터넷으로 위치를 전달하는 모든 어플리케이션). 더욱이, 공개적으로 표시되는 평가는 어플리케이션의 투명성을 도울 것이다.
예를 들어, 어플리케이션 공급자는 어플리케이션의 기능의 독립적인 제3자 평가로서 서버(151)에 의해 생성되는 평가 페이지에서 사용자를 지칭할 수 있어서, 사용자는 어플리케이션이 무엇을 하는지 입증할 수 있다. 일 실시예에서, 서버는, 사용자가 장치 데이터에 기초한 어플리케이션의 조건부 평가를 보고(예를 들어, 해당 어플리케이션이 Motorola Droid에서 사용되면 얼마나 많은 배터리가 사용되는지, 해당 어플리케이션이 AT&T 무선 환경에서 사용되면 얼마나 많은 네트워크 데이터가 사용되는지), 다른 조건부 평가와 비교하는 것(예를 들어, Motorola Droid와 HTC Hero에서 해당 어플리케이션의 배터리 사용 비교, AT&T 무선 환경과 Verizon 무선 환경에서 해당 어플리케이션의 네트워크 데이터 사용량 비교)을 허용하는 웹 인터페이스를 생성한다. 이러한 조건부 평가는 특정 환경에서 이례적인 행동을 식별하는데 도움을 줄 수 있다 - 예를 들어, 평가 페이지는 특정한 일련의 핸드셋(hansdet), 운용 시스템 버전, 또는 장치에 설치된 다른 어플리케이션이 높은 에러율 또는 어플리케이션의 특정한 평가 특성에서의 이례적인 변화를 야기함을 지칭할 수 있다. 일 실시예에서, 서버(151)는 특정 평가 값을 위한 극단적인 값을 갖는 데이터 객체를 식별한다. 예를 들어, 서버(151)는 1달에 네트워크 데이터를 1기가바이트보다 많이 사용하는 어플리케이션 또는 장치 배터리의 10% 이상을 사용하는 어플리케이션이 어떤 것인지 식별하는 웹 페이지를 생성할 수 있다.
서버(151)에 의해 생성되는 평가는 다양한 다른 제품 및 서비스를 제공하도록 사용될 수 있기 때문에, 개시하는 실시예는 API를 통하여 평가 데이터를 노출하는 서버(151)를 지칭한다. 웹 인터페이스에 의해 노출되는 모든 기능은 전술한 바와 같이 API로서 노출될 수 있어서, 다양한 제품 및 서비스가 구축될 수 있다. 예를 들어, 서버(151)는 HTTP API를 제공할 수 있어서, 요청되는 URL에서 데이터 객체의 패키지명 또는 컨텐츠 해시를 공급하는 것은 서버가 패키지명 또는 컨텐츠 헤시에 의해 식별되는 데이터 객체의 평가를 되돌리는 것을 야기할 수 있다. 다른 실시예에서, 서버(151)는 원격 웹 페이지에 포함되고 특정 데이터 객체를 위한 상호작용하는 평가 뷰를 디스플레이하는 자바스크립트(JavaScript) 파일을 생성할 수 있다.
일 실시예에서, 서버(151)는 어플리케이션이 바람직한지 아닌지에 따른 등급 또는 성향과 같은 평가 데이터가 어플리케이션 시장에서 나타나는 것을 야기할 수 있다. 어플리케이션 시장은, 예를 들어 웹사이트를 사용하거나 모바일 클라이언트 어플리케이션을 사용하거나, PC-기반 클라이언트 어플리케이션을 사용하거나, 그리고 SMS와 같은 메시징 서비스를 사용하는 것과 같이 다양한 방식으로 구동될 수 있음을 이해할 것이다. 이에 따라, 주관적으로 사용자에 의해 제공되는 리뷰 정보보다, 개시하는 실시예는 어플리케이션 또는 다른 데이터 객체를 위한 객관적인 평가 정보를 제공한다.
예를 들어, 서버(151)가 평가 데이터가 문의(query)될 수 있는 API를 제공할 수 있으며, 또는 서버(151)가 어플리케이션 시장에서 가용한 모든 어플리케이션을 주도적으로 분석하고 시장 제공자에게 평가 데이터를 전달할 수 있다. 일 실시예에서, 사용자는 예를 들어 보안, 사생활, 장치 효율성, 신뢰성, 및 이와 유사한 바람직한 특정 기준을 만족하는 어플리케이션에 대해서만 어플리케이션 시장을 찾을 수 있다. 일 실시예에서, 어플리케이션 제공자는 품질 제어 특정을 제공하도록 수집된 정보를 사용할 수 있다. 어플리케이션 제공자는, 특정한 배터리 효과 기준, 수용 가능한 고장(crash) 또는 에러에 대한 기준, 특정한 네트워크 트래픽(network traffic) 제한, 사생활 보호, 및 이와 유사한 기준을 만족하는 어플리케이션만을 특정할 수 있다. 이러한 방법에서, 개시하는 실시예는 어플리케이션 시장에서의 제공을 증진시킬 수 있으며, 이에 따라 개발자가 보다 나은 어플리케이션을 개발하도록 장려할 수 있다. 일 실시예에서, 평가 정보는 증명 시스템(certification system)으로서 사용될 수 있으며, 특정 기준을 만족하는 어플리케이션은 어플리케이션의 긍정적 평가를 나타내는 심볼, 뱃지, 또는 다른 아이콘으로 표기될 수 있다. 예를 들어, 높은 신뢰 등급을 갖는 어플리케이션 또는 최소한의 일련의 사생활 정보에만 접근하는 어플리케이션은 증명된 것으로 고려될 수 있다. 어플리케이션의 증명을 입증하도록, 증명의 표기는 사용자가 서버(151)로부터 전체 평가를 검색할 수 있는 링크 또는 다른 수단을 가질 수 있다.
일 실시예에서, 서버(151)는 디스플레이를 위해 모바일 커뮤니케이션 장치(101)에 평가 정보를 전달한다. 예를 들어, 모바일 장치는 사용자가 장치 상에 설치된 모든 어플리케이션의 평가를 탐색할 수 있는 인터페이스를 가질 수 있다. 인터페이스는 사용자가 특정 어플리케이션의 평가 정보를 보는 것을 허용하는 것은 물론, 사용자가 일련의 평가 기준을 만족하는 어플리케이션을 보는 것을 허용할 수 있다(예를 들어, 장치의 위치를 인터넷에 보내는 모든 어플리케이션, 상위 10개의 배터리 사용, 1달에 50메가바이트보다 많은 네트워크 트래픽을 사용하는 모든 어플리케이션). 일 실시예에서, 모바일 커뮤니케이션 장치(101)는 어플리케이션 시장의 일부로서의 인터페이스, 모바일 커뮤니케이션 장치 상에서 어플리케이션 다운로드 처리 또는 어플리케이션 설치 처리를 디스플레이하여, 어플리케이션의 다운로드 또는 다운로드/설치 중 어플리케이션을 브라우징하는 사용자가 어플리케이션의 평가 정보를 보게 된다. 어플리케이션의 브라우징, 다운로드 또는 설치 중에 장치는 서버(151)에 평가 정보를 전달하고 어플리케이션의 평가를 수신하며, 사용자 인터페이스 상에서 평가의 일부 또는 전부를 디스플레이한다. 예를 들어, 인터페이스는 어플리케이션의 기능 또는 어플리케이션의 특징을 디스플레이할 수 있다. 또한, 인터페이스는 사용자가 평가의 양상을 탐색하고 필요시 서버(151)로부터 추가 평가 정보를 요청할 수 있도록 상호작용할 수 있다. 다른 실시예에서, 장치는 서버(151)에 의해 결정된 바와 같이 어플리케이션의 신뢰도의 지표를 디스플레이할 수 있으며, 평가 일부로서 장치(101)에 전달할 수 있다. 신뢰도의 지표는 다양한 방법으로 디스플레이될 수 있으며, 인증서(예를 들어, "LookoutTM certified") 또는 등급(예를 들어, "A+", "B-", "C+")을 포함한다.
일부 경우, 사용자는 너무 긴 보안 설명을 읽지 않을 것이며, 따라서 이해하기 용이한 방법으로 어플리케이션에 대한 보안 정보를 디스플레이하는 것이 중요하다. 일 실시예에서, 모바일 커뮤니케이션 장치(101)는 어플리케이션을 지칭하는 그래픽 평가를 디스플레이한다. 예를 들어, 주지할만한 평가 양상이 어플리케이션의 아이콘 또는 뱃지로 디스플레이될 수 있다. 소정의 예시는, "배터리 효율", "배터리 돼지", "위치정보 접근", "스파이 기능", "소셜 네트워크", "파일 공유 앱" 등의 뱃지를 포함한다. 각각의 주지할만한 평가를 위한 뱃지는, 이해하기 용이한 뱃지 및 평가가 단지 정보 전달 또는 잠재적으로 비판할만한 무엇인지 여부를 지칭하는 색상으로 이루어지는 일러스트레이션을 포함할 수 있다. 예를 들어, 배터리에 효과적인 어플리케이션은 채워진 배터리를 도시하는 녹색 아이콘을 가질 수 있으며, 전형적으로 많은 배터리를 사용하는 어플리케이션은 비워진 배터리를 도시하는 적색 아이콘을 가질 수 있다.
서버(151)는 연속적으로 정보를 수집하고 평가를 개선하기 때문에, 평가 정보는 평가 정보를 은닉하였단 모바일 커뮤니케이션 장치 및/또는 어플리케이션 시장에서 업데이트된다. 예를 들어, 서버(151)는 새로운 평가 정보가 가용하다는 것을 나타내도록 어플리케이션 시장 또는 모바일 커뮤니케이션 장치에 주의를 전달할 수 있다. 다른 예를 들어, 서버(151)는 업데이트된 정보를 단순하게 전달하여 오래된 정보를 업데이트한다.
또한, 장치에 설치된 데이터 객체를 위한 평가를 나타내는 것에 부가하여, 웹 인터페이스로부터 장치에 설치된 데이터 객체의 평가를 보는 것이 바람직하다. 예를 들어, 사용자는 자신의 PC를 사용하여 자신의 장치에 설치된 어플리케이션의 평가를 탐색하는 것을 바랄 수 있다. 전술한 바와 같이, 일 실시예에서, 모바일 커뮤니케이션 장치(101)는 설치되었던 데이터 객체를 위한 어플리케이션 데이터를 서버(151)에 전달한다. 서버(151)는 어떠한 어플리케이션이 장치(101)에 현재 설치되었는지를 저장할 수 있기 때문에, 서버는 이러한 어플리케이션의 평가를 디스플레이하는 사용자 인터페이스를 생성할 수 있다. 예를 들어, 서버(151)는 장치에 설치된 모든 어플리케이션의 리스트, 각각의 설치된 어플리케이션의 평가를 사용자가 볼 수 있으며 어떠한 설치된 어플리케이션이 특정 평가 값에 매칭되는지(예를 들어, 자신의 위치 정보에 접근할 수 있는 모든 어플리케이션)를 볼 수 있는 웹 인터페이스를 생성하고 전달할 수 있다. 사생활 정보의 공개를 방지하도록, 서버(151)는 자신의 장치 상의 어플리케이션의 평가를 보기 위한 자격부여 인증을 사용하는 사용자 로그를 필요로 할 수 있다. 더욱이, 기업 관리자는 중앙 관리 콘솔로부터 장치 그룹을 위한 평가를 보는 것을 원할 수 있다.
일 실시예에서, 서버(151)는 사용자가 다수의 장치에 설치된 어플리케이션의 평가를 보는 것을 허용하는 웹 인터페이스를 생성한다. 예를 들어, 웹 인터페이스는 사용자가 특정 평가 필드(예를 들어, 파일 공유 어플리케이션)에 매칭하는 장치 그룹에 설치된 모든 어플리케이션을 탐색하고, 장치 그룹의 위험도 등급 평가를 보고, 전개되어 설치된 어플리케이션의 모든 기능을 보고, 그리고 어떠한 장치와 어떠한 어플리케이션이 특정 기능 및 위험도 노출을 야기하는지 결정하는 것을 허용한다. 사용자는 서버(151)를 사용하여 장치 그룹의 일련의 보안, 사생활 및 배터리 위험도 등급 전체를 생성하도록 시작할 수 있으며, 등급을 클릭하여 위험도 등급에 가장 많은 기여를 하는 어플리케이션 리스트를 볼 수 있다. 다음, 사용자는 어떠한 장치가 주어진 어플리케이션을 갖는지 볼 수 있다. 다른 예에서, 사용자는 서버(151)가 그룹에 설치된 어플리케이션의 모든 기능의 리스트를 생성하기 시작하고, 주어진 기능을 클릭하여 그 기능을 갖는 그룹에 설치된 모든 어플리케이션을 볼 수 있다. 여기에서, 사용자는 그룹의 어떠한 장치에 주어진 어플리케이션이 설치되었는지 더 탐색할 수 있다. 일 실시예에서, 장치 그룹 평가는 관리 콘솔과 같은 외부 서비스에서의 사용을 위해 API의 폼으로 서버(151)에 의해 노출된다. 예를 들어, 서버(151)는 HTTP API를 통하여 중앙화된 보안 레포팅 시스템에 장치 그룹의 위험 등급을 노출할 수 있다.
모바일 커뮤니케이션 장치에서 배터리와 네트워크 데이터는 어플리케이션이 배터리 수명에 악영항을 주고 과다한 네트워크 사용량 비용 청구를 야기할 수 있다는 점에서 종종 한계가 있다. 개시하는 실시예는, 어플리케이션의 네트워크 또는 배터리 사용을 사용자가 감지하고 남용되는 어플리케이션의 경우 사용자에게 경고하도록 평가가 사용되는 것을 지칭한다. 장치의 소프트웨어는 서버(151)로부터 어플리케이션의 배터리 및 네트워크 사용량 특성을 포함하는 평가를 수신하고 이러한 평가를 사용자에게 디스플레이한다. 전술한 바와 같이, 서버(151)로부터 평가 정보를 요청하는 장치는 어플리케이션의 어플리케이션 데이터를 포함한다. 평가는 특정 장치에 맞추어져서, 평가를 수신한 경우 장치가 장치 데이터를 전달함으로써 또는 앞서 전달된 장치 데이터로서 평가 요청에 관련된 인증 데이터를 전달함으로써 사용자가 사용할 수 있다. 예를 들어, 평가는 사용자의 전화기 모델의 배터리 수명을 5% 또는 1시간 감소시킬 수 있는 어플리케이션을 지칭할 수 있다; 여기에서 상이한 배터리 수명 특징을 갖는 상이한 모델의 전화기는, 전화기의 배터리 수명을 10% 또는 3시간 감소시키는 동일 어플리케이션의 평가를 수신할 수 있다. 평가 디스플레이는 장치 어플리케이션 시장의 일부로서 또는 어플리케이션의 설치 전, 설치 동안 또는 설치 이후 사용자 인터페이스 다이얼로그로서 이루어질 수 있다.
더욱이, 사용자가 다수의 어플리케이션을 설치한 후, 사용자가 어플리케이션의 장치 상에서의 실재 행동에 기초하여 어떠한 어플리케이션이 네트워크 사용량 또는 배터리 수명에 가장 기여하는지를 이해하는 것이 바람직하다. 일 실시예에서, 장치는 어플리케이션의 배터리에 대한 거동 데이터 및 네트워크 사용량을 수집하고 사용자가 장치의 인터페이스로부터 실재 거동 데이터를 보는 것을 허용한다. 예를 들어, 어떠한 어플리케이션이 네트워크 사용량 및 배터리 수명 감축에 기여를 하는지를 식별하도록, 인터페이스는 사용자가 특정 어플리케이션의 배터리 및 네트워크 사용량을 보는 것을 허용하고 어플리케이션을 사용하는 또한 최고의 네트워크 및 배터리 사용 어플리케이션을 보여준다. 일 실시예에서, 모바일 커뮤니케이션 장치(101)은 장치에 설치된 어플리케이션의 거동 데이터를 서버(151)에 보고하고 사용자가 서버에 의해 생성된 웹 인터페이스를 통하여 실재 거동 데이터를 보는 것을 허용한다. 당업자는, 모바일 어플리케이션의 다른 특징도 사용자에게 보여지고 모니터링될 수 있음을 이해할 것이다.
하나의 어플리케이션이 배터리 수명, 네트워크 사용량 또는 기타 제한된 리소스에 대하여 중요한 문제를 야기할 수도 있기 때문에, 어플리케이션이 바람직하지 않게 행동하면 사용자에게 주의를 주는 것이 바람직할 수 있다. 일 실시예에서, 모바일 커뮤니케이션 장치(101)는 장치에 설치된 어플리케이션의 네트워크 및 배터리 사용을 감지하고 어플리케이션이 바람직한 제한을 초과한 경우 장치의 사용자에게 주의를 준다. 예를 들어, 사용자는 얼마나 많은 데이터 어플리케이션이 전달되고 수신받아야 자신이 주의를 받을지에 대한 문턱값을 구성할 수 있다. 다른 실시예에서, 어플리케이션이 사용자의 배터리 수명 또는 전화 요금에 악영향을 주는 것을 장치가 결정하면 사용자가 주의를 받는다. 전형적으로 사용자가 플러그를 꼽기 전에 20시간 전화기를 사용하고 장치 상의 어플리케이션이 개략적으로 배터리 수명을 20시간 미만으로 감소시키는 경우, 사용자에게 배터리가 방전될 것이다. 다음, 사용자가 배터리 방전을 피할 수 있는 행동, 즉 설치를 제거하거나 많은 배터리가 어플리케이션을 사용하지 못하게 하는 행동을 위해 사용자에게 주의를 주는 것이 중요할 수 있다.
일 실시예에서, 사용자의 장치의 어플리케이션이 사용자의 데이터 플랜(data plan)을 초과하는 것을 방지하도록, 장치(101) 또는 서버(151)는 장치의 미래 데이터 사용량을 예측하고 장치의 데이터 플랜에 대한 정보를 수집한다. 장치의 데이터 플랜에 대한 정보를 수집하기 위해, 장치(101) 또는 서버(151)는 네트워크 작업자의 서버에 연결되어 요금청구 싸이클(billing cycle)이 어떠하던 요금청구 싸이클마다 데이터 재할당과 같은 데이터 플랜 정보 및 얼마나 많은 데이터가 현재 요금청구 싸이클에서 사용되었었는지를 결정하는데 도움을 준다. 네트워크 작업자의 서버와의 통신은 HTTP API 또는 SMS 메시징과 같은 다양한 방법으로 이루어질 수 있다. 장치 상의 소프트웨어가 SMS 매시징을 사용하여 사용자의 데이터 플랜 정보를 수신한다면, 사용자의 인박스(inbox) 내에서 통신이 보여지는 것을 방지하도록, 소프트웨어는 네트워크 운용자의 서버에 의해 송신되는 반응 메시지를 자동으로 소비할 수 있다. 미래 데이터 소비를 방지하도록 서버(151)는 장치에 설치된 어플리케이션의 전형적인 데이터 사용량 및 장치 상에서의 실재 데이터 사용량을 분석할 수 있다. 어플리케이션이 새롭게 설치되면 전형적인 데이터 사용량이 이용되고, 수개월 동안 장치에 있었던 어플리케이션을 위해서는 실재 데이터 사용량이 이용된다. 장치(101) 상의 어플리케이션이 요금청구 싸이클의 마지막에 할당된 장치의 데이터 플랜을 초과하는 비율로 네트워크 데이터를 사용하면, 장치의 소프트웨어는 과다한 비용청구를 지칭하는 경고를 디스플레이한다. 또한, 경고는 데이터 사용량에 가장 큰 기여를 하는 어플리케이션을 디스플레이하고 사용자에게 어플리케이션의 설치 제거 또는 재고할 것을 알려준다. 장치(101)는 (예를 들어, 이메일을 통해) 데이터 사용량을 위한 잠재성을 지칭하는 경고를 전달할 수도 있는 서버(151)에 경고를 보고할 수 있다. 장치(101) 또는 서버(151)의 소프트웨어는 장치의 데이터 할당에 상대적인 현재 예상되는 데이터 사용량을 지칭하는 디스플레이를 할 수 있어서, 사용자는 자신의 어플리케이션 사용 패턴을 적절하게 조절할 수 있다. 예를 들어, 사용자가 데이터 플랜을 초과할 것을 우려한다면, 비디오 채팅에서 사로잡히기 이전에 현재 예상되는 데이터 사용량이 무엇인지 체크할 수 있다.
장치에 설치된 어플리케이션은 장치의 위험 노출에 큰 영향을 줄 수 있기 때문에, 사용자 또는 관리자가 어떤 어플리케이션을 장치에서 또는 장치 그룹에서 설치하는 것이 바람직하다는 것을 정책으로 구성할 수 있다. 이하는, 어떠한 보호 정책이 하나 또는 그보다 많은 모바일 커뮤니케이션 장치에서 사용될 수 있는지에 대한 설명이다. 일 실시예에서, 정책은 블랙리스트와 화이트리스트를 포함한다. 블랙리스트는 모바일 커뮤니케이션 장치에서의 구동을 분명하게 거부하여야 하는 일련의 어플리케이션 또는 평가 기준이며, 화이트리스트는 모바일 커뮤니케이션 장치에서 구동을 분명하게 허용하는 일련의 어플리케이션 또는 평가 기준이다. 예를 들어, 정책은 화이트리스트 상의 어플리케이션만을 허용할 수 있거나 또는 블랙리스트 상의 어플리케이션의 허용만을 금지할 수 있다. 일 실시예에서, 분명한 어플리케이션 진입은 평가 기준 진입보다 높은 우선권을 갖는다. 예를 들어, 정책은 블랙리스트되는 특정 기능(예를 들어, 장치의 위치를 인터넷으로 전달하는 것)을 구체화할 수 있으되 화이트리스트되는 특정 어플리케이션을 구체화할 수도 있다. 이 경우, 화이트리스트 상의 분명한 어플리케이션이 블랙리스트 상의 평가 기준보다 높은 우선권을 가지므로, 인터넷으로 위치를 전달하는 모든 어플리케이션은 화이트리스트 상에서 나타나지 않는다면 막힐 것이다. 당업자는 다양한 정책 제도가 이러한 개시의 범위를 벗어나지 않고 이루어질 수 있음을 이해할 것이다.
사용자는 그들의 모바일 장치에서 원하는 어플리케이션 형태에 대한 개별적인 선호도를 갖는다. 예를 들어, 일부 사용자는 사생활 이슈에 민감할 수 있으며, 다른 이슈는 그들의 배터리 수명을 최적화하길 원할 수 있다. 사용자가 그들이 사용하거나 또는 사용하는 것을 고려하는 어플리케이션에 대한 보다 많은 이해도를 갖기 위한 어플리케이션 평가를 사용하는 것을 허용하도록, 개시하는 실시예는 모바일 커뮤니케이션 장치 상의 소프트웨어가 사용자에게 어플리케이션을 위한 평가 기준에 기초한 정책을 구성하는 것을 허용하며, 소프트웨어는 바람직하지 않은 문턱값을 초과하는 어플리케이션을 막는다. 사용자가 어플리케이션을 설치할 경우, 소프트웨어는 어플리케이션을 위한 평가를 서버(151)로부터 요청하여 서버로부터 평가를 수신한다.
예를 들어, 사용자가 위치 정보를 인터넷으로 전달하는 기능을 갖지만 어플리케이션을 설치하려 시도하지만 자신의 위치를 인터넷으로 전달하는 것을 허용하지 않는 정책을 갖는 경우, 모바일 커뮤니케이션 장치 상의 소프트웨어는 설치를 막을 것이다. 다른 예를 들어, 사용자가 사생활, 보안 및 배터리 수명 정책 문턱값을 상대적 스케일(예를 들어, 0 내지 10)로서 각각 구성할 수 있다. 사용자가 어플리케이션을 설치할 경우 장치 상의 소프트웨어는 어플리케이션의 평가를 수신하고 어플리케이션의 사생활, 보안 및 배터리 등급을 정책 문턱값과 비교하여 어플리케이션이 구성된 정책을 초과하는 경우 사용자에게 경고한다. 바람직하지 않은 어플리케이션의 설치를 막는 대신, 사용자는 단순하게 바람직하지 않음을 경고받을 수도 있다.
일 실시예에서, 사용자는 경고를 무시하고 어떻게든 어플리케이션을 받아들이도록 선택할 수 있다. 일 실시예에서, 장치는 어플리케이션이 사용자에게 바람직하지 않음을 지칭하는 사용자 인터페이스를 디스플레이한다. 예를 들어, 모바일 장치는, 어플리케이션 시장에서 다운로드 가능한 것으로 보이는 어플리케이션이 사용자의 바람직함의 기준을 만족하는지 여부에 대한 지칭을 디스플레이할 수 있다. 다른 예를 들어, 장치 상의 소프트웨어는 사용자가 바람직함의 기준을 만족하지 않는 모든 어플리케이션을 보는 것을 허용할 수 있다. 이러한 인터페이스는 사용자가 자신의 기준을 변경하고 주어진 새로운 기준에 바람직하지 않은 어플리케이션을 보기를 원하는 경우 유용할 것이다.
IT 관리자, 부모, 네트워크 작업자 또는 모바일 커뮤니케이션 장치에 책임이 있는 다른 사람들은 모든 장치에 대한 물리적인 접근 없이도 모바일 커뮤니케이션 장치에 정책을 구성하는 것을 원할 수 있다. 일 실시예에서, 서버(151)는 사용자 또는 관리자가 장치 또는 장치 그룹에 정책을 구성하는 것을 허용한다. 장치(101)가 어플리케이션을 설치하는 것을 시도한 경우, 장치는 서버(151)에 어플리케이션 평가 요청을 전달한다. 서버(151)에서 구성되는 정책에 기초하여, 평가는 어플리케이션이 허용될지 아닐지 여부에 대한 지칭을 포함하고 허용되지 않은 어플리케이션이 접근되는 것이 허용되지 않는 이유를 위한 정책 기준을 더 포함할 수 있다. 일례에서, 서버(151) 상의 정책은 웹 인터페이스에서 구성될 수 있다.
일 실시예에서, 서버(151)는 평가 기준뿐만 아니라 어플리케이션 각각에 기초하여 구성될 수 있다. 예를 들어, 관리자는 서버(151)가 소셜 네트워킹 어플리케이션과 같은 특정 카테고리의 어플리케이션 또는 파일 또는 장치로부터의 다른 민감한 데이터의 전달 기능과 같은 특정 기능을 갖는 모든 어플리케이션을 모두 막도록 사용할 수 있다. 일례로, 관리자는 화이트리스트를 생성하고 화이트리스트에 없는 어플리케이션은 모두 막음으로써 오직 특정 어플리케이션만 허용할 것을 원할 수 있다. 다른 예에서, 관리자는 블랙리스트에 있는 특정 어플리케이션은 이들은 바람직하지 않기에 이를 제외한 모든 어플리케이션을 허용할 수 있다. 정책 하에서 일련의 허용되는 또는 거부되는 어플리케이션들이 미리-연산될 수 있기에, 개시하는 실시예는 서버(151)가 일련의 정책 정의를 생성하고 정책 정의를 하나 또는 그보다 많은 모바일 커뮤니케이션 장치(101)에 전달하는 것을 지칭한다. 예를 들어, 장치 그룹이 화이트리스트에 있는 어플리케이션만을 허용하는 정책을 가질 경우, 서버(151)는 화이트리스트를 위한 식별 정보 리스트를 모바일 장치에 전달할 수 있어서, 장치는 어플리케이션을 만나는 모든 시간마다 평가를 위해 서버에 접촉할 필요가 없다.
어플리케이션 분류 또는 기능과 같은 추상적인 컨셉을 사용하는 정책을 구성할 경우, 구성 변화가 이루어졌다면 사용자 또는 관리자는 어떠한 어플리케이션이 허용되고/거부되는지 또는 특정 어플리케이션이 허용되는지/거부되는지 여부를 볼 수 있다. 일 실시예에서, 모바일 커뮤니케이션 장치(101) 또는 서버(151) 상에서의 정책 구성 사용자 인터페이스는 구성 변화의 일부로서 막히거나 또는 허용될 수 있는 어플리케이션을 보기 위한 인터페이스를 포함한다. 구성 변화 인터페이스가 모바일 커뮤니케이션 장치(101) 상에서 디스플레이된다면, 장치는 서버(151)에 데이터 요청을 전달할 수 있어서 인터페이스에 추가한다. 구성 변화가 효력이 있은 이후 허용되거나 또는 막히는 모든 어플리케이션 리스트 또는 현재 구성과 새로운 구성 사이에서 허용되거나 또는 막히는 어플리케이션의 차이가 보여지는 것이 바람직할 수 있다. 구성 변화에 의해 영향을 받는 어플리케이션의 개수가 매우 많을 것이기에, 인터페이스는 요약 정보를 디스플레이하고 사용자가 특정 어플리케이션에 대하여 구성 변화가 그 어플리케이션에 영향을 주는지 여부 및 구성 변화가 허용되거나 막히는 어플리케이션을 야기하는지 여부의 결정을 검색하는 것을 허용한다. 일 실시예에서, 구성 변화의 효과를 디스플레이하는 인터페이스는 어떠한 유명한 어플리케이션이 막히는지 여부를 지칭한다. 예를 들어, 어플리케이션 인기도는 서버(151)에 의해 결정되는 전체적인 분배 데이터에 기초하여 또는 장치 그룹에서 어플리케이션이 관리되는 보급도에 기초하여 결정된다. 일 실시예에서, 변화 결과 인터페이스는 관리되는 그룹에서의 적어도 하나의 장치에 현재 설치된 어플리케이션에 영향을 주는 변화만 디스플레이한다.
정책 시스템에 모바일 커뮤니케이션 장치의 용인되는 사용량이 간섭하는 것을 방지하도록, 개시되는 실시예는, 용인되는 일련의 어플리케이션을 유지하고 사용자 또는 IT 관리자가 용이하게 일련의 이들을 화이트리스트에 추가하는 것을 허용하는 서버(151)를 지칭하며, 화이트리스트는 용인되는 일련의 어플리케이션 변화를 자동으로 포함한다. 예를 들어, 서버(151)는 어플리케이션 카테고리에 의해 유명한 어플리케이션의 리스트 또는 유명한 전체 어플리케이션의 리스트를 유지한다. 정책 구성 인터페이스에서, 서버는 모든 유명한 어플리케이션을 포함하거나 또는 오직 특정 카테고리(예를 들어, 게임, 소셜 네트워크)에서만 유명한 어플리케이션을 포함하는 방식을 나타낸다. 일 실시예에서, 이러한 동적 리스트 정책은 블랙리스트 및 화이트리스트 상의 평가 기준 진입보다 높은 우선권을 갖지만, 분명한 어플리케이션 진입보다 낮은 우선권을 갖는다. 다른 예에서, 서버(151)는 높은 신뢰도를 구비한 일련의 어플리케이션의 리스트를 유지할 수 있다. 정책 구성 인터페이스에서, 서버는 정책의 화이트리스트에서 높은-신뢰도의 어플리케이션 모두를 포함하는 방식을 나타낸다. 높은-신뢰도 리스트가 업데이트되면, 정책 평가를 만들 때에 높은 신뢰도의 어플리케이션이 효과적으로 화이트리스트되는 것이 고려된다.
모바일 장치 전개는 이미 정책 관리 서버 또는 그 대신의 서비스를 가질 수 있기에, 서버(151)가 정책 집행을 실재로 수행하는 장치 관리 서버에 데이터를 공급하는 것이 바람직하다. 일 실시예에서, 장치 관리 서버 상의 어플리케이션 정책을 구성하도록 서버(151)가 장치 관리 서버에 접속된다. 예를 들어, 장치 관리 서버는 구성 가능한 어플리케이션 블랙리스트 및 화이트리스트를 지원할 수 있다. 사용자가 서버(151) 상에서 화이트리스트 상의 또는 특정 평가 기준에 매칭되는 어플리케이션만을 허용하도록 구성을 구성한 경우, 서버(151)는 화이트리스트되는 어플리케이션의 리스트를 생성하고, 어플리케이션 리스트를 장치 관리 서버에 일정한 형식으로 장치 관리 서버가 지원하는 프로토콜을 통하여 전달한다. 유사하게, 사용자가 서버(151) 상에서 블랙리스트를 구성한 경우, 서버는 블랙리스트되는 어플리케이션 리스트를 생성하고 블랙리스트를 집행하도록 장치 관리 서버를 구성한다. 일 실시예에서, 서버는 다수의 장치 관리 서버를 구성할 수 있다. 예를 들어, 관리는 다수 모바일 장치 운용 시스템을 지원하고 상이한 모바일 장치 관리 서버를 사용하는 경우, 관리자는 서버(151)에서 플랫폼-공통사용 정책을 구성할 수 있다(예를 들어, 모든 파일 공유 어플리케이션을 막는 것). 다음, 어떠한 평가가 정책에 매칭되고 장치 관리 서버 상에서 적절한 어플리케이션 정책을 구성하도록 서버(151)는 다수의 플랫폼에 거쳐 모든 어플리케이션을 식별한다. 각각의 장치 관리 서버는 오직 서버(151)가 지원하는 모바일 장치 플랫폼 집합만을 지원할 수 있기에, 서버(151)는 장치 관리 서버에 의해 지원되는 운용 시스템 상에서 구동하는 데이터 객체에 상응하는 장치 관리 서버에만 정책 정보를 전달할 수 있다. 예를 들어, 장치 관리 서버가 오직 Blackberry 장치만을 지원한다면, 서버(151)는 Blackberry 어플리케이션에 대한 정보를 구비한 장치 관리 서버의 블랙리스트 및/또는 화이트리스트만을 구성할 수 있다.
일 실시예에서, 정책 준수 체크는 서버(151) 또는 모바일 커뮤니케이션 장치(101) 중 어느 하나에 의하여 수행될 수 있다. 예를 들어, 서버가 준수 체크를 수행한다면, 어떠한 준수 구성도 서버(151)에 저장되어 모바일 커뮤니케이션 장치(101) 상에서 수행되는 어떠한 구성도 그 구성이 서버에 전달되는 것을 야기한다. 장치가 서버(151)로부터 어플리케이션 평가를 요청한 경우, 서버는 평가에서 어플리케이션이 정책에 의하여 허용되는지 또는 허용되지 않는지의 지칭을 포함한다. 다른 예에서, 모바일 커뮤니케이션 장치(101)가 준수 체크를 한다면, 어떠한 준수 구성도 모바일 커뮤니케이션 장치(101)에 저장되어 서버(151)에서 수행되는 어떠한 구성도 그 구성이 장치에 전달되는 것을 야기한다. 장치가 어플리케이션 평가를 수신한 경우, 이는 어플리케이션이 허용되는지 여부를 결정하는 정책 구성과 이를 비교한다.
일 실시예에서, 정책 관리는 서버-커플링된 멀웨어-대비 시스템과 통합되어, 서버(151)에 의해 제공되는 어플리케이션 평가 및 사인이 장치(101)가 정책을 어기는 데이터 객체를 막도록 한다. 예를 들어, 장치(101)가 서버(151)로부터 평가를 요청한 경우, 서버의 평가는 어플리케이션이 악성으로 고려된 경우 또는 정책을 위반하는 경우 어플리케이션이 바람직하지 않음을 지칭한다. 다른 경우에서, 제조되는 평가는 어플리케이션이 악성으로 체험되었던 이유 또는 정책-위반 이유에 대한 정보를 더 지칭할 수 있다. 다른 예에서, 서버(151)는 악성 또는 정책-위반 어플리케이션을 위해 서명을 미리-비워서 모바일 커뮤니케이션 장치(101)에 전달하며, 이에 따라 장치는 서버(151)에 접촉할 필요 없이 데이터 객체가 바람직한지 또는 바람직하지 않은지 여부를 인지할 수 있다.
장치(101)가 보호 정책을 위반한 어플리케이션을 장치 또는 서버(151) 중 어느 하나에 설치하였다면, 또는 보호 정책을 위반한 것으로 어플리케이션의 평가가 업데이트되었다면, 장치 또는 다른 시스템에 의해 치료 작용(remediation action)이 이루어지는 것이 바람직하다. 일 실시예에서, 장치용 보호 정책을 위반하여 설치된 어플리케이션을 장치가 가졌다면, 서버 또는 장치 상의 소프트웨어 치료 작용이 이루어지도록 운용시킬 수 있다. 정책 준수 여부에 따라 장치(151) 또는 서버(101)에서 장치 또는 서버 중 어느 하나가 어떠한 치료 작용이 이루어져야 하는지를 결정한다.
예를 들어, 사용자가 어플리케이션을 설치하고 서버(151)로부터 수신한 평가가 그 어플리케이션이 허용 가능하지만 소정의 측면에서는 미래에 서버가 그 어플리케이션이 허용가능하지 않는다고 결정함을 지칭한다면, 서버(151)는 장치에 장치가 취하여야 하는 치료 작용을 포함하는 업데이트된 평가를 전달한다. 다른 예를 들어, 사용자가 장치에 어플리케이션을 설치하고 장치는 서버(151)로부터 그 어플리케이션이 허용 가능하지만 장치 상의 소프트웨어가 어플리케이션이 장책을 위반하는 것을 보여주는 거동 데이터(예를 들어, 어플리케이션이 사용자의 위치를 획득하려 시도함)를 수신함을 지칭한 경우, 장치는 어플리케이션을 제거하는 것과 같은 미리-구성된 치료 작용을 취할 수 있다. 장치는 서버(151)에 이러한 거동 데이터를 전달할 수도 있으며, 정책 위반을 지칭할 수 있다. 당업자는, 정책을 준수하기 위하여 거동 데이터를 사용하는 것이, 예를 들어 어플리케이션의 취약성이 확인된 경우, 어플리케이션이 오직 몇몇 장치 집합에 바람직하지 않은 행동을 하는 경우(예를 들어, 특정 회사의 직원을 대상으로 한 타겟 공격), 또는 어플리케이션이 일정 시간 이후 바람직하지 않은 행동을 하는 경우(예를 들어, 타이봄(time bomb))와 같은 다양한 상황에서 모바일 커뮤니케이션 장치를 지킬 수 있음을 이해할 것이다.
장치가 정책을 위반한 것을 탐지하면, 다양한 치료 작용이 가능한데, 예를 들어 어떠한 위반 어플리케이션은 그들의 처리를 종료할 수 있으며, 특정 시스템 기능(예를 들어, 인터넷, 사생활 데이터)의 접근으로부터 설치 제거되거나 또는 고립될 수 있으며, 또는 특정 네트워크 접근으로부터 제한될 수 있다(예를 들어, 오직 Wi-Fi에만 접근 허용, 셀룰러 네트워크는 불가). 정보 누수를 방지하도록 규정준수를 벗어나지만, 전체 장치가 이메일 또는 VPN 서버와의 협력작용과 같은 민감한 리소스에 접근하는 것을 고립시키는 것이 바람직할 수 있다. 다른 치료 작용은 2008년 10월 21에 출원되고 여기에서 전체로서 참조되는 미국 특허출원 제 12/255,614호에 개시된 것을 포함할 수 있다.
관리자가 서버(151)를 사용하여 정책을 구성한 경우, 사용자가 서버(151)를 사용하여 정책이 적용되는 장치의 규정준수 상황을 보는 것이 바람직할 수도 있다. 일 실시예에서, 서버(151)는 모바일 커뮤니케이션 장치 그룹이 어플리케이션 정책을 준수하는지 여부 및 어떠한 어플리케이션이 장치 그룹에 설치되었는지 결정한다. 예를 들어, 모바일 커뮤니케이션 장치에 설치되었던 어플리케이션을 보고하고 서버(151)가 정책 구성을 포함한다면, 서버는 어떠한 장치가 현재 관리자에 의해 구성된 정책을 위반하는지 결정할 수 있다. 관리자가 규정준수 상황을 보는 것을 허용하도록, 서버(151)는 모든 장치가 규정준수 상황인지 아닌지 그리고 어떠한 장치가 규정준수 상황이 아니라면 얼마나 많은 장치가 그러한지에 대한 웹 인터페이스 리스트를 생성한다. 인터페이스는 관리자가 규정준수 상황이 아닌 특정 장치를 보고, 규정준수 상황이 아니게 하는 어플리케이션을 보고, 원격으로 치료 작용(예를 들어, 어플리케이션의 제거)을 시작하는 것을 허용한다.
일 실시예에서, 서버(151)는 원-클릭 치료 작용을 나타내며, 이를 통하여 관리자는 관리자가 관리하는 그룹의 모든 장치에서 원격으로 치료 작용을 시작하도록 1개의 버튼을 클릭할 수 있다. 예를 들어, 관리자가 100개의 장치를 관리하지만 그 중 10개의 장치가 정책을 위반한 어플리케이션을 갖는다면, 관리자는 웹 인터페이스 상에서 원-클릭 치료 버튼을 클릭하여 서버가 10개의 규정준수 위반 장치 각각에 지칭을 전달하여 사용자 간섭이 필요하지 않으면서 바람직하지 않은 어플리케이션을 제거한다. 치료 작용이 완료되면, 각각의 장치(101)는 서버(151)에 성공적인지 아닌지를 지칭하는 표시를 전달할 수 있다. 치료 처리 동안, 서버(151)는 관리자가 치료 상태를 볼 수 있는 인터페이스를 생성할 수 있다. 규정준수 상태를 노출하는 서버의 다른 방법은, (예를 들어, 보안 관리 콘솔의 사용을 위한) API를 노출하는 서버(151) 및 다운로드될 수 있는 보고서를 생성하는 서버(151)를 포함한다.
소정의 경우, 자신이 바람직하지 않은 어플리케이션을 설치할 경우 또는 먼저 설치된 어플리케이션이 업데이트된 평가에 기초하여 바람직하지 않은 것으로 새롭게 고려되는 경우에 사용자 또는 관리자가 주의를 받는 것이 바람직하다. 일 실시예에서, 모바일 커뮤니케이션 장치(101)는 서버(151)에 데이터 객체의 설치에 대한 정보를 전달한다. 서버(151)가 데이터 객체가 공용의 바람직하지 않은 특징 또는 사용자를 위한 특징에 기초하여 데이터 객체가 바람직하지 않은 것으로 결정한 경우, 서버는 주의를 전달한다. 예를 들어, 사용자가 바람직한 것으로 평가된 어플리케이션을 설치하였지만 미래의 소정의 경우 어플리케이션이 악성을 노출하거나 배터리 낭비와 같은 다른 바람직하지 않은 행동을 시작한다면, 서버는 어플리케이션이 바람직하지 않음을 지칭하도록 평가를 변경할 수 있다. 주의는 예를 들어, 이메일, SMS 메시지, 또는 PC나 모바일 커뮤니케이션 장치 의 웹 페이지 상에 디스플레이되는 사용자 인터페이스 다이알로그와 같은 다양한 폼을 취할 수 있다.
다수의 모바일 커뮤니케이션 장치를 관리하는 IT 관리자를 위하여, 어플리케이션이 다수의 플랫폼에서 가용하고 다수의 버전을 갖더라도, 정책은 특정 어플리케이션을 위해 구성될 수 있다. 예를 들어, IT 관리자가 상이한 운용 시스템을 구동하는 모바일 커뮤니케이션 장치 집단을 관리하는 것이 일상적이지 않은 것은 아니다. 모바일 커뮤니케이션 장치 집단은 iPhone, BlackBerry 장치, 및 Android 장치를 포함할 수 있다. 그러나, 특정 어플리케이션이 사생활 정보를 개시하는 소셜 네트워킹 어플리케이션과 같이 3개 모두의 장치 운용 시스템 상에서 바람직하지 않은 것으로 알려진 경우, IT 관리자는 플랫폼과 무관하게 어플리케이션의 모든 버전의 설치를 막을 수 있다. 그러나, 어플리케이션이 어느 하나의 플랫폼에서만 민감한 정보를 공유하고 다른 것에서는 그렇지 않다면, IT 관리자는 민감한 정보를 공유하지 않은 플랫폼에서만 어플리케이션의 설치를 허용할 수 있다. 전술한 바와 같이, IT 관리자는, 별도의 결정으로서 어플리케이션의 다수의 버전을 취급하는 정책을 유지할 필요성 대신에, 한번에 어플리케이션의 모든 버전에 대하여 결정하는 정책들을 만드는 것이 바람직할 수도 있다. 매우 자주 업데이트되는 어플리케이션이 존재하기에, 관리자가 하나의 정책 결정으로서 특정 어플리케이션의 모든 버전을 취급할 수 없다면, 바로 어플리케이션 정책을 관리하는 것은 매우 어려운 작업이 될 것이다.
어플리케이션은 업데이트 사이에서 급격하게 변할 수 있기 때문에, 관리자가 어플리케이션을 허용할지 아닐지에 대한 결정에 영향을 줄 수 있는 어떠한 변화도 아는 것이 바람직하다. 개시하는 실시예는, 그 기능 또는 특징을 매우 변화시키는 블랙리스트 또는 화이트리스트 상에 나타나는 어플리케이션의 경우 서버(151)가 주의를 전달하는 것을 지칭한다. 예를 들어, 관리자의 화이트리스트 상의 어플리케이션의 이전 버전은 그렇지 않았으나 새로운 버전이 사용자 장치로부터 파일을 전달하는 기능을 갖는다면, 서버(151)는 변화를 지칭하는 것을 관리자에게 이메일 또는 문자 메시지로서 전달할 수 있다. 서버(151) 상의 정책 관리 인터페이스는 변경된 특징에 기초하여 주의가 필요할 수 있는 어플리케이션의 리스트를 디스플레이할 수도 있다.
구성을 간단히 하도록, 개시하는 실시예는 모바일 커뮤니케이션 장치(101) 또는 서버(151) 상의 소프트웨어가 일반적인 사용의 경우를 고려한 디폴트 정책(default policy)들을 제공할 수 있다. 예를 들어, 사용자는 배터리 수명 및 위치 사생활에 관심을 갖지만 네트워크 사용량 및 전화번호 사생활에 관심을 갖지 않는 것을 선택할 수 있다. 이러한 관심을 선택함으로써, 장치 또는 서버가 바람직하지 않은 어플리케이션을 위한 정책 및 문턱값을 자동으로 구성한다. 일 실시예에서, 서버(151) 또는 장치(101)는 규정에 대하여 규정준수를 하기 위한 미리-구성된 정책들을 포함한다. 예를 들어, 그 대신에 금융산업 또는 보건사업 노동자들은 민감한 정보의 개시를 금지하는 어플리케이션 정책의 특별한 구성을 필요로 할 수 있다. 이러한 규제 하에서 허용되거나 금지되는 어플리케이션의 구성은 시간에 따라 벼할 수 있기에, 서버(151)는 관리자가 특별히 이들을 구성할 필요 없이도 규정을 준수하는 특별한 정책 결정을 자동으로 업데이트한다. 조사 및 감사를 허용하도록, 서버(151)는 규정에 합치하는지를 활용하는 정책 결정 리스트를 생성하고 정책 결정이 변경될 경우 관리자에게 이를 주지칭킬 수 있다. 관리자가 특정 정책 결정을 거부한 경우, 자신이 서버(151)에 의해 구성된 디폴트 정책을 무효로 할 수 있다.
정책 구성 처리를 단순화하는 것이 바람직할 수 있기에, 개시하는 실시예는 사용자 또는 관리자에게 일련의 질문을 주고 질문의 답변이 자동으로 정책을 구성하는데 사용되는 서버(151) 또는 모바일 커뮤니케이션 장치(101)를 지칭한다. 예를 들어, 사용자가 먼저 자신의 장치에서 어플리케이션 정책 서버(151)을 구성하고 있으면, 소프트웨어는 사용자가 무제한 데이터 플랜을 갖는지 여부, 사용자가 장치의 위치 접근 서비스를 허용하는지 여부, 및 사용자가 장치 상에서 몰래 사용될 수 있는 모든 툴(tool)을 막는 것을 원하는지 여부를 물을 수 있다. 질문의 답변에 기초하여 장치는 높은 데이터 사용 어플리케이션을 막을지 여부, 높은 데이터 사용 어플리케이션의 경우 사용자에게 경고를 할지 여부, 사용자의 위치를 인터넷으로 전달하는 어플리케이션을 막을지 여부 및 스파이 어플리케이션(espionage application)을 막을지 여부의 정책을 구성할 수 있다. 이러한 최초 구성 이후에, 사용자는 정책 결정을 고칠 수도 있으며, 다른 사용자는 자동으로 구성된 정책을 수용할 수도 있다.
악용가능한 어플리케이션은 무선 네트워크에 실질적으로 부정적 영향을 줄 수 있기에, 개시하는 실시예는 잠재적인 악용가능한 어플리케이션에 대한 정보의 "조기-경보(early-warning)"을 제공하는 것을 지칭한다. 일 실시예에서, 어플리케이션이 모바일 네트워크에 악영향을 줄 수 있는 네트워크 접근 특징을 갖는지 여부에 대한 평가를 제공하도록, 서버(151)는 거동 데이터 및 다른 가용 데이터와 같은 정보를 사용할 수 있다. 예를 들어, 대용량 데이터를 수신 또는 전달하거나, 다량의 SMS 메시지를 전달하거나, 또는 다량의 끊임없는 연결을 개방하는 어플리케이션은 모바일 네트워크 성능에 악영향을 줄 수 있다. 어플리케이션이 모바일 네트워크에 잠재적으로 악영향을 주는지 여부를 결정하여 평가한 이후, 모바일 네트워크에 잠재적인 악영향을 준다면, 서버(151)는 평가를 저장한다. 일 실시예에서, 서버(151)는 잠재적인 악영향 어플리케이션이 식별된 경우 관리자에게 주의를 준다. 예를 들어, 주의는 잠재적인 악영향 데이터 객체에 대한 정보를 포함하는 이메일 또는 문자 메시지의 폼일 수 있다.
일 실시예에서, 서버(151)는 모바일 네트워크에 잠재적인 악영향으로서 평가되었던 어플리케이션을 디스플레이하는 웹 인터페이스를 생성한다. 웹 인터페이스는 검토 작업 흐름을 지원하도록 디자인되어, 잠재적인 악영향 어플리케이션이 관리자에 의하여 더 분석될 수 있다. 어플리케이션의 조사 이후, 관리자는 소정의 경우 치료 작용을 취하기를 원할 수 있고, 다른 경우 관리자는 어떠한 행동도 취하지를 원하지 않을 수 있다. 관리자가 어떠한 행동도 취하지 않기로 선택한 경우, 그 행동이 서버(151)가 어플리케이션을 재-검토용으로 식별하도록 중요하게 변경되지 않는 한 어플리케이션은 잠재적인 악영향인 것으로 고려되지 않을 것이다. 잠재적인 앙영향으로 반복적으로 식별되는 주어진 어플리케이션을 위한 다수의 데이터 객체를 보호하도록, 관리자가 어플리케이션을 무시하는 것을 선택하면, 서버(151)가 다수의 데이터 객체가 동일한 어플리케이션 또는 다른 그룹에 소속되는지 여부를 결정할 수 있음에 따라, 그 어플리케이션의 모든 버전은 무시될 수도 있다.
관리자가 잠재적인 악영향 어플리케이션임을 인지하면, 어플리케이션이 더 많은 장치에 설치되는 경우의 심각한 문제를 피하도록 선제적 작용를 취할 수 있다. 일 실시예에서, 서버(151)는 관리자가 악영향인 것으로 고려되는 어플리케이션을 위한 치료 작용을 취하는 것을 허용하는 웹 인터페이스를 생성한다. 다양한 치료 행동이 가능하다. 예를 들어, 서버(151)는 네트워크 관리자가 어플리케이션의 제공자와 통신하고 악영향 행동의 해결을 위하여 작업하는 것을 허용하는 인터페이스를 나타낼 수 있다. 서버(151)는 제공자의 이메일 주소를 시장 데이터에서 추출하고 네트워크 관리자가 서버(151)가 제공자에게 전달하는 서버 웹 인터페이스를 통하여 메시지를 타이핑하는 것을 허용할 수 있다. 서버(151)가 이메일을 전달하면, 송신된 이메일의 답신 주소가 특별하게 구성되어 제공자가 답신하면 서버는 답신을 최초 메시지에 연관시키고 웹 인터페이스에서 관리자에게 답신을 제공하여 대화를 보고 잠재적으로 이어나갈 수 있다. 일 실시예에서, 서버(151)는 관리자가 장치 그룹에 설치된 보안 소프트웨어를 구성하는 것을 허용하는 웹 인터페이스를 제공한다. 예를 들어, 관리자는 잠재적인 악영향 어플리케이션을 막거나 또는 셀룰러 네트워크를 통한 통신을 불가능하도록 어플리케이션을 고립시키기 위하여 보안 소프트웨어를 구성하는 것을 원할 수 있다. 관리자가 어플리케이션을 막는 것을 원하는 경우, 서버(151)는 어플리케이션을 장치에 설치되는 것을 막거나 또는 이미 장치에 설치되었다면 이를 제거하기 위하여 개시한 것과 같은 다양한 메커니즘을 사용할 수 있다. 서버(151)는 동일한 어플리케이션에 상응하는 다수의 데이터 객체를 식별할 수 있기에, 관리자가 어플리케이션을 막으면, 어플리케이션을 위한 모든 데이터 객체는 막히는 것으로 고려된다. 잠재적인 악영향 어플리케이션이 후속 버전에서 고정되면, 서버(151)는 관리자가 어플리케이션을 막는 버전 범위를 특별하게 구성하는 것을 허용할 수 있다.
바람직하지 않은 어플리케이션의 다운로드를 막는 것이 바람직하기에, 개시하는 실시예는, 네트워크 인프라스트럭쳐(infrastructure) 구성 데이터를 생성하는 서버(151)를 지칭한다. 예를 들어, 서버(151)는 일련의 블랙리스트 데이터 객체를 저장할 수 있고, 일련의 침투 방지 시스템 또는 HTTP 프록시 규칙을 생성할 수 있다. 이러한 규칙은 모바일 장치에 사용되는 식별자를 어플리케이션 시장으로부터 다운로드 데이터 객체에 매칭시키거나 또는 네트워크를 통하여 전달됨에 따라 바람직하지 않은 데이터 객체의 컨텐츠를 식별하려 시도할 수 있다.
일 실시예에서, 서버(151)는 네트워크 인프라스트럭쳐 구성 데이터를 생성하여 바람직하지 않은 어플리케이션에 연관된 네트워크 트래픽을 막는다. 서버(151)는, 어플리케이션과 관련된 네트워크 커뮤니케이션을 특징화하는 바람직하지 않은 어플리케이션을 위한 거동 데이터를 사용하고 유사한 네트워크 트래픽(예를 들어, 동일 IP 어드레스, 서브넷(subnet), 또는 호스트명(hostname))을 방지하는 규칙을 생성함으로써, 서버(151)에 의해 바람직하지 않은 어플리케이션에 연관된 네트워크 커뮤니케이션을 막는 네트워크 인프라스트럭쳐 구성을 생성한다. 정당한 트래픽이 막히는 것을 방지하도록, 서버(151)는 바람직하지 않은 어플리케이션의 네트워크 트래픽이 바람직한 어플리케이션에 비하여 상대적으로 얼마나 고유한지를 분석하고 특별히 바람직하지 않은 어플리케이션에 대한 네트워크 트래픽만을 막을 수 있다. 예를 들어, 어플리케이션이 2개의 서버와 통신하고 그 중 하나는 다양한 정당한 어플리케이션이 사용하는 잘 알려진 서버이고 다른 하나는 상기 어플리케이션 통신하는 미지의 서버인 경우, 서버(151)는 미지의 서버를 바람직하지 않은 어플리케이션에 특히 연관된 것으로 취급할 수 있다.
막기를 원하는 적당한 네트워크 트래픽을 결정한 이후, 서버(151)는 바람직하지 않은 어플리케이션의 네트워크 트래픽을 막는 방화벽 또는 다른 네트워크 구성 규칙을 생성한다. 예를 들어, 악성 어플리케이션이 사람들의 전화기에서 민감한 데이터를 탈출시키는 특정 서버를 사용하는 경우, 어플리케이션용 거동 데이터는 민감한 데이터를 전달하는데 사용되는 IP 어드레스, 포트, 및 프로토콜을 지칭한다. 관리자가 데이터 도피에 사용되는 악성 어플리케이션의 기능을 막기를 원한다면, 어플리케이션이 통신하는 서버의 리스트를 보고 얼마나 많은 다른 어플리케이션이 그 서버와 전형적으로 통신하는지 서버(151)에 알려준다. 다음, 관리자는 어떤 서버를 막을지 기능을 갖는다. 막을 서버를 선택한 이후, 서버(151)는 네트워크 트래픽을 막을 규칙을 생성한다. 일 실시예에서, 서버(151)는 Snort® 침범 탐지 및 방지 시스템 규칙과 가은 구성 데이터를 만들고, 이는 웹 인터페이스를 통하여 다운로드 가능하다. 일 실시예에서, 서버(151)는 구성 데이터를 전개할 네트워크 인프라스트럭쳐 관리에 직접 연결되도록 구성될 수 있다.
관리자가 특정 네트워크를 핵심적으로 고려할 수 있기 때문에, 개시하는 실시예는 잠재적인 악영향 어플리케이션을 식별한 종합 평가 및 작업자-특정 평가를 모두 생성하고 이 모두를 포함하는 사용자 인터페이스를 생성하는 서버(151)를 지칭한다. 예를 들어, 어플리케이션이 특정 형식의 모바일 네트워크에 연결된 장치에서 가동하는 경우에만 잘못된 행동을 하는 경우, 종합 거동 데이터는 일반적인 범주 내에 있을 것이지만; 특정 네트워크에 해로울 수 있다. 네트워크 관리자는 자신이 관리하는 네트워크 형식에서 어플리케이션의 행동을 보기를 원할 수 있다. 개별적인 모바일 네트워크가 다른 행동을 악영향 있는 것으로 처리할 수 있기에, 서버(151) 사용자는 네트워크에 해로운 어플리케이션을 고려하는 기준을 구성할 수 있다.
전술한 기술 내용을 통하여, 다수의 구체적 예시들이 본 발명의 충분한 이해를 제공하도록 설명되었다. 그러나 본 개시는 이들 구체적 예시 밖에서도 실행 가능하다는 것이 당업자에게 명확할 것이다. 다른 예시에서, 공지된 구조 및 장치들은 설명을 용이하게 하기 위한 순서도의 형태로 도시된다. 바람직한 실시예의 설명은 여기에 첨부된 청구항의 범위를 제한하는 목적이 아니다. 더욱이, 여기에 개시되는 방법들에서, 개시되는 기능 중의 일부를 설명하는 다양한 단계가 개시된다. 당업자는 이러한 단계들이 단지 설명을 위한 것이며 제한하기 위한 의도가 아님을 알 것이다. 다른 단계 및 기능은 본 발명의 범위를 벗어나지 않으면서 고려될 수 있다.

Claims (20)

  1. 서버 컴퓨터에 의해 데이터 객체를 평가하기 위한 방법으로서,
    모바일 커뮤니케이션 장치에 의해 접근 가능한 데이터 객체의 적어도 일부 영역을 식별하는 데이터를 상기 서버 컴퓨터에서 수신하는 단계;
    데이터 객체에 대한 정의 정보가 상기 데이터에 상응하는지 여부를 결정하고, 상기 정의 정보는 상기 서버에 의해 접근 가능한 데이터 저장장치에 저장되고, 상기 데이터 저장장치는 상기 정의 정보에 상응하는 평가(assessment)를 저장하는 단계; 및
    정의 정보가 상기 데이터에 상응하는 경우, 상기 서버는 상기 정의 정보에 상응하는 상기 평가를 제공하는 단계,
    를 포함하는,
    서버 컴퓨터에 의해 데이터 객체를 평가하기 위한 방법.
  2. 제 1 항에 있어서,
    데이터를 상기 서버 컴퓨터에서 수신하기 전에, 상기 모바일 커뮤니케이션 장치에서 로컬 저장장치에 저장된 정의 정보가 상기 데이터에 상응하는지 여부를 결정하는 단계로서, 상기 로컬 저장장치는 상기 정의 정보에 대한 상응하는 평가를 저장하는 단계; 및
    상기 로컬 저장장치 내의 정의 정보가 상기 데이터에 상응하지 않는 경우에, 상기 모바일 커뮤니케이션 장치로부터 상기 서버에서 상기 데이터의 적어도 일부 영역을 수신하는 단계,
    를 더 포함하는,
    방법.
  3. 제 1 항에 있어서,
    상기 데이터가 상기 데이터 저장장치에 저장된 정의 정보에 상응하지 않는 경우에, 평가를 결정하기 위해 상기 데이터의 적어도 일부를, 상기 서버에 의해 분석하는 단계; 및
    상기 데이터 저장장치에 상기 평가를 저장하는 단계;
    를 더 포함하는,
    방법.
  4. 제 1 항에 있어서,
    상기 데이터가 상기 데이터 저장장치에 저장된 정의 정보에 상응하지 않는 경우에, 평가를 결정하기 위해 상기 데이터의 적어도 일부를, 상기 서버에 의해 분석하는 단계; 및
    상기 모바일 커뮤니케이션 장치에 의해 접근 가능한 상기 데이터 객체에 속하는 부가적 데이터를 상기 서버에 의해 요청하는 단계;
    평가를 결정하기 위해 상기 부가적 데이터의 적어도 일부 영역을 상기 서버에 의해 분석하는 단계; 및
    상기 데이터 저장장치 내의 상기 평가를 저장하는 단계;
    를 더 포함하는,
    방법.
  5. 모바일 커뮤니케이션 장치에 의해 로컬 저장장치 내의 정의 정보가 상기 모바일 커뮤니케이션 장치에 의해 접근 가능한 데이터 객체에 상응하는지 여부를 결정하는 단계;
    상기 로컬 저장장치 내의 상기 정의 정보가 상기 데이터 객체에 상응하지 않는 경우에, 서버 컴퓨터에서 상기 데이터 객체에 존재하는 데이터를 수신하는 단계;
    상기 서버 컴퓨터에 의해, 데이터 객체를 위한 정의 정보가 상기 수신된 데이터에 상응하는지 여부를 결정하는 단계로서, 여기에서 상기 정의 정보는 상기 서버에 의해 접근 가능한 데이터 저장장치 내에 저장되고, 상기 데이터 저장장치는 상기 정의 정보에 대한 상응하는 평가를 저장하는 단계; 및
    정의 정보가 상기 수신된 데이터에 상응하는 경우, 상기 서버는 상기 정의 정보에 상응하는 상기 평가를 전달하는 단계;를 포함하는
    데이터 객체를 평가하기 위한 방법.
  6. 제 5 항에 있어서,
    상기 정의 정보가 상기 수신된 데이터에 상응하지 않는 경우에, 상기 서버에 의해, 상기 수신된 데이터를 사용하는 상기 데이터 객체에 대한 평가를 결정하는 단계;를 더 포함하는,
    방법.
  7. 제 5 항에 있어서,
    상기 모바일 커뮤니케이션 장치에 의해 접근 가능한 데이터 객체에 존재하는 부가적 데이터를, 상기 서버에 의해, 요청하는 단계; 및
    상기 부가적 데이터를 분석하는 단계;
    를 더 포함하는,
    방법.
  8. 다수의 모바일 커뮤니케이션 장치 중 제 1 모바일 커뮤니케이션 장치로부터 서버에서 데이터를 수신하고, 상기 서버는 상기 제 1 모바일 커뮤니케이션 장치를 인증하도록 구성되고, 상기 데이터는 상기 제 1 모바일 커뮤니케이션 장치에 의해 접근 가능한 데이터 객체를 확인하고, 상기 서버는 상기 데이터 객체의 평가를 제공하기 위해 상기 데이터의 적어도 일부 영역을 사용하도록 추가로 구성되는 단계; 및
    상기 서버에 의해 접근 가능한 데이터 저장장치 상에 상기 데이터의 적어도 일부를 저장함으로써 결과적으로 상기 저장된 데이터가 상기 제 1 모바일 커뮤니케이션 장치와 연관되는 단계;를 포함하는,
    적어도 하나의 모바일 커뮤니케이션 장치에 의해 접근 가능한 하나 또는 그보다 많은 데이터 객체에 대한 데이터를 수집하는 방법.
  9. 제 8 항에 있어서,
    상기 제 1 모바일 커뮤니케이션 장치를 상기 서버에 의해 인증하는 단계;
    를 더 포함하는,
    방법.
  10. 제 8 항에 있어서,
    다수의 모바일 커뮤니케이션 장치 중 제 2 모바일 커뮤니케이션 장치로부터 서버에 데이터를 수신하고, 상기 서버는 상기 제 1 모바일 커뮤니케이션 장치를 인증하도록 구성되고, 상기 데이터는 상기 제 1 모바일 커뮤니케이션 장치에 의해 접근 가능한 데이터 객체를 확인하고, 상기 서버는 상기 데이터 객체의 평가를 제공하기 위해 상기 데이터의 적어도 일부를 사용하도록 추가로 구성되는 단계; 및
    상기 서버에 의해 접근 가능한 데이터 저장장치 상에 상기 데이터의 적어도 일부를 저장함으로써 결과적으로 상기 저장된 데이터가 상기 제 2 모바일 커뮤니케이션 장치와 연관되는 단계; 더 포함하는,
    방법.
  11. 서버에 의해 제 1 모바일 커뮤니케이션 장치로, 상기 제 1 모바일 커뮤니케이션 장치 상에 상존하는 데이터 요청을 전달하는 단계;
    상기 서버에 의해, 상기 제 1 모바일 커뮤니케이션 장치로부터 적어도 데이터의 일부를 수신하는 단계;
    상기 서버가 상기 제 1 모바일 커뮤니케이션 장치로부터 적어도 데이터의 일부를 수신하지 않는 경우에는, 그러면 상기 서버에 의해 제 2 모바일 커뮤니케이션 장치로, 상기 제 2 모바일 커뮤니케이션 장치 상에 상존하는 데이터의 요청을 전달하는 단계;
    상기 데이터의 수신된 영역을 사용하여 평가를 제공할 목적으로, 서버에 의해, 상기 제 1 또는 제 2 모바일 커뮤니케이션 장치로부터 상기 데이터의 수신된 영역을, 저장하는 단계;를 포함하는,
    적어도 하나의 모바일 커뮤니케이션 장치에 의해 접근 가능한 하나 또는 그보다 많은 데이터 객체에 대한 데이터를 수집하는 방법.
  12. 서버에 의해 제 1 모바일 커뮤니케이션 장치로, 상기 제 1 모바일 커뮤니케이션 장치 상에 상존하는 제 1 데이터 요청을 전달하는 단계;
    상기 서버에 의해, 상기 제 1 모바일 커뮤니케이션 장치로부터 적어도 제 1 데이터 영역을 수신하는 단계;
    서버에 의해 제 2 모바일 커뮤니케이션 장치로, 상기 제 2 모바일 커뮤니케이션 장치 상에 상존하는 제 2 데이터 요청을 전달하는 단계;
    상기 서버에 의해, 상기 제 1 모바일 커뮤니케이션 장치로부터 적어도 제 2 데이터 영역을 수신하는 단계;
    서버에 의해, 상기 제 1 모바일 커뮤니케이션 장치로부터의 수신된 제 1 데이터 영역 및 제 2 모바일 커뮤니케이션 장치로부터의 제 2 데이터 영역을 상기 수신된 데이터 영역을 사용하여 평가를 제공할 목적으로 저장하는 단계;를 포함하는,
    하나 또는 그보다 많은 모바일 커뮤니케이션 장치에 대한 데이터를 수집하는 방법.
  13. 상기 데이터 객체에 속하는 데이터를, 다수의 모바일 커뮤니케이션 장치로부터 상기 서버에, 수신하고, 상기 데이터는 상기 데이터 객체에 접속해온 상기 다수의 모바일 커뮤니케이션 장치에 의해 발생하는 단계;
    상기 데이터 객체를 위한 평가를 결정하기 위해 상기 다수의 모바일 커뮤니케이션 장치로부터 수신된 상기 데이터를, 상기 서버에 의해, 처리하는 단계; 및
    상기 데이터 객체를 위한 평가를 제공하는 단계;를 포함하는,
    서버에 의해 데이터 객체의 평가를 제공하기 위한 방법.
  14. 제 13 항에 있어서,
    상기 데이터는 상기 데이터 객체를 실행해온 상기 다수의 모바일 커뮤니케이션 장치에 의해 발생되는,
    방법.
  15. 제 13 항에 있어서,
    상기 평가는 배터리 사용 정보, 메모리 사용 정보, CPU 사용 정보, 어플리케이션 프로그램 인터페이스("API(application program interface)") 사용 정보, 네트워크 사용 정보, 사생활 정보, 데이터 사용 정보, 및 위치 문의 정보로 이루어진 그룹으로부터 선택되는,
    방법.
  16. 다수의 모바일 커뮤니케이션 장치로부터 상기 서버에, 상기 데이터 객체에 대한 어플리케이션 데이터를 수신하는 단계;
    상기 데이터 객체에 대한 평가를 결정하기 위해 상기 수신된 어플리케이션 데이터를, 상기 서버에 의해, 처리하는 단계; 및
    상기 데이터 객체에 대한 평가를 제공하는 단계;를 포함하는,
    서버에 의해 데이터 객체의 평가를 제공하는 방법.
  17. 제 16 항에 있어서,
    상기 처리하는 단계에 앞서서,
    상기 데이터 객체에 접속해온 상기 다수의 모바일 커뮤니케이션 장치 중 적어도 하나를 위한 장치 데이터를, 상기 서버에서 수신하는 단계;를 더 포함하고,
    처리 단계는 평가를 결정하기 위해 상기 수신된 장치 데이터를 처리하는 단계를 포함하는,
    방법.
  18. 다수의 모바일 커뮤니케이션 장치로부터 상기 서버에서 상기 데이터 객체에 속하는 데이터를 수신하고, 상기 데이터는 상기 데이터 객체에 접속해온 상기 다수의 모바일 커뮤니케이션 장치에 의해 발생하는 단계;
    상기 데이터 객체에 대한 평가를 결정하기 위해 상기 다수의 모바일 커뮤니케이션 장치로부터 수신된 어플리케이션 상기 데이터를, 상기 서버에 의해, 처리하는 단계;
    하나의 형식의 컴퓨팅 장치로부터 상기 평가 요청을, 상기 서버에 의해, 수신하는 단계;
    상기 컴퓨팅 장치에 상기 데이터 객체에 대한 평가를 제공하며, 상기 평가는 상기 컴퓨팅 장치의 상기 형식에 기초한, 단계;를 포함하는,
    서버에 의해 데이터 객체의 평가를 제공하는 방법.
  19. 다수의 모바일 커뮤니케이션 장치로부터 데이터 객체에 속하는 데이터를 수신하도록 구성되는 서버를 포함하고,
    상기 서버는 상기 데이터에 기초한 상기 데이터 객체의 평가를 결정하도록 구성되고, 상기 서버는 상기 평가를 제공하도록 추가로 구성되고, 상기 평가는 상기 다수의 모바일 커뮤니케이션 장치 중 적어도 하나에 의해 상기 데이터 객체에 접속하는 결과를 포함하는,
    시스템.
  20. 제 19 항에 있어서,
    상기 서버는 상기 평가에 기초하여 상기 다수의 모바일 커뮤니케이션 장치 중 적어도 하나에 의해 상기 데이터 객체로의 접속을 동적으로 제한하도록 추가로 구성되는,
    시스템.
KR1020137007412A 2010-08-25 2011-08-25 서버 결합된 멀웨어 방지를 위한 시스템 및 방법 KR101558715B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US12/868,669 2010-08-25
US12/868,676 2010-08-25
US12/868,676 US9367680B2 (en) 2008-10-21 2010-08-25 System and method for mobile communication device application advisement
US12/868,672 2010-08-25
US12/868,672 US8533844B2 (en) 2008-10-21 2010-08-25 System and method for security data collection and analysis
US12/868,669 US8347386B2 (en) 2008-10-21 2010-08-25 System and method for server-coupled malware prevention
PCT/US2011/049182 WO2012027588A1 (en) 2010-08-25 2011-08-25 System and method for server-coupled malware prevention

Publications (2)

Publication Number Publication Date
KR20130129184A true KR20130129184A (ko) 2013-11-27
KR101558715B1 KR101558715B1 (ko) 2015-10-07

Family

ID=45723810

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137007412A KR101558715B1 (ko) 2010-08-25 2011-08-25 서버 결합된 멀웨어 방지를 위한 시스템 및 방법

Country Status (7)

Country Link
EP (1) EP2609538B1 (ko)
JP (1) JP6019484B2 (ko)
KR (1) KR101558715B1 (ko)
CN (1) CN103180862B (ko)
BR (1) BR112013004345B1 (ko)
RU (1) RU2571594C2 (ko)
WO (1) WO2012027588A1 (ko)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101673367B1 (ko) * 2015-07-22 2016-11-07 주식회사 엔에스에이치씨 경고 어플리케이션을 이용하여 메인 어플리케이션의 보안 위협 시도를 경고할 수 있는 모바일 단말기의 어플리케이션 보안 제공 방법
KR20180044507A (ko) * 2016-10-24 2018-05-03 주식회사 아이티스테이션 지능형 지속위협 환경의 네트워크 복구 시스템
WO2018079867A1 (ko) * 2016-10-24 2018-05-03 주식회사 아이티스테이션 지능형 지속위협 환경의 네트워크 복구 시스템을 이용한 복구 방법
WO2020149996A1 (en) * 2019-01-14 2020-07-23 Mcafee, Llc Detection of malicious polyglot files
KR20200115730A (ko) * 2019-03-18 2020-10-08 주식회사 위젯누리 머신러닝을 이용한 소프트웨어 화이트리스트 생성 시스템 및 방법
KR20210131989A (ko) * 2020-04-23 2021-11-03 구글 엘엘씨 프라이버시 보호 애플리케이션 및 장치 오류 검출
KR102637045B1 (ko) * 2023-11-01 2024-02-15 주식회사 넷스루 데이터 수집을 지원하는 방법
KR102655883B1 (ko) * 2023-07-18 2024-04-09 주식회사 스틸리언 시그니처 기반의 악성 어플리케이션 탐지 방법 및 장치

Families Citing this family (107)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8087067B2 (en) 2008-10-21 2011-12-27 Lookout, Inc. Secure mobile platform system
US9781148B2 (en) 2008-10-21 2017-10-03 Lookout, Inc. Methods and systems for sharing risk responses between collections of mobile communications devices
US8533844B2 (en) 2008-10-21 2013-09-10 Lookout, Inc. System and method for security data collection and analysis
US8051480B2 (en) 2008-10-21 2011-11-01 Lookout, Inc. System and method for monitoring and analyzing multiple interfaces and multiple protocols
US9367680B2 (en) 2008-10-21 2016-06-14 Lookout, Inc. System and method for mobile communication device application advisement
US9043919B2 (en) 2008-10-21 2015-05-26 Lookout, Inc. Crawling multiple markets and correlating
US8347386B2 (en) 2008-10-21 2013-01-01 Lookout, Inc. System and method for server-coupled malware prevention
US8060936B2 (en) 2008-10-21 2011-11-15 Lookout, Inc. Security status and information display system
US8108933B2 (en) 2008-10-21 2012-01-31 Lookout, Inc. System and method for attack and malware prevention
US8984628B2 (en) 2008-10-21 2015-03-17 Lookout, Inc. System and method for adverse mobile application identification
US9235704B2 (en) 2008-10-21 2016-01-12 Lookout, Inc. System and method for a scanning API
US8855601B2 (en) 2009-02-17 2014-10-07 Lookout, Inc. System and method for remotely-initiated audio communication
US8538815B2 (en) 2009-02-17 2013-09-17 Lookout, Inc. System and method for mobile device replacement
US9042876B2 (en) 2009-02-17 2015-05-26 Lookout, Inc. System and method for uploading location information based on device movement
US8467768B2 (en) 2009-02-17 2013-06-18 Lookout, Inc. System and method for remotely securing or recovering a mobile device
US9955352B2 (en) 2009-02-17 2018-04-24 Lookout, Inc. Methods and systems for addressing mobile communications devices that are lost or stolen but not yet reported as such
US8788881B2 (en) 2011-08-17 2014-07-22 Lookout, Inc. System and method for mobile device push communications
US9483344B2 (en) 2012-04-05 2016-11-01 Assurant, Inc. System, method, apparatus, and computer program product for providing mobile device support services
US9413893B2 (en) 2012-04-05 2016-08-09 Assurant, Inc. System, method, apparatus, and computer program product for providing mobile device support services
US9407443B2 (en) * 2012-06-05 2016-08-02 Lookout, Inc. Component analysis of software applications on computing devices
US9589129B2 (en) 2012-06-05 2017-03-07 Lookout, Inc. Determining source of side-loaded software
US20130333039A1 (en) * 2012-06-07 2013-12-12 Mcafee, Inc. Evaluating Whether to Block or Allow Installation of a Software Application
US8869274B2 (en) 2012-09-28 2014-10-21 International Business Machines Corporation Identifying whether an application is malicious
JP6254414B2 (ja) * 2012-10-09 2017-12-27 キヤノン電子株式会社 情報処理装置、情報処理システムおよび情報処理方法
US9767280B2 (en) 2012-10-09 2017-09-19 Canon Denshi Kabushiki Kaisha Information processing apparatus, method of controlling the same, information processing system, and information processing method
WO2014057668A1 (ja) * 2012-10-09 2014-04-17 キヤノン電子株式会社 情報処理装置およびその制御方法、情報処理システム、並びに、情報処理方法
JP6253333B2 (ja) * 2012-10-09 2017-12-27 キヤノン電子株式会社 情報処理装置、情報処理システムおよび情報処理方法
US8655307B1 (en) 2012-10-26 2014-02-18 Lookout, Inc. System and method for developing, updating, and using user device behavioral context models to modify user, device, and application state, settings and behavior for enhanced user security
US9208215B2 (en) 2012-12-27 2015-12-08 Lookout, Inc. User classification based on data gathered from a computing device
US9374369B2 (en) 2012-12-28 2016-06-21 Lookout, Inc. Multi-factor authentication and comprehensive login system for client-server networks
US8855599B2 (en) 2012-12-31 2014-10-07 Lookout, Inc. Method and apparatus for auxiliary communications with mobile communications device
US9424409B2 (en) 2013-01-10 2016-08-23 Lookout, Inc. Method and system for protecting privacy and enhancing security on an electronic device
GB2507357B (en) 2013-01-21 2016-04-20 F Secure Corp Agent based application reputation system for operating systems
US10699273B2 (en) 2013-03-14 2020-06-30 Lookout, Inc. System and method for authorizing payment transaction based on device locations
US9852416B2 (en) 2013-03-14 2017-12-26 Lookout, Inc. System and method for authorizing a payment transaction
US9307412B2 (en) 2013-04-24 2016-04-05 Lookout, Inc. Method and system for evaluating security for an interactive service operation by a mobile device
US9680864B2 (en) 2013-06-18 2017-06-13 Empire Technology Development Llc Remediating rogue applications
US9639693B2 (en) * 2013-06-28 2017-05-02 Symantec Corporation Techniques for detecting a security vulnerability
US9305162B2 (en) * 2013-07-31 2016-04-05 Good Technology Corporation Centralized selective application approval for mobile devices
US10305929B2 (en) 2013-09-27 2019-05-28 Mcafee, Llc Managed software remediation
CN104519469A (zh) * 2013-10-08 2015-04-15 华为技术有限公司 短信吸费行为检测方法、装置及终端
US9642008B2 (en) 2013-10-25 2017-05-02 Lookout, Inc. System and method for creating and assigning a policy for a mobile communications device based on personal data
US10122747B2 (en) 2013-12-06 2018-11-06 Lookout, Inc. Response generation after distributed monitoring and evaluation of multiple devices
US9753796B2 (en) 2013-12-06 2017-09-05 Lookout, Inc. Distributed monitoring, evaluation, and response for multiple devices
US9692789B2 (en) 2013-12-13 2017-06-27 Oracle International Corporation Techniques for cloud security monitoring and threat intelligence
US9258318B2 (en) * 2014-02-12 2016-02-09 Symantec Corporation Systems and methods for informing users about applications available for download
US9197662B2 (en) * 2014-02-26 2015-11-24 Symantec Corporation Systems and methods for optimizing scans of pre-installed applications
CN104021342A (zh) * 2014-05-06 2014-09-03 可牛网络技术(北京)有限公司 应用程序的处理方法及装置
JP6042371B2 (ja) * 2014-05-19 2016-12-14 株式会社オプティム 端末データ管理サーバ、端末データ管理方法、及び、端末データ管理サーバ用プログラム
US9398036B2 (en) * 2014-09-17 2016-07-19 Microsoft Technology Licensing, Llc Chunk-based file acquisition and file reputation evaluation
CN105590056B (zh) 2014-10-22 2019-01-18 中国银联股份有限公司 基于环境检测的动态应用功能控制方法
US9639715B2 (en) * 2015-04-27 2017-05-02 Microsoft Technology Licensing, Llc Protecting user identifiable information in the transfer of telemetry data
EP3289510B1 (en) 2015-05-01 2020-06-17 Lookout Inc. Determining source of side-loaded software
US10887332B2 (en) 2015-06-15 2021-01-05 Nokia Technologies Oy Control of unwanted network traffic
RU2624552C2 (ru) * 2015-06-30 2017-07-04 Закрытое акционерное общество "Лаборатория Касперского" Способ обнаружения вредоносных файлов, исполняемых с помощью стековой виртуальной машины
CN106686599B (zh) * 2015-11-05 2020-10-20 创新先进技术有限公司 一种用于应用信息的风险管理的方法与设备
US10073965B2 (en) 2015-12-15 2018-09-11 Nagravision S.A. Methods and systems for validating an autonomous system that includes a dynamic-code module and a static-code module
GB201522315D0 (en) 2015-12-17 2016-02-03 Irdeto Bv Securing webpages, webapps and applications
US10536478B2 (en) * 2016-02-26 2020-01-14 Oracle International Corporation Techniques for discovering and managing security of applications
RU2636640C2 (ru) * 2016-03-11 2017-11-27 Федеральное государственное казенное военное образовательное учреждение высшего образования "Академия Федеральной службы охраны Российской Федерации" (Академия ФСО России) Способ защиты элементов виртуальных частных сетей связи от ddos-атак
JP6862669B2 (ja) * 2016-03-31 2021-04-21 日本電気株式会社 業務支援システム、業務支援方法、情報処理装置、通信端末およびそれらの制御方法と制御プログラム
US10440053B2 (en) 2016-05-31 2019-10-08 Lookout, Inc. Methods and systems for detecting and preventing network connection compromise
RU2634211C1 (ru) 2016-07-06 2017-10-24 Общество с ограниченной ответственностью "Траст" Способ и система анализа протоколов взаимодействия вредоносных программ с центрами управления и выявления компьютерных атак
RU2649793C2 (ru) 2016-08-03 2018-04-04 ООО "Группа АйБи" Способ и система выявления удаленного подключения при работе на страницах веб-ресурса
US10496820B2 (en) * 2016-08-23 2019-12-03 Microsoft Technology Licensing, Llc Application behavior information
RU2652451C2 (ru) * 2016-09-08 2018-04-26 Акционерное общество "Лаборатория Касперского" Способы обнаружения аномальных элементов веб-страниц
RU2634209C1 (ru) 2016-09-19 2017-10-24 Общество с ограниченной ответственностью "Группа АйБи ТДС" Система и способ автогенерации решающих правил для систем обнаружения вторжений с обратной связью
RU2637477C1 (ru) 2016-12-29 2017-12-04 Общество с ограниченной ответственностью "Траст" Система и способ обнаружения фишинговых веб-страниц
RU2671991C2 (ru) 2016-12-29 2018-11-08 Общество с ограниченной ответственностью "Траст" Система и способ сбора информации для обнаружения фишинга
JP6867482B2 (ja) * 2016-12-30 2021-04-28 グーグル エルエルシーGoogle LLC 情報リソース上のコンテンツのハッシュベースの動的制限
CN109891421B (zh) * 2016-12-30 2023-12-29 谷歌有限责任公司 部署对信息资源上的内容元素的基于散列的动态限制的对策
US10218697B2 (en) 2017-06-09 2019-02-26 Lookout, Inc. Use of device risk evaluation to manage access to services
US11487868B2 (en) 2017-08-01 2022-11-01 Pc Matic, Inc. System, method, and apparatus for computer security
US10873588B2 (en) * 2017-08-01 2020-12-22 Pc Matic, Inc. System, method, and apparatus for computer security
RU2659741C1 (ru) * 2017-09-29 2018-07-03 Акционерное общество "Лаборатория Касперского" Способы обнаружения аномальных элементов веб-страниц на основании статистической значимости
RU2689816C2 (ru) 2017-11-21 2019-05-29 ООО "Группа АйБи" Способ для классифицирования последовательности действий пользователя (варианты)
CN107944232A (zh) * 2017-12-08 2018-04-20 郑州云海信息技术有限公司 一种基于白名单技术的主动防御系统的设计方法及系统
RU2677361C1 (ru) 2018-01-17 2019-01-16 Общество с ограниченной ответственностью "Траст" Способ и система децентрализованной идентификации вредоносных программ
RU2668710C1 (ru) 2018-01-17 2018-10-02 Общество с ограниченной ответственностью "Группа АйБи ТДС" Вычислительное устройство и способ для обнаружения вредоносных доменных имен в сетевом трафике
RU2677368C1 (ru) 2018-01-17 2019-01-16 Общество С Ограниченной Ответственностью "Группа Айби" Способ и система для автоматического определения нечетких дубликатов видеоконтента
RU2676247C1 (ru) 2018-01-17 2018-12-26 Общество С Ограниченной Ответственностью "Группа Айби" Способ и компьютерное устройство для кластеризации веб-ресурсов
RU2680736C1 (ru) 2018-01-17 2019-02-26 Общество с ограниченной ответственностью "Группа АйБи ТДС" Сервер и способ для определения вредоносных файлов в сетевом трафике
RU2681699C1 (ru) 2018-02-13 2019-03-12 Общество с ограниченной ответственностью "Траст" Способ и сервер для поиска связанных сетевых ресурсов
RU2705770C1 (ru) * 2018-05-29 2019-11-11 Сергей Сергеевич Кукушкин Способ оперативно-технической охраны рубежей объектов и границ
RU2706894C1 (ru) * 2018-06-29 2019-11-21 Акционерное общество "Лаборатория Касперского" Система и способ анализа содержимого зашифрованного сетевого трафика
CN109361779A (zh) * 2018-10-22 2019-02-19 江苏满运软件科技有限公司 分布式系统中域名的管理方法及系统、节点服务器
RU2708508C1 (ru) 2018-12-17 2019-12-09 Общество с ограниченной ответственностью "Траст" Способ и вычислительное устройство для выявления подозрительных пользователей в системах обмена сообщениями
RU2701040C1 (ru) 2018-12-28 2019-09-24 Общество с ограниченной ответственностью "Траст" Способ и вычислительное устройство для информирования о вредоносных веб-ресурсах
WO2020176005A1 (ru) 2019-02-27 2020-09-03 Общество С Ограниченной Ответственностью "Группа Айби" Способ и система идентификации пользователя по клавиатурному почерку
US11550937B2 (en) * 2019-06-13 2023-01-10 Fujitsu Limited Privacy trustworthiness based API access
JP6813711B1 (ja) * 2019-06-26 2021-01-13 楽天株式会社 不正推定システム、不正推定方法、及びプログラム
WO2020261438A1 (ja) * 2019-06-26 2020-12-30 日本電気株式会社 実行制御システム、実行制御方法、及びプログラム
CN110414241B (zh) * 2019-08-05 2021-08-27 深圳市网安计算机安全检测技术有限公司 隐私策略检测方法、装置、计算机设备及存储介质
CN110769008B (zh) * 2019-11-05 2020-04-03 长沙豆芽文化科技有限公司 一种数据安全防护方法、装置及服务设备
RU2728497C1 (ru) 2019-12-05 2020-07-29 Общество с ограниченной ответственностью "Группа АйБи ТДС" Способ и система определения принадлежности программного обеспечения по его машинному коду
RU2728498C1 (ru) 2019-12-05 2020-07-29 Общество с ограниченной ответственностью "Группа АйБи ТДС" Способ и система определения принадлежности программного обеспечения по его исходному коду
RU2743974C1 (ru) 2019-12-19 2021-03-01 Общество с ограниченной ответственностью "Группа АйБи ТДС" Система и способ сканирования защищенности элементов сетевой архитектуры
CN111191216B (zh) * 2019-12-26 2024-02-06 航天信息股份有限公司 具有java接口的ofd签章客户端及其用于签章验章的方法和系统
SG10202001963TA (en) 2020-03-04 2021-10-28 Group Ib Global Private Ltd System and method for brand protection based on the search results
US11475090B2 (en) 2020-07-15 2022-10-18 Group-Ib Global Private Limited Method and system for identifying clusters of affiliated web resources
RU2743619C1 (ru) 2020-08-06 2021-02-20 Общество с ограниченной ответственностью "Группа АйБи ТДС" Способ и система генерации списка индикаторов компрометации
CN114077728B (zh) * 2020-08-12 2023-05-02 电子科技大学 基于静态检测的Android应用生物认证安全性方法
US11947572B2 (en) 2021-03-29 2024-04-02 Group IB TDS, Ltd Method and system for clustering executable files
NL2030861B1 (en) 2021-06-01 2023-03-14 Trust Ltd System and method for external monitoring a cyberattack surface
RU2769075C1 (ru) 2021-06-10 2022-03-28 Общество с ограниченной ответственностью "Группа АйБи ТДС" Система и способ активного обнаружения вредоносных сетевых ресурсов
EP4134848B1 (en) * 2021-08-13 2024-02-14 Nokia Technologies Oy Devices and methods for security and operational behavior assessment of software services
CN114050936B (zh) * 2021-11-15 2024-10-18 南方电网数字平台科技(广东)有限公司 基于大数据分析与云计算结合的用户隐私保护方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7162649B1 (en) * 2000-06-30 2007-01-09 Internet Security Systems, Inc. Method and apparatus for network assessment and authentication
US7099663B2 (en) * 2001-05-31 2006-08-29 Qualcomm Inc. Safe application distribution and execution in a wireless environment
US7171690B2 (en) * 2001-08-01 2007-01-30 Mcafee, Inc. Wireless malware scanning back-end system and method
US20040153644A1 (en) * 2003-02-05 2004-08-05 Mccorkendale Bruce Preventing execution of potentially malicious software
US8321941B2 (en) 2006-04-06 2012-11-27 Juniper Networks, Inc. Malware modeling detection system and method for mobile platforms
WO2008043110A2 (en) * 2006-10-06 2008-04-10 Smobile Systems, Inc. System and method of malware sample collection on mobile networks
US8214977B2 (en) * 2008-05-21 2012-07-10 Symantec Corporation Centralized scanner database with optimal definition distribution using network queries
RU2368008C1 (ru) * 2008-08-11 2009-09-20 Владимир Николаевич Мунякин Информационная система
US8931086B2 (en) * 2008-09-26 2015-01-06 Symantec Corporation Method and apparatus for reducing false positive detection of malware
US8108933B2 (en) * 2008-10-21 2012-01-31 Lookout, Inc. System and method for attack and malware prevention
US8087067B2 (en) * 2008-10-21 2011-12-27 Lookout, Inc. Secure mobile platform system

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101673367B1 (ko) * 2015-07-22 2016-11-07 주식회사 엔에스에이치씨 경고 어플리케이션을 이용하여 메인 어플리케이션의 보안 위협 시도를 경고할 수 있는 모바일 단말기의 어플리케이션 보안 제공 방법
KR20180044507A (ko) * 2016-10-24 2018-05-03 주식회사 아이티스테이션 지능형 지속위협 환경의 네트워크 복구 시스템
WO2018079867A1 (ko) * 2016-10-24 2018-05-03 주식회사 아이티스테이션 지능형 지속위협 환경의 네트워크 복구 시스템을 이용한 복구 방법
WO2020149996A1 (en) * 2019-01-14 2020-07-23 Mcafee, Llc Detection of malicious polyglot files
US11386205B2 (en) 2019-01-14 2022-07-12 Mcafee, Llc Detection of malicious polyglot files
KR20200115730A (ko) * 2019-03-18 2020-10-08 주식회사 위젯누리 머신러닝을 이용한 소프트웨어 화이트리스트 생성 시스템 및 방법
KR20210131989A (ko) * 2020-04-23 2021-11-03 구글 엘엘씨 프라이버시 보호 애플리케이션 및 장치 오류 검출
KR20230023826A (ko) * 2020-04-23 2023-02-17 구글 엘엘씨 프라이버시 보호 애플리케이션 및 장치 오류 검출
US11928237B2 (en) 2020-04-23 2024-03-12 Google Llc Privacy preserving application and device error detection
KR102655883B1 (ko) * 2023-07-18 2024-04-09 주식회사 스틸리언 시그니처 기반의 악성 어플리케이션 탐지 방법 및 장치
KR102637045B1 (ko) * 2023-11-01 2024-02-15 주식회사 넷스루 데이터 수집을 지원하는 방법

Also Published As

Publication number Publication date
WO2012027588A1 (en) 2012-03-01
RU2571594C2 (ru) 2015-12-20
EP2609538A1 (en) 2013-07-03
BR112013004345B1 (pt) 2020-12-08
JP2013540303A (ja) 2013-10-31
CN103180862A (zh) 2013-06-26
EP2609538A4 (en) 2014-01-22
CN103180862B (zh) 2016-03-02
EP2609538B1 (en) 2016-10-19
JP6019484B2 (ja) 2016-11-02
KR101558715B1 (ko) 2015-10-07
BR112013004345A2 (pt) 2016-05-31
RU2013113053A (ru) 2014-09-27

Similar Documents

Publication Publication Date Title
US9860263B2 (en) System and method for assessing data objects on mobile communications devices
KR101558715B1 (ko) 서버 결합된 멀웨어 방지를 위한 시스템 및 방법
US9563749B2 (en) Comparing applications and assessing differences
US9344431B2 (en) System and method for assessing an application based on data from multiple devices
US9294500B2 (en) System and method for creating and applying categorization-based policy to secure a mobile communications device from access to certain data objects
US9740852B2 (en) System and method for assessing an application to be installed on a mobile communications device
US9235704B2 (en) System and method for a scanning API
US8984628B2 (en) System and method for adverse mobile application identification

Legal Events

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

Payment date: 20180918

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190919

Year of fee payment: 5