CISSPラーニング:第20章ソフトウェア開発セキュリティ

2021年3月1日

システム開発のすべての段階でセキュリティを考慮する必要があります。

プログラミング言語:コンパイル後、サードパーティによる操作は簡単ではありませんが、エンドユーザーは元の命令を表示できません。
1.コンパイルされた言語:C、Java、FORTRAN
2.解釈された言語:Python、R、JavaScript、VBScript

オブジェクト指向(OOP)
保証:システムライフサイクルの信頼を構築する正式なプロセスです。CCは、
システム障害回避および軽減するための標準化された方法を提供し
ます。1。入力検証
2.ID検証とペイント管理
3.障害保護および緊急オープニング:フェイルセキュア(フェイルセキュア、障害が発生した場合にアクセスできるのは高権限のみ)、緊急オープニング(フェイルオープン、障害が発生した場合にセキュリティ制御をバイパスする)

システム開発ライフサイクル
1.概念の定義:プロジェクトの目的とシステムの一般的な要件を規定する、すべての利害関係者(開発者、顧客、および管理者)によって交渉された簡単なステートメント。
2.機能要件の決定:入力、動作、および出力の3つの特性。出力:機能要件ドキュメント。
3.制御仕様の開発:セキュリティを重視する組織は、開発の開始時に設計し、複数のセキュリティの観点から分析します。a。適切なアクセス制御、許可されたユーザーのみがシステムにアクセスでき、許可レベルを超えることはできません。正しい暗号化およびデータ保護テクノロジーを使用して、重要なデータの機密性を保護します。c。個人の説明責任を強化し、違法行為の検出メカニズムを提供するための監査証跡を提供します。d。システムの重要性に応じて、可用性を解決し、フォールトトレランスの問題。
4.設計レビュー
5.コード監査ウォークスルー
6.ユーザー受け入れテスト
7.保守および変更管理

ライフサイクルモデル
1.ウォーターフォールモデル:1970年にWinstom Royceによって開発されたフィードバックループ機能により、開発者は1つのステージに戻ることができます。
2.スパイラルモデル:1988年にBarry Boehmによって提案された、メタモデル、「モデルのモデル」
3.アジャイルソフトウェア開発:顧客のニーズの強調、新機能の迅速な開発、反復配信。「アジャイルマニフェスト」12の原則:

  • 最も重要な目標は、ユーザーを満足させるために、価値のあるソフトウェアを早期に継続的に提供することです。
  • 需要の変化を歓迎します
  • 動作するソフトウェアを定期的に提供する
  • ビジネスマンと開発者は毎日一緒に働いています
  • 個々の闘志を刺激し、それらを核としてプロジェクトを構築する
  • チームの内外で、情報を伝達する最も効率的な方法は、対面での会話です。
  • 動作中のソフトウェアは進歩の主要な指標です
  • アジャイルプロセスは持続可能な開発を提唱します
  • 卓越した技術と優れたデザインの追求に固執する
  • シンプルさに焦点を当て、不要な作業負荷を減らします
  • 最高のアーキテクチャ、要件、および設計は、自己組織化チームからもたらされます
  • チームは定期的にその有効性を改善する方法を検討し、その動作を順番に調整し
    ます。4。ソフトウェア機能成熟度モデル:5つの段階に分かれています。
  • 最初の段階、初期レベル:ソフトウェア開発プロセスはほとんど定義されていません。
  • 第2段階、反復可能なレベル:基本的なライフサイクル管理プロセス、同様のプロジェクトは反復可能な結果を​​もたらすことが期待できます。
  • 第3段階、定義レベル:ソフトウェア開発者は、一連の正式で安定したソフトウェア開発プロセスに従って動作します。すべてのプロジェクトの管理を標準化します。
  • 第4段階、管理レベル:開発プロセスに関する詳細情報を取得するための定量的測定。SEIが注目する処理範囲は、次のように定義されます。定量的処理管理と古代人は品質管理について話します。
  • 第5段階、最適化レベル:継続的改善プロセス、成熟したプロセスの決定。SEIが焦点を当てている処理範囲は、欠陥防止、技術変更管理、およびプロセス変更管理として定義されます。
    5.理想的なモデル。複数のSW-CMM属性を実現するために、起動、診断、確立、アクション、および学習の5つの段階があります。

ガントチャート:さまざまな時点でのプロジェクトとスケジュールの関係を示す棒グラフ。
プログラム評価レビュー手法、PERT(プログラム評価レビュー手法)、プロジェクトスケジューリングツール:開発中にソフトウェア製品のサイズを決定し、リスク評価の標準偏差を計算するために使用されます。

変更管理:セキュリティツールとして。3つの基本的なコンポーネント:変更要求、変更管理、およびリリース管理。

構成管理:組織全体で使用されるソフトウェアバージョンを制御し、ソフトウェア構成への変更を正式に追跡および制御するために使用されます。4つの主要コンポーネント:構成の識別、構成の制御、構成のステータス統計、および構成の監査。

DevOpsメソッド:ソフトウェア開発、品質保証、および技術運用を1つのモデルに集中させ、開発、テスト、および展開の時間を大幅に短縮します。

アプリケーションプログラミングインターフェイス(API):
1。認証要件を考慮する必要があります。
2.安全上の欠陥を徹底的にテストする必要があります。

ソフトウェアテスト:ホワイトボックス、ブラックボックス、グレーボックス、静的および動的。

コードウェアハウス:
1。機能:ソースコードの保存、バージョン管理、エラートラッキング、Webホスティング、リリース管理、およびソフトウェア開発をサポートできる通信機能。
2.セキュリティ:ウェアハウスへの開発者のアクセスは適切に制御する必要があり、アクセス制御は適切なユーザーのみが読み取りまたは書き込みできるように注意深く設計する必要があります。

サービスレベルアグリーメント:サービス指標に加えて、財務的および是正措置も含まれます。

ソフトウェアの調達:セキュリティ:
1。セキュリティの目標を達成するようにソフトウェアを正しく構成します
。2。セキュリティの発表とパッチに注意を払い、新たに発見された脆弱性をタイムリーに修正します。
3. SaaSでは、セキュリティ担当者は、サプライヤのセキュリティを監視し、サプライヤのセキュリティ対策を検証する責任もあります。

データベース管理システム
1.階層型データベースはデータを階層的に格納します。分散データベースのデータマッピング関係は多対多です。
2.リレーショナルデータベース:行と列で構成される2次元テーブル。行数がベースで、列数が次数です。
候補キー:テーブルに記録されている属性のサブセットを一意に識別するために使用できます。
主キー:テーブル内のレコードを一意に識別するためにテーブル候補キーから選択されたキー。
外部キー:2つのテーブル間の関係を強制するために使用されます。
3.データベーストランザクション:4つの特性:原子性、一貫性、分離、および耐久性
4.データベースの同時実行性:2つのプロセスが同時にデータを更新し、データが失われる可能性があります。レコードは、価格の上昇に成功しなかったodeトランザクションから読み取られます。ダーティリードになります。
5. ODBC:アプリケーションとバックエンドデータベースドライバーの間のエージェント。
6. NoSQL:Key-Valueストレージ、グラフデータベース、ドキュメントデータベース

メモリタイプ:
1。メインメモリ:メモリ。CPUは直接読み取ることができます。
2.補助記憶装置:ハードディスク、CD、DVD、長期記憶装置。
3.仮想メモリ:補助メモリはメインメモリをシミュレートします。
4.仮想ストレージ:メインストレージは、ファイルシステムの読み取りを高速化するために補助ストレージをシミュレートします。
5.ランダムアクセスメモリ:RAM、ハードディスク
6.シーケンシャルアクセスメモリ:磁気テープ。

メモリの脅威:
1。不正アクセス:暗号化を使用するのが最善の方法です。
2.隠された通路

知識ベースシステム
1.エキスパートシステム:2つのコンポーネント:知識ベース(エキスパートシステムによって知られているルールを含む)、推論エンジン(正しい決定を得るために知識ベースの情報を分析する);意思決定は感情の影響を受けず、適切なストックおよびその他のシステム
2.機械学習:データセットから新しい知識を分析します。教師あり学習(ラベル付きデータを使用したトレーニング)、教師なし学習(ラベルなしデータを使用したトレーニング)
3。ニューラルネットワーク:計算ユニットのキーは、深層学習とも呼ばれる機械学習の拡張である、人間の脳の生物​​学的推論プロセスを模倣しようとします。または認知システム
4.セキュリティアプリケーション:知識分析テクノロジーの利点に基づく:一貫した意思決定を迅速に行う能力

クラスの後に20の演習があり、4つは間違っています。

おすすめ

転載: blog.51cto.com/314837/2649835
おすすめ