世界中で問題になっているPHPの脆弱性問題。
ウチにも当然関係があって、対処したので記録しておく。
最初はPHPの修正パッチが既に当てられていることを確認したので、これでよいかと思った。
が、そう簡単な話でもなさそうで、サーバーのアクセスログを確認したところ、連日ではないもののたまに大量のアクセスがあったことが判明。
(ただしこれは今回のPHP問題とはたぶん別)
このアクセスが何かと言うと、ボットによるログイン攻撃だった。1分間に数十回が数分続く。しばらくしてまた始まる、というような感じ。
ただ相手はボットなので、パスワードともう一つ噛ませている画像を読ませるものの2つを突破されたことはない。
FTPソフトでサーバーを見に行き、全体を見て不審なPHPファイルが置かれていないか確認した。
突破はされていないものの、こんなに攻撃されているとしたら怖いので、店のWPに入るログインパスワードを強固なものに変更した。ユーザー名は変更できない、既にばれている。
忘れず本社の方もやらないと。 ← やった。
それから、危険かもしれない不要なプラグインを削除した。
古いバックアップの一部が残っていたのも削除した。
これで終わってもよかったのだが、例年だと来月には冬季休業に入る、今年はそもそもがほぼ稼働させていないので、思い切って一時的に遮断する処置を行った。
.httaccess 書き換えた。503エラーを新たに作った.htmlに向けた。
尚且つ、自分だけは見られる状態にするよう書き換えを行った。
再開する時はこれをもとの状態に戻す。詳細はClaudeの「PHPの脆弱性対応で~」の項目にある。
新たに書いたHTMLは、maintenance.html
今休んでいますよー、というだけの文字だけ版。
これでアップロードしたら500エラーになって焦った。原因は.httaccessの文字コード。わざわざUTF-8にしたのだが、それが間違いでUTF-8Nが正解だった。BOMなしが後者。
同じものを本社にもアップして、どちらもスマホからWI-FIを切ってみると「休業中」になることを確認した。
店を置いたままにすると、「休み中だから注文しないでください」と書いておいても気付かず注文が入ることがあるので、完全に見られないようにしてしまった。
うちみたいな小さい店、攻撃したってしょうがないだろうと思うのだが、相手は人ではなくロボットだから、規模の大小関係なくとにかくやってくるようだ。
それと、現在PHP8.2の最新版。今年で8.2の対応が終わるようなので、年内に8.3かそれより新しいものに上げること。これ鬼門だけどね。
以上、対応メモ。
その後、FTPソフトを見ていて気になったバックアップの整理をした。ちゃんととれたバックアップは.zipで、本社は3つ、本店は11個に分かれている。これで1日分。サーバーには3日分ずつ保存されている(指定どおり)。過去のものは消えていく。ただし、失敗したものが.partというファイルになってかなりの数残っていた。これを全て削除。
また、最新と前日の2日分をローカルに転送して保存、古いものを削除。
時々はFTPつないでサーバー側のチェックもしないといかんなと思った。