KR101373986B1 - 모델을 사용하여 실행가능 프로그램을 조사하는 방법 및 장치 - Google Patents

모델을 사용하여 실행가능 프로그램을 조사하는 방법 및 장치 Download PDF

Info

Publication number
KR101373986B1
KR101373986B1 KR1020117023099A KR20117023099A KR101373986B1 KR 101373986 B1 KR101373986 B1 KR 101373986B1 KR 1020117023099 A KR1020117023099 A KR 1020117023099A KR 20117023099 A KR20117023099 A KR 20117023099A KR 101373986 B1 KR101373986 B1 KR 101373986B1
Authority
KR
South Korea
Prior art keywords
executable program
end user
model
user platform
operating system
Prior art date
Application number
KR1020117023099A
Other languages
English (en)
Other versions
KR20110124342A (ko
Inventor
디프티칼얀 사하
모리스 에이. 무어
수비르 사하
Original Assignee
모토로라 모빌리티 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 모토로라 모빌리티 엘엘씨 filed Critical 모토로라 모빌리티 엘엘씨
Publication of KR20110124342A publication Critical patent/KR20110124342A/ko
Application granted granted Critical
Publication of KR101373986B1 publication Critical patent/KR101373986B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44589Program code verification, e.g. Java bytecode verification, proof-carrying code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • 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
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

네트워크 인프라 구성요소(300)는, 최종 사용자 플랫폼(305)이 실행가능 프로그램을 다운로드하려고 시도하는지를 판정(101)할 때, 대응하는 운영 체제 호출-기반 거동을 나타내는 대응하는 모델을 개발하기 위해 프로그램을 실행(103)한다. 네트워크 인프라 구성요소(300)는 최종 사용자 플랫폼(305) 정책과 관련하여 프로그램의 운영 체제 호출-기반 거동을 조사하기 위해 이 모델을 사용(104)한다. 운영 체제 호출-기반 거동이 이들 정책과 관련하여 허용가능한 것으로 조사될 때, 최종 사용자 플랫폼(305)은 이어서 실행가능 프로그램을 다운로드(106)하도록 허용된다. 원하는 경우, 네트워크 인프라 구성요소(300)는 로컬적으로 유지되는 정책과 관련하여 모델링된 거동의 조사를 허용하기 위해 모델을 최종 사용자 플랫폼(305)에 제공(107)할 수 있다. 최종 사용자 플랫폼(305)에 제공되는 모델은 크기-감소된 슬라이싱된 모델을 포함할 수 있다.

Description

모델을 사용하여 실행가능 프로그램을 조사하는 방법 및 장치{METHOD AND APPARATUS TO VET AN EXECUTABLE PROGRAM USING A MODEL}
본 발명은 일반적으로 원하지 않는 거동과 관련하여 실행가능 프로그램을 조사하는 것에 관한 것이다.
컴퓨터 프로그램을 실행하는 최종 사용자 플랫폼이 기술 분야에 공지되어 있다. 이것은 점점 더 휴대폰, PDA(personal digital assistant) 등과 같은 소형의 휴대용 플랫폼을 포함한다. 점점 더, 이러한 최종 사용자 플랫폼은 상당한 처리 능력을 가진다. 이것으로 인해, 이러한 플랫폼을 실행가능 프로그램의 원격 소스에 즉각 통신 연결시킬수 있는 것과 함께, 휴대폰과 같은 장치에 실행가능 프로그램을 다운로드할 수 있어야 한다는 대응하는 요구가 점점 더 많아지고 있다.
안타깝게도, 해로운 프로그램도 역시 기술 분야에 공지되어 있다. 악의적 의도(바이러스, 웜, 또는 다른 종류의 소위 멀웨어 등)이거나 단순한 무관심 또는 잘못된 생각으로 인한 것이든 간에, 취약한 플랫폼에 다운로드된 해로운 프로그램으로 인해 일시적으로 또는 영구적으로 손상된 동작, 데이터의 상실, 기능의 선점 등이 야기될 수 있다. 이들 상황에 대처하기 위한 다양한 안티-바이러스 솔루션이 기술 분야에 공지되어 있다. 안타깝게도, 이러한 방식의 저장 및 계산 요구사항은 이러한 방식을 많은 수의 다양한 최종 사용자 플랫폼의 전형을 이루는 제한된 리소스 환경에서 사용하기에 아주 부적합하게 만드는 경향이 있다.
그 결과, 많은 최종 사용자는 단지 특정의 신뢰할 수 있는 소스로부터만 콘텐츠를 다운로드하게 된다. 그러나, 이것으로 인해 최종 사용자가 다양한 바람직한 방식으로 그의 플랫폼의 기능을 확장시킬 수 있는 많은 수의 다양한 실행가능 프로그램의 이점이 이용할 수 없게 된다. 이것은 최종 사용자 불만, 좌절, 및 그렇지 않은 경우 이용가능하지 않았을 다운로드를 허용하기 위해 일부 방식으로 그의 플랫폼을 수정하려는 불법(통상적으로 무분별한) 시도를 수반하는 어쩌면 바람직하지 않을 수 있는 거동을 야기할 수 있고 야기할 것이다.
상기한 요구가, 특히 도면과 관련하여 연구할 때, 이하의 상세한 설명에 기술된 모델을 사용하여 실행가능 프로그램을 조사하는 방법 및 장치를 제공함으로써 적어도 부분적으로 충족된다.
도 1은 본 발명의 다양한 실시예에 따라 구성되는 흐름도이다.
도 2는 본 발명의 다양한 실시예에 따라 구성되는 흐름도이다.
도 3은 본 발명의 다양한 실시예에 따라 구성되는 블록도이다.
도 4는 본 발명의 다양한 실시예에 따라 구성되는 호출 흐름도이다.
당업자라면 도면에서의 구성요소가 간단 명료하도록 도시되어 있으며 반드시 축척대로 도시된 것은 아니라는 것을 이해할 것이다. 예를 들어, 본 발명의 다양한 실시예에 대한 이해를 증진시키는 데 도움이 되도록 도면에서의 구성요소들 중 몇몇 구성요소의 크기 및 상대적 배치가 다른 구성요소에 대해 과장되어 있을 수 있다. 또한, 방해를 덜 받고 본 발명의 이들 다양한 실시예를 보는 것을 용이하게 하도록, 상업적으로 실시가능한 실시예에서 유용하거나 필요한 통상적이고 잘 이해되는 구성요소가 종종 나타내어져 있지 않다. 또한, 특정의 동작 및 단계가 특정의 발생 순서로 기술되거나 나타내어져 있을 수 있다는 것을 이해할 것이지만, 당업자는 순서와 관련한 이러한 구체적 상세가 실제로는 필요하지 않다는 것을 이해할 것이다. 또한, 본 명세서에서 사용되는 용어 및 표현이, 다른 특정의 의미가 본 명세서에서 다른 방식으로 기재된 경우를 제외하고는, 상기한 바와 같이 기술 분야의 당업자에 의해 이러한 용어 및 표현에 따른 보통의 기술적 의미를 가진다는 것을 이해할 것이다.
일반적으로 말하면, 이들 다양한 실시예에 따르면, 네트워크 인프라 구성요소는, 최종 사용자 플랫폼이 실행가능 프로그램을 다운로드하려고 시도하는지를 판정할 때, 실행가능 프로그램의 운영 체제 호출-기반 거동을 나타내는 실행가능 프로그램의 대응하는 모델을 개발하기 위해 실행가능 프로그램을 자동으로 실행하도록 구성될 수 있다. 네트워크 인프라 구성요소는 이어서 최종 사용자 플랫폼에 대응하는 정책과 관련하여 실행가능 프로그램의 운영 체제 호출-기반 거동을 조사하기 위해 이 모델을 사용할 수 있다. 운영 체제 호출-기반 거동이 이들 정책과 관련하여 허용가능한 것으로 조사될 때, 최종 사용자 플랫폼은 실행가능 프로그램을 다운로드하도록 허용될 수 있다.
한 방법에서, 네트워크 인프라 구성요소는 최종 사용자 플랫폼에 관한 정책의 전부가 아닌 일부와 관련하여 실행가능 프로그램의 거동을 조사한다. 예를 들어, 최종 사용자 플랫폼의 정책들 중 하나 이상의 정책이 기밀 콘텐츠를 포함하거나 언급할 때, 이것이 적절할 수 있다. 이러한 상황에 대처하기 위해, 네트워크 인프라 구성요소는 최종 사용자 플랫폼에 상기한 모델을 제공할 수 있고 그로써 후자는 이제 최종 사용자 플랫폼이 단지 로컬적으로 그리고 비밀리에 유지하는 이들 정책에 대해 (모델에 의해 표현되는 바와 같이) 실행가능 프로그램의 거동을 조사할 수 있다. 대역폭 요구사항, 저장 요구사항 및 계산 요구사항을 최소화하기 위해, 최종 사용자 플랫폼으로 전달되는 모델은 모델의 축소된 버전일 수 있다. 예를 들어, 한 방식에서, 네트워크 인프라 구성요소는 모델을 슬라이싱하여, 최종 사용자 플랫폼에 제공될 축소된 버전으로서 슬라이싱된 모델을 제공할 수 있다.
이들 개시 내용은 또한, 원하는 경우, 실행가능 프로그램에 대해 메시지-다이제스트(message-digest) 기능을 계산하고 그로써 실행가능 프로그램의 서명된 버전을 생성하는 것을 수용할 것이며, 이 서명된 버전은, 부분적으로, 상기한 정책들 중 적어도 하나의 정책을 포함한다. 이 경우에, 다른 최종 사용자 플랫폼이 그 후에 네트워크 인프라 구성요소를 유사한 동작에 참여시키고자 할 때, 후자는 모델을 형성하고 이어서 그 모델로 실행가능 프로그램을 조사하는 초기 동작을 반복할 필요가 없다. 그 대신에, 실행가능 프로그램의 이 서명된 버전이 후속하는 최종 사용자 플랫폼에게 제공될 수 있다. 후자는 이어서 실행가능 프로그램의 이전의 승인의 그 자신에 대한 관련성을 평가하기 위해 제공된 정책 정보를 사용할 수 있고 그 실행가능 프로그램의 다운로드에 관한 대응하는 결정을 할 수 있다.
그렇게 구성된 경우, 조사하는 프로세스의 적어도 상당 부분이 최종 사용자 플랫폼에 대해 원격적으로 행해지고, 따라서 후자의 리소스 제한에 대한 과도한 챌린지를 피한다. 본 명세서에 기술된 특정의 조사 방법은 또한 많은 이점을 제공한다. 이 이점은 그렇지 않은 경우 통상적으로 주어진 프로그램의 원하지 않는 거동을 식별하는 것에 대한 선행 조건인 소위 서명이 없더라도 주어진 프로그램을 조사할 수 있다는 것이다. 이 이점은 또한 아주 특정의 운영 체제 호출-기반 정책 요구사항을 고려하여 주어진 프로그램을 조사할 수 있다는 것이다. 당업자라면 이 개시 내용이 고도로 확장가능하고 모든 방식, 크기 및 유형의 실행가능 프로그램에서 사용될 수 있다는 것을 이해할 것이다. 또한, 이 개시 내용이 다양한 종류 및 설계의 기존의 네트워크 아키텍처, 통신 프로토콜 및 최종 사용자 플랫폼과 관련하여 즉각 이용될 수 있다는 것을 이해할 것이다.
이들 및 기타 이점이 이하의 상세한 설명을 철저히 검토하고 연구하면 더 명확하게 될 수 있다. 이제부터 도면을 참조하고, 특히 도 1을 참조하면, 이 개시 내용 중 많은 부분과 부합하는 예시적인 프로세스가 제시될 수 있다. 당업자라면 이 프로세스(100)가 서버(이것으로 제한되지 않음) 등과 같은 대응하는 네트워크 인프라 구성요소에 의해 수행될 수 있다는 것을 이해할 것이다. 당업자라면 여기서 말하는 "인프라"가 주어진 통신 네트워크를 포함하고 이러한 네트워크의 경계에 있는 복수의 최종 사용자 플랫폼 사이의 통신을 용이하게 하는 중간 기능을 제공하는 기본적인 기술 구조를 말한다는 것을 이해할 것이다.
이 프로세스(100)는 주어진 최종 사용자 플랫폼이 실행가능 프로그램을 다운로드하려고 시도하는지를 판정하는 단계(101)를 제공한다. 한 방법에서, 예를 들어, 이것은 최종 사용자 플랫폼에 의해 발신된 다운로드 요청을 수신하는 것을 포함할 수 있다. 한 방법에서, 이러한 요청은 먼저 네트워크 인프라 구성요소로 어드레싱될 수 있다. 다른 방법에서, 이 개시 내용은 얼마간 더 투명한 방식으로 이용될 수 있다. 예를 들어, 다운로드 요청은 다른 방식으로 보내지거나 탐지되고, 이어서 이 프로세스(100)를 용이하게 하는 네트워크 인프라 구성요소로 중간 네트워크 요소를 통해 지능적으로 전달될 수 있다. 일반적으로 말하면, 이 판정은 실행가능 프로그램 자체(예를 들어, 적절한 경우 그 실행가능 프로그램의 특정의 버전을 포함함), 이 실행가능 프로그램의 특정의 소스(또는 소스들) 또는 이들의 일부 조합의 ID를 확인하는 것을 포함할 수 있다. 한 방법에서, 이러한 정보는 최종 사용자 플랫폼의 상기한 다운로드 요청의 일부를 포함할 수 있다.
이하에서 더 명확하게 되는 바와 같이, 이 프로세스(100)는 최종 사용자 플랫폼에 관한 정책을 사용한다. 한 방법에서, 이들 정책의 일부 또는 전부가 프로필 서버(profile server)와 같은 일부 리소스를 통해 네트워크 인프라 구성요소에 의해 이용가능할 수 있다. 그러나, 이 개시 내용은 또한 최종 사용자 플랫폼 자체로부터의 이 정책 정보의 일부 또는 전부를 수신하는 선택적인 단계(102)를 수용할 것이다. 한 방법에서, 이것은 상기한 다운로드 요청에 또는 그와 함께 이러한 정책 정보를 포함시키는 것을 포함할 수 있다. 이러한 경우에, 정책 정보는 그 전체가 직접 제공될 수 있거나, 원하는 경우, 코딩된 방식으로 식별될 수 있다. 예를 들어, 관련 사용자 집단 사이에서 꽤 통상적인 경향이 있는 다수의 이러한 정책 각각이 대응하는 식별 코드를 할당받을 수 있다. 이러한 경우에, 최종 사용자 플랫폼은 식별 코드를 제공하고 그로써 네트워크 인프라 구성요소에 고려해야 할 정책을 알려주기만 하면 된다.
일반적으로 말하면, 이러한 정책은 액세스 제어 부류(객체에 대해 어느 동작이 수행될 수 있는지를 제한하는 정책을 다룸), 정보 흐름 부류(주체가 시스템의 거동을 관찰하는 것으로부터 객체에 관해 무엇을 추론할 수 있는지를 다룸), 이용가능성 부류(다른 사람들에게 리소스의 사용을 거부하는 주체에 관한 제한을 다룸), 유한 이용가능성 부류(예를 들어, 주어진 수의 단계, 시스템-불변 홀드, 기타 이후에 해제되어야만 하는 리소스를 다룸) 등과 같은 상이한 부류로 분류될 수 있다. 이 점에서 일부 예시적이고 비제한적인 예는 다음과 같다:
파일을 읽은 후에는 메시지를 전송하지 않음.
일부/모든 파일에 기입하지 않음.
stdout 이외의 파일에 기입하기 않음.
디렉토리를 생성하려고 시도하지 않음.
파일 X로부터 읽지 않음.
X개 초과의 파일을 열지 않음.
응용 프로그램 자체에 의해 생성되는 파일만을 삭제함.
쉘을 포크(fork)하지 않음.
다른(또는 특정의) 프로그램을 실행하지 않음.
/tmp.dir 이외의 어떤 파일도 생성하지 않음.
사용자-지정 디렉토리에 액세스하지 않음.
당업자라면 이해하는 바와 같이, 이 개시 내용은 휴대용/모바일 장치와 관련하여 특히 유용한 응용을 가질 수 있다(여기서 "휴대용" 장치는 사람이 개인적으로 휴대할 수 있는 장치를 포함하는 것으로 이해되는 반면, "모바일" 장치는 자동차 등과 같은 차량에 설치되는 장치를 포함하는 것으로 이해된다). 이러한 최종 사용자 패러다임에 어쩌면 더욱 특유한 정책의 일부 예시적인(그러나, 역시 비제한적인) 예는 다음과 같은 것을 포함한다:
SMS(Short Message Service) 서비스에 액세스하지 않음.
MMS(Multimedia Service) 서비스에 액세스하지 않음.
다이얼 서비스에 액세스하지 않음.
특정의 지정된 제한을 넘어 배터리-소비 리소스에 액세스하지 않음.
주소록 데이터를 포함하는 디렉토리에 액세스하지 않음.
블루투스 서비스에 액세스하지 않음.
X를 초과하는 메모리의 양을 할당하지 않음
어느 경우든지, 이 프로세스(100)는 이어서 (예를 들어, 라이브러리-호출 거동을 나타내는 모델 등에 대해) 실행가능 프로그램의 운영 체제 호출-기반 거동을 나타내는 실행가능 프로그램의 대응하는 모델을 개발하기 위해 실행가능 코드를 자동으로 실행하는 단계(103)를 제공한다. (당업자라면 "운영 체제 호출"이 처리 플랫폼에 의해 사용되고 있는 운영 체제에 서비스를 요청하기 위해 응용 프로그램에 의해 사용되는 메커니즘을 포함한다는 것을 이해할 것이다.) 당업자라면 이러한 방법이 실행가능 프로그램의 이진 버전의 사용에 의존하고 따라서 프로그램의 소스 코드에 액세스할 필요를 없애준다는 것을 인식하고 이해할 것이다.
한 방법에서, 이것은 랜덤한 입력 콘텐츠를 사용하여 실행가능 코드를 실행하는 것을 포함할 수 있다(여기서 "랜덤한"이 실제로 랜덤한 콘텐츠는 물론 의사-랜덤한 콘텐츠도 포함한다는 것을 이해할 것이다). 예를 들어, 실행가능 프로그램의 특정의 단계가 이름과 같은 입력을 필요로 할 때, 일부 랜덤한 영숫자 문자열(어쩌면, 주어진 수의 문자 이하로 제한됨) 응답으로서 제공될 수 있다. 이것이 일어날 때, 프로그램에 의해 실행되는 운영 체제 호출이 모니터링되고 기록될 수 있으며, 그로써 상기한 모델의 기초를 구축할 수 있다.
한 방법에서, 이러한 평가 기법은 (동일한 또는 상이한 입력 콘텐츠를 사용하여) 한번, 두번, 또는 임의의 횟수 반복될 수 있고, 그로써 프로그램의 거동을 다양한 방식으로 테스트하고 그의 실행 설계를 통해 다양한 경로를 탐색할 수 있다. (본 명세서에서 사용되는 바와 같이, 여기서 말하는 "경로"가 운영 체제 호출의 시퀀스를 말한다는 것을 이해할 것이다.) 주어진 인스턴스에서 관찰되는 실행 사이클의 수는 고정되어 있을 수 있거나, 원하는 경우, 변할 수 있다. 예를 들어, 실행 사이클의 수가 최소 사이클 수(예를 들어, 10 등)와 최대 사이클 수(예를 들어, 1,000,000 등)를 나타내는 일부 소정의 범위 내에서 랜덤하게 변할 수 있다. 다른 방법으로서, 이와 관련하여, 이 동작을 제어하는 데 시간 제한이 이용될 수 있다. 예를 들어, 각각의 실행 사이클에 대해 하나의 시간 제한이 부과될 수 있고, 전체 프로세스에 대해 다른 시간 제한(예를 들어, 5 분 등)이 적용될 수 있다. 이러한 방법은 주어진 실행 사이클이 무한 루프에 들어가는 경우 일어날 수도 있는 복잡함을 회피하는 데 기여할 수 있다. 역시, 실행가능 프로그램 모델을 추가로 개발하고 개선시키기 위해 대응하는 운영 체제 호출이 모니터링되고 기록될 수 있다.
이 모델을 개발하기 위해 실행가능 프로그램의 거동을 포착하는 다양한 방식이 있다. 한 방법에서, 예를 들어, 이 프로세스(100)는 프로그램을 가상 환경에서(예를 들어, QEMU와 같은 가상화 환경 프로그램을 사용하여) 실행하는 것 및, PTRACE("Process Trace")와 같은 프로그램을 사용하여, 명령어가 실행될 때 명령어를 포착하는 것을 수용할 것이다. 이러한 방법을 사용하여, 모델은 기본적으로 프로그램에 의해 실행되는 운영 체제 호출에 대응하는 노드를 갖고 시스템 호출 사이의 제어 흐름에 대응하는 연결선을 갖는 그래프를 포함할 수 있다. 이러한 그래프는 운영 체제 호출이 프로그램의 다양한 경로에서 실행될 때 포착된 운영 체제 호출을 취합함으로써 작성될 수 있다.
앞서 살펴본 바와 같이, 모델의 개발은 프로그램이 실행될 때 프로그램에 동적으로 그리고 자동으로 제공되는 입력에 의존할 수 있다. 이 방법을 지원하기 위해 콘콜릭 실행(concolic execution)과 같은 기법이 사용될 수 있다. 여기서, 콘콜릭 실행은, 프로그램 입력 변수(상기한 바와 같이, 랜덤한 입력을 포함할 수 있음)로서 제공할 값을 발생하고 그로써 다양한 프로그램 경로를 탐색하기 위해, Stanford의 STP와 같은 제약조건 해결기(constraint solver)를 사용한다.
이 프로세스(100)는 이어서 최종 사용자 플랫폼에 대응하는 정책과 관련하여 실행가능 프로그램의 운영 체제 호출-기반 거동을 조사하기 위해 실행가능 프로그램의 이 모델을 사용하는 단계(104)를 제공한다. 정책 자체가 금지된 운영 체제 호출로 표현되어 있을 때, 이 조사는 금지된 운영 체제 호출의 예가 있는지 모델을 검색하는 것을 포함할 수 있다. 정책이 금지된 운영 체제 호출로 표현되어 있지 않을 때, 이 프로세스는 각각의 정책을 가능한 정도까지 하나 이상의 대응하는 운영 체제 호출의 표현으로 변환하고 이어서 이 도출된 결과를 사용하여 모델의 평가를 알려주는 것을 포함할 수 있다.
이 단계(104)가 실행가능 프로그램이 위반하고 있는 것처럼 보이는 정책(또는 일부 임계 수의 정책)을 노출시킬 때, 이 프로세스(100)는 기본적으로 완료될 것이다. 이 완료는 요망될 수도 있는 이러한 대응하는 동작을 포함할 수 있다. 예를 들어, 다운로드 동작을 거부하라는 또는 실행가능 프로그램이 최종 사용자 플랫폼의 무결성에 대한 위협을 나타내는 것처럼 보인다는 통지를 적어도 제공하라는 통지가 최종 사용자 플랫폼에 제공될 수 있다. 다른 예로서, 차후의 관련 다운로드 요청 또는 문의에 서비스할 때 이들 결과를 재사용할 수 있게 하기 위해 이들 결과가 저장될 수 있다(또는 이러한 정보의 다른 저장소에 제공될 수 있다).
실행가능 프로그램의 운영 체제 호출-기반 거동이 이 정책과 관련하여 허용가능한 것으로 조사될 때, 이 프로세스(100)는 이어서 모델을 축소시켜 모델의 축소된 버전을 제공하는 선택적인 단계(105)를 제공할 수 있다. 한 방법에서, 이것은, 예를 들어, 모델을 슬라이싱하여 슬라이싱된 모델을 제공하는 것을 포함할 수 있다. 슬라이싱이 기술 분야에 공지된 관행이고, 관심의 운영 체제 호출에 의존하지 않는 경로에 관한 정보를 모델에서 삭제하는 것을 최소한 포함한다는 것을 이해할 것이다. 한 방법에서, 이 슬라이싱은 최종 사용자 플랫폼에 의해 이전에 제공되었을 수 있는 정책에 기초하여 관심을 끄는 것으로 알려져 있는 일련의 운영 체제 호출에 기초하거나 최종 사용자 플랫폼이 이 단계(105)의 일부로서 또는 일부 이전의 단계의 일부로서 네트워크 인프라 구성요소에 제공했을 수 있는 하나 이상의 실제 운영 체제 호출에 기초할 수 있다.
슬라이싱이 공지된 기법을 포함하기 때문에, 이와 관련한 추가의 상세가 여기에 제공되지 않을 것이다. 최근의 전형적인 휴대폰 운영 체제가 최대 300개 정도의 운영 체제 호출을 지원할 수 있기 때문에, 관심이 없는 경로를 제거하는 것은 상당한 크기 감소를 가져올 수 있다.
어느 경우든지, 이 프로세스(100)는 이어서 최종 사용자 플랫폼이 실행가능 프로그램을 다운로드하도록 허용하는 단계(106)를 제공한다. 일반적으로 말하면, 이 "허용하는" 단계는 최종 사용자 플랫폼이 실행가능 프로그램을 다운로드하기 위해 대응하는 허가를 필요로 하고, 이러한 허가가 없는 경우, 최종 사용자 플랫폼이 다운로드 동작을 달성할 수 없는 것으로 가정한다. 이 "허가"는, 한 방법에서, 최종 사용자 프로그램에 상기한 결과를 통지하는 것을 포함할 수 있다. 이것은 또한, 상기한 것 대신에 또는 그와 함께, 프로그램이 최종 사용자 플랫폼에 다운로드될 수 있다는 것을 실행가능 프로그램의 소스에 통지하는 것을 포함한다. 또 다른 방법에서, 네트워크 인프라 구성요소 자체가 실행가능 프로그램의 소스로서 역할할 수 있다.
앞서 언급한 바와 같이, 전술한 바와 같이 네트워크 인프라 구성요소에 의해 조사되는 정책이 최종 사용자 플랫폼에 중요할 수 있는 정책들 전부를 포함할 수 있거나 포함하지 않을 수 있다. 많은 경우에, 실제로 최종 사용자 플랫폼이 민감한 정보를 훼손시키는 것을 방지하기 위해 비밀로 유지되는 몇몇 정책을 가질 수 있는 것이 예상된다. 이러한 경우에, 네트워크 인프라 구성요소가 필요한 조사 콘텐츠를 가지고 있지 않기 때문에, 기술된 조사 프로세스가 허용가능하지 않은 프로그램을 허용가능한 것으로 볼 가능성이 있다.
이러한 요구사항을 충족시키기 위해, 이 프로세스(100)는 또한, 원하는 경우, 최종 사용자 플랫폼에 모델을 전달하는 단계(107)를 지원할 것이다. 이 방법을 구현할 때, 많은 응용 환경에서, 완전한 모델보다는 상기한 슬라이싱된 모델을 최종 사용자 플랫폼에 제공하는 것이 유용할 가능성이 있다. 슬라이싱된 모델의 크기 및 복잡도의 감소는 최종 사용자 플랫폼에 대한 네트워크 연결을 특징지울 수 있는 대역폭 제한에 대한 부담을 덜 줄 것이다. 슬라이싱된 모델은 또한 최종 사용자 플랫폼의 제한된 처리 또는 능력 리소스와 더 잘 부합하는 감소된 계산 부하를 나타낼 수 있다.
다른 최종 사용자 플랫폼이 궁극적으로는 조사된 실행가능 프로그램에 유사한 관심을 표현할 가능성이 있다. 이 프로세스(100)가 다른 최종 사용자 플랫폼에 차후의 응답을 제공할 때 그 결과를 재사용하는 것을 용이하게 하도록 조사 프로세스의 결과를 유지하는 것을 곧바로 수용할 것임을 이해할 것이다. 그러나, 최종 사용자 플랫폼이 다른 정책을 가질 때가 있을 수 있다. 하나의 최종 사용자 플랫폼은, 예를 들어, 네이티브 블루투스 기능을 이용하려고 하는 호출에 민감할 수 있는 반면, 다른 최종 사용자 플랫폼은 이러한 기능이 없고 이러한 정책에 관해 전혀 관심이 없을 수도 있다.
이러한 경우에 대처하기 위해, 이 프로세스(100)는 또한 선택적으로 실행가능 프로그램에 대해 메시지-다이제스트 기능을 계산하고 그로써 [예를 들어, HAB(High Assurance Boot) 기술을 사용하여] 실행가능 프로그램의 서명된 버전을 생성하는 단계(108)를 수용할 것이며, 여기서 서명된 버전은 또한, 적어도 부분적으로, 실행가능 프로그램을 조사할 때 사용되는 정책들 중 하나 이상의 정책을 포함한다. 서명된 버전의 일반적인 생성은 잘 이해되는 노력의 영역을 포함하고, 여기서 추가의 설명을 필요로 하지 않는다.
그렇게 구성된 경우, 이 프로세스(100)는 이어서 또한 선택적으로, 다른 최종 사용자 플랫폼이 이 실행가능 프로그램을 다운로드하려고 시도하는지를 판정할 때, 실행가능 프로그램의 서명된 버전을 그 최종 사용자 플랫폼에 제공하는 단계(109, 110)를 지원할 것이다. 이 최종 사용자 플랫폼은 이어서 실행가능 프로그램의 확인된 상태가 실제로 그 자신의 정책 표준에 관련되어 있는 정도를 결정하기 위해 그 서명된 버전의 정책 콘텐츠를 평가할 수 있다. 예를 들어, 이 최종 사용자 플랫폼이 현재의 승인이 그 자신의 요구사항에 부적절한 것으로 결론내릴 때, 이 최종 사용자 플랫폼은 네트워크 인프라 구성요소가 이 최종 사용자 플랫폼에 의해 제공되거나 식별되는 하나 이상의 부가의 정책과 대조하여 모델을 비교하도록 요청할 수 있다.
이제 도 2를 참조하여 운영 체제 호출에 관한 복수의 정책을 가지는 최종 사용자 플랫폼에서 실행하기에 적합한 보충 프로세스(200)에 대해 기술할 것이다.
이 프로세스(200)는 상기한 바와 같이 특정의 실행가능 프로그램을 다운로드하는 것에 관한 정보를 네트워크 인프라 구성요소에 전달하는 단계(201)를 제공한다. 살펴본 바와 같이, 원하는 경우, 이 정보는, 적어도 부분적으로, 이 최종 사용자 플랫폼에 중요한 운영 체제 호출에 관한 정책의 일부(원하는 경우, 전부는 아님)에 관한 정보를 포함할 수 있다.
이 프로세스(200)는 이어서 또한 (네트워크 인프라 구성요소가 상기한 바와 같이 실행가능 프로그램을 조사한 것의 결과가 이러할 때) 실행가능 프로그램의 다운로드에 관한 승인을 네트워크 인프라 구성요소로부터 수신하는 단계(202)를 제공할 수 있다. 이 승인은 원하는 바에 따라 그리고 주어진 응용 환경을 특징지우는 요구 또는 기회에 적합한지에 따라 명시적/직접적이거나 암시적/간접적일 수 있다. 이 단계(202)는 또한 원하는 경우 전술한 바와 같이 실행가능 프로그램의 모델을 수신하는 것을 수용할 것이다. 이것은, 예를 들어, 상기한 슬라이싱된 모델을 포함할 수 있다.
이러한 경우에, 이 프로세스(200)는 이어서 또한 그의 정책의 전부가 아닌 일부와 관련하여 실행가능 프로그램의 운영 체제 호출-기반 거동을 조사하기 위해 수신된 모델을 사용하는 단계(203)를 제공할 수 있다. 일반적으로 말하면, 최종 사용자 플랫폼은 통상적으로 비밀로 유지되고, 예를 들어, 네트워크 인프라 구성요소와 공유하지 않는 그 특정의 정책을 조사하기만 하면 된다. 이것은 또한 조사 작업을 완료하는 데 최소량의 시간 및 온보드 리소스만을 사용하는 경향이 있을 수 있다.
이러한 로컬 조사 프로세스가 실행가능 프로그램의 운영 체제 호출-기반 거동에 관한 타당한 결과를 산출할 때, 이 프로세스(200)는 이어서 (선택적으로) 실행가능 프로그램을 최종 사용자 플랫폼으로 다운로드하는 것을 제공할 수 있다. 앞서 살펴본 바와 같이, 다운로드 소스는 변할 수 있다. 또한, 원하는 경우, 로컬 조사 프로세스의 결과를 기다리는 동안 다운로드된 콘텐츠를 격리되고 비실행된 상태로 유지하는 제어된 상황 하에서 조사 프로세스를 종료하기 전에 실행가능 프로그램의 일부 또는 전부를 다운로드하도록 최종 사용자 플랫폼을 구성하는 것이 가능할 것이다.
당업자라면 상기한 프로세스가 기술 분야에 공지된 부분적으로 또는 전체적으로 프로그램가능한 플랫폼 또는 일부 응용을 위해 요망될 수도 있는 전용 플랫폼을 비롯한 아주 다양한 이용가능하고 즉각 구성되는 플랫폼 중 임의의 것을 사용하여 용이하게 실시될 수 있다는 것을 이해할 것이다. 이제 도 3을 참조하여, 이러한 플랫폼에 대한 예시적인 방법이 이제부터 제공될 것이다.
예시적인 예에서, 네트워크 인프라 구성요소(300)는 메모리(302) 및 네트워크 인터페이스(303) 둘다에 연결되어 동작하는 제어 회로(301)를 포함한다. 메모리(302)는, 전체적으로 또는 부분적으로, 분리된 물리적 구성요소를 포함할 수 있거나, 부분적으로 또는 전체적으로 제어 회로(301)와 일체로 되어 있을 수 있다. 또한, 이 메모리(302)가 복수의 메모리 요소를 포함할 수 있거나 하나의 구성요소를 포함할 수 있다(예시로서 암시되어 있지만 필수적인 것은 아님)는 것을 이해할 것이다. 이 메모리(302)는, 예를 들어, 원하는 바에 따라, 상기한 정책, 실행가능 프로그램, 실행가능 프로그램의 초기 개발 모델, 실행가능 프로그램의 최종 모델, 프로그램의 슬라이싱된 버전, 또는 조사 프로세스의 결과를 저장하는 역할을 할 수 있다.
네트워크 인터페이스(303)는 또한 [직접 또는 간접 경로를 통해 인터넷(이것으로 제한되지 않음) 등의] 하나 이상의 네트워크(304)에 연결되어 동작한다. 그렇게 구성된 경우, 네트워크 인프라 구성요소(300)는 본 명세서에 기술된 다양한 통신 및 교환을 용이하게 하도록 이들 네트워크(304)를 통해 최종 사용자 플랫폼(305) 또는 하나 이상의 실행가능 프로그램 소스(306)에 연결되어 동작할 수 있다. 다양한 네트워크 및 아키텍처 배열이 기술 분야에 공지되어 있다. 이 개시 내용이 이와 관련하여 임의의 특정의 선택에 그다지 민감하지 않기 때문에, 간략함을 위해 그리고 명확함의 유지를 위해, 이와 관련한 추가의 상세가 여기에 제공되지 않을 것이다.
당업자라면 제어 회로(301)가 일정한 목적의 하드-와이어 플랫폼을 포함할 수 있거나 부분적으로 또는 전체적으로 프로그램가능한 플랫폼을 포함할 수 있다는 것을 인식하고 이해할 것이다. 이들 아키텍처 옵션 모두가 또한 기술 분야에 잘 알려져 있고 이해되고 있으며, 역시 여기서 추가의 설명을 필요로 하지 않는다.
그렇게 구성된 경우, 제어 회로(301)는 (당업자라면 잘 이해하는 바와 같이, 예를 들어, 대응하는 프로그래밍을 사용하여) 본 명세서에 기술된 동작, 단계 또는 기능 중 하나 이상을 수행하도록 구성될 수 있다. 이것은, 예를 들어, 최종 사용자 플랫폼(305)이 실행가능 프로그램을 다운로드하려고 시도하는지의 상기한 판정을 하고, 실행가능 프로그램의 운영 체제 호출-기반 거동을 나타내는 실행가능 프로그램의 대응하는 모델을 개발하기 위해 실행가능 프로그램을 자동으로 실행하며, 최종 사용자 플랫폼에 대응하는 정책과 관련하여 실행가능 프로그램의 운영 체제 호출-기반 거동을 조사하기 위해 모델을 사용하고, 실행가능 프로그램의 운영 체제 호출-기반 거동이 이들 정책과 관련하여 허용가능한 것으로 조사될 때 최종 사용자 플랫폼(305)이 실행가능 프로그램을 다운로드하는 것을 허용하도록 제어 회로(301)를 구성하는 것을 포함할 수 있다.
유사한 방식으로, 최종 사용자 플랫폼(305)은, 본 명세서에 기술된 바와 같이, 최종 사용자 동작, 단계 또는 기능 중 하나 이상을 수행하도록 구성될 수 있다.
당업자라면 이러한 장치(300)가, 도 3에 도시된 예시에서 암시된 바와 같이, 복수의 물리적으로 분리된 요소를 포함할 수 있다는 것을 인식하고 이해할 것이다. 그러나, 또한 이 예시를 논리적 뷰를 포함하는 것으로 보는 것도 가능하며, 이 경우에 이들 요소 중 하나 이상의 요소가 공유된 플랫폼을 통해 실시되고 실현될 수 있다.
이와 관련하여 제한하려는 것이 아니라 예시로서, 이제부터 예시적인 사용 사례가 제공될 것이다. 도 4를 참조하면, 제1 최종 사용자 플랫폼은 특정의 실행가능 프로그램을 식별하고 운영 체제 호출에 관한 다수의 최종 사용자 플랫폼의 정책을 포함하는 다운로드 문의(download inquiry)를 포함하는 메시지(401)를 발신한다. 이 메시지(401)는 네트워크 인프라 구성요소에 제공되고, 네트워크 인프라 구성요소는 이어서 대응하는 실행가능 프로그램 소스에 액세스하고 식별된 프로그램을 다운로드(402)한다.
네트워크 인프라 구성요소는 이어서 (그 다운로드된 실행가능 프로그램을 사용하여) 본 명세서에 기술된 바와 같이 모델을 개발(403)하고, 최종 사용자 플랫폼의 정책과 대조하여 그 모델을 조사(404)한다. 이 조사에서 타당하지 않은 결과가 얻어질 때, 네트워크 인프라 구성요소는 최종 사용자 플랫폼에 의한 프로그램의 다운로드를 거부하거나 다른 방식으로 방해하기 위해 하나 이상의 동작(도시 생략)을 취할 수 있다.
조사 프로세스(404)에서 타당한 결과가 얻어질 때, 이 예시적인 예에서, 네트워크 인프라 구성요소는 모델의 슬라이싱된 모델을 개발(405)하고, 그 슬라이싱된 모델 및 대응하는 승인 메시지(406)를 제1 최종 사용자 플랫폼에 제공한다. 제1 최종 사용자 플랫폼은 또한 이어서 이와 관련하여 최종 사용자 플랫폼이 관심을 가지고 있고 네트워크 인프라 구성요소에 의해 아직 액세스되지 않은 임의의 나머지 정책을 조사하기 위해 그 슬라이싱된 모델을 사용(407)한다. 이 제2 조사 프로세스가 또다시 성공적인 결과를 산출할 때, 제1 최종 사용자 플랫폼은 이어서 원래의 의도 및 목표에 따라 실행가능 프로그램을 다운로드(408)한다.
이 예시적인 예에서, 얼마간 나중에(예를 들어, 수분 또는 수일 후에), 제2 최종 사용자 플랫폼은 유사한 다운로드 문의 메시지(409)를 네트워크 인프라 구성요소에 제공한다. 그러나, 이 경우에, 상기한 모델 개발 및 조사 동작을 반복하기 보다는, 네트워크 인프라 구성요소는 (이 제2 최종 사용자 플랫폼이 실제로 이전에 조사된 프로그램을 다운로드하려고 시도하는지를 판정할 때) 단순히 슬라이싱된 모델과 관련하여 승인 메시지(410)를 제2 최종 사용자 플랫폼에 전달한다. 한 방법에서, 원하는 경우, 제2 최종 사용자 플랫폼에 대한 정책이 이전에 개발된 모델이 조사될 때 대조되었던 정책과 충분히 유사한 것으로 판정할 때 이 축소된 방법이 조정될 수 있다. 제2 최종 사용자 플랫폼에 제공된 슬라이싱된 모델은 네트워크 인프라 구성요소에 의해 제1 최종 사용자 플랫폼에 최초로 제공된 슬라이싱된 모델(406)과 유사할 수 있거나, 원하는 경우, 제2 최종 사용자 플랫폼에 제공된 슬라이싱된 모델이 다를 수 있다. 예를 들어, 제2 최종 사용자 플랫폼이 관심의 하나 이상의 다른 시스템 호출을 가지고 있다는 것을 네트워크 인프라 구성요소가 알고 있을 때 제2 최종 사용자 플랫폼에 다른 슬라이싱된 모델을 제공하는 것이 적절할 수 있다.
그렇게 구성된 경우, 최종 사용자 플랫폼은 로컬 조사 능력에서의 상응하는 상당한 증가를 필요로 하지 않고 이용가능한 실행가능 프로그램 소스의 전체집합을 크게 확장할 수 있다. 본 명세서에 기술된 프로세스는 소스 코드에 액세스할 필요가 없고 최종 사용자 플랫폼이 관심을 갖는 정책을 포함하거나 그에 관련되어 있는 운영 체제 호출을 조사하는 데 특히 유용하다. 이 개시 내용은 고도로 확장가능하고, 현재 이용가능한 기술, 아키텍처 및 처리 능력을 곧바로 이용할 수 있으며, 많은 네트워크 응응 환경을 특징지우는 대역폭 제한을 존중한다.
당업자라면 본 발명의 사상 및 범위를 벗어나지 않고 상기한 실시예와 관련하여 아주 다양한 수정, 변경 및 결합이 행해질 수 있다는 것과 이러한 수정, 변경 및 결합이 발명 개념의 범위 내에 있는 것으로 보아야 한다는 것을 인식할 것이다. 이와 관련한 예로서, 네트워크 인프라 구성요소에 의해 처음으로 이용되는 정책은 주어진 부류 또는 그룹의 최종 사용자 플랫폼과 관련되어 있는 것으로 가정되거나 알려져 있는 일련의 일반 정책을 포함할 수 있다. 이러한 일련의 일반 정책은 네트워크 인프라 구성요소에 관한 네이티브 및 로컬 리소스를 통해 전체적으로 또는 부분적으로 이용가능할 수 있거나, 전체적으로 또는 부분적으로, 이러한 서비스를 제공하는 정책 서버와 같은 원격 리소스로부터 획득될 수 있다. 이러한 경우에, 최종 사용자 플랫폼은 (어쩌면 역시 비밀 정보를 포함하거나 다른 방식으로 나타낼 수 있는 정책을 제외시키는 것에 의해) 일련의 일반 정책을 하나 이상의 부가 정책으로 추가적으로 보완할 수 있거나 그렇지 않을 수 있다.

Claims (10)

  1. 네트워크 인프라 구성요소(300)에서,
    최종 사용자 플랫폼(305)이 실행가능 프로그램을 다운로드하려고 시도하는지를 판정하는 단계(101);
    상기 실행가능 프로그램의 운영 체제 호출-기반 거동을 나타내는 상기 실행가능 프로그램의 대응하는 모델을 개발하기 위해 상기 실행가능 프로그램을 실행하는 단계(103);
    상기 최종 사용자 플랫폼(305)에 대응하는 정책들과 관련하여 상기 실행가능 프로그램의 상기 운영 체제 호출-기반 거동을 조사하기 위해 상기 실행가능 프로그램의 상기 모델을 사용하는 단계(104); 및
    상기 실행가능 프로그램의 상기 운영 체제 호출-기반 거동이 상기 정책들과 관련하여 허용가능한 것으로 조사될 때 상기 최종 사용자 플랫폼(305)이 상기 실행가능 프로그램을 다운로드하도록 허용하는 단계(106)
    를 포함하고,
    상기 실행가능 프로그램의 운영 체제 호출-기반 거동을 나타내는 상기 실행가능 프로그램의 대응하는 모델을 개발하기 위해 상기 실행가능 프로그램을 실행하는 단계는 랜덤한 입력 콘텐츠를 사용하여 상기 실행가능 프로그램을 실행하는 단계를 포함하는 방법.
  2. 삭제
  3. 제1항에 있어서, 상기 실행가능 프로그램의 운영 체제 호출-기반 거동을 나타내는 상기 실행가능 프로그램의 대응하는 모델을 개발하기 위해 상기 실행가능 프로그램을 실행하는 단계는 자동으로 발생된 상이한 입력 콘텐츠를 사용하여 복수회 상기 실행가능 프로그램을 실행하는 단계를 포함하는 방법.
  4. 제1항에 있어서,
    슬라이싱된 모델을 제공하기 위해 상기 모델을 슬라이싱하는 단계를 더 포함하고,
    상기 최종 사용자 플랫폼이 상기 실행가능 프로그램을 다운로드하도록 허용하는 단계는 또한 상기 슬라이싱된 모델을 상기 최종 사용자 플랫폼으로 전달하는 단계를 포함하는 방법.
  5. 제1항에 있어서, 상기 실행가능 프로그램의 상기 운영 체제 호출-기반 거동이 상기 정책들과 관련하여 허용가능한 것으로 조사될 때,
    상기 실행가능 프로그램에 대해 메시지-다이제스트(message-digest) 기능을 계산하고 이에 따라 상기 실행가능 프로그램의 서명된 버전을 생성하는 단계 - 이 서명된 버전은 또한, 부분적으로, 상기한 정책들 중 적어도 하나의 정책을 포함함 - 를 더 포함하는 방법.
  6. 네트워크 인프라 구성요소(300)를 포함하는 장치로서,
    메모리(302);
    네트워크 인터페이스(303); 및
    상기 메모리(302) 및 상기 네트워크 인터페이스(303)에 연결된 제어 회로(301)
    를 가지며, 상기 제어 회로(301)는,
    최종 사용자 플랫폼(305)이 실행가능 프로그램을 다운로드하려고 시도하는지를 판정하고(101);
    상기 실행가능 프로그램의 운영 체제 호출-기반 거동을 나타내는 상기 실행가능 프로그램의 대응하는 모델을 개발하기 위해 상기 실행가능 프로그램을 실행하며(103);
    상기 최종 사용자 플랫폼(305)에 대응하는 정책들과 관련하여 상기 실행가능 프로그램의 상기 운영 체제 호출-기반 거동을 조사하기 위해 상기 실행가능 프로그램의 상기 모델을 사용하고(104);
    상기 실행가능 프로그램의 상기 운영 체제 호출-기반 거동이 상기 정책들과 관련하여 허용가능한 것으로 조사될 때 상기 최종 사용자 플랫폼(305)이 상기 실행가능 프로그램을 다운로드하도록 허용하도록(106) 구성되고,
    상기 제어 회로는 또한, 랜덤한 입력 콘텐츠를 사용하여 상기 실행가능 프로그램을 실행함으로써 상기 실행가능 프로그램의 운영 체제 호출-기반 거동을 나타내는 상기 실행가능 프로그램의 대응하는 모델을 개발하기 위해 상기 실행가능 프로그램을 실행하도록 구성되는 장치.
  7. 삭제
  8. 제6항에 있어서, 상기 제어 회로는 또한, 자동으로 발생된 상이한 입력 콘텐츠를 사용하여 복수회 상기 실행가능 프로그램을 실행함으로써 상기 실행가능 프로그램의 운영 체제 호출-기반 거동을 나타내는 상기 실행가능 프로그램의 대응하는 모델을 개발하기 위해 상기 실행가능 프로그램을 실행하도록 구성되는 장치.
  9. 제6항에 있어서, 상기 제어 회로는 또한 상기 최종 사용자 플랫폼으로부터 상기 정책들에 관한 정보를 상기 네트워크 인터페이스를 통해 수신하도록 구성되는 장치.
  10. 제6항에 있어서, 상기 제어 회로는 또한 슬라이싱된 모델을 제공하기 위해 상기 모델을 슬라이싱하도록 구성되고, 상기 제어 회로는 또한 상기 슬라이싱된 모델을 상기 최종 사용자 플랫폼에도 또한 전달함으로써 상기 최종 사용자 플랫폼이 상기 실행가능 프로그램을 다운로드하도록 허용하도록 구성되는 장치.
KR1020117023099A 2009-04-01 2010-03-25 모델을 사용하여 실행가능 프로그램을 조사하는 방법 및 장치 KR101373986B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/416,657 2009-04-01
US12/416,657 US8484625B2 (en) 2009-04-01 2009-04-01 Method and apparatus to vet an executable program using a model
PCT/US2010/028563 WO2010120460A1 (en) 2009-04-01 2010-03-25 Method and apparatus to vet an executable program using a model

Publications (2)

Publication Number Publication Date
KR20110124342A KR20110124342A (ko) 2011-11-16
KR101373986B1 true KR101373986B1 (ko) 2014-03-12

Family

ID=42358395

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117023099A KR101373986B1 (ko) 2009-04-01 2010-03-25 모델을 사용하여 실행가능 프로그램을 조사하는 방법 및 장치

Country Status (8)

Country Link
US (1) US8484625B2 (ko)
EP (1) EP2414935B1 (ko)
KR (1) KR101373986B1 (ko)
CN (1) CN102378963A (ko)
BR (1) BRPI1014870B1 (ko)
MX (1) MX2011010196A (ko)
RU (1) RU2575985C2 (ko)
WO (1) WO2010120460A1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9652616B1 (en) * 2011-03-14 2017-05-16 Symantec Corporation Techniques for classifying non-process threats
US8438532B2 (en) 2011-04-19 2013-05-07 Sonatype, Inc. Method and system for scoring a software artifact for a user
US8627270B2 (en) 2011-09-13 2014-01-07 Sonatype, Inc. Method and system for monitoring a software artifact
US9141378B2 (en) 2011-09-15 2015-09-22 Sonatype, Inc. Method and system for evaluating a software artifact based on issue tracking and source control information
GB2497932A (en) * 2011-12-21 2013-07-03 Ibm Network device modelling of configuration commands to predict the effect of the commands on the device.
US8656343B2 (en) 2012-02-09 2014-02-18 Sonatype, Inc. System and method of providing real-time updates related to in-use artifacts in a software development environment
US8825689B2 (en) 2012-05-21 2014-09-02 Sonatype, Inc. Method and system for matching unknown software component to known software component
US9141408B2 (en) * 2012-07-20 2015-09-22 Sonatype, Inc. Method and system for correcting portion of software application
US9135263B2 (en) 2013-01-18 2015-09-15 Sonatype, Inc. Method and system that routes requests for electronic files
US9135324B1 (en) * 2013-03-15 2015-09-15 Ca, Inc. System and method for analysis of process data and discovery of situational and complex applications
US9069562B2 (en) * 2013-10-23 2015-06-30 International Business Machines Corporation Mobile computing program slicing and behavior
KR20160099160A (ko) * 2015-02-11 2016-08-22 한국전자통신연구원 명령어 집합의 행위 패턴을 엔-그램 방식으로 모델링하는 방법, 그 방법으로 동작하는 컴퓨팅 장치, 및 그 방법을 컴퓨팅 장치에서 실행하도록 구성되는 기록 매체에 저장된 프로그램
US9971594B2 (en) 2016-08-16 2018-05-15 Sonatype, Inc. Method and system for authoritative name analysis of true origin of a file
US10630703B1 (en) 2019-07-25 2020-04-21 Confluera, Inc. Methods and system for identifying relationships among infrastructure security-related events
US10630716B1 (en) 2019-07-25 2020-04-21 Confluera, Inc. Methods and system for tracking security risks over infrastructure
US10630704B1 (en) 2019-07-25 2020-04-21 Confluera, Inc. Methods and systems for identifying infrastructure attack progressions
US10574683B1 (en) * 2019-07-25 2020-02-25 Confluera, Inc. Methods and system for detecting behavioral indicators of compromise in infrastructure
US10630715B1 (en) 2019-07-25 2020-04-21 Confluera, Inc. Methods and system for characterizing infrastructure security-related events
US10887337B1 (en) 2020-06-17 2021-01-05 Confluera, Inc. Detecting and trail-continuation for attacks through remote desktop protocol lateral movement
CN112732557B (zh) * 2020-12-30 2023-09-08 科来网络技术股份有限公司 数据偏移下载的接口测试脚本实现方法及自动化测试方法
US11397808B1 (en) 2021-09-02 2022-07-26 Confluera, Inc. Attack detection based on graph edge context
US20230367590A1 (en) * 2022-05-13 2023-11-16 Cisco Technology, Inc. Application portability metric measurement

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6092194A (en) * 1996-11-08 2000-07-18 Finjan Software, Ltd. System and method for protecting a computer and a network from hostile downloadables
US20080209556A1 (en) 2007-01-19 2008-08-28 International Business Machines Corporation Method and device for verification of code module in virtual machine

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19701166A1 (de) * 1997-01-15 1998-07-23 Siemens Ag Verfahren zur Überwachung der bestimmungsgemäßen Ausführung von Softwareprogrammen
US5974549A (en) * 1997-03-27 1999-10-26 Soliton Ltd. Security monitor
US6119165A (en) * 1997-11-17 2000-09-12 Trend Micro, Inc. Controlled distribution of application programs in a computer network
US6088803A (en) * 1997-12-30 2000-07-11 Intel Corporation System for virus-checking network data during download to a client device
US5987610A (en) * 1998-02-12 1999-11-16 Ameritech Corporation Computer virus screening methods and systems
US6907546B1 (en) * 2000-03-27 2005-06-14 Accenture Llp Language-driven interface for an automated testing framework
US7146305B2 (en) * 2000-10-24 2006-12-05 Vcis, Inc. Analytical virtual machine
EP1340167A2 (en) * 2000-11-28 2003-09-03 4thPass Inc. Method and system for maintaining and distributing wireless applications
US6804709B2 (en) * 2001-02-20 2004-10-12 Microsoft Corporation System uses test controller to match different combination configuration capabilities of servers and clients and assign test cases for implementing distributed testing
US6988055B1 (en) * 2002-10-04 2006-01-17 American Megatrenos, Inc. Method, system, and apparatus for providing a single diagnostics module on-demand
US20040193703A1 (en) * 2003-01-10 2004-09-30 Guy Loewy System and method for conformance and governance in a service oriented architecture
US6882951B2 (en) * 2003-07-07 2005-04-19 Dell Products L.P. Method and system for information handling system automated and distributed test
US7908653B2 (en) * 2004-06-29 2011-03-15 Intel Corporation Method of improving computer security through sandboxing
JP4732874B2 (ja) * 2005-11-28 2011-07-27 株式会社エヌ・ティ・ティ・ドコモ ソフトウェア動作モデル化装置、ソフトウェア動作監視装置、ソフトウェア動作モデル化方法及びソフトウェア動作監視方法
WO2007117585A2 (en) * 2006-04-06 2007-10-18 Smobile Systems Inc. System and method for managing malware protection on mobile devices
US20080148298A1 (en) * 2006-12-18 2008-06-19 Palm, Inc. System and Methods for Providing Granular Security for Locally Running Scripted Environments and Web Applications
US9413825B2 (en) * 2007-10-31 2016-08-09 Emc Corporation Managing file objects in a data storage system
US8429002B2 (en) * 2009-03-31 2013-04-23 Oracle International Corporation Approaches for enforcing best practices and policies through computerized processes

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6092194A (en) * 1996-11-08 2000-07-18 Finjan Software, Ltd. System and method for protecting a computer and a network from hostile downloadables
US20080209556A1 (en) 2007-01-19 2008-08-28 International Business Machines Corporation Method and device for verification of code module in virtual machine

Also Published As

Publication number Publication date
KR20110124342A (ko) 2011-11-16
WO2010120460A1 (en) 2010-10-21
EP2414935A1 (en) 2012-02-08
RU2011144144A (ru) 2013-05-10
MX2011010196A (es) 2011-11-18
BRPI1014870A2 (pt) 2016-04-12
EP2414935B1 (en) 2020-06-03
BRPI1014870B1 (pt) 2020-11-24
RU2575985C2 (ru) 2016-02-27
CN102378963A (zh) 2012-03-14
US8484625B2 (en) 2013-07-09
US20100257253A1 (en) 2010-10-07

Similar Documents

Publication Publication Date Title
KR101373986B1 (ko) 모델을 사용하여 실행가능 프로그램을 조사하는 방법 및 장치
US10104107B2 (en) Methods and systems for behavior-specific actuation for real-time whitelisting
US20150180908A1 (en) System and method for whitelisting applications in a mobile network environment
Jiang et al. Android malware
US20130097659A1 (en) System and method for whitelisting applications in a mobile network environment
Do et al. Enhancing user privacy on android mobile devices via permissions removal
US8474040B2 (en) Environmental imaging
US10298586B2 (en) Using a file whitelist
CN107408124B (zh) 安全方法、安全系统、计算设备以及计算机可读存储介质
CN111163094B (zh) 网络攻击检测方法、网络攻击检测装置、电子设备和介质
Jing et al. Checking intent-based communication in android with intent space analysis
CN110192195B (zh) 用于安全数据访问的系统、方法和计算机存储介质
JP5828457B2 (ja) Api実行制御装置およびプログラム
Ahmed et al. Digital evidence extraction and documentation from mobile devices
Du et al. An Empirical Analysis of Hazardous Uses of Android Shared Storage
US20130263278A1 (en) Method and apparatus for controlling operations performed by a mobile co
US20200329056A1 (en) Trusted advisor for improved security
US11882123B2 (en) Kernel level application data protection
Khan et al. Differences in Inter-App Communication Between Android and iOS Systems
Faruki Techniques For Analysis And Detection Of Android Malware...
Ahmed et al. Efficient generalized forensics framework for extraction and documentation of evidence from mobile devices
Puente Arribas et al. Malware Analysis on Android
Nadimpalli Universal Skeptic Binder-Droid-Towards Arresting Malicious Communication of Colluding Apps in Android
Mutchler Empirical Studies in Mobile Security and Privacy
Nasman Malware Detection Based on Permissions on Android Platform Using Data Mining

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: 20170228

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180227

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20200226

Year of fee payment: 7