Upgrade to Pro — share decks privately, control downloads, hide ads and more …

自宅サーバと脆弱性

 自宅サーバと脆弱性

Avatar for モブエンジニア

モブエンジニア

October 23, 2026

More Decks by モブエンジニア

Other Decks in Technology

Transcript

  1. 自己紹介 ペンネーム: モブエンジニア(@mob_engineer) 業務内容: 某SI企業のSRE/PL 好きな技術領域: クラウド(AWS、Azure、OCI) コンテナ(k8s)、ネットワーク(仮想) オブザーバビリティ運用(Dynatrace) 趣味:

    コミュニティ/カンファレンス運営 (最近は少ないが)登壇/ブログ執筆 一言: 社外コミュニティを広めながら楽しんでいるエンジニアです! 4
  2. 自宅サーバーを公開する仕組み ルーターの設定ひとつで、自宅の機器がインターネットから見えるようになる 公開の基本セット 1. 2. 3. ルーターのNAT/ポート開放で外からの通信を中へ通す DDNSで変わるIPアドレスにドメイン名を対応させる Let's EncryptなどでTLS証明書を用意する

    見落としやすい点 1. 2. 3. IPv6はNATがなく、FW設定次第で機器に直接届く CGNAT環境ではポート開放そのものができない ISPの規約でサーバー運用が制限されている場合がある ポートを開けない選択肢 1. Cloudflare TunnelやTailscaleなどのトンネル/VPN型 参考:各ISPの利用規約、Cloudflare Tunnel/Tailscale の公式ドキュメント 7
  3. PHPのサポート期限(2026年10月時点) PHP 8.2は2026年末で、セキュリティ修正も含めてサポートが終わる 系列 状態 アクティブサポート終了 セキュリティ修正の終了 8.2 セキュリティ修正のみ 2024年12月31日(終了)

    2026年12月31日(あと約2か 月) 8.3 セキュリティ修正のみ 2025年12月31日(終了) 2027年12月31日 8.4 アクティブサポート 2026年12月31日 2028年12月31日 8.5 アクティブサポート 2027年12月31日 2029年12月31日 特記事項:Linuxディストリビューション同梱のPHPは、古い版番号のまま修正が入ることがある ・php -v の結果だけで判断せず、パッケージの変更履歴でCVE番号を確認する ・8.1以前は公式のサポート対象外。ディストリやLTSベンダーの対応状況を確認する 参考:PHP「Supported Versions」(php.net、2026年10月22日時点) 8
  4. PHPの脆弱性は3つの層で考える アプリを直しても、PHP本体やサーバー設定の穴はふさがらない PHP本体(インタプリタ・SAPI) 1. 2. PHP自体の不具合。利用者側では更新するしかない 例:CVE-2024-4577、PHP2Shell アプリケーション 1. 2.

    SQLインジェクション、ファイル読み込み(LFI/RFI)、unserialize アップロード機能からのWebシェル設置、古いプラグイン サーバー設定 1. display_errors の有効化、phpinfo() や .git ディレクトリの公開 参考:PHP Manual「セキュリティ」、OWASP Top 10 9
  5. 事例1:CVE-2024-4577(2024年6月) Windows+CGIという特定の構成を狙った脆弱性。XAMPPは初期設定で該当した 何が起きたか 1. 2. WindowsでPHPをCGIで動かす環境で、リモートからコードを実行できた 2012年の旧脆弱性(CVE-2012-1823)の対策を回避する手法だった 悪用までの速さ 1. 2.

    修正版公開の2日後、PoC公開の翌日に攻撃が始まった ランサムウェア集団TellYouThePassがWebシェル設置などに悪用 対応と教訓 1. 2. 8.3.8/8.2.20/8.1.29へ更新する 開発用パッケージ(XAMPPなど)を公開サーバーに使わない 参考:Help Net Security「PHP command injection flaw exploited to deliver ransomware (CVE-2024-4577)」 11
  6. 事例2:PHP2Shell(2026年10月) ほぼすべてのPHP Webサーバーが対象。認証なしでリモートからコードを実行できる 系列 修正版 備考 8.5 8.5.12 pixivが対応したバージョン 8.4

    8.4.27 8.3 8.3.36 8.2 8.2.35 年末以降は同様の修正が出ない 7.4~8.1 公式リリースなし ソース向けのバックポートのみ 5.4~7.3 修正なし サポート対象の系列へ移行が必要 概要:CVE-2026-109618/CVE-2026-109619(CVSS v4.0 9.2)。PHP-FPM、mod_php、php-cgi、FrankenPHP、LiteSpeedが対象で、 mod_phpが最もリスクが高い 時系列:10/17にハニーポットへ攻撃(公開前)→ 10/21 14:00(UTC)修正版公開 → 19分後に悪用の試行を確認 影響:ワーカーのメモリから、他のリクエストのパスワードやトークンが漏れるおそれもある 暫定策(memory_limit=-1 など)は被害を減らすだけで、安全にはならないとPHP側が明言 参考:Tenable「php2shell (CVE-2026-109618, CVE-2026-109619) FAQ」、The Hacker News(2026年10月) 12
  7. pixivはPHP2Shellにどう対応したか 条件がそろったことで、修正版の公開から約30分で復旧できた 止めて待つ 1. 2. 影響しうるサービスを19時にメンテナンスモードへ切り替え 公式イメージを待たず、ソースからビルドする準備を整えた すばやく作って配る 1. 2.

    22:41のリリース後、数GBのイメージを約6分でビルド Argo CDで、通常のイメージ差し替えとして展開 確かめて開ける/残った課題 1. 2. 署名確認・起動テスト・ステージング確認、HPAの最小台数を増強 課題:メンテナンスモードのない入口、PECL不安定でPIEへ移行 参考:pixiv inside「PHP 8.5.12の緊急リリースにpixivはどう対応したか」(2026/10/22) 13
  8. ディスカッションポイント(1/2) 企業の「30分」を、個人の自宅サーバーで再現できるか 論点1:そもそも公開が必要か – ポート開放とトンネル/VPN型のどちらを選ぶか。自分しか使わないなら公開は不要では 論点2:修正版に気づき、更新できるか – 22:41の公開に個人は気づけるか。自動更新で壊れるリスクとどう折り合うか 論点3:止める判断を決めているか –

    自宅なら「電源を切る/ポートを閉じる」がメンテナンスモード。誰がいつ決めるか 論点4:自分はどの層を管理しているか – WordPressの更新はPHPの更新ではない。PHPはOSのパッケージやイメージから来る 各論点に正解はありません。自分の環境に置き換えて考えてみてください 15
  9. ディスカッションポイント(2/2) 攻撃は公開前から始まっていた。「更新したら終わり」ではない 論点5:EOL版をいつまで使うか – 8.2は年明け以降修正が出ない。ディストリのバックポートをどこまで信頼するか 論点6:暫定策で様子を見てよいか – memory_limit=-1 などは被害を減らすだけ。更新できないときの線引きは 論点7:侵害にどう気づくか

    – 異常なmultipartリクエスト、500エラーの連続、巨大なPHPSESSID。そのログは残っているか 論点8:家のネットワークと切り分けているか – 踏み台にされたときの責任、家族の端末との分離(VLAN/DMZ)、バックアップ 各論点に正解はありません。自分の環境に置き換えて考えてみてください 16
  10. 参考サイト PHP 1. PHP Supported Versions www.php.net/supported-versions.php PHP2Shell 1. Tenable:php2shell

    (CVE-2026-109618, CVE-2026-109619) FAQ 2. The Hacker News:PHP Issues Emergency Patches for Two Critical PHP2Shell RCE Flaws 3. pixiv inside:PHP 8.5.12の緊急リリースにpixivはどう対応したか www.tenable.com/blog/php2shell-cve-2026-109618-cve-2026-109619-frequently-asked-questions-about-critical-php-remote thehackernews.com/2026/10/php-issues-emergency-patches-for-two.html inside.pixiv.blog/2026/10/22/193321 CVE-2024-4577 1. Help Net Security:PHP command injection flaw exploited to deliver ransomware www.helpnetsecurity.com/2024/06/13/cve-2024-4577-exploited/ 19