Content last updated 2024-08-13

脆弱性とは何か?

脆弱性とは何か?

脆弱性とは、潜在的または実証されたセキュリティ上の影響を持つ、コードまたは設定の欠陥を指します。欠陥が単なるバグではなく脆弱性とみなされるためには、潜在的または実証されたセキュリティ上の影響を持っていなければなりません。セキュリティ上の影響とは、ソフトウェアまたはシステムの典型的なユーザーが予期しないとみなすような動作を引き起こす可能性によって分類され、ソフトウェアの可用性または完全性に悪影響を及ぼすか、システムによって保持または処理される情報の機密性に悪影響を及ぼします。多くの脆弱性は非常に創造的かつ予期しない方法で、しばしば他の脆弱性と組み合わさって攻撃チェーンを形成して悪用されるため、脆弱性が悪用可能であることが実証される必要はなく、脆弱性とみなされます。

脆弱性はいくつかの異なる方法で記述できます。コードまたはシステム内の脆弱性検出も脆弱性と呼ばれることが一般的です。既知の脆弱性に関する情報および既知の脆弱性についてのメタデータも脆弱性と呼ばれることが一般的です。例えば、CVE-2022-38392 は脆弱性とみなされます。これは特定のハードウェアの可用性に予期しない影響を引き起こす可能性のある状況を記述しています。影響を受けるハードドライブは脆弱とみなされ、脆弱性は脆弱性スキャナによって影響を受けるシステム上で検出されることもあります。脆弱性スキャナによって生成された脆弱性レポートを確認すると、影響を受けるシステムに関する CVE-2022-38392 の個別の検出も脆弱性とみなされます。このスキャナが GitLab スキャンアーティファクトをエクスポートでき、脆弱性が含まれていれば、それは GitLab で脆弱性として表現されます。脆弱性追跡 Issue を作成して、脆弱性の緩和と解決を追跡できます(この場合、ハードドライブの交換が最も可能性の高い緩和策です)。ご覧のとおり、「脆弱性」という用語はしばしば多義的に使われ、混乱を招く可能性があります。曖昧さを避けるために、脆弱性の個別検出はしばしば「finding」、「検出」、または「脆弱性 finding」と呼ばれます。脆弱性に関するメタデータは、しばしば「advisory」または「脆弱性データ」と呼ばれます。

Advisory

Advisory は、1 つ以上のソースによって公開された脆弱性に関する情報であり、典型的には脆弱なソフトウェア、ハードウェア、またはオペレーティングシステムのベンダーまたはメンテナを含みます。Advisory はまた NVD のような機関によっても発行・維持されており、しばしば CVE 番号などの識別子を持ちますが、他の識別子も存在し、一部の advisory データベースで使用されています。GitLab も独自のソフトウェアに関する advisory を発行し、CVE も発行できます。Advisory データベースとデータソースは脆弱性の詳細について常に一致しているわけではなく、評価された影響や脆弱性に関して利用可能な情報の量についてしばしば異なります。場合によっては、ベンダーがより具体的な情報を含む別の advisory を参照する独自の advisory を公開することがあります。その一例は、Red Hat が発行する RHSA で、脆弱性の影響をカバーします(典型的には CVE を伴います)。RHSA は Red Hat が修正をリリースしたときにのみ発行され、Red Hat が特定の脆弱性がパッケージ化されたバージョンのコンポーネントには存在しないと判断する場合があり、その場合、脆弱性は修正されず、Red Hat の advisory にはこれが反映されますが、NVD によって記録された advisory にはこのレベルの詳細がない場合があります。

脆弱性 Finding

セキュリティスキャンツール(コンテナスキャナや依存関係スキャナなど)による脆弱性の個別検出が finding です。システム上またはコードベース内の個別の脆弱性 finding は修復できます。脆弱性 finding は、典型的には個別の脆弱性 finding をトリアージ・解決する際に有用な advisory にリンクされて参照されており、advisory は脆弱性に関するガイダンスと影響情報を提供します。GitLab では、私たちは脆弱性 finding を vulnerability として GitLab で追跡しますが、現在、私たちが責任を負うコードとシステムにおける脆弱性修復のワークフローとライフサイクルを追跡するために Issue も使用しています。これは advisory とは異なります。なぜなら、finding は、ソフトウェア欠陥に関する一般的な情報やアドバイスではなく、検出されたコンポーネント内で検出された脆弱性の単一インスタンスを指すからです。