マインドマップギャラリー CISSP-8-アプリケーションセキュリティ開発
CISSP-情報システムセキュリティプロフェッショナル認定のアプリケーションセキュリティ開発マインドマップには、主にアプリケーション開発の学習目標、システム開発セキュリティ、ソフトウェア開発モデル、プログラミング言語と概念、典型的なアプリケーションシステム、ソフトウェアセキュリティの有効性の評価が含まれています。
2021-11-10 12:06:10 に編集されましたアプリケーションのセキュリティ開発
アプリケーション開発の学習目標
ソフトウェア開発ライフサイクルのセキュリティ
ソフトウェア開発ライフサイクルアプローチ
成熟度モデル
運用・保守
変更管理
統合製品チーム
開発環境におけるセキュリティ管理
ソフトウェア環境(プログラミング言語、ライブラリ、ツールボックス、包括的な開発環境、ランタイム)のセキュリティ。
ソースコードレベルのセキュリティの弱点と脆弱性
セキュアコーディングの重要な要素としての構成管理
アプリケーションインターフェイスのセキュリティ
ソフトウェアのセキュリティ効果
変更を監査してログに記録する
リスク分析と軽減 (是正措置、テストと検証、回帰テスト)
ユーザー受け入れテスト
アプリケーション開発に関する懸念事項
建築パターン
3層アーキテクチャ
ユーザー
フロントエンド
複雑なミドルウェア
データベース
バグ追跡とセキュリティ機能
クライアントサーバー
クライアント: ユーザー インターフェイス、ローカル データベース操作、通信メカニズム
サーバー: データリクエストを実行および処理し、結果を返します。
ブラウザ/サーバー
環境制御 V アプリケーション制御
複数の制御方式のバランス
環境制御とアプリケーション制御の境界を理解する
セーフティV機能
ソフトウェア機能とセキュリティ対策のバランス
機能要件、セキュリティ要件、セキュリティメカニズムのバランス
セキュリティ V ユーザー エクスペリエンス
通常は反比例します
セキュリティ機能 V構成セキュリティ
デフォルトのインストールではセキュリティが保証されません
構成セキュリティが有効になっていません (アクセスはデフォルトで拒否される必要があります)
最小限のインストールの原則に従わない
パッチ後のインストール
システム開発セキュリティ
SDLC
プロジェクトの始まり
要件を明確にし、製品の基本的な安全目標を決定する
リスク分析評価、脅威と脆弱性の評価、 さまざまなセキュリティ対策の費用対効果の比率を見積もる
危機管理
リスク分析
需要分析
安全要件
システムまたはアプリケーションの機能要件
基準とガイドライン
輸出制限
データ機密レベル
関連するセキュリティ ポリシー
費用対効果の分析結果
目標を達成するために必要な保護レベル
プロジェクト開発チームと要件管理チームは、現在および将来予想される機能要件の複雑な分析を実行して、新しいシステムがエンドユーザーの要件を満たしていることを確認します。
プロジェクト チームのメンバーは、プロジェクトの初期段階で出力されたドキュメントを確認し、必要に応じて修正および更新します。
比較的小規模なプロジェクトの場合、上記のプロセスはプロジェクトの初期段階に含まれることがよくあります。
セキュリティ要件もそれに応じて形成する必要があります。 (セキュリティ要件は要件分析フェーズで決定されます。 セキュリティ担当者は要件段階で関与する必要があります)
システムデザイン
システム設計の一環としてのソフトウェア開発
ハードウェアはソフトウェアとは異なります
通常、ソフトウェアで実現する機能はシステム設計時に決定されます。
ソフトウェアの検証では、システムが設計されたすべてのコンテキストを考慮する必要があります
スペックを考えてみる
ソフトウェアとハードウェアの違い
ソフトウェアには分岐があり、さまざまな入力に基づいてさまざまなコマンドを実行できるため、ソフトウェアは複雑になります。
ソフトウェアは物理的なものではないため、消耗しません。
ソフトウェアは簡単かつ迅速に変更できます。
ソフトウェア開発プロセスは、ソフトウェアの変更によって引き起こされる予期せぬ結果を検出して修正するために、十分に計画、管理、記録される必要があります。
ソフトウェア コンポーネントは標準化されておらず、ハードウェアほど頻繁に交換可能ではありません。
ユーザー要件とシステム内部動作を説明するツール
システムおよびソフトウェアの設計に関連するすべてのアクティビティが含まれます。
システム アーキテクチャ、システム出力、システム インターフェイスの設計
データ入力、データ フロー、データ出力の要件を確立し、企業のセキュリティ アーキテクチャに基づいてソフトウェア セキュリティ機能を一般的に設計します。
デザイン
データ設計
データ設計データと情報モデルデータを抽出し、データ構造に変換します。
建築デザイン
アプリケーションコンポーネント間の主な構造と関係を定義します。
プロセス設計
構造化コンポーネントを記述プロセスに変換する
セキュリティ設計アプローチ
脅威モデリング (STRIDE)
攻撃対象領域の最小化分析
クリーンな入力と出力
考慮すべき質問
後続のフェーズの作業分解構造 (WBS)
製品の詳細と導入環境
製品のモジュール化と再利用の問題
ソフトウェアの開発と実装
主な仕事
ソースコードが生成され、それに応じてテストシナリオとテストケースが開発されています
単体テストと統合テストの実装を開始する
手順とシステムもメンテナンスのために文書化され始め、その後受け入れテストと本番への移行に移行します。
テストの種類
単体テスト
データ構造、ロジック、境界条件を検証する
統合テスト
コンポーネントが設計仕様に従って連携して動作することを確認する
システムテスト
機能・性能
受け入れテスト
コードが顧客のニーズを満たしていることを確認する
回帰試験
システムの変更が行われた後、再テストが行われます。 機能、パフォーマンス、保護レベルを確保する
機能テスト
性能試験
負荷テスト
圧力試験
ファジングテスト
ソフトウェアに複雑/ランダムなデータを送信してソフトウェア エラーを引き起こします。主に、ソフトウェアのフリーズ、クラッシュ、発生の原因となるバッファ オーバーフロー、DOS、インジェクション、検証エラー、その他のエラーを識別するために使用されます。
脆弱性スキャン
自動ツールを使用して、厳密に型指定された言語エラー、開発および構成エラー、トランザクション シーケンス フォールト (トランザクション シーケンス フォールト)、マッピング トリガー条件 (マッピング トリガー条件) などのプログラムの主なエラーをチェックします (通常はさらに手動で行います)。調査後に作業が必要です。
手動テスト
多くの場合コンピューター技術を使用して、人間の経験と直観によってプログラムを分析することにより、テスターは論理エラーなどの設計エラーを見つけることができます。侵入テストが含まれます。
動的解析
動的分析は、実行中のプログラムのタイムリーな分析であり、通常、静的分析の後、プログラムの基本的な問題が解決された後に実行されます。
環境の分離と責任の分離
確認する (検証)
製品仕様が満たされていることを確認する
確認する (検証)
プロジェクトの主な目的が確実に達成されるようにする
開発したシステムやアプリケーションの使い方や運用方法に重点を置く
認証 (認証)
IT システムの技術的および非技術的なセキュリティ特性とその 保護対策の安全性評価、特定の設計と実装がどのように適合するかを測定する 認定プロセスをサポートするために定義された一連のセキュリティ要件。
セキュリティ管理を調査および評価するプロセス
外部の独立した検査機関によって実施される
セキュリティポリシーと標準への準拠を確認する
評価または承認 (認定)
権威ある機関が、IT システムが承認され、次のことができることを正式に宣言します。 許容可能なレベルのリスクを満たす定義済みのセキュリティ対策セットを採用する特定のセキュリティ モードで動作できる
経営陣によるシステムの承認
リスクを明確に受け入れる
移行と修正
この段階では、システムは受け入れ段階から実際の運用環境に移行します。
この段階の活動には、安全性の承認の取得が含まれます (セキュリティ認定);
計画に従ってユーザーをトレーニングします。
インストールとデータ変換を含むシステムの実装。
必要に応じて、並列操作を実行します。
運用・保守
セキュリティ環境を正しく構成する
脆弱性テストを継続的に実施し、システムアクティビティを監視し、イベントを監査する (メンテナンス段階で脆弱性が発見され、報告が行われます)
大きな変化が発生した場合は、リスク評価を実行し、 認証および認定プロセス (再認定、再認定) を実行します。
廃棄 (廃棄)
データの機密性に基づいてデータを破棄します。
破壊方法
物理的損傷
消磁
上書きする
SELC システムエンジニアリングのライフサイクル (システムエンジニアリングのライフサイクル)
要件分析、設計、実装、検証、運用 要件分析、設計、実装、検証、運用
変更と構成の管理
能力成熟度モデル (CMM)
初期(アドホック)
再現可能
定義済み
管理対象 (管理対象、メトリクス)
最適化(継続的改善)
機能成熟度モデルの統合 (CMMI)
1、3、5は同じ、2.管理、4.定量化および管理
統合製品チーム
統合製品およびプロセス開発 (IPPD) 統合された製品およびプロセス開発
複数の専門分野のチームを使用して、必要なすべての買収活動を同時に統合することで、設計、製造、サポートのプロセスを最適化する管理手法
IPPD は、オンサイトサポートを含む、製品コンセプトから生産に至るまでのコストとパフォーマンスの目標の達成を促進します。
IPPD の重要な原則は、統合製品チーム (IPT) の学際的なコラボレーション モデルです。
IPT
すべての職能分野の代表者がチームリーダーと協力して、バランスの取れた成功したプログラムを構築し、問題を特定して解決し、健全でタイムリーな意思決定を下します。
チーム メンバーは必ずしも自分の時間の 100% をプロジェクトに貢献するとは限らず、メンバーが複数の IPT チームに所属する場合もあります。
IPT の目的は、顧客やサプライヤーを含むすべてのチーム (プロジェクト管理、エンジニアリング、製造、テスト、ロジック、財務管理、調達および契約管理など) からのリアルタイムの入力に基づいてチームの意思決定を行うことです。
ITP のチーム メンバーは、企業およびシステム/サブシステム請負業者のメンバーを含むプロジェクト マネージャー レベルのメンバーで構成されます。
典型的な IPT はプログラム レベルであり、たとえば、設計エンジニアリング、製造、システム エンジニアリング、テストと評価、下請け、品質保証、トレーニング、財務、信頼性、保守性、サポート、調達などの機能分野で構成されます。契約管理、サプライヤー、顧客。
DevOps
コンセプト
原則として
同様の運用システムを開発およびテストする
再現可能で信頼性の高いプロセスで導入する
運用品質の監視と検証
フィードバックループを拡大する
ソフトウェア開発モデル
ウォーターフォールモデル
企画、要件分析、ソフトウェア設計、プログラム作成、ソフトウェアテスト、運用保守
スパイラルモデル
構造化されたプログラミング開発
反復開発
試作モデル
放棄する
改善する
ラピッドプロトタイピング
モデルを探索する
共同解析開発
迅速なアプリケーション開発 (RAD)
モデルを再利用する
クリーンルーム
コンポーネント開発
アジャイル開発
エクストリーム プログラミング XP
スクラム
傾く
アジャイルマニフェスト 4 文
プロセスとツールを介した個人と相互作用 徹底したドキュメントを超えて動作するソフトウェア 契約交渉における顧客の協力 計画に従うよりも変化にうまく対応する
プログラミング言語と概念
構造化プログラミング
トップダウンの分析と設計。 ボトムアップの段階的な実装
ユーザー本位の視点で、作業段階を厳密に区別
短所: 長い開発サイクル、面倒で複雑な開発プロセス 監査はより困難であり、ユーザーのコミュニケーションは直感的ではありません。
オブジェクト指向プログラミング
これは、クラスとオブジェクトの 2 つの部分で構成されます。
親切 (クラス)
クラスは物の抽象的な特性を定義します
クラスは、モノのプロパティとそれができること (その動作) を定義します。
クラスのメソッドとプロパティは「メンバー」と呼ばれます
物体 (物体)
オブジェクトはクラスのインスタンスです。
システムはメモリ空間をオブジェクトに割り当てますが、クラスには割り当てません。 クラスは抽象的です。オブジェクトは具体的なものにスペースを割り当てることはシステムには不可能です。
オブジェクト=プロパティメソッド
属性:
オブジェクトの構造とステータスの特性を説明します。
方法:
オブジェクトが実行できる機能またはプロセス
オブジェクト間の通信方法: メッセージパッシング
多態性 (多態性)
カプセル化の最も簡単な理解はパッケージ化です。これは、オブジェクトのプロパティと実装の詳細を非表示にすることを指します。 インターフェイスのみが外界に公開されます。つまり、オブジェクトの内部状態は外界に対して透過的です。
カプセル化 (カプセル化)
オブジェクト情報を隠すことを意味します
パブリックメンバー
プライベートメンバー
継承する (継承)
既存のクラスから 1 つ以上のサブタイプを作成するメカニズムです。
ソフトウェアアーキテクチャ
データ構造
データ要素間の論理関係の表現
スカラー
リンクされたリスト
階層ツリー
凝集と結合 (高凝集性、低結合性)
凝集
モジュールが実行できるさまざまな種類のタスクの数を反映します
凝集度が高いほど、更新と変更が容易になります。 他のモジュールと対話する他のモジュールに影響を与えることなく、
カップリング
モジュールがタスクを実行するために必要な対話量
結合度が低いため再利用が容易で、変更は他のモジュールに影響を与えません。
分散コンピューティング
共通オブジェクトリクエストブローカーのアーキテクチャ (コルバ)
Microsoft COM/DCOM モデル
EJB
API
API は、デバイスを相互に接続できるようにする IoT (モノのインターネット) 用のコネクタです。
Representational State Transfer (REST) API
RESTセキュリティ専門家の使用上のアドバイス
REST API の 3 つの安全なパス
代表的なアプリケーションシステム
ウェブセキュリティ
メッセージを収集する (情報収集)
管理インターフェース (管理インターフェース)
認証とアクセス制御 (認証とアクセス制御)
入力の検証 (入力チェック)
応答
バッファオーバーフロー攻撃
XSS クロスサイト スクリプティング攻撃
SQLインジェクション攻撃
パラメータの検証 (パラメータの検証)
セッション管理 (セッション管理)
データベース管理
データベースマネージメントシステム (DBMS)
データ アクセスを管理および制御するアセンブリ
データを特定の形式で整理して保存し、 ユーザーがアクセス、管理、更新できるようにする記録ファイル
焦点: データ収集、ストレージ、リカバリ
整合性が最も重視され、次に可用性、最後に機密性が続きます
メタデータ
本質: データについてのデータ
データソース定義、ターゲット定義、変換ルールなどに関連する主要データ
特徴:
データの一貫性
操作は各データベースの整合性ポリシーに準拠する必要があります。 完全なトランザクションデータの一貫性
データ共有
複数のユーザーが同時にデータベースにアクセスできます。 同時実行制御あり
データ復旧
エラーやシステムクラッシュが発生した場合でも、システムを回復できます。 クラッシュまたはロールバック時に処理されていたトランザクションを確認します。 または、データの一貫性を維持するためにトランザクションが前方に完了しました。
チェックポイントは一般的なリカバリ手法です
安全に制御する
ユーザーアクセスを制限するためのさまざまなセキュリティ制御を提供します
データベース言語
データ定義言語 (DDL)、 例: CREATE、DROP、ALTER およびその他のステートメント。
データ操作言語 (DML)、 例: SELECT (クエリ)、INSERT (挿入)、 UPDATE (変更)、DELETE (削除) ステートメント。
データ制御言語 (DCL)、 例: GRANT、REVOKE、その他のステートメント。
トランザクション制御ステートメント (TCL)、 例: COMMIT、ROLLBACK、その他のステートメント。
効果的なアプローチまたはプロセスを確保する
圧縮: データを圧縮し、ストレージスペースと I/O を節約する機能
再編成: 未使用のスペースを再利用する
リファクタリング: レコード、データ、アクセス制御、 ディスク構成と処理能力
データベースモデル
階層データベースモデル
論理ツリー構造内で関連するレコードとフィールドで構成される論理ツリー構造
ツリー構造には多くの枝が含まれており、各枝には多くの葉またはデータ フィールドがあります。
アクセスするには明確なパスが必要ですが、 頻繁な変更には適さないが、頻繁なクエリには適している
例: Lightweight Directory Access Protocol LDAP、レジストリ構造
ネットワークデータベースモデル
有向グラフを使用して、エンティティの種類とエンティティ間の関係を表します。 厳密なツリー構造ではなく、ネットワーク的な冗長構造
各データ要素には複数の親ノードと子ノードがあります。
階層モデルと比較して高速な検索
リレーショナルデータベースモデル
機能: 属性/フィールド (列) およびタプル/レコード (行)
デカルト積の組み合わせ
主キーと外部キー
主キーはレコードを一意に識別します
外部キー: あるテーブルの属性値が別のテーブルの主キーと一致する場合、 特定の関係が確立されている場合、この属性は外部キーとみなされます
基本コンポーネント:
データ定義言語 (DDL)
データベース構造 (Structure) とデータ構造 (Schema) を定義します。
構造: テーブルのサイズ、キーの位置、ビュー、データ要素の関係について説明します。
スキーマ: データベースが保存および操作するデータ型とそのプロパティを記述します。
データベースの組織、アクセス操作、整合性手順を定義します。
データ操作言語 (DML)
ユーザー操作コマンド
データ制御言語 (DCL)
ユーザーアクセスおよび認可オブジェクトを作成する
クエリ言語 (QL)
データベースに対してクエリリクエストを行う
レポートジェネレーター
ユーザー定義の方法でデータを処理して出力
(RDBMS) 関係の整合性
エンティティの完全性 (エンティティの完全性)
各レコードは主キー値によって一意に識別されます
意味的な完全性 (意味上の整合性)
構造規則と意味規則が遵守されていることを確認します。 意味的に間違ったデータがデータベースに入力されるのを防ぎます。 これは、ルールに制約されたルールを通じて実現できます。
(参照) 参照整合性 (参照整合性)
存在しない主キーをデータベース レコードが参照することはできません。 主キーを含むレコードが削除された場合、 参照されているレコードはすべて削除する必要があります。 (外部キー)
データディクショナリ:
これは、データ要素とその関係を説明する中央ライブラリです。 データの使用状況、データの関係、データ ソース、データ形式などの重要な情報を保存できます。
データディクショナリは、データベースのデータを管理する集中管理部品です。 データ要素とデータベース間の相互参照について説明します。
データ要素定義、スキーマ オブジェクト、および参照キーのコレクションを説明します。
スキーマ オブジェクトには、テーブル、ビュー、インデックス、プロシージャ、関数、トリガーが含まれます
データ管理ソフトウェアはデータ ディクショナリを読み取り、モジュールが存在するかどうかを判断し、特定のモジュールが存在するかどうかを確認します。 ユーザープロセスのアクセス権限により、各ユーザーの表示権限設定も定義されます。
新しいレコード、テーブル、ビュー、またはスキーマを追加する必要がある場合は、データ ディクショナリを更新します。
オブジェクト指向データベースモデル
オブジェクト指向プログラミングのオブジェクト データ モデルと DBMS を組み合わせると、 画像、音声、ビデオなどのデータを保存できます。
オブジェクト指向データベースは、クラスを使用してオブジェクトのプロパティとプロシージャを定義します。
オブジェクトリレーショナルデータベースモデル
データベースプログラミングインターフェース
オープンデータベース接続、ODBC
オブジェクト接続と埋め込みデータベース、OLEDB
ActiveX データ オブジェクト、ADO
Java データベース インターコネクト、JDBC
データベースの脆弱性と脅威
誠実さ (誠実さ)
ロールバック
現在のトランザクションを終了し、変更をキャンセルして、以前の状態を復元します。
提出する
現在のトランザクションを送信して終了し、ユーザーが行った変更を実行します。 正常に実行できない場合はロールバックする
セーブポイント/チェックポイント (チェックポイント)
エラーが検出された場合、ユーザーは対応する場所に戻ることができます。
ロックメカニズムを使用して同時操作の脅威に対処する
重合 (集計)
一部の情報は個別に機密ではありませんが、一緒に機密となります。
解決
集計関数へのアクセスを厳密に制御する
ユーザーがビューを通じてデータに直接アクセスすることは禁止されています。
推論 (推論)
必要な結果を集計する
Reasoning は表示できる情報を取得できません
解決:
アクセス制御
コンテンツベースのアクセス制御
コンテキスト依存のアクセス制御
ユニット阻害 (細胞抑制)
特定のユニットを非表示にするために使用されるテクニック
データベースのパーティショニング (データベースパーティション)
データベースをさまざまな部分に分割する
騒音と妨害 (騒音と摂動)
データベースに偽の情報を挿入する手法
データベースビュー
複数のインスタンス (MRDBMS)
同じ主キーを持つ複数のタプルを作成し、 セキュリティレベルによって定義されるインスタンス間の関係
デッドロック (デッドロック)
その他の脅威
データベース
オンライントランザクション処理、OLTP
ACIDの原則
原子性
すべての変更がコミットされるか、データベースがロールバックされます。
一貫性
データベースの整合性を遵守し、 異なるデータベース内のデータの一貫性を確保する
分離
トランザクションは相互に影響しません
耐久性
一度送信するとロールバックすることはできません
オンライン分析処理、OLAP
OLAP はデータ ウェアハウス システムの主要なアプリケーションです
意思決定者や上級管理者に適しています
データウェアハウスとデータマイニング
情報検索とデータ分析を可能にするために、 複数のデータベースまたはデータ ソースを 1 つの大きなデータベースに結合します
データマイニング
分類: 共通の類似性に基づいてデータをグループ化します。
可能性: データ間の相互依存関係を特定します。 そして彼らの関係に可能性を適用します
エキスパートシステム
ルールベースのプログラミング
ルールは if-then 論理単位に基づいています
構成
推論エンジン
推論エンジンは、ユーザー インターフェイス、外部ファイル、プラン、およびプログラムへのアクセス機能を提供します。
知識ベース
ナレッジベースには、特定の問題またはドメインに関連するデータが含まれています
エキスパート システムは、セキュリティ ログを自動的にレビューするために IDS によってよく使用されます。
人工ニューラルネットワーク
人間の脳の神経構造に基づいた電子モデル
脳は情報をパターンの形で保存します
何かを学び、それを頻繁に使用すると、 情報蓄積装置への接続経路を強化します
ニューラル ネットワークは、意思決定と学習の機能を持つようにプログラムされています。 広範な試行錯誤による意思決定のプロセスを通じて機能を改善する
脅かす
バッファオーバーフロー (バッファオーバーフロー)
秘密の通路 チャンネルを変換する
タイミング
ストレージ
メモリ再利用/オブジェクト再利用 (メモリ再利用/オブジェクト再利用)
ソーシャルエンジニアリング
トラップドア/バックドア (トラップドア/バックドア)
スプーフィング攻撃 (なりすまし攻撃)
ウェブセキュリティ
破壊行為
発行された画像とタイトルを変更後の画像とタイトルに置き換えます
認識と現実
金融詐欺
仮想環境におけるサービスとトランザクションの欺瞞
特権アクセス
特権ユーザーへのアクセスを制限する
取引情報を盗む
知的財産の盗難
サービス拒否攻撃
特定のセキュリティ
メッセージを収集する
管理インターフェース
認証とアクセス制御
構成管理
確認を入力してください
パラメータの確認
セッション管理
SAML
SAML セキュリティ アサーション マークアップ言語、 これは XML ベースのプロトコルです。 フェデレーション ID 標準です。 さまざまなセキュリティ ドメインで認証および認可情報を送信するために使用され、シングル サインオンの実装に使用できます。 KDC に依存する Kerberos と同様に、SAML は IDP (アイデンティティ プロバイダー) に依存します。 SAML には、ポリシー強制と呼ばれる機能があります。
OAuth2.0
OAuth (Open Authorization) はオープン標準であり、 ユーザーが Web サイト上に保存したプライベート リソース (写真、ビデオ、連絡先リストなど) にサードパーティのアプリケーションがアクセスできるようにします。 ユーザー名とパスワードをサードパーティのアプリケーションに提供する必要はありません。
元の OAuth は非常に長い有効期間 (通常は 1 年間、または有効期限なし) のトークンを発行しますが、OAuth 2.0 では、サーバーは有効期間の短いアクセス トークンと有効期間の長いリフレッシュ トークンを発行します。これにより、クライアントはユーザーが再度取得する必要がなく、新しいアクセス トークンを取得できるようになり、アクセス トークンの有効期間も制限されます。
コードを移動する
Javaアプレット
Java言語はバイトコードとJava仮想マシンで構成されています 機械が認識できるマシンコードに変換します。
アプレットはサンドボックス内で実行されます (サンドボックスは最小限の承認を実現するのに役立ちます。 悪意のあるコード攻撃に対処する効果的な手段です ウイルス対策ソフトウェアの代替)
ActiveX コントロール
悪質なコード
ウイルス
特徴: 再生と破壊、ホストが必要
マクロウイルス
ブートセクターウイルス
ブート領域のデータを削除したり、領域を再起動したりできます
圧縮ウイルス
自分自身を実行可能プログラムに添付し、ユーザーの権限を使用してそれを圧縮します
秘密のウイルス
ファイルボックスのブートレコードに加えた変更を非表示にする
変成ウイルス
変わりつつも使える自分のコピーを作成する
ノイズや偽造命令、突然変異エンジンや乱数を介して 命令の順序を変更して検出を回避するジェネレーター
スプリットウイルス
ハードドライブのブートセクターと実行可能ファイルに同時に感染します
自分自身が引き起こすウイルス
ウイルス対策ソフトウェア自体のコードを難読化することで、ウイルス対策ソフトウェアによる検出を回避します。
スクリプトウイルス
トンネルウイルス
ウイルス対策プログラム、ウイルス対策ソフトウェアをインストールしてください ウイルスを検出すると、セブンはこの通話を傍受します
ワーム
ホストなしで自己複製可能
電子メール、ウェブサイトのダウンロードなどを通じて配布されます。
ボットネット
ボットはマルウェアの一種であり、潜在的な コード
トロイの木馬
別の番組に見せかけた番組
ルートキット
論理爆弾
ロジックボムは特定のイベントが発生したときに実行されます。
ウイルス対策ソフト
特徴的な検出方法 (サイン)
ヒューリスティック検出 (ヒューリスティック) 異常な動作が検出されました
不審カウンター
一部のウイルス対策ソフトウェアは疑わしいサンドボックスを作成します。 疑わしいコードを動的に分析する
分類:
コードの一部に関する情報をレビューすることは静的分析と呼ばれます
コードの一部を仮想マシンで実行できるようにすることを動的分析と呼びます。
予防接種プログラム
ウイルスをターゲットにして、感染していると思わせます。
行動ブロッカー
ウイルス対策プログラム
管理的、物理的、技術的方法を通じてウイルスから保護する
スパム検出
ベイジアンフィルタリング
サービス拒否攻撃 (DOS) (一見普通の活動のように見えますが)
特徴
被害者のネットワーク帯域幅を消費する
被害者のリソースを消費する
分類
スマーフ攻撃
ICMP プロトコルの欠陥の悪用
フラグル攻撃
UDPプロトコルの欠陥を悪用する
smurf と farggle はプロトコルの欠陥を悪用する 2 つの方法であり、 増幅されたネットワークを使用して DoS を起動する例
SYNフラッド攻撃
TCP 接続の 3 ウェイ ハンドシェイクを利用する
接続キューの制限を超えました
ティアドロップ攻撃
非常に小さな断片化されたパケットを送信することで、この設計上の欠陥を悪用します。
分散型サービス拒否攻撃 (DDOS)
シンクホール ルーティングは DDOS に対処する方法の 1 つです
ソフトウェアセキュリティの有効性を評価する
認証と認定
効果
ベスト プラクティスの管理、運用、および技術的なセキュリティ制御を適用することで、情報セキュリティ機能を連邦情報システムに組み込みます。
監視プロセスの継続的な強化により、情報システムのセキュリティ状況を常に認識します。
組織の運営に対するリスクや、情報システムの使用と運用から生じる資産、個人、他の組織、または国に対するリスクの受け入れを含む、上級リーダーが意思決定を行うための重要な情報を提供する。
変更の監査とログ記録
情報監査機能
監査手順は、異常なアクティビティの検出に役立ちます
監査レベルと監査タイプは、インストールされているソフトウェアの監査要件と、システムによって処理または保存されるデータの機密性によって異なります。
システムリソースは利用可能な場合は保護する必要があります
ログ監査の役割
ベースラインを確立する必要性
さまざまなサーバーとシステムのパフォーマンス
アプリケーションの機能と運用保守の課題
効果的な侵入検知
法医学分析
各種法令の遵守
情報の完全性
アプリケーションは、処理されたものと処理されると予想されるものを比較または調整します。
合計を比較する
シリアル番号を確認する
情報の正確さ (アプリケーション制御)
入力精度のチェック: データ検証と検証チェックを適切なアプリケーションに統合する必要があります。
文字チェック: 入力文字を、数字や文字などの予期される文字タイプと比較します。
範囲チェック: 予約の上限と下限に対して入力データを検証します。
関係チェック: 入力データとメインレコードファイルのデータを比較します。
妥当性チェック (合理性チェック): 入力データを期待される標準、他の形式の整合性チェックと比較します。
トランザクション制限: 入力データを確認し、トランザクションで管理者が設定した制限と比較します。
リスク分析と軽減
危機管理
リスク管理はプロジェクトのライフサイクル全体にわたる継続的なプロセスです
リスク管理プロセスには、リスク計画、特定、分析、監視および制御が含まれます。
リスクの特定はプロジェクトが開始される前に始まり、プロジェクトが成熟するにつれてリスクの数は増加します。
リスク文書化プロセスには、リスクの軽減と継続計画が含まれます
リスク軽減の手順では、イベントが発生する可能性を減らすことができ、リスク軽減にはコストがかかるため、費用対効果の分析が必要です。
継続計画、またはイベントの発生時または発生前に実行される一連の活動は、リスクが発生する前の事前の活動である場合もあれば、リスクが発生した後の活動である場合もあります。
リスク分析と軽減戦略
SDLC プロセスおよび組織の変更管理プロセスに統合する
標準化されたリスク評価方法を使用し、リスクを利害関係者に報告する
評価、変更管理、継続的なモニタリング中に特定された弱点を追跡および管理します
修正措置 - パッチ管理
基本設定
研究
指紋とデジタル署名の MD5 比較
ファイルの整合性チェック
評価とテスト
テスト環境でパッチをテストする
軽減 (「ロールバック」)
導入 (「ロールアウト」)
現在は重要度の低いシステムに導入されています
検証、レポート、ロギング
パッチ更新ログ、記録、アーカイブ
テストと検証
リスク管理策の実施にはテストが必要
セキュリティ評価者またはその他の独立した機関が、検証が必要な脆弱性を検証および確認します。
大きな組織では
独立した検証および検証 (IV&V) チームが、セキュリティの問題と脆弱性が解決されたかどうかを判断します
開発者とシステム所有者は、独立した組織の同意なしに、リスクが軽減されたという宣言を承認することはできません
コード署名
コード署名は、コードの整合性を確保し、そのコードの開発者を特定し、開発者がそのコードを使用する目的を判断するために使用される技術です。
コード署名証明書とデジタル証明書により、ユーザーは漏洩ファイルやアプリケーションのダウンロードを回避できます。
コードが署名されると、コードの信頼性を判断し、開発者以外の誰かによって変更されたかどうかを検出できます。
コード署名は次の目的で使用されます。
コードスニペットが変更されていないことを確認してください
コードのソースを特定する (開発者または署名者)
コードが特定の目的に対して信頼に値するかどうかを判断する
コード署名は 3 つの部分で構成されます
印鑑、デジタル証明書、固有の識別子
コード署名でできないこと
コード スニペットにセキュリティ上の脆弱性がないことが保証されるわけではありません
APP の実行中に、安全でないコードや変更されたコード (動作しないプラグインなど) が読み込まれないという保証はありません。
デジタル著作権管理 (DRM) またはコピー保護テクノロジーではありません
回帰テストと受け入れテスト 回帰テストと受け入れテスト
テストに関する考慮事項
バグを素早くテストする
パッチ適用の副作用を観察する
バグ修正ごとに回帰テスト計画を作成する
2 つ以上のテストが類似している場合、どれが効率が低いかを判断して破棄します。
テスト計画を特定し、継続的に実施して文書化する
デザインよりも機能的な問題に関する懸念
サイズに関係なくデータへの変更を特定し、その結果生じる破損を検出します。
プログラムメモリに対する変更の影響を追跡する
回帰試験
最も効果的なアプローチは、新しいバージョンが構築されるたびに実行できる標準テスト ケースのプールに基づくテスト ライブラリです。
テスト ライブラリを構築する際の難しさは、どのテスト ケースを含めるかを決定することです。
自動テストとテスト ケースには境界条件とタイミングも含まれ、これらはすべてテスト ライブラリに属します。
自動テストを効果的にするには、複雑なテスト方法論の一部として十分な変数を統合すると、コスト効率が高く効率的になります。
受け入れテスト (受け入れテスト)
システムが受け入れ基準を満たしているかどうかを判断し、顧客がシステムを受け入れるかどうかを決定できるようにするために実行される正式なテスト
アジャイル開発では、受け入れ可能性テスト/基準は通常、企業顧客によって確立され、ビジネスドメインの言語で記述されます。
SwA(ソフトウェアアシュアランス)段階 (開発または購入したソフトウェアがセキュリティ要件を満たしていることを確認してください) SAMM ソフトウェア アシュアランス成熟度モデル SAMM は、安全で組織特有のリスクに合わせたソフトウェアを設計するために使用されるフレームワークです。)
計画段階
ソフトウェア サービスまたは製品の特定された要件を取得し、代替となる可能性のあるソフトウェア手法を特定し、代替のリスクを特定します。
開発要件は作業明細書に含まれています
取得戦略を確立し、さまざまなソフトウェア取得戦略に関連するリスクの特定を含めます
評価基準と評価計画の策定
入札段階
仕事の説明、提案者の説明、契約条件、事前資格と認定を含む提案依頼書 (RFP) を作成/発行します。
提案依頼書 (RFP) または入札招待状 (ITT) に応じてサプライヤーによって提出された提案書を評価します。
契約条件の変更を含む契約交渉を完了する
監視と承認フェーズ
この段階は主に、サプライヤーの作業を監視し、契約で合意された最終的なサービスまたは製品の納品を受け入れることです。
契約作業スケジュールを確立し、同意する
変更管理手順の実装
ソフトウェア成果物を確認して受け入れる
後続フェーズ
持続性(リスク管理、保証ユースケース管理、変更管理を含む)
廃棄とオフライン
後続のフェーズでは、継続的保証のユースケース分析を通じてソフトウェア リスクを管理し、リスクを軽減するように調整する必要があります。
セキュリティ専門家は、企業全体にわたって SwA ポリシーと手順が十分に文書化されていることを確認する必要があります。
予期しないエラーが誤った動作を引き起こす
悪意のあるコードを意図的に挿入する
重要な情報や機密情報を盗む
個人情報を盗む
製品の変更、エージェントの挿入、または情報の破棄