2021-03-28にコミットされたPHPバックドアを試す

1 min read読了の目安(約1600字

はじめに

 先日(2021年03月28日)、PHPにバックドアを仕掛けるコミットされるようなことがありました。

https://japan.cnet.com/article/35168549/

コミットがあった翌日には問題のコードは削除されておりPHPユーザに影響を及ぼすことはないと思われますが、興味本位でバックドアがあるPHP(以下、バックドアPHP)を確認してみます。

バックドアが仕掛けられたコミット
[skip-ci] Fix typo · php/php-src@c730aa2

▼ 仕掛けられたバックドアのコード

php-src/zlib.c at c730aa26bd52829a49f2ad284b181b7e82a68d7d · php/php-src

バックドアが存在しているPHPの環境構築

 構築の流れとしては、バックドアPHPをGitHubから取得・ビルドします。

 ビルド環境構築の手間を避けるため、Dockerを利用しています。
具体的には、オフィシャルのPHPコンテナイメージを生成するDockerfileを修正して、バックドアが存在するバーションのPHPを取得するようにしてコンテナイメージを作成しています。

▼ オフィシャルのPHPコンテナのDockerfile
php/8.0/buster/cli at master · docker-library/php

 下画像がDockerfileの修正内容

バックドアの確認

User-Agenttヘッダの値に「zerodium<任意のPHPコード>」のリクエストを送信することでバックドアを確認することができます。
User-Agent ではなく User-Agentt

 下画像がバックドア経由で任意のPHPコードを実行している様子

参考