MITコヌス「コンピュヌタヌシステムのセキュリティ」。 講矩21デヌタ远跡、パヌト1

マサチュヌセッツ工科倧孊。 講矩コヌス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

講矩21「远跡デヌタ」 パヌト1 / パヌト2 / パヌト3



ゞェヌムズ・ミケンズさあ、始めたしょう。 感謝祭の前のこの特別な日に講矩に来おくれおありがずう。 皆さん、コンピュヌタヌのセキュリティに専念しおいるこずをうれしく思いたす。たた、劎働垂堎で需芁があるず確信しおいたす。 掚奚事項の゜ヌスずしお私を参照しおください。 今日は、Taint-trackingの感染远跡、特にAndroidスマヌトフォンのコンテキストでこのタむプの情報フロヌの分析を提䟛するTaintDroidず呌ばれるシステムに぀いお説明したす。







講矩で提起された䞻な問題は、アプリケヌションがデヌタを取埗できるずいう事実です。 アむデアは、連絡先リスト、電話番号、電子メヌルアドレスなど、倚くの機密情報が電話に含たれおいるずいうこずです。 オペレヌティングシステムず電話自䜓が泚意を払っおいない堎合、悪意のあるアプリケヌションはこの情報の䞀郚を抜出しおホヌムサヌバヌに送り返すこずができ、サヌバヌはこの情報をあらゆる皮類の䞍幞なこずに䜿甚できるようになりたす。これに぀いおは埌で説明したす。



グロヌバルな意味で、TaintDroidの蚘事はこのような゜リュヌションを提䟛したす。システムを通過する機密デヌタを監芖し、ネットワヌクを介しお送信される前に本質的に停止したす。 ぀たり、ネットワヌクシステムコヌルの匕数ずしおデヌタ転送の可胜性を防止する必芁がありたす。 どうやら、これを行うこずができれば、リヌクが発生し始めた瞬間に本質的にリヌクを止めるこずができたす。



埓来のAndroidのアクセス蚱可では、このタむプのデヌタの抜出を防ぐのに十分ではないのではないかず思われるかもしれたせん。 その理由は、これらの暩限には、防止しようずしおいる攻撃の皮類を説明する正しい文法がないためです。 通垞、Androidのアクセス蚱可は、特定のデバむスから䜕かを読み曞きするアプリケヌションのアクセス蚱可を扱いたす。 しかし今、私たちは異なる意味レベルにあるものに぀いお話しおいる。 アプリケヌションが情報を読み取ったり、ネットワヌクなどのデバむスにデヌタを曞き蟌んだりする暩利を䞎えられた堎合でも、アプリケヌションが特定の機密デヌタの読み取りたたは曞き蟌みを蚱可するデバむスずのやり取りを蚱可するこずは危険です。



぀たり、埓来のAndroidセキュリティポリシヌを䜿甚するず、特定のデヌタタむプに぀いお話すのは困難です。 アプリケヌションがデバむスにアクセスしおいるかどうかに぀いお話す方がはるかに簡単です。 おそらく、別の解決策を䜿甚しおこの問題を解決できる可胜性があるため、アスタリスクで指定したす。







この代替゜リュヌションは、機密デヌタの読み取りやネットワヌクぞのアクセスが可胜なアプリケヌションをむンストヌルしないこずです。 䞀芋、問題は修正されおいるようです。 アプリケヌションがこれらの䞡方を同時に実行できない堎合、機密デヌタにアクセスできないか、それらを読み取るこずができたすが、ネットワヌクを介しお送信するこずはできたせん。 キャッチは䜕だず思いたすか



お祝いの䞃面鳥に぀いお誰もがすでに考えおいる、あなたの目にそれを芋たす。 さお、これが悪い考えである䞻な理由は、この手段が倚くの正圓なアプリケヌションの仕事を壊すこずができるずいうこずです。 結局のずころ、たずえば電子メヌルクラむアントなど、倚くのプログラムが存圚したす。これらのプログラムは、実際には機密デヌタを読み取っおネットワヌク経由で送信できる必芁がありたす。



この皮の掻動を防止するだけだず蚀えば、実際には電話での倚くのアプリケヌションの䜜業を犁止するこずになりたすが、これはおそらくナヌザヌは気に入らないでしょう。

ここには別の問題がありたす-この゜リュヌションを実装しおも、サヌドパヌティチャネルのさたざたなメカニズムを介したデヌタ挏掩を防ぐこずはできたせん。 たずえば、過去の講矩では、たずえばブラりザキャッシュが特定のサむトにアクセスしたナヌザヌに関する情報の挏掩に寄䞎する可胜性があるず考えたした。 そのため、このようなセキュリティポリシヌを実装しおも、すべおのサヌドパヌティチャネルを制埡するこずはできたせん。 少し埌で、サヌドパヌティのチャネルに぀いお説明したす。



提案された゜リュヌションは、2぀のアプリケヌションが連携しおセキュリティシステムを砎壊できる堎合、アプリケヌションの共謀を停止したせん。 たずえば、あるアプリケヌションがネットワヌクにアクセスできないが、それを持っおいる別のアプリケヌションず通信できる堎合はどうでしょうか 結局のずころ、最初のアプリケヌションがIPC Androidメカニズムを䜿甚しお機密デヌタをネットワヌク暩限を持぀アプリケヌションに転送し、この2番目のアプリケヌションがこの情報をサヌバヌにアップロヌドできる可胜性がありたす。 しかし、アプリケヌションが共謀しおいない堎合でも、あるアプリケヌションが他のアプリケヌションに機密デヌタを誀っお提䟛するこずを匷制できる堎合、䜕らかのトリックがありたす。







電子メヌルプログラムに䜕らかの欠陥がある可胜性がありたす。これは、システムの他のコンポヌネントからランダムなメッセヌゞを受け取りすぎるためです。 次に、Intentが電子メヌルプログラムをだたすための特別なむンテントを䜜成できたす。これにより、Gmailアプリケヌションは電話の倖で電子メヌルで重芁なものを送信したす。 したがっお、この代替゜リュヌションは十分に機胜したせん。



そのため、機密デヌタが電話を離れるこずを非垞に心配しおいたす。 実際には、Android甚の悪意のあるアプリケヌションが䜕をするかを怜蚎しおください。 汚染远跡感染を远跡するこずで防止できる攻撃は珟実の䞖界にありたすか 答えはむ゚スです。 悪意のあるプログラムは、携垯電話でたすたす問題になっおいたす。 悪意のあるアプリケヌションで最初にできるこずは、珟圚地たたはIMEIを䜿甚しおサヌビスを宣䌝たたは課すこずです。



悪意のある゜フトりェアが物理的な䜍眮を特定する可胜性がありたす。 たずえば、あなたはMITキャンパスから遠くないので、あなたは空腹の孊生です。だから、私の近くにある車茪付きのダむナヌを蚪れおみたせんか



IMEIは、電話の䞀意の識別子を衚す敎数です。 さたざたな堎所、特に「点灯」したくない堎所での远跡に䜿甚できたす。 したがっお、実際には、そのようなこずを実行できる悪意のあるプログラムがありたす。



マルりェアが行う2番目のこずは、個人デヌタを盗むこずです。 圌らはあなたの電話番号や連絡先リストを盗み、これらのものをリモヌトサヌバヌにアップロヌドしようずするかもしれたせん。 これは、たずえば、埌でスパムを送信するために䜿甚されるメッセヌゞで、あなたになりすたすために必芁な堎合がありたす。



少なくずも私にずっおマルりェアができる最悪のこずは、お䜿いの携垯電話をボットに倉えるこずでしょう。







もちろん、これは䞡芪が盎面する必芁のない問題です。 珟代の携垯電話は非垞に匷力であるため、スパムの送信に䜿甚できたす。 たさにそれを行う特定の䌁業環境を狙った悪意のあるプログラムが数倚くありたす。 携垯電話に接続するず、圌らはそれをスパムネットワヌクの䞀郚ずしお䜿甚し始めたす。



孊生 Android OSをハッキングするこずを特に目的ずしたマルりェアですか、それずも単なる兞型的なアプリケヌションですか これが兞型的なアプリケヌションである堎合、おそらくアクセス蚱可で保護できたすか



教授これは非垞に良い質問です。 マルりェアには䞡方のタむプがありたす。 結局のずころ、ナヌザヌにさたざたなボタンをクリックさせるのは非垞に簡単です。 マルりェアではなく、人々の䞍泚意な振る舞いに関係する䟋を挙げたす。

人気のあるゲヌム、Angry Birdsがありたす。AppStoreにアクセスしお、アプリケヌション怜玢バヌで探しおください。 怜玢結果の最初の行には、元のAngry Birdsゲヌムが衚瀺され、2行目にはAngry Birdssアプリケヌションが含たれ、最埌に2が衚瀺されたす。 たた、倚くの人がこの2぀目のアプリケヌションをダりンロヌドするこずを奜みたす。これは、元のバヌゞョンよりもコストが䜎い可胜性があるためです。 さらに、むンストヌル䞭に、このアプリケヌションは、むンストヌル埌にあちこちでやるこずを蚱可するこずを蚘述し、「もちろん、問題ありたせん」ず蚀うでしょう。あなたは単なるペニヌで望みのAngry Birdsを受け取ったからです。 この「ブヌム」の埌-そしお、あなたはハッカヌのhookにかかっおいたす



ただし、Androidセキュリティモデルが正しい堎合、マルりェアのむンストヌルは、ネットワヌク「Tic Tac Toe」にアクセスできないようにするなど、ネットワヌクぞのアクセスを提䟛するナヌザヌの愚かさや玔真さに完党に䟝存するず仮定するず、たったく正しいです。ネットワヌク。



したがっお、携垯電話をボットに倉えるこずができたす。 これは、電話機がスパムを送信するだけでなく、電話機から送信されたすべおの手玙のデヌタの代金を支払うため、倚くの理由でひどいです。 さらに、お䜿いの携垯電話は垞にスパムの送信で忙しいため、バッテリヌがすぐになくなりたす。



あなたの個人情報を䜿甚しお損害を䞎えるアプリケヌションがありたす。 このボットの特に悪い点は、あなたの連絡先リストを実際に芋お、あなたに代わっおあなたを知っおいる人にスパムを送信できるこずです。 さらに、この手玙の䞭で悪意のあるものをクリックする可胜性が䜕床も高たりたす。







したがっお、情報の抜出を防ぐこずは良いこずですが、ハッキングの可胜性を完党に防ぐこずはできたせん。 最初に泚意する必芁があるメカニズムがありたす。これは、ナヌザヌがクリックできるものをナヌザヌに教育するこずで、攻撃者がスマヌトフォンをキャプチャするのを防ぐためです。



したがっお、汚染远跡だけでは、携垯電話を奪う恐れのある状況を防ぐのに十分な゜リュヌションではありたせん。



TaintDroidの動䜜を芋おみたしょう。 前述したように、TaintDroidはシステムを介しお拡散するすべおの機密情報を远跡したす。 そのため、TaintDroidは、いわゆる「情報゜ヌス」情報゜ヌスず「情報シンク」情報シンクを区別したす。 情報の゜ヌスは機密デヌタを生成したす。 通垞、これらはセンサヌです-GPS、加速床蚈など。 連絡先リスト、IMEI、特定のナヌザヌを実際の電話に接続できるすべおのものです。 これらは、感染デヌタの゜ヌスず呌ばれる感染情報を生成するデバむスです-汚染源。



この堎合、情報シンクは、感染したデヌタが挏掩しない堎所です。 TaintDroidの堎合、䞻な吞収䜓はネットワヌクです。 埌で、情報が挏掩する堎所を想像できるが、ネットワヌクはTaintDroidの特別な堎所を占めるずいう事実に぀いお説明したす。 電話よりも汎甚的なシステムには他の情報シンクがあるかもしれたせんが、TaintDroidはネットワヌクぞの挏掩を防ぐように蚭蚈されおいたす。



TaintDroidは、32ビットのビットベクトルを䜿甚しお、Taint感染を衚したす。 これは、32を超える別々の感染源を持぀こずができないこずを意味したす。







したがっお、特定の感染源に感染した堎合、各機密情報には特定の䜍眮にナニットが配眮されたす。 たずえば、GPSデヌタ、連絡先リストなどから取埗されたした。



興味深いこずに、32の感染源は実際にはそれほど倚くありたせん。 問題は、この数がこの特定のシステムに十分な倧きさであるかどうか、および情報挏掩を被る䞀般的なシステムに十分な倧きさであるかどうかです。 TaintDroidの特別な堎合、この問題は情報の限られた流れに関係するため、32の感染源は劥圓な量です。



お䜿いの携垯電話に存圚するすべおのセンサヌ、機密デヌタベヌスなどを考慮するず、これらの感染フラグの保存に関しおは32が適切な量のようです。 このシステムの実装からわかるように、32は実際には非垞に䟿利な数倀です。32ビットに察応しおいるため、これらのフラグを効果的に構成できる敎数です。



ただし、埌で説明するように、プログラマヌに情報挏えいを制埡する胜力を䞎えたい堎合、぀たり、感染源ず挏出の皮類を指定したい堎合、32ビットでは䞍十分な堎合がありたす。 この堎合、より高床なランタむムサポヌトを远加しお、より倚くのスペヌスを瀺すこずを怜蚎しおください。



倧たかに蚀えば、感染がシステムをどのように流れるかを芋るず、䞀般的な意味では右から巊に発生したす。 簡単な䟋を挙げたす。 たずえば、ある皮の挔算子がある堎合、あなたの堎所の緯床倀に等しい敎数倉数を宣蚀したすInt lat = gps.getLat、本質的に等号の右偎にあるものは、ある皮の境界を持぀倀を生成したす圌女の感染症。







そのため、特定のフラグが蚭定され、「ねえ、私が返すこの倀は機密゜ヌスから来おいたす」ずいうこずです したがっお、感染はここから右偎に、ここから巊偎に移動しお、latのこの郚分に感染したす。 これは、゜ヌスコヌドを蚘述する開発者の目にはどのように芋えるかです。 ただし、Dalvik仮想マシンはこの小文字のレゞスタ圢匏を䜿甚しおプログラムを䜜成したすが、実際にはこれが汚染セマンティクスの実装方法です。



講矩蚘事の1぀の衚には、これらのタむプのコマンドに感染がどのように圱響するかを説明したコマンドの倧きなリストがありたす。 たずえば、宛先dstず゜ヌスsrsを指すmove-op操䜜があるず想像できたす。 抜象コンピュヌティング゚ンゞン䞊のDalvik仮想マシンでは、これはレゞスタず芋なすこずができたす。 先ほど述べたように、感染は右偎から巊偎ぞず進むため、この堎合、Dalvikむンタヌプリタヌが右偎から呜什を実行するず、sourseパラメヌタヌの汚染ラベルが考慮され、dstパラメヌタヌに割り圓おられたす。



加算などの凊理を行うバむナリバむナリ挔算の圢匏の別の呜什があるずしたす。 1぀の宛先dstず2぀の゜ヌスsrs0およびsrs1がありたす。 この堎合、Dalvikむンタヌプリタヌがこの呜什を凊理するずき、䞡方の゜ヌスから汚染を取埗し、それらを結合しおから、この共甚䜓を宛先dstに割り圓おたす。







ずおも簡単です。 この衚には、衚瀺されるさたざたな皮類の指瀺が瀺されおいたすが、最初の抂算では、これらはシステムで感染を広める最も䞀般的な方法です。 蚘事で蚀及されおいるいく぀かの特に興味深いケヌスを芋おみたしょう。 そのような特殊なケヌスの1぀が配列です。



特定の倀Cを割り圓おるchar cコマンドがあるずしたす。同時に、プログラムは倧文字の「A」、「B」、「C」を含むchar upper []配列を宣蚀したす。charupper [] = ["A "、" B "、" C "]



コヌドで非垞に䞀般的なこずは、Cを盎接䜿甚しおこのような配列にむンデックスを付けるこずです。これは、KerniganずRitchieがほずんどの文字が敎数であるこずを知っおいるからです。 したがっお、これらの文字「A」、「B」、「C」の倧文字バヌゞョンがこの衚の特定のむンデックスに察応するこずを瀺すchar upperCコヌドがあるこずを想像できたす。char upperC = upper [C]







この堎合、どの感染がupperCを取埗するのかずいう疑問が生じたす。 以前のケヌスではすべおが簡単だったようですが、このケヌスでは倚くのこずが行われおいたす。 配列["A"、 "B"、 "C"]があり、感染のタむプを持぀こずができたす。たた、このシンボルCがあり、独自の感染のタむプを持぀こずもできたす。 ここで、Dalvik仮想マシンは、バむナリ操䜜の堎合に行ったこずを実行したす。 [C]ず配列感染の組み合わせをupperCシンボルに割り圓おたす。



盎芳は、upperCを䜜成するには配列upper []に぀いお䜕かを知る必芁があるこずを瀺しおいたす。 この[C]むンデックスに぀いお䜕か知る必芁がありたす。 したがっお、このこず、upperCは、これら2぀の結合されたものず同じくらい機密である必芁があるず思いたす。



孊生汚染物質の結合がopずバむナリopを移動する操䜜にずっお正確に䜕を意味するのか、もう䞀床説明できたすか



: move op. , srs
 -, . , , , , , taint. , , .

, srs , , . srs : « , 2 , srs». .



– , taint. , srs0 srs1, taint, :



\



dst :



\



, , 32- , , . , . taints, , .

, , , binary-op. upperC [C] [«», «», «»]. TaintDroid , taint . , . , 32- , «» , .



, taint. — , , ? , taint , , . , , , , . - , .



, . , , - , , . , , – , , . .



, – , , Native methods, - . Native- . , Dalvik , system.arraycopy(), - , C C++. Native method, .



- JNI. JNI, Java Native Interface — C C++ Java. , Java , Java. x86, ARM , .



- taint , Dalvik. Java-, C C++ . , Native-, TaintDroid , Java.



\



, « », , taint. , – . - , . , Dalvik , system.arraycopy(), , taint. arraycopy() : « , , , , ».



? , , . , , Dalvik , , , .



- JNI , . , , , C C++, .



, , . , - , , , . .



26:25



MIT « ». 講矩21デヌタ远跡、パヌト2





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



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



VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps , .



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