JP2020531996A - 悪意のあるアプリケーションがアプリケーションサービスを活用することを防止するためのシステム及び方法 - Google Patents

悪意のあるアプリケーションがアプリケーションサービスを活用することを防止するためのシステム及び方法 Download PDF

Info

Publication number
JP2020531996A
JP2020531996A JP2020510602A JP2020510602A JP2020531996A JP 2020531996 A JP2020531996 A JP 2020531996A JP 2020510602 A JP2020510602 A JP 2020510602A JP 2020510602 A JP2020510602 A JP 2020510602A JP 2020531996 A JP2020531996 A JP 2020531996A
Authority
JP
Japan
Prior art keywords
application
security
user
computing device
application service
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2020510602A
Other languages
English (en)
Other versions
JP6918212B2 (ja
Inventor
ダルマディカリ・マユール
ミール・パンカジ
ジョシ・ニキル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NortonLifeLock Inc
Original Assignee
Symantec Corp
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 Symantec Corp filed Critical Symantec Corp
Publication of JP2020531996A publication Critical patent/JP2020531996A/ja
Application granted granted Critical
Publication of JP6918212B2 publication Critical patent/JP6918212B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/53Monitoring 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 executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/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
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/12Detection or prevention of fraud
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Stored Programmes (AREA)

Abstract

悪意のあるアプリケーションがアプリケーションサービスを活用することを防止するための、開示するコンピュータ実装方法は、(i)アプリケーションのデータ及びコード実行をコンピューティングデバイス上のオペレーティングシステム内で実行される少なくとも1つの他のアプリケーションから隔離するサンドボックス化された環境内で実行されるアプリケーションによる、少なくとも1つのアプリケーションサービスを立ち上げる試みを識別することと、(ii)アプリケーションが潜在的なセキュリティリスクを表すと決定することと、(iii)コンピューティングデバイスのユーザを、アプリケーションによってもたらされる潜在的なセキュリティリスクを推奨されるセキュリティ対策を実施することにより修正するように促すことと、(iv)ユーザによる推奨されるセキュリティ対策の実施を待ちながら、アプリケーションによるアプリケーションサービスを立ち上げる試みをブロックしてコンピューティングデバイスを守ること、を含み得る。様々な他の方法、システム、及びコンピュータ可読媒体も開示される。

Description

今日、オペレーティングシステム(ANDROID(登録商標、以下同じ)オペレーティングシステムなど)の中には、ユーザ及びシステムデータを、アプリケーション「サンドボックス」内にアプリケーションをインストールして作動することにより守ろうとするものがある。あるサンドボックス化されたコンピューティング環境において、アプリケーションは、典型的には、障害、脆弱性又は悪意のあるコードがコンピューティングシステムの他の部分へ拡張することを防止しようとして、他のアプリケーション又はシステムリソースのデータ又はコードにアクセスすることを防止される。
皮肉にも、サンドボックス化されたコンピューティング環境を守りかつ保護するように設計されるこの同じ機構は、こうした環境内にインストールされるセキュリティソフトウェアが様々な通常のセキュリティ対策(アプリケーションの終了、締め出し、及び/又はアンインストールなど)を実施することを妨げる場合もある。したがって、サンドボックス化されたコンピューティング環境の保護を回避することができる悪意のあるアプリケーションは、このような環境内にインストールされるセキュリティソフトウェアがそれを効果的に戦わせにくい場合があるという理由で、ユーザのデバイスのセキュリティにとって特に危険な脅威となり得る。したがって、本開示は、サンドボックス化されたコンピューティング環境を悪意のあるアプリケーションから保護するための改善されたシステム及び方法に対するニーズを特定しかつこれに対処する。
後により詳細に説明するが、本開示は、サンドボックス化されたコンピューティング環境を悪意のあるアプリケーションから保護するための種々のシステム及び方法について述べる。ある実施例において、このようなタスクを実施するための方法は、(i)アプリケーションのデータ及びコード実行をコンピューティングデバイス上のオペレーティングシステム内で実行される少なくとも1つの他のアプリケーションから隔離するサンドボックス化された環境内で実行されるアプリケーションによる、少なくとも1つのアプリケーションサービスを立ち上げる試みを識別することと、(ii)アプリケーションが潜在的なセキュリティリスクを表すと決定することと、(iii)コンピューティングデバイスのユーザを、アプリケーションによってもたらされる潜在的なセキュリティリスクを推奨されるセキュリティ対策を実施することにより修正するように促すことと、(iv)ユーザによる推奨されるセキュリティ対策の実施を待ちながら、アプリケーションによるアプリケーションサービスを立ち上げる試みをブロックしてコンピューティングデバイスを守ること、を含み得る。
いくつかの実施形態では、オペレーティングシステムは、オペレーティングシステム内で実行される全てのアプリケーションを、各アプリケーションのデータ及びコード実行をオペレーティングシステム内で実行される他の全てのアプリケーションから隔離することによってサンドボックス化するように構成され得る。ある実施例において、サンドボックス化された環境は、オペレーティングシステム内で実行されるセキュリティソフトウェアがアプリケーションを自動的に締め出す、及び/又は自動的にアンインストールすることを防止し得る。
種々の実施形態によれば、アプリケーションサービスを立ち上げる試みは、機密情報を捕捉し、機密情報を送信し、悪意のあるリソースにアクセスし、ユーザデータを変更し、特権昇格を要求するユーザプロンプトを生成し、及び/又は広告を生成する試みを含み得る。ある実施例において、推奨されるセキュリティ対策は、コンピューティングデバイス上にインストールされるセキュリティソフトウェアが、サンドボックス化された環境に起因してそれ自体では実施できないコンピューティング動作を表し得る。更に、アプリケーションによってもたらされる潜在的なセキュリティリスクを修正するようにユーザを促すことは、アプリケーションを終了し及び/又はアプリケーションをアンインストールするようにユーザを促すことを含み得る。実施形態によっては、アプリケーションによるアプリケーションサービス立ち上げの試みをブロックすることは、アプリケーションがアプリケーションサービスを立ち上げることを防止すること、及び/又はアプリケーションサービスを、アプリケーションがアプリケーションサービスを立ち上げた後に自動的に終了することを防止することを含み得る。これらの実施形態において、方法は、アプリケーションサービスを自動的に終了することができなければ、アプリケーションサービスを立ち上げたアプリケーションを手動で終了するようにユーザを促すことも含み得る。ある実施例において、アプリケーションサービスを立ち上げたアプリケーションを手動で終了するようにユーザを促すことは、ユーザがアプリケーションの終了に成功したことを検出するまで、アプリケーションを終了するようにユーザを周期的に促すことを含み得る。
悪意のあるアプリケーションがアプリケーションサービスを利用することを防止するための対応するシステムは、(i)アプリケーションのデータ及びコード実行をシステム上のオペレーティングシステム内で実行される少なくとも1つの他のアプリケーションから隔離するサンドボックス化された環境内で実行されるアプリケーションによる、少なくとも1つのアプリケーションサービスを立ち上げる試みを識別する、メモリデバイスに記憶される識別モジュールと、(ii)アプリケーションが潜在的なセキュリティリスクを表すと決定する、メモリデバイスに記憶される決定モジュールと、(iii)システムのユーザを、推アプリケーションによってもたらされる潜在的なセキュリティリスクを推奨されるセキュリティ対策を実施することにより修正するように促す、メモリデバイスに記憶される通知モジュールと、(iv)ユーザによる推奨されるセキュリティ対策の実施を待ちながら、アプリケーションによるアプリケーションサービスを立ち上げる試みをブロックしてコンピューティングシステムを守る、セキュリティモジュールと、(v)識別モジュール、決定モジュール、通知モジュール、及びセキュリティモジュールを実行する少なくとも1つの物理プロセッサと、を含む、メモリに記憶されるいくつかのモジュールを含み得る。
いくつかの実施例では、上述の方法は、非一時的コンピュータ可読媒体上のコンピュータ可読命令としてコード化されてもよい。例えば、あるコンピュータ可読媒体は、1つ以上のコンピュータ実行可能命令を含み得、1つ以上のコンピュータ実行可能命令は、コンピューティングデバイスの少なくとも1つのプロセッサによって実行されると、コンピューティングデバイスに、(i)アプリケーションのデータ及びコード実行をコンピューティングデバイス上のオペレーティングシステム内で実行される少なくとも1つの他のアプリケーションから隔離するサンドボックス化された環境内で実行されるアプリケーションによる、少なくとも1つのアプリケーションサービスを立ち上げる試みを識別させ、(ii)アプリケーションが潜在的なセキュリティリスクを表すと決定させ、(iii)コンピューティングデバイスのユーザを、アプリケーションによってもたらされる潜在的なセキュリティリスクを推奨されるセキュリティ対策を実施することにより修正するように促させ、(iv)ユーザによる推奨されるセキュリティ対策の実施を待つ間に、アプリケーションによるアプリケーションサービスを立ち上げる試みをブロックしてコンピューティングデバイスを守らせ得る。
上述の実施形態のいずれかによる特徴は、本明細書に記載される一般原理に従って、互いに組み合わせて使用されてもよい。これら及び他の実施形態、特徴、及び利点は、添付の図面及び特許請求の範囲と併せて以下の発明を実施するための形態を読むことによって更に十分に理解されるだろう。
添付の図面は、いくつかの例示的な実施形態を図示するものであり、本明細書の一部である。以下の説明と併せて、これらの図面は、本開示の様々な原理を実証及び説明する。
悪意のあるアプリケーションがアプリケーションサービスを活用することを防止するための例示的なシステムを示すブロック図である。 悪意のあるアプリケーションがアプリケーションサービスを活用することを防止するための追加的なシステム例を示すブロック図である。 悪意のあるアプリケーションがアプリケーションサービスを活用することを防止するための例示的な方法を示すフロー図である。 例示的なセキュリティプロンプトを示す。 悪意のあるアプリケーションがアプリケーションサービスを活用することを防止するための例示的なタイムラインを示す。 本明細書に記載され及び/又は図示される実施形態のうちの1つ以上を実装できる例示的なコンピューティングシステムを示すブロック図である。 本明細書に記載され及び/又は図示される実施形態のうちの1つ以上を実装できる例示的なコンピューティングネットワークを示すブロック図である。
図面を通して、同一の参照符号及び記述は、必ずしも同一ではないが、類似の要素を示す。本明細書で説明される例示的実施形態は、様々な修正物及び代替的な形態が可能であるが、特定の実施形態が例として図面に示されており、本明細書に詳細に記載される。しかしながら、本明細書に記載される例示的実施形態は、開示される特定の形態に限定されることを意図しない。むしろ、本開示は、添付の「特許請求の範囲」内にある全ての修正物、等価物、及び代替物を網羅する。
本開示は、一般に、サンドボックス化されたコンピューティング環境を悪意のあるアプリケーションから保護するためのシステム及び方法に関する。後により詳細に説明するように、サンドボックス化されたコンピューティング環境は、典型的には、セキュリティソフトウェアが、悪意のあるアプリケーションの終了、締め出し、及び/又はアンインストールなどの様々な通常のセキュリティ対策を実施することを妨げる。このような環境にインストールされるセキュリティソフトウェアは、コンピューティングデバイスのユーザに脆弱性について通知しかつこれを修復する命令を提供し得るが、ユーザがセキュリティリスクを通知される時点からユーザがセキュリティリスクを修復するに足る対策を首尾良く実施する時点までの時間ウィンドウは、悪意のあるアプリケーションがユーザのハードウェア、ソフトウェア又は情報を悪用し、中断し及び/又は別段で悪影響を及ぼすのに十分な長さであり得る。しかしながら、悪意のあるアプリケーションによるアプリケーションサービス立ち上げの試みを、ユーザがより恒久的なセキュリティ対策を成功裏に実施することができるまでブロックすることにより、本明細書に開示するシステムは、この脆弱性ウィンドウの間のユーザのコンピューティングデバイスを守り得、ひいては、サンドボックス化されたコンピューティング環境内のマルウェアによる悪影響を最小限に抑え及び/又は排除する。
以下、図1〜図2を参照して、悪意のあるアプリケーションによるアプリケーションサービスの活用を防止するための例示的なシステムについて詳述する。それに対応するコンピュータ実装方法についてもまた、図3〜図5と関連して詳細に説明する。更に、本明細書に記載される実施形態のうちの1つ以上を実装することができる例示的なコンピューティングシステム及びネットワークアーキテクチャについても、各々図6及び図7に関連して詳述する。
図1は、悪意のあるアプリケーションがアプリケーションサービスを活用することを防止するための例示的なシステム100を示すブロック図である。この図に図示されるように、例示的なシステム100は、1つ以上のタスクを実施するための1つ以上のモジュール102を含み得る。例えば、また後に更に詳述するように、モジュール102は、サンドボックス化された環境内で実行されるアプリケーションによる、少なくとも1つのアプリケーションサービスを立ち上げる試みを識別するようにプログラムされる識別モジュール104を含んでもよい。モジュール102はまた、アプリケーションが潜在的なセキュリティリスクを表すと決定するようにプログラムされる決定モジュール106、及びコンピューティングデバイスのユーザを、アプリケーションによってもたらされる潜在的なセキュリティリスクを修正すべく促すようにプログラムされる通知モジュール108も含んでもよい。最後に、モジュール102は、ユーザによる推奨されるセキュリティ対策の実施を待つ間に、アプリケーションによるアプリケーションサービスを立ち上げる試みをブロックしてコンピューティングデバイスを守るようにプログラムされるセキュリティモジュール110を含んでもよい。別々の要素として図示されるが、図1のモジュール102のうちの1つ以上は、単一のモジュール又はアプリケーションの部分を表してもよい。
特定の実施形態では、図1のモジュール102のうちの1つ以上は、コンピューティングデバイスによって実行されると、コンピューティングデバイスに1つ以上のタスクを実施させ得る、1つ以上のソフトウェアアプリケーション又はプログラムを表し得る。例えば、また後に更に詳細するように、モジュール102のうちの1つ以上は、図2に示されるデバイス(例えば、コンピューティングデバイス202)などの1つ以上のコンピューティングデバイスに記憶されかつその上で作動するように構成されるモジュールを表してもよい。図1のモジュール102のうちの1つ以上はまた、1つ以上のタスクを実施するように構成された1つ以上の専用コンピュータの全て又は一部を表し得る。
図1に示すように、例示的なシステム100は、システムメモリ140などの1つ以上のメモリデバイスも含み得る。システムメモリ140は、一般に、データ及び/又はコンピュータ可読命令を記憶できる任意のタイプ又は形態の揮発性又は不揮発性の記憶デバイス又は媒体を表す。ある実施例において、システムメモリ140は、モジュール102のうちの1つ以上を記憶し、ロードし及び/又は保持してもよい。システムメモリ140の例としては、非限定的に、ランダムアクセスメモリ(Random Access Memory、RAM)、リードオンリーメモリ(Read Only Memory、ROM)、フラッシュメモリ、ハードディスクドライブ(Hard Disk Drive、HDD)、ソリッドステートドライブ(Solid-State Drive、SSD)、光ディスクドライブ、キャッシュ、それらのうちの1つ以上の変形形態若しくは組み合わせ、及び/又は任意の他の好適な記憶メモリが挙げられる。
図1に示すように、例示的なシステム100はまた、物理プロセッサ130などの1つ以上の物理プロセッサも含み得る。物理プロセッサ130は、一般に、コンピュータ可読命令を解釈及び/又は実行することができる任意のタイプ又は形態のハードウェア実装処理ユニットを表す。ある実施例において、物理プロセッサ130は、システムメモリ140に記憶されるモジュール102のうちの1つ以上にアクセスし及び/又はこれを変更してもよい。それに加えて、又は代替的に、物理プロセッサ130は、モジュール102のうちの1つ以上を実行してもよい。物理プロセッサ130の例としては、非限定的に、マイクロプロセッサ、マイクロコントローラ、中央処理装置(Central Processing Unit、CPU)、ソフトコアプロセッサを実装するフィールドプログラマブルゲートアレイ(Field-Programmable Gate Array、FPGA)、特定用途向け集積回路(Application-Specific Integrated Circuit、ASIC)、それらのうちの1つ以上の部分、それらのうちの1つ以上の変形形態若しくは組み合わせ、及び/又は任意の他の好適な物理プロセッサが挙げられる。
図1の例示的なシステム100は、様々な方法で実装され得る。例えば、例示的なシステム100の全て又は一部は、図2における例示的なシステム200の部分を表してもよい。図2に示すように、システム200は、ユーザスペース210と、カーネルスペース220と、ハードウェア230とを含むコンピューティングデバイス202を含んでもよい。ある実施例において、モジュール102の機能の全て又は一部は、セキュリティアプリサンドボックス212内で実行されるセキュリティアプリケーションによって実装されてもよい。
コンピューティングデバイス202は、一般に、コンピュータ実行可能命令を読み取ることができる任意のタイプ又は形態のコンピューティングデバイスを表す。コンピューティングデバイス202の例としては、非限定的に、ラップトップ、タブレット、デスクトップ、サーバ、携帯電話又は他のモバイルデバイス、携帯情報端末(Personal Digital Assistant、PDA)、マルチメディアプレーヤ、埋め込みシステム、ウェアラブルデバイス(例えば、スマートウォッチ、スマートグラス、他)、スマートビークル、スマートパッケージング(例えば、アクティブ又はインテリジェントパッケージング)、ゲーム機、いわゆるモノのインターネットデバイス(例えば、スマート家電、他)、それらのうちの1つ以上の変形形態若しくは組み合わせ、及び/又は他の任意の好適なコンピューティングデバイスが挙げられる。
ある実施例において、コンピューティングデバイス202上のオペレーティングシステム(ANDROIDなど)は、サンドボックス環境内で1つ以上のユーザアプリケーションを実行してもよい。本明細書で使用する「サンドボックス」又は「サンドボックス化された環境」という用語は、一般に、あるアプリケーションの少なくとも1つの態様(そのデータ及び/又はコード実行など)が、そのコンピューティング環境内で実行されるアプリケーション及び/又はシステムソフトウェアの少なくとも1つの他の態様から隔離されるコンピューティング環境を指す。いくつかの実施例において、サンドボックスは、ディスク及びメモリ上のスクラッチスペースなどの厳しく制御されたリソースセットを、ユーザスペース210などのユーザスペース内のサンドボックス化された各アプリケーションへ割り当てることによって達成されてもよい。
図2に示す実施例において、各アプリケーションは、各アプリケーションが他の全てのアプリケーションから隔離されるように、ユーザスペース210内に固有のサンドボックスを割り当てられてもよい。例えば、セキュリティアプリケーションは、セキュリティアプリサンドボックス212内に隔離されてもよく、第1のアプリケーション(「app1」)は、app1サンドボックス214(1)内に、第2のアプリケーション(「appN」)は、appNサンドボックス(N)内に、等々と隔離されてもよい。いくつかの実施例において、各アプリケーションサンドボックスは、ANDROIDオペレーティングシステムなどのLINUXベースのオペレーティングシステムによって割り当てられるUIDなどの、固有で一意のユーザID(「UID」)に関連付けられてもよい。
いくつかの実施形態において、コンピューティングデバイス202のサンドボックス化された環境は、セキュリティソフトウェア(セキュリティアプリサンドボックス212内で実行されるセキュリティアプリケーションなど)がサンドボックス214(1)〜(N)内で実行されるアプリケーションなどの他のアプリケーションを自動的に終了する(例えば、強制終了する)、締め出す、及び/又はアンインストールすることを防止してもよい。例えば、図2に示すサンドボックス化された環境は、各ユーザアプリケーション(セキュリティソフトウェアを含む)が、内部に記憶されるデータ及び/又はコードを含む他の任意のアプリケーションのサンドボックスにアクセスすることを防止するように構成されてもよい。後述するように、他のアプリケーションへのこのファイルレベルアクセスの欠如は、こうした環境内にインストールされるセキュリティアプリケーションが通常のセキュリティ対策を実施する能力をも制限し得る。例えば、ANDROIDのオペレーティングシステムは、任意の所与のアプリケーション(セキュリティソフトウェアを含む)が、異なるUIDを有し及び/又は異なるシステムキーで署名される他の任意のアプリケーションを終了し(例えば、強制終了し)及び/又はアンインストールすることを防止することから、ANDROID内のセキュリティソフトウェアは、セキュリティソフトウェアがセキュリティリスクを表すとして識別した悪意のあるアプリケーションを含む他のアプリケーションを終了し、締め出し及び/又はアンインストールすることをなし得ない場合がある。
図3は、悪意のあるアプリケーションがアプリケーションサービスを活用することを防止するための例示的なコンピュータ実装方法300を示すフロー図である。図3に示されるステップは、図1のシステム100、図2のシステム200、及び/又はそれらのうちの1つ以上の変形形態若しくは組み合わせを含む、任意の好適なコンピュータ実行可能コード及び/又はコンピューティングシステムによって実施され得る。ある実施例において、図3に示すステップの各々は、その構造が後に例を詳述する複数のサブステップを含む、及び/又はサブステップによって表されるアルゴリズムを表してもよい。
図3に示すように、ステップ302において、本明細書に記載のシステムのうちの1つ以上は、アプリケーションのデータ及びコード実行をコンピューティングデバイス上のオペレーティングシステム内で実行される少なくとも1つの他のアプリケーションから隔離するサンドボックス化された環境内で実行されるアプリケーションによる、少なくとも1つのアプリケーションサービスを立ち上げる試みを識別してもよい。例えば、識別モジュール104は、図2のコンピューティングデバイス202上で実行されるセキュリティアプリケーションの一部(例えば、ユーザスペース210内のセキュリティアプリサンドボックス212内で実行されるセキュリティアプリケーション)として、あるアプリケーション(例えば、ユーザスペース210内のapp1サンドボックス214(1)で実行されるアプリケーション)によるアプリケーションサービスの立ち上げを識別してもよい。
本明細書で使用する「アプリケーションサービス」という用語は、一般に、アプリケーションのためにコンピューティングタスクを実施できる任意のタイプ又は形態のアプリケーション又はシステム構成要素を指す。いくつかの実施例において、アプリケーションサービスは、バックグラウンドで実施される(即ち、コンピューティングデバイスのユーザがフォアグラウンド又はアクティブウィンドウにおいてアプリケーションと対話していない場合の)コンピューティングタスクを指してもよい。正当なタスクのホストを実施することに加えて、アプリケーションサービスは、マルウェア開発者により、例えば、機密情報の捕捉(例えば、キーストロークのログ、スクリーンキャプチャの生成、パスワードの探り出し、他による)、機密情報の送信(例えば、無認可の第三者宛て)、ユーザ及び/又はシステムデータの変更(例えば、ユーザ及び/又はシステムデータの暗号化、削除及び/又は改竄)、特権昇格を要求するユーザプロンプト(例えば、ユーザがアプリケーションに、ユーザの連絡先、デバイスのカメラ、他へのアクセスなどの機密のデータ又はリソースへのアクセスの許可を与えるように要求するプロンプト)の生成、悪意のあるリソースへのアクセス(例えば、悪意のあるファイルのダウンロード)、広告の生成及び/又は提供、他を含む、種々の不正なタスクを実施するために使用されることがある。
本明細書に記載されるシステムは、様々な方法でステップ302を実施してもよい。先に詳述したように、いくつかの実施例において、本明細書に記載するシステムは、あるアプリケーションのデータ及び/又はコード実行を少なくとも1つの他のアプリケーションから(及び場合により他の全てのアプリケーションから)隔離するサンドボックス化された環境内で動作してもよい。これらの実施例において、識別モジュール104は(例えば、コンピューティングデバイス202のユーザスペース210内のセキュリティアプリサンドボックス212内で実行されるセキュリティアプリケーションの一部として)、あるアプリケーション(例えば、app1サンドボックス214(1)内で実行されるアプリケーション)によるアプリケーションサービス立ち上げの試みを、カーネルスペース220(即ち、オペレーティングシステムのカーネル、カーネル拡張部、デバイスドライバ、他を実行するために予約されるスペース)との通信によって識別してもよい。例えば、識別モジュール104は(例えば、カーネルスペース220と通信することにより)、コンピューティングデバイス202上で作動している少なくとも1つのアプリケーション又はプロセス(例えば、app1サンドボックス214(1)内で実行されるアプリケーション)を識別する情報を取得してもよい。識別モジュール104は、次に(やはり、例えばカーネルスペース220と、例えばアプリケーションのUID又はプロセス名を用いて通信することにより)、アプリケーションによるアプリケーションサービス立ち上げのあらゆる試みを識別してもよい。
いくつかの実施例において、識別モジュール104は、アプリケーションによるアプリケーションサービス立ち上げの試みをリアルタイムで識別してもよく、即ち、識別モジュール104は、カーネルレベルのフックを利用して、サービス立ち上げの要求を、要求が認められる前に識別してもよい。しかしながら、他の実施例において、識別モジュール104は、こうした試みを、要求が認められた後に識別してもよい。
いくつかの実施形態において、モジュール102は(例えば、セキュリティアプリサンドボックス212内で実行されるセキュリティアプリケーションの一部として)、コンピューティングデバイス上で作動しているアプリケーション及び/又はこのようなアプリケーションにより立ち上げられるサービスを識別する情報を要求しかつ取得するために、コンピューティングデバイスのユーザからの特権昇格を求めることがある。これらの実施形態において、モジュール102は、ユーザを(例えば、セキュリティアプリケーションをインストールする間に)このような特権昇格を認めるように促してもよい。加えて、識別モジュール104は、作動中のアプリケーション及びその関連サービスを識別する情報を得るために、カーネルスペース220との対話に際して様々な異なるクラス、方法及びコマンドを用いてもよい。例えば、ANDROIDのオペレーティングシステム内で実行される場合、識別モジュール104は、ActivityManagerクラス及びその関連のサブクラス(例えば、ActivityManager.RunningAppProcessInfo、ActivityManager.RunningServiceInfo、他)及び方法(例えば、getRunningAppProcesses、getRunningServices、他)を利用して、カーネルスペース220からこうした情報を取得してもよい。
ステップ304において、本明細書に記載のシステムは、ステップ302で識別されたアプリケーション(及び/又はこれに関連するアプリケーションサービス立ち上げの試み)が潜在的なセキュリティリスクを表すと決定してもよい。例えば、決定モジュール106は(例えば、セキュリティアプリサンドボックス212内で作動するセキュリティアプリケーションの一部として)、app1サンドボックス214(1)内で作動するアプリケーション(及び/又は、このアプリケーションによるアプリケーションサービス立ち上げの試み)が潜在的なセキュリティリスクを表すと決定してもよい。
本明細書で使用する「潜在的なセキュリティリスク」という言い回しは、一般に、ユーザのコンピュータハードウェア、ソフトウェア又は情報を害し、悪用し、中断し、宛先を変え、及び/又は別段でこれに悪影響を与えることが可能なあらゆるコンピューティング動作を指す。潜在的なセキュリティリスクの例としては、マルウェア(例えば、ウイルス、ワーム、トロイの木馬、ランサムウェア)、スパイウェア、アドウェア、スケアウェア、他が挙げられる。いくつかの実施例において、あるアプリケーション(及び/又はその関連サービス)は、このアプリケーションのレピュテーションが未知であれば(即ち、このアプリケーションが正当なものか悪意のあるものかが知られていなければ)潜在的なセキュリティリスクとして分類されてもよい。
本明細書に記載するシステムは、ステップ304を様々な方法で実施してもよい。例えば、決定モジュール106は、あるアプリケーション(及び/又は、このアプリケーションによるアプリケーションサービス立ち上げの試み)がセキュリティリスクを表すことを、署名ベースの技法を用いて(例えば、アプリケーション又はその関連サービスのいずれかのパッケージ又はファイル名を既知の悪意のあるアプリケーション及びサービスのデータベースと照合することにより)、挙動ヒューリスティックを用いて(例えば、アプリケーション又はその関連サービスのうちのいずれかの挙動を既知の悪意のあるアプリケーションの挙動と比較することにより)、及び/又は、アプリケーション(又はその関連サービスのいずれか)が悪意のあるものであるかどうかを決定できる他の任意の技法を用いて、決定してもよい。
ステップ306において、本明細書に記載するシステムは、コンピューティングデバイスのユーザを、アプリケーションによってもたらされる潜在的なセキュリティリスクを推奨されるセキュリティ対策の実施によって修正するように促してもよい。例えば、通知モジュール108は(例えば、セキュリティアプリサンドボックス212内で作動するセキュリティアプリケーションの一部として)、コンピューティングデバイス202のユーザに推奨されるセキュリティ対策の実施を促し、app1サンドボックス214(1)内で作動するアプリケーションによってもたらされる潜在的なセキュリティリスクを修正してもよい。
本明細書で使用する「セキュリティ対策」という言い回しは、一般に、コンピューティングデバイスを悪意のあるアプリケーションから保護し及び/又は悪意のあるアプリケーションに起因する損傷を修復することができるあらゆる行為を指す。通知モジュール108がユーザに推奨し得るセキュリティ対策の例としては、非限定的に、アプリケーションの終了(例えば、アプリケーションの閉鎖又は強制終了)、アプリケーションのアンインストール、削除又は別段による除去、アプリケーションに関連付けられる許可のダウングレード又は別段による変更、セキュリティアプリケーション又はプロセスのインストール、セキュリティアプリケーション又はプロセスの作動、他が挙げられる。いくつかの実施例において、ステップ306における通知モジュール108により推奨されるセキュリティ対策は、セキュリティソフトウェアがコンピューティングデバイス202のサンドボックス化された環境に起因してそれ自体では実施できないコンピューティング動作を表してもよい。
本明細書に記載するシステムは、ステップ306において生成されるセキュリティプロンプト内に様々な情報を含んでもよい。例えば、通知モジュール108は、(1)問題のアプリケーションを識別し、(2)問題のアプリケーションがセキュリティリスクを表す理由を示し、及び/又は(3)アプリケーションによってもたらされるセキュリティリスクを修正するためにユーザが実施すべき推奨されるセキュリティ対策を識別してもよい。例えば、図4に示すように、通知モジュール108は、アプリケーション「MalPhotos」が写真及び電話番号を漏洩し、よってアンインストールされるべきであることを示すセキュリティプロンプト402を生成してもよい。この実施例において、コンピューティングデバイス202のユーザは、セキュリティプロンプト402内に提供される「クリックしてアンインストール」ボタンをクリックすることにより、「MalPhotos」アプリケーションをアンインストールしてもよい。
図3に戻ると、ステップ308において、本明細書に記載するシステムは、ユーザによる推奨されるセキュリティ対策の実施を待つ間に、アプリケーションによるアプリケーションサービスを立ち上げる試みをブロックしてコンピューティングデバイスを守ってもよい。例えば、セキュリティモジュール110は(例えば、コンピューティングデバイス202上のセキュリティアプリサンドボックス212内で作動するセキュリティアプリケーションの一部として)、コンピューティングデバイス202のユーザスペース210内のapp1サンドボックス214(1)内で作動する悪意のあるアプリケーションによるアプリケーションサービス立ち上げのあらゆる試みをブロックしてもよい。
本明細書に記載するシステムは、アプリケーションによるアプリケーションサービス立ち上げの試みを、様々な方法でブロックしてもよい。識別モジュール104が、カーネルレベルのフックを利用して、サービス立ち上げの要求をかかる要求が認められる前に識別する実施例では、セキュリティモジュール110は、アプリケーションによるアプリケーションサービスの立ち上げを完全に防止し得る。しかしながら、識別モジュール104がこうした試みを、要求が認められた後に識別する実施例では、セキュリティモジュール110がアプリケーションサービスを即座に、又はアプリケーションによるその立ち上げのすぐ後で自動的に終了してもよい。例えば、ANDROIDのオペレーティングシステム内で実行される場合、セキュリティモジュール110は、ActivityManagerクラス及びその関連するサブクラス及び方法(例えば、ActivityManager.killBackgroundProcesses)を利用して、所与のアプリケーション又はパッケージに関連付けられる全てのバックグラウンドプロセス又はサービスを直ちに終了してもよい。
セキュリティモジュール110が(例えば、特権が不十分であることに起因して、及び/又はサンドボックス化された環境の性質に起因して)問題のアプリケーションサービスを自動的に終了できなければ、通知モジュール108は、コンピューティングデバイス202のユーザを、アプリケーションサービスを立ち上げたアプリケーションを手動で終了する(例えば、強制終了する)ように促してもよい。このような実施例において、通知モジュール108は、ユーザがアプリケーションの終了に成功したことを検出するまで、ユーザを周期的に(例えば、5秒毎、1分毎、30分毎、他で)促してもよい。
いくつかの実施形態において、モジュール102は(例えば、セキュリティアプリサンドボックス212内で実行されるセキュリティアプリケーションの一部として)、アプリケーションサービスをブロックし及び/又は終了するために、コンピューティングデバイスのユーザからの特権昇格を求めることがある。これらの実施形態において、セキュリティアプリケーションのモジュール102は、ユーザを(例えば、セキュリティアプリケーションをインストールする間に)このような特権昇格を認めるように促してもよい。
先に詳述したように、コンピューティングデバイス202のサンドボックス化された環境は、コンピューティングデバイス202上で作動する各ユーザアプリケーション(セキュリティソフトウェアを含む)が、内部に記憶されるデータ及び/又はコードを含む他の任意のアプリケーションのサンドボックスにアクセスすることを防止し得る。しかしながら、他のアプリケーションへのファイルレベルアクセスの欠如は、サンドボックス化された環境内にインストールされるセキュリティソフトウェアが悪意のあるアプリケーションの終了、締め出し、及び/又はアンインストールなどの通常のセキュリティ対策を実施する能力を制限することにもなり得る。したがって、コンピューティングデバイス202のサンドボックス化された環境内にインストールされるセキュリティソフトウェアは、コンピューティングデバイス202を効果的に守るために、ユーザが様々なセキュリティ対策(例えば、アプリケーションの終了及び/又はアンインストール)を実施することに依存する(かつこのような実施をユーザに促す)必要がある場合がある。残念ながら、コンピューティングデバイス202のユーザは、こうした実施を促されたとしても、悪意のあるアプリケーションが、ユーザのハードウェア、ソフトウェア又は情報を害し、悪用し、中断し及び/又は別段でこれに悪影響を与え得る前に、推奨されたセキュリティ対策を実施し得ない(又は実施し遅れる、又は実施を忘れる)ことがある。
図5に示すタイムラインは、この問題(及び本明細書に記載するシステムにより提供されるソリューション)を強調表示したものである。この図が示すように、時点T1において、サンドボックス化された環境内で動作するセキュリティアプリケーション(例えば、図2のセキュリティアプリサンドボックス212内で作動するセキュリティアプリケーションのモジュール102)は、コンピューティングデバイス上にインストールされる、又はコンピューティングデバイス上で作動する悪意のあるアプリケーションなどの潜在的なセキュリティリスクを検出し得る。これを検出した時点で、セキュリティアプリケーションは、コンピューティングデバイスのユーザを、サンドボックス化された環境の性質に起因してセキュリティアプリケーションがそのままでは実施し得ない場合がある推奨されるセキュリティ対策(例えば、悪意のあるアプリケーションの終了及び/又はアンインストール)を実施するように促してもよい。この実施例では、本明細書に開示するシステムがなければ、時点T1から、ユーザが推奨されるセキュリティ対策を成功裏に実行する時点T3までの時間ウィンドウの間、問題のコンピューティングデバイスは、保護されないまま(よって、識別されたセキュリティリスクに対して無防備なまま)であり得る。
これを矯正するために、時点T1において潜在的なセキュリティリスクを検出すると、即、時点T2において、セキュリティアプリケーションは、識別されたセキュリティリスクの原因であるアプリケーションを監視し、かつこのアプリケーションによるアプリケーションサービス立ち上げの試みを(例えば、アプリケーションがアプリケーションサービスを立ち上げることを防止することにより、及び/又はアプリケーションにより立ち上げられる全てのアプリケーションサービスを自動的に終了することにより)ブロックしてもよい。そうすることにより、本明細書に開示するシステムによるセキュリティアプリケーションは、問題のコンピューティングデバイスを、コンピューティングデバイスのユーザがこれを(例えば、セキュリティアプリケーションにより推奨されるセキュリティ対策を実施することによって)永久的に修正できるまで、識別されたセキュリティリスクから保護し得る。
図6は、本明細書に記載され及び/又は図示される実施形態のうちの1つ以上を実装できる例示的なコンピューティングシステム610を示すブロック図である。例えば、コンピューティングシステム610のうちの全て又は一部は、単独で又は他の要素と組み合わせてのいずれかで、本明細書に記載されるステップのうちの1つ以上(図3に示されるステップのうちの1つ以上など)を実施し得、及び/又はそれを実施するための手段であり得る。コンピューティングシステム610のうちの全て又は一部はまた、本明細書に記載及び/若しくは図示される任意の他のステップ、方法、若しくはプロセスを実施してもよく、並びに/又はそれを実施するための手段であってもよい。
コンピューティングシステム610は、コンピュータ可読命令を実行することができる任意のシングル又はマルチプロセッサのコンピューティングデバイス又はシステムを幅広く表す。コンピューティングシステム610の例としては、非限定的に、ワークステーション、ラップトップ、クライアント側端末、サーバ、分散型コンピューティングシステム、ハンドヘルドデバイス、又は他の任意のコンピューティングシステム若しくはデバイスが挙げられる。その最も基本的な構成において、コンピューティングシステム610は、少なくとも1つのプロセッサ614及びシステムメモリ616を含んでもよい。
プロセッサ614は、一般に、データを処理すること又は命令を解釈及び実行することができる任意のタイプ又は形態の物理的処理ユニット(例えば、ハードウェア実装型中央処理ユニット)を表す。特定の実施形態において、プロセッサ614は、ソフトウェアアプリケーション又はモジュールから命令を受信してもよい。これらの命令は、プロセッサ614に、本明細書に記載され及び/又は図示される例示的な実施形態のうちの1つ以上の機能を実施させてもよい。
システムメモリ616は、一般に、データ及び/又は他のコンピュータ可読命令を記憶することができる任意のタイプ又は形態の揮発性又は不揮発性の記憶デバイス又は媒体を表す。システムメモリ616の例としては、非限定的に、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、フラッシュメモリ、又は任意の他の好適なメモリデバイスが挙げられる。必須ではないが、特定の実施形態において、コンピューティングシステム610は、揮発性メモリユニット(例えば、システムメモリ616など)及び不揮発性記憶デバイス(例えば、後に詳述するような一次記憶デバイス632など)の両方を含んでもよい。一実施例では、図1のモジュール102のうちの1つ以上は、システムメモリ616内にロードされ得る。
いくつかの実施例では、システムメモリ616は、プロセッサ614による実行のために、オペレーティングシステム640を記憶及び/又はロードし得る。一実施例では、オペレーティングシステム640は、コンピュータハードウェア及びソフトウェアリソースを管理し、並びに/又はコンピューティングシステム610上のコンピュータプログラム及び/又はアプリケーションに共通のサービスを提供するソフトウェアを含み及び/又はこれを表してもよい。オペレーティングシステム640の例としては、非限定的に、LINUX、JUNOS、MICROSOFT WINDOWS(登録商標)、WINDOWS(登録商標) MOBILE、MAC OS、APPLEのIOS、UNIX(登録商標)、GOOGLE CHROME OS、GOOGLEのANDROID、SOLARIS、それらのうちの1つ以上の変形形態、及び/又は任意の他の好適なオペレーティングシステムが挙げられる。
特定の実施形態では、例示的なコンピューティングシステム610はまた、プロセッサ614及びシステムメモリ616に加えて、1つ以上の構成要素又は要素も含み得る。例えば、図6に示すように、コンピューティングシステム610は、メモリコントローラ618、入力/出力(I/O)コントローラ620、及び通信インターフェース622を含み得、これらのそれぞれは、通信基盤612を介して相互接続され得る。通信基盤612は、一般に、コンピューティングデバイスの1つ以上の構成要素間の通信を容易にすることができる、任意のタイプ又は形態の基盤を表す。通信基盤612の例としては、非限定的に、通信バス(業界標準アーキテクチャ(ISA)、周辺装置相互接続(PCI)、PCIエクスプレス(PCIe)、又は類似のバスなど)、及びネットワークが挙げられる。
メモリコントローラ618は、一般に、メモリ若しくはデータを扱うこと、又はコンピューティングシステム610の1つ以上の構成要素間の通信を制御すること、ができる、任意のタイプ又は形態のデバイスを表す。例えば、特定の実施形態では、メモリコントローラ618は、通信基盤612を介して、プロセッサ614、システムメモリ616、及びI/Oコントローラ620の間の通信を制御してもよい。
I/Oコントローラ620は、一般に、コンピューティングデバイスの入出力機能を調整及び/又は制御することができる、任意のタイプ又は形態のモジュールを表す。例えば、特定の実施形態では、I/Oコントローラ620は、プロセッサ614、システムメモリ616、通信インターフェース622、ディスプレイアダプタ626、入力インターフェース630、及び記憶インターフェース634などの、コンピューティングシステム610の1つ以上の要素間のデータ転送を制御又は容易にし得る。
図6に示すように、コンピューティングシステム610はまた、ディスプレイアダプタ626を介してI/Oコントローラ620に連結された少なくとも1つのディスプレイデバイス624も含み得る。ディスプレイデバイス624は、一般に、ディスプレイアダプタ626によって転送された情報を視覚的に表示することができる、任意のタイプ又は形態のデバイスを表す。同様に、ディスプレイアダプタ626は、一般に、ディスプレイデバイス624上に表示するために通信基盤612から(又は当該技術分野において既知であるように、フレームバッファから)グラフィックス、テキスト、及び他のデータを転送するように構成された任意のタイプ又は形態のデバイスを表す。
図6に示すように、例示的なコンピューティングシステム610はまた、入力インターフェース630を介してI/Oコントローラ620に連結された少なくとも1つの入力デバイス628も含み得る。入力デバイス628は、一般に、コンピュータ又は人間のいずれかが生成した入力を例示的なコンピューティングシステム610に提供することができる任意のタイプ又は形態の入力デバイスを表す。入力デバイス628の例としては、非限定的に、キーボード、ポインティングデバイス、音声認識デバイス、それらのうちの1つ以上の変形形態若しくは組み合わせ、及び/又は任意の他の入力デバイスが挙げられる。
それに加えて、又は代替的に、例示的なコンピューティングシステム610は、追加のI/Oデバイスを含み得る。例えば、例示的なコンピューティングシステム610は、I/Oデバイス636を含み得る。この実施例では、I/Oデバイス636は、コンピューティングシステム610との人間の相互作用を容易にするユーザインターフェースを含み得る及び/又はそれを表し得る。I/Oデバイス636の例としては、非限定的に、コンピュータマウス、キーボード、モニタ、プリンタ、モデム、カメラ、スキャナ、マイクロフォン、タッチスクリーンデバイス、それらのうちの1つ以上の変形形態若しくは組み合わせ、及び/又は任意の他のI/Oデバイスが挙げられる。
通信インターフェース622は、例示的なコンピューティングシステム610と1つ以上の追加のデバイスとの間の通信を容易にすることができる、任意のタイプ又は形態の通信デバイス又はアダプタを幅広く表す。例えば、特定の実施形態では、通信インターフェース622は、コンピューティングシステム610と、追加のコンピューティングシステムを含む私設又は公衆ネットワークとの間の通信を容易にし得る。通信インターフェース622の例としては、非限定的に、有線ネットワークインターフェース(ネットワークインターフェースカードなど)、無線ネットワークインターフェース(無線ネットワークインターフェースカードなど)、モデム、及び任意の他の好適なインターフェースが挙げられる。少なくとも1つの実施形態では、通信インターフェース622は、インターネットなどのネットワークへの直接リンクを介してリモートサーバへの直接接続を提供し得る。通信インターフェース622はまた、例えば、ローカルエリアネットワーク(イーサネット(登録商標)ネットワークなど)、パーソナルエリアネットワーク、電話若しくはケーブルネットワーク、セルラー電話接続、衛星データ接続、又は他の任意の好適な接続を通して、このような接続を間接的に提供してもよい。
特定の実施形態では、通信インターフェース622はまた、外部バス又は通信チャネルを介したコンピューティングシステム610と1つ以上の追加のネットワーク又は記憶デバイスとの間の通信を容易にするように構成されたホストアダプタも表し得る。ホストアダプタの例としては、非限定的に、小型コンピュータシステムインターフェース(Small Computer System Interface、SCSI)ホストアダプタ、ユニバーサルシリアルバス(Universal Serial Bus、USB)ホストアダプタ、米国電気電子学会(Institute of Electrical and Electronics Engineers、IEEE)1394ホストアダプタ、アドバンストテクノロジーアタッチメント(Advanced Technology Attachment、ATA)、パラレルATA(Parallel ATA、PATA)、シリアルATA(Serial ATA、SATA)、及び外部SATA(External SATA、eSATA)ホストアダプタ、ファイバーチャネルインターフェースアダプタ、イーサネット(登録商標)アダプタなどが挙げられる。通信インターフェース622はまた、コンピューティングシステム610が分散型又はリモートコンピューティングに関与することも可能にし得る。例えば、通信インターフェース622は、実行のために、リモートデバイスから命令を受信しても、リモートデバイスに命令を送信してもよい。
いくつかの実施例では、システムメモリ616は、プロセッサ614による実行のために、ネットワーク通信プログラム638を記憶及び/又はロードし得る。一実施例では、ネットワーク通信プログラム638は、コンピューティングシステム610が、別のコンピューティングシステム(図6には図示せず)とのネットワーク接続642を確立すること、及び/又は通信インターフェース622を介して他のコンピューティングシステムと通信すること、を可能にする、ソフトウェアを含み得る及び/又はそれを表し得る。この実施例では、ネットワーク通信プログラム638は、ネットワーク接続642を介して他のコンピューティングシステムに送信される発信トラフィックの流れを指示し得る。それに加えて、又は代替的に、ネットワーク通信プログラム638は、プロセッサ614と関連してネットワーク接続642を介して他のコンピューティングシステムから受信された着信トラフィックの処理を指示し得る。
図6にはこのようには示されていないが、ネットワーク通信プログラム638は、代替的に、通信インターフェース622に記憶及び/又はロードされ得る。例えば、ネットワーク通信プログラム638は、通信インターフェース622に組み込まれたプロセッサ及び/又は特定用途向け集積回路(ASIC)によって実行されるソフトウェア及び/又はファームウェアの少なくとも一部分を含み得る及び/又はそれを表し得る。
図6に示すように、例示的なコンピューティングシステム610はまた、記憶インターフェース634を介して通信基盤612に連結された、一次記憶デバイス632及びバックアップ記憶デバイス633も含み得る。記憶デバイス632及び633は、一般に、データ及び/又は他のコンピュータ可読命令を記憶することができる、任意のタイプ又は形態の記憶デバイス又は媒体を表す。例えば、記憶デバイス632及び633は、磁気ディスクドライブ(例えば、いわゆるハードドライブ)、ソリッドステートドライブ、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブなどであり得る。記憶インターフェース634は、一般に、記憶デバイス632及び633とコンピューティングシステム610の他の構成要素との間でデータを転送するための、任意のタイプ又は形態のインターフェース又はデバイスを表す。
特定の実施形態では、記憶デバイス632及び633は、コンピュータソフトウェア、データ、又は他のコンピュータ可読情報を記憶するように構成された取り外し可能な記憶ユニットから読み取る及び/又はそれに書き込むように構成され得る。好適な取り外し可能な記憶ユニットの例としては、非限定的に、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリデバイスなどが挙げられる。記憶デバイス632及び633はまた、コンピュータソフトウェア、データ、又は他のコンピュータ可読命令がコンピューティングシステム610内にロードされることを可能にするための、他の同様の構造体又はデバイスを含んでもよい。例えば、記憶デバイス632及び633は、ソフトウェア、データ、又は他のコンピュータ可読情報を読み書きするように構成され得る。記憶デバイス632及び633は、コンピューティングシステム610の一部であっても、他のインターフェースシステムを介してアクセスされる別個のデバイスであってもよい。
他の多くのデバイス又はサブシステムが、コンピューティングシステム610に接続され得る。反対に、図6に示す構成要素及びデバイスの全てが、本明細書に記載及び/又は図示される実施形態を実践するために存在する必要があるわけではない。上記で言及したデバイス及びサブシステムはまた、図6に示されるものとは異なる手段で相互接続されてもよい。コンピューティングシステム610はまた、任意の数のソフトウェア、ファームウェア、及び/又はハードウェア構成を用いてもよい。例えば、本明細書で開示する例示的な実施形態のうちの1つ以上は、コンピュータ可読媒体上で、コンピュータプログラム(コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、又はコンピュータ制御論理とも称される)としてコード化されてもよい。「コンピュータ可読媒体」という用語は、本明細書で使用するとき、一般に、コンピュータ可読命令を格納又は保有することができる、任意の形態のデバイス、キャリア、又は媒体を指す。コンピュータ可読媒体の例としては、非限定的に、搬送波などの伝送型媒体、並びに磁気記憶媒体(例えば、ハードディスクドライブ、テープドライブ、及びフロッピーディスク)、光学記憶媒体(例えば、コンパクトディスク(Compact Disk、CD)、デジタルビデオディスク(Digital Video Disk、DVD)、及びブルーレイ(BLU-RAY)ディスク)、電子記憶媒体(例えば、ソリッドステートドライブ及びフラッシュメディア)、並びに他の分散システムなどの非一時的媒体が挙げられる。
コンピュータプログラムを包含するコンピュータ可読媒体は、コンピューティングシステム610内にロードされ得る。コンピュータ可読媒体に記憶されたコンピュータプログラムのうちの全て又は一部は、次いで、システムメモリ616内に、並びに/又は記憶デバイス632及び633の様々な部分内に記憶され得る。プロセッサ614によって実行されるとき、コンピューティングシステム610内にロードされたコンピュータプログラムは、プロセッサ614に、本明細書に記載及び/若しくは図示される例示的な実施形態のうちの1つ以上の機能を実施させ得、並びに/又はそれらを実施するための手段とならせ得る。それに加えて、又は代替的に、本明細書に記載及び/又は図示される例示的な実施形態のうちの1つ以上は、ファームウェア及び/又はハードウェアに実装されてもよい。例えば、コンピューティングシステム610は、本明細書に開示される例示的な実施形態のうちの1つ以上を実装するように適合された特定用途向け集積回路(ASIC)として構成され得る。
図7は、クライアントシステム710、720、及び730、並びにサーバ740及び745がネットワーク750に連結され得る例示的なネットワークアーキテクチャ700のブロック図である。上で詳述したように、ネットワークアーキテクチャ700のうちの全て又は一部は、単独で又は他の要素と組み合わせてのいずれかで、本明細書に開示されるステップのうちの1つ以上(図3に示されるステップのうちの1つ以上など)を実施し得、及び/又はそれを実施するための手段であり得る。ネットワークアーキテクチャ700のうちの全て又は一部はまた、本開示に記載される他のステップ及び特徴を実施するために使用されてもよく、並びに/又はそれを実施するための手段であってもよい。
クライアントシステム710、720、及び730は、一般に、図6の例示的なコンピューティングシステム610など、任意のタイプ又は形態のコンピューティングデバイス又はシステムを表す。同様に、サーバ740及び745は、一般に、様々なデータベースサービスを提供する及び/又は特定のソフトウェアアプリケーションを実行するように構成された、アプリケーションサーバ又はデータベースサーバなどのコンピューティングデバイス又はシステムを表す。ネットワーク750は、一般に、例えば、イントラネット、WAN、LAN、PAN、又はインターネットを含む、任意の電気通信ネットワーク又はコンピュータネットワークを表す。一実施例では、クライアントシステム710、720、及び/若しくは730、並びに/又はサーバ740及び/若しくは745は、図1のシステム100のうちの全て又は一部を含み得る。
図7に示すように、1つ以上の記憶デバイス760(1)〜(N)は、サーバ740に直接取り付けられ得る。同様に、1つ以上の記憶デバイス770(1)〜(N)は、サーバ745に直接取り付けられ得る。記憶デバイス760(1)〜(N)及び記憶デバイス770(1)〜(N)は、一般に、データ及び/又は他のコンピュータ可読命令を記憶することができる、任意のタイプ又は形態の記憶デバイス又は媒体を表す。特定の実施形態では、記憶デバイス760(1)〜(N)及び記憶デバイス770(1)〜(N)は、ネットワークファイルシステム(NFS)、サーバメッセージブロック(SMB)、又は共通インターネットファイルシステム(CIFS)などの様々なプロトコルを使用してサーバ740及び745と通信するように構成されたネットワーク接続ストレージ(NAS)デバイスを表し得る。
サーバ740及び745はまた、ストレージエリアネットワーク(SAN)ファブリック780に接続されてもよい。SANファブリック780は、一般に、複数の記憶デバイス間の通信を容易にすることができる、任意のタイプ又は形態のコンピュータネットワーク又はアーキテクチャを表す。SANファブリック780は、サーバ740及び745と、複数の記憶デバイス790(1)〜(N)及び/又はインテリジェント記憶アレイ795と、の間の通信を容易にし得る。また、SANファブリック780は、デバイス790(1)〜(N)及びアレイ795が、クライアントシステム710、720、及び730にローカルに取り付けられたデバイスとして現れるような方式で、ネットワーク750並びにサーバ740及び745を介し、クライアントシステム710、720、及び730と記憶デバイス790(1)〜(N)及び/又はインテリジェント記憶アレイ795との間の通信を容易にし得る。記憶デバイス760(1)〜(N)及び記憶デバイス770(1)〜(N)と同様に、記憶デバイス790(1)〜(N)及びインテリジェント記憶アレイ795は、一般に、データ及び/又は他のコンピュータ可読命令を記憶することができる、任意のタイプ又は形態の記憶デバイス又は媒体を表す。
特定の実施形態では、図6の例示的なコンピューティングシステム610を参照すると、図6の通信インターフェース622などの通信インターフェースは、各クライアントシステム710、720、及び730とネットワーク750との間の接続を提供するために使用され得る。クライアントシステム710、720、及び730は、例えば、ウェブブラウザ又は他のクライアントソフトウェアを使用して、サーバ740又は745上の情報にアクセスすることが可能であり得る。かかるソフトウェアは、クライアントシステム710、720、及び730が、サーバ740、サーバ745、記憶デバイス760(1)〜(N)、記憶デバイス770(1)〜(N)、記憶デバイス790(1)〜(N)、又はインテリジェント記憶アレイ795によってホストされたデータにアクセスすることを可能にし得る。図7は、データを交換するために(インターネットなどの)ネットワークを使用することを示しているが、本明細書に記載及び/又は図示される実施形態は、インターネット又は任意の特定のネットワークベースの環境に限定されない。
少なくとも1つの実施形態では、本明細書に開示される例示的な実施形態のうちの1つ以上の全て又は一部は、コンピュータプログラムとしてコード化され、サーバ740、サーバ745、記憶デバイス760(1)〜(N)、記憶デバイス770(1)〜(N)、記憶デバイス790(1)〜(N)、インテリジェント記憶アレイ795、又はこれらの任意の組み合わせ上にロードされ、これらによって実行され得る。本明細書に開示される例示的な実施形態のうちの1つ以上の全て又は一部はまた、コンピュータプログラムとしてコード化され、サーバ740に記憶され、サーバ745によって実行され、ネットワーク750を通じてクライアントシステム710、720、及び730に分散されてもよい。
先に詳述したように、コンピューティングシステム610及び/又はネットワークアーキテクチャ700の1つ以上の構成要素は、単独又は他の要素との組み合わせのいずれかで、悪意のあるアプリケーションがアプリケーションサービスを活用することを防止するための例示的な方法の1つ以上のステップを実施し得、及び/又はこれを実施するための手段であり得る。
前述の開示は、特定のブロック図、フローチャート、及び実施例を使用して様々な実施形態を記載しているが、本明細書に記載及び/又は図示されるそれぞれのブロック図の構成要素、フローチャートの工程、動作、及び/又は構成要素は、個別に及び/又は集合的に、広範なハードウェア、ソフトウェア、又はファームウェア(若しくはそれらの任意の組み合わせ)の構成を使用して実装されてもよい。それに加えて、同じ機能性を達成するように他の多くのアーキテクチャを実装することができるので、他の構成要素内に包含される構成要素のいかなる開示も、本質的に例示と見なされるべきである。
いくつかの実施例では、図1の例示的なシステム100のうちの全て又は一部は、クラウドコンピューティング環境又はネットワークベースの環境の一部を表してもよい。クラウドコンピューティング環境は、インターネットを介して、様々なサービス及びアプリケーションを提供してもよい。これらのクラウドベースのサービス(例えば、サービスとしてのソフトウェア、サービスとしてのプラットフォーム、サービスとしての基盤など)は、ウェブブラウザ又は他のリモートインターフェースを通してアクセス可能であってもよい。本明細書に記載される様々な機能は、リモートデスクトップ環境又は他の任意のクラウドベースのコンピューティング環境を通して提供されてもよい。
様々な実施形態では、図1の例示的なシステム100のうちの全て又は一部は、クラウドベースのコンピューティング環境内におけるマルチテナンシーを容易にしてもよい。換言すれば、本明細書に記載されるソフトウェアモジュールは、本明細書に記載される機能のうちの1つ以上に対するマルチテナンシーを容易にするように、コンピューティングシステム(例えば、サーバ)を構成してもよい。例えば、本明細書に記載されるソフトウェアモジュールのうちの1つ以上は、2つ以上のクライアント(例えば、顧客)がサーバ上で作動しているアプリケーションを共有するのを可能にするように、サーバをプログラムしてもよい。このようにプログラムされたサーバは、複数の顧客(即ち、テナント)の間で、アプリケーション、オペレーティングシステム、処理システム、及び/又は記憶システムを共有してもよい。本明細書に記載されるモジュールのうちの1つ以上はまた、ある顧客が別の顧客のデータ及び/又は設定情報にアクセスできないように、顧客毎にマルチテナントアプリケーションのデータ及び/又は設定情報を分割してもよい。
様々な実施形態によれば、図1の例示的なシステム100のうちの全て又は一部は、仮想環境内で実装されてもよい。例えば、本明細書に記載されるモジュール及び/又はデータは、仮想機械内で常駐及び/又は実行してもよい。本明細書で使用するとき、「仮想機械」という用語は、一般に、仮想機械マネージャ(例えば、ハイパーバイザ)によってコンピューティングハードウェアから抽出される、任意のオペレーティングシステム環境を指す。それに加えて、又は代替的に、本明細書に記載されるモジュール及び/又はデータは、仮想化層内で常駐及び/又は実行してもよい。本明細書で使用するとき、「仮想化層」という用語は、一般に、オペレーティングシステム環境にオーバーレイする、並びに/あるいはそこから抽出される、任意のデータ層及び/又はアプリケーション層を指す。仮想化層は、基礎となる基本オペレーティングシステムの一部であるかのように仮想化層を提示する、ソフトウェア仮想化ソリューション(例えば、ファイルシステムフィルタ)によって管理されてもよい。例えば、ソフトウェア仮想化ソリューションは、最初に基本ファイルシステム及び/又はレジストリ内の場所に方向付けられる呼び出しを、仮想化層内の場所にリダイレクトしてもよい。
いくつかの実施例では、図1の例示的なシステム100のうちの全て又は一部は、モバイルコンピューティング環境の部分を表してもよい。モバイルコンピューティング環境は、携帯電話、タブレットコンピュータ、電子ブックリーダ、携帯情報端末、ウェアラブルコンピューティングデバイス(例えば、ヘッドマウントディスプレイを有するコンピューティングデバイス、スマートウォッチなど)などを含む、広範なモバイルコンピューティングデバイスによって実装されてもよい。いくつかの実施例では、モバイルコンピューティング環境は、例えば、バッテリ電力への依存、任意の所与の時間での1つのみのフォアグラウンドアプリケーションの提示、リモート管理特性、タッチスクリーン特性、位置及び移動データ(例えば、グローバルポジショニングシステム、ジャイロスコープ、加速度計などによって提供される)、システムレベルの構成への修正を制限する、及び/又は第3者のソフトウェアが他のアプリケーションの挙動を検査する能力を限定する制限されたプラットフォーム、アプリケーションのインストールを(例えば、認可されたアプリケーションストアからのみ生じるように)制限する制御などを含む、1つ以上の個別の特性を有することができる。本明細書で説明される様々な機能は、モバイルコンピューティング環境に対して提供され得る、及び/又はモバイルコンピューティング環境と相互作用し得る。
それに加えて、図1の例示的なシステム100のうちの全て又は一部は、情報管理のための1つ以上のシステムの部分を表してもよく、それと相互作用してもよく、それによって生成されるデータを消費してもよく、及び/又はそれによって消費されるデータを生成してもよい。本明細書で使用するとき、「情報管理」という用語は、データの保護、組織化、及び/又は記憶を指してもよい。情報管理のためのシステムの例としては、非限定的に、記憶システム、バックアップシステム、アーカイブシステム、複製システム、高可用性システム、データ検索システム、仮想化システムなどを挙げることができる。
一部の実施形態では、図1の例示的なシステム100のうちの全て又は一部は、情報セキュリティのための1つ以上のシステムの部分を表してもよく、それによって保護されるデータを生成してもよく、及び/又はそれと通信してもよい。本明細書で使用するとき、「情報セキュリティ」という用語は、保護されたデータに対するアクセスの制御を指してもよい。情報セキュリティのためのシステムの例としては、非限定的に、管理されたセキュリティサービスを提供するシステム、データ損失防止システム、本人認証システム、アクセス制御システム、暗号化システム、ポリシー遵守システム、侵入検出及び防止システム、電子証拠開示システムなどを挙げることができる。
いくつかの実施例によれば、図1の例示的なシステム100のうちの全て又は一部は、エンドポイントセキュリティのための1つ以上のシステムの部分を表してもよく、それと通信してもよく、及び/又はそれから保護を受けてもよい。本明細書で使用するとき、「エンドポイントセキュリティ」という用語は、不正及び/若しくは違法な使用、アクセス、並びに/又は制御からのエンドポイントシステムの保護を指してもよい。エンドポイント保護のためのシステムの例としては、非限定的に、アンチマルウェアシステム、ユーザ認証システム、暗号化システム、プライバシーシステム、スパムフィルタリングサービスなどを挙げることができる。
本明細書に記載及び/又は図示されるプロセスパラメータ及び工程の順序は、単なる例として与えられるものであり、所望に応じて変更することができる。例えば、本明細書に図示及び/又は記載される工程は特定の順序で図示又は考察されることがあるが、これらの工程は、必ずしも図示又は考察される順序で実施される必要はない。本明細書に記載される及び/又は図示される様々な例示的な方法はまた、本明細書に記載される及び/又は図示される工程のうちの1つ以上を省略してもよく、又は開示されるものに加えて追加の工程を含んでもよい。
種々の実施形態が、完全に機能的なコンピューティングシステムに関連して本明細書に記載され及び/又は図示されているが、これら例示的な実施形態のうちの1つ以上は、実際に配布を行なうために使用されるコンピュータ可読記憶媒体の特定のタイプに関わらず、多様な形態のプログラム製品として配布され得る。本明細書に開示される実施形態はまた、特定のタスクを実施するソフトウェアモジュールを使用して実装されてもよい。これらのソフトウェアモジュールは、コンピュータ可読記憶媒体又はコンピューティングシステムに記憶されてもよい、スクリプト、バッチ、若しくは他の実行可能ファイルを含んでもよい。一部の実施形態では、これらのソフトウェアモジュールは、本明細書に開示される例示的な実施形態のうちの1つ以上を実施するようにコンピューティングシステムを構成してもよい。
それに加えて、本明細書に記載されるモジュールのうちの1つ以上は、データ、物理的デバイス、及び/又は物理的デバイスの表現を、1つの形態から別の形態へと変換してもよい。例えば、本明細書に列挙されるモジュールのうちの1つ以上は、潜在的なセキュリティリスクを識別する情報を受信し、この情報を、セキュリティリスクを修正する推奨されるセキュリティ対策に変換し、次に、この変換結果を、ユーザによるセキュリティ対策の実施を推奨するユーザプロンプトとして出力してもよい。それに加えて、又は代替的に、本明細書に列挙されるモジュールのうちの1つ以上は、コンピューティングデバイス上で実行し、コンピューティングデバイスにデータを格納し、並びに/あるいは別の方法でコンピューティングデバイスと相互作用することによって、プロセッサ、揮発性メモリ、不揮発性メモリ、及び/又は物理的コンピューティングデバイスの他の任意の部分を、1つの形態から別の形態へと変換してもよい。
上述の記載は、本明細書に開示される例示的な実施形態の様々な態様を他の当業者が最良に利用するのを可能にするために提供されてきた。この例示的な記載は、網羅的であることを意図するものではなく、又は開示される任意の正確な形態に限定することを意図するものではない。本開示の趣旨及び範囲から逸脱することなく、多くの修正及び変形が可能である。本明細書に開示される実施形態は、あらゆる点で例示的であり、限定的ではないものと見なされるべきである。本開示の範囲を決定する際に、添付の特許請求の範囲及びそれらの等価物を参照するべきである。
別途記載のない限り、「〜に接続される」及び「〜に連結される」という用語(並びにそれらの派生語)は、本明細書及び特許請求の範囲で使用するとき、直接的接続及び間接的接続(即ち、他の要素若しくは構成要素を介する)の両方を許容するものとして解釈されるものである。それに加えて、「a」又は「an」という用語は、本明細書及び特許請求の範囲で使用するとき、「〜のうち少なくとも1つ」を意味するものとして解釈されるものである。最後に、簡潔にするため、「含む」及び「有する」という用語(並びにそれらの派生語)は、本明細書及び特許請求の範囲で使用するとき、「備える」という単語と互換性があり、同じ意味を有する。

Claims (20)

  1. 悪意のあるアプリケーションがアプリケーションサービスを活用することを防止するためのコンピュータ実装方法であって、前記方法の少なくとも一部分は、少なくとも1つのプロセッサを備えるコンピューティングデバイスによって実施され、前記方法は、
    前記アプリケーションのデータ及びコード実行を前記コンピューティングデバイス上のオペレーティングシステム内で実行される少なくとも1つの他のアプリケーションから隔離するサンドボックス化された環境内で実行されるアプリケーションによる、少なくとも1つのアプリケーションサービスを立ち上げる試みを識別することと、
    前記アプリケーションが潜在的なセキュリティリスクを表すと決定することと、
    前記コンピューティングデバイスのユーザを、前記アプリケーションによってもたらされる前記潜在的なセキュリティリスクを推奨されるセキュリティ対策の実施によって修正するように促すことと、
    前記ユーザによる前記推奨されるセキュリティ対策の実施を待つ間に、前記アプリケーションによる前記アプリケーションサービスを立ち上げる試みをブロックして前記コンピューティングデバイスを守ること、を含むコンピュータ実装方法。
  2. 前記オペレーティングシステムは、前記オペレーティングシステム内で実行される全てのアプリケーションを、各アプリケーションのデータ及びコード実行を前記オペレーティングシステム内で実行される他の全てのアプリケーションから隔離することによってサンドボックス化する、請求項1に記載のコンピュータ実装方法。
  3. 前記サンドボックス化される環境は、前記オペレーティングシステム内で実行されるセキュリティソフトウェアが、
    前記アプリケーションを自動的に締め出すこと、及び、
    前記アプリケーションを自動的にアンインストールすること、の少なくとも一方を防止する、請求項1に記載のコンピュータ実装方法。
  4. 前記アプリケーションサービスを立ち上げる試みは、
    機密情報を捕捉する、
    機密情報を送信する、
    悪意のあるリソースにアクセスする、
    ユーザデータを変更する、
    特権昇格を要求するユーザプロンプトを生成する、広告を生成する、という試みのうちの少なくとも1つを含む、請求項1に記載のコンピュータ実装方法。
  5. 前記推奨されるセキュリティ対策は、前記コンピューティングデバイス上にインストールされるセキュリティソフトウェアが前記サンドボックス化された環境に起因してそれ自体では実施できないコンピューティング動作を含む、請求項1に記載のコンピュータ実装方法。
  6. 前記アプリケーションによってもたらされる前記潜在的なセキュリティリスクを修正するように前記ユーザを促すことは、
    前記アプリケーションを終了すること、及び、
    前記アプリケーションをアンインストールすること、のうちの少なくとも一方をユーザに促すことを含む、請求項1に記載のコンピュータ実装方法。
  7. 前記アプリケーションによる前記アプリケーションサービスを立ち上げる試みをブロックすることは、
    前記アプリケーションが前記アプリケーションサービスを立ち上げることを防止すること、及び、
    前記アプリケーションサービスを、前記アプリケーションが前記アプリケーションサービスを立ち上げた後に自動的に終了すること、の少なくとも一方を含む、請求項1に記載のコンピュータ実装方法。
  8. 前記アプリケーションサービスを自動的に終了することができなければ、前記アプリケーションサービスを立ち上げたアプリケーションを手動で終了するように前記ユーザを促すことを更に含む、請求項7に記載のコンピュータ実装方法。
  9. 前記アプリケーションサービスを立ち上げたアプリケーションを手動で終了するように前記ユーザを促すことは、前記ユーザが前記アプリケーションの終了に成功したことを検出するまで、前記アプリケーションを終了するように前記ユーザを周期的に促すことを含む、請求項8に記載のコンピュータ実装方法。
  10. 悪意のあるアプリケーションがアプリケーションサービスを活用することを防止するためのシステムであって、
    前記アプリケーションのデータ及びコード実行を前記システム上のオペレーティングシステム内で実行される少なくとも1つの他のアプリケーションから隔離するサンドボックス化された環境内で実行されるアプリケーションによる、少なくとも1つのアプリケーションサービスを立ち上げる試みを識別する、メモリデバイスに記憶される識別モジュールと、
    前記アプリケーションが潜在的なセキュリティリスクを表すと決定する、前記メモリデバイスに記憶される決定モジュールと、
    前記システムのユーザを、推奨されるセキュリティ対策を実施することにより前記アプリケーションによってもたらされる前記潜在的なセキュリティリスクを修正するように促す、前記メモリデバイスに記憶される通知モジュールと、
    前記ユーザによる前記推奨されるセキュリティ対策の実施を待ちながら、前記アプリケーションによる前記アプリケーションサービスを立ち上げる試みをブロックして前記システムを守る、セキュリティモジュールと、
    前記識別モジュール、前記決定モジュール、前記通知モジュール、及び前記セキュリティモジュールを実行する少なくとも1つの物理プロセッサとを備える、システム。
  11. 前記オペレーティングシステムは、前記オペレーティングシステム内で実行される全てのアプリケーションを、各アプリケーションのデータ及びコード実行を前記オペレーティングシステム内で実行される他の全てのアプリケーションから隔離することによってサンドボックス化する、請求項10に記載のシステム。
  12. 前記サンドボックス化される環境は、前記オペレーティングシステム内で実行されるセキュリティソフトウェアが、
    前記アプリケーションを自動的に締め出すこと、及び、
    前記アプリケーションを自動的にアンインストールすること、の少なくとも一方を防止する、請求項10に記載のシステム。
  13. 前記アプリケーションサービスを立ち上げる試みは、
    機密情報を捕捉する、
    機密情報を送信する、
    悪意のあるリソースにアクセスする、
    ユーザデータを変更する、
    特権昇格を要求するユーザプロンプトを生成する、
    広告を生成する、という試みのうちの少なくとも1つを含む、請求項10に記載のシステム。
  14. 前記推奨されるセキュリティ対策は、前記システム上にインストールされるセキュリティソフトウェアが前記サンドボックス化された環境に起因してそれ自体では実施できないコンピューティング動作を含む、請求項10に記載のシステム。
  15. 前記通知モジュールは、前記アプリケーションによってもたらされる前記潜在的なセキュリティリスクを修正するように前記ユーザを促すことを、
    前記アプリケーションを終了すること、及び、
    前記アプリケーションをアンインストールすること、のうちの少なくとも一方をユーザに促すことを含む、請求項10に記載のシステム。
  16. 前記セキュリティモジュールは、前記アプリケーションによる前記アプリケーションサービスを立ち上げる試みをブロックすることを、
    前記アプリケーションが前記アプリケーションサービスを立ち上げることを防止すること、及び、
    前記アプリケーションサービスを、前記アプリケーションが前記アプリケーションサービスを立ち上げた後に自動的に終了すること、の少なくとも一方によって行なう、請求項10に記載のシステム。
  17. 前記通知モジュールは、前記セキュリティモジュールが前記アプリケーションサービスを自動的に終了できなければ、前記アプリケーションサービスを立ち上げたアプリケーションを手動で終了するように前記ユーザを促す、請求項16に記載のシステム。
  18. 前記通知モジュールは、前記アプリケーションサービスを立ち上げたアプリケーションを手動で終了するように前記ユーザを促すことを、前記ユーザが前記アプリケーションの終了に成功したことを検出するまで、前記アプリケーションを終了するように前記ユーザを周期的に促すことを含む、請求項17に記載のシステム。
  19. 非一時的コンピュータ可読媒体であって、1つ以上のコンピュータ実行可能命令を含み、コンピューティングデバイスの少なくとも1つのプロセッサによって実行されると、前記コンピューティングデバイスに、
    アプリケーションのデータ及びコード実行を前記コンピューティングデバイス上のオペレーティングシステム内で実行される少なくとも1つの他のアプリケーションから隔離するサンドボックス化された環境内で実行されるアプリケーションによる、少なくとも1つのアプリケーションサービスを立ち上げる試みを識別させ、
    前記アプリケーションが潜在的なセキュリティリスクを表すと決定させ、
    前記コンピューティングデバイスのユーザを、前記アプリケーションによってもたらされる前記潜在的なセキュリティリスクを推奨されるセキュリティ対策の実施によって修正するように促させ、
    前記ユーザによる前記推奨されるセキュリティ対策の実施を待つ間に、前記アプリケーションによる前記アプリケーションサービスを立ち上げる試みをブロックして前記コンピューティングデバイスを守らせる、非一時的コンピュータ可読媒体。
  20. 前記サンドボックス化される環境は、前記オペレーティングシステム内で実行されるセキュリティソフトウェアが、
    前記アプリケーションを自動的に締め出すこと、及び、
    前記アプリケーションを自動的にアンインストールすること、の少なくとも一方を防止する、請求項19に記載の非一時的コンピュータ可読媒体。
JP2020510602A 2017-08-29 2018-08-27 悪意のあるアプリケーションがアプリケーションサービスを活用することを防止するためのシステム及び方法 Active JP6918212B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/688,911 2017-08-29
US15/688,911 US11062021B2 (en) 2017-08-29 2017-08-29 Systems and methods for preventing malicious applications from exploiting application services
PCT/US2018/048095 WO2019046166A1 (en) 2017-08-29 2018-08-27 SYSTEMS AND METHODS FOR PREVENTING MALWALLY APPLICATIONS FROM OPERATING APPLICATION SERVICES

Publications (2)

Publication Number Publication Date
JP2020531996A true JP2020531996A (ja) 2020-11-05
JP6918212B2 JP6918212B2 (ja) 2021-08-11

Family

ID=63528927

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020510602A Active JP6918212B2 (ja) 2017-08-29 2018-08-27 悪意のあるアプリケーションがアプリケーションサービスを活用することを防止するためのシステム及び方法

Country Status (5)

Country Link
US (1) US11062021B2 (ja)
EP (1) EP3692440B1 (ja)
JP (1) JP6918212B2 (ja)
CN (1) CN111356985A (ja)
WO (1) WO2019046166A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11062021B2 (en) 2017-08-29 2021-07-13 NortonLifeLock Inc. Systems and methods for preventing malicious applications from exploiting application services

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2569568B (en) * 2017-12-20 2021-02-24 F Secure Corp Threat detection system
US11017109B1 (en) * 2018-06-02 2021-05-25 Apple Inc. Dynamic sandboxing of user data
US20200106787A1 (en) * 2018-10-01 2020-04-02 Global Data Sentinel, Inc. Data management operating system (dmos) analysis server for detecting and remediating cybersecurity threats
EP3647980B1 (en) * 2018-10-30 2022-01-19 Hewlett-Packard Development Company, L.P. Response to an intrusion against a service of an operating system
CN112583979A (zh) * 2019-09-30 2021-03-30 奇安信科技集团股份有限公司 移动终端的应用环境感知方法及装置
IT201900020775A1 (it) * 2019-11-11 2021-05-11 Univ Degli Studi Padova Metodo e prodotto software per controllare il canale bluetooth
US11295007B2 (en) 2019-12-03 2022-04-05 Tableau Software, LLC Sandboxed application extensions
CN111091019B (zh) * 2019-12-23 2024-03-01 支付宝(杭州)信息技术有限公司 一种信息提示方法、装置及设备
CN112235451B (zh) * 2020-10-21 2022-09-23 广州三星通信技术研究有限公司 提供关于联系人被删除的报警的方法及装置
US20220166762A1 (en) * 2020-11-25 2022-05-26 Microsoft Technology Licensing, Llc Integrated circuit for obtaining enhanced privileges for a network-based resource and performing actions in accordance therewith
CN113641996B (zh) * 2021-05-26 2022-10-28 荣耀终端有限公司 检测方法、图形界面及相关装置
WO2023097703A1 (en) * 2021-12-03 2023-06-08 Huawei Cloud Computing Technologies Co., Ltd. A storage server forsecure and performant execution of user code in a data center storage

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008500653A (ja) * 2004-06-29 2008-01-10 インテル・コーポレーション サンドボックス法によるコンピュータセキュリティ向上方法
WO2016182668A1 (en) * 2015-05-11 2016-11-17 Qualcomm Incorporated Methods and systems for behavior-specific actuation for real-time whitelisting
WO2017009415A1 (en) * 2015-07-14 2017-01-19 Bitdefender Ipr Management Ltd Computer security systems and methods using asynchronous introspection exceptions
JP2017091541A (ja) * 2015-11-12 2017-05-25 トヨタ インフォテクノロジー センター,ユー.エス.エー.,インコーポレイテッド オープンプラットフォーム車載インフォテインメントシステムのためのアプリケーション保証

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7661135B2 (en) * 2004-08-10 2010-02-09 International Business Machines Corporation Apparatus, system, and method for gathering trace data indicative of resource activity
EP1696321A1 (en) * 2005-02-23 2006-08-30 Deutsche Thomson-Brandt Gmbh Method and apparatus for executing software applications
US7861296B2 (en) * 2005-06-16 2010-12-28 Microsoft Corporation System and method for efficiently scanning a file for malware
US8769672B2 (en) * 2006-08-03 2014-07-01 Symantec Corporation Code injection prevention
US8839431B2 (en) * 2008-05-12 2014-09-16 Enpulz, L.L.C. Network browser based virus detection
US20100122313A1 (en) * 2008-11-09 2010-05-13 Aspect9, Inc. Method and system for restricting file access in a computer system
US20100169972A1 (en) * 2008-12-31 2010-07-01 Microsoft Corporation Shared repository of malware data
US8266698B1 (en) * 2009-03-09 2012-09-11 Symantec Corporation Using machine infection characteristics for behavior-based detection of malware
US8812868B2 (en) * 2011-03-21 2014-08-19 Mocana Corporation Secure execution of unsecured apps on a device
US20140032733A1 (en) 2011-10-11 2014-01-30 Citrix Systems, Inc. Policy-Based Application Management
US8887152B1 (en) * 2011-11-04 2014-11-11 Trend Micro, Inc. Android application virtual environment
WO2013082437A1 (en) 2011-12-02 2013-06-06 Invincia, Inc. Methods and apparatus for control and detection of malicious content using a sandbox environment
US8819772B2 (en) * 2012-06-25 2014-08-26 Appthority, Inc. In-line filtering of insecure or unwanted mobile device software components or communications
US9460283B2 (en) * 2012-10-09 2016-10-04 Dell Products L.P. Adaptive integrity validation for portable information handling systems
TWI461952B (zh) * 2012-12-26 2014-11-21 Univ Nat Taiwan Science Tech 惡意程式偵測方法與系統
CN104346092A (zh) * 2013-08-01 2015-02-11 腾讯科技(深圳)有限公司 一种在移动终端中呈现剪贴板内容的方法及装置
US9349000B2 (en) * 2014-01-27 2016-05-24 Microsoft Technology Licensing, Llc Web service sandbox system
US9256738B2 (en) * 2014-03-11 2016-02-09 Symantec Corporation Systems and methods for pre-installation detection of malware on mobile devices
US20150332043A1 (en) * 2014-05-15 2015-11-19 Auckland Uniservices Limited Application analysis system for electronic devices
WO2016014593A1 (en) * 2014-07-22 2016-01-28 Viasat, Inc. Mobile device security monitoring and notification
US9577829B1 (en) * 2014-09-03 2017-02-21 Amazon Technologies, Inc. Multi-party computation services
US9356969B2 (en) * 2014-09-23 2016-05-31 Intel Corporation Technologies for multi-factor security analysis and runtime control
US9838417B1 (en) 2014-12-30 2017-12-05 Fireeye, Inc. Intelligent context aware user interaction for malware detection
US10148624B2 (en) * 2015-09-25 2018-12-04 Mcafee, Llc Secure service matching
CN106909833A (zh) * 2015-12-23 2017-06-30 北京奇虎科技有限公司 一种安全防护方法和装置
CN105427096B (zh) * 2015-12-25 2020-02-07 北京奇虎科技有限公司 支付安全沙箱实现方法及系统与应用程序监控方法及系统
US10382468B2 (en) * 2017-07-03 2019-08-13 Juniper Networks, Inc. Malware identification via secondary file analysis
US11062021B2 (en) 2017-08-29 2021-07-13 NortonLifeLock Inc. Systems and methods for preventing malicious applications from exploiting application services

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008500653A (ja) * 2004-06-29 2008-01-10 インテル・コーポレーション サンドボックス法によるコンピュータセキュリティ向上方法
WO2016182668A1 (en) * 2015-05-11 2016-11-17 Qualcomm Incorporated Methods and systems for behavior-specific actuation for real-time whitelisting
WO2017009415A1 (en) * 2015-07-14 2017-01-19 Bitdefender Ipr Management Ltd Computer security systems and methods using asynchronous introspection exceptions
JP2017091541A (ja) * 2015-11-12 2017-05-25 トヨタ インフォテクノロジー センター,ユー.エス.エー.,インコーポレイテッド オープンプラットフォーム車載インフォテインメントシステムのためのアプリケーション保証

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11062021B2 (en) 2017-08-29 2021-07-13 NortonLifeLock Inc. Systems and methods for preventing malicious applications from exploiting application services

Also Published As

Publication number Publication date
JP6918212B2 (ja) 2021-08-11
EP3692440A1 (en) 2020-08-12
WO2019046166A1 (en) 2019-03-07
EP3692440B1 (en) 2022-09-28
US11062021B2 (en) 2021-07-13
CN111356985A (zh) 2020-06-30
US20190065736A1 (en) 2019-02-28

Similar Documents

Publication Publication Date Title
JP6918212B2 (ja) 悪意のあるアプリケーションがアプリケーションサービスを活用することを防止するためのシステム及び方法
US20200082081A1 (en) Systems and methods for threat and information protection through file classification
US9729579B1 (en) Systems and methods for increasing security on computing systems that launch application containers
JP6196393B2 (ja) プリインストールアプリケーションのスキャンを最適化するためのシステム及び方法
JP7060714B2 (ja) セキュリティポリシーに基づいてアプリケーション起動を制御するためのシステム及び方法
EP3335146B1 (en) Systems and methods for detecting unknown vulnerabilities in computing processes
JP6247405B2 (ja) インストール前にモバイルデバイス上でマルウェアを検出するためのシステム及び方法
EP3105701A1 (en) Systems and methods for scanning packed programs in response to detecting suspicious behaviors
US9953158B1 (en) Systems and methods for enforcing secure software execution
EP2893481B1 (en) Systems and methods for detecting illegitimate applications
US10140454B1 (en) Systems and methods for restarting computing devices into security-application-configured safe modes
CN109997138B (zh) 用于检测计算设备上的恶意进程的系统和方法
US9330254B1 (en) Systems and methods for preventing the installation of unapproved applications
US9552481B1 (en) Systems and methods for monitoring programs
US9483643B1 (en) Systems and methods for creating behavioral signatures used to detect malware
US11366903B1 (en) Systems and methods to mitigate stalkerware by rendering it useless
US11113389B1 (en) Systems and methods for providing persistent visual warnings for application launchers
US10043013B1 (en) Systems and methods for detecting gadgets on computing devices
US10116688B1 (en) Systems and methods for detecting potentially malicious files
US10846405B1 (en) Systems and methods for detecting and protecting against malicious software
US10673888B1 (en) Systems and methods for managing illegitimate authentication attempts
US9501649B2 (en) Systems and methods for determining potential impacts of applications on the security of computing systems
US11463463B1 (en) Systems and methods for identifying security risks posed by application bundles
US10911486B1 (en) Systems and methods for utilizing custom tagging to protect against phishing attacks from malicious applications

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200220

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200220

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20200311

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210318

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210330

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210607

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210622

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210720

R150 Certificate of patent or registration of utility model

Ref document number: 6918212

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350