(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-10-17
(54)【発明の名称】動的権限セットに基づくAndroid(登録商標)権限昇格攻撃検出方法
(51)【国際特許分類】
G06F 21/55 20130101AFI20231010BHJP
G06F 21/62 20130101ALI20231010BHJP
【FI】
G06F21/55
G06F21/62
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023519839
(86)(22)【出願日】2021-12-30
(85)【翻訳文提出日】2023-03-30
(86)【国際出願番号】 CN2021142968
(87)【国際公開番号】W WO2023029325
(87)【国際公開日】2023-03-09
(31)【優先権主張番号】202111040109.4
(32)【優先日】2021-09-06
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】523065052
【氏名又は名称】天翼電子商務有限公司
(74)【代理人】
【識別番号】100145470
【氏名又は名称】藤井 健一
(72)【発明者】
【氏名】徐潜
(72)【発明者】
【氏名】章慶
(72)【発明者】
【氏名】賀偉
(72)【発明者】
【氏名】馬頌華
(57)【要約】
本発明は、Android(登録商標)のセキュリティや、モバイルインターネット及びインダストリアルインターネット環境下におけるシステムのセキュリティとプライバシー保護の分野に関し、動的権限セットに基づくAndroid(登録商標)権限昇格攻撃検出方法を開示し、Androidプラットフォームに存在する特権昇格攻撃の問題に対して、動的権限セットに基づくAndroid(登録商標)権限昇格攻撃検出方法を提案し、本発明において、まず強連結成分の権限分布特性を解析し、動的権限セットの区分を構築する。次に、情報フローと権限セットが結合された上で、権限昇格パスを抽象化させる。最後に、線形時間のアクセス制御アルゴリズムを提案し、権限セットを動的追跡することにより、細粒度の決定制御を実現した、提案されたセキュリティモデルによって、権限昇格攻撃をうまく防ぎ、時間複雑度が低下する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
通信状態図における強連結成分内のアプリケーションの権限セットが等しいという特徴を利用して、悪意のあるアプリの権限昇格攻撃検出方法を提案し、動的権限セットを用いてシステムのアプリケーションに対して同値分割を行い、アプリケーショングループ「group」を構築して検索スペースを簡略化し、且つアプリケーションプロセス自身からなる権限チェーンの代わりに、権限セットに基づく「権限昇格パス」を利用し、具体的には、以下のステップを含むことを特徴とする動的権限セットに基づくAndroid(登録商標)権限昇格攻撃検出方法。
DP_MAndroid(登録商標)モデルの全体的なアーキテクチャにおいて、System Viewは、コンピューティングシステムの通信状態図を記憶するために使用され、Decision Checkerは、一つのコンポーネントであり、通信状態図及びシステムの危険な権限セット(ここで、MAC Policyコンポーネントによって提供される)に基づいてICCの呼び出しや、ソケット通信及びファイルI/O操作などを含む現在の通信要求について判断し、SELinux(登録商標)は、内顆粒層にあり、主にコバートチャネルを制御するために使用され、ここでは主にI/O操作、ソケット操作などを指し、
以下の(1)~(3)の通信操作について説明し、
1)新しいアプリケーションプログラムをインストールする際に、ネイティブのAndroid(登録商標)システムは、Manifestファイルから権限を抽出し、且つPermission権限ライブラリに記憶し、ここで、System viewでのノード作成作業を追加し、且つManifestの権限に基づいてノードのP_SET_STATIC属性に値を割り当て、同様にプログラムがアンインストールされる時には、Permissionデータベースが削除操作を行い、System viewのノードも削除され、アルゴリズム3を実行して全図のP_SETセットが更新される新しいプログラムのインストールと、
2)ネイティブのAndroid(登録商標)と同様に、参照モニタ(リファレンスモニタ)によって呼び出しを処理するには、まずPermission権限ライブラリに基づいて判断し、ネイティブのAndroid(登録商標)権限要求を満たさなければ、通信は直接拒否され、そうでなければ、Decision Checkerを呼び出して判断し、まずDecisionデータベースに問い合わせてシステム状態図と通信要求側がデータベースにいるかどうかを見て、もしあれば、前に計算した結果に従って直接戻り、そうでなければ、通信要求をSystem viewに送り、Graph makerによって通信状態図の強連結集約計算を行い、System viewによってアルゴリズム3でP_SETセットを比較し(ここで、MAC Policyが危険な権限セットを提供する)、通信が許可された場合、結果をDecision Checkerに戻し、決定及び現在のシステム通信状態図をDecisionデータベースに記憶し、次回の通信判断で直接利用し、効率を高めるICCの呼び出しと、
3)ICCと同様に判断するが、ICCにおいて参照モニタによって切断された通信要求はここでSELinux(登録商標)によって切断され、その後のプロセスはICCと同様に、SELinux(登録商標)から通信要求をDecision Checkerに送信して判断するファイル操作及びソケット操作は内顆粒層に関わるアクセス制御。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はAndroid(登録商標)のセキュリティや、モバイルインターネット及びインダストリアルインターネット環境下におけるシステムのセキュリティとプライバシー保護の分野に関し、特に動的権限セットに基づくAndroid(登録商標)権限昇格攻撃検出方法に関する。
【背景技術】
【0002】
Android(登録商標)システムは現在、モバイルプラットフォームにおける主流のオペレーティングシステムとなっており、そのセキュリティ問題もますます注目されている。Android(登録商標)は権限メカニズム、隔離メカニズム、アプリケーション署名などの方式を採用してプラットフォームのセキュリティを保証しているが、深刻な欠陥があり、第一は、アプリケーションプログラムの権限は、セキュリティ保護の警戒心が欠けているユーザーに付与することと、第二は、権限昇格攻撃が存在すること。
【0003】
現在のAndroid(登録商標)のセキュリティに対する仕事は、主に権限解析や、ランタイムチェックとデータ追跡、静的解析などがある。しかし、これらのメカニズムは、権限昇格攻撃、特に実行時にマルチアプリケーションの共謀攻撃に直面する場合、有効な防御方法がない。多くのアクセス制御ポリシーで、Android(登録商標)セキュリティモデルに有向グラフが導入されたが、時間複雑度が高すぎ、且つApp間の通信方向に依存するという問題がある。これらの問題に対して、本発明は、プロセス通信の有向グラフを基礎として強連結集約図を構築し、動的権限セットを単一のアプリケーション権限に代え、そして素集合及び権限昇格パスを通じて権限セットの追跡を行い、相持ち下の線形時間の決定アルゴリズムを実現する。
【発明の概要】
【課題を解決するための手段】
【0004】
本発明が解決しようとする技術的な課題は従来技術の欠陥を克服し、動的権限セットに基づくAndroid(登録商標)権限昇格攻撃検出方法を提案し、まず強連結成分の権限分布特性を解析し、動的権限セットの区分を構築する。次に、情報フローと権限セットが結合された上で、権限昇格パスを抽象化させる。最後に、線形時間のアクセス制御アルゴリズムを提案し、権限セットを動的追跡することにより、細粒度の決定制御を実現した、提案されたセキュリティモデルによって、権限昇格攻撃をうまく防ぎ、時間複雑度が低下する。
【0005】
上記技術的な課題を解決するために、本発明は以下の技術的手段を提供し、
本発明は、
通信状態図における強連結成分内のアプリケーションの権限セットが等しいという特徴を利用して、悪意のあるアプリの権限昇格攻撃検出方法を提案し、動的権限セットを用いてシステムのアプリケーションに対して同値分割を行い、アプリケーショングループ「group」を構築して検索スペースを簡略化し、且つアプリケーションプロセス自身からなる権限チェーンの代わりに、権限セットに基づく「権限昇格パス」を利用し、具体的には、以下のステップを含むことを特徴とする動的権限セットに基づくAndroid(登録商標)権限昇格攻撃検出方法、を提案する。
DP_MAndroid(登録商標)モデルの全体的なアーキテクチャにおいて、System Viewは、コンピューティングシステムの通信状態図を記憶するために使用され、Decision Checkerは、一つのコンポーネントであり、通信状態図及びシステムの危険な権限セット(ここで、MAC Policyコンポーネントによって提供される)に基づいてICCの呼び出しや、ソケット通信及びファイルI/O操作などを含む現在の通信要求について判断し、SELinux(登録商標)は、内顆粒層にあり、主にコバートチャネルを制御するために使用され、ここでは主にI/O操作、ソケット操作などを指し、
以下、それぞれいくつかの通信操作について説明し、
1)新しいアプリケーションプログラムをインストールする際に、ネイティブのAndroid(登録商標)システムは、Manifestファイルから権限を抽出し、且つPermission権限ライブラリに記憶し、ここで、System viewでのノード作成作業を追加し、且つManifestの権限に基づいてノードのP_SET_STATIC属性に値を割り当て、同様にプログラムがアンインストールされる時には、Permissionデータベースが削除操作を行い、System viewのノードも削除され、アルゴリズム3を実行して全図のP_SETセットが更新される新しいプログラムのインストールと、
2)ネイティブのAndroid(登録商標)と同様に、参照モニタ(リファレンスモニタ)によって呼び出しを処理するには、まずPermission権限ライブラリに基づいて判断し、ネイティブのAndroid(登録商標)権限要求を満たさなければ、通信は直接拒否され、そうでなければ、Decision Checkerを呼び出して判断し、まずDecisionデータベースに問い合わせてシステム状態図と通信要求側がデータベースにいるかどうかを見て、もしあれば、前に計算した結果に従って直接戻り、そうでなければ、通信要求をSystem viewに送り、Graph makerによって通信状態図の強連結集約計算を行い、System viewによってアルゴリズム3でP_SETセットを比較し(ここで、MAC Policyが危険な権限セットを提供する)、通信が許可された場合、結果をDecision Checkerに戻し、決定及び現在のシステム通信状態図をDecisionデータベースに記憶し、次回の通信判断で直接利用し、効率を高めるICCの呼び出しと、
3)ICCと同様に判断するが、ICCにおいて参照モニタによって切断された通信要求はここでSELinux(登録商標)によって切断され、その後のプロセスはICCと同様に、SELinux(登録商標)から通信要求をDecision Checkerに送信して判断するファイル操作及びソケット操作は内顆粒層に関わるアクセス制御。
【発明の効果】
【0006】
従来技術と比較して、本発明の有益な効果は以下の通りであり、
本発明の技術手段は、Android(登録商標)の悪意のあるアプリの権限昇格攻撃問題に対して、強連結集約図を利用して権限昇格パスを抽象化させ、権限セットを動的に追跡する方法を通じて細粒度の悪意のある攻撃パスの探査を実現する。それとともに、攻撃実例モデルを通じて、提案されたAndroid(登録商標)権限昇格攻撃検出方法は、時間複雑度や、空間複雑度及び権限昇格攻撃の抵抗能力などの面で優れた性能と安全性を持っており、Android(登録商標)システム下のアプリケーションセキュリティーとプライバシー保護に積極的な役割を持っていることが証明された。
【図面の簡単な説明】
【0007】
図面は、本発明のさらなる理解を提供するためのものであり、本発明の実施形態とともに本発明を説明するための明細書の一部を構成するためのものであり、本発明の制限を構成するものではない。図面について、
【
図2】V1からV2へ通信接続要求を開始するフローチャート。
【
図3】V1からV2へ通信切断要求を送信するフローチャート。
【発明を実施するための最良の形態】
【0008】
以下、添付図面を用いて本発明の好適な実施形態を説明するが、ここで説明する好適な実施形態は本発明の説明及び説明にのみ用いられ、本発明を限定するために用いられるものではないことを理解すべきである。
(実施形態1)
【0009】
図1-6に示すように、本発明は、動的権限セットに基づくAndroid(登録商標)権限昇格攻撃検出方法を提供し、通信状態図における強連結成分内のアプリケーションの権限セットが等しいという特徴を利用して、強制アクセス制御モデルDP_MAndroid(登録商標)を設計し、動的権限セットを用いてシステムのアプリケーションに対して同値分割を行い、アプリケーショングループ「group」を構築して検索スペースを簡略化し、且つアプリケーションプロセス自身からなる権限チェーンの代わりに、権限セットに基づく「権限昇格パス」を利用し、具体的には、以下のステップを含む。
図1に示すように、DP_MAndroid(登録商標)モデルの全体的なアーキテクチャにおいて、System Viewは、コンピューティングシステムの通信状態図を記憶するために使用され、Decision Checkerは、一つのコンポーネントであり、通信状態図及びシステムの危険な権限セット(ここで、MAC Policyコンポーネントによって提供される)に基づいてICCの呼び出しや、ソケット通信及びファイルI/O操作などを含む現在の通信要求について判断し、SELinux(登録商標)は、内顆粒層にあり、主にコバートチャネルを制御するために使用され、ここでは主にI/O操作、ソケット操作などを指し、
以下、それぞれいくつかの通信操作について説明し、
1)新しいアプリケーションプログラムをインストールする際に、ネイティブのAndroid(登録商標)システムは、Manifestファイルから権限を抽出し、且つPermission権限ライブラリに記憶し、ここで、System viewでのノード作成作業を追加し、且つManifestの権限に基づいてノードのP_SET_STATIC属性に値を割り当て、同様にプログラムがアンインストールされる時には、Permissionデータベースが削除操作を行い、System viewのノードも削除され、アルゴリズム3を実行して全図のP_SETセットが更新される新しいプログラムのインストールと、
2)ネイティブのAndroid(登録商標)と同様に、参照モニタ(リファレンスモニタ)によって呼び出しを処理するには、まずPermission権限ライブラリに基づいて判断し、ネイティブのAndroid(登録商標)権限要求を満たさなければ、通信は直接拒否され、そうでなければ、Decision Checkerを呼び出して判断し、まずDecisionデータベースに問い合わせてシステム状態図と通信要求側がデータベースにいるかどうかを見て、もしあれば、前に計算した結果に従って直接戻り、そうでなければ、通信要求をSystem viewに送り、Graph makerによって通信状態図の強連結集約計算を行い、System viewによってアルゴリズム3でP_SETセットを比較し(ここで、MAC Policyが危険な権限セットを提供する)、通信が許可された場合、結果をDecision Checkerに戻し、決定及び現在のシステム通信状態図をDecisionデータベースに記憶し、次回の通信判断で直接利用し、効率を高めるICCの呼び出しと、
3)ICCと同様に判断するが、ICCにおいて参照モニタによって切断された通信要求はここでSELinux(登録商標)によって切断され、その後のプロセスはICCと同様に、SELinux(登録商標)から通信要求をDecision Checkerに送信して判断するファイル操作及びソケット操作は内顆粒層に関わるアクセス制御。
【0010】
具体的には、まずシステム通信状態図の定義を与える定理の前置き。
【0011】
定義1は、システム通信の有向グラフG=(V,E)において、頂点セットVは通信主体を表し、Eは通信接続、Eの方向は通信情報フローの方向を指定する。頂点Vの属性P _SETは、通信接続におけるノードの権限セットを定義する。
【0012】
G_SCC=(V_SCC,E_SCC)は、G=(V,E)における各強連結成分を、単一ノードから形成された強連結集約図に抽象化させることと定義する。
【0013】
定義2は、G=(V,E)におけるエッジセットEは、ICC呼び出し、ファイルアクセス、インターネットソケット操作を中心とした片方向と双方向通信接続が含まれる。
【0014】
1)双方向通信において、v_1,v_2∈Vとし、v_1→v_2(v_2→v_1)のICC呼び出し、ソケット呼び出し、双方向ファイル読み出し/書き込みアクセスなどが存在するなら、∃e_1,e_2∈E∧e_1=(v_1,v_2 )∧e_2=(v_2,v_1)。
【0015】
2)片方向通信において、v_1,v_2∈Vとし、v_1→v_2(v_2→v_1)の片方向ファイル読み出し/書き込みアクセスが存在するなら、∃e∈E∧(e=(v_1,v_2 )∨e=(v_2,v_1))。
【0016】
定理1、権限の転送特性について、v_1,v_2∈V、且つ、∃e∈E,e=(v_1,v_2)とするなら、v_1→P_SET⊆v_2→P_SET。
【0017】
e=(v_1,v_2)である場合、定義1によって、情報がv_1からv_2へ流れ、v_1に特定の情報を取得できる権限がある場合、v_2も取得でき、v_1の権利がv_2に転送され、さらにv_1→P_SET⊆v_2→P_SETと証明される。
【0018】
推論1、権限チェーンについては、G=(V,E)には、単一ソース有向パスp=(v_1,v_2,・・・,v_k)が存在するなら、ここで、v_1,v_2,・・・,v_k∈Vであると、v_i→P_SET=v_1→P_SET∪v_2→P_SET∪・・・∪v_i→P_SET。即ち、ノードの権限セットP_SETは有向パスに沿って転送する特性を有し、転送方向は情報フローと同方向である。ここで、パスpを「権限チェーン」と呼び、方向は、v_1→v_kであり、ここで、v_1は権限チェーンの開始点であり、v_kは終点である。
【0019】
定理2、動的権限セットについて、強連結成分内の各ノードの権限セットは等しく、各ノードのP_SETの連合である。ここで、強連結成分内の頂点権限の連合を「動的権限セット」と呼ぶ。即ち、∃V_i∈V_SCC∧v_1,v_2,・・・,v_k∈V_iである場合、動的権限セットは、V_i→P_SET=v_1→P_SET∪v_2→P_SET∪・・・∪v_k→P_SETである。
【0020】
v_1→P_SET≠v_2→P_SETである場合、次式であり、
【0021】
【0022】
強連結の定義によって、v_1、v_2は相互に到達できるため、そのため、相互に権限を転送することができ、推論1によって、label∈v_1→P_SET⇒label∈v_2→P_SETが推論され、矛盾を導き出し,それによって定理は証明される。
【0023】
推論2、権限昇格パスについて、強連結集約
図G_SCCには、単一ソース有向パスp=(V_1,V_2,・・・,V_k)が存在するなら、ここで、V_1,V_2,・・・,V_k∈V_SCCであると、V_i→P_SET=V_1→P_SET∪V_2→P_SET∪・・・∪V_i→P_SET。ここで、パスpをシステムの「権限昇格パス」と呼び、即ち動的権限セットの転送パスである。権限セットの動的性は、2つの側面から導出され、第1は、V_iの権限セットは、Δを変え、ここで、i≦kであると、V_(i+1),V_(i+2),・・・V_kの権限セットもΔを変える。第2は、システムの強連結集約図は、通信状況によって変化し、即ち強連結成分及び対応する権限セットも変化する可能性がある。特に、権限昇格パスの各V_iに一つのノードv_iのみ含まれる場合、権限昇格パスは、権限チェーンに退化するため、権限チェーンは、権限昇格パスの特例である。
【0024】
制御戦略の詳細については、
モデルのアクセス制御規則は、「規則1.1~2.2」によって定義され、通信接続の確立と切断状況からそれぞれ考慮される。
【0025】
tw(v1, v2)をv1からv2へ双方向通信接続を開始するイベントと定義し、sw(v1, v2)をv1からv2へ片方向通信接続を開始するイベントと定義し、且つ、v1, v2が所属する強連結成分は、それぞれV1, V2である。V1, V2の間に、K本の有向辺が存在すると仮定すると、count[V1][V2]=kである。
【0026】
1)v1, v2は、通信接続を確立する。
【0027】
規則1.1 、tw(v1, v2) ∧V1= V2である場合、定理2によって、v1, v2のP_SETが等しく、通信接続の確立が直接許可される。
【0028】
規則1.2、tw(v1, v2) ∧V1≠ V2である場合、動的権限セットを併合し、V= V1∪V2且つV→P_SET=V1→P_SET∪V2→P_SETであるとともに、Vから出発した権限昇格パス上のノード権限セットを更新し、すべての更新されたP_SETが危険な権限セットと一致しない場合、通信接続の確立が許可される。
【0029】
規則1.3、sw(v1, v2) ∧V1=V2である場合、状況はルール1.1と同等であり、通信接続の確立が直接許可される。
【0030】
規則1.4、sw(v1, v2) ∧V1≠ V2である場合、count[V1][V2] ≧1という条件を満たすと、通信接続の確立が許可され、count[V1][V2] ≧1であると、通信の確立により、V1,V2が同じ強連結成分V= V1∪V2に併合され、ルール1.2で判断できる。count[V1][V2]=0である場合、V1,V2が単一連結成分に形成し、V2から出発した権限昇格パス上の各ポイントのP_SETをVi→P_SET=Vi→P_SET∪V1→P_SETに更新する。すべての更新されたP_SETが危険な権限セットと一致しない場合、通信接続の確立が許可される。
【0031】
特例としては、V1≠ V2である場合、tw(v1, v2) ∧∃p=(V1, Vi,・・・, V2)又はsw(v1, v2) ∧∃p=(V2, Vi,・・・, V1)という条件を満たすと、V1, Vi,・・・, V2はループを形成し、ループの判断について、明示的に実行する必要はなく、規則1.2又は規則1.4で正常に判断し、V=V1∪V2から出発した権限昇格パス上を更新すればよい。明らかにループ上の各ノードの権限セットは更新され、更新後は互いに等しくなり、強連結成分の権限分布特性を維持する。
【0032】
2)v
1, v
2間の通信接続が切断する。この場合、危険な権限セットは生成されないため、強連結集約
図Gsccの変化及び対応するP_SETセットの変更を考慮すればよい。
【0033】
規則2.1、V1≠ V2である場合、でcount[V1][V2]=1あると、V2を根とする有向木における各ノードの権限セットはVi→P_SET=Vi→P_SET\V1→P_SETに更新され、且つcount[V1][V2]=0。
【0034】
規則2.2、V
1=V
2である場合、強連通集約
図Gsccを再計算し、各ノードのP_SETを更新すべきである。有向にループ図がないという特性に基づいて、依然として線形時間内に制約されるために、アルゴリズムを更新する。
【0035】
意思決定の効率を高めるために、「素集合」を導入して強連結成分を抽象化させる。アルゴリズムFINDは、ノードxが属する強連結成分を検索する(そして、素集合の根ノードを検索する)
アルゴリズムFIND
ノードx、親方向ポインタpを入力する。
xが属する強連結成分を出力する。
1) if p[x]≠x return p[x]=FIND(p[x])
1) return p[x]
FINDアルゴリズムの時間複雑度はO (α(n))であり、ここで、α(n)は成長が極めて遅い関数であり、通常α(n) ≦4であると、FINDアルゴリズムは一定時間O(1)内に完了すると考えられる。
【0036】
アルゴリズムUNIONは2つの強連結成分をを併合する。
アルゴリズムUNION
併合される2つの素集合の根ノードx、y、ブール変数chを入力する。
1) p[y]=x
2) x → P_SET = x → P_SET + y → P_SET
3) x → neighbors = x → neighbors + y → neighbors
4) if ch = 1
5) foreach vertex n in Vscc do
6) count[x][n] = count[x][n] + count[y][n]
7) count[n][x] = count[n][x] + count[n][y]
UNIONアルゴリズムの最悪の場合の時間複雑度は、O(Vscc) ≦O (V)である。
【0037】
アルゴリズムDFS_TARJANは、原
図Gから強連結集約
図Gsccを計算し、G
sccツリートポロジ構成を構築するとともに、各ノードのneighbors属性とグローバルカウント配列を更新する。
【0038】
アルゴリズム1、DFS_TARJAN
有向グラフGの隣接リスト記述と、頂点アクセス時刻を記録する配列dfnと、スタック内の頂点が到達できる最小dfn値を記録する配列lowと、素集合の根ノードrootと、を入力する。
有向グラフGの強連結集約
図Gsccを出力する。
1) foreach vertex u in G do
2) low[u] = dfn[u] = index + 1
3) push u to stack
4) foreach (u, v) in E do
5) if v is not in stack then DFS_TARJAN(v)
6) low[u] = min(low[u], low[v])
7) else if u is in stack
8) low[u] = min(low[u], dfn[u])
9) if dfn[u] = low[u] then pop the stack from top to u as a V
scc
10) foreach vertex u,v in V
scc do
11) root = UNION(u,v,0)
12) add root into G
scc
13) foreach edge e = (u, v) in G do
14) if FIND(u) ≠ FIND(v)
15) cont[FIND(u)] [FIND(v)]++
16) FIND(u) → neighbors[k++] = FIND(v)
17) end
集約分析によると、各頂点は、スタックにプッシュされたり、スタックからポップされるのは1回だけである。すべてのUNION操作は、合わせてO(V)回が実行され、UNION時を呼び出す時のパラメータch = 0であるため、UNIONアルゴリズムの総時間複雑度は0(V)であり、それによってアルゴリズムDFS_TARJANの時間複雑度は0(V + E)が得られる。
【0039】
アルゴリズムBFS_UPDATEは、Gsccにおけるノードu∈Vsccから権限昇格パスを更新し、uを根とする有向木上の頂点権限セットを幅優先探索でトラバーサルし、権限昇格攻撃の有無を判断する。
アルゴリズム2、BFS_UPDATE
更新するノードuと、削除又は追加するラベルセットΔ→P_SETと、ブール変数chと、セカンダリキューqueueと、を入力する。
権限昇格攻撃の有無を出力する。
1) add u into queue
2) while queue is not empty do
3) pop the top element n from queue
4) if ch = 1
5) n→P_SET = n→P_SET + Δ→P_SET
6) if P_SETdangerous = n→P_SET return true
7) if ch = 0
8) n→P_SET = n→P_SET - Δ→P_SET
9) foreach v in n→neighbors
10) add v into queue
アルゴリズムBFS_UPDATEは幅優先探索で更新し、マルチ分岐ノードを繰り返して更新するのが回避され、効率を向上させ、且つGsccループなしの特性によって、時間複雑度の上限をO(Vscc + Escc) ≦ O(V + E)となる。
【0040】
図2と
図3に、それぞれ、v
1からv
2へ通信接続要求及び通信切断要求を開始する際のフローチャートを説明する。安全モデルによる判断する時の時間的複雑度は、最適な場合がO(1)となる。最悪は、システムの強連結集約図を再構築する場合、アルゴリズムBFS_UPDATEの入力パラメータuを、G
sccにおける入次数が0となるノードのセットに変更され、集約分析によると、BFS_UPDATEアルゴリズムの各ノードはキューに1回のみ出入りするそのため、アルゴリズムの時間複雑度の上限は依然としてO(V + E)となり、線形時間領域範囲内にある。
【0041】
スキーマの正確性の説明について、
定理3、モデルの正確性については、モデル決定アルゴリズムは、マルチアプリケーションマルチ通信方向の共謀攻撃を防ぐことができる。
【0042】
1)制御粒度と効率から見ると、まず、アルゴリズムの根拠となる通信状態
図Gに情報フローが結合さてており、且つ内顆粒層のコバートチャネルが含まれ、既存モデルの制御粒度よりも細い、次に、具体的なアルゴリズムの解析を通じて、モデルが決定を行う最悪の状況の時間的複雑度は、O(V + E)であり、線形時間領域範囲にあり、既存の同類モデルより優れていると証明される。
【0043】
2)理論の正確性については、権限昇格攻撃の定義および権限転送特性に基づいて、攻撃に参加するアプリケーションの数にかかわらず、システム内に権限転送チェーンを構築することにより、ある点で権限を拡張する目的を達成する。したがって、マルチアプリケーションの共謀攻撃に対する検出は、システムにおける権限チェーンの存在性の検出と見なすことができる。v1, v2の通信確立によるvの権限拡張が発生すると、通信後に必然的に権限チェーンp=(v1, v2,・・・, v)が生成される。そうでなければ、通信前にすでにpが存在していても、通信後にpが存在していなくても、v1, v2間の通信によりvの権限に影響する可能性がない。権限チェーンは権限昇格パスの特例であるため、強連結集約図には必ずpに対応する権限昇格パスpscc = (V1,V2・・・,V)が存在し、ここで、V1,V2,Vは、それぞれv1, v2及びvが所属する強連結成分である。
【0044】
以上の分析に基づいて、v1, v2通信を確立する際には、v1, v2が所属する権限セットV1,V2から出発して、V1,V2が起点となる権限昇格パスpscc上に危険な権限セットが存在するかどうかを検出するだけでよく、すなわち規則1.2(双方向通信)または規則1.4(片方向通信)。したがって、アルゴリズムの正確性が証明される。
【0045】
ここで、
図4に示すように、本明細書で提案されたアルゴリズムの正確性を分析するために、抽象的な攻撃モデルの例(スマホ盗聴アプリケーションに基づく)を導入する。
【0046】
図では、6つのノードはそれぞれ6つのアプリケーションを表し、それらの間の有向辺は情報の転送を表し、辺の方向は情報フローの逆方向である。ここで、v
4は第三者にデータを公開でき、機密データの転送に利用される可能性が高い。ノードv
0は、電話帳、通信音声情報など、コンテンツサービスなどを提供するいくつかのアプリケーションを表し、機密データを含む可能性がある。ノードv
1, v
2は、通信接続要求を開始するためのアプリケーションであり、通信方向は、v
1 ・・・> v
2(図に示す辺の方向はv
2 ・・・> v
1)。
図5に示すように、v
1, v
2が通信操作を確立する前に、v
1はv
0から情報を取得し、v
4とv
3はv
2から情報を取得し、v
2はv
3, v
4から情報を取得する。
【0047】
仮定初期時、v4は権限Aを持ち(AはINTERNETであってもよい)、v0は権限Bを持ち(BはPROCESS_OUTGOING_CALL、GPS、 SMSなどであってもよい)、v3は権限Cを持ち、v1v2v5の権限は任意であり、viは権限Xiを持つと定義でき、ここで、i∈{1,2,5} 。このとき、システムの通信状態図に三つの片側連結成分があり、それぞれ{v1, v4}、{v5, v4, v2}、{v5, v3, v2}である。アルゴリズム2によると、v0, v2権限は変更されなく、P_SET_STATICiで変わらない。v4, v1, v3, v5の権限セットは、アルゴリズム2によると、P_SET4 = {A, X2}、P_SET1 = {B, X1}、P_SET3 = {X2, C}、P_SET5 = {A, C, X2, X5}に更新される。危険な権限セットは{A, B, C}に定義され、すべてのP_SETiと一致しない。
【0048】
v1からv2へ通信接続を要求する際(ユーザによって起動するか、ユーザが知らないうちに他のアプリケーションによって間接的に起動する)、片側連結成分は{v5, v4, v2, v1, v0}, {v5, v3, v2, v1, v0} となり、それとともに、アルゴリズム2によると、各ノードの権限セットは、P_SET1 = {B, X1}、P_SET2 = {B, X1, X2}、P_SET3 = {B, C, X1, X2}、P_SET4 = {A, B, X1, X2}、P_SET5 = {A, B, C, X1, X2}であり、危険な権限セット{A, B, C}と一致するのは、P_SET5のみあるため、通信要求は拒否される。2つの片側連結成分の最長パスにより、特権昇格攻撃を発生させる。
【0049】
v1,v2の通信が切断されると、システム状態図はまた初期の3つの片側連結成分を回復し、アルゴリズム2を再実行し、各ノードの権限セットを回復する。
【0050】
実用的な説明は以下の通りであり、
Android(登録商標)は権限ラベルメカニズムを導入して通信のセキュリティを保証する。アプリケーションプログラムは必要なPermisionsラベルを指定してユーザー認可を得ることができるとともに、システムにも多くのセキュリティラベルが組み込まれている。このラベルマッチングメカニズムにより、通信の開始者またはリソース要求者が対応する権限ラベルを持っている場合にのみ、通信を確立したりリソースを取得したりすることができる。権限ラベルメカニズムは、不正なアプリケーションによるリソースや機密データの直接取得を阻止するのに優れているが、権限保護されていないサービスを利用した権限拡張のための特権昇格攻撃に対しては、効果的な防御方法が不足している。
図5に示すように、アプリケーションCのコンポーネントは、権限を持つアプリケーションのみがアクセスできるため、アプリケーションAのコンポーネントは直接アクセスする権限はないが、アクセスする権限があり、このとき、アクセスできる権限があることで、不正にデータを取得することができる。特権昇格攻撃の本質は、システムアプリケーション間に「権限転送チェーン」を構築し、最終的にあるアプリケーション上で「危険な権限セット」を実現することであり、例えば、{INTERNET,FINE_LOCATION}は、あるアプリケーションに危険な権限セットがある場合、機密データ漏洩の危険性がある。アクセス制御リストなどの従来のアクセス制御方法では、特権昇格攻撃の問題を解決できない。本発明の手段は、通信状態図における強連結成分内のアプリケーションの権限セットが等しいという特徴を利用して、動的権限セットを用いてシステムアプリケーションに対して同値分割を行い、有向ループ図なしのDAGを構築して問題を簡略化する。アプリケーション自体で構成された権限チェーンの代わりに権限セットに基づく「権限昇格パス」を使用し、情報フローと動的権限セットを結合した上で権限昇格パスを抽象化させ、権限変化を追跡し、モデルに実行時の意思決定能力を持たせるとともに、権限昇格パスの構築により、モデルはマルチアプリケーションマルチ通信方向の共謀攻撃を防ぐことができる。また、ファイル操作やソケット操作などの内顆粒層のコバートチャネルを考慮したため、内顆粒層のコバートチャネルに基づく共謀攻撃を防ぐことができ、また強連結成分に基づいて動的権限分割を構築し、検索スペースを簡略化縮小し、素集合及び権限昇格パスの特性を利用して、アルゴリズムを線形時間範囲内に拘束することができる。したがって、本発明の態様は良好な実用性を有する。
【0051】
Soundcomber盗聴の例を考える。
図6に示すように、アプリケーションA、B、CおよびAudio Recorderは、コバートチャネルcovert channelを介してユーザのプライバシーセッション情報を共謀して盗み出す。
【0052】
危険な権限セットは、{PROCESS_OUTGOING_CALL, INTERNET, RECORDER_AUDIO}に定義される。
【0053】
Audio Recorderはマイクを録音し、COLLACTIONとTRANSMITIONモジュールはそれぞれ意味解析とデータ転送を行う。アプリケーションCall Processは、PROCESS_OUTGOING_CALL権限を持ち、アプリケーションAudio RecorderとICC双方向通信接続を確立し、強連結成分を構成し、対応する動的権限セットは{PROCESS_OUTGOING_CALL,RECORDER_AUDIO}である。
【0054】
悪意のあるアプリケーションAは、Audio Recorderモジュールのデータを取得するため、Aのアクセス権セットは{PROCESS_OUTGOING_CALL, RECORDER_AUDIO}である。アプリケーションBは、Deliver Appと片方向通信(ファイル書き込み動作)を確立することができ、BはDeliver Appにデータを伝送してInternetに送信する。
【0055】
AがBに片方向通信接続要求(Bを書き込むファイルcommon file)を開始する場合、
1)XmAndroid(登録商標)セキュリティモデルを採用し、毎回2つのアプリケーションを列挙し、危険な権限セットに3つの権限ラベルがあるため、Call Process、Audio Recorder、Malware A、Malware B、Deliver Appのいずれか2つのプログラムからなる権限ラベルセットは危険な権限セットと一致できず、意思決定が失効する。
【0056】
2)履歴権限セットを用いたセキュリティモデルにおいては、アプリケーションAのHistory属性は{PROCESS_OUTDOING_CALL,RECORDER_AUDIO}であり、アプリケーションBのHistory属性はNULLであり、アルゴリズムによるアプリケーションA、Bを合併したHistory属性は{PROCESS_OUTDOING_CALL,RECORDER_AUDIO}であり、危険な権限セットと一致せず、通信確立が許可された後、Bの隣接点アプリケーションDeliver Appに対してHistory更新を行い、この時機密データはA、B、Deliver Appを介してInternetに送信され、意思決定が失効する。
【0057】
3)本発明が提案された意思決定アルゴリズムによれば、片方向通信接続要求であるため、規則1.4に従って、線形時間アルゴリズムBFS _UPDATEによって、権限昇格パス{,A,B,Deliver App}に沿って権限セットを更新し、Deliver Appプログラムの権限セットは{PROCESS _ OUTGOING _ CALL,RECORDER _ AUDIO,INTRNET}であり、危険な権限セットと一致するため、通信接続が拒否される。
【0058】
最後に、上述は本発明の好適な実施形態にすぎず、本発明を限定するためには使用されないが、上述の実施形態を参照して本発明を詳細に説明したが、当業者にとっては、上述の各実施形態に記載された技術的態様を修正したり、技術的特徴の一部を同等に置き換えたりすることができる。本発明の精神と原則の中で、行ったいかなる修正、等価置換、改良などは、本発明の保護範囲に含まれるべきである。
【国際調査報告】