11.2. 評価の種類
Kali環境の準備が整ったので、次のステップは、どのような種類の評価を実施するのかを正確に定義することです。最もレベルの高い評価には、以下の4つの種類があります。 脆弱性評価 コンプライアンステスト 従来の侵入テスト、および アプリケーション評価エンゲージメントには各タイプの評価のさまざまな要素が含まれる場合がありますが、それらを詳細に記述し、Kali Linux ビルドと環境との関連性を説明することは価値があります。
さまざまな種類の評価を詳しく検討する前に、まず脆弱性とエクスプロイトの違いを認識することが重要です。
A 脆弱性 脆弱性とは、悪用されると情報システムの機密性、完全性、または可用性を損なう欠陥と定義されます。脆弱性には、以下のような様々な種類があります。
• ファイルインクルード: ファイルインクルードの脆弱性1 ウェブアプリケーションでは include ローカルファイルまたはリモートファイルの内容をプログラムの計算に組み込むこと。例えば、ウェブアプリケーションに「今日のメッセージ」機能があり、ファイルの内容を読み取り、ウェブページに組み込んでユーザーに表示するとします。この種の機能が誤ってプログラムされている場合、攻撃者はウェブリクエストを改変し、任意のファイルの内容を強制的にサイトに組み込むことができます。
• SQLインジェクション: SQLインジェクション2 攻撃とは、プログラムの入力検証ルーチンをバイパスし、攻撃者が標的のプログラムにSQLコマンドを実行させる攻撃です。これは、潜在的なセキュリティ問題につながる可能性のあるコマンド実行の一形態です。
• バッファオーバーフロー: バッファオーバーフロー3 入力検証ルーチンをバイパスしてバッファの隣接メモリにデータを書き込む脆弱性です。場合によっては、その隣接メモリ位置が標的プログラムの動作に重要な意味を持つ可能性があり、上書きされたメモリデータを巧妙に操作することでコード実行を制御できる可能性があります。
• 競合状態:競合状態4 プログラム内のタイミング依存性を悪用する脆弱性です。場合によっては、プログラムのワークフローは特定のイベントの発生順序に依存します。このイベントの順序を変更できる場合、脆弱性につながる可能性があります。
An エクスプロイト一方、エクスプロイトとは、特定の脆弱性を悪用するソフトウェアですが、すべての脆弱性が悪用可能であるとは限りません。エクスプロイトは実行中のプロセスを変更し、意図しない動作を強制する必要があるため、エクスプロイトの作成は複雑になる可能性があります。さらに、現代のコンピューティングプラットフォームには、エクスプロイト対策技術が数多く存在します。
1https://en.wikipedia.org/wiki/File_inclusion_vulnerability 2https://en.wikipedia.org/wiki/SQL_injection 3https://en.wikipedia.org/wiki/Buffer_overflow 4https://en.wikipedia.org/wiki/Race_condition
データ実行防止などの脆弱性を悪用されにくくするように設計されています5 (DEP) とアドレス空間レイアウトのランダム化6 (ASLR)。ただし、特定の脆弱性に対するエクスプロイトが公開されていないからといって、エクスプロイトが存在しない(または作成できない)ということではありません。例えば、多くの組織は、公開されることのない商用エクスプロイトを販売しているため、すべての脆弱性は潜在的に悪用される可能性があるものとして扱う必要があります。