PHPとNode.jsの重大な脆弱性に企業はどう向き合うか:イーセットジャパン永野智氏が語る初動と「止める」判断

YouTubeで開く ↗
概要

PHPとNode.jsで重大な脆弱性が公表された翌日、PIVOTの野島氏がイーセットジャパン社長の永野智氏に話を聞いた。大手企業やセキュリティ担当者の多くは一晩で対応に追われたが、番組が主に想定したのは、ホームページを外部の制作会社に任せている企業、何年も前に作ったサイトを持つ企業、そして自治体である。永野氏の立場は一貫している。今回の問題は個別サイトの不具合ではなく、多くの組織が共通して使うソフトウェア基盤の問題である。だからこそ、まず「誰が何を使い、誰が直すのか」を把握し、すぐに直せないならサイトを止めることも選択肢に入れるべきだという。

12分で読めます
1:51

共通基盤の脆弱性は前例がないわけではない

海外では「前代未聞」という言葉も使われたが、永野氏は、共通基盤を狙う脆弱性自体は珍しくないと答えた。例として、2014年ごろのHeartbleedと、本人が「2020年から21年だったと思う」と述べたLog4Shellを挙げている。

一方で、状況は変わっていると永野氏は見ている。デジタル化が進み、中小企業を含めて多くの組織がウェブサイトを運用するようになった。攻撃者側もAIなどの技術で広範囲に攻撃を仕掛けられるようになった。そのため、脆弱性の種類は過去にもあったものでも、対策は以前より早く打つ必要があるという。

3:17

前夜に何が起きたのか

番組では、現地時間と日本時間が混ざると断ったうえで経緯を整理した。現地時間の10月20日、PHPの正式公開前に情報が出回り、PHPに重大な穴があるという趣旨の投稿が掲示板にされた。PHP側は公開を1日前倒しし、修正版の準備を進めた。こうした情報を受けて、昨日の昼ごろから一部の企業は予防のためにサービスの一部を停止した。PHPは予告していた23時より早い22時ごろに修正版を公開し、その直後から多くの関係者が対処に当たった。同時にNode.jsの修正版も公開され、この2つが特に注目を集めている。

4:37

PHPとNode.jsとは何か

永野氏は、どちらもウェブサイトに使われる技術だが、今回の脆弱性はブラウザ側ではなくサーバー側の問題だと整理した。PHPはウェブサイトの裏側、つまりサーバー上でプログラムを動かすためのプログラミング言語である。ある調査会社またはセキュリティ会社の調査では、ウェブ全体の約7割が何らかの形でPHPを使っているというデータがある。ただし永野氏は、これは普及率の話であり、そのすべてが今回の脆弱性の影響を受けると考える必要はないと付け加えた。

野島氏は、生成AIのClaudeに聞いた説明を紹介した。WordPressで作ったホームページやブログ、一部のネットショップ、ウィキペディアなどがPHPを使っている。昔のホームページは誰が見ても同じ内容だったが、今はログインや予約ページなど、利用者によって行き先が変わる。その振り分けをする「受付係」がPHPだ、という説明である。永野氏はこれをざっくり理解するには構わないとしたうえで、利用者から届く要求を処理する土台だと補足した。裏側で動いているため、欠陥があっても画面が壊れるような形では見えない。

Node.jsについて永野氏は次のように説明した。JavaScriptは通常ブラウザ側で処理を行う言語で、それをサーバー側の技術として使えるようにしたものがNode.jsである。PHPと同様に枯れた技術で多くのサイトに使われており、普及度はPHPと同程度と捉えてよいという。

7:36

「自動車のリコール」と同じ構図

IT企業ではないから関係ないと考える企業もあるだろう、という野島氏の問いに対し、永野氏は一般的な使われ方を説明した。企業の多くは、WordPressやEC-CUBEのような、PHPで動くウェブ管理用のパッケージをカスタマイズして運用している。そのため、PHPやNode.jsを使っていることを企業自身が知らないのは、本来おかしなことではない。

永野氏はこれを自動車のリコールにたとえた。メーカーも車種も違うのに同じ部品を使っていて、その部品に重大な欠陥が見つかった。そうなれば持ち主は修理が終わるまで利用を控える。今回はそれと同じ構図だという。

野島氏が、発注先が使っている技術をまず把握しなければならないのかと確かめると、永野氏は同意した。こうした事案では「すぐにパッチを適用してください」というメッセージが出がちだが、永野氏はそれだけでは不十分だと考えている。社内に担当者がおらずベンダーに頼っている企業は、ベンダーが直さない限り何もできない。数時間で事態を収拾できる企業は限られる、というのが永野氏の現実的な見方である。

9:57

遠隔コード実行という危険と深刻度9.2

PHPで見つかった脆弱性は2つあり、番組ではPHPのシェル関連の仕組み(字幕上「PHP2Shell」)が危ないとされた。永野氏によれば、問題の核心は、脆弱性のあるサーバーでは、ログインも利用者の操作も必要なく、外部からの通信だけで攻撃者のプログラムを実行される可能性がある点にある。これを遠隔コード実行(リモートコードエクセキューション、RCE)と呼び、外から脆弱性を見つけられれば中で何でもできてしまうため、非常に危険だという。

野島氏はClaudeがまとめた比喩も紹介した。各部署のドアをどれだけ頑丈にしても、受付係が通してしまえば意味がない。受付が混雑してパニックになり、前の人の書類を片付けないまま次の人に対応すると、名乗らなくても奥の事務所まで入れてしまったり、他人の書類(パスワードや個人情報など)が見えてしまったりする。

永野氏は、脆弱性をスコアリングする団体の評価で、今回は10段階中9.2と緊急対策が必要な区分に位置づけられていると説明した。放置すれば広い範囲のウェブサイトに影響が出るため、非常に重要な欠陥だと捉えてほしいという。

12:12

「正しく恐れる」とは:計画を立て、直せないなら遮断する

すべてのサイトが一発で乗っ取られるわけではないだろう、という前提で「正しい怖がり方」を問われると、永野氏はまず落ち着いて計画を立てることを挙げた。自社のサイトに何が使われているか全く分からない企業もある。だから、公開しているウェブサイトをどのベンダー、どの業者、誰が作り管理しているのかを把握し、対処策を作る。これを経営課題として話し始めることが出発点だという。

数時間や数日で対策できるかどうかは企業によって違う。永野氏はAWS上でサイトを運用する例を挙げた。AWSは、サイトがPHPで作られているかどうかは利用企業の責任なのでパッチを当ててほしいという立場を取る。しかし、どのOS上でどんなソフトウェアが動き、誰がそれを管理しているかは会社ごとに違う。だから、まずそこを洗い出す必要がある。

そのうえで、数時間から数日で解決しそうにないと分かれば、少なくともウェブサイトを遮断することが重要だと永野氏は述べた。サイトは常に公開しておくものだと決めつけず、「メンテナンス中」などとして一定時間止めることを選択肢に入れておくべきだという。

14:39

誰が判断するのか

早い段階でサイトを止めた企業と止めなかった企業がある中で、線引きは誰がすべきかという問いに対し、永野氏は次のように答えた。中小企業なら、影響評価と対策計画は経営課題として扱い、社長などの役員が加わって、窓口担当者と対応業者とで話し合うべきだという。

規模の小さい会社では、Webホスティング会社を使っていることも多い。ホスティング会社にはITの専門家がいるので、どのくらいの時間軸で対応できるかを公式に発表するはずだと永野氏は見る。利用企業はそれを見て、修正が終わるまでシャットダウンするといった判断をすることになる。自社で運用している場合は、すでに出ているパッチで速やかにアップデートする必要がある。

収録時点で実際の攻撃や情報流出が出ているかについては、永野氏は、自社を含めて大きなものは発表されていないと認識していると答えた。WAF(Webアプリケーションファイアウォール)を提供する企業からも被害の発表はないと見ているが、今後の動きは注視すべきだとした。

16:48

Node.jsは後回しにしてよいか

Node.jsでも修正は10件あり、そのうち4件は「緊急」ではなく「高」の評価だった。どちらをどれだけ急ぐべきかについて、永野氏は一律には分けられないと前置きしたうえで、全体としてはPHPの方が緊急性が高いと答えた。

ただし、「PHPは今日、Node.jsは来週」と単純に分けられるものではないという。Node.jsの脆弱性の中には、圧縮データを展開するサービスを使っている企業にとってかなり緊急の対応が必要なカテゴリーのものもある。Node.jsを使っているかどうか、どう使っているかを把握しなければ対策は作れない。永野氏は、特に規模の大きなウェブサイトでそうした状況になると見ている。

18:00

AIが脆弱性を見つける時代

野島氏は、今回のPHPの脆弱性はセキュリティ会社がAIを使った調査で8月ごろに見つけてPHPに報告したものだという話を紹介した。以前ならトップクラスのチームが数カ月かけていた作業を、研究者1人が1週間ほどでこなしたという話もあるという。

永野氏は、手作業や多人数のチームで行っていたことがAIで速くなり、これまで見つけられなかったものも見つけられるようになったと述べた。それは技術の進歩とも、新たなリスクとも捉えられる。長年問題なく動いていたから安全だと考えるのではなく、新しい問題が判明したときに使っている場所を特定して更新できる状態を常に保つことが重要だと、改めて認識したという。

19:29

視聴者からの疑問:古いバージョン、レンタルサーバー、自治体

PHP 7.4や7.3以前を使っている場合の質問に対し、永野氏は、公式の修正版の対象は確か8.2から8.5だったと述べた。一方で、AWSやCloudflareなどはPHP 5.4あたりから影響対象として扱っていたと理解しているという。8.1以前のような古いバージョンには上流のリリースがなかったと思われるので、OSやホスティング、サポートしているベンダーに確認し、対応版への移行を進める必要がある。自社でできない場合は、まず提供元やサポート元に問い合わせるべきだとした。

レンタルサーバーを使う企業や個人については、レンタルサーバー側の問題になるので、まずは事業者の発表を待つことになると永野氏は答えた。発表はほぼ確実に出てくると見ている。逆に発表が出てこない場合は、サーバーを操作される危険がある。永野氏はこれを、鍵の開け方がすべて公開されてしまった状態にたとえた。鍵を替えるまではウェブサイトにアクセスできないようにするか、別の場所へ誘導することを考えておく必要があるという。

SNSで懸念が広がっている自治体については、本庁のホームページだけでなく、施設予約、申請フォーム、観光サイト、外部へ誘導するサイトなど、洗い出す対象が多い。委託先の多い組織での優先順位の付け方を問われると、永野氏は繰り返しになると断ったうえで答えた。大規模被害につながるかどうかは、自組織の利用状況をどれだけ早く把握し、責任者を特定し、更新や修正を実施できるかにかかっている。誰が何をしていて、いつ対応できるのかを理解することが最初に重要だという。

22:32

今日確認すべき3つのこと

永野氏は、ホームページを守るために今日確認すべきことを3つにまとめた。

  1. 何を使っているかを把握する。 今回はPHPとNode.jsが注目されているが、他の脆弱性もある。ウェブサイトの基盤と、可能であれば使っているバージョンまで調べる。
  2. 責任範囲を明確にする。 自社で運用しているのか、制作会社なのか、サーバーの運営会社なのかをはっきりさせる。
  3. 修正のタイムラインを決める。 特にエンドユーザーが使うサイトなら、いつまで使えないのか不安に思う利用者もいるため、いつごろを目途にどうするかを連絡する。修正の目途が立たない場合は、一時停止やアクセス制限を検討する。
23:44

委託先に何を聞くべきか

制作会社やサーバー会社に委託している場合の質問項目も、永野氏がまとめた。PHPを使っているか、稼働しているバージョンは何か、今回の脆弱性への修正は適用済みか、更新後や修正版で動作を確認したか、を確認する。最後に、この脆弱性を使って実際に攻撃されていないかを知るため、不審なアクセスの有無を調査したかを尋ねることが非常に重要だという。

永野氏は、「対応済みですか」と聞くだけでは回答が短くなりがちだと指摘した。「プラグインを更新しました」「CMSを更新しました」だけでは不十分で、不審なアクセスを調べたかどうかまで確認しておく必要があるという。

24:37

「作ったきり」は許されるのか

最後に野島氏は、AIが古い穴を次々に見つける時代に、サイトを作ったきりにしておくことはもう許されないのかと尋ねた。永野氏は、AI時代に入って変わった面はあるとしたうえで、これはデジタル社会における企業側の責任として捉える必要があると答えた。今回の件は、自社のウェブサイトが何を使っていて、誰がそれを守る責任を持っているのかという、ごく基本的な情報を改めて確認する必要を示した。永野氏は「怪我の功名」と言いかけて言い方が難しいと迷いながらも、何かが起きると見直す気になるものなので、この機会に再把握することが重要だと述べた。

野島氏は、これまで注目されてきた情報漏洩の問題も含め、どこに何を持っていて、誰がどの範囲を管理しているのかを急ピッチで点検する必要があるとまとめ、永野氏もその理解に同意して対談を終えた。