本文へ移動

ソフトウェアサプライチェーンの​セキュリティ · 2026.10.24

企業の​ソフトウェアセキュリティの​境界は⁠、​調達契約だけでは​決まらない

PHP の​深刻な脆弱性をきっかけに⁠、​企業が​ソフトウェアの​依存関係リスト⁠、​影響の​判断⁠、​対応を​決める​権限⁠、​稼働環境での​検証をどうつなぐかを​考える⁠。​SBOM は​出発点であり⁠、​パッチの​公開は​終着点ではない⁠。​「不明⁠」を​「安全⁠」に​含めてもいけない⁠。

PHP の​深刻な脆弱性に​関する​情報が​公開されたとき⁠、​「主要なシステムは PHP で​書いていない⁠」というだけでは⁠、​影響がないと​判断する​根拠として​足りない⁠。

企業がある​技術を​直接選んでいなくても⁠、​その​技術が​企業の​システムに​入っていないとは​限らない⁠。​サードパーティー製品に​含まれていたり⁠、​実行環境として⁠、​業務部門からは​見えない​機能を​支えていたりする​可能性がある⁠。​オランダ国家サイバーセキュリティセンター NCSC-NL が PHP2Shell 向けに​整備した​資料リポジトリにも⁠、​PHP に​依存する⁠、​あるいは PHP を​組み込んだ​サードパーティー製品を​調べるための​情報が​含まれている⁠。​[1]

企業が​使うソフトウェアを​見るには⁠、​少なくとも​三つの​視点が​必要だ⁠。​自社で​何を​開発したか⁠、​何を​購入し⁠、​何の​開発を​委託したか⁠、​そして⁠、​それらの​ソフトウェアがさらに​何に​依存しているかだ⁠。

三つ目は⁠、​前の​二つとは​別に​存在する​ソフトウェア群ではない⁠。​前の​二つの​内部にある⁠。​OS⁠、​言語の​実行環境⁠、​オープンソースの​コンポーネント⁠、​ベースイメージ⁠、​さらにそれらが​依存する​別の​コンポーネントだ⁠。

調達記録が​答えるのは​「何を​買ったか⁠」であり⁠、​依存関係が​答えるのは​「何に​支えられて​動くか⁠」だ⁠。​この​二つは​同じリストではない⁠。

契約はもちろん重要だ⁠。​誰が​情報を​提供し⁠、​誰が​パッチを​届け⁠、​誰が​サポートを​担うかを​定められる⁠。​しかし⁠、​技術的な影響範囲は​契約だけでは​判断できない⁠。​ある​コンポーネントに​問題が​起きたら⁠、​依存関係をたどって​実際の​システムまで​調べる​必要がある⁠。​ベンダー名がわかったところで​止めてはいけない⁠。

一⁠、​コンポーネント名を​並べるだけで​終わらせない

SBOM(ソフトウェア部品表⁠)は⁠、​ソフトウェアがどの​コンポーネントで​構成されているかを​企業が​把握する​助けになる⁠。​いわば​ソフトウェアの​「成分表⁠」であり⁠、​企業の​全業務⁠、​デプロイ先⁠、​責任者まで​自動的に​網羅する​台帳ではない⁠。​[2]

そのため⁠、​「ベンダーから SBOM を​集めた⁠」だけでは⁠、​出発点に​立ったにすぎない⁠。​資産管理や​脆弱性管理と​結びつけて​初めて⁠、​一件の​脆弱性情報から⁠、​該当する​コンポーネントを​含む導入済み製品をたどれるようになる⁠。​CISA などの​機関が​示す SBOM の​活用ガイドは⁠、​まさにこうしたつなぎ方を​説明している⁠。​[3]

企業の​管理に​落とし​込むなら⁠、​もう​一歩踏み込んで​問える⁠。​コンポーネントが​見つかった​後⁠、​次は​誰にたどり着けるのか⁠。

ある​製品に PHP が​含まれると​リストに​記載されていたとしよう⁠。​企業はさらに⁠、​その​製品がどこに​デプロイされているか⁠、​今も​使われているか⁠、​どの​入口が​外部に​公開されているか⁠、​どの​業務を​支えているか⁠、​どの​チームが​保守し⁠、​誰が​一時的なアクセス制限を​決められるかを​知る必要がある⁠。

これらの​関係がつながっていなければ⁠、​セキュリティチームが​受け取るのは​単なる​技術用語であり⁠、​業務部門にはまた​一通⁠、​転送待ちの​メールが​届くだけだ⁠。

リストは​納品時の​検収だけに​使うものでもない⁠。​ソフトウェアの​バージョン⁠、​実際の​配備状況⁠、​保守の​責任分担が​変わったら⁠、​関連する​記録も​併せて​更新すべきだ⁠。​そうしなければ⁠、​書類がいくら​整っていても⁠、​本番環境の​今の​状態に​答えられるとは​限らない⁠。

役に​立つリストは⁠、​脆弱性を​最終的に⁠、​対応に​着手できる​システムへ​結びつけるものであるべきだ⁠。​コンポーネント名の​一行に​結びつけるだけでは​足りない⁠。

二⁠、​「この​コンポーネントがある⁠」と​「この​システムは​影響を​受ける⁠」の​間には⁠、​まだ​証拠が​必要だ

コンポーネントが​見つかっても⁠、​すぐに​両極端の​結論を​出してはいけない⁠。​システムが​攻撃可能な状態だと​一律に​断定することも⁠、​まだ​攻撃が​見つかっていないから​リスクはないと​判断することもできない⁠。

CISA の VEX 技術文書では⁠、​脆弱性に​関する​状態を​「影響あり⁠」​「影響なし⁠」​「修正済み⁠」​「調査中⁠」に​分けている⁠。​「影響なし⁠」とするには⁠、​その​根拠となる​理由や​影響に​関する​説明が​必要だ⁠。​この​区別が​示すように⁠、​コンポーネントの​リストと​影響の​判断は​同じではない⁠。​[4]

今回の PHP の​脆弱性を​例に​取ると⁠、​2026 年 10 月 21 日に​公式に​公開された​修正版は 8.2.35⁠、​8.3.36⁠、​8.4.27⁠、​8.5.12 だ⁠。​認証なしでの​リモートコード実行につながり得る二つの​深刻な脆弱性に​対応している⁠。​10 月 23 日には⁠、​セッション設定と​実行時の​切り替えのまれな​組み合わせについて⁠、​追加の​リスク情報も​公式に​公開された⁠。​[5]

つまり⁠、​調査は​バージョン番号を​書き写すだけでは​終わらない⁠。​公開情報が​対象とする​脆弱性⁠、​実際の​製品⁠、​デプロイの​方法⁠、​適用条件まで​照合する​必要がある⁠。

バージョン番号も⁠、​それだけで​意味を​判断できるわけではない⁠。​一部の​ディストリビューターは⁠、​サポート中の​旧バージョンに​セキュリティ修正を​移植する⁠。​これが backport(バックポート⁠)だ⁠。​Red Hat はこの​手法を​明示している⁠。​したがって⁠、​上流の​修正版より古く見える​ベンダー提供パッケージも⁠、​未修正とは​限らない⁠。​逆に⁠、​「ベンダーが​バックポートしているはずだ⁠」という​推測も​証拠の​代わりにはならない⁠。​具体的なパッケージの​バージョンと⁠、​ベンダーの​セキュリティ情報を​確認する​必要がある⁠。​[6]

まだ​判断の​根拠が​得られていない​システムは⁠、​「調査中⁠」とするのが​最も​誠実だ⁠。

ベンダーが PHP を​使っているか​不明だからといって⁠、​使っていないことにはならない⁠。​脆弱性の​通知を​受け取っていないからといって⁠、​影響がないと​確認できたわけでもない⁠。​ベンダーから​「評価中⁠」と​一言返ってきたからといって⁠、​企業が​状況の​確認をやめてよいわけではない⁠。

「不明⁠」の​項目にも⁠、​担当者と​次回の​確認日時を​付けるべきだ⁠。​報告の​中で⁠、​いつの​間にか​「安全⁠」に​数え入れてはいけない⁠。

三⁠、​迅速な対応には⁠、​どこまでの​負担を​受け入れるか​決める​人が​要る

システムに​影響があるとわかっても⁠、​それだけで​企業が​行動に​移れるとは​限らない⁠。

外部向けの​サービスに​修正が​必要になったとしよう⁠。​技術チームは​アップグレードを​準備できるが⁠、​作業には​短時間の​停止が​必要かもしれない⁠。​業務部門は​受注への​影響を​避けたく⁠、​ベンダーの​検証もまだ​終わっていない⁠。​このとき足りないのは⁠、​もう​一つの​技術的な助言ではなく⁠、​明確に​指名された​意思決定者かもしれない⁠。

リスクの​高いアクセス経路を​一時的に​閉じる​判断は​誰が​承認できるのか⁠。​短時間の​サービスレベルの​低下を​誰が​受け入れられるのか⁠。​アップグレードを​見送るなら⁠、​残るリスクを​誰が​確認し⁠、​いつ再評価するのか⁠。

こうした​問いには⁠、​平時から​答えを​用意しておくべきだ⁠。​緊急対応の​会議になってから⁠、​決裁権を​持つ人を​探すのではない⁠。

今回の PHP の​問題について⁠、​CERT-EU は​影響を​受ける IT 資産の​即時修正を​推奨している⁠。​迅速な修正ができない​場合には⁠、​修正を​適用して​検証するまで⁠、​インターネット向けの​アプリケーションを​公開ネットワークから​隔離することを​検討すべきだとしている⁠。​[7]

ここで​重要なのは​「すべての​システムを​一律に​停止すること⁠」ではない⁠。​「今は​アップグレードできない⁠」を​「今は​何もしなくてよい⁠」と​解釈しないことだ⁠。​実際に​攻撃にさらされる​範囲⁠、​業務への​影響⁠、​公式の​推奨内容を​踏まえ⁠、​実行可能な暫定措置を​選び⁠、​その​限界も​明らかにする​必要がある⁠。

暫定的な防御策は⁠、​対応の​時間を​確保するためのものだ⁠。​無期限に​先送りする​理由にしてはいけない⁠。​パッチを​待つという​判断にも⁠、​責任を​持つ人と​見直しの​時期が​必要だ⁠。

四⁠、​「パッチを​入れた⁠」​後にも⁠、​本当の​完了確認がある

ベンダーが​公開した⁠、​運用担当が​インストールした⁠、​チケットを​クローズした⁠。​それぞれが​示すのは⁠、​別の​工程だ⁠。​どれも⁠、​それだけで​現在の​稼働状態を​確認したことにはならない⁠。

NIST の​企業向けパッチ管理ガイドは⁠、​検証を​手順に​明確に​組み込んでいる⁠。​パッチの​インストールだけでなく⁠、​その​修正が​有効になったことも​確認する⁠。​状況によっては⁠、​ソフトウェアの​再起動⁠、​再デプロイ⁠、​設定変更が​必要になる​場合があり⁠、​防御措置が​解除されていないことも​継続して​確認する⁠。​[8]

そのため⁠、​修正を​確かに​裏づける​記録は⁠、​次の​問いに​答えられるものであるべきだ⁠。​稼働中のどの​インスタンスに​修正を​適用し⁠、​どれが​未完了なのか⁠。​重要な業務は​正常に​動いているか⁠。​暫定的な防御策を​残す必要はまだあるか⁠。​ロールバックすると⁠、​未修正の​バージョンを​再び持ち込むことにならないか⁠。

完了を​確認すべき対象は⁠、​業務を​支えて​稼働している​環境だ⁠。​正常終了した​インストールコマンドではない⁠。

もう​一つ⁠、​別に​問わなければならないことがある⁠。​修正前に⁠、​すでに​システムへ​侵入されていなかったか⁠。

Microsoft は⁠、​2021 年の Exchange の​問題に​関する​公式の​対応ガイドで⁠、​セキュリティ更新を​インストールしても⁠、​すでに​侵入した​攻撃者を​排除することはできないと​明記している⁠。​ここで​参照しているのは​対応の​原則であり⁠、​今回の PHP の​問題で​特定の​システムが​攻撃されたと​断定しているわけではない⁠。​侵入が​見つかった​場合や​疑われる​場合は⁠、​脆弱性の​修正と​インシデント調査を​並行して​進める​必要がある⁠。​パッチ適用の​成功を⁠、​調査や​攻撃者の​排除に​代えることはできない⁠。​[9]

修正でふさぐのは​侵入口だ⁠。​調査で​確かめるのは⁠、​過去に​何が​起きたかだ⁠。​復旧時に​確認するのは⁠、​この​環境を​今も​信頼できるかどうかだ⁠。​この​三つは​互いの​代わりにはならない⁠。

五⁠、​ベンダーが​届けるものを⁠、​自社の​対応につなげる

実務に​落とし​込むなら⁠、​責任分担をもう​少し具体的に​設計できる⁠。

ベンダーは⁠、​製品が​影響を​受けるか⁠、​その​判断の​根拠は​何か⁠、​どの​バージョンに​修正が​含まれるか⁠、​デプロイと​ロールバックにどのような​制約があるかを​説明する​必要がある⁠。​社内では⁠、​実際の​利用範囲を​確認し⁠、​変更を​手配し⁠、​結果を​検証し⁠、​まだ​修正できない​例外を​扱う人が​必要になる⁠。​具体的な分担は​異なってよい⁠。​ただし⁠、​その​間に​誰も​引き受けない​空白があってはいけない⁠。​[10]

「外部委託した​システムだ⁠」という​情報は⁠、​適切な対応経路を​見つけるために​使うべきだ⁠。​そこで​対応を​止める​理由にしてはいけない⁠。

同じように⁠、​保守が​終了した​製品も⁠、​「当面は​アップグレードしない⁠」という​注記だけで​済ませるべきではない⁠。​例外ごとに⁠、​現在の​防御策⁠、​明確な責任者⁠、​見直しの​日付⁠、​置き換えや​廃止の​計画を​求めるという​方法がある⁠。​これは​管理上の​選択肢であり⁠、​古いシステムをすべて​直ちに​停止せよという​話ではない⁠。

この​仕組みが​本当にあるかを​確かめるなら⁠、​まず​業務フロー図の​完成度を​調べる​必要はない⁠。​実在する​脆弱性を​一件選び⁠、​対応の​道筋をたどってみればよい⁠。

その​途中で​改めて​誰かに​聞き回らなければ​進めない​箇所があれば⁠、​そこが​優先して​補うべきところだ⁠。

使っている​コードのすべてを⁠、​自社で​書き⁠、​レビューし⁠、​保守することはできない⁠。​それでも⁠、​重要な業務が​何に​依存し⁠、​問題が​起きたら​誰が​対応し⁠、​何を​根拠に​対応完了を​確認するのかは⁠、​少なくとも​把握しておくべきだ⁠。

セキュリティ管理で​本当につなぐべきなのは⁠、​「脆弱性情報—メール—チケット⁠」ではなく⁠、​「依存関係—影響—意思決定—稼働結果⁠」だ⁠。

次に​重大な脆弱性が​見つかったとき⁠、​企業がするべきなのは⁠、​すでに​整えたこの​道筋に​沿って​対応することだ⁠。​「この​コードをいったい​誰が​使っているのか⁠」と⁠、​初めて​探し始めることではない⁠。

私の考え

技術的な影響範囲は⁠、​調達や​外部委託の​区分だけでは​判断できない⁠。​企業は⁠、​依存関係⁠、​影響⁠、​意思決定⁠、​稼働結果をつなぎ⁠、​個々の​リスクについて​対応の​道筋を​追え⁠、​完了の​証拠を​確認できるようにする​必要がある⁠。