脆弱性管理とは、ソフトウェアの脆弱性を特定、分類、優先順位付け、修復、軽減する「循環的な実践」であり、[ 1 ]コンピュータセキュリティとネットワークセキュリティの一部です。これは脆弱性評価の一形態です。
脆弱性は、コンピュータシステムを分析して既知の脆弱性(開いているポート、安全でないソフトウェア構成、マルウェア感染に対する脆弱性など)を探す脆弱性スキャナを使用して発見できます。 [ 2 ]また、NVD、ベンダー固有のセキュリティアップデートなどの公開情報源を参照したり、商用の脆弱性アラートサービスに加入したりすることによっても特定できます。
ファジングテストでは、ゼロデイ脆弱性[ 2 ]などの未知の脆弱性が見つかることがあります。ファジングは、ランダムまたは半ランダムな入力データをプログラムに与えて予期しない動作を検出する基本的な手法です。AFL(American Fuzzy Lop )やlibFuzzerなどのツールはこのプロセスを自動化し、より高速かつ効率的にします。ファジングテストでは、関連するテストケースを使用してバッファオーバーフローなどの特定の種類の脆弱性を特定できます。
同様に、静的解析ツールは、プログラムを実行せずにソースコードやバイナリを分析して潜在的な脆弱性を特定します。静的解析と動的解析を組み合わせた高度な技術であるシンボリック実行は、脆弱性の特定をさらに支援します。[ 3 ]このような解析は、テスト自動化によって促進されます。さらに、ヒューリスティック解析が可能なウイルス対策ソフトウェアは、疑わしい動作(システムファイルの上書きを試みるなど)をしているソフトウェアを発見した場合、文書化されていないマルウェアを発見する可能性があります。
さらに、脆弱性管理のために、組織はサードパーティ コンポーネントのチェックにSCA/ SBOMツール、資産インベントリ システム、 SIEM /SOAR、およびリスク優先順位付けプラットフォームを使用します。データ ソースには、公開されている脆弱性を特定するための CVE、技術的な深刻度スコアリングのための NVD および CVSS、[ 4 ]弱点タイプの分類のための CWE、Web リスクのための OWASP Top 10、実際に悪用されている脆弱性のためのCISA KEV、および CVE が今後 30 日以内に悪用される確率を予測するための EPSS が含まれます。[ 5 ] [ 6 ] [ 7 ]
脆弱性を修正するには、パッチのインストール、ネットワークセキュリティポリシーの変更、ソフトウェアの再構成、またはソーシャルエンジニアリングに関するユーザー教育などが必要になる場合があります。