「うちのサーバー、ちゃんと安全なんだろうか」という漠然とした不安を抱えながら、毎朝セキュリティニュースをチェックしている方も多いのではないでしょうか。
セキュリティの話題で必ず登場する「脆弱性」という言葉。なんとなくは分かるけれど、いざ説明しようとすると意外と難しいものです。
この記事では、脆弱性の定義から種類、リスク評価の読み方、そして現場ですぐ使える対策まで、基礎から体系的に解説します。セキュリティ管理を担うインフラエンジニア・情シス担当者が「正しく怖がれる」ための基礎知識として、ぜひご活用ください。

脆弱性とは何か?
脆弱性(ぜいじゃくせい)とは、ソフトウェア・ハードウェア・システム設定・業務プロセスなどに存在するセキュリティ上の弱点のことです。攻撃者にこの弱点を悪用されると、不正アクセス・情報漏洩・システム停止といった被害につながります。
「セキュリティホール」「セキュリティバグ」とほぼ同じ意味で使われることもありますが、正確には次のように整理できます。
・バグ(不具合): 意図しない動作全般。セキュリティに直接関係しないものも含む
・脆弱性: バグのうち、攻撃者に悪用される可能性があるもの
・エクスプロイト: 脆弱性を実際に攻撃するコードや手法
つまり「脆弱性があるから危険」なのではなく、「脆弱性を悪用する攻撃手法(エクスプロイト)が存在するとき、現実的なリスクになる」という点が重要です。脆弱性そのものは発見・修正できれば問題を防げますが、攻撃者に先に見つかると深刻な被害につながります。
脆弱性が生まれる3つの原因
脆弱性がどこから来るのかを理解すると、対策の方向性が見えてきます。
1. コーディングミス
開発者の実装ミスがそのままセキュリティの弱点になるケースです。バッファオーバーフロー(データの書き込み先を超えたメモリへのアクセス)や、SQLインジェクション(データベースへの不正なコマンド挿入)が代表例です。
開発フェーズで混入することが多く、一度コードに入り込むと発見が困難なことが特徴です。セキュアコーディングの原則を開発プロセスに組み込み、コードレビューや静的解析ツールで早期に検出することが基本的な対策になります。
2. 設計・設定の欠陥
正しく実装されていても、設計や設定が不適切だと脆弱性になります。
・デフォルト認証情報の放置: 購入時のパスワードをそのまま使い続ける
・過剰な権限付与: 必要以上の管理者権限をユーザーに付与する
・暗号化の未適用: 通信や保存データを暗号化しない
・不要なサービスの起動: 使っていないポートやサービスを開放したままにする
こういった問題は「設定ミスによる脆弱性」とも呼ばれ、ツールや設定の見直しだけで対処できることが多いです。
3. 運用・人的な問題
セキュリティパッチの未適用や、ログ監視の抜けも脆弱性の一形態です。ソフトウェアベンダーが修正プログラムを公開しても、適用が遅れると「修正済みの脆弱性が手つかずのまま残る」状態になります。
攻撃者はパッチ公開後に逆算して攻撃コードを作るため、パッチ未適用の期間が長いほどリスクが高まります。一般的には「パッチ公開から数日以内に攻撃コードが流通する」ことも珍しくありません。
脆弱性の主な種類
脆弱性は大きく4つのカテゴリに分類されます。
| 分類 | 代表例 | 影響を受けるもの |
|---|---|---|
| Webアプリケーション脆弱性 | SQLインジェクション・XSS・CSRF | WebサービスのDB・セッション |
| OSやミドルウェアの脆弱性 | バッファオーバーフロー・RCE(リモートコード実行) | サーバー・クライアント全体 |
| ネットワーク機器の脆弱性 | ファームウェアの欠陥・認証バイパス | ファイアウォール・VPN・ルーター |
| 設定ミスによる脆弱性 | 過剰なアクセス権・平文通信・デフォルトパスワード | クラウド設定・ファイルサーバー |
Webアプリケーション脆弱性については、業界標準の分類としてOWASP Top 10が広く参照されています。重大な脆弱性カテゴリをランキング形式で整理しており、セキュリティ対策の優先順位付けに役立ちます。
脆弱性の深刻度を測る:CVEとCVSSの読み方
セキュリティニュースに登場する「CVE-20XX-XXXXX」という識別番号と「CVSSスコア」の2つを理解すると、パッチ適用の優先度判断が格段に楽になります。
CVE(共通脆弱性識別子)とは
CVEは個々の脆弱性に付けられる世界共通の識別番号です。同じ脆弱性を異なるベンダーやツールが違う名前で呼ぶ混乱を防ぐために設けられています。ベンダーの修正情報や各種セキュリティツールの定義ファイルはこの番号で紐付けられているため、正確な情報追跡の基点になります。
詳しくは「CVEとは?共通脆弱性識別子の仕組み・読み方・JVN・NVDを使った脆弱性情報の調べ方を解説」をご覧ください。
CVSS(共通脆弱性評価システム)とは
CVSSは脆弱性の深刻度を0.0~10.0のスコアで表す評価基準です。攻撃の容易さ、必要な権限、影響の範囲などを点数化します。
・9.0~10.0(Critical): 即時対応が必要。リモートから認証なしで攻撃できるケースが多い
・7.0~8.9(High): 優先的に対応。今週中のパッチ適用を検討
・4.0~6.9(Medium): 計画的に対応。次回メンテナンス窓でのパッチ適用が目安
・0.1~3.9(Low): リスクに応じて対応。自社環境での影響を評価してから判断
ただし、CVSSスコアだけで優先度を決めるのは禁物です。スコアが低くても自社の重要なシステムに影響する場合は優先対応が必要です。
CVSSの詳しい読み方は「CVSSとは?脆弱性スコアの読み方・優先度判断を現場目線で解説」で解説しています。
脆弱性情報の確認から対処までの流れ
1. 脆弱性情報を入手する
国内で最も参照される情報源はJVN(Japan Vulnerability Notes)とIPA(情報処理推進機構)です。メール配信サービスを利用すれば、自社に関係する脆弱性の通知を自動で受け取れます。
# 脆弱性情報の主な入手先 # JVN(Japan Vulnerability Notes)— 国内の一次情報 # https://jvn.jp/ # IPA 重要なセキュリティ情報 — 日本語で優先度付き解説 # https://www.ipa.go.jp/security/ # NVD(米国国立脆弱性データベース)— CVSSスコアの公式情報源 # https://nvd.nist.gov/ # CISA KEV(悪用確認済み脆弱性リスト)— 実際に悪用された脆弱性 # https://www.cisa.gov/known-exploited-vulnerabilities-catalog
2. 影響範囲を確認する
脆弱性情報を受け取ったら、まず「自社のシステムが影響を受けるか」を確認します。対象バージョン・製品名・設定条件などを照合します。資産管理台帳(使用しているソフトウェアとバージョンの一覧)が整備されていると、この作業が大幅に短縮できます。
3. 優先度を判断してパッチを適用する
すべての脆弱性を同時に対処するのは現実的ではありません。CVSSスコアと「実際に悪用されているか(CISA KEVに掲載されているか)」を組み合わせて優先順位を決めるのが実務的なアプローチです。
脆弱性管理のサイクル全体については「脆弱性管理とは?発見・評価・修正・検証の4ステップと中小企業での実践ガイド」で詳しく解説しています。
中小企業でも今日からできること
脆弱性管理と聞くと大掛かりな体制が必要なイメージがありますが、まずは次の3点から始めるだけで大きく変わります。
・OSとソフトウェアの自動更新を有効化する: Windows Updateやaptの自動アップグレードを設定する。これだけで「既知の脆弱性を放置している」状態を防げます
・JVNやIPAのメール通知を登録する: 自社が使用する製品の脆弱性情報を無料で受け取れます。対応が必要な情報だけに絞り込んで登録するのがコツです
・四半期に一度、スキャンを実施する: 無料ツールで社内のオープンポートや設定ミスを可視化します。「何を守るべきか」が見えると対策の優先順位が明確になります
Linuxサーバーの脆弱性対策については、姉妹サイトLinuxMaster.JPでサーバー設定やパッケージ管理の基礎を詳しく解説しています。
よくある誤解と注意点
【注意1】「CVSSスコアが低ければ放置していい」は危険
CVSSスコアは「一般的な状況での深刻度」を示すものです。自社のシステム構成や業務フローによっては、スコアが低い脆弱性でも深刻な影響を及ぼすことがあります。スコアを参考にしながらも、自社の文脈に合わせた評価が必要です。
【注意2】「ゼロデイ以外は安全」は誤り
攻撃者は既知の脆弱性(パッチが公開されたもの)を積極的に悪用します。一般的には、パッチ公開後に攻撃コードが出回るのは時間の問題です。「ゼロデイでないから大丈夫」という発想は、脆弱性対応の先送りにつながります。
【注意3】「古いシステムには脆弱性がない」は誤り
サポート終了(EOL)のOSやソフトウェアは、脆弱性が発見されてもパッチが提供されません。「古くて安定している」は「古くて修正されない」と表裏一体です。EOL状態のシステムはネットワーク分離や早期移行を検討する必要があります。

本記事のまとめ
| ポイント | 内容 |
|---|---|
| 脆弱性の定義 | 攻撃者に悪用されうるセキュリティ上の弱点 |
| 主な原因 | コーディングミス・設計欠陥・パッチ未適用の3種類 |
| 深刻度の測り方 | CVE(識別番号)×CVSS(スコア0.0~10.0) |
| 対処の優先順位 | CVSSスコア+CISA KEV(実際の悪用状況)で判断 |
| 今日からできること | 自動更新有効化・JVN通知登録・定期スキャン |
脆弱性は「あって当たり前」の存在です。ゼロにすることは現実的ではありませんが、発見から修正までのサイクルを回し続けることで、攻撃者が悪用できる時間を最小化できます。
まずは今日使っているシステムのバージョンを確認し、JVNの通知登録を済ませるところから始めてみてください。
PR
体系的に学ぶ 安全なWebアプリケーションの作り方 第2版(徳丸浩/SBクリエイティブ)
Webアプリケーションの脆弱性を体系的に解説した定番書。SQLインジェクション・XSS・CSRFなどの仕組みと対策を実践的に学べます。開発者・情シス担当者を問わず、脆弱性の基礎理解を深めたい方に最適な一冊です。
