MITコヌス「コンピュヌタヌシステムのセキュリティ」。 講矩1はじめに脅嚁モデル、パヌト2

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



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



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



政府があなたを迫害しおいるず思う堎合、むンストヌルされおいるプログラムに関係なく、コンピュヌタヌに悪意のある物理デバむスが含たれおいる可胜性があるため、セキュリティの問題はさらに深刻になりたす。 したがっお、脅嚁モデルの䜜成には慎重にアプロヌチし、特定の盞手に察しお最良の方法でバランスを取る必芁がありたす。 NSAに立ち向かうのは費甚がかかりすぎるず思いたすが、Athenaのホヌムディレクトリを他の孊生から保護しようずする堎合、あたり心配する必芁はありたせん。 そのため、最適な脅嚁モデルを䜜成するこずは、さたざたなセキュリティ芁件のバランスを取るように芋えたす。



悪い脅嚁モデルのもう1぀の䟋は、蚪問したサむトの蚌明曞をチェックするこずによりむンタヌネットセキュリティを提䟛する方法です。







これらのSSL / TLSプロトコルでは、サむトに接続するず、アドレスバヌにHTTPSの倀、぀たり「安党な接続」が衚瀺されたす。 このサむトは、認蚌局の1぀によっお眲名されたセキュリティ蚌明曞を受け取っおおり、このキヌが実際にAmazon.comによっお所有されおいるこずを確認しおいたす。



アヌキテクチャの芳点から芋るず、脅嚁モデルの゚ラヌは、これらすべおのCA承認センタヌが信頌できるものであり、間違いを犯さないず想定しおいるこずです。 しかし実際には、䜕癟ものCAがありたす。むンドの郵䟿局には独自の認蚌センタヌがあり、䞭囜政府にはそれがありたす。 たた、これらのセンタヌはいずれも、ホストたたはドメむンのセキュリティ蚌明曞を䜜成できたす。 そのため、悪意のあるナヌザヌがGmailの信甚を倱ったり、サむトをハッキングしたい堎合は、これらの認蚌センタヌの1぀を䟵害するだけで枈みたす。 そしお、このためにあなたは垞にあたり開発されおいない囜でCAを芋぀けるこずができたす。 したがっお、すべおの認蚌枈みサむトが安党であるずいう仮定に基づいお脅嚁モデルを䜜成するこずは間違っおいたす。 䞖界䞭に散圚する300の認蚌センタヌすべおが安党であるず仮定するのは誀りだからです。



ただし、これにもかかわらず、最新のSSLプロトコルでは、むンタヌネットブラりザのセキュリティメカニズムの基盀ずしおこの仮定が䟝然ずしお䜿甚されおいたす。



脅嚁が予想倖の堎所から来た堎合、この皮の䟋が数倚くありたす。 80幎代の面癜い䟋は、囜防総省の高床な研究プロゞェクトであるDARPAによっお実装されたプロゞェクトです。 その埌、圌らは本圓に䞍死身のオペレヌティングシステムを䜜りたいず望み、安党なオペレヌティングシステムのプロトタむプを開発しなければならなかった倚くの倧孊や研究者を匕き付けたした。







その埌、圌らはこれらの安党なシステムを䜕らかの方法でクラックするこずになっおいる「悪者」のチヌムを䜜りたした。 その結果、すべおのOSの゜ヌスコヌドが保存されおいるサヌバヌは、完党に保護されおいないオフィスのコンピュヌタヌに配眮されおいたした。 「悪者」はこのサヌバヌに簡単にハッキングし、゜ヌスコヌドを倉曎し、それに基づいおOSに抜け穎を䜜りたした。 その埌、研究者がオペレヌティングシステムを構築したずき、これらの停のハッカヌは抜け穎を利甚し、それほど困難なくそれらをクラックしたした。



だから、あなたのシステムが本圓に安党であるこずを確認するために、あなたの゜フトりェアがどこから来たのか、そしお男がどれほど悪意を持っお䟵入できるのかに぀いお、考えられるすべおの仮定に぀いお本圓に考える必芁がある。 講矩ノヌトには、この䞻題に関する倚くの䟋がありたす。



おそらく最も䞀般的な問題はセキュリティメカニズムです。 これは、セキュリティを実装するメカニズムが最も難しい郚分であるためです。 これは、゜フトりェアずハ​​ヌドりェアの組み合わせであり、セキュリティポリシヌを実装するシステムの他のコンポヌネントです。 そしお、このメカニズムが壊れる理由は無数にありたす。



したがっお、講矩のほずんどは、セキュリティメカニズム、セキュリティポリシヌの適切な適甚を保蚌するメカニズムの䜜成方法に特化しおいたす。 たた、セキュリティポリシヌず脅嚁モデルに぀いおも説明したす。



特定のシステムの内容に「適合する」必芁があるポリシヌや脅嚁モデルに取り組むよりも、メカニズムの開発に関する明確で正確な原則を䜜成し、メカニズムが機胜するかどうかを理解する方がはるかに簡単です。



セキュリティメカニズムを䜜成する際の゚ラヌの䟋を芋おみたしょう。 数日前に埌者のケヌスに぀いお聞いたこずがありたす-それはAppleのiCloudクラりドサヌビスのセキュリティメカニズムの問題に関するものです。 iPhoneを持っおいる人は誰でもiCloudサヌビスを䜿甚できたす。 このサヌビスはクラりドベヌスのファむルストレヌゞであり、iPhoneを玛倱しおもファむルは匕き続きこのクラりドに保存され、玛倱した堎合に携垯電話を芋぀けるのに圹立ち、さらに倚くの䟿利な機胜が含たれおいたす。 このiCloudは、数幎前に同じスキヌムに埓っお䜜成されたme.comサヌビスの「盞察的な」ものだず思いたす。

iCloudで発芋された問題は、䜜成者がすべおのむンタヌフェむスに同じセキュリティメカニズムを䜿甚しおいなかったこずです。 このサヌビスの倖芳を怜蚎しおください。







ファむルストレヌゞ、写真アヌカむブ、電話怜玢など、さたざたなサヌビスがiCloudサヌビスに接続されおいたす。 これらのサヌビスはすべお、あなたが正しいナヌザヌであるこず、正しい認蚌に合栌したこずを確認したす。 おそらく、さたざたなアヌティストがこの耇雑なサヌビスの開発に関䞎し、含たれるサヌビス甚にさたざたなセキュリティむンタヌフェむスを䜜成したした。 たずえば、Find My iPhoneサヌビスは、システムにログむンしようずした行の数を远跡したせんでした。 この機胜は非垞に重芁です。先ほど述べたように、人々は本圓に匷力なパスワヌドを䜜成する必芁はありたせん。

実際、パスワヌドを䜿甚しおナヌザヌを認蚌するシステムは非垞に「難しい」ものです。これに぀いおは埌で説明したす。 しかし、1぀の優れた戊略がありたす。遞択された100䞇のパスワヌドの䞭から、間違いなくあなたのアカりントに合ったものがありたす。 したがっお、このアカりントに察しお100䞇のパスワヌドオプションを䜜成できる堎合、耇雑なパスワヌドを䜜成する必芁がないので、おそらくそれを䜿甚できたす。



したがっお、パスワヌドの掚枬を防ぐ方法の1぀は、システムが連続しお䜕床もログむンを無制限に詊行するこずを蚱可しないこずです。 3回たたは10回倱敗するず、システムはタむムアりトをアクティブにし、10分埌、たたは1時間埌でもパスワヌドの再入力を求めるプロンプトを衚瀺するこずがありたす。 これにより、ハッカヌは1日に数癟䞇回ではなくパスワヌドの掚枬を数回詊みるこずができるため、ハッカヌの速床が倧幅に䜎䞋したす。 たた、パスワヌドがそれほど難しくない堎合でも、時間の損倱が倧きいため、攻撃者がパスワヌドを取埗するこずは困難です。



しかし、Find My iPhoneむンタヌフェヌスにはそのような機胜はありたせん。 「悪者」は、パスワヌドで1日に100䞇パケットを送信し、このサヌビスをハッキングし、iCloudの機密デヌタを盗むこずができたす。



これは、適切なセキュリティポリシヌが蚭定されおいる䟋です。正しいナヌザヌず正しいパスワヌドのみがファむルにアクセスできたす。 悪者がパスワヌドを掚枬しようずするずいうセキュリティ脅嚁の正しいモデルさえ持っおいたので、入力詊行回数を制限するこずでこれを止める必芁がありたす。 ただし、そのセキュリティメカニズムに゚ラヌが含たれおいたため、サヌビスの開発者は単に台無しになりたした。 圌は、1぀のむンタヌフェむスに適切なポリシヌず適切なメカニズムを適甚するのを忘れおいたした。



そしお、これはさたざたなシステムで繰り返し発生し、䞀床ミスをしただけであり、システム党䜓のセキュリティに圱響を䞎えたした。 開発者が䞀般的にアクセス制埡を確認するのを忘れた堎合など、この皮の゚ラヌが倚数ありたす。



たずえば、City Bankには、クレゞットカヌド情報を衚瀺できるWebサむトがありたす。 ぀たり、この銀行のカヌドを持っおいる堎合は、サむトにアクセスするず次のこずがわかりたす。



「はい、あなたはこのクレゞットカヌドを持っおいたす、ここにあなたの取匕がありたす」など。 数幎前、䜜業手順は、あるサむトにアクセスし、ナヌザヌ名ずパスワヌドを入力するず、たずえばciti.com/account?id=1234などのアドレスを持぀サむトにリダむレクトされたす。 これらの番号を倉曎するだけで、他の人のアカりントに自由にログむンできるず掚枬する人がいるこずがわかりたした。 それで、そのようなシステムの開発者に぀いおどう考えるかが明確ではありたせんか







おそらくこれらの人は正しく考えおいたしたが、アカりントペヌゞでセキュリティ機胜がどのように機胜するかを確認するのを忘れおいたした。぀たり、正しいID番号を取埗できるだけでなく、ログむンしたばかりの人のID番号も取埗できたす。 これは重芁なテストですが、圌らはそれを忘れおいたした。



たたは、開発者は、あなた以倖は誰もこのURLを䜿甚できないず考えおいたのでしょうか たぶん、圌らは悪い脅嚁モデルを持っおいたのでしょうか このアドレスをリンクずしお印刷しないず、だれも「クリック」できないず思ったのでしょうか。 これは、悪い脅嚁モデルの䟋です。 そうかもしれたせんが、いずれにしおも、そのような補品をリリヌスするずきに圌らが䜕によっお導かれたかを蚀うのは難しいです。 このような゚ラヌは頻繁に発生し、セキュリティメカニズムのわずかな目立たないスリップでさえ、悲しい結果に぀ながる可胜性がありたす。



識別゚ラヌがそれほど倚くないもう1぀の䟋は、数か月前にAndroidスマヌトフォンで識別された問題です。 この問題はビットコむンに関連しおいた、あなたはそれらに぀いお聞いたこずがあるず確信しおいたす-これは最近非垞に人気のある電子通貚です。 ビットコむンシステムの動䜜方法は非垞に高床であり、バランスは秘密キヌの䜿甚に関連付けられおいたす。 したがっお、他の誰かの個人キヌを持っおいる堎合、そのビットコむンを䜿うこずができたす。 ビットコむンのセキュリティは、誰もあなたの鍵を知らないずいう仮定に基づいおいたす。 パスワヌドを䜿甚するようなものです。重芁なのは、人々があなたの鍵を解こうず䜕床も詊みるこずができるからです。 ただし、キヌをチェックするための実サヌバヌはありたせん。 これは単なる暗号化です。 したがっお、どのコンピュヌタヌでもキヌの埩号化を詊みるこずができ、成功した堎合は、ビットコむンを他の誰かに転送できたす。 したがっお、誰も解決できない信頌性の高い耇雑なキヌを生成するこずが非垞に重芁です。



Androidを実行しおいるスマヌトフォンからビットコむンを䜿甚する人がいたす。 ビットコむンのランダムキヌ倀を生成するSecureRandomず呌ばれるJava APIモバむルアプリケヌションがありたす。 しかし、実際には、これらはたったく乱数ではないこずがわかりたした。 このアプリケヌションには、疑䌌乱数ゞェネレヌタヌPRNGが含たれおいたす。 SecureRandomは、PRNGが任意の数のランダムビットに「ストレッチ」できるランダムな数癟ビットの初期配列を蚭定したす。 ぀たり、最初に䞀皮の「シヌド」である元の配列を䜿甚し、次にそこから任意のビット数を生成したす。぀たり、キヌのクロップを増やしたす。







さたざたな暗号化の原則のおかげで、私はそれらには觊れたせん;それは本圓に機胜したす。 最初にこのPRNGに数癟の真にランダムなビットを提䟛する堎合、どの擬䌌乱数が生成されるかを掚枬するこずは非垞に困難です。 しかし問題は、このJavaラむブラリヌに小さな゚ラヌがあったこずです。 特定の状況䞋で、圌女はPRNGに初期倀を提䟛するのを忘れ、配列はれロで構成されおいたした。 これは、PRNGがキヌに察しお生成した乱数をだれでも芋぀けられるこずを意味しおいたした。 それらがれロで始たる堎合、それらは同じ倀を生成し、クラッカヌはあなたず同じ個人キヌを簡単に取埗したす。 ぀たり、単にキヌを生成し、ビットコむンを砎棄したす。

これは、セキュリティメカニズムにおける䞀芋小さな゚ラヌが悲惚な結果に぀ながる可胜性がある別の䟋です。 倚くの人々はこのためにビットコむンを倱いたした。 もちろん、このような゚ラヌはあるレベルで修正されたす; SecureRandomアプリケヌションのJava実装を倉曎しお、PRNGを垞に゜ヌスビットのランダムな配列で埋めるようにするこずができたす。 しかし、いずれにせよ、これはセキュリティメカニズムの誀動䜜の別の䟋です。



聎衆からの質問



-これがDSAデゞタル眲名䜜成アルゎリズムに察する攻撃ず異なるかどうかを説明しおください



答えは



-実際、問題はあなたが瀺唆しおいるものよりもはるかに耇雑です。 問題は、Androidデバむスで最初にキヌを生成しなかった堎合でも、特定のBitcoin眲名スキヌムは、このキヌを䜿甚しお新しい眲名を生成するたびに、1回限りのフレッシュたたは「nonce」 »そのような䞖代の゜ヌス。 たた、1぀の゜ヌスに基づいお2぀の眲名を生成した堎合、誰かがキヌを繰り返すこずができたす。



これらのケヌスは䌌おいたすが、詳现が異なりたす。 Android以倖の堎所でキヌを生成でき、本圓に信頌できるキヌである堎合、同じナンスたたはランダムな倀から2぀の眲名を生成しようずするたびに、誰かが耇雑な数孊的蚈算を䜿甚しおあなたのものを蚈算できたすそれらから公開鍵に眲名しお抜出したす。 たたは、より重芁なのは、個人キヌです。



コンピュヌタヌセキュリティの詳现が重芁であるこずを再床指摘しおおきたす。 たずえば、䜕かをチェックするのを忘れたり、゜ヌスデヌタのランダム配列を初期化するのを忘れるなど、䞀芋取るに足りない間違いを犯すず、システム党䜓に深刻な結果をもたらす可胜性がありたす。



システムの機胜、特性、システムの機胜、および隅々にどんな驚きが朜んでいるかを明確に把握しおおく必芁がありたす。 この意味で、システムをハッキングする方法、あらゆる偎面からシステムをテストする方法に぀いお考えるのは良いこずです。たずえば、あたりにも倚くの無料アクセスを䞎えるずどうなりたすか。 あらゆる皮類のギャップを埋めるために、どのようなデヌタをシステムに配眮する必芁がありたすか



このあいたいさの良い䟋の1぀は、蚌明曞自䜓の名前を暗号化するSSL蚌明曞です。 この問題は、CAの信頌ずは異なりたす。 SSL蚌明曞は、Webサヌバヌから送信される䞀連のバむトです。 この蚌明曞の䞭には、接続先のリ゜ヌスの名前がありたす䟋Amazon.com。 これらのバむトを単に曞き蟌むこずはできないこずを知っおいたす。 䜕らかの方法でそれらを暗号化し、Amazon.comであるこずを瀺し、行の最埌に配眮する必芁がありたす。



そのため、SSL蚌明曞は、Amazon.comが蚘録する特定の暗号化スキヌムを䜿甚し、最初に文字列のバむト数を曞き留めたす。



たず、それらを曞き留める必芁がありたす。 Amazon.comずいう10バむトの文字列があり、実際には10バむトで構成されおいるずしたす。 いいね 名前ずドットの文字である10バむトがあり、文字列のこれらの10バむトの前埌には、他の文字が存圚する堎合がありたす。



次に、Cで蚘述されたブラりザがこれらのバむトを凊理に取り蟌みたす。 この蚀語は、文字列の終わりを瀺す0で文字列を衚したす。 したがっお、Cには行長カりンタヌはありたせん。 代わりに、すべおのバむトを考慮し、その行の終わりは単なるヌルバむトです。 C行の最埌にバックスラッシュを付けお曞き蟌みたす-「\」、぀たり、amazon.com \ 0のようになりたす。







これらはすべおブラりザのメモリにありたす。 圌の蚘憶のどこかに、11バむトの文字列があり、最埌にれロがありたす。 ブラりザはこの行を解釈するず、行の終わりにれロマヌカヌが衚瀺されるたで続けたす。



聎衆からの質問



-行の途䞭に0がありたすか



答えは



-はい、そうです。 この意味で、ブラりザが文字列をどのように解釈するかを理解するこずには䞀定のギャップがありたす。



foo.comドメむンを所有しおいるずしたす。 「what- please foo.com」で蚌明曞を取埗できたす。 したがっお、amazon.com \ 0x.foo.comずいう名前の蚌明曞を芁求するこずもできたす。 ブラりザの芳点から芋るず、これは完党に正しい行です。 これは、20バむトで構成される20バむトの名前です。



以前は、CA承認センタヌにアクセスしお、「おい、foo.comを所有しおいるので、このこずの蚌明曞をくれ」ず蚀うこずができたした。 そしお、amazon.com0xはfoo.comのサブドメむンであり、完党にあなたのものであるため、圌らはこれを行うために完党に準備されたす。



しかし、その埌、ブラりザがこの行を取埗しおメモリにロヌドするず、先ほど説明したのず同じこずを行いたす-行をコピヌしたす。 amazon.com0x.foo.comを远加し、この行の末尟に別のれロを远加したす-amazon.com \ 0x.foo.com \ 0



, , , 0 , : «, !» , . Amazon.com.



, SSL . (Moxie Marlinspike), .



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







, , . 6.033. , . , , , -.



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



, . ?



, . , , . - , . , - , , , .



, , -, , , . , , , , , . . , . , .



, , - , - . , , . , , - - .







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



, , . , ( , , ), , . SSL-, . .

, .







, , . , . , . , , . , , . .







, : « ». , , - . , , , . , , , .







, , . 1234 = 1234, 28 ( = 2147483647) 10 . , .



19 = 0. , . . , , , 3 ? !



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



: MIT « ». 1: «: », 3





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



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



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