pulpul 日本の試験

エンベデッドシステムスペシャリスト 概念書 · セキュリティ

脆弱性管理とファジング検査

脆弱性管理は、ソフトウェアに含まれる欠陥を把握し、評価して修正や利用者への周知につなげる一連の活動である。ファジングは、ソフトウェアに多様な入力を与えて脆弱性を見つけ出す検査手法である。両者は、欠陥を事前に発見し、組織として対応する仕組みを作る点で関連する。

脆弱性を把握するための情報と識別子

SBOM(Software Bill Of Materials)は、ソフトウェアを構成する部品とその依存関係などを記録した目録である。SBOMに記載された構成部品やバージョンを脆弱性情報と照合すれば、利用中のソフトウェアに脆弱性のある部品が含まれるかを把握できる。SBOM管理ツールは、このような脆弱性管理に用いられる。

CVE(Common Vulnerabilities and Exposures)は、公開された脆弱性を個別に識別するための識別子である。JVNなどの脆弱性情報サイトでも採用されており、同じ脆弱性を異なるサイトや製品の間で共通の番号により追跡できる。

エクスプロイトコードは、ソフトウェアの脆弱性を悪用するコードであり、攻撃に使われる一方で、脆弱性の再現や検証にも役立つ。脆弱性の存在を確かめる作業と、攻撃の実行とは、同じコードが両方に関わる点で整理して理解する必要がある。

組織内での対応体制

自社製品の脆弱性に起因するリスクに対応するには、製品の脆弱性情報を受け付け、影響を評価し、修正や利用者への告知を調整する機能が必要となる。この役割を担う製品セキュリティ対応機能がPSIRTである。

CSIRTは、組織内で発生したセキュリティインシデントへの対応を担う機能である。SOCは、ネットワークやシステムのログを監視し、攻撃や異常を検知・分析する機能である。どちらも製品の脆弱性を修正する機能ではないため、PSIRTとの役割の違いを押さえておく必要がある。

ファジングの原理と判断の基準

ファジングは、形式や内容を変えた大量の入力データをソフトウェアに与え、異常終了や例外、予期しない挙動を監視して、脆弱性や不具合を見つける手法である。想定外の入力で処理を誤らせる点が本質であり、既知の脆弱性を照合する検査とは発想が異なる。

この節の続き

ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。

アプリでこの節を読む