Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
自宅サーバと脆弱性
Search
モブエンジニア
October 23, 2026
Technology
11
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
自宅サーバと脆弱性
https://homeserver.connpass.com/event/406819/
モブエンジニア
October 23, 2026
More Decks by モブエンジニア
See All by モブエンジニア
コンテナ運用におけるネットワーク・コンテナコストの削減方法/How to Reduce Network and Container Costs in Container Operations
masakiokuda
2
330
Claude Codeと歩むアプリ開発/App Development with Claude Code
masakiokuda
1
73
ConfigMapのImmutable機能を使ってヒヤッとした話と得られた知見/A Close Call with ConfigMap Immutability and the Lessons Learned
masakiokuda
1
92
Get Started with AI Agent Operations Using Azure SRE Agent
masakiokuda
1
61
あなたの知らないAmazon VPC Route Server/Amazon VPC Route Server you don't know about
masakiokuda
2
320
Oracle Cloud Network Path Analyzerを試してみた/I Tried Out Oracle Cloud Network Path Analyzer
masakiokuda
1
160
20260908_ターゲットとスコープを決める発表法
masakiokuda
1
140
物理もいいけど仮想もね 〜SD-WANの推しポイント〜
masakiokuda
0
190
AIでアウトプットできる時代だからこそ、自分の言葉で考えることの大切さ / What's Left to Think, When AI Can Write?
masakiokuda
1
370
Other Decks in Technology
See All in Technology
SAENM ~Jupyterで残すPoCの試行錯誤、未来の自分と仲間を助ける記録!~
terapyon
0
170
CloudWatch Logsのコスト最適化:どこまでAIに任せてどこから人間が承認すべきか
yama3133
0
120
LambdaWebFunctionsを試してみた / exploring-lambda-web-functions
koukihosaka
1
370
会社紹介資料 / Sansan Company Profile
sansan33
PRO
31
430k
V8のArray.prototype.flatを最大約20倍速くするまでと、巨大OSSへの大規模コミットの道のり
riyaamemiya
0
310
NDIでApple Vision Proにリアルタイム映像送信
jyouryuusui
0
140
大型犬好きによるPugの紹介
yamanoku
1
160
AIにシークレットを見せない、WSL2で安全な開発環境
yazm
0
320
ウォンテッドリーの最近のプロダクトと技術の紹介
stomk
0
290
JAWSUG TOHOKU 青森支部 「LoGoチャット」のAWS移行で 乗り越えたこと
taketakekaho
0
360
OptunaHub: ブラックボックス最適化のためのプラットフォーム
pfn
PRO
0
150
僕のハーネスを紹介します
watany
3
1.2k
Featured
See All Featured
Odyssey Design
rkendrick25
PRO
2
880
The Language of Interfaces
destraynor
162
27k
The Invisible Side of Design
smashingmag
301
52k
How Software Deployment tools have changed in the past 20 years
geshan
2
35k
KATA
mclloyd
PRO
35
16k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
Leo the Paperboy
mayatellez
10
2.4k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
580
The Curse of the Amulet
leimatthew05
3
16k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1k
Transcript
自宅サーバーとPHPの脆弱性 ディスカッションペーパー 2026/10/23(金)時点の情報にもとづく テーマ:自宅サーバーの公開とPHPの脆弱性(PHP2Shell ほか) モブエンジニア(@mob_engineer)
対象者/得られる学び 自宅サーバーでPHPを動かす方と、運用のリスクを一緒に考えます 対象者 1. 2. 自宅サーバーやVPSでPHPアプリを公開している(したい)方 PHP2Shellのニュースを見て、自分の環境が気になった方 得られる学び 1. 2.
PHPの脆弱性は「本体/アプリ/設定」の3層で考える 公開する・止める・更新するの判断を事前に決めておく 2
扱うこと/扱わないこと 前提知識をそろえたうえで、正解のない論点を話し合います 扱うこと 1. 2. 自宅サーバー公開の仕組みとPHPのサポート期限 CVE-2024-4577とPHP2Shellの事例、pixivの対応 扱わないこと 1. 2.
脆弱性の詳しい仕組みや攻撃手法の再現 特定の製品・サービスのおすすめ 3
自己紹介 ペンネーム: モブエンジニア(@mob_engineer) 業務内容: 某SI企業のSRE/PL 好きな技術領域: クラウド(AWS、Azure、OCI) コンテナ(k8s)、ネットワーク(仮想) オブザーバビリティ運用(Dynatrace) 趣味:
コミュニティ/カンファレンス運営 (最近は少ないが)登壇/ブログ執筆 一言: 社外コミュニティを広めながら楽しんでいるエンジニアです! 4
アジェンダ 1. 前提知識をそろえる 2. 事例から学ぶ 3. ディスカッション 4. まとめ 5
前提知識をそろえる
自宅サーバーを公開する仕組み ルーターの設定ひとつで、自宅の機器がインターネットから見えるようになる 公開の基本セット 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
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
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
事例から学ぶ
事例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
事例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
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
ディスカッション
ディスカッションポイント(1/2) 企業の「30分」を、個人の自宅サーバーで再現できるか 論点1:そもそも公開が必要か – ポート開放とトンネル/VPN型のどちらを選ぶか。自分しか使わないなら公開は不要では 論点2:修正版に気づき、更新できるか – 22:41の公開に個人は気づけるか。自動更新で壊れるリスクとどう折り合うか 論点3:止める判断を決めているか –
自宅なら「電源を切る/ポートを閉じる」がメンテナンスモード。誰がいつ決めるか 論点4:自分はどの層を管理しているか – WordPressの更新はPHPの更新ではない。PHPはOSのパッケージやイメージから来る 各論点に正解はありません。自分の環境に置き換えて考えてみてください 15
ディスカッションポイント(2/2) 攻撃は公開前から始まっていた。「更新したら終わり」ではない 論点5:EOL版をいつまで使うか – 8.2は年明け以降修正が出ない。ディストリのバックポートをどこまで信頼するか 論点6:暫定策で様子を見てよいか – memory_limit=-1 などは被害を減らすだけ。更新できないときの線引きは 論点7:侵害にどう気づくか
– 異常なmultipartリクエスト、500エラーの連続、巨大なPHPSESSID。そのログは残っているか 論点8:家のネットワークと切り分けているか – 踏み台にされたときの責任、家族の端末との分離(VLAN/DMZ)、バックアップ 各論点に正解はありません。自分の環境に置き換えて考えてみてください 16
まとめ
まとめ まとめ 1. 2. 3. PHPの脆弱性は「本体/アプリ/設定」の3層で考える 修正から悪用までの時間は、日単位から分単位へ縮んでいる 公開する・止める・更新するの判断を事前に決めておくことが大事 持ち帰ってほしい問い 1.
2. 自分のサーバーは、いま何のPHPで動いているか 次の緊急リリースの夜、自分は何をするか 18
参考サイト 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