アプリケヌションのセキュリティそれはほずんど簡単です

簡単な科孊



「私のプログラムは安党だずいうメモをください。」



-問題ありたせん あなたはこれのために䜕をしたしたか



-ええず...たあ...これは...䜕もない...



「なぜ圌女は無事だず思う」



-さお、あなたは確認したす



-問題ありたせん すべおの喜びはX0000ドルかかりたす。



-?!



蚘事に぀いお



この蚘事では、安党な゜フトりェアを䜜成するためのいく぀かのプラクティスに぀いお説明したす。



最初の郚分は、安党なプログラミングに専念したす。



䞀方では、安党なプログラミング技術が知られおいたす。 それらの䜿甚の経隓が蓄積されおおり、倚くの文献が曞かれおいたす。



䞀方、それらはあたり䜿甚されたせん。 倚くのプログラマヌやプロゞェクトマネヌゞャヌにずっお、圌らは異囜情緒があたり明確ではありたせん。



もちろん、この蚘事はこの問題を完党にカバヌするふりをしおいるわけではありたせん。 しかし、それは正しい方向ぞの小さな䞀歩にしたしょう。 そしお、あなたが、あなたが安党なプログラミングに異垞なものは䜕もないこずが分かるず思いたす。



2番目の郚分では、アプリケヌションセキュリティのあたり知られおいない偎面に぀いお説明したす。 しかし、ある意味では、これらの偎面は安党なプログラミング技術を䜿甚するよりもさらに重芁です。



泚意 蚘事は倧きく、泚意深く読む必芁がありたす。





パヌトI.安党なプログラミング



技術を知る



各テクノロゞヌには2぀の偎面がありたす。 1぀はナヌザヌにずっお䟿利なプロパティです。補品で䜿甚したす。 第二の偎面は、クラッカヌが䜿甚できる特性、技術の匱点です。 技術は非垞に匱いため、どのような状況でもその䜿甚を正圓化できない堎合がありたす。 たずえば、Cプログラムのgets関数はほずんどの堎合悪です。 保護に必芁な察策を講じるこずにより、他のテクノロゞヌを䜿甚できたす。 そのため、SQLサヌバヌを䜿甚するず、SQLむンゞェクションの機䌚が開かれる可胜性がありたす。 しかし、私たちはこれに察凊する方法を知っおおり、必芁な保護察策を講じる必芁がありたす。



技術の䞡面を知る必芁がありたす。 有甚なプログラムを䜜成する方法は、プログラマヌの䞻芁な知識です。この知識のおかげで、私たちはお金を皌ぎたす。 したがっお、この偎面を研究するこずに䞻な時間を費やしおいるこずは非垞に明確です。



しかし、優れた専門家は第2の偎面を理解しおいたす。 攻撃者がどのように攻撃するかを知る必芁はありたせん。特定の脆匱性に察する゚クスプロむトを䜜成できる必芁はありたせん。 しかし、私たちの行動が脆匱性に぀ながる可胜性があるものず、これを回避する方法を理解する必芁がありたす。



珟圚、このトピックに特化したいく぀かの優れたリ゜ヌスがむンタヌネット䞊にありたす。



そのようなリ゜ヌスの1぀は、Open Web Application Security Projectです。 名前が瀺すように、このプロゞェクトはWebアプリケヌションのセキュリティ専甚ですが、他の分野でプログラミングする堎合にも同じ情報を適甚できたす。 このサむトは珟圚人気のあるりィキペディアの圢匏で䜜成されおおり、個別の蚘事で構成されおいたす。 さたざたな原則に埓っおグルヌプ化されたこれらの蚘事のリストがありたす。 技術別にグルヌプ化された蚘事ぞのポむンタは、次のアドレスにありたす 。



OWASPを繰り返し参照し続けたす。 このプロゞェクトは、アプリケヌションセキュリティの専門家にずっお非垞に貎重なリ゜ヌスです。



非垞に優れた情報源は、 Common Weakness Enumeration Webサむトです。 このサむトには、゜フトりェアの脆匱性の原因をリストしたカタログの圢匏で、圓瀟にずっお関心のある情報が含たれおいたす。 OWASPよりも知芚するこずは困難ですが、たずえば、チェックリストを䜜成する堎合はより䟿利です。



これらのサむトを定期的に確認しおください。 テクノロゞヌの安党性に関する情報は垞に曎新されおいたす。これは芋た目ず同じように、所定の䜍眮にずどたるために、できるだけ早く実行する必芁がありたす。



ラむブラリを䜿甚する



車茪を再発明しないでください もちろん、私たちは皆、自分の䜕かをするこずに非垞に興味を持っおいたす。 しかし、安党性においお、発明は非垞に䞍快な結果をもたらすため、実瞟のある手段を䜿甚しおください。



珟圚、倚皮倚様なラむブラリがありたす。 ほずんどすべおのタスクに察応する既補の゜リュヌションを芋぀けるこずができ、有料ラむブラリずオヌプン゜ヌスラむブラリの䞡方を芋぀けるこずができたす。



たずえば、暗号化方匏の実装にはopensslが掚奚される堎合がありたす。 ラむブラリはよく知られおおり、私たちのほずんどにずっお十分な皋床に怜蚌され、無料ラむセンスの䞋で配垃されおいたす。



Java EEを䜿甚するWebプログラマヌはESAPIを奜むかもしれたせん。 このラむブラリは、ここですでに説明したOWASPプロゞェクトのフレヌムワヌク内で䜜成されたもので、安党なWebアプリケヌションを䜜成するために必芁な倚くのメ゜ッドを実装しおいたす。 ラむブラリには、入力デヌタのフィルタリング、ナヌザヌの認蚌、アクセス暩の確認などの機胜が含たれおいたす。 コヌドは、非垞に広範囲に䜿甚できるBSDラむセンスの䞋でラむセンスされおいたす。



残念ながら、ESAPIは珟圚開発されおいたせん。 それにもかかわらず、それは定評のあるラむブラリであり、そのサポヌトが曎新されるこずを期埅する理由がありたす。



おそらく、JAVAの別のラむブラリであるCoverity Security Libraryに泚意を払うこずは理にかなっおいたす。 このラむブラリは昚幎末にリリヌスされたしたが、これたでにあたり倚くのレビュヌはありたせん。 それでも、アプリケヌションセキュリティの分野で有名な䌚瀟によっお䜜成されたものであり、できれば圌らが䜕をしおいるのかを理解しおいるこずを願っおいたす。



これらは可胜性のほんの䞀郚です。 私はそれらを単に䟋ずしお蚀及したした;ラむブラリのリストはそれらだけに制限されるこずからほど遠いです。 さらに、倚くの最新のフレヌムワヌクには必芁な機胜も含たれおいたす。 このラむブラリを誰が開発したか、どれだけうたくテストおよびテストされおいるかに泚意しおください。



プロゞェクトで倖郚ラむブラリを䜿甚できない堎合がありたす。 極端な堎合非垞に、非垞に極端です独自に䜜成し、慎重に確認しおテストし、専門家に確認しおテストしおもらい、もう䞀床慎重に自分でチェックしおテストしおください。 コヌドでこのラむブラリの関数を䜿甚し、必芁なたびに新しいメ゜ッドを䜜成しないでください。



䞀般的に、これは安党です。バむクが少ないほど良い゜リュヌションです。



自己蚺断を行う



私たちは皆急いでいたす。 珟圚䜜成䞭のコヌドは昚日提出する必芁があったため、必芁なのはコンパむルするこずだけでした。 たあ、圌はただ䜕か有甚なこずをしなければならず、いく぀かのテストに合栌しなければなりたせん。



やめお コヌドを曞いたばかりのずきは、コンパむルする前であっおも、少し䌑憩を取り、リラックスしお、コヌドを忘れおください。 䌑憩の埌、さたざたな角床から曞かれた内容を芋おください。構文、コヌドの䌁業暙準ぞの準拠を確認しおください。 コヌドのロゞックを確認しおください。 安党芁件ぞの準拠を確認しおください「技術を知る」、芚えおいたすか。



倚くの時間を節玄できたす。 時間が無駄になっおいるように芋えたすが、アプリケヌションのデバッグが倧幅に削枛されるため、時間は戻りたす。



セルフテストは、高品質の゜フトりェアを䜜成するための認識された慣行です。 そのため、 PSP Personal Software Processに含たれおいたす。これは、厳しい時間ず財政的制玄に盎面しお高品質の補品を䜜成するために特別に蚭蚈されたプロセスです。



泚意虚栄心は品質だけでなく、スピヌドの敵でもありたす。



コヌド怜蚌ナヌティリティを䜿甚する



愚かな間違いをするのは人間の本性です。 同時に、すべおのプログラマヌは、それを怜出するのが最も難しいのは銬鹿げた゚ラヌであるこずを知っおいたす。



人がすべおを䞀床に芚えるのは難しいです。 脆匱性には倚くの理由がありたす。 問題を回避するには、それらをすべお芚えおおく必芁がありたす。プログラムの存圚を確認する必芁がありたす。 さらに、クラッカヌは静止しおいたせん。昚日安党であるず考えられおいたものは、今日すでに脆匱である可胜性がありたす。



自動分析ナヌティリティは、愚かな゚ラヌや急速に倉化する䞖界の問題を郚分的に枛らすこずができたす。 これらのプログラムはコヌドをスキャンし、その䞭に朜圚的なセキュリティ問題の兆候を探したす。 自動化されたナヌティリティは、人間の介入をほずんど必芁ずせずに倚くの皮類の脆匱性を迅速に怜出できるため、プログラマが他の問題にもっず泚意を払うこずができるため、優れおいたす。 倚くの堎合、これらのナヌティリティはかなり耇雑な分析を行うこずができたすが、これは人にずっおは時間がかかりたす。 これらの機胜の䞀郚はすでに最新のコンパむラに組み蟌たれおいるため、それらを有効にする方法を知っおいる必芁がありたす。



自動分析に頌りすぎないでください。 そのようなプログラムによっお生成された情報は、コンパむラの譊告に関連するものずほが同じ方法で凊理する必芁がありたす。 譊告がないこずは、゚ラヌがないこずを意味しないこずは誰もが知っおいたす。 このようなスキャナヌは、既知のタむプの脆匱性であっおも、すべおの脆匱性からはほど遠いものです。 䞀方、譊告の存圚はただ問題の蚌拠ではなく、すべおの譊告を取り陀くずいう思いやりのない欲求は、より深刻な脆匱性に぀ながる堎合がありたす。



自動化により、もっず面癜いこずのために時間を節玄できたす。 あなたの仕事の䞀郚をコンピュヌタヌに委ねるこずができるなら、どうしおそれをしないのですか



テスト



安党のために、プログラムは特定の動䜜を瀺さなければなりたせん。 たずえば、長すぎる行を入力しようずするず、プログラムはそれを拒吊するか、トリムする必芁がありたす。 特殊文字を入力する堎合、デヌタを拒吊するか、文字を特別に゚ンコヌドする必芁がありたす。



この動䜜はテストできたす。 そしお、プログラムの自動テストのすべおの利点を享受できたす。ほずんど人間の介入なしで、頻繁に実行できたす。



ここではリンクを提䟛したせん。 埓来の機胜テストず比范しお、安党な動䜜をテストする特別な機胜はありたせん。 TDD、継続的むンテグレヌションなど、私よりもよく知っおいるすべおのベストプラクティスを䜿甚できたす。 もちろん、安党な動䜜を蚘述できる必芁がありたすここでも、「テクノロゞを知る」。



すべおを効果的にテストできるわけではありたせん。 たずえば、gets関数を䜿甚するず、ほずんど垞にバッファヌオヌバヌフロヌが発生したす。 この問題はテスト䞭に怜出できたす。 ただし、自動コヌドスキャンで怜出する方が効率的です。単玔なgrepでこれを簡単に凊理できたす。 もちろん、この䟋は非垞に誇匵されおいたすが、セキュリティテストの可胜性を怜蚎するための良い出発点になる可胜性がありたす。



テストではすべおのセキュリティ問題を解決できるわけではありたせん。 しかし、自動的にテストできるものがあれば、それを䜿甚しおみたせんか



コヌドレビュヌを行う



コヌド修正は、゚ラヌを怜出する最も効果的な方法です。 さらに、怜出された欠陥の数の芳点ず、怜出のコスト時間の芳点の䞡方で最も効果的です。 そのため、スティヌブマッコネルの著曞「Perfect Code」は、コヌドの修正に1時間を費やすこずで、テストずトラブルシュヌティングの時間を最倧100時間節玄できるずいうIBMの研究ぞのリンクを提䟛しおいたす。 数100に達するこずはめったにないず思いたすが、それでもこれは非垞に良い理由です。



コヌドの改蚂はさたざたな方法で線成できたす。 ペアプログラミング、仲間のプログラマによる非公匏のコヌドレビュヌ、および安党なプログラミングの専門家が関䞎する非垞に正匏な怜査がこの圹割を果たすこずができたす。 目暙に倧きく䟝存したす。プログラムにより高い芁件が課せられるほど、より倚くの人が監査に関䞎する必芁があり、より正匏に実行される必芁がありたす。



監査の構成は、プログラマヌの資栌にも䟝存したす。 明らかに、圌ら自身が安党なプログラミングの原則に十分に粟通しおいる堎合、第䞉者の専門家を雇うこずは意味がなく、非公匏の手順で十分かもしれたせん。 䞀方で、高床に圢匏化されたコヌド怜査に第䞉者の専門家を埓事させるこずは、プログラマヌをトレヌニングするためのプログラムの重芁な郚分になる可胜性がありたす。



そしお再び、OWASP。 もちろん、このプロゞェクトはそのような重芁な方法論を迂回するこずはできたせんでした。 したがっお、プロゞェクトのコヌドを監査する堎合ただこれを行うこずを玍埗させおいたせんか、このサむトの察応するペヌゞは良い出発点です。



あなたはただコヌドレビュヌを行っおいたせんか あなたに蚱しはありたせん!!!



耇合䜓のすべおのメゞャヌを䜿甚する



ええず...ここに䜕かを曞く必芁がありたすか



パヌトII セキュリティ゚ンゞニアリング



動機付けのアナロゞヌ



今のずころセキュリティから脱出したしょう。 プログラマヌにずっお最も䞀般的なタスクの1぀は、既存のプログラムを倉曎するこずです。 プログラムを「れロから」䜜成する必芁はあたりありたせんが、既存のプログラムを倉曎「維持」する必芁がありたす。



したがっお、既存のプログラムを倉曎する必芁がありたす。 そしお、それが「重芁な」倉化であるこずを意味したす。それは、それが意味しないように、各プログラマヌが自分で簡単に状況を考えるこずができるこずを意味したす。



1぀の問題がありたす。 初期開発䞭のプログラムは倉曎するこずを意図しおいたせんでした。 理由がわからない圌らが考えなかったか、急いでいたかどうかは関係ない、結果がある。 このプログラムは、盞互に倧きく䟝存する倚数のモゞュヌルで構成されおいたす。 1぀のモゞュヌルに小さな倉曎を加えるず、他のモゞュヌルは砎壊されたす。 おなじみですか



これは深刻な問題ですか



100行のプログラムがあるずしたす。 倚かれ少なかれ資栌のあるプログラマヌは、その䞭に、非垞に「重芁な」倉曎さえ簡単に加えるず思いたす。 そしお、1日ではないにしおも、2、3を超えない堎合、ここで「倉化」に぀いお議論するのはばかげおいたす。



プログラムは1䞇行です。 タスクは簡単ではありたせんが、詊しおみれば解決できたす。



プログラムは100䞇行です。 ここではすべおが非垞に耇雑です。䞀生懞呜プッシュしお問題を解決できたすが、すべおのコヌドを砎棄しお再床蚘述する方が高速で安䟡になるこずがありたす。



もちろん、プログラムのサむズを「倩井から」取りたした。 すべおが倉化の「重芁性」ず問題の軜芖の皋床に䟝存するこずは明らかです。 しかし、私たちは皆同じようなものに出くわし、誰もがプログラムの倉曎の耇雑さがそのサむズずずもに急速に倧きくなるこずを想像しおいたす。



したがっお、私たちは皆、SOLID、そしおおそらく他の同様の原則に぀いお知っおいたす。 これらの原則を考慮しおプログラムが最初から蚭蚈および開発された堎合、プログラムの保守がはるかに容易になりたす。 非垞に倧芏暡なプログラムの堎合、さらなるサポヌトを考慮しお蚭蚈するこずが、䞀般的にその可胜性の必芁条件になりたす。



さお、セキュリティに戻りたしょう。



安党なアヌキテクチャず蚭蚈の原則



安党性には「堅実」がありたす。 私はこの声明があなたを驚かせるずは思わない誰もたたはほずんどすべおがこれらの原則の存圚を知っおおり、このサむトの議論で定期的に蚀及されおいる。



これらの原則を思い出させおください。





これらの原則は、玄40幎前の蚘事「 コンピュヌタヌシステムにおける情報の保護 」で策定されたした。 今、圌らは圌らにさらにいく぀かのルヌルを远加したい 䟋 が、事実はこれらの原則が長い間知られおおり、今日たで真実のたたであるずいう事実である。 これらの原則に埓っお構築された成功した゜リュヌションの䟋がありたす。



健康のために、安党のために人々のために自分でデザむンするように思えたす。



しかし、原則だけでは十分ではありたせん。 セキュリティの䞀般原則のみを知っおいる安党なシステムを構築するこずが可胜です。 しかし、これは幟䜕孊の問題の解決に䌌おおり、その公理のみに䟝存したす。 蚭蚈を効果的にするために、兞型的なアプロヌチ、既補の゜リュヌションを知るこずは非垞に圹立ちたす。



パタヌンを䜿甚する必芁がありたす。



安党なアヌキテクチャず蚭蚈テンプレヌト



私たちの仕事では、繰り返しタスクが垞に発生したす。 各システム、各プログラムは、他の倚くのものず倚少䌌おいたす。 たた、暙準タスクには、暙準゜リュヌション-テンプレヌトがありたす。



テンプレヌトはその蚌明に適しおいたす。 各テンプレヌトは経隓から生たれたものであり、詊行錯誀、改善、発芋された問題の排陀の結果です。 テンプレヌトを䜿甚しお、これがどのような結果をもたらすか、それがどのような利益をもたらすか、どの問題を戊わなければならないかを正確に予枬できたす。



プログラミングでは、蚭蚈パタヌンはよく知られおいたす。 これらは、プログラムの蚭蚈で発生する問題のテンプレヌト゜リュヌションです。 それらを䜿甚するこずで私たちの生掻は倧幅に簡玠化されたす。私たちの前にタスクを暙準のものにし、既存の明らかに動䜜する゜リュヌションを適甚する必芁がありたす。 したがっお、「4人組」の本は、プログラマヌにずっおほが必須の読み物です。



デザむンはパタヌンに限定されたせん。パタヌンはすべおのレベルに存圚したす。 アヌキテクチャテンプレヌト少なくずもMVCを思い出しおください、コヌドを蚘述するためのテンプレヌト、ナヌザヌむンタヌフェむステンプレヌト、およびプログラムの動䜜甚のテンプレヌトがありたす。 ほずんどすべおの新しいタスクには、独自のテンプレヌト゜リュヌションがありたす。



セキュリティには独自のテンプレヌトもありたす。 テンプレヌト゜リュヌションは、情報システムを構築するすべおのレベルに察応しおいたす。 組織のセキュリティ察策を含む、䌁業党䜓のセキュリティテンプレヌトがありたす。 玔粋に技術的な゚ンティティずしお情報システムを構築するためのパタヌンがありたす。 安党なアプリケヌションテンプレヌトがありたす。



もちろん、アプリケヌションのセキュリティパタヌンに関心がありたす。 ここでは、さたざたなレベルに぀いお話すこずもできたす。安党な動䜜のパタヌンず、安党なプログラムの構造のパタヌンがありたす。



プログラムのセキュリティは、倚くの堎合、その安党な動䜜に正確に関連付けられおいたす。 たずえば、ナヌザヌ認蚌、アクセス暩の怜蚌、入力デヌタのフィルタリングが含たれたす。 動䜜は、簡単に衚瀺、テストできるものです。 そのため、マヌケティング担圓者は通垞、セキュリティ機胜のみを「販売」しおいたす。



しかし、安党なプログラムの構造に読者の泚意を匕きたいず思いたす。 はい、それは圱にありたす。それは実蚌するのが難しく、販売するのが難しいです。



しかし、セキュリティは、プログラムの動䜜よりもプログラムの構造に䟝存しおいたす。 ゚ラヌが発生する確率は、プログラムの構造によっお異なりたす。 プログラムの構造によっお、この゚ラヌが脆匱性になるかどうかが決たりたす。 プログラムの構造により、この脆匱性の深刻床が決たりたす。 たずえば、重芁なデヌタにアクセスするコヌドで、たたはそのようなアクセス暩を持たないコヌドで、どの゚ラヌがより深刻な結果に぀ながるかを考えおください。



あなたず私の説明なしで、プログラムのアヌキテクチャずデザむンの重芁性を理解しおいるず思いたす。 したがっお、安党なプログラムの構造パタヌンに関する2぀の出版物をお勧めしたす。



最初の出版物はSecurity Design Patterns pdf です。 私の意芋では、これは安党なプログラムの構造パタヌンに関する最高品質の出版物の䞀぀です。 ほが10幎前、2004幎にOpen Groupコン゜ヌシアムによっお公開されたした。 この出版物には、テンプレヌトを䜿甚しおセキュリティを蚭蚈するための方法論ず、それらの倚くの説明の䞡方がありたす。



たずえば、保護されたシステムテンプレヌトの説明は非垞に興味深いものです。 他の情報源では、「参照モニタヌ」ず呌ばれ、文献で頻繁に参照されおいたす。 しかし、ほずんどの堎合、蚀及されおいたす。他のほずんどの出版物では、半ペヌゞの力で圌に捧げられおいたす。 Open Groupの䜜業では、保護されたシステムテンプレヌトの䜿甚が、䜿甚可胜なオプションを含め、非垞に詳现に分析されたす。



2番目の出版物は、「Secure Design Patterns」 pdf です。 これは最近の情報であり、 Software Engineering Instituteで行われ、米囜囜防総省が埌揎した䜜業に関するレポヌトです。



SEIレポヌトは、公開時点で知られおいるセキュリティパタヌンのカタログです。 さらに、アヌキテクチャテンプレヌト、デザむンテンプレヌト、実装テンプレヌトの3぀の異なるレベルのテンプレヌトが衚瀺されたす。 したがっお、このトピックに関する非垞に優れた情報源ずしお䜜品を䜿甚できたす。



他の文献がありたす。 しかし、私の意芋では、少なくずも最初は、蚀及された2぀の情報源で十分です。 それらで利甚可胜な情報を把握したので、すでに非垞に安党なプログラムを䜜成できたす。



読んで、考えお、適甚しおください。



おわりに



単玔なプログラムを安党にするこずは非垞に簡単です。 これを行うには、倚くのこずを考えたり蚈画したりする必芁はありたせん。セキュリティに泚意を払い、この蚘事の最初の郚分で説明した安党なプログラミング手法を適甚するだけです。



䞭耇雑なプログラムの蚭蚈を考えるず、時間ずお金を倧幅に節玄でき、おそらくあなたの評刀を維持できたす。



高品質のアヌキテクチャず耇雑なプログラムの蚭蚈は、それを安党にする唯䞀の方法です。



次に新しいプログラムを蚈画するずき、たたは既存のプログラムをリファクタリングするずきに考えおください。



PS蚘事は倧きいこずが刀明したした。 私はそれを郚分に分割し始めたせんでした、私は本圓にその完党性を維持したかったです。 おもしろいこずを願っおいたすし、あたり負荷をかけなかったず思いたす。



ちょっずしたボヌナスずしお、この蚘事のトピックに関する文献のマむクロレビュヌを远加したす。



ハブ

文献マむクロレビュヌ
1. Steve McConnel、「急速な開発。 Wild Software Schedulersを䜿いこなす」、Microsoft Press 1996



非垞に興味深い本。 著者は、高品質の゜フトりェアの効率的な開発を可胜にするさたざたな技術および管理技術に぀いお説明しおいたす。



この本からの重芁なポむント急速な発展は混chaを意味したせん。 速床は、蚈画の䞍足によるものではなく、逆に、慎重な蚈画、起こりうる問題の予枬によるものです。



2. Steve McConnell、「コヌドの完成゜フトりェア構築の実践的ハンドブック」、Microsoft Press、第2版、2004幎



おそらく、プログラマヌにずっお最も必芁な本の1぀です。 それはプログラミングの癟科事兞ですそれはコヌドのスタむルずその開発の倚くの実践の䞡方を蚘述したす。



セキュリティの芳点から䞍十分に曞かれたプログラムは安党ではありたせん。



3. Eric J. Braud「゜フトりェア゚ンゞニアリングオブゞェクト指向の芖点」、Wiley Computer Publishing、2001



私たちの囜では、この本は「゜フトりェア開発技術」ずいうタむトルで出版されたした。



本の内容はそのタむトルず完党に䞀臎しおいたす。 ナヌザヌのニヌズに関する情報の収集から始たり、メンテナンスで終わる開発技術に぀いお説明したす。



セキュリティの芳点から、この本は、゜フトりェア補品の定性的で非機胜的な特性、぀たりその安党性に泚目しおいる点で興味深いものです。



4. Len Bass、Paul Clements、Rick Kazman、「実践的な゜フトりェアアヌキテクチャ」、Addison-Wesley Professional、第2版、2003幎



゜フトりェアアヌキテクチャの分野で䞖界をリヌドする専門家の本。



゜フトりェアの構造アヌキテクチャずその非機胜プロパティの関係速床、倉曎可胜性、セキュリティなどが説明されおいたす。



クラむアントのニヌズを最適に満たす劥協゜リュヌションずしおのアヌキテクチャ蚭蚈の問題に぀いお説明したす。



5. Paul Clements、Felix Bachmann、Len Bass、David Garlan、James Ivers、Reed Little、Robert Nord、Judith Safford「゜フトりェアアヌキテクチャの文曞化。 ビュヌずその先” Addison-Wesley Publishing 2008



゜フトりェアアヌキテクチャの分野で䞖界をリヌドする専門家による別の本。



この本の重芁なアむデアは、゜フトりェア補品の「アヌキテクチャ」のすべおの特性を説明するのに適したものがないこずです。 アヌキテクチャの完党な説明は、さたざたな「芖点」の組み合わせです。



セキュリティを分析するには、プログラムのアヌキテクチャをどのように蚘述するかを理解するこずが重芁です。 他のデザむナヌが提䟛する説明がセキュリティ専門家によっお垞に䜿甚できるわけではないため、圌は自分で䜜成する必芁がありたす。



6. Richard N. Tailor、Nenad Medvidovic、Eric M. Dashfy、「゜フトりェアアヌキテクチャ。 基瀎、理論、実践」、Wiley、2010



゜フトりェアアヌキテクチャの問題に関するチュヌトリアル。 この本は、問題の歎史を説明するのに興味深い。 蚭蚈方法、説明、アヌキテクチャの分析に関する倚くの情報が含たれおいたす。



以前の2冊の本ずは異なり、より孊術的で基本的なものです。



7. Matt Bishop「コンピュヌタヌのセキュリティ。 芞術ず科孊」、ピア゜ン教育、2003



どの本を読むべきか尋ねられたら、私はこれを呌び出したす。 セキュリティの専門家には必読ですが、数孊的知識が必芁です。



良い基本的な本。



8. Jonh Viega、Gary McGraw「安党な゜フトりェアの構築。 セキュリティ問題を正しい方法で回避する方法」、Addison-Wesley Publishing Company、2005



9. Gary McGraw「゜フトりェアセキュリティ。 ビルのセキュリティ」、Addison-Wesley Publishing Company、2006



10. Greg Hoglund、Gary McGraw「゜フトりェアの掻甚。 コヌドを砎る方法」、Addison-Wesley Publishing Company、2004



1人の著者ゲむリヌマクグロヌが結集した3冊の本。 さたざたな角床から、゜フトりェアセキュリティの開発ずテストぞのアプロヌチに぀いお説明したす。



ここでは、セキュリティ芁件をほがすべおの゜フトりェア開発プロセスに統合する方法論であるタッチポむントの説明を芋぀けるこずができたす。



別の重芁な手法である攻撃パタヌンは、゜フトりェアプロゞェクトの分析ずテストプログラムの開発の䞡方で䜿甚できたす。



11.ゞュリアH.アレン、ショヌンバヌナム、ロバヌトJ.゚リ゜ン、ゲむリヌマクグロヌ、ナンシヌR.ミヌド、「゜フトりェアセキュリティ゚ンゞニアリング。 プロゞェクトマネヌゞャヌ向けガむド」、Addison-Wesley Publishing Company、2008幎



Garry McGrawが執筆した非垞に良い本。 プログラムの開発に䜿甚できるさたざたな方法や方法論ぞのリンクが含たれおいたす。



残念ながら、説明から、どのように1぀たたは別の手法がこの手法をセキュリティの蚭蚈たたは分析に正確に䜿甚できるかは必ずしも明らかではありたせん。



本は、可胜な解決策ぞのポむンタずしお、参照ずしお䜿甚できたす。 しかし、゜リュヌションの説明は、本が参照しおいる情報源で探すのが最適です。



12. Mark S. Merkov、Lakshmikanth Raghavan、「セキュアで匟力性のある゜フトりェア開発」、Auerbach Publications、2010



二人の開業医の本。 䞡方ずもPayPal Incで動䜜したす少なくずも執筆時点では。 ご想像のずおり、倚くのセキュリティ䜜業がありたす。



著者は、圌ら自身が䜿甚し、圌らのために働いたテクニックを説明しおいるようです。 この本は、蚭蚈からリリヌスたで、゜フトりェアのラむフサむクル党䜓をカバヌしおいたす。



13. Michael Howard、David LeBlanc、「Writing Secure Code」、Microsoft Press、第2版、2003幎



14. Frank Swiderski、Window Snyder、「Threat Modeling」、Microsoft Press、2004



15.マむケル・ハワヌド、スティヌブ・リプナヌ、「セキュリティ開発ラむフサむクル」、Microsoft Press、2006



マむクロ゜フトの有名な3冊の本。 それらに぀いお倚くのこずを話しおも意味がないず思いたす。



最初の本はプログラマヌ向け、2番目はデザむナヌ向け、3番目はプロゞェクトマネヌゞャヌ向けです。



16. Michael Howard、David LeBlanc、Jonh Viega、「゜フトりェアセキュリティの24の倧眪。 プログラミングの欠陥ずその修正方法」、McGraw-Hill / Osborne、2009



この本は、同じ著者の成功した出版物「゜フトりェアセキュリティの19の倧眪」の発展版です。 Programming Flaws and How to Fix Them”.



, .



: , .



.



17. Mark Down, John McDonald, Justin Schun, “The Art of Software Security Assessement. Identifying and Preventing Software Vulnerabilities”, Addison-Wesley, 2007



(1048 ) , , . , ; ; .



.



.



18. Karl E. Wiegers, “Peer Reviews in Software. A Practical Guide”, Addison-Wesley Publishing Company, 2010



, . , . .



, , .



— , .



19. Paul C. Jorgensen “Software Testing. A Craftman's Approach”, Auerbach Publications, Third Edition, 2008



. , , - .



«», .



, , .



20. Cem Kaner, “A Tutorial in Exploratory Testing”, 2008



, « ». , , .



, . , , , , .



.



21. James A. Whittaker, “How to Break Software: A Practical Guide to Testing”, Addison-Wesley, 2002



22. James A. Whittaker, “How to Break Software Security”, Addison-Wesley, 2003



23. Mike Andrews, James A. Whittaker “How to Break Web Software: Functional and Security Testing of Web Applications and Web Services”, Addison-Wesley Professional, 2006



24. James A. Whittaker, “Exploratory Software Testing: Tips, Tricks, Tours, and Techniques to Guide Test Design”, Addison-Wesley Professional, 2009



, . , — .



Whittaker , .



, , - Attack Patterns ( ). , - «», , , .



25. Christoper Steel, Ramesh Nagappan, Ray Lai, “Core Security Patterns. Best Pracices and Strategies fo J2EE, Web Services, and Identity Management”, Prentice Hall, 2005



(1088 ). J2EE. , .



J2EE , Java. , .






All Articles