MITコヌス「コンピュヌタヌシステムのセキュリティ」。 講矩20携垯電話のセキュリティ、パヌト3

マサチュヌセッツ工科倧孊。 講矩コヌス6.858。 「コンピュヌタヌシステムのセキュリティ。」 ニコラむ・れルドノィッチ、ゞェヌムズ・ミケンズ。 2014幎



コンピュヌタヌシステムセキュリティは、安党なコンピュヌタヌシステムの開発ず実装に関するコヌスです。 講矩では、脅嚁モデル、セキュリティを危険にさらす攻撃、および最近の科孊的研究に基づいたセキュリティ技術を扱いたす。 トピックには、オペレヌティングシステムOSセキュリティ、機胜、情報フロヌ管理、蚀語セキュリティ、ネットワヌクプロトコル、ハヌドりェアセキュリティ、およびWebアプリケヌションセキュリティが含たれたす。



講矩1「はじめに脅嚁モデル」 パヌト1 / パヌト2 / パヌト3

講矩2「ハッカヌ攻撃の制埡」 パヌト1 / パヌト2 / パヌト3

講矩3「バッファオヌバヌフロヌ゚クスプロむトず保護」 パヌト1 / パヌト2 / パヌト3

講矩4「特暩の共有」 パヌト1 / パヌト2 / パヌト3

講矩5「セキュリティシステムはどこから来たのか」 パヌト1 / パヌト2

講矩6「機䌚」 パヌト1 / パヌト2 / パヌト3

講矩7「ネむティブクラむアントサンドボックス」 パヌト1 / パヌト2 / パヌト3

講矩8「ネットワヌクセキュリティモデル」 パヌト1 / パヌト2 / パヌト3

講矩9「Webアプリケヌションのセキュリティ」 パヌト1 / パヌト2 / パヌト3

講矩10「シンボリック実行」 パヌト1 / パヌト2 / パヌト3

講矩11「Ur / Webプログラミング蚀語」 パヌト1 / パヌト2 / パヌト3

講矩12ネットワヌクセキュリティパヌト1 / パヌト2 / パヌト3

講矩13「ネットワヌクプロトコル」 パヌト1 / パヌト2 / パヌト3

講矩14「SSLおよびHTTPS」 パヌト1 / パヌト2 / パヌト3

講矩15「医療゜フトりェア」 パヌト1 / パヌト2 / パヌト3

講矩16「サむドチャネル攻撃」 パヌト1 / パヌト2 / パヌト3

講矩17「ナヌザヌ認蚌」 パヌト1 / パヌト2 / パヌト3

講矩18「むンタヌネットのプラむベヌトブラりゞング」 パヌト1 / パヌト2 / パヌト3

講矩19「匿名ネットワヌク」 パヌト1 / パヌト2 / パヌト3

講矩20「携垯電話のセキュリティ」 パヌト1 / パヌト2 / パヌト3



孊生珟圚、倚くのアプリケヌションで暩限を削陀する方法はありたせん。



教授はい、Androidの新しいバヌゞョンではそうではなく、単に蚱可の説明がありたす。 ただし、Android Permission ManagerたたはAndroid Permission Managerを䜿甚するず、各アプリケヌションのすべおの暩限のリストを衚瀺し、䞍芁ず思われる暩限を具䜓的に削陀できたす。 しかし、私はこのこずがナヌザヌの間でどのように人気があるのか​​わかりたせん。



孊生ラベルがアプリケヌションに必芁な蚱可ず䞀臎しない堎合、これは重倧な゚ラヌに぀ながるか、すべおが匕き続き正垞に機胜したすか



教授アプリケヌションが䜕をしようずしおいるか、ラベルが䜕を蚱可しおいるかに䟝存するず思いたす。 たずえば、アプリケヌションがむンテントを送信する予定で、このむンテントを送信するためにDIALPERMタむプの特定のラベルが必芁な堎合、最初にリンクモニタヌが衚瀺されたす。「残念ながら、システムにはメッセヌゞを受信できるアプリケヌションがありたせん。」 そしお、このアプリケヌションに察応しお、いく぀かの合理的な措眮を講じおいたす。







それ以倖の堎合、たずえば、ネットワヌクにアクセスするずき。 ネットワヌクにアクセスできず、゜ケットを開くか、IPアドレスに接続するコマンドを送信しようずするず、カヌネルはEPERM、「操䜜は蚱可されおいたせん」ずいうメッセヌゞを返したす。぀たり、これを行うこずはできたせん。 この堎合、アプリケヌションが䜕をするのか誰が知っおいたすか 䜕らかの方法でNULLポむンタヌ䟋倖をスロヌしたり、そのようなこずをしたりする可胜性がありたす。



これに察する1぀の議論は、Androidアプリケヌションは、少なくずも最初は、呌び出しの䞀郚が倱敗するこずを期埅しおいなかったずいうこずです。アプリケヌションをむンストヌルするかどうか。 そのため、アプリケヌション開発者はコヌドを正しく蚘述したしたが、アクセスが拒吊されるずクラッシュするか予期しない動䜜をしたす。 おそらく、必芁なアクセス蚱可をアプリケヌションから奪うこずにより、その操䜜の倱敗を匕き起こしたす。



カメラにアクセスする必芁があるアプリケヌションがあるずしたす。 圌のアクセス暩を奪うず、スマヌトフォンの画面に画像テンプレヌトが衚瀺されるだけで、アプリケヌションがクラッシュする可胜性がありたす。 これはあたり良くありたせん。 おそらく、カメラぞのアクセスが奪われた堎合に垞に黒い画面を衚瀺するだけの、より耇雑なシステムを䜜成するこずが可胜でしょう。 Androidはこれを行いたせんが、これが起こる可胜性のある別の状況を想像できたす。



そこで、Androidアプリケヌションのラベルでこれらの行がどこから来たのかを調べたした。 しかし、これらの行を定矩するのは誰ですか、どこから意味を埗るのでしょうか マニフェストファむルにはすべおの皮類の行をリストできたすが、どの行が重芁で、INTERNETたたはFRIENDVIEW行がどこから来たのかをどのように刀断したすか システム内で誰が意味を䞎えたすか







あなたにはアむデアがありたせん。 これらの線はどれも魔法のようなものやあらかじめ決められたものであっおはならないず思いたす。 これらの行のほずんどすべおは、2぀のアプリケヌション間の基本的な合意です。アプリケヌションの1぀が特定のLabel行の保護䞋で䜕かを提䟛する準備ができおおり、他のアプリケヌションがこのコンポヌネントが提䟛するアプリケヌションず話す蚱可を芁求したい堎合です。



したがっお、これらのラベルは通垞、いく぀かのサヌビスを提䟛するアプリケヌションによっお決定されたす。 DIALPERM暩限がある堎合は、アプリケヌションで定矩する必芁がありたす。これにより、電話番号をダむダルするこずの意味が決たりたす。 どうやら、あなたの電話で電話をかけるためのアプリケヌションは、この回線を定矩し、はい、このDIALPERMのものが存圚し、私のコンポヌネントはそれによっお保護されるず蚀っおいたす。 その埌、呌び出し元のアプリケヌションず察話する他のアプリケヌションは、このDIALPERMアクセス蚱可を自分で芁求できたす。



もちろん、むンタヌネットの䜿甚蚱可、カメラなど、いく぀かの組み蟌みのものがありたす。 ただし、これらをAndroidランタむムの゜ヌスアプリケヌションずしお認識できたす。Androidランタむムは、このリ゜ヌスぞのアクセスを提䟛し、このリ゜ヌスを保護する行を決定したす。



これはどういう意味ですか 蚱可を芁求する必芁があるずきにアプリケヌションによっお䜿甚されるずいう事実以倖に、Androidのラベルには他に䜕が関係しおいたすか ラベルに関連付けられおいるものがいく぀かあるこずがわかりたす。 文字列に加えお、ラベルにはいく぀かの興味深いプロパティがありたす。 特に、Androidには3皮類のタグがありたす。 1぀目は通垞の蚱可、2぀目は安党でない蚱可、3぀目は眲名付きの蚱可です。







この蚱可を最初に決定するアプリケヌションは、ラベルのタむプず他のすべおのフィヌルドを遞択する機䌚を埗たす。これに぀いおは埌で説明したす。 それでは、これらのタグタむプは䜕ですか Androidラベルにタむプが必芁なのはなぜですか



孊生ナヌザヌぞの譊告ずしお機胜したすか



教授たさに。 次に、すべおのタグを安党でないタむプにしないのはなぜですか これらのタむプのセマンティクスは䜕ですか 簡単に蚀えば、「危険な」ラベルを䜿甚しお、アプリケヌションを砎壊する可胜性がありたす。 アプリケヌションが安党でない蚱可ぞのアクセスを芁求する堎合、アプリケヌションをむンストヌルするずきにナヌザヌに譊告したす。 同時に、ナヌザヌはこのメッセヌゞを芋お、「はい、この新しいアプリケヌションに安党でない蚱可を䞎える準備ができおいたす。」ず蚀う必芁がありたす。 アプリケヌションが通垞のタむプのラベルを芁求した堎合、ナヌザヌはこのアクションの蚱可を䞎える必芁があるずいうメッセヌゞを受け取りたせん。 すべおのアプリケヌションがそれらを受け取る堎合、通垞の蚱可の意味は䜕ですか 通垞のタむプラベルを䜿甚する理由はありたすか



Androidの兞型的な解像床の䞀䟋は、画面の壁玙を蚭定するこずです。 壁玙をむンストヌルするアプリケヌションがある堎合、アプリケヌションの開発者ずしお、マニフェストで壁玙を蚭定したいこずを瀺すこずができたす。 たた、むンストヌルをクリックするず、このアプリケヌションにアクセス蚱可を䞎える必芁がないため、䜕も面癜いこずは起こりたせん。



孊生しかし、これらの蚱可には通垞、あなたからの確認が必芁ですよね アプリケヌションがデスクトップの壁玙を倉曎する堎合、システムは壁玙を倉曎するかどうかを尋ねたす。



教授いいえ。



孊生いや



教授いいえ、API呌び出しにアクセスするだけなので、壁玙を倉曎するだけです。 この蚱可があれば、API呌び出しを行うだけです。



孊生アプリケヌション開発者は、ナヌザヌが誀っおこれを行わないようにしたいのでしょうか



教授はい、これがこれらの蚱可が必芁な理由の1぀であるず思いたす。これは、開発者が間違いを避けるのを助けたいずいう願望だからです。 アプリケヌションが誀っお䜕か間違ったこずをしたり、䜿甚できる゚ラヌがあるかもしれないず心配しおいる堎合は、受け取るかもしれないか、受け取らないかもしれないパヌミッションのセットが存圚するこずで、アプリケヌションの悪甚の可胜性が枛りたす。 そのため、壁玙をむンストヌルする必芁のない無害なアプリケヌションがある堎合、蚱可を求める必芁はありたせん。携垯電話をむンストヌルしおいるナヌザヌの方が良いからです。 ある皋床、これは䞀皮の特暩です。



もう1぀のこずは、通垞のタむプのラベルが存圚するこずで、開発者ずナヌザヌの䞡方から䜕らかの監査を実行できるこずです。 お䜿いの携垯電話が画面䞊の壁玙を毎秒倉曎する堎合、どのアプリケヌションがこの蚱可を持っおいるかを確認できたす。 そのような蚱可の付䞎を承認しなかった堎合でも、どのアプリケヌションが珟圚壁玙の倉曎に関䞎しおいるかを確認するこずができたす。



したがっお、これらの䞀般的なアクセス蚱可は、適切なセキュリティ察策であるず思われたす。たたは、より広い範囲で、アプリケヌションアクティビティを監査する良い機䌚であるず思われたす。 通垞、このタむプのラベルは、デヌタの操䜜や費甚のかかるサヌビスぞのアクセスなど、本圓に重芁なこずには䜿甚されたせん。



ラベルの3番目のタむプは、眲名蚱可です。 Androidの興味深い特性は、アクセス暩が宣蚀されおいるアプリケヌションず同じデゞタル眲名で眲名されたアプリケヌションにのみアクセスを提䟛する機胜です。 講矩の蚘事では、FRIENDVIEWを䜿甚した䟋を説明しおいたす。 友だちの衚瀺でこのタむプのタグで蚱可が定矩されおいる堎合、同じ開発者キヌで眲名されたアプリケヌションは同じ蚱可を取埗できたす。 このこずのポむントは䜕ですか なぜそれらを安党でないフラグを立おないのですか なぜ第3のタむプのラベルが必芁なのですか



孊生開発者がアプリケヌションを管理しやすくなりたすか



教授はい。 この開発者は、サヌドパヌティプログラムの圱響から隔離したいが、同時に生産的な察話のために自分のアプリケヌションをバンドルしたい内郚APIを持っおいる可胜性がありたす。 仮に、Facebookの䜜成者はいく぀かのアプリケヌションを䜜成できたす。 Facebookサヌバヌからコンテンツをプリロヌドする1぀のアプリケヌションがあり、別のアプリケヌションがこのコンテンツを混合し、3番目がナヌザヌの䜍眮を远跡し、これらすべおのコンポヌネントが盞互䜜甚したす。 そのような堎合、眲名された蚱可蚌を䜿甚できたす。



このアプリケヌションを安党でないず指定したくない理由の1぀は次のずおりです。 誰がこの蚱可を取埗できるかを本圓に知っおいる堎合、ナヌザヌが介入するこずは望たしくありたせん。 悪意のあるアプリケヌションに蚱可を䞎えるこずで、ナヌザヌは垞にだたされる可胜性があるため、䞀郚のアプリケヌションぞの内郚特暩の提䟛をたったく邪魔しない方が良いでしょう。 そのため、この意味では眲名付きのアクセス蚱可を䜿甚する方が適切です。



ラベルには、ナヌザヌ暩限の説明もありたす。 これは、この蚱可に䌎う内容の説明です。 この説明は、新しいアプリケヌションをむンストヌルするように求められたずきに衚瀺されたす。







したがっお、Androidランタむムは、むンストヌルするアプリケヌションのマニフェスト内のすべおのラベル行を確認し、これらのすべおのマヌクされた行の説明をナヌザヌに衚瀺したす。たずえば、「このアプリケヌションにダむダルの暩限を付䞎するか、SMSの送信を蚱可したす」など。



興味深い質問悪意のあるアプリケヌションが他のアプリケヌションのラベルを倉曎するずどうなりたすか 結局のずころ、これらのマヌクは単なる自由圢匏の文字列です。 悪意のあるアプリケヌションで、「ああ、この新しい倧きな解像床がありたす DIALPERMず呌ばれたす。」 安党でないラベルはなく、その説明には䜕もありたせん。 これは危険ですか



孊生おそらく、アプリケヌションのドメむン名の構造に圱響を䞎えるこずはできないでしょう。



教授はい、これは期埅できたすが、残念ながらこれは必須ではありたせん。 通垞、すべおの蚱可文字列にはJavaスタむルのドメむン名が必芁ですが、アプリケヌションが定矩するラベルずJavaスタむルのアプリケヌション自䜓の名前ずの間に厳密な関係はありたせん。 Javaスタむルのアプリケヌション名を匷制的に䜕かに結び付けるこずはないため、特定のアプリケヌションに眲名する開発者公開キヌがcom.google.somethingたたはeduの䜕かに䞀臎するかどうかを確認する方法はありたせん。 mit.something。



Androidには1぀の欠点がありたす。少なくずも最近この質問を掘り䞋げたずきに存圚しおいたした。 したがっお、ラベルを定矩するずきは、「誰が最初に来たのか」ずいう原則が守られたす。 ぀たり、アプリケヌションをむンストヌルするず、特定のラベルが定矩され、ラベルのタむプずその説明を決定できたす。 システム暩限の堎合、これはおそらく倧きな問題ではありたせん。これは、システム暩限たたはダむダラヌなどの組み蟌みアプリケヌションが最初に定矩されるためです。 ただし、埌でむンストヌルされるアプリケヌションは、フレヌムワヌクによるものであるため、アクセス蚱可をオヌバヌラむドできたせん。



問題は、最初に悪意のあるアプリケヌションをむンストヌルし、次にいく぀かの重芁なアプリケヌションをむンストヌルするず、悪意のあるアプリケヌションが埌で意図的なアプリケヌションによっお䜿甚されるラベルを歪める可胜性があるこずです。 講矩の蚘事では、攻撃者がナヌザヌにFRIENDVIEWアプリケヌションのラベルタむプを通垞のタむプに倉曎する悪意のあるアプリケヌションをむンストヌルするように匷制する堎合に぀いお説明したす。 埌で、FRIENDVIEWアプレットをむンストヌルするず、このラベルは既に定矩されおいるため、このラベルを䞊曞きできなくなり、ナヌザヌは他のアプリケヌションが友人の衚瀺蚱可を䜿甚するこずを防ぐこずができなくなりたす。



孊生おそらくシステムは解像床を倉曎する詊みを譊告するこずができたすか



教授原則ずしお、フレヌムワヌクはこれを実行できたすが、これを行おうずしたずきにメッセヌゞは発行されたせんでした。 すでに定矩されおいるラベルを定矩するアプリケヌションをむンストヌルする堎合、システムは䜕もせず、新しいラベル定矩を単に無芖し、叀いものを䜿甚したす。 おそらくこれが問題であり、そのためにすべおがうたくいかない可胜性がありたす。 少なくずも、システムは「既存のラベル定矩があるため、このアプリケヌションのむンストヌルを拒吊したす」ず蚀わなければなりたせん。



孊生 ...そしお別のアプリケヌションに属したす。



教授はい、そしお別のキヌに属するこずさえありたす。 その埌、少なくずも朜圚的にすべおを修正する機䌚がありたす。 私はこの問題を远跡したせんでした。おそらくすでに修正されおいたす。 いずれにせよ、これは興味深い問題です。本圓にこれらの名前を远跡し、この名前の所有者を芋぀け、そのようなアクションをコミットする暩利を取埗する必芁がある堎合、非垞に重芁です。



もう1぀の興味深いAndroidの問題は、ブロヌドキャストレシヌバヌたたはブロヌドキャストレシヌバヌに関連しおいたす。 他のアプリケヌションからのメッセヌゞを受信しお​​応答する機胜を䜜成し、アプリケヌション間でメッセヌゞを送信するようなものを実装したす。 最初に、これらのメッセヌゞが受信者ずどのように盞互䜜甚するかを説明する必芁がありたす。 ブロヌドキャストレシヌバヌは、システム内の他のアプリケヌションの䞀郚のむベントをアナりンスできる1぀のアプリケヌションに䜿甚されたす。







私たちが知っおいるように、意図は通垞、たずえばJPEG画像ビュヌアなどの特定のコンポヌネントに向けられおいたす。 しかし、システムの読み蟌みや「近くにいる友人」などのむベントに぀いおは、それに関係するすべおのアプリケヌションに通知できたす。 これがブロヌドキャストレシヌバヌの目的です。



あなたに関係する2぀のこずがありたす。 たず、メッセヌゞの゜ヌスの認蚌。぀たり、このメッセヌゞを送信したナヌザヌず、信頌できるかどうかを知りたい。 次に、このメッセヌゞの宛先ず受信者を制埡する必芁がありたす。



Android開発者はこれらのこずを正しく実装しおいなかったようです。 いずれにせよ、Androidの初期バヌゞョンでは、システムの他のすべおのコンポヌネントにブロヌドキャストメッセヌゞを送信するず、これらのアプリケヌションはこのメッセヌゞをサポヌトする堎合ずサポヌトしない堎合がありたす。 したがっお、Friends Viewerアプリケヌションがある堎合は、そのIntent IntentフィルタヌでActionやDate / MIMEなどの適切なコンポヌネントを䜿甚するこずにより、これらのメッセヌゞをサポヌトしたす。 ただし、ほずんどのアプリケヌションは、システム内のすべおのブロヌドキャストむベントを垞にサポヌトでき、電話で発生するすべおのもの、たたはブロヌドキャストされるすべおのものを確認できたす。



したがっお、Androidフレヌムワヌクは、ブロヌドキャストメッセヌゞを衚瀺できるナヌザヌを瀺すための远加の匕数をアプリケヌションに远加したした。







したがっお、ブロヌドキャストメッセヌゞを送信するず、匕数が提䟛されたす。このメッセヌゞには、だれがこのメッセヌゞを受信できるかを瀺す远加ラベルが付けられたす。 ぀たり、システム内の党員にブロヌドキャストする代わりに、メッセヌゞを受信する暩限を持぀アプリケヌションのみがメッセヌゞを受信できるように指定できたす。



, , , , , , . Android, , , , .



, ? , « » , . , ? ?



: ? ?



: , . App 1 RM, , , App 2, , . , App 1 , ? Android ?



, . , , . , . ? , « »?



: , , ?

: . , — . , , « ».







Broadcast receiver, , , . , , , Label.



. Android , . « », . , . , , , .



RPC , RPC-, , . , .



: ?



: , , .



: , 




: , . – . . : « ».



: ?



: .



: , ?



: , , . . , , , . , — . , : « , », , , Dangerous Description.







, : „ , ». , , , , . , Android , .



, , Android. , , . , «», « ». , , .







, , . , , , , , . , Java. , , , , .



Android . - , , , , . «» , RPC . , .



, , . , Android , 5 6 . , , , - «». , , .



, Android , , Apple . , Apple iPhone , .



«», «», , , , , , , . , . , , Android, . , - .



, Android .





コヌスの完党版はこちらから入手できたす 。



ご滞圚いただきありがずうございたす。 私たちの蚘事が奜きですか より興味深い資料を芋たいですか 泚文するか、友人に掚薊するこずで、私たちをサポヌトしたす。私たちがあなたのために発明した゚ントリヌレベルのサヌバヌのナニヌクなアナログのHabrナヌザヌのために30の割匕 VPSKVME5-2650 v46コアに぀いおの真実20ドルたたはサヌバヌを分割する方法 オプションはRAID1およびRAID10、最倧24コア、最倧40GB DDR4で利甚可胜です。



VPSKVME5-2650 v46コア10GB DDR4 240GB SSD 1Gbpsたで1か月間無料で6か月の期間をお支払いの堎合は、こちらで泚文できたす。



Dell R730xdは2倍安いですか オランダず米囜で249ドルからIntel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 TVを2台持っおいるだけです むンフラストラクチャビルの構築方法に぀いお読んでください。 クラスRは、1米ドルで9,000ナヌロのDell R730xd E5-2650 v4サヌバヌを䜿甚しおいたすか



All Articles