KR20140016897A - 디바이스 상의 앱들의 보안화 및 관리 - Google Patents

디바이스 상의 앱들의 보안화 및 관리 Download PDF

Info

Publication number
KR20140016897A
KR20140016897A KR1020137023905A KR20137023905A KR20140016897A KR 20140016897 A KR20140016897 A KR 20140016897A KR 1020137023905 A KR1020137023905 A KR 1020137023905A KR 20137023905 A KR20137023905 A KR 20137023905A KR 20140016897 A KR20140016897 A KR 20140016897A
Authority
KR
South Korea
Prior art keywords
app
security
apps
policy
secure
Prior art date
Application number
KR1020137023905A
Other languages
English (en)
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 KR20140016897A publication Critical patent/KR20140016897A/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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • 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
    • G06F21/54Monitoring 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 by adding security routines or objects to programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • H04W12/37Managing security policies for mobile devices or for controlling mobile applications
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72406User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by software upgrading or downloading
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/60Subscription-based services using application servers or record carriers, e.g. SIM application toolkits

Abstract

앱들이 스마트폰 또는 태블릿 디바이스와 같은 디바이스로 다운로드되기 이전이나, 또는 앱들이 다운로드된 이후 그러나 앱들이 디바이스 운영체계에 액세스하는 것이 허용되어 임의의 잠재적인 손상을 야기시키기 이전에, 앱들은 보안화되거나 또는 보안 래핑된다 (security-wrapped). 고용주 또는 셀폰 제공자와 같은 앱 제공자는, 고객들이 자신들의 앱스토어, 마켓플레이스로부터 앱을 다운로드하기 이전에 자신의 앱들을 보안화할 수 있다. 앱이 디바이스의 운영체계에 액세스하는 것이 허용되기 이전에 앱은 보안화되어, 앱이 유해한 거동을 하는 것을 방지한다. 앱의 코어 오브젝트 코드가 획득되고 디지털 서명 (digital signature) 이 제거된다. 앱 오브젝트 코드가 보안 프로그램 오브젝트 코드로 대체되어, 보안 래핑된 앱을 생성한다. 디바이스 상에서의 실행을 위해 보안 래핑된 앱이 준비되고 새로운 키로 재서명된다.

Description

디바이스 상의 앱들의 보안화 및 관리{SECURING AND MANAGING APPS ON A DEVICE}
본 발명은 소프트웨어 및 모바일 디바이스들에 관한 것이다. 특히, 본 발명은 핸드셋들, 텔레비젼들, 자동차들, 및 다른 신종 스마트 디바이스 카테고리들과 같은 디바이스들 상의 앱들을 보안화 (securing) 하고, 제어하고 그리고 관리하는 것에 관련된다.
현재 컴퓨팅 및 모바일 핸드셋 및 스마트폰 산업들에서 공지된 바와 같이, 새로운 컴퓨팅 패러다임이 출현하고 있으며 핸드헬드 또는 모바일 디바이스들에 대한 앱들로서 현재 통상적으로 알려진 소프트웨어 어플리케이션들의 확산에 의해 가속되고 있다. 이러한 확산은 스마트폰들 및 태블릿들의 소비자 채택에 직접적으로 관련된다. 기업들 (enterprises) 은 현재 그들 자신의 고유한 앱들을 생성하여 그 앱들을 피고용인, 고객들, 및 파트너들에게 분포시키고 있다. 회사들 (companies) 은 현재 그들의 피고용인 및 파트너들이 사용할 그들 자신의 앱들을 작성하고 있다. 그러나, 이러한 성장과 함께 다른 문제점, 즉, 핸드셋 디바이스들 상에서의 이들 앱들의 보안 및 관리의 문제점이 대두되고 있다. 앱들은 핸드헬드 디바이스에 심각한 손상을 야기시키킬 수 있고 데이터의 손실 또는 의도하지 않은 데이터의 송신을 야기시킬 수 있다. 이들은 디바이스에 대한 취약성 및 유저에 대한 보안 리스크를 제기한다.
MyLookOut에 의해 제공되는 것과 같은 전통적인 안티바이러스 접근법은, 핸드셋 디바이스 상의 앱에 의해 이루어진 손상을 제거할 수 없다. 앱들의 블랙 리스트화는 (다운로드될 리스트 상의 앱들뿐만 아니라) 디바이스들을 보호하기에 부분적으로 충분하지만, 멀웨어에 감염된 앱이 모바일 디바이스에 대해 행한 손상을 억제하는 방법이 있다면 더 좋을 것이다. 모바일 디바이스용의 운영체계 소프트웨어의 커널이 변경되지 않아야 하는 경우가 선호될 것이다. 앱 작성자가 보안 프로그래밍의 기술을 훈련받지 않아야 하는 경우나, 또는 앱을 기록할 때 보안을 위해 특별한 또는 커스터마이징된 무언가를 작성하지 않아야 하는 경우-현재 그들이 행하고 있는 것처럼 단순히 앱들을 계속해서 작성할 수 있는 경우가 또한 선호될 것이다.
발명의 요약
본 발명의 일 양태에 있어서, 앱들이 스마트폰 또는 태블릿 디바이스와 같은 디바이스로 다운로드되기 이전이나, 또는 앱들이 다운로드된 이후 그러나 앱들이 디바이스 운영체계에 액세스하는 것이 허용되어 임의의 잠재적인 손상을 야기시키기 이전에, 앱들은 보안화되거나 또는 보안 래핑된다 (security-wrapped). 고용주 또는 무선 셀폰 제공자와 같은 앱 제공자는, 고객들이 자신들의 앱스토어, 마켓플레이스 등으로부터 앱을 다운로드하기 이전에 자신의 앱들을 보안화할 수 있다. 앱이 디바이스의 운영체계 또는 다른 컴포넌트들에 액세스하는 것이 허용되기 이전에 앱은 보안화되어, 앱이 디바이스에 대해 유해한 거동을 하는 것을 방지한다.
본 발명의 일 양태에서, 보안 프로그램을 사용하여 디바이스 상에서의 실행을 위해 앱을 보안화하는 방법이 설명된다. 앱의 코어 오브젝트 코드가 획득되고 디지털 서명 (digital signatur) 이 제거된다. 앱 오브젝트 코드가 보안 프로그램 오브젝트 코드로 대체되어, 보안 래핑된 앱을 생성한다. 디바이스 상에서의 실행을 위해 보안 래핑된 앱이 준비되고 새로운 키로 재서명된다. 이렇게 하여, 데이터에 대한 액세스를 제어하고 보안화하기 위한 중앙집중형 정책 (centralized policy) 이 디바이스 상에서 구현된다.
본 발명의 다른 양태에 있어서, 앱이 디바이스에 손상을 주는 것을 방지하는 방법이 설명된다. 보안 래핑된 앱은 디바이스 상에서 실행된다. 앱 보안 프로그램에 의한 보안 체크는, 디바이스의 운영체계에 대해 앱에 의해 만들어진 호출에 적용된다. 호출에 대한 보안 체크의 결과들에 기초하여, 앱 보안 프로그램은 다음 중 하나를 수행한다: (a) 호출이 운영체계로 전달되는 것을 허용한다; (b) 호출을 강화시킨다; (c) 호출을 차단한다; 또는 (d) 보안 래핑된 앱의 실행을 종료한다.
본 명세서의 일부를 형성하며 본 발명의 특정 구체예들이 예시적인 방식으로 도시된 첨부된 도면들을 참조한다;
도 1a는 본 발명의 앱 제어 프로세스의 개관을 도시하는 블록도이고;
도 1b는 본 발명의 앱 제어 프로세스의 대안적인 구체예를 도시하는 블록도이고;
도 2는 본 발명의 일 구체예에 따른 앱 보안 프로그램의 컴포넌트들을 도시하는 블록도이고;
도 3은 본 발명의 일 구체예에 따른 디바이스 상으로 앱을 다운로드하기 이전에 앱을 보안화하기 위한 프로세스를 도시하는 흐름도이고;
도 4는 일 구체예에 따른 정책 매니저에서 수행되는 방법의 흐름도이고;
도 5는 일 구체예에 따른 핸드셋 또는 모바일 디바이스 상에서 실행되는 보안 래핑된 앱의 프로세스를 도시하는 흐름도이고;
도 6은 일 구체예에 따른 앱 보안 제어 시스템의 시스템 아키텍쳐 다이어그램이며; 그리고
도 7a 및 도 7b는 본 발명의 여러 구체예들을 구현하기에 적합한 컴퓨팅 시스템의 블록도이다.
어플리케이션 보안 프로세스 및 시스템의 예시적인 구체예들이 설명된다. 이들 실시형태들 및 구체예들은 오로지 본 발명의 이해를 돕고 본 발명의 콘텍스트를 추가하기 위해 제공된다. 따라서, 본 발명이 본원에서 설명되는 특정 상세들의 전체 또는 일부가 없어도 실시될 수도 있음이 당업자에게는 자명할 것이다. 다른 경우들에서, 본 발명을 불필요하게 모호하게 하는 것을 방지하기 위해 공지의 개념들은 상세히 설명되지 않는다. 다른 어플리케이션들 및 실시예들도 가능하며, 따라서 하기의 실시예들, 예시들, 및 콘텍스트들은 범위 또는 설정에서 한정적이거나 제한적인 것으로 간주되어선 안된다. 당업자가 본 발명을 실시하는 것을 가능하게 하도록 이들 구체예들이 충분히 상세히 설명되지만, 이들 실시예들, 예시들, 및 콘텍스트들은 제한되지 않으며, 본 발명의 취지와 범위를 벗어나지 않으면서 다른 구체예들이 사용될 수도 있고 변경예들이 이루어질 수도 있다.
디바이스 소프트웨어 어플리케이션들이 디바이스, 특히 모바일 디바이스를 감염시키거나 또는 다르게는 손상을 주는 것을 방지하기 위한 방법들 및 시스템을 여러 도면들에서 나타낸다. 다양한 모바일 디바이스들, 예컨대 스마트폰들, 태블릿 컴퓨터들, 게임용 디바이스들, 및 휴대형 컴퓨팅 디바이스들 상에서 종종 사용되는 이들 유형들의 어플리케이션들은 통상 "앱들"로 칭해진다. 또한, 이들 앱들은 TV들, 컴퓨터들, 자동차들, 및 다른 신종 스마트 디바이스 카테고리들과 같은 비-모바일 디바이스들로 다운로드될 수도 있다. 설명되는 방법들 및 시스템들은 모바일 디바이스들 상에서의 동작으로 제한되는 것으로 의도되지 않는다. 이들 디바이스 프로그램들 또는 앱들은 확산되어 왔고 현재 널리 보급되어 있다. 현재, 앱들은 통상 자바 또는 C 언어로 작성된다. 본원에서 설명되는 방법들 및 시스템들은 자바 또는 C 언어로 작성된 앱들, 또는 다른 플랫폼들을 위한 다른 언어들로 작성된 앱들에 적용될 수도 있다. 전체는 아니지만 대부분의 앱들은, 앱이 그 의도된 기능을 수행하기 위해 필요로 하는 특정 서비스를 얻기 위해 모바일 디바이스의 운영체계와 통신해야만 하는데, 이 서비스는 보통 운영체계로부터만 이용 가능하다. 사용되는 이러한 서비스의 통상의 예는, 앱이 필요로 할 수도 있는 디바이스의 위치를 얻기 위한 GPS이다. 그러나, 이 노출로 인해, 앱들은 디바이스에 대한 취약점이며 유저에 대해 보안 및 프라이버시 리스크를 제기한다. 회사들은 자신의 데이터 및 소프트웨어를 제어하고 액세스를 보안화하기 위한 중앙집중형 정책을 강제할 수 있기를 원한다. 이것은 또한 최종 유저들 (즉, 개인들, 홈 유저들 등) 의 경우에도 마찬가지이다. 이것은 기업 IT 부서들이 회사 데이터의 제어를 유지할 수 있게 한다. 이하 설명되는 방법들은 모바일 디바이스들로 다운로드된 앱들이 보안 위협을 제공하지 않도록 그 앱들에 대한 보안을 제어하는 중앙집중형 방식을 제공하는데, 여기서 디바이스들은 피고용인의 개인적인 폰이거나 또는 고용주의 폰이다. 본 발명의 다양한 구체예들은, 부모들 및 개인들 (즉, 직장이 아닌 환경 또는 가정 내) 의 개인적 모바일 디바이스들이 멀웨어로부터 보안화된다는 것을 보장하기 위해 그들에 의해 또한 사용될 수도 있고, 사용량과 같은 제어들을 적용하기 위해 또한 사용될 수도 있다. 본 발명의 앱 제어 소프트웨어의 구체예들은 모바일 디바이스 데이터 보호 및 백업을 위해 그리고 어플리케이션 레벨의 텔레메트리 (telemetry) 를 위해 또한 사용될 수도 있다.
도 1a는 본 발명의 앱 제어 프로세스의 개관을 도시하는 블록도이다. 그것은 특정 구성 또는 환경에 구속되지 않는 일 프로세스의 일반적인 묘사이다. 앱 (102) 은 임의의 유형의 엔티티 (개인, 소프트웨어 개발자, 고용주, 등) 일 수 있는 앱 제공자 (100) 에 의해 제공된다. 그것은 일반적으로 보호되지 않으며 그것을 둘러싸는 유일한 보안은 운영체계에 의해 제공된다. 유일한 실드와 일단 로딩되면 실드가 디바이스에 대해 어떻게 실행되는지에 대해 행해지는 점검은 운영체계에 의해 제공된다.
본 발명은 디바이스의 운영체계에 의해 제공되지 않는 앱들의 추가적인 보안을 가능하게 한다. 보안 어플리케이션 프로그램 (104) 이 앱 (102) 에 적용된다. 또는 앱 (102) 이 보안 어플리케이션 프로그램 (104) 에 입력되는데, 보안 어플리케이션 프로그램은 제 3자의 앱 보안 제공자에 의해 제공될 수도 있다. 일 구체예에서, 보안 어플리케이션 프로그램 (104) 은 상이한 로케이션들에 존재할 수도 있는 정책 래퍼 (policy wrapper) 및 정책 매니저를 구비한다. 이들은 도 2에서 더 상세히 설명된다. 일단 보안 어플리케이션 프로그램 (104) 이 앱 (102) 에 적용되면, 앱은 보안 레이어로 래핑되어 (wrapped) 디바이스를 보호하게 된다. 이것은 보안 앱 (secured app; 106) 으로 도시된다. 일 구체예에서, 그 후, 보안 앱 (106) 은 모바일 디바이스 (108), 예컨대 스마트폰 또는 태블릿 컴퓨터로 다운로드되고, 여기서 그것은 디바이스 (108) 에 대한 손상의 리스크 없이 안전하게 실행된다. 다른 이점은, 피고용인에게 앱을 제공하는 고용주와 같이, 앱을 유저에게 제공하고 있는 회사 또는 다른 엔티티에 의해 보안 앱 (106) 이 또한 관리될 수도 있다는 것이다. 예를 들면, 유저가 회사를 떠나면, 회사는 자동적으로 그 앱 및 임의의 관련된 데이터를 디바이스에서 삭제할 수도 있다. 다른 실시예에서, 부모는 다른 사람 (예를 들면, 아이) 에 의해 앱들이 사용되는 것을 제한하거나 또는 시간의 양, 예를 들면 하루에 10분으로 제한하거나 또는 어떤 웹사이트들이 앱에 의해 액세스될 수도 있는지를 제한할 수도 있다. 또는, 앱이 아이의 위치를 미지의 제 3자들에게 누설시키는 것을 부모는 염려한다. 수많은 다른 실시예들이 존재할 수도 있다. 언급된 바와 같이, 도 1a는 앱을 보안화하고 그것을 디바이스로 다운로드시키는 일반적인 프로세스를 나타내려고 의도된 것이다. 본 구체예에서, 앱 (102) 은 디바이스에 다운로드된 이후가 아니라 다운로드되기 이전에 디바이스에 해를 끼치지 않게 보안화됨을 주목해야 한다. 다른 구체예에서, 앱이 디바이스에 다운로드된 이후, 그러나 앱이 운영체계와 상호작용할 수 있기 이전에 보안화된다.
도 1b는 대안적인 구체예를 도시하는 블록도이다. 비보안 앱 (unsecured app; 110) (또한 앱 제공자에 의해 제공된다) 이 모바일 디바이스 (112) 에 다운로드된다. 그러나, 본 구체예에서는, 비보안 앱 (110) 의 실제 설치를 차단하는 스페셜하게 설계된 앱이 디바이스 (112) 상에 존재할 수도 있다. 그 스페셜 앱 (도시되지 않음) 은 비보안 앱 (110) 을 앱 보안 프로그램 (114) 으로 리다이렉팅 (redirecting) 한다. 비보안 앱 (110) 은 보안 정책에서 래핑되고, 결과적인 앱은 보안 앱 (116) 으로서 나타나게 된다. 그것은 그 다음 스페셜 앱에 의해 다운로드되어 디바이스 (112) 상에서의 설치가 허용된다. 이와 같이, 예를들면, 앱에 의해 제기되는 보안 위협으로부터 자신의 폰을 보호하기를 희망하는 개인 또는 홈 유저는, 앱들이 자신의 폰으로 다운로드되기 이전에, 두 개의 실시형태만 언급하면, 제 3자 서비스에 의해 또는 자신의 모바일 폰 캐리어에 의해 앱들을 보안화할 수 있다 (래핑할 수 있다). 이 보안 래핑은 유저가 앱을 어디에서부터 다운로드하든지에 상관없이 앱에 대해 행해질 수 있음을 주목해야만 한다. 또한, 도 1a 및 도 1b에는, 컴포넌트들과 소프트웨어 사이의 접속들 및 네트워크가 일반적으로 도시되어 있음을 알 수도 있다. 전송들은 주로 인터넷 (도시되지 않음) 을 통하지만, 사설 네트워크 내에 또는 인터넷과 사설 네트워크의 양자 내에 있을 수도 있다.
도 2는 본 발명의 일 구체예에 따른 앱 보안 프로그램의 컴포넌트들을 도시하는 블록도이다. 일 구체예에서, 보안 프로그램은 2개의 주요 컴포넌트들인, 정책 매니저와 정책 래퍼를 구비한다. 정책 매니저 (202) 는 모바일 디바이스에 대한 보안 설정에 책임이 있는 관리자 또는 다른 개인으로부터의 입력을 받아 들인다. 그 사람이 하나 이상의 모바일 디바이스들의 보안을 조정하고 있기 때문에 조정자 (governor) 로 칭해질 수도 있다. 보안 정책은 다양한 유저 인터페이스 화면들을 사용하여 설정될 수도 있다. 지오-펜싱 (geo-fencing) (예를 들면, 이 앱은 빌딩에서만 사용될 수 있다) 및 다른 것들을 포함하여 정책들의 수많은 실시예들이 존재한다. 앱 보안 프로그램을 제공하는 서비스 제공자 또는 엔티티는 홈 유저들에게 유용할 수도 있는 디폴트의 정책 및 보안 설정들을 또한 제공할 수도 있다. 정책 설정들의 실시예들은 하기에 설명된다. 정책 입력 (204) 이 정책 매니저 (202) 에 입력된다. 정책 매니저 (202) 는 조정자로부터 입력/설정들을 취하고 정책들 또는 메타데이터 (206) 를 생성한다. 메타데이터 (206) 의 형태 또는 포맷은 변할 수 있다. 이들은 조정자로부터의 정책 설정들을 본질적으로 반영한다.
메타데이터 (정책들) (206) 은 정책 래퍼 (208) 에 대한 입력으로서 사용될 수도 있다. 일 구체예에서, 프로그램의 이 컴포넌트는 정책들을 취하고 앱 (210) 을 래핑하는 것에 의해 앱 (210) 을 보안화하기 위해 정책들을 사용한다. 래퍼 (208) 는 핸드헬드 디바이스 (212) 로부터 앱 (210) 을 수신한다. 일 구체예에서, 래퍼 (208) 는 폰 (212) 에 다운로드되었던 (위의 도 1b 참조) 원래의 앱 (214) 대신 앱 (210) 의 사본을 수신한다. 여기서 핸드헬드 디바이스 (212) 유저는 앱 제공자 (218) 로부터 비보안 앱 (216) 의 다운로드를 시도한다. 도 1a에서 설명된 시나리오에서, 그것은 사본 대신 앱 자체에 대해 동작할 수도 있다. 이것은, 마켓플레이스 또는 앱스토어가 고객들에게 비보안 버전과 함께 보안 버전의 앱을 제공하는 경우 (또는 보안 버전만을 제공하는 경우) 일 수도 있다. 보안 버전 (220) (보안 래핑된 버전) 은 정책 래퍼 (208) 로부터 디바이스 (212) 로 리턴된다.
메타데이터 (206) 는 로컬 정책 파일 (디바이스 상에 이미 존재하는 기존의 (existing) 정책) 을 업데이트하기 위해 또한 사용될 수도 있다. 로컬 정책 파일은 디바이스 (212) 상에 존재하는 정책 파라미터들을 업데이트하기 위해 사용된다. 예를 들면, "지오펜싱"의 경우 (즉, 앱의 사용을 어떤 물리적 영역들로 제한하는 경우), 조정자에 의해 제어되는 GPS 위치들은 시간에 따라 변할 가능성이 있다. 이러한 변화가 발생하면, 새로운 정책들은 2개의 상이한 방식들로 적용될 수 있다. 하나는 새로운 정책을 발생시켜 그것을 원래의 앱에 적용하는 것이다 (즉, 앱을 새로운 정책으로 래핑하는 것이다). 다른 방식은, 내부에 암호화된/서명된 정책의 "가변" 부분을 갖는 로컬 정책 데이터 파일에 기초하여 동적 구성을 허용하는 것이다. 예를 들면, IT인 (IT person) 은 진단 목적들을 위해 디바이스 상에 존재하는 IT 앱을 통해 직접적으로 디바이스 상의 구성을 오버라이드 (override) 하는 능력을 원할 수도 있다.
일 구체예에서, 정책들은 2개의 컴포넌트들: 고정부 및 가변부를 구비한다. 고정부는 정책 파일에서 설명되는 컨텐츠이다 (예를 들면, "일 (day) 중 어떤 시간들에서의 GPS 보호"). 가변부는 콘솔을 통해 조정자에 의해 통상 제공된다 (예를 들면, "GPS가 보호되어야 할 시간들이 언제인가?"). 가변부는 새로운 정책을 적용하지 않고도 변경될 수 있다.
정책 디자이너들은 정책의 가변 컴포넌트를 버리고 모든 데이터 또는 컨텐츠를 정책 파일에 정적으로 기본적으로 "임베딩"할 것을 선택할 수 있다. 이 경우, 콘솔은 정책을 커스트마이징할 어떤 방식도 갖지 않는다.
정책 디자이너가 정책에 약간의 가변 컴포넌트를 포함할 것을 선택하는 경우, (콘솔 상에서) 가변 데이터에 변경들이 가해지면, 최종 변경들을 반영하기 위해 새로운 데이터 파일이 디바이스로 전송될 수 있을 것이다. 이러한 파일은 (악성 앱이 정책을 회피하는 것을 방지하기 위해) 암호화/서명되고, 디바이스로 다운로드되고, 새로운 데이터를 적절한 정책에 적용하기 위해 디바이스 상의 앱 보안 코드에 의해 사용될 것이다.
이러한 변경들 및 업데이트들은 로컬 정책 업데이트 컴포넌트 (222) 에 의해 런타임으로 수행될 수도 있다. 이 컴포넌트는 디바이스 (212) 상에서 업데이트된 파라미터들을 생성한다. 그후, 래핑된 앱 (220) 은 업데이트된 정책 파라미터들을 사용할 것이다.
일 구체예에서, 정책 매니저 (202) 및 정책 래퍼 (208) 는 동일한 앱 보안 프로그램의 컴포넌트들이고 동일한 컴퓨터 상에서 동작할 수도 있다. 다른 구체예들에서, 매니저 및 래퍼 컴포넌트들은 별개의 컴퓨터들 상에 있을 수도 있다. 예를 들면, 정책 매니저 (202) 는 한 사이트의 서버 상에 있을 수도 있고 정책 래퍼 (208) 는 다른 사이트의 컴퓨터 상에 있을 수도 있으며 다른 엔티티 또는 동일 엔티티에 의해 관리될 수도 있다. 매니저와 래퍼는 총체적으로 앱 보안 프로그램을 형성하며, 일 구체예에서 앱 보안 프로그램은 보안 서비스 제공자에 의해 운영된다. 또한, 그것은 모바일폰 캐리어에 의해 또는 회사, 고용주, 비지니스 파트너 등과 같은 기업에 의해 제공될 수도 있다.
도 3은 본 발명의 일 구체예에 따른 디바이스 상으로 앱을 다운로드하기 이전에 앱을 보안화하기 위한 프로세스를 도시하는 흐름도이다. 단계 302에서 보안될 앱의 사본 또는 클론이 디바이스 상에서 만들어진다. 일 구체예에서, 이것은 모바일 디바이스 자체에서 행해질 수도 있거나 또는 디바이스 외부, 예를 들면, 인터넷 상의 컴포넌트들 상에서, 클라우드에서, 기업의 서버 또는 캐리어 서브 상에서 행해질 수도 있다. 유저는 개인, 회사의 피고용인 또는 다른 엔티티일 수도 있다. 본 분야에서 알려진 바와 같이, 앱은 다양한 방식들로 획득될 수도 있고, 가장 일반적으로는 앱스토어 또는 앱 마켓으로부터, 또는 앱 개발자 또는 제공자로부터 직접적으로 또는 적절한 방식으로 획득될 수 있다. 사본을 만드는 것에 의해, 원래의 앱은 보존되어 유저에게 보안 버전 또는 비보안 버전 중 어느 것을 사용할지의 선택권을 주게 되고 또한 앱 제어 프로세스에서 무언가 잘못되는 경우 앱을 사용하는 유저의 능력을 보호한다. 일 구체예에서 앱은 아직 폰으로 다운로드되지 않음에 주목한다. 일 구체예에서, 하기에 설명되는 방법들은 별개의 컴퓨팅 디바이스들 상에서 수행된다. 다른 구체예에서, 프로세스는 모바일 디바이스 상에서 수행될 수도 있지만, 앱은 프로세스가 완료되고 앱이 보안화된 이후에만 디바이스 상에서 실행된다.
단계 304에서 앱은 디캡슐레이트된다. 전체는 아니지만 대부분의 앱들은 저작자/개발자에 의해 서명된 디지털 서명을 갖는다. 단계 304에서, 디캡슐레이션의 일부로서, 디지털 서명이 앱에서 제거된다. 이것은 종래기술에서 공지된 기법들을 사용하여 수행될 수도 있다. 앱을 해독 (decrypting) 하는 것도 또한 이 단계에서 수행될 수도 있다. 이들 및 다른 단계들은 앱의 코어 오브젝트 코드를 제공하는데, 이것은 앱 제어 프로그램에 의해 이제 동작될 수도 있다. 이 동작의 본질 (nature) 및 상세는 모바일 디바이스의 운영체계에 의존할 수도 있다.
스마트폰들에 대한 운영체계들의 여러가지 실시예들이 존재하는데, iOS (아이폰용), 안드로이드 (여러 제조사로부터의 핸드셋에서 사용됨), 윈도우 모바일 7, 웹 O/S, 팜, 및 다른 것들이 있다. 단계 306에서, 실행가능한 오브젝트 코드를 획득하기 위해 코어 오브젝트 앱은 디스어셈블되거나 (disassembled) 또는 디컴파일될 수도 있다. 예를 들면, 그것은 "네이티브 코드" (CPU 명령들) 또는 바이트코드 (자바 또는 닷넷과 같은 가상 머신 명령들) 중 어느 하나일 수 있다. 일 구체예에서, 이것은, 디스어셈블리가 어떤 링크들 또는 항목들을 위치지정하고 대체하는 프로세스에 더 가까운 iOS를 디바이스가 작동시키는 경우 수정 프로세스를 더 구비할 수도 있다. 그러나, 일반적으로, 앱이 디캡슐레이트된 이후 앱의 오브젝트 코드를 획득하기 위한 디어셈블리 프로세스는, 디스어셈블러들을 사용하는 것과 같이, 종래기술에서 공지된 기법들을 사용하여 행해질 수도 있다.
단계 308에서, 앱 오브젝트 코드는 앱 보안 프로그램으로부터의 오브젝트 코드로 증대된다. 예를 들면, 이 오브젝트 코드는 보안 프로그램으로부터의 클래스 파일들로 대체되는 클래스 파일들을 포함할 수도 있다. 오브젝트 코드는 일반적으로 모바일 디바이스 운영체계에 대한 인터페이스를 제공한다. 앱 제어 보안 프로그램 오브젝트 코드는, 부분적으로, 상술한 정책/메타데이터로부터 유도된다. iOS의 경우, 오브젝트 코드 대체 대신 '위치지정 및 대체' 프로세스가 발생한다는 점에서 동작이 상이하다. 이것은 iOS가 사용하는 인터럽트 접근법을 고려한다. 일반적으로, 앱 보안 프로그램은 어셈블리 랭기지 코드를 검토한다. 위치된 특정 항목들은 오브젝트 코드 내의 소프트웨어 인터럽트들 (Software Interrupts; SWI들) 이며 이들은 앱 제어 보안 프로그램 레이어로의 분기로 대체되고, 앱 제어 보안 프로그램 레이어는, 그 후, 하기에 설명되는 바와 같이, 요청을 행하고, 결과들을 강화하는 등등과 같이, 취할 어떤 다른 액션들을 결정할 수도 있다.
단계 310에서, 오브젝트 코드의 대체 (또는 SWI들의 대체들) 가 이루어진 이후, 앱 보안 프로그램은 모바일 디바이스 상에서의 실행을 위해 보안 래핑된 앱을 준비한다. 보안 프로그램에 의해 앱으로 대체된 오브젝트 코드는 일반적으로 앱과 모바일 디바이스 운영체계 사이의 브리지 또는 접속을 제공한다. 보안 프로그램 클래스 파일들은 운영체계 클래스 파일들을 둘러싸는 것으로서 설명될 수도 있다. 앱 보안 프로그램 클래스 파일들은 (조정자로부터의 입력에 의해) 먼저 발생된 정책들에 기초하여 생성된다. 앱은 핸드셋 상에서의 실행을 위해 본질적으로 재배선된다 (re-wired). 모바일 디바이스 운영체계 레이어에 의해 제공되는 보안에 더해 앱 보안 프로그램 레이어 사용이 재배선된다. 즉, 보안 앱은 여전히 운영체계의 보안 제공의 대상이 될 수도 있다. 일 구체예에서, 앱이 보안화되었다는 것을 반영하기 위해 앱에 대한 아이콘을 변경하는 것과 같은 어떤 표면적 변경들 (cosmetic changes) 이 앱에 대해 이루어질 수도 있다. 이렇게 함으로써, 유저는, 앱 아이콘이 핸드셋 스크린에 나타나는 경우 앱의 보안 버전이 실행될 것일다는 것을 확신할 수 있다. 앱은 보안 프로그램에 의해 재코딩 (re-factor) 되거나 재프로그램된다.
단계 312에서, 앱은 새로운 키, 예를 들면, 서비스 제공자의 키 또는 보안 앱을 제공하는 기업의 키로 서명된다. 재코딩된 앱의 보안 버전은 핸드셋 디바이스로 리턴된다. 다른 구체예에서, 앱은 폰 상에서 보안 레이어로 래핑된다. 일 구체예의 단계 314에서, 앱의 원래의 비보안 사본이 핸드셋 디바이스로에서 삭제된다. 이것은 앱의 보안 버전이 일단 핸드셋으로 다운로드되면 앱의 보안 버전에 의해 행해질 수도 있다. 다른 구체예들에서는, 이것은 행해지지 않고 양 버전이 모바일 디바이스에 남게 된다. 이 스테이지에서, 프로세스는 종료된다.
도 4는 일 구체예에 따른 정책 매니저 (202) 에서 수행되는 방법의 흐름도이다. 단계 402에서, 조정자 또는 다른 보안 정책 개인은 보안 정책들을 정의하고, 발생시키고, 그리고 생성할 수 있다. 이것은 수백 또는 수천의 모바일 디바이스들에 다운로드될 수도 있는 수십개의 (특히 작업용의) 기업 앱들을 사용하여 수백명의 피고용인에 대한 모바일 디바이스 보안 정책들의 방대한 어레이를 결정하는 기업에 대한 네트워크 관리자일 수도 있다. 스펙트럼의 다른 쪽 끝에는, 자식들에 의해 새로운 모바일 디바이스에 다운로드된 서너개의 앱들에 대한 보안 정책을 설정하는 부모일 수도 있다. 다른 실시형태들은, 많은 다른 것들 중, 게임용 앱이 GPS를 사용하는 것을 방지하거나 또는 억제하고, 앱이 디바이스의 마이크를 사용하여 대화를 녹음하거나 도청하는 것을 방지하는 것을 포함한다. 어떤 경우라도, 조정자는 앱의 카테고리, 앱의 형태 및 본질, 작성자, 연령별 적합성, 및 다양한 다른 요인들을 고려할 수도 있다. 예를 들면, 동일한 작성자가 디바이스에 대해 보안 위협을 제기하거나 또는 멀웨어로서 분류될 수도 있는 임의의 다른 앱들을 작성한다. 동일한 작성자에 의한 다른 앱들이 존재하는지의 여부가 결정될 수도 있다. 각각의 앱에 대해 어떤 룰들을 적용할지를 조정자가 결정하는 것은 이 스테이지에서이다. 일 구체예에서, 이것은 조정자에 의해 오프라인으로 수행된다. 즉, 그것은 집 컴퓨터 또는 관리자에 의해 사용되는 기업 네트워크 컴퓨터에서 유저 인터페이스들을 사용하여 행해질 수도 있는데, 여기서 보안 프로그램 서비스 제공자에 의해 제공되는 보안 템플릿들 (본질적으로 디폴트 템플릿들) 이 사용될 수도 있거나 또는 아주 특별한 룰들이 그 템플릿들을 사용하여 설정될 수도 있다.
단계 404에서, 402에서의 보안 데이터 입력이 앱 제어 보안 프로그램에 의해 사용되어 실제 정책들을 생성하게 된다. 단계 406에서, 단계 404에서 생성된 보안 정책들에 관한 조정자의 입력에 기초하여 앱 제어 보안 프로그램 오브젝트 코드가 발생된다. 조정자 또는 서비스 제공자는 기존의 보안 정책들을 필요에 따라 또한 업데이트할 수도 있다. 상술한 바와 같이, 오브젝트 코드는 디스어셈블된 앱에서 얻어진 어떤 원래의 오브젝트 코드를 강화시키기 위해 사용될 수도 있다. 기업 및 엔드 유저를 보호하기 위해 강화 코드가 삽입되어 앱에 대한 보안 및 프라이버시 설정들을 조정한다. 원래 앱의 거동이 변경되고, 이것은 앱이 거동하는 법을 조정자가 제어할 수 있게 한다. 예를 들면, 앱이 민감한 계정 정보를 명문으로 (in the clear) (즉, 비암호화 상태로) 저장하는 경우, 앱이 생성한 모든 정보가 암호화된 형태로 저장되고, 그것은, 저장된 영속적 데이터에 대한 키가 그 앱에 대해 고유할 것라이라는 것을 고려하면, 그 앱에 의해서만 액세스될 수 있도록, 거동은 변경될 수 있을 것이다. 많은 경우들에서, 강화 코드는, 코드가 특정 사용 시나리오에 대해 최적화되기 때문에 앱 성능을 강화시킬 수 있다.
도 5는 일 실시형태에 따른 핸드셋 또는 모바일 디바이스 상에서 실행하는 보안 래핑된 앱의 프로세스를 도시하는 흐름도이다. 502에서, 앱이 디바이스에서 실행되거나 또는 앱이 디바이스에서 실행된 직후 앱의 거동은 변경되거나 수정된다. 예를 들면, 거동 수정은 앱 초기화 동안 인증을 포함할 수도 있다; 예를 들면, 스마트/CAC 카드, 또는 패스워드 입력 (password challenge). 몇몇 앱들은, 원래 설계된 바와 같이, 보안을 위해 패스워드를 필요로 하지 않지만, 수정된 앱의 보안 버전은 유저가 패스워드를 입력하는 것을 필요로 할 수도 있다. 단계 504에서, 유저가 보안 앱을 활성화시키는 것 (예컨대, 디바이스가 터치스크린을 구비하는 경우 아이콘을 태핑하는 것) 에 의해 보안 앱이 모바일 디바이스 상에서 실행된다. 앱의 실행시, 일 구체예에서, 제어는 4개의 옵션들 중 하나를 취할 수 있다. 종래기술에서 알려진 바와 같이, 앱이 실행될 때, 그 기능들을 수행하기 위해 앱은 디바이스 운영체계에 대해 호출들 또는 요청들을 행한다. 많은 경우들에서, 이들 호출들은 폰 또는 디바이스에 대해 무해하거나 또는 어떠한 유의한 보안 위협을 제기하지도 않을 것이다. 이 경우라면, 호출은 단계 506에 도시된 바와 같이 운영체계로 전달될 수도 있다. 여기서 호출은 디바이스 운영체계에 대해 이루어지고 앱은 보통의 방식으로 실행된다.
디바이스에 대해 보안 위협을 제기할 수도 있는 요청을 앱이 행하고 있다는 것을 앱을 둘러싸는 보안 레이어 또는 래퍼가 검출하면, 앱 보안 레이어는, 요청이 운영체계 또는 폰의 하드웨어 컴포넌트 또는 다른 소프트웨어로 전달되기 이전에 그 요청을 강화 또는 수정할 수도 있다. 이것은 단계 508에 도시된다. 일 구체예에서, 조정자는 하나 이상의 정책들을 검사하는 것에 의해 어느 호출들이 허용가능한지를 결정한다. 예를 들면, 조정자는 모든 데이터가 암호화된 형태로 저장되어야만 한다고 결정할 수도 있다. 다른 실시형태에서, 조정자는 신뢰된 앱들의 선택된 그룹만이 군인의 GPS 좌표 데이터를 가질 수 있다고 결정할 수도 있다. 일 구체예에서, 무엇이 안전한지, 무엇이 잠재적인 위협인지, 또는 무엇이 실제 위협인지를 결정하는 런타임 로직은 없다; 본질적으로, 그것은 위의 단계 404에서 생성된 정책에서 조정자에 의해 미리 선언된다. 다른 구체예에서, 약간의 런타임 로직이 있을 수도 있다. 예를 들면, 앱은 비용이 발생하는 SMS 텍스트 메시지를 전송할 것을 시도할 수도 있다. 앱 제어 프로그램은 이것을 결정할 수도 있고 앱이 어떤 수 이상의 테스트 메시지들을 전송하는 것을 방지할 수도 있는데, 예를 들면, 하나의 메시지의 전송으로 제한할 수도 있다. 강화는 패스워드 요구와 같은 새로운 무엇을 추가할 수도 있다. 다른 실시형태에서, 호출이 모바일 디바이스 메모리 상에 데이터를 저장하는 경우, 보안 앱은 클라우드에서의 또는 인터넷 상의 (즉, 디바이스와 떨어진) 저장 영역으로 데이터를 실제로 백업할 수도 있다. 다른 실시형태에서, 호출에 관련된 데이터는 암호화될 수도 있다.
단계 510에서, 보안 앱은, 호출이 실제 위협인지 그리고 단계 508에서보다 더 심각한 방식으로 다루어져야 하는지를 결정할 수도 있다. 예를 들면, 앱에 대한 정책에 기초하여, 보안 빌딩 (예를 들면, 펜타곤) 에서 디바이스의 카메라가 액세스되면, 앱은 즉시 종료되어야만 한다. 단순히 요청을 강화시키는 것은 이 경우 충분하지 못할 수도 있다. 단계 510에서, 요청은 운영체계 또는 디바이스의 임의의 다른 컴포넌트들로의 진행이 허용되지 않을 수도 있다. 그러나, 일 구체예에서, 응답이 앱으로 리턴되지만, 그 응답은 의도적으로 정확하지 않거나 옳지 않다. 그것은 본질적으로 난독화된 (obfuscated) 응답이다. 예를 들면, 그것은 디바이스의 실제 물리적 좌표가 아닌 GPS 좌표일 수도 있다 (예를 들면, 디바이스는 캘리포니아에 있지만, 앱으로 리턴되는 GPS 좌표는 네브라스카의 좌표이다). 이것은 앱이 아이들에 의해 사용될 때 바람직할 수도 있다. 다른 실시형태는, 제한된 환경 (예를 들면, 보안 오피스 영역) 에서만 운영되어야만 하는 앱이 그 환경 밖에서 (예를 들면, 집에서) 운영되고 있다고 결정되는 경우 잘못된 또는 틀린 데이터 결과들을 리턴할 수도 있다. 본 실시형태에서, 분류되지 않은 데이터만을 앱이 액세스할 수 있도록 앱은 부분적으로 무능하게 될 수도 있는데, 여기서 분류된 정보는 무효화된다. 다른 실시형태에서, 유저가 민감한 데이터를 분류된 앱에서 분류되지 않은 앱으로 붙여넣기 또는 복사할 것을 시도하는 경우, 앱 제어 프로그램은 붙여넣기 되고 있는 데이터의 사본을 가비지 (garbage) 로 변경하거나 또는 그것을 무의미하게 할 수도 있다. 단계들 506, 508 또는 510 중 어느 하나가 완료된 이후, 보안 래핑된 앱은 단계 514에서 모바일 디바이스 상에서의 실행을 계속한다.
단계 512에서, 앱을 둘러싸는 보안 레이어는, 앱에 의해 이루어진 호출 또는 앱 실행 거동이 일반적으로 너무 높은 보안 위협 레벨을 모바일 디바이스에 제기한다는 것을 결정했다. 이러한 극단적 경우, 보안 레이어는 앱의 실행을 종료하고/하거나 앱을 삭제할 것을 결정한다. 예를 들면, 앱은, 대역폭과 같은, 폰 상의 리소스들을 너무 많이 사용할 수도 있거나, 또는 운영체계에 너무 많은 고위험의 호출을 행하여 모바일 디바이스를 너무 많이 노출시킬 수도 있다. 이 경우, 앱은 폰에서 단순히 삭제될 수 있거나 또는 앱이 종료될 수도 있다. 유저는 그것을 재실행하거나 재설치할 수 없을 것이다. 예를 들면, 피고용인은 그 앱을 회사 폰에 다시 설치할 수 없을 것인데, 그것이 민감한 회사 데이터를 노출시키고 있었기 때문이다. 또는, 앱이 폰 상의 데이터를 안전하게 수집하거나 멀웨어를 설치하고 있다는 것을 결정할 수도 있다.
도 6은 일 구체예에 따른 앱 보안 제어 시스템의 시스템 아키텍쳐 다이어그램이다. 트리거 매니저 컴포넌트 (602) 는 두 개의 이벤트들, 즉, 새로운 정책을 발생시키는 이벤트 (604) 및 정책 파라미터들을 업데이트하는 이벤트 (606) 를 처리한다. 이러한 이벤트들은 여러 시스템들에 의해 트리거될 수 있다. 예를 들면, 콘솔 관리자 또는 조정자는 새로운 정책을 모든 디바이스들에 적용할 수 있다 (수동 동작). 또는 네트워크 모니터링 어플리케이션은, 디바이스 (또는 앱) 로부터 발원하는 의심스러운 트래픽을 검출한 이후, 유저/디바이스/앱이 네트워크 리소스들에 액세스하는 것을 방지할 새로운 정책을 푸시할 수 있다 (자동화된 동작의 실시형태). 정책들을 변경/업데이트할 권한을 갖는 여러 시스템들 또는 엔티티들은 트리거 매니저 (602) 를 통해 그렇게 한다.
새로운 정책 출력 (604) 은 정책 정의 파일 (608) 에 입력되는데, 정책 정의 파일은 런타임으로 발생될 수도 있으며, 예를 들면, 앱 제어 서비스 제공자에 고유한 또는 정책이 적용되는 앱/유저/디바이스에 고유한 여러 형태들의 코드 및 확장자들을 포함할 수도 있다. 정책 정의 파일 (608) 은 2개의 출력들을 갖는 정책 컴파일러 (610) 에 입력된다. 한 출력은 래퍼 정의 파일 (612) 이다. 이 파일은 앱 래퍼 컴포넌트 (614) 에 입력된다. 앱 래퍼 컴포넌트 (614) 는 커스텀 바이너리 코드 (네이티브 또는 바이트코드) 를, 예를 들면 앱스토어로부터 직접적으로 다운로드된 앱으로 주입하는 것에 의해 보안 앱을 발생시키는 책임이 있다. 또는, 앱은 유저가 자신의 디바이스로 다운로드하고, 그 후 "앱제어" 서버로 업로드한 앱일 수 있다.
앱 래퍼 컴포넌트 (614) 는 3개의 입력들: 하나 이상의 앱스토어들 (616) 로부터의 앱, 아이덴티티 관리 컴포넌트 (618) 로부터의 인증키 관리 데이터, 및 방어 설비를 갖춘 컴포넌트들 (hardened components; 620) 을 구비할 수도 있다. 키 관리 데이터는 유저, 디바이스 및 앱의 아이덴티티들을 구속 (tie) 하고, 정책 제어에 종속되는 임의의 동작이 특정 유저/디바이스/앱에 구속될 수 있는 것을 보장하기 위해 사용된다. 이것은, 또한, 유해한 앱이 정책들 및 방어 설비를 갖춘 컴포넌트들 (620) (예를 들어, "디바이스 보안 프레임 워크") 을 회피하는 것을 방지하기 위해, 래핑된 어플리케이션이 특정 디바이스 상에서만 구동될 수 있다는 것을 보장한다. 앱 래퍼 (614) 로부터의 출력은 래핑된 앱 (622) 이며, 이것은 디바이스의 컨트롤러 (626) 를 통해 모바일 디바이스 (624) 로 다운로드되거나 설치된다. 디바이스 컨트롤러 (626) 는: 앱 래퍼로부터 앱을 다운로드하는 것; 디바이스 상에서 구동되는 앱이 적절히 래핑된 앱임을 보장하는 것 (예를 들면, 유저1에 대해 래핑된 앱은 유저2에 대한 디바이스 상에서 설치/구동되어선 안됨) ; 관리 콘솔이 각각의 디바이스/유저/어플리케이션에 대한 정책들을 제어하는 것을 허용하는 설치된 어플리케이션들의 리스트/버전을 보고하는 것; 및 적절히 정책 파라미터들을 다운로드하는 것에 대한 책임이 있다. 래핑된 앱 (622) 은 정책 파라미터들 (628) 과 커플링된 디바이스 (624) 상에 상주한다.
이제, 정책 컴파일러 (610) 로 되돌아 가면, 나머지 출력은 런타임 정책 정의 파일 (630) 이다. 이 파일은 런타임 정책 컴파일러 (632) 에 입력되는데, 런타임 정책 컴파일러는 (관리 콘솔, 또는 다른 서브시스템들에 의해 특정된) 입력 정책 파라미터들 (606) 로서 그것을 또한 수용한다. 컴파일러 (632) 로부터의 출력은 디바이스 런타임 정책 파일 (634) 이다. 이 파일 (634) 은 정책 파라미터들 (628) 로서 도시된 바와 같이 디바이스 (624) 상에 다운로드되고, 래핑된 앱 (622) 에 적용되는 정책들을 커스터마이징하기 위해 사용된다.
본 발명의 앱 제어 프로그램의 여러 가지 사용 사례들 및 특성들은 하기에 설명된다. 하나의 사용 사례는 모바일 폰 상에서의 업무 일상과 개인적 일상의 분리를 내포한다. 유저의 개인적 사용을 위한 앱들과 유저의 고용인 (또는 고용인의 비지니스 파트너) 이 제공할 수도 있는 앱들이 존재하며, 앱들은, 종종 유저의 개인적 폰인 동일한 폰 상에서 동작한다. 유저의 폰 상에서 안전하게 되어야 할 필요가 있는 앱들의 보안을 결정하는 조정자는 앱들 (예컨대 이메일 앱들) 사이의 복사/붙여넣기 동작들을 차단할 수도 있다. 조정자는 앱들 및 관련 파일들의 선택적 소거들 (wipes) 을 수행하는 작업 관련 앱들에 대한 정책을 설정할 수도 있다. 유저 위치 기반 정책들은 어떤 앱들이 실행되어야 하는 장소를 또한 제어할 수도 있다. 멀웨어로 인한 보호 레벨의 실시형태들은, 연락처들에 대한 액세스를 거부하는 것, 동의 없는 SMS의 전송을 거부하는 것 등이다.
사용 사례의 다른 실시형태는 앱 제어이다. 본 발명을 사용하면, 앱들의 화이트 리스트화 및 블랙 리스트화가 구현될 수도 있고, 또한 조정자에 의해 설정된 정책들에 따른 앱들의 완전한 삭제가 구현될 수도 있다. 앱은 다른 앱들, 소프트웨어, 및 디바이스의 하드웨어를 보호하기 위해 "샌드박스화"될 수도 있다. 다른 특성들은 앱들 또는 서비스들의 아이덴티티 기반의 제어 및 앱 거동에 대한 고도의 세분화된 제어 (highly granular control) 를 포함할 수도 있다. 트로이 목마 식별자는 앱 보안 프로그램을 통해 구현될 수 있는 다른 사용 사례이다. 예를 들면, 각각의 앱 및 컨텐츠는, 악성 앱들이 폰에 대한 액세스를 획득하여 기밀 데이터를 훔치는 것을 방지하기 위해 암호화될 수도 있다. 보안 프로그램은, 앱의 이상한 시스템 호출 거동을 또한 식별하여 그들의 공개된 의도 밖에서 동작하는 악성 트로이 목마 앱들을 식별할 수도 있다.
다른 사용 사례는 앱 데이터의 백업 및 복구 (recovery) 인데, 여기서 IT 보안 관리자들 또는 조정자들은 데이터 수정 제어를 가지며 백업 및 복원 (restore) 동작들을 통해 앱 및 디바이스 컨텐츠 마이그레이션을 구현할 수 있다. 다른 사용 사례는 네트워크 트래픽 모니터링이다. 모바일 디바이스 상의 앱은, 앱 통신들의 검사 및 제어를 허용하기 위해, 기존의 기업 IDS/IPS/웹 필터링 인프라스트럭쳐 구조의 가시성 하에 놓이게 될 수도 있다. 또한, 앱 보안 프로그램은 멀웨어를 식별하기 위해 시맨틱의 DNS 서비스와 같은 제 3자의 DNS 서비스들과 통합될 수 있다. 모바일 폰 서비스 제공자에서의 통신들을 포함하여, 모든 앱 통신들은 암호화될 수도 있다. 다른 사용 사례들은 세션 연속성, 컨슈머 프라이버시 (예를 들면, GPS 난독화 (obfuscation), 안전한 DNS들 구현), 및 모바일 디바이스로부터의 (즉, 모바일 거래 스트림들 중간에 동작하는) 지불/거래 메시지들의 가로채기를 포함한다.
일 구체예에서, 앱 보안 서비스는, 예를 들면, 엔드 유저 또는 개인들 (즉, 고용주 또는 기업과 관련되지 않은 유저들) 에 의해 사용되는 앱들을 만들기 위해 제 3자의 서비스 제공자에 의해 제공된다. 예를 들면, 부모는 아이의 폰의 GPS를 난독화시키길 원할 수도 있는데, 그 이유는 페이스북과 같은 소셜네트워크 사이트가 그 아이가 어디에 있는지를 아는 것을 원치 않기 때문이며, 본질적으로는 GPS를 불능이 되도록 한다. 다른 구체예에서, 무선 폰 캐리어 (예를 들면, 브라이즌, AT&T) 에 의해 운영되는 앱스토어는 추가 요금 또는 프리미엄으로 보안 앱을 제공할 수도 있다. 캐리어의 고객은 추가 금액을 지불함으로써 비보안 버전 대신 보안 앱을 마켓플레이스 또는 온라인 스토어로부터 다운로드할 수 있다. 다른 실시형태에서, 기업은 자신의 피고용인들, 파트너들 등을 위해 자기 자신의 앱스토어를 구비할 수도 있으며, 여기서 유저들은 앱들의 보안 버전들 ("하드" 앱들로 칭해질 수도 있다) 만을 다운로드할 수 있다. 이들 앱들은, 이메일 또는 회사 데이터의 복사 및 붙여넣기를 차단하는 것, 유저가 회사를 떠나는 경우 유저의 폰에서 앱들을 죽이는 (killing) 것 등과 같이, 기업에서 조정자 (보안 관리자) 에 의해 정의되는 바와 같은 상술한 많은 보안 특징들을 구비할 수도 있다. 모바일 폰 캐리어의 DNS는 통상 임의의 사이트를 액세스할 수 있지만, 앱 보안 프로그램은 모바일 디바이스 브라우저가 안전한 DNS (예를 들면, 시맨텍의 DNS) 만을 액세스할 수 있도록 모바일 디바이스 브라우저를 차단할 수 있는데, 안전한 DNS로부터 안전한 웹사이트들만이 액세스될 수도 있다. 다른 구체예에서, 앱 보안 프로그램 제공자는 앱 보안 프로그램 또는 기능을 디바이스의 하드웨어 및 소프트웨어 동작들에 통합하기 위해 모바일 디바이스 제조자와 협업할 수 있다. 아래에 설명되는 본 구체예에서, 유저는 비보안 앱을 다운로드하고 실행 전에 폰 또는 디바이스 자체 상에서 그것을 보안화할 수 있고 앱이 보안화되도록 하기 위해 또는 앱이 디바이스로 다운로드되기 이전에 보안화되는 것을 보장하기 위해 제 3자의 서비스에 액세스할 필요가 없다.
상술한 여러 구체예들로부터 알 수 있는 바와 같이, 모바일 디바이스의 보안은 디바이스 자체보다 확장되고 디바이스에 다운로드된 앱들에 대해 직접적으로 적용된다. 회사들 및 다른 엔티티들은 회사의 기업 IT 시스템의 멀웨어 감염 또는 데이터 손실과 같은 보안 리스크들에 대해 염려하지 않으면서, 앱들의 이점을 더 자유롭게 취할 수 있다. 회사들은 자신의 회사 데이터의 통제를 유지할 수 있다.
도 7a 및 도 7b는 본 발명의 구체예들을 구현하기에 적합한 컴퓨팅 시스템 (700) 을 예시한다. 도 7a는 컴퓨팅 시스템의 하나의 가능한 물리적 형태를 도시한다. 물론, 컴퓨팅 시스템은 집적 회로, 인쇄회로기판, 작은 핸드헬드 디바이스 (예컨대 모바일 텔레폰, 핸드셋 또는 PDA), 개인용 컴퓨터 또는 슈퍼컴퓨터를 포함하는 많은 물리적 형태들을 가질 수도 있다. 컴퓨팅 시스템 (700) 은 모니터 (702), 디스플레이 (704), 하우징 (706), 디스크 드라이브 (708), 키보드 (710) 및 마우스 (712) 를 포함한다. 디스크 (714) 는 컴퓨팅 시스템 (700) 과 데이터를 송수신하기 위해 사용되는 컴퓨터 판독가능 매체이다.
도 7b는 컴퓨팅 시스템 (700) 에 대한 블록도의 일 실시형태이다. 시스템 버스 (720) 에 아주 다양한 서브시스템들이 부착된다. 프로세서(들) (722) (중앙처리유닛들, 또는 CPU들로도 칭해짐) 는 메모리 (724) 를 포함하는 스토리지 디바이스들에 커플링된다. 메모리 (724) 는 RAM (random access memory) 및 ROM (read-only memory) 을 포함한다. 종래기술에서 널리 알려진 바와 같이, ROM은 데이터 및 명령들을 단방향으로 CPU로 전송하기 위해 동작하고, RAM은 데이터 및 명령들을 양방향 방식으로 전송하기 위해 통상 사용된다. 이들 형태들의 메모리들 양자는 하기에 설명되는 임의의 적절한 컴퓨터 판독가능 매체를 포함할 수도 있다. CPU (722) 에는 고정된 디스크 (726) 가 양방향적으로 또한 커플링되고; 이것은 추가적인 데이터 스토리지 용량을 제공하며 하기에 설명되는 임의의 컴퓨터 판독가능 매체를 또한 포함할 수도 있다. 고정된 디스크 (726) 는 프로그램들, 데이터 등을 저장하기 위해 사용될 수도 있고, 통상, 1차 스토리지보다 더 느린 2차 스토리지 매체 (예컨대, 하드디스크) 이다. 고정된 디스크 (726) 에 유지된 정보는, 적절한 사례들에서, 메모리 (724) 의 가상 메모리로서 표준 방식으로 통합될 수도 있음을 알 수 있을 것이다. 리무버블 디스크 (714) 는 하기에 설명되는 임의의 컴퓨터 판독가능 매체의 형태를 취할 수도 있다.
CPU (722) 는 디스플레이 (704), 키보드 (710), 마우스 (712) 및 스피커들 (730) 과 같은 다양한 입/출력 디바이스들에 또한 커플링된다. 일반적으로, 입/출력 디바이스는: 비디오 디스플레이들, 트랙볼들, 마우스들, 키보드들, 마이크들, 터치감응형 디스플레이들, 트랜듀서 카드 리더들, 마그네틱 또는 종이 테이프 리더들, 태블릿들, 스타일러스들, 목소리 또는 필기 인식기들, 생체인식 (biometrics) 리더들, 또는 다른 컴퓨터들 중 임의의 것일 수도 있다. CPU (722) 는, 옵션적으로, 네트워크 인터페이스 (740) 를 사용하여 다른 컴퓨터 또는 통신 네트워크에 커플링될 수도 있다. 이러한 네트워크 인터페이스를 통해, 상술한 방법 단계들을 수행하는 과정에서 CPU가 네트워크로부터 정보를 수신하거나, 또는 네트워크로 정보를 출력할 수도 있음이 예상된다. 또한, 본 발명의 방법의 구체예들은 단독으로 CPU (722) 상에서 실행될 수도 있거나 또는 프로세싱의 일부를 공유하는 원격 CPU와 연계하여 인터넷과 같은 네트워크를 통해 실행될 수도 있다.
본 발명의 예시적인 구체예들 및 어플리케이션들이 본원에서 도시되고 설명되었지만, 본 발명의 개념, 범위, 및 취지 내에 유지되는 많은 변형예들 및 수정예들이 가능하며, 이들 변형예들은 본 출원을 정독한 당업자에게는 더욱 명확하게 될 것이다. 따라서, 설명된 구체예들은 제한적인 것이 아니라 예시적인 것으로서 고려될 것이며, 본 발명은 본원에서 주어진 상세들에 제한되지 않고, 첨부된 특허청구범위의 범위와 그 등가의 범위 내에서 수정될 수도 있다.

Claims (23)

  1. 디바이스 상에서의 실행을 위해 보안 프로그램을 사용하여 앱을 보안화하는 방법으로서,
    상기 앱의 코어 오브젝트 코드를 획득하는 단계로서, 상기 앱으로부터 디지털 서명이 제거되는, 상기 앱의 코어 오브젝트 코드를 획득하는 단계;
    앱 오브젝트 코드를 보안 프로그램 오브젝트 코드로 대체하여, 보안 래핑된 (security-wrapped) 앱을 생성하는 단계;
    상기 디바이스 상에서의 실행을 위해 상기 보안 래핑된 앱을 준비하는 단계; 및
    상기 보안 래핑된 앱을 새로운 키로 재서명 (re-signing) 하는 단계를 포함하고,
    데이터에 대한 액세스를 제어하고 보안화하기 위한 중앙집중형 정책 (centralized policy) 이 상기 디바이스 상에서 구현되는, 보안 프로그램을 사용하여 앱을 보안화하는 방법.
  2. 제 1항에 있어서,
    상기 보안 프로그램을 사용하여 상기 앱을 디컴파일링하여 실행 가능한 코드를 획득하는 단계를 더 포함하는, 보안 프로그램을 사용하여 앱을 보안화하는 방법.
  3. 제 1항에 있어서,
    상기 보안 프로그램을 사용하여 상기 앱을 디스어셈블링하여 실행 가능한 코드를 획득하는 단계를 더 포함하는, 보안 프로그램을 사용하여 앱을 보안화하는 방법.
  4. 제 1항에 있어서,
    보안 프로그램을 상기 앱에 적용하는 단계를 더 포함하는, 보안 프로그램을 사용하여 앱을 보안화하는 방법.
  5. 제 1항에 있어서,
    상기 코어 오브젝트 코드를 획득하고 앱 오브젝트 코드를 대체하는 것은 상기 앱이 상기 디바이스의 운영체계와 상호동작하기 이전에 행해지는, 보안 프로그램을 사용하여 앱을 보안화하는 방법.
  6. 제 5항에 있어서,
    상기 운영체계와의 상호동작을 차단하는 단계를 더 포함하는, 보안 프로그램을 사용하여 앱을 보안화하는 방법.
  7. 제 5항에 있어서,
    상기 앱을 상기 디바이스 외부의 보안 프로그램으로 리다이렉팅 (redirecting) 하는 단계를 더 포함하는, 보안 프로그램을 사용하여 앱을 보안화하는 방법.
  8. 제 5항에 있어서,
    상기 보안 래핑된 앱이 상기 디바이스 상에서 작동할 수 있고 다른 디바이스 상에서 작동할 수 없는 것을 보장하는 단계를 더 포함하는, 보안 프로그램을 사용하여 앱을 보안화하는 방법.
  9. 제 1항에 있어서,
    상기 앱의 사본을 만드는 단계를 더 포함하는, 보안 프로그램을 사용하여 앱을 보안화하는 방법.
  10. 제 9항에 있어서,
    상기 디바이스로부터 원래의 앱을 제거하는 단계를 더 포함하는, 보안 프로그램을 사용하여 앱을 보안화하는 방법.
  11. 제 9항에 있어서,
    상기 디바이스 상의 상기 앱을 보안화하는 동안 오동작 (malfunction) 이 발생하는 경우 원래의 앱으로 복귀하는 단계를 더 포함하는, 보안 프로그램을 사용하여 앱을 보안화하는 방법.
  12. 제 1항에 있어서,
    운영체계 오브젝트 코드에 보안 프로그램 오브젝트 코드를 적용하는 단계를 더 포함하고,
    상기 보안 프로그램 오브젝트 코드는 정책들로부터 유도되는, 보안 프로그램을 사용하여 앱을 보안화하는 방법.
  13. 제 1항에 있어서,
    상기 앱이 보안화된 것을 나타내기 위해 상기 디바이스의 디스플레이 상에서 상기 앱을 나타내는 아이콘을 변경하는 단계를 더 포함하는, 보안 프로그램을 사용하여 앱을 보안화하는 방법.
  14. 제 1항에 있어서,
    상기 앱을 다운로드하기 이전에 상기 앱을 보안 레이어로 래핑하는 단계를 더 포함하는, 보안 프로그램을 사용하여 앱을 보안화하는 방법.
  15. 제 1항에 있어서,
    상기 보안 래핑된 앱은 앱 정책을 구현하는, 보안 프로그램을 사용하여 앱을 보안화하는 방법.
  16. 제 1항에 있어서,
    상기 앱 정책은: 상기 디바이스 상에서의 앱 실행 시간을 제한하는 것; 상기 디바이스 상에서의 앱들의 전체 수를 제한하는 것; 및 상기 앱이 실행될 수도 있는 장소를 제한하는 것 중 하나 이상을 포함하는, 보안 프로그램을 사용하여 앱을 보안화하는 방법.
  17. 앱이 디바이스에 손상을 주는 것을 방지하는 방법으로서,
    상기 디바이스 상에서 보안 래핑된 앱을 실행하는 단계;
    상기 디바이스의 운영체계에 대해 상기 보안 래핑된 앱에 의해 이루어진 호출에 보안 체크를 적용하는 단계; 및
    상기 호출에 대한 보안 체크의 상기 적용에 기초하여,
    (a) 상기 호출이 상기 운영체계로 전달되는 것을 허용하는 것;
    (b) 상기 호출을 강화하는 것;
    (c) 상기 호출을 차단하는 것; 및
    (d) 상기 보안 래핑된 앱을 종료하는 것
    중 하나를 수행하는 단계를 포함하고,
    데이터에 대한 액세스를 제어하고 보안화하기 위한 정책이 상기 디바이스 상에서 구현되는, 앱이 디바이스에 손상을 주는 것을 방지하는 방법.
  18. 제 17항에 있어서,
    상기 앱을 종료하는 것은, 상기 디바이스에서 상기 앱을 자동적으로 제거하는 것을 더 포함하는, 앱이 디바이스에 손상을 주는 것을 방지하는 방법.
  19. 제 17항에 있어서,
    상기 보안 래핑된 앱은 정책을 구현하고,
    상기 정책은: 상기 디바이스 상에서의 앱 실행 시간을 제한하는 것; 상기 디바이스 상에서의 앱들의 전체 수를 제한하는 것; 및 상기 앱이 실행될 수도 있는 장소를 제한하는 것 중 하나 이상을 포함할 수도 있는, 앱이 디바이스에 손상을 주는 것을 방지하는 방법.
  20. 제 17항에 있어서,
    상기 호출을 차단하는 것은, 분류된 임의의 데이터가 기밀로 유지되도록 부분 데이터를 제공하는 것 및 상기 호출에 대해 난독화된 (obfuscated) 응답을 제공하는 것 중 하나를 수행하는 것을 더 포함하는, 앱이 디바이스에 손상을 주는 것을 방지하는 방법.
  21. 제 17항에 있어서,
    상기 호출을 강화하는 것은, 상기 디바이스 상에 저장된 데이터를 암호화하는 것을 더 포함하는, 앱이 디바이스에 손상을 주는 것을 방지하는 방법.
  22. 제 17항에 있어서,
    앱 통신들의 검사 및 제어를 허용하기 위해 상기 앱은 기존의 필터링 인프라스트럭쳐 (existing filtering infrastructure) 에 노출되는, 앱이 디바이스에 손상을 주는 것을 방지하는 방법.
  23. 제 22항에 있어서,
    상기 필터링 인프라스트럭쳐는 IDS, IPS, 및 웹필터링을 포함하는, 앱이 디바이스에 손상을 주는 것을 방지하는 방법.
KR1020137023905A 2011-02-11 2012-02-07 디바이스 상의 앱들의 보안화 및 관리 KR20140016897A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/025,994 2011-02-11
US13/025,994 US8549656B2 (en) 2011-02-11 2011-02-11 Securing and managing apps on a device
PCT/US2012/024080 WO2012109196A1 (en) 2011-02-11 2012-02-07 Securing and managing apps on a device

Publications (1)

Publication Number Publication Date
KR20140016897A true KR20140016897A (ko) 2014-02-10

Family

ID=46637966

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137023905A KR20140016897A (ko) 2011-02-11 2012-02-07 디바이스 상의 앱들의 보안화 및 관리

Country Status (7)

Country Link
US (1) US8549656B2 (ko)
KR (1) KR20140016897A (ko)
CN (1) CN103403669B (ko)
AU (1) AU2012214619A1 (ko)
CA (1) CA2826813A1 (ko)
DE (1) DE112012000750T5 (ko)
WO (1) WO2012109196A1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160020294A (ko) * 2014-08-13 2016-02-23 (주)잉카엔트웍스 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템
KR20180053872A (ko) 2016-11-14 2018-05-24 삼성에스디에스 주식회사 애플리케이션 변환 장치 및 방법
KR20180131009A (ko) 2017-05-31 2018-12-10 삼성에스디에스 주식회사 대용량 애플리케이션 변환 장치 및 방법
KR20190048416A (ko) 2017-10-31 2019-05-09 삼성에스디에스 주식회사 애플리케이션의 화이트 레이블링 장치 및 방법
KR20190112491A (ko) 2018-03-26 2019-10-07 삼성에스디에스 주식회사 애플리케이션 변환 장치 및 방법
KR20190123146A (ko) 2018-04-23 2019-10-31 삼성에스디에스 주식회사 애플리케이션의 보안성 향상을 위한 애플리케이션 변환 장치 및 방법

Families Citing this family (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100926804B1 (ko) 2004-04-30 2009-11-12 리서치 인 모션 리미티드 데이터 전송을 처리하기 위한 시스템 및 방법
US7614082B2 (en) 2005-06-29 2009-11-03 Research In Motion Limited System and method for privilege management and revocation
US9645992B2 (en) 2010-08-21 2017-05-09 Oracle International Corporation Methods and apparatuses for interaction with web applications and web application data
US20140040622A1 (en) * 2011-03-21 2014-02-06 Mocana Corporation Secure unlocking and recovery of a locked wrapped app on a mobile device
US9396325B2 (en) 2011-03-21 2016-07-19 Mocana Corporation Provisioning an app on a device and implementing a keystore
US20120272167A1 (en) * 2011-04-20 2012-10-25 Nokia Corporation Methods, apparatuses and computer program products for providing a mechanism for same origin widget interworking
RU2506638C2 (ru) * 2011-06-28 2014-02-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ аппаратного обнаружения и лечения неизвестного вредоносного программного обеспечения, установленного на персональном компьютере
US10362019B2 (en) 2011-07-29 2019-07-23 Amazon Technologies, Inc. Managing security credentials
US11444936B2 (en) 2011-07-29 2022-09-13 Amazon Technologies, Inc. Managing security credentials
US9411970B2 (en) * 2011-08-19 2016-08-09 Microsoft Technology Licensing, Llc Sealing secret data with a policy that includes a sensor-based constraint
FR2981174B1 (fr) 2011-10-06 2013-12-20 Thales Sa Procede de creation dynamique d'un environnement d'execution d'une application pour securiser ladite application, produit programme d'ordinateur et appareil informatique associes
US8695060B2 (en) 2011-10-10 2014-04-08 Openpeak Inc. System and method for creating secure applications
US20140032733A1 (en) 2011-10-11 2014-01-30 Citrix Systems, Inc. Policy-Based Application Management
US9143530B2 (en) 2011-10-11 2015-09-22 Citrix Systems, Inc. Secure container for protecting enterprise data on a mobile device
US9215225B2 (en) 2013-03-29 2015-12-15 Citrix Systems, Inc. Mobile device locking with context
US20140053234A1 (en) 2011-10-11 2014-02-20 Citrix Systems, Inc. Policy-Based Application Management
US9280377B2 (en) 2013-03-29 2016-03-08 Citrix Systems, Inc. Application with multiple operation modes
US9161226B2 (en) 2011-10-17 2015-10-13 Blackberry Limited Associating services to perimeters
US9497220B2 (en) * 2011-10-17 2016-11-15 Blackberry Limited Dynamically generating perimeters
US9613219B2 (en) 2011-11-10 2017-04-04 Blackberry Limited Managing cross perimeter access
US8799227B2 (en) 2011-11-11 2014-08-05 Blackberry Limited Presenting metadata from multiple perimeters
US8863250B2 (en) 2012-02-01 2014-10-14 Amazon Technologies, Inc. Logout from multiple network sites
US8875298B2 (en) * 2012-02-16 2014-10-28 Nec Laboratories America, Inc. Method for scalable analysis of android applications for security vulnerability
US9722972B2 (en) 2012-02-26 2017-08-01 Oracle International Corporation Methods and apparatuses for secure communication
US8973137B1 (en) * 2012-02-29 2015-03-03 Symantec Corporation Systems and methods for detecting illegitimate out-of-band authentication attempts
WO2013134616A1 (en) 2012-03-09 2013-09-12 RAPsphere, Inc. Method and apparatus for securing mobile applications
US9405723B2 (en) * 2012-05-02 2016-08-02 Kony, Inc. Mobile application management systems and methods thereof
US9792585B2 (en) * 2012-06-21 2017-10-17 Google Inc. Mobile application management
US9369466B2 (en) 2012-06-21 2016-06-14 Blackberry Limited Managing use of network resources
US9047463B2 (en) * 2012-06-29 2015-06-02 Sri International Method and system for protecting data flow at a mobile device
US9412227B2 (en) 2012-07-11 2016-08-09 Igt Method and apparatus for offering a mobile device version of an electronic gaming machine game at the electronic gaming machine
US9286477B2 (en) * 2012-08-29 2016-03-15 Symantec Corporation Secure app ecosystem with key and data exchange according to enterprise information control policy
WO2014074239A2 (en) * 2012-09-25 2014-05-15 Openpeak Inc. Method and system for sharing vpn connections between applications
US20140108558A1 (en) 2012-10-12 2014-04-17 Citrix Systems, Inc. Application Management Framework for Secure Data Sharing in an Orchestration Framework for Connected Devices
US9516022B2 (en) 2012-10-14 2016-12-06 Getgo, Inc. Automated meeting room
US20140109176A1 (en) 2012-10-15 2014-04-17 Citrix Systems, Inc. Configuring and providing profiles that manage execution of mobile applications
US8910239B2 (en) 2012-10-15 2014-12-09 Citrix Systems, Inc. Providing virtualized private network tunnels
US20140108793A1 (en) 2012-10-16 2014-04-17 Citrix Systems, Inc. Controlling mobile device access to secure data
US9606774B2 (en) 2012-10-16 2017-03-28 Citrix Systems, Inc. Wrapping an application with field-programmable business logic
US20140109072A1 (en) 2012-10-16 2014-04-17 Citrix Systems, Inc. Application wrapping for application management framework
US9971585B2 (en) * 2012-10-16 2018-05-15 Citrix Systems, Inc. Wrapping unmanaged applications on a mobile device
FR2997204B1 (fr) * 2012-10-23 2014-12-26 Thales Sa Procede de telechargement d'au moins un composant logiciel dans un appareil informatique, produit programme d'ordinateur, appareil informatique et systeme informatique associes
US8656016B1 (en) 2012-10-24 2014-02-18 Blackberry Limited Managing application execution and data access on a device
US9075955B2 (en) 2012-10-24 2015-07-07 Blackberry Limited Managing permission settings applied to applications
CN103793209A (zh) * 2012-10-26 2014-05-14 珠海市君天电子科技有限公司 一种修改Android程序执行流程的方法及系统
CN103793317B (zh) * 2012-10-26 2017-08-11 珠海市君天电子科技有限公司 一种跟踪Android程序行为的方法及系统
US9535674B2 (en) 2012-12-21 2017-01-03 Bmc Software, Inc. Application wrapping system and method
US9426120B1 (en) 2012-12-21 2016-08-23 Mobile Iron, Inc. Location and time based mobile app policies
US8595810B1 (en) 2013-01-13 2013-11-26 Mourad Ben Ayed Method for automatically updating application access security
WO2014111922A1 (en) * 2013-01-21 2014-07-24 B.G. Negev Technologies And Applications Ltd. Method and system for protecting computerized systems from malicious code
EP2951746B1 (en) * 2013-01-29 2019-10-30 BlackBerry Limited System and method of enhancing security of a wireless device through usage pattern detection
DE102013003204A1 (de) * 2013-02-26 2014-08-28 Giesecke & Devrient Gmbh Verfahren und Vorrichtung zum Betreiben einer Ausführungsumgebung für Applikationen
US9158534B2 (en) 2013-03-15 2015-10-13 Wolters Kluwer United States Inc. Smart endpoint architecture
WO2014145039A1 (en) 2013-03-15 2014-09-18 Oracle International Corporation Intra-computer protected communications between applications
US9344422B2 (en) 2013-03-15 2016-05-17 Oracle International Corporation Method to modify android application life cycle to control its execution in a containerized workspace environment
US20140282398A1 (en) * 2013-03-15 2014-09-18 Wolters Kluwer U.S. Corporation Platform for developing and distributing mobile applications
US9129112B2 (en) 2013-03-15 2015-09-08 Oracle International Corporation Methods, systems and machine-readable media for providing security services
US9413736B2 (en) 2013-03-29 2016-08-09 Citrix Systems, Inc. Providing an enterprise application store
US9985850B2 (en) 2013-03-29 2018-05-29 Citrix Systems, Inc. Providing mobile device management functionalities
US9355223B2 (en) 2013-03-29 2016-05-31 Citrix Systems, Inc. Providing a managed browser
US10284627B2 (en) 2013-03-29 2019-05-07 Citrix Systems, Inc. Data management for an application with multiple operation modes
US8850049B1 (en) 2013-03-29 2014-09-30 Citrix Systems, Inc. Providing mobile device management functionalities for a managed browser
US9602540B1 (en) 2013-06-13 2017-03-21 Amazon Technologies, Inc. Enforcing restrictions on third-party accounts
US10475018B1 (en) 2013-11-29 2019-11-12 Amazon Technologies, Inc. Updating account data for multiple account providers
US9619222B2 (en) * 2014-01-16 2017-04-11 International Business Machines Corporation System, method and apparatus for automatic device registration and secure application activation
DE102014000963A1 (de) * 2014-01-23 2015-07-23 Unify Gmbh & Co. Kg Verfahren zur Handhabung von Sicherheitseinstellungen in einem mobilen Endgerät bzw. zur Zugangskontrolle, Mobiles Endgerät, Computerprogramm, Softwareprodukt und digitales Speichermedium
US10110705B2 (en) * 2014-02-14 2018-10-23 Red Spark, Lp System and method for providing alternate content downloads
US9246948B2 (en) * 2014-03-19 2016-01-26 Symantec Corporation Systems and methods for providing targeted data loss prevention on unmanaged computing devices
WO2015153008A2 (en) 2014-04-02 2015-10-08 Ridge Tool Company Electronic tool lock
US9674173B2 (en) * 2014-04-10 2017-06-06 Blue Cedar Networks, Inc. Automatic certificate enrollment in a special-purpose appliance
US20160055344A1 (en) * 2014-04-10 2016-02-25 Mocana Corporation Data loss prevention during app execution using e-mail enforcement on a mobile device
US9672353B2 (en) 2014-04-28 2017-06-06 Blue Cedar Networks, Inc. Securing and managing apps on a device using policy gates
GB2527753A (en) 2014-06-27 2016-01-06 Ibm Installation of software applications on mobile devices based on positions thereof
US9350818B2 (en) 2014-09-05 2016-05-24 Openpeak Inc. Method and system for enabling data usage accounting for unreliable transport communication
US9232013B1 (en) 2014-09-05 2016-01-05 Openpeak Inc. Method and system for enabling data usage accounting
US8938547B1 (en) 2014-09-05 2015-01-20 Openpeak Inc. Method and system for data usage accounting in a computing device
US9100390B1 (en) 2014-09-05 2015-08-04 Openpeak Inc. Method and system for enrolling and authenticating computing devices for data usage accounting
US20160071040A1 (en) 2014-09-05 2016-03-10 Openpeak Inc. Method and system for enabling data usage accounting through a relay
US9542247B2 (en) * 2014-09-19 2017-01-10 Microsoft Technology Licensing, Llc Content sharing between sandboxed apps
CN106663018B (zh) 2014-09-24 2020-09-15 甲骨文国际公司 修改移动设备应用生命周期的系统、方法、介质和设备
US9785425B2 (en) 2014-09-30 2017-10-10 Airwatch Llc Managed clone applications
US10313373B2 (en) 2014-10-08 2019-06-04 Melih Abdulhayoglu System and method of protecting a network
US11212255B2 (en) 2015-10-30 2021-12-28 Melih Abdulhayoglu System and method of protecting a network
NO20141445A1 (no) * 2014-12-01 2016-06-02 Protectoria As Sikring av applikasjoner installert i lokalt endepunktutstyr
CN104484215B (zh) * 2014-12-31 2018-03-27 青岛海信移动通信技术股份有限公司 一种应用安装方法、装置及智能终端
US9900777B2 (en) 2015-04-10 2018-02-20 Wal-Mart Stores, Inc. Systems and methods for controlling mobile device use
US11424931B2 (en) * 2016-01-27 2022-08-23 Blackberry Limited Trusted execution environment
US10599409B2 (en) 2016-02-02 2020-03-24 Blackberry Limited Application lifecycle operation queueing
US10180834B2 (en) * 2016-02-29 2019-01-15 Airwatch Llc Provisioning of applications deployed on client devices
CN105867551A (zh) * 2016-04-29 2016-08-17 广州玖晔网络科技有限公司 一种儿童用带锁屏教育功能的防水式平板电脑
CN106203085B (zh) * 2016-07-08 2019-03-01 东软集团股份有限公司 一种编译方法及装置
TWI673667B (zh) * 2017-01-25 2019-10-01 楊建綱 內建智慧安全行動裝置
CN107194243B (zh) * 2017-05-25 2020-06-09 南京白下高新技术产业园区投资发展有限责任公司 一种移动终端及安装应用程序的方法
US10915609B2 (en) 2017-08-01 2021-02-09 Lakeba Technology Pty Ltd Securing applications on mobile devices
WO2019028547A1 (en) 2017-08-08 2019-02-14 Crypto4A Technologies Inc. METHOD AND SYSTEM FOR DEPLOYING AND EXECUTING EXECUTABLE CODE BY SECURE MACHINE
CN107885995A (zh) 2017-10-09 2018-04-06 阿里巴巴集团控股有限公司 小程序的安全扫描方法、装置以及电子设备
US11568050B2 (en) * 2017-10-30 2023-01-31 Hewlett-Packard Development Company, L.P. Regulating execution
DE102018220546B4 (de) 2017-11-30 2022-10-13 Ridge Tool Company Systeme und verfahren zum identifizieren von punkten von interesse in röhren oder abflussleitungen
CN114125017B (zh) * 2020-08-10 2024-04-09 腾讯科技(深圳)有限公司 媒体信息的显示方法和装置、存储介质及电子设备
DE102021204604A1 (de) 2021-03-11 2022-09-15 Ridge Tool Company Presswerkzeugsystem mit variabler kraft
US11797316B2 (en) 2021-10-08 2023-10-24 Bank Of America Corporation System and method for automatic generation and management of feature level application directory

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7287166B1 (en) * 1999-09-03 2007-10-23 Purdue Research Foundation Guards for application in software tamperproofing
US7124445B2 (en) 2002-06-21 2006-10-17 Pace Anti-Piracy, Inc. Protecting software from unauthorized use by converting source code modules to byte codes
JP2007133511A (ja) 2005-11-08 2007-05-31 Ricoh Co Ltd 文書管理装置、文書管理プログラム及び記録媒体
US20070136207A1 (en) 2005-12-13 2007-06-14 Nokia Corporation Locking of applications for specially marked content
US7870399B2 (en) 2006-02-10 2011-01-11 Arxan Defense Systems Software trusted platform module and application security wrapper
US8151323B2 (en) 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance
US8190785B2 (en) * 2006-05-26 2012-05-29 Smart Technologies Ulc Plug-and-play device and method for enhancing features and settings in an interactive display system
JP2008027306A (ja) 2006-07-24 2008-02-07 Aplix Corp ユーザ空間仮想化システム
GB0815587D0 (en) * 2008-08-27 2008-10-01 Applied Neural Technologies Ltd Computer/network security application
US9210173B2 (en) * 2008-11-26 2015-12-08 Red Hat, Inc. Securing appliances for use in a cloud computing environment
US7941700B2 (en) * 2009-03-02 2011-05-10 Microsoft Corporation Operating system-based application recovery
US8285949B2 (en) * 2009-06-03 2012-10-09 Apple Inc. Secure software installation
KR101012872B1 (ko) * 2009-09-16 2011-02-08 주식회사 팬택 플랫폼 보안 장치 및 방법
US9135434B2 (en) * 2010-04-19 2015-09-15 Appcentral, Inc. System and method for third party creation of applications for mobile appliances
EP2695050A4 (en) * 2011-04-07 2016-03-23 Pneuron Corp MIGRATION OF EXISTING APPLICATION ON A PARALLEL PERFORMANCE CLOUD OF PERFORMANCE IN REAL-TIME

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160020294A (ko) * 2014-08-13 2016-02-23 (주)잉카엔트웍스 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템
KR20180053872A (ko) 2016-11-14 2018-05-24 삼성에스디에스 주식회사 애플리케이션 변환 장치 및 방법
KR20180131009A (ko) 2017-05-31 2018-12-10 삼성에스디에스 주식회사 대용량 애플리케이션 변환 장치 및 방법
KR20190048416A (ko) 2017-10-31 2019-05-09 삼성에스디에스 주식회사 애플리케이션의 화이트 레이블링 장치 및 방법
KR20190112491A (ko) 2018-03-26 2019-10-07 삼성에스디에스 주식회사 애플리케이션 변환 장치 및 방법
KR20190123146A (ko) 2018-04-23 2019-10-31 삼성에스디에스 주식회사 애플리케이션의 보안성 향상을 위한 애플리케이션 변환 장치 및 방법

Also Published As

Publication number Publication date
WO2012109196A1 (en) 2012-08-16
CA2826813A1 (en) 2012-08-16
CN103403669A (zh) 2013-11-20
AU2012214619A1 (en) 2013-08-15
DE112012000750T5 (de) 2014-01-09
US20120210443A1 (en) 2012-08-16
US8549656B2 (en) 2013-10-01
CN103403669B (zh) 2016-12-21

Similar Documents

Publication Publication Date Title
US8549656B2 (en) Securing and managing apps on a device
US8955142B2 (en) Secure execution of unsecured apps on a device
US8812868B2 (en) Secure execution of unsecured apps on a device
US8769305B2 (en) Secure execution of unsecured apps on a device
US8893298B2 (en) Network linker for secure execution of unsecured apps on a device
US9537869B2 (en) Geographical restrictions for application usage on a mobile device
US9542552B2 (en) Extensible platform for securing apps on a mobile device using policies and customizable action points
US8990920B2 (en) Creating a virtual private network (VPN) for a single app on an internet-enabled device or system
US9396325B2 (en) Provisioning an app on a device and implementing a keystore
US20140040622A1 (en) Secure unlocking and recovery of a locked wrapped app on a mobile device
US9306933B2 (en) Ensuring network connection security between a wrapped app and a remote server
US9473485B2 (en) Secure single sign-on for a group of wrapped applications on a computing device and runtime credential sharing
US20160055344A1 (en) Data loss prevention during app execution using e-mail enforcement on a mobile device
US9672353B2 (en) Securing and managing apps on a device using policy gates
Sikder et al. A survey on android security: development and deployment hindrance and best practices
Omar et al. Android application security
Rahimi et al. Android security and its rooting—a possible improvement of its security architecture
Kleiner et al. Ensuring mobile device security and compliance at the workplace
Gupta et al. A risk-driven model to minimize the effects of human factors on smart devices
Zhang et al. Design and implementation of efficient integrity protection for open mobile platforms
Fledel et al. Google android: an updated security review
Aron et al. Overview of security on mobile devices
Kanerva Integrating a mobile device management solution in Android
Dar A novel approach to restrict the access of malicious applications in android
Azam et al. Security source code analysis of applications in Android OS

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid