本文へ移動

Webサイトの改ざん復旧・脆弱性対策

改ざんされたサイトを元に戻し、入口をふさぐ。 WordPressやLaravelなど、PHPで作られたサイトの改ざん・マルウェア感染を調べて元に戻します。改ざんされていないサイトでも、使っているソフトウェアと公開されている脆弱性の情報を照らし合わせ、アップデートだけでは片づかない部分まで直します。

SECURITY RECOVERY
110,000円から
税込/1回だけ/作業後の見守りつき

SIGNS

こんなときにご相談ください

すでに被害が出ているときは改ざん復旧、被害はないが心配なときは脆弱性対策になります。どちらか分からない段階でもお受けします。

  • 改ざんのとき:表示がおかしい

    画面が真っ白になった。別のサイトへ転送される。検索結果に警告が出る。

  • 改ざんのとき:見覚えがない

    知らないページや投稿、管理者アカウント、ファイルが増えている。

  • 脆弱性対策:通知や指摘を受けた

    サーバー会社から古い PHP や不正なファイルについて連絡が来た。脆弱性の診断で指摘を受けた。

  • 脆弱性対策:更新が止まっている

    本体やプラグイン、PHP を長く更新していない。どのバージョンで動いているか分からない。

RECOVERY

改ざん復旧で行うこと

すでに書き換えられたサイトを調べて元に戻し、どこから入られたかを探します。元に戻しても入口が開いたままだと、また書き換えられるため、続けて脆弱性対策を行います。

  • 保全

    作業の前に、サイトのファイルとデータベースをすべて保存します。原因を追うための証拠を残すためです。

  • 調査と復旧

    書き換えられたファイル、不審なプログラム、身に覚えのない管理者や投稿を探し、取り除いて元に戻します。

  • 原因の特定

    どの脆弱性や設定から入られたかを調べます。確定できない場合は、推定として報告します。

  • 見守り

    作業のあとも、ファイルの書き換えと管理者アカウントの増減を定期的に確かめます。再び書き換えられたときは、調べて元に戻します。

VULNERABILITY

脆弱性対策で行うこと

保守でふだん行うアップデートとは違い、使っているものを洗い出して、公開されている脆弱性の情報と照らし合わせます。アップデートはその中の1つの手段で、アップデートだけでは片づかない部分まで対応します。

  • 洗い出し

    CMS・フレームワーク、プラグイン、テーマ、ライブラリ(Composer・npm)、PHP・Node.js、データベース、Web サーバー、独自に作られた部分と、それぞれのバージョンを書き出します。

  • 照らし合わせ

    公開されている脆弱性の情報と照らし合わせ、どれが危ないか、急ぐ順番を決めます。

  • 修正

    修正版への更新に加え、開発が止まったプラグインの入れ替えや削除、独自に作られた部分の修正(入力の確かめ方、ファイルのアップロードの制限など)、PHP を上げると動かなくなる箇所の修正。

  • すぐに直せない間の対策

    修正に時間がかかるものは、その機能を止める、管理画面へのアクセスを絞るなど、一時的な対策を先に入れます。

CASE

実際にあった調査と対応

当社が実際に対応した案件です。守秘義務のため、お客様のお名前は伏せ、業種や規模は大まかに記しています。

INCIDENT

医療系の施設のサイトが真っ白になり、別のサイトへ転送されていた

構成
WordPress、他社制作の独自テーマ、共用レンタルサーバー
きっかけ
画面が真っ白になる。別の環境では海外の通販サイトへ転送される
期間
ご相談から5日。調査と復旧の作業は2日
  • WordPress マルウェア駆除
  • 改ざんの調査・復旧
  • WordPress セキュリティ診断

見つかったもの

  • 3件書き換えられた入口のファイル
  • 35ファイル実在のサービスを装った偽のログイン画面一式
  • 3件身に覚えのない管理者アカウント
  • 26個停止したまま残っていたプラグイン
  • 3件公開領域に置かれたままの開発用データ

実際に残っていた痕跡

報告書に載せた記録の一部です。特定につながる情報は伏せています。

書き換えられた入口のファイル
  • index.php数行 → 33,547 行
  • comment.php59,737 行(約 2.8MB)
  • content.php59,032 行(約 2.7MB)

本来は数行のファイルが、3万行を超える読めないプログラムに置き換わっていました。画面が真っ白になった直接の原因です。同じ働きのファイルが、ほかに2つ置かれていました。1つを消されても、残りから操作を続けるためのものです。

正規のプラグインに見せかけた名前
  • Plugin NameSecurePlugin■■■■■■
  • 中身4重に読めなくしてある
  • 働き外からの命令で、任意の処理を実行

ファイルの先頭に、安全対策のプラグインのような名前が書かれていました。一覧で見ただけでは、不正なものと気づきにくい作りです。

機械が作った投稿
  • mo27■■■■■■■yfg1件目
  • 24m3■■■■■■■■h0q同じ日
  • ayp7■■■■■■■■75j3日後
  • ほか6件20日間で計 9 件

乗っ取られた利用者の名前で、意味のない文字列の題名の投稿が作られていました。公開されたままだったので、履歴とあわせて18件を削除しました。

偽のログイン画面への訪問の記録
  • 訪問の記録ある朝に 100 件超
  • 入力の保存先調査の時点では空
  • 画面の部品28 ファイル

偽の画面には、訪れた人の接続元と時刻を記録するファイルが残っていました。入力された内容がすでに持ち出されたかどうかは、確定していません。

行ったこと

  1. ご相談の日外から状態を確認

    サーバーに入らずに確認できる範囲を調べ、「調査が終わるまでファイルの削除・一括更新・パスワード変更をしないでください」とお伝えしました。証拠が消えるのを防ぐためです。

  2. 作業1日目不正なファイルと管理者を削除

    全ファイルとデータベースを保全してから、書き換えられたファイルを元に戻し、偽の画面と不正な管理者を削除。ログイン画面の場所を変え、二段階認証を入れました。

  3. 作業2日目再び書き換えられ、原因を特定

    翌日に同じファイルがまた書き換えられました。サーバー上のファイルを操作できるプラグインを削除したところ止まりました。あわせて、画像の保存場所でプログラムが動かない設定にし、全員のパスワードを作り直しました。

対応の前と後

医療系の施設のサイト:対応の前と後
BEFORE対応前AFTER対応後
PHP8.0(サポート終了)8.3
管理者アカウント正規2、不正3正規2、保守用1
停止したままのプラグイン26個0個
不正なファイル入口のファイル3件、偽の画面一式0件
画像の保存場所でのプログラム実行できるできない
ログイン標準の場所、パスワードのみ場所を変更、二段階認証

報告書に書いた、分かっていないこと

  • 侵入の経路は「ファイルを操作できるプラグインが最も疑わしい」という推定です。通信の記録をすべて解析したわけではないので、断定はしていません。
  • 問い合わせフォームのないサイトでしたが、データベースや記録が持ち出された可能性は否定できない、と書きました。
  • 外部ストレージへのバックアップは、推奨としてお伝えした段階です。

RENEWAL

設計系の事務所のリニューアルのご依頼で、不正なファイルが見つかった

構成
1台のサーバーに複数のサイト。WordPress のサイトと、古い PHP で作られたサイト
きっかけ
リニューアルのご依頼を受けて今のサイトの中身を確かめたところ、見慣れないファイルを確認。リニューアルでは新しいサーバーへの移転もあわせて行った
規模
WordPress 側は200ページ超
  • リニューアル前の調査
  • 不正ファイルの調査
  • WordPress セキュリティ診断

見つかったもの

  • 5件外から操作するための不正なプログラム
  • 3件賭博サイトへ誘導する広告ページ
  • 2件残っていた古いデータベース管理ツール
  • 4種依頼者の知らないバックアップ予約

行ったこと

  1. 保全動かさずに隔離して記録

    不正なプログラムは実行せず、公開されない場所へ移しました。ファイルごとに大きさと照合用の値(ハッシュ値)を台帳に記録しています。

  2. 調査データベースの中も検索

    ユーザーと権限、投稿、設定の中に、広告の文言や不正なプログラムの痕跡がないかを検索しました。不正なものはファイルだけで、記事やユーザーにはありませんでした。

  3. 対策パスワードとログイン状態を作り直し

    管理者のパスワードを長い乱数に変え、ログイン中の状態をすべて切りました。知らないバックアップ予約と外部サービスとの連携設定も解除しています。

  4. 確認全ページを自動で巡回

    200ページ超を機械で巡回し、主要なページは実際のブラウザで確認しました。

対応の前と後

設計系の事務所のサイト:対応の前と後
BEFORE対応前AFTER対応後
不正なファイル8件見つかった8か所すべてで不在を確認
PHP古いバージョン8.3
画像の保存場所でのプログラム実行制限の記録なし7種類の形式を拒否
パスワードとログイン状態以前のまま全員分を変更、ログイン中0件
公開ページの検査未実施全ページでエラー・リンク切れ0件
証拠なし原本3件と照合用の値の台帳

報告書に書いた、分かっていないこと

  • 誰が、いつ、どこから入れたのかは確定していません。実際に使われたか、情報が持ち出されたかも確定していません。
  • 確認したのは見つかった8か所です。公開領域のどこにも残っていないことを保証するものではありません。
  • 8件のうち5件は原本を保全できておらず、削除の記録と不在の確認だけです。
CHOOSE THE PLAN

どこまで対応するかで選ぶ3つのプラン

プランは、サイトを構成するソフトウェアをどこまで新しいバージョンへ上げるかで分かれます。対象は、CMS・フレームワーク(WordPress、Laravel、Next.js など)と、それらを動かす PHP・Node.js、データベース(MySQL など)、Web サーバー(Apache、Nginx など)です。データベースと Web サーバーは、サーバーで変えられる範囲で行います。

ベーシック

マイナーアップデートと脆弱性の修正

メジャーバージョンはそのままで、WordPress・Laravel・Next.js、プラグイン・ライブラリを最新へ

110,000円(税込)

作業時間
10時間まで
作業期間
着手から3日
見守り
作業のあと2週間
報告書
あり

バージョンの目安:メジャーバージョンを上げなくてよいサイト。PHP 8.3 以上で動いていて、マイナーアップデートを止めていた程度。
行うこと:今の PHP のまま、CMS・フレームワーク、プラグイン、ライブラリ(Composer・npm)を最新にします。脆弱性のあるプラグインの入れ替えや削除、パスワードの変更と二段階認証も行います。
改ざんされている場合:保全・調査・復旧と原因の特定を、この作業時間の中で行います。

申し込む前に状況を相談する

スタンダード

メジャーバージョンアップ(1世代)

PHP 7.4 → 8.3、Laravel 12 → 13、Next.js 15 → 16 など

165,000円(税込)

作業時間
15時間まで
作業期間
着手から5日
見守り
作業のあと2週間
報告書
あり

バージョンの目安:メジャーバージョンを1世代上げるサイト。PHP 7 系で動いているサイトや、サポートの終了が近いバージョン(PHP 8.2 は2026年12月31日、Next.js 15 は2027年1月31日、Laravel 12 は2027年2月24日まで)で動いているサイト。
行うこと:ベーシックの内容に加えて、CMS・フレームワークや PHP・Node.js を1世代上げ、上げたことで動かなくなる箇所や、独自に作られた部分を修正します。
改ざんされている場合:保全・調査・復旧と原因の特定を、この作業時間の中で行います。

申し込む前に状況を相談する

プレミアム

メジャーバージョンアップ(複数世代)と改修

PHP 5.4 → 8.3、Laravel 10 以前 → 13、Next.js 14 以前 → 16 など

220,000円(税込)

作業時間
20時間まで
作業期間
着手から7日
見守り
作業のあと23日
報告書
あり

バージョンの目安:メジャーバージョンを複数世代上げるサイト。PHP 5 系や、サポートの終わった Laravel・Next.js で動いているサイト。
行うこと:1世代ずつ上げ、そのつど動かなくなる箇所を改修します。見守りは作業のあと23日に延ばします。開きがとても大きい場合は、作業時間を超える見込みが高いため、先にお見積もりをお伝えします。
改ざんされている場合:保全・調査・復旧と原因の特定を、この作業時間の中で行います。

申し込む前に状況を相談する

改ざんの被害が大きい場合や、原因がはっきりしない場合は、バージョンの目安にかかわらず、作業時間に余裕のあるプランをご提案します。作業が時間を超えそうなときは、先にお伝えしてご相談します。超えた分は1時間11,000円(税込)です。被害の範囲や構成によっては、復旧ではなく作り直しをご提案する場合があります。その場合も、作業の前にお伝えします。

VERSION GAP

料金が変わるのは、
バージョンの開きです

同じ大きなバージョンの中で追いかけるだけなら、短い時間で済むことが多い一方、大きなバージョンをいくつもまたぐ場合は、修正する箇所が増えます。WordPress、Laravel、Next.js など、どの仕組みで作られたサイトでも同じです。

  • ベーシックで収まりやすい例

    マイナーアップデートを止めていただけ、という場合。たとえば PHP 8.3 以上で動いていて、そのまま本体やプラグインを最新へ追いかける程度の更新です。

  • WordPress が PHP 5.4 で動いている

    PHP 5.4 のサポートは2015年9月に終わっています。今の WordPress は PHP 7.4 以上が必要(推奨は 8.3 以上)なので、本体も古いままのはずです。PHP、本体、テーマ、プラグインを段階的に上げることになり、プラグインの入れ替えやテーマの修正も伴うため、プレミアムか個別のお見積もりになる見込みです。

  • PHP 7 系のサイトを 8 系へ上げる

    PHP 7.4 のサポートは2022年11月に終わっています。8 系では使えなくなった書き方があり、上げたあとにテーマ・プラグイン・独自のコードの修正が必要になることが多く、ベーシックの10時間では収まらないことがほとんどです。スタンダードが目安です。

  • 古いバージョンの Laravel

    Laravel は、バージョンごとのセキュリティ修正が2年間です(Laravel 11 は2026年3月に終了)。今の PHP に合わせるには、Laravel を1つずつ上げ、独自のコードを直していくことになります。2つ以上上げる場合はプレミアムが目安です。

サポートの終了が近いバージョン(PHP 8.2 は2026年12月31日、Next.js 15 は2027年1月31日、Laravel 12 は2027年2月24日まで)で動いているサイトは、終了の前に次のバージョンへ上げることをご提案します。今のバージョンが分かれば、ご相談のときにお知らせください。分からない場合は、こちらで確かめてから、どのプランが合うかをお伝えします。

RECENT CASE

PHP 本体の脆弱性も、
更新が必要です

2026年10月21日には、PHP 本体の重大な脆弱性(CVE-2026-109618、CVE-2026-109619。あわせて「PHP2Shell」と呼ばれています)が公表され、IPA(情報処理推進機構)も注意喚起を出しました。修正されたのは PHP 8.2.35・8.3.36・8.4.27・8.5.12 です。8.1 以前はサポートが終わっていて、通常の修正版は出ていません。本体やプラグインを更新していても、サーバーの PHP が古いままだと残る問題です。出典:PHP 公式サイト、IPA「PHPの脆弱性対策について」

INCLUDED

含まれるもの/
含まれないもの

すべての脆弱性や不正なファイルを取り除けることを保証するものではありません。確認できたことと、確認できなかったことを分けて報告します。

INCLUDED含まれるもの
  • ファイルとデータベースの保全
  • 不正なファイル・プログラム・アカウント・投稿の調査と削除、書き換えられたファイルの復旧
  • 侵入の経路の調査(確定できない場合は、推定として報告します)
  • パスワードの変更とログイン状態の切断
  • 脆弱性の対策(プランの作業時間の範囲で、優先度の高いものから)
  • 作業後の見守りと、報告書
  • プラグインを入れ替えるときは、最小限にする考え方で選びます。過去に脆弱性が見つかったとき、作者がどれくらいの早さで修正版を出したかまで調べます。
NOT INCLUDED含まれないもの(別途)
  • 見守りの期間が終わったあとの継続的な管理保守
  • サイトの作り直し、サーバー移転、CMS移行お見積もり
  • ソースコード全体の脆弱性診断、侵入テストお見積もり
  • 有償ライセンス、サーバー、外部サービスの利用料金

FLOW

ご相談から復旧まで

対象は原則1サイトです。お申し込みの前に状況と今のバージョンを伺い、プランと範囲を決めます。

  1. お客様・当社
    状況の確認

    いま起きていること、サイトの作りと今のバージョン(分かる範囲で)、ご用意いただける権限を伺い、プランをお伝えします。

  2. 当社
    改ざん復旧・脆弱性対策

    お申し込みのあと、改ざんがあれば保全・調査・復旧を、続けて洗い出し・照らし合わせ・修正を行います。範囲を超える作業が必要なときは、先にご相談します。

  3. 当社
    報告と見守り

    見つかったもの、行ったこと、対応の前と後、残った課題と急ぐ順番を報告書でお渡しし、見守りの期間に入ります。

BEFORE WE START

作業の前に、お願いしたいこと

ファイルを消さない改ざんが疑われるときは、不審なファイルを見つけても、削除や一括更新をせずにそのままにしてください。証拠が消えて、原因を追えなくなることがあります。

権限のご用意WordPress の場合は、作業用の管理者ユーザーを追加してください。サーバーへの接続情報(SSH・SFTPなど)もご用意いただけると、調べられる範囲が広がります。必要な権限は事前にご案内します。

ログイン情報の受け渡しパスワードや秘密鍵は、当社がご案内する専用の受け渡しフォームからお送りください。作業が終わったら、作業用のアカウントは削除してください。

ログイン情報や秘密鍵は、お問い合わせフォームへ入力・添付しないでください。

FAQ

よくあるご質問

8問

Q. 保守のアップデートと、脆弱性対策は何が違いますか。

+

A. 保守のアップデートは、決まったものを定期的に新しくする作業です。脆弱性対策は、使っているものを洗い出して公開されている脆弱性の情報と照らし合わせ、アップデートで直らないもの(開発が止まったプラグイン、独自に作られた部分、古い PHP に合わせた書き方など)まで直す作業です。

Q. 改ざんされていなくても頼めますか。

+

A. はい。改ざんされていない場合は、脆弱性対策(洗い出し・照らし合わせ・修正)を行います。調べて「問題なし」と報告するだけでは終わりません。

Q. WordPress 以外のサイトも対応できますか。

+

A. Laravel や、独自に開発された PHP のサイト、Next.js のサイトも対応します。作りによってかかる時間が変わるため、お申し込みの前に構成を伺って、プランと範囲をお伝えします。

Q. 古いバージョンのまま長く使っています。いくらかかりますか。

+

A. バージョンの開きによります。PHP 8.3 以上のままマイナーアップデートを追いかけるだけならベーシック、メジャーバージョンを1世代上げる場合(PHP 7.4 → 8.3 など)はスタンダード、複数世代上げる場合(PHP 5.4 → 8.3 など)はプレミアムか個別のお見積もりが目安です。今のバージョンを伺ってからお伝えします。

Q. 作業時間を超えたらどうなりますか。

+

A. 超えそうな時点で、残りの作業と時間の見込みをお伝えしてご相談します。超えた分は1時間11,000円(税込)です。無断で作業を続けることはありません。

Q. 見守りでは何をしますか。

+

A. ファイルの書き換えと、管理者アカウントの増減を定期的に確かめます。再び書き換えられたときは、調べて元に戻します。期間の終わりに、結果をお知らせします。

Q. 緊急で対応してもらえますか。

+

A. 可能な範囲で対応します。できうるかぎり即日の着手を目指していますが、即時の対応や当日の復旧を保証するものではありません。

Q. 保守契約をしていないと頼めませんか。

+

A. 保守をご契約いただいていない方からのご依頼もお受けしています。お支払いは前払いです。作業のあと、保守として続けてお引き受けすることもできますが、ご契約は必須ではありません。

CONTACT

改ざん・脆弱性のご相談

対象のURLと、いま起きていることをお送りください。どのプランが合うか、先にご相談いただく必要があるかをご返信します。

※パスワードや秘密鍵などの認証情報は、このフォームに入力・添付しないでください。受け渡しの方法は、別途ご案内します。
REQUIRED
OPTIONAL
ファイルを添付(任意)
ここにファイルをドラッグ&ドロップ またはクリックしてファイルを選択 画像・PDF・テキスト・Word・Excel・zip/合計512MBまで・10ファイルまで(大きな複数ファイルはzip推奨)
ログイン情報やパスワードを含むファイルは添付しないでください。 画面のスクリーンショット、会社案内、既存の原稿などを添付いただけます。機密情報は、必要になった段階で安全な共有方法をご案内します。
送信する→