アーティサン株式会社
  • AI関連
  • セキュリティ・保守

移行の2か月後にPHPの重大な脆弱性が発覚。そのとき、どう対応したか

第4回:生成AIを活用した日々のチェックと更新運用

この記事の4行要約

  • 2026年10月にPHPの重大な脆弱性の修正版が公開された際、移行先のAzure環境では修正版が既に配信されていました
  • 準備した手順を実行する前に現在の状態を確認し、追加の切替・再起動は不要と判断しました
  • 現在は生成AIを使って脆弱性情報の確認と各種更新を日々続け、公式情報と実環境を照合して人が判断しています
  • 移行時の記録や試験項目が、その後の更新・確認・復旧への備えに役立っています
この記事を書いた人
小山才喜

小山 才喜こやま さいき

Microsoft Azure Microsoft 365 AI開発

元マイクロソフトの技術営業、ジョルダン社での事業立ち上げを経て独立、起業13年目の生涯現役社長

元MVP(Microsoft Valuable Professional)
「VSTOとSharePoint Server 2007による開発技術」

など著書多数

Microsoft 認定資格(MCP)を30以上保持したタイトルホルダー


PHPの重大な脆弱性への対応に備えて、更新手順を準備する。実環境を確認すると、修正版は既に配信されていました。

2026年10月の対応では、準備していた追加の切替・再起動は実施せず、稼働バージョンとサイトの正常性を確認しました。

今回のWordPress・PHP移行を終えたのは、その約2か月前です。タイミングは偶然で、この脆弱性を知って移行を始めたわけではありません。

現在は、移行で整えた体制を使い、生成AIによる脆弱性チェックと各種更新を日々続けています。今回は、移行後の具体的な対応と、継続的な運用に生成AIをどう生かしているかを紹介します。

まず、修正版が適用されているかを確認した

2026年10月、PHPでは重大な脆弱性に対する修正版として、PHP 8.3.36などが公開されました。

対応時には、必要に応じて更新するための手順を準備し、移行先のAzure環境の状態を確認しました。

その時点で、プラットフォーム側の配信により修正版が稼働していました。そこで、HTTP応答、起動ログ、エラー状況などを確認し、追加操作の要否を判断しました。

修正版を配信したのはAzureです。生成AIは、対応手順の整理や適用状況の確認を進めるために活用しました。

このとき重要だったのは、用意した手順を実行する前に、現在の状態を確かめたことです。確認の結果、予定していた追加の操作は不要になりました。

Azureで修正版が配信済みと確認し追加操作を行わなかった対応

約2か月前の移行が、その後の対応の土台になった

今回の大規模な移行と、10月のセキュリティ更新は、別の取り組みです。

約10日間で進めたのは、古い環境から当時の最新版への実質的な移行です。その約2か月後に、新たな脆弱性への対応が必要になりました。

移行済みだから安全が保証されるわけではありません。新しいバージョンにも脆弱性は見つかります。

ただ、構成を把握し、更新後に確認すべき項目を整理していたことは、その後の対応に役立ちました。どこを見れば稼働状況が分かるか、どの機能を試験すべきかを、移行時の記録から確認できたためです。

現在は、脆弱性チェックと各種更新を日々行っている

現在の運用でも、生成AIを利用して脆弱性情報を確認し、各種更新への対応を続けています。

情報を見つけたときに重要なのは、自分たちの環境との関係です。

  • 対象となるバージョンを使っているか
  • 影響を受ける機能や構成があるか
  • 修正版が提供されているか
  • 実環境では既に更新されているか
  • 更新する場合に、何を確認する必要があるか

生成AIは、公開情報の読み取り、構成との比較、確認事項の整理に役立ちます。ただし、回答だけで安全性を判断せず、公式情報と実環境を照合します。

日々チェックすることは、毎日すべてを変更することとは違います。状態を確認した結果、追加操作が不要と判断する日もあります。

移行時の役割分担を、継続運用にも生かす

第1回で紹介した役割分担は、その後の運用を考えるうえでも土台になります。

ChatGPTで情報や論点を整理し、Claude Codeで具体的な確認・作業を進め、Codexで変更や結果をレビューする。GitHubに記録を集約し、人が実施可否と結果を判断します。

重要なのは、前回までの状況を引き継げることです。過去にどこで問題が起きたか。どの設定を変更したか。何が未確認のまま残っているか。この情報があれば、毎回ゼロから調査する負担を減らせます。

一方、過去の記録をそのまま現在の状態とみなすことも避ける必要があります。更新や運用によって環境は変わるため、必要な箇所は実環境で再確認します。

更新後の確認に、移行時の試験項目を使う

更新を適用したら、実際に新しいバージョンで稼働しているか、必要な機能に影響がないかを確認します。

公開ページ、管理画面、検索、画像、フォームなど、対象に応じて確認範囲を決めます。移行時に作成した試験項目は、ここでも役立ちます。重要な業務機能や依存関係、過去の不具合が整理されていれば、更新時に重点的に見る場所を絞れるためです。

継続運用で確認すべき流れをまとめると、次のようになります。

  • 情報を確認する:公式の脆弱性情報、更新内容、対象バージョン
  • 実環境と照合する:利用中のバージョン、構成、適用状況
  • 対応を決める:緊急性、影響範囲、検証方法、復旧手段
  • 必要な更新を行う:対象と変更前の状態を明確にする
  • 結果を確かめる:稼働バージョン、主要機能、ログ
  • 記録を残す:実施内容、未確認事項、次回への申し送り
公式情報と実環境を確認し人が判断して更新と記録を続ける運用

これは、すべての更新を無条件に自動適用するという意味ではありません。確認と判断を継続するための流れです。

復旧への備えも、現在の環境に合わせる

移行後には、データベースとファイルのバックアップから検証環境を復旧する訓練も実施しました。

公開ページだけでなく、管理画面やデータの整合性を確認し、手順を改善すべき点を整理しています。この訓練は、約10日間の移行完了後に行った取り組みです。

また、切り戻しの前提は時間とともに変わります。新環境でデータが更新されれば、旧環境との間に差ができます。旧環境を停止した場合や、旧環境自体にセキュリティ上の問題がある場合には、移行直後の手順をそのまま使えません。

更新を続けるとともに、復旧手段が現在の状態に合っているかも見直す必要があります。

生成AIを、更新を続けるために使う

今回、生成AIは大きな移行を短期間で進めるために役立ちました。現在は、その活用を日々の脆弱性チェックと各種更新にも広げています。

生成AIによって、情報整理や具体的な作業を進めやすくなります。そのうえで、公式情報を確認し、実環境と照合し、更新後の結果を確かめます。

GitHubに記録を残し、ChatGPT、Claude Code、Codexに役割を与え、人が判断する。この体制を、移行後も継続して改善しています。

事前見積もりで数か月を想定した移行を約10日間で実質的に完了できたことと、その後も更新を続ける運用につなげられたこと。その両方が、今回の取り組みで得られた成果です。

脆弱性への対応やシステムの復旧、古い環境からの移行に苦慮されている方々にとって、この経験が、対応を一歩でも前に進める助けになれば幸いです。

参照:PHP 8.3.36公式リリース告知

連載「生成AIで進めたWordPress・PHP移行」のこれまでの記事

Artisan(アーティサン)とは

Artisan(アーティサン)とは、腕の良い職人を意味する言葉です。

アーティサン株式会社では、技術をつくること自体を目的とせず、使われ続ける価値として社会に届けることを使命としています。

モビリティ事業は公共交通事業者や自治体向けに、バスロケーションシステム「バス予報」、予約配車システム「オンデマンドバス予報」、GTFS作成支援「まかせてGTFS」、お知らせ配信「かんたんAlert」などを提供しています。

MSクラウド事業はMicrosoft 365、SharePoint、Power Apps、Power Automate、Copilot Studioなどを中心に、コンサルティング、設計、構築、開発、研修、内製化、運用支援を提供しています。

2つの事業を通じて、企業と社会が自らの力で最適解を導き出すための支援を行っています。

気になることがあれば、お気軽にご相談ください。

また、技術を追い求めながら会社と一緒に成長していける仲間も、積極的に募集しています。

バス予報・オンデマンド交通など、モビリティ事業のサービス一覧はこちら

モビリティ事業ページへ

SharePoint・Power Platformなど、Microsoftクラウド事業のサービス一覧はこちら

Microsoftクラウド事業ページへ

アーティサンの採用情報はこちら

採用情報ページへ