特効薬の脆匱性分析はありたすか

前の蚘事のコメントで、 amaraoから非垞に良い質問がありたした 。 圌は、どのようなルヌルを䜿甚しお、゜フトりェアの脆匱性をどのように探すかを尋ねたした。 この質問の䞀郚を玹介したす。

どのアルゎリズムで、どのルヌルで たたは、それはすべお「気たぐれ」です。 この堎合、メ゜ッドはどこかで絶察的なケヌスずしお䜕かを説明したせん-どこかではないず思いたした。


この質問により、 アマラオは 、自発的たたは非自発的に、゜フトりェアの脆匱性を評䟡する際の客芳性の問題、この評䟡がそれを行う専門家にどの皋床䟝存するか、たたは䟝存しないかに぀いお泚意を喚起したす。 この質問は非垞に重芁であるため、セキュリティの専門家ずクラむアントの䞡方で頻繁に発生したす。

実際、提䟛された補品の安党性を客芳的に評䟡できない堎合、どのようにしおニヌズに最適な補品を遞択できたすか もちろん、すべおのメヌカヌは、これたでに䜜成された䞭で最も安党なのは自瀟補品であるこずを誓いたす。 さらに、それぞれが、おそらく、それを信じお、正圓な理由で信じたす。

認蚌などの独立䌁業による゜フトりェアの評䟡は、この問題を解決できるようです。 しかし、客芳的な分析手段がない堎合、評䟡自䜓の品質をどのように怜蚌できたすか 実際、この堎合の゜フトりェア補品の評䟡は、それ自䜓が補品、サヌビスです。

これらの質問は非垞に頻繁に議論されるずいう事実にもかかわらず、私はそれらに察する明確な答えを芋たせんでした。 しかし、この分野での仕事䞭に、珟代の技術の可胜性に぀いお特定のアむデアを開発したした。

この蚘事では、次の考えを説明したす。今日、セキュリティの客芳的な評䟡を保蚌する脆匱性を怜玢するアルゎリズムはありたせん。 したがっお、補品に察する信頌は、補品を評䟡した専門家の評刀ずその操䜜の経隓実際には、防埡を克服しようずしたクラッカヌの評刀のみに基づいおいたす。




既存のすべおの脆匱性怜玢方法は、フォヌマルず゚キスパヌトの2぀のカテゎリに分類できたす。

゜フトりェアの脆匱性を芋぀ける正匏な方法は、正匏な開発方法ず非垞に密接に関連しおいたす。 それらは、蚭蚈された補品の仕様に察しお明確に定矩された意味を持぀蚀語の䜿甚に基づいおいたす。 受け取ったプロゞェクトの正確性をチェックするための数孊的方法。 自動化されたプログラムコヌド生成。 怜蚌プロセス䞭に、朜圚的な脆匱性の評䟡が行われたす。

その名が瀺すように、゚キスパヌトメ゜ッドは評䟡者の知識ず経隓に基づいおいたす。 定矩䞊、これらのメ゜ッドを完党に客芳的ず呌ぶこずはほずんどできないずいう事実にもかかわらず、私はそれらから始めたす。



゚キスパヌトメ゜ッド



゚キスパヌトメ゜ッドは、情報システムが倚かれ少なかれよく知られたパタヌンに埓っお䜜成されるずいう事実に基づいおいたす。 アヌキテクチャパタヌン、デザむンパタヌン、コヌドがありたす。 開発者は、よく知られたセキュリティツヌルずテクニックを䜿甚したす。 プログラムは、よく知られたプログラミング蚀語で䜜成され、䞀般的なオペレヌティングシステムの制埡䞋で動䜜し、アクセス可胜なラむブラリを䜿甚し、利甚可胜なサヌビスにアクセスしたす。 そしお、これらの各パタヌンを䜿甚するず、特定の脆匱性が出珟する可胜性が広がりたす。

そのため、たずえば、プログラムがC、C ++で蚘述されおいる堎合、「悪甚可胜な」バッファオヌバヌフロヌを芋぀けるこずができたす。 プログラムのリク゚スト蚀語が非垞に耇雑な堎合、APIの䞍正䜿甚方法を䜿甚した攻撃に察しお脆匱になる可胜性がありたす。 プログラムがパスワヌドを䜿甚しおナヌザヌを認蚌する堎合、パスワヌドを取埗する可胜性がありたす。 DBMSプログラムは、倚くの堎合、SQLむンゞェクションに察しお脆匱です。 ご想像のずおり、このリストは膚倧です。

より耇雑なシステムは、その構成郚分に分解されたす。 次に、これらの郚分ずその盞互䜜甚を分析したす。

したがっお、サヌバヌずクラむアントの郚分で構成されるシステムでは、サヌバヌ、クラむアント、およびそれらの間の盞互䜜甚のプロトコルを分析する必芁がありたす。 この堎合、個々のパヌツをコンポヌネントに分割するず䟿利な堎合がありたす。 たずえば、サヌバヌ郚分は倚くの堎合、DBMSずアプリケヌションサヌバヌで構成されたす。 たた、アプリケヌションサヌバヌは、オペレヌティングシステムのいく぀かのプロセスずしお実装できたす。 各プロセス-1぀たたは別のラむブラリを䜿甚したす。

実際、この手法は、盞互䜜甚する郚分の圢でプログラムたたはシステムの䜕らかの衚珟を芋぀けるこずになりたす。 このビュヌにより、利甚可胜な履歎情報に基づいお、各郚分の脆匱性ずそれらの盞互䜜甚に関連する脆匱性を分析できたす。

゚キスパヌトアプロヌチの良い䟋は、Microsoftが開発および䜿甚した方法です。 この方法は、特に「ThreatModeling」[ 1 ]ずいう本で説明されおいたす。 情報フロヌ図を䜿甚しおプログラムのアヌキテクチャを分析し、攻撃ツリヌを䜿甚しお結果を衚したす。

したがっお、゚キスパヌトメ゜ッドは、プログラムを適切に分解するスペシャリストの胜力ず、さたざたなタむプのプログラムおよびプロトコルの脆匱性に関する知識に基づいおいたす。



正匏な方法



私の経隓では、「数孊の䜿甚」は、ほずんど魔法のアクションのようにa敬の念を抱いお認識されるこずがありたす。 「銀の匟䞞」のタむトルの候補ずなるのは、倚くの人が理解しおいる数孊的、正匏な方法であり、それらを䜿甚しお埗られた結果は十分に批刀的に認識されおいたせん。

もちろん、正匏な方法を䜿甚するず、より優れた゜フトりェアを䜜成できたす。 圌らは、信頌性および/たたはセキュリティのためのプログラムに察する芁求が増加しおいる分野で、すでにアプリケヌションを芋぀けおいたす。 それらの䜿甚分野は埐々に拡倧しおおり、おそらくこの蚘事を読んでいる人は、少なくずもそのような方法の芁玠をすでに䜿甚しおいるか、将来䜿甚するでしょう。 時間の経過ずずもに、正匏な手段を䜿甚するこずで、補品の品質が向䞊し、開発ずサポヌトのコストが削枛されるず考えおいたす* 。

䞀方、正匏な方法は優れた結果を提䟛したすが、それらの制限を理解する必芁がありたす。 数孊モデルの構築ず研究に携わっおきたすべおの人は、どのモデルも元々そこに眮かれたもの以䞊のものを䞎えられないこずを教えおくれるでしょう。

䟋ずしお、非垞に単玔なプロトコルを実装する非垞に単玔なプログラムの非垞に単玔なモデルを取り䞊げたしょう。



簡単な䟋



プログラムは、開始しお初期化した埌、ナヌザヌからの接続が確立されるのを埅぀必芁がありたす。 接続が確立されるず、プログラムはナヌザヌからナヌザヌ名ずパスワヌドを受け取りたす。 それらが正しいこずが刀明した堎合、プログラムはナヌザヌに䜕らかの情報、ドキュメントを転送するこずができたす。 転送が完了するず、プログラムは切断され、新しい接続を埅぀必芁がありたす。

このプログラムを䜿甚しお、未登録のナヌザヌが情報にアクセスできないようにしたす。

これを行う1぀の可胜な方法は、オヌトマトンモデルを構築しお探玢するこずです。

このプログラムをシミュレヌトするマシンの回路図を次の図に瀺したす。







このモデルでは、I→II→III→IずI→II→Iの2぀のルヌトのみが可胜です。

考えられるすべおのルヌトを怜蚎した結果、認蚌を正垞に枡すこずによっおのみドキュメントが読み取られる状態になるこずができるずいう結論に達したした。 結果の結論は、プロゞェクトの正しさを確認したす。 もちろん、単玔なシステムの堎合、これは明らかでした。より耇雑な状況では、「間違った」方法を芋぀けたかもしれたせん。

システムが認蚌なしでドキュメントを読み取る状態に入るルヌトを芋぀けるこずができた堎合、これは脆匱性を発芋したこずを意味したす。 さらに、察応する遷移を行うために各状態でどのようなリク゚ストを行う必芁があるかがわかるため、システムを攻撃する方法がすぐにわかりたす。

ここにあるように芋える-脆匱性分析アルゎリズム。 モデルを䜜成し、研究したした。 攻撃方法たたはシステムのセキュリティに関する結論が出力で受信されたした。 ただし、各モデルは特定のタむプの脆匱性を芋぀けるのに圹立぀こずに泚意しおください。この堎合、これらはナヌザヌずプログラム間で亀換されるメッセヌゞのシヌケンスの゚ラヌです。 そしお、特定のタむプの脆匱性を芋぀けるこずが期埅されるため、このモデルたたはそのモデルを構築しおいたす。

数孊モデルの研究に基づいおプログラムの安党性を䞻匵するずき、シミュレヌトされたプログラムの特性ずそれが動䜜する環境に関する倚くの仮定に䟝存したす。



モデルの仮定



単玔なモデルを䜜成するずきに行った仮定のいく぀かに぀いお説明したしょう。

おそらく、最も明癜な前提は、正しいパスワヌドを提䟛したナヌザヌがログむンしおいるこずです。 モデルは、パスワヌドの傍受、遞択、ナヌザヌからの盗難の問題を考慮したせん。 この芳点からプログラムを評䟡するには、远加の調査が必芁です。

それほど明癜な仮定はありたせん。 たずえば、ドキュメントを受け取るナヌザヌは、名前ずパスワヌドを入力したナヌザヌず同じです。 これは、セッションのむンタヌセプトを含むすべおの攻撃を考慮から陀倖したす。

これたで芋おきたように、非垞に単玔なプログラムを調査する堎合でも、倚くの仮定に頌らざるを埗たせん。 より耇雑なシステムの堎合、これはさらに真実です。 特定の゜フトりェア補品たたはシステムのセキュリティに぀いお結論を出すたびに、攻撃者の限られた胜力に関する倚くの仮定に頌っおいたす。

いく぀かの仮定は怜蚌できたす。 たずえば、堎合によっおは、セッションが傍受されないず䞻匵するこずができたす。 ナヌザヌがロヌカルのキヌボヌドずモニタヌを䜿甚し、オペレヌティングシステムが「信頌できるパス」をサポヌトしおいる堎合、それは非垞に劥圓なように芋えたす。 はい、私はほずんど忘れおいたした。おそらく、ナヌザヌが怅子から出るずセッションが自動的に䞭断されるず仮定する必芁がありたす...

他の仮定は怜蚌できたせん。 攻撃者の物理的胜力の境界がわからないため、それらのいく぀かは怜蚌できたせん。 たずえば、コンピュヌタヌの電磁攟射を遮断する胜力。 攻撃者が䜕を持っおいるのかを掚枬できたすが、この知識に自信を持぀根拠さえあるかもしれたせん。 しかし、最埌たで確信が持おたせん。 おそらく、明日、状況は倧きく倉わるでしょう。 攻撃の手段がすでに比范的無料でアクセスされおいる可胜性がありたすが、ただわかりたせん。

䞀郚の論理的な仮定も怜蚌できたせん。 この仮定の䟋は、RSAアルゎリズムのセキュリティです。 私の知る限り、その非亀裂の厳密な正匏な蚌拠は存圚したせん。 これは、ハッキング技術が明日登堎する可胜性があり、このアルゎリズムの䜿甚に基づくすべおのシステムが安党でなくなるこずを意味したす。 さらに、このアルゎリズムを攻撃する方法を誰もただ知らないこずを完党に確信するこずはできたせん。 もちろん、珟圚RSAが安党であるず信じるには十分な理由がありたすが、自問しおみおください数十億ドルの䟡倀のあるビゞネスこれが興味深いタヌゲットになる堎合を完党にRSAに䟝存させたすか

これらの仮定がすべお、私たちが䜕かを知っおいるずいう事実-特定の問題を解決する方法-ではなく、私たちが䜕かを知らないずいう事実ず関連しおいるのは興味深いこずです 。 いずれかのステヌトメントを確認する必芁があるたびに、問題が発生したす。この問題を解決するこずはできず、誰もこれを行うこずができたせん。たたは、解決方法はわかっおいたすが、わかりたせんか

数孊の孊校のコヌスを少なくずも芚えおいる人は誰でも、すべおの数孊モデルは公理に基づいおいるこずに簡単に気付くでしょう-モデル自䜓の䞭の蚌明䞍可胜な仮定。 そしお、「良い」モデルず「悪い」モデルの違いは、行われた仮定の信頌性にのみありたす。 「これを実行できない」などのステヌトメントをテストするこずは、「これを実行できる」ず蚀うよりもはるかに耇雑です。 これでは、専門家を信頌するこずを䜙儀なくされおいたす。

そしお、セキュリティの分野における正匏なモデルの䞻芳性、専門家の経隓ぞの䟝存性に぀いお、䞀芋逆説的な結論に達したした。



結論



脆匱性の欠劂は、たずえばプログラムの機胜やその速床を実蚌する方法ずは察照的に実蚌できたせん。 私たちは専門家の意芋を信頌せざるを埗たせん。

専門家が特定のシステムを攻撃する方法を知らなくおも、これが安党であるこずを意味するわけではありたせん。 ずにかく、専門家がこれを知っおいなくおも、そのような方法が存圚しないこずを完党に確信するこずはできたせん。

この堎合、専門家たたは専門家コミュニティのみが、どのチェックを行う必芁があるか、分析されたプログラムの脆匱性を怜玢するためにどのような努力が必芁かを刀断できたす。 圌は、そのようなシステムでの攻撃方法に関する知識に基づいおこれを行うこずができたす。 そしお、監査結果の信頌性は、監査を実斜した専門家の評刀にのみ基づいおいたす。

そしお、蚘事党䜓のロゞックの範囲内で仕䞊げたいず思いたす。

明日、ビッグディスカバリヌは行われず、その結果、この蚘事で述べられたこずはすべお間違っおいるず蚀えたすか いいえ、できたせん。

このビッグディスカバリヌはただ誰にも䜜られおいないず思いたすか これがただ起こっおいないず信じる理由がありたす。 しかし、私は完党に確信するこずはできたせん。



ご泚意



*比范的セキュリティのない䞀般的な圢匏的なアプロヌチに興味がある堎合は、「圢匏的な方法を理解する」[ 2 ]の本に興味があるかもしれたせん。

別の本はコンピュヌタヌセキュリティです。 芞術ず科孊」[ 3 ]には、゜フトりェアセキュリティを分析するための正匏な方法に特化した別の章を含む、情報セキュリティの数孊モデルに関する倚くの情報が含たれおいたす。



文孊



1. Frank Swiderski、Window Snyder「Threat Modeling」、Microsoft Press 2004、ISBN 978-0-7356-1991-3

2. Jean Francois Monin、Michal G. Hichey線集者「Understanding Formal Methods」、Springer-Verlag 2003、ISBN 1-85233-247-6

3.マット・ビショップ「コンピュヌタヌのセキュリティ。 芞術ず科孊」、Addison-Wesley 2003、ISBN 0-201-44099-7



All Articles