セキュリティに関する世界観です。暗号も参照のこと。
エンジニアにとって、必須の作業がもしあるとしたら、それは「セキュリティパッチ情報を追いかける」ということです。
セキュリティパッチの情報を集めて、もし今運用している環境に影響しないかを知るということは、エンジニアにとって「必須の作業」です。
たとえば下に書いたLog4Shellの脆弱性などは、知らないということは絶対に許されません。
脆弱性情報データベースとして、有名なのはCVEです。最新の情報はTwitterアカウントがあります。
アメリカの場合NVD、日本の場合JVNなどがあります。
その他のリンク集などは以下が参考になります。
後日注記:脆弱性が公開されると、MITRE社によってCVE番号が付けられます。この番号によって、脆弱性を区別し、脆弱性の識別子として利用することができます。
後日注記:セキュリティパッチを当てることはセキュリティ対策の基本です。「影響範囲が分からないから」とか「今運用しているシステムが動かなくなるかもしれないから」と言わず、必ずパッチを当てましょう。もし怠ると、以下のX(旧ツイッター)のような状況になることがあります。
2026.05.24編集
2026.10.10編集
僕が思いつく限りで、簡単にできるセキュリティ対策としては、
| セキュリティ対策 | 説明 |
|---|---|
| セキュリティ更新 | 使うサーバーやシステム、コンピュータなどについて、 ソフトウェアをアップデートし、セキュリティホールを埋める。 サポートの切れたWindowsや昔のRed Hat Linuxを使わず、 アンチ・ウイルスソフトウェアのパターンも最新にする。 WindowsだけではなくJavaなども最新にする。 |
| 重要なファイルの管理 | スパイウェアから盗まれるのを防ぐため、 個人情報やパスワードの入ったデータファイルを、 ネットワークに繋いだパソコンに置かない。 |
| 強力なパスワード | Webサービスがハッキングされた時に備えて、 GoogleのようなWebサービスに、 容易に推測できるパスワードを使わない。 大文字や数字や記号の含まれる文字数の長いパスワードを使う。 |
| 暗号化通信 | 通信機器などの中継地点から通信を傍受されないように、 暗号化されていない通信で、 大切な情報をやり取りしない。 |
| ウイルスを入れない | ウイルスやデータを盗むスパイウェアの入ったフリーソフトを インストールしない。 不要なアプリケーションはパソコンやスマホに入れない。 ウイルス対策ソフトウェアを入れる。 |
| 不正サイトを見ない | 不正サイトを見ない。怪しいリンクを踏まない。 怪しいサイトではパスワードやクレジットカード番号を入力しない。 怪しいメールが来た時は、メールのリンクを踏まず、公式サイト情報を確認する。 安全でない海外のアダルトサイトなどを閲覧しない。 |
| 怪しい添付ファイルを見ない | Windowsなどで、不審なメールや不正マクロの入った 添付ファイルを開かない。 |
| バックアップ | バックアップはバランスが大切。 盗まれて困るようなUSBメモリなどに大切なデータを保管しないと同時に、 どこかのマシンが壊れても別のマシンにデータがバックアップされるようにする。 |
| 機器のセキュリティ | セキュリティの甘いマシンや通信機器をネットワークに繋がない。 Windows XP以前のOSはネットワークに繋がないようにする。 |
| 認証のセキュリティ | パスワードを複数のサイトで使いまわさない。個人情報を安易に入力しない。 二段階認証やパスキー・生体認証を設定する。 機器に最初から設定されている初期パスワードは必ず変える。 |
などがあります。
企業やビジネスで言えば、
| セキュリティ対策 | 説明 |
|---|---|
| メールのセキュリティ | セキュリティの甘い会社とはメールでやり取りをしない。 |
| 機器のセキュリティ | セキュリティの甘い機器は使わない。 |
| 持ち出し禁止 | 重要なデータや個人情報を社外に(たとえ関連企業や家庭のパソコンでも)持ち出さない。 USBディスクは盗まれる可能性があるため、社内で共有しない。 |
| システムのアップデート | 前時代のシステムは常にアップデートを行う(古いRed Hatなどを使ってはいけない)。 |
| システムのネットワークを遮断 | システムを構築する際に、インターネットを使わず、社内ネットワークやローカル通信を使う。 |
| バックアップとロギング | バックアップとログをきちんと取る。NASのミラーリングシステムを導入する。 |
| 監視と隔離 | 社内のサーバーやネットワーク通信を監視し、侵入時に隔離できるシステムを導入する。 |
| 専門家 | OSなどのセキュリティ対策(SELinuxなど)が分かる専門家に相談する。 |
| 情報の監視 | 普段からセキュリティ情報をよく監視するようにする。必要ならパッチを当てる。 |
| 教育 | 末端の社員がフィッシングやランサムウェアに引っかからないように、社員を教育する。 |
これらは、公益性の高い職場やサービスであればあるほど、重要性を増してきます。
ですが、このようなセキュリティ対策を行っていても、「関連する末端の企業のセキュリティ」が甘ければ、そこからウイルスが入ります。このウイルスは入った時点では、見つからないように潜伏しているため、存在が分かりません。突如として大量にサーバーを破壊し、復旧しようとしても別のパソコンから感染し転移するため、復旧も難しくなります。
オリンピック大会の選手や観戦者の認証を行う認証サーバーなど、本当にセキュリティ対策をしていても、何百とあるセキュリティ攻撃の「どれかが入り込む」ことで、セキュリティは木端微塵に破られてしまいます。ピョンチャンオリンピックでもこうしたセキュリティ攻撃が行われました(IT社会を参照のこと)。
忘れがちなのが、パソコンだけではなく、スマホやタブレットのセキュリティ。パソコン同様に危険なので、パスワードをきちんとかけて、他人に簡単に渡したりしないこと。今からの時代大切な媒体になっていくでしょう。スマホはモバイルで携帯して使うため、パソコンよりも盗まれやすく、駅などに放置すると盗まれた時が大変で、紛失することも多いため、十分注意して使いましょう。
後日注記:パソコンやスマホはたくさんのアプリを入れたほうが便利に使えるため、多くのアプリを導入したほうがいいような気がしますが、実際はセキュリティ的に問題があるアプリやサポートが切れたアプリを使うと、セキュリティ上の危険を伴いますし、ウイルスが入る危険性も高まります。特に古いJavaVMなどを使っているとウイルスにかかりやすくなるので、不要ならばできるだけ導入しないようにしましょう。
2026.01.18編集
2026.10.23編集
サーバーのセキュリティ対策の基本は、「アップデート」「ミニマリズム」「認証制限」そして「監視」です。
| セキュリティ対策 | 説明 |
|---|---|
| アップデート | サポートされているOSを使うこと。 常にシステムをアップデートすること。 |
| ミニマリズム | 不要なサービスを起動しないこと。 不要なパッケージをインストールしないこと。 |
| 認証制限 | ログインできるユーザーを制限すること。 SSHのログインを制限すること。 |
| 監視 | ロギングとモニタリングでネットワーク通信を監視すること。 ログをできるだけ残す設定にすること。 定期的にウイルススキャンを行うこと。 |
また、chkrootkitの導入なども行いましょう。
Linuxでは、システムのログは/var/log/syslogに出力される。またtopコマンドを使うことで、システムのプロセスやスレッドの状況を監視できる。
詳しくは以下の記事が参照になります。
initとデーモンやSSH設定やUNIXシステム管理(システムロガー)やLinuxネットワーク(モニタリング)やrootkitを参照のこと。
2026.05.24編集
最近、Linuxは少しずつセキュアになっています。
たとえば、先日リリースされたDebian 10では、強制アクセス制御のAppArmorがデフォルトで有効になり、またDebianでもようやくセキュアブートがサポートされた。UEFIのセキュアブートは多くのディストリビューションで有効になっており、PCの起動時にあらかじめデジタル署名のあるソフトウェアしか実行できなくし、ルートキットなどがOSより早く実行されるのを防ぐ。
7payやビットコインなどの不正利用などの問題で、既存のシステムを使ってビジネスサービスを行う際のセキュリティ向上はとても大きな課題である。時代は、LinuxのようなOSのレベルでセキュリティを向上させ、「絶対にハッキングが起きなくする」ことを求めている。
また、Debian 10では新たにRustによるバイナリを追加し、Waylandが標準で有効になった。こうした足場から、少しずつセキュリティを高めてもらいたい。
後日注記:最近もLinuxカーネルでは深刻な脆弱性が多数見つかっています。Windowsでないからといって安心せず、パッケージを最新にアップデートすることを忘れないようにしましょう。
2026.05.09編集
パケットフィルタリングとは、ファイアーウォールを用いて、パケット通信に介入し、アクセスの制御を行う仕組みのこと。つまり、不正な通信をブロックすること。
これに対してVPNとは、インターネット上に仮想のプライベートネットワーク(専用回線)を作ること。つまり、社内だけの専用のネットワークを作ること。VPNの中での通信をVPNの外から傍受することはできない。
ファイアーウォールでパケットフィルタを設定し、VPNを設定することで、社内・家庭内のネットワークのセキュリティを向上できる。
Linux ファイアウォールとiptablesも参照のこと。
インターネットVPN(インターネットを使用するVPN)には、SSLを使ったSSL-VPNと、IPSecを使ったIPSec-VPNがある。
IPSecはパケットの暗号化や改竄防止の機能を提供するプロトコルで、IPSec-VPNで使われている。
ほかに、インターネットを使用せず、閉ざされた専用のネットワーク回線を使用する、IP-VPNなどがある。
暗号も参照のこと。
2023.05.07
2023.05.08編集
手軽にVPNサーバを立てたいなら、Raspberry PiにPiVPN/OpenVPNを導入するといいかもしれない。自宅のネットワークに外から接続できる。
Raspberry Piも参照のこと。
2023.05.27
2025.04.24編集
トンネリングとは、インターネット回線上に仮想のトンネルを作成し、送信者と受信者をトンネルで繋ぐ仕組みのこと。
トンネルの内部に、外部から遮断された「見えない通り道」を作る。
暗号化とともに使い、トンネルを相互に繋ぐことで、あたかも専用のプライベートネットワークであるかのようにVPNを運用することができる。
Linuxネットワーク(さまざまなコマンド)を参照のこと。
(「徹底攻略 応用情報技術者教科書 平成30年度」を参考に執筆しました。)
PHPなどの言語によって対策可能なセキュリティ攻撃については、PHPセキュリティに記述しているが、それ以外の主なサイバー攻撃についてを説明する。
| 攻撃 | 説明 |
|---|---|
| バッファオーバーフロー攻撃 | バッファよりも大きなサイズのデータをポインタなどに代入することで、 バッファオーバーフローを起こしてシステムの大事なデータを書き換え、 不正なプログラムを実行させる攻撃。 |
| DNSキャッシュポイズニング | DNSサーバのキャッシュを書き換えることで、 不正なサイトのURLを正常なサイトに見せかけて、不正サイトに誘導する攻撃。 |
| DoSあるいはDDoS攻撃 | たくさんの「踏み台」と呼ばれるマシンにウイルスを感染させ、 それらのマシンからひとつのサーバにリクエストを送りまくることで、 サーバをダウンさせる攻撃。 |
| フィッシングサイト | 不正なサイトを正常なサイトに見せかけて作り、 パスワードや暗証番号・クレジットカード番号などを入力させ、盗み取る攻撃。 |
| ランサムウェア | コンピュータ内の大事なデータを暗号化し、 「暗号化を解いてほしければ金を払え」と、 暗号化の解除に対して金銭の支払いを要求してくる攻撃。 |
このほか、パスワードを不正に入手するパスワードクラックという攻撃がある。辞書を使うものを辞書攻撃、総当たりで力技で解析するものをブルートフォース攻撃、ほかのサイトで入手したパスワードと同じパスワードを使うものをパスワードリスト攻撃などと言う。
また、ウイルスやマルウェアの感染についても、踏み台を通じて行う場合が多い。ウイルスに感染した踏み台から、さらに大量のウイルスメールを不特定多数に送り付け、間違ってクリックした人間をどんどんウイルスにかける。また、ウイルスと同等の、それ自体が悪いことをするのではなく、情報を不特定多数に拡散する目的の「スパムメール」と呼ばれる攻撃があり、大量の人間にURLの宣伝をすることで有料サイトや不正サイトなどへと誘導する。
2023.01.31
侵入検知とは、その通り侵入を検知する技術。
異常な通信などを発見し、「どうすれば防げるのか」だけではなく、「今侵入されているかどうか」を監視し、検知し、通告する技術である。
IDSは侵入検知システムと呼ばれ、侵入を検知するシステム。
これに対してIPSは侵入防御システムと呼ばれ、侵入を検知するだけではなく防御する。
UTM(Unified Threat Management)は、IDSとIPSの機能を備えている統合型のセキュリティ製品。
ソフトウェアやシステムのセキュリティを強化するためには、ハッカーと同じことをしなければならない。実際に既知の技術を用いて侵入を試みることを「ペネトレーションテスト」という。これはLinuxでもよくやられているセキュリティ強化の手法である。まさに「善意のハッカーと悪意のハッカーは紙一重」である。善意のハッカーのことをホワイトハット、悪意のハッカーのことをブラックハットという。
サイバー攻撃についてはPHPセキュリティを参照のこと。
セキュリティ対策において、「バッドプラクティス」と呼ばれる間違った方法をリスト化したCISAによれば、バッドプラクティス(を行わないための対策)は「サポートがされなくなったOSやソフトウェアを使わないこと」「既知・固定・デフォルトのままのパスワードを使わないこと」「単一要素認証を使わないこと」です。
認証も参照のこと。
STIG (Security Technical Implementation Guide)とは、アメリカの国防総省のDISAによって裁定される、セキュリティ関連の国際的な基準や規格や実装ガイドのこと。
2026.01.29
Torはインターネット通信において接続経路情報を匿名化する技術。
The Guardian Projectはオープンソースのセキュリティ関連の団体で、Torプロジェクトと協力関係にある。
後日注記:Torは、インターネットでハッキングを試みる悪意あるハッカー集団によって使われることが多い技術。多くの組織的なハッカーが、自らの国や組織を隠すためにTorを使用している。
プライバシー保護ブラウザも参照のこと。
ダークウェブとは、インターネット上の闇空間のこと。匿名性が高く、Googleなどには登録されず、Torなどを使わないとアクセスできない。
ダークウェブには非合法マーケットやサイバー犯罪マーケットがあり、特にセキュリティ攻撃によって流出・漏洩した情報(個人情報やパスワード、クレジットカード情報など)が仮想通貨で売買されている。
このほか、ダークウェブではP2Pソフトと同様、自由のない国(中国やロシア、イランなど)の言論の自由のためや、薬物や児童ポルノ、商用ソフトの海賊版や詐欺のためのマニュアルの流通にも使われている。
P2Pも参照のこと。
2026.10.10
OpenSCAPは脆弱性の自動診断と修正ができるツール。
2026.01.29
Keylimeはリモートシステムを監視し、整合性をチェックするシステム。
2026.01.29
SIEMはログデータを解析・収集し、相関関係を分析することでいち早く異常に気付き、特定するシステム。
2026.01.29
SOC (Security Operation Center)は、24時間体制で組織のネットワークやサーバーや端末のセキュリティを監視・検知・分析し、セキュリティ対策を行う中央センターのこと。
また、CSIRT (Computer Security Incident Response Team)はセキュリティインシデントが実際に発生した時に対応や復旧作業などを行う組織のこと。
2026.10.10
ゼロトラストとは、社内ネットワークの安全神話を捨て、社内であってもすべてのネットワークアクセスを信頼せず、それを前提にセキュリティ対策を行うこと。
2026.10.10
インシデント対応訓練とは、サイバー攻撃が起きた時のために備えたシミュレーション訓練のこと。
2026.10.10
暗号を参照のこと。
認証を参照のこと。
アンチウイルスを参照のこと。
主なセキュリティ攻撃について詳しくはPHPセキュリティを参照のこと。
Linuxにおけるファイアーウォールについては、Linux ファイアウォールとiptablesを参照のこと。
UNIXシステム管理(ユーザーとパーミッション)やSELinuxやAppArmorを参照のこと。
監視・モニタリングについてはLinuxモニタリングも参照のこと。
Googleによる追跡・トラッキングに反対するDuckDuckGoにより、Linuxのセキュリティやプライバシーを守る方法が以下に投稿されています。
ちなみに、以下にWindows/Mac向けのプライバシー保護情報があります。普通のWindowsユーザーはこちらも参照のこと。
DuckDuckGoも参照のこと。
IPAのセキュア・プログラミング講座で、さまざまなセキュリティ対策が紹介されています。
Linuxにおけるセキュリティ技術について、本格的に学びたい方は、LinuCレベル3 303試験でセキュリティの領域に関する資格試験を実施されているため、情報セキュリティスペシャリスト試験(略称SC)などと合わせて勉強されると良いと思います。
基本情報やLPIC/LinuCを参照のこと。
以下の書籍・ページが参考になります。
以下はセキュリティ関連の記事。セキュリティの世界において、もっともらしいと信じられているにもかかわらず、実際は誤っている神話や伝承を否定した記事です。
2026.01.14
今、世間を騒がしているLog4jの脆弱性(Log4Shell)により、インターネットは闇の世界になるかもしれません。
Log4jは、Javaのライブラリのひとつで、オープンソースソフトウェアです。使う目的は、ログを取ること。Javaでは、ログを吐き出す目的で、ほとんどの場合Log4jが使われています。
見つかった脆弱性は、Log4jに実装されていた、ログを吐き出すだけではなく、特定の記法でログを吐き出す命令が来た時に、LDAPとJNDIを用いて、インターネット上のclassファイルをダウンロードして実行するという機能による脆弱性です。
そもそも、ログを取るだけの目的であれば、このような機能は必要ありません。ですが、Log4jでは、特定の構文が来た時に、それを自動的に解決して実際の値に置き換えるマクロ的な構文が用意されていて、この中に、LDAPとJNDIに関する命令があり、これをログに記録させようとした場合、インターネット上から悪意あるプログラムをダウンロードして実行してしまうということが分かったのです。
Log4jは、とても広く使われているソフトウェアです。そのようなソフトウェアに、このような一般的大多数には必要とされないような機能が実装されていたことがまず問題です。Javaの多くのモダンなプロジェクトは、Log4jをロギングのために使っています。
そして、この脆弱性を通じてハッキングを行うのは極めて簡単です。ログに記録させることさえできれば構わないからです。ログは、入力フォームなどを実行しただけでも、あるいはリクエストが来ただけでも記録されます。この中に、不正な文字列を仕込ませておけば、あとはプログラムを勝手にダウンロードさせて実行できます。データを破壊することも、盗むことも、ウイルスに感染させてバックドアを仕込むことも、なんでもやりたい放題です。
そして、対象範囲が広すぎます。多くのJavaプロジェクトでLog4jをロギングのために使っています。たとえば公開サーバーのサーバーサイドのバックエンドに使われているかもしれません。自分でロギングに使わなくても、依存ソフトウェアがロギングのために使っていればアウトです。依存ツールすべてを調べ上げるのはとても困難です。
Log4jはApacheプロジェクトの傘下であり、既にパッチが提供されています。一度のパッチで済むはずが、さらに問題が見つかって今のところ(2021.12.20)では3つの新しいバージョンが公開されています。Log4jの脆弱性を後回しにすることは、家のドアに鍵をかけずに公開しているのと同じです。すぐにパッチを当てるなどの対処をおすすめします。
僕は、システムのセキュリティを向上させるために、ユーザーが明示的に行ったプログラムの実行以外は、サンドボックス環境でしか実行できないようにするなどの方法が考えられると思う。
自分でコマンド操作やGUI操作を行う場合以外には、プログラムがシステムのデータを書き換える際に、必ず許可を求めなければいけないようにし、許可がない場合はファイルの変更やプログラムの実行ができないようなサンドボックス環境でプロセスが実行されるようにすればいい。
そうすれば、ウイルスなどが入り込んで不正な処理を実行することもできなくなり、システムのセキュリティホールをつかれたとしても、重要なファイルが破壊されたり奪われたりということを減らすことができるだろう。
僕が思うに、サイバー攻撃によって世界は滅びると思います。
最近は、日本国内でも毎日のように個人情報の漏洩や流出が起きており、AIによってサイバー攻撃が行われていると見られる事態も増えています。
僕は、サイバー攻撃がこれ以上激化すると、銀行のような金融資産を安全に預けておくことができなくなると思いますし、ネットサービスを安心して使うこともできなくなると思います。
特に、マイナンバーカードやマイナ保険証は、今からでも元の紙の健康保険証に戻すべきだと僕は強く訴えます。
これ以上、サイバー攻撃犯罪が多く起きるようになれば、人類はある意味で終わりだと思います。それが「AIは人類を滅亡させる可能性がある」ということなのかもしれません。
後日注記:テレビでやっていましたが、今まではIT企業はバンバン個人情報を集めて、個人データをたくさん持つことを目指していました。ですが、これだけサイバー攻撃が広がって、逆に「個人情報を持つことがリスク」だと考えるようになったそうです。個人データを集めることで、その個人データがなんらかの形で流出する可能性があることをリスクと捉え、Appleなどは個人データをできるだけ集めないようになりました。
後日注記:NHKのニュースによれば、大量の個人情報の漏洩は最初の「簡単に攻撃可能かもしれない」とする試験的なもので、これからは金融機関などお金のあるところが狙われる、新しいフェーズに入ったそうです。また、デジタル庁のホームページからも情報が漏洩しており、もはや大丈夫だと安心できるようなところはどこにもありません。
2026.10.10-11
2026.10.23編集
プログラミング言語としてWebの世界で広く使われているPHPに、「PHP2Shell」と呼ばれている、未認証でリモートからサーバ上で悪意あるコードを実行できるRCE系の2つの脆弱性が見つかった。
対象となるのは、PHPで作られたWebサイトの管理者。対策は、PHPから提供されている修正パッチを適用すること。ただし、PHP5やPHP7の古いバージョンを使っているシステムは、問題を確認してPHP8系列の新しいバージョンにアップデートすることが基本的に必要(古いバージョンへのパッチのバックポートもあるが例外的)。すぐには適用できない場合、対策が終わるまでシステムを停止させることでもリスクを回避できる。もし放置した場合、サーバーを乗っ取られる危険性がある。
PHPは、Webアプリケーションの開発に特化した動的スクリプト言語で、30年以上の歴史があり、Perlのようなシンプルで簡単な文法と、HTMLの中にプログラムコードを埋め込んで簡単に開発できる手軽さ、そしてプロセスベースでなくスレッドベースによる速度や効率の高さなどから、2000年代に爆発的に普及し、その後にNode.jsのような後発の言語に一部置き換わりながら、今でも約7割のWebサイトで使われている。
また、PHPをじかに触って作られたWebサイトでなくても、CMSであるWordPressを使ったホームページの場合にも影響がある。CMSとはHTMLを自分で書かなくてもさまざまなWeb関連の機能を使うことのできる便利ソフトウェアで、新規のホームページの作成案件によく採用されている。ただし、今回はPHPの脆弱性なので、WordPressのバージョンアップではなく、より下層にあるPHPのバージョンアップが必要である。
今回の脆弱性は、10年以上に渡って見つからず放置されていたものが、OpenAIらの最先端AIを使って見つけられたもので、日本の総理大臣である高市首相も、自身のX(旧ツイッター)でセキュリティの注意喚起を行い、修正パッチを速やかに適用するか、あるいは対策が終わるまでシステムを停止することを推奨している。
ただし、この件があって、昨日のX(旧ツイッター)はある種のお祭り状態だった。パッチが提供され、脆弱性の詳細が明らかになるのは、10月21日の23時からだった。そして、それ以後はハッカーとのスピード勝負。脆弱性とパッチの詳細が明らかになることで、どこに問題があるかがAIによって解析できてしまい、攻撃するためのツールを作ることができるようになる。PHPを使っているかどうかは外部からでも分かるため、脆弱性とパッチの詳細が明らかになった段階で、対策が行われる前に、世界中のPHPサイトにハッカーが攻撃することが考えられる。対策するためには、ハッカーが攻撃を仕掛けてくるよりも前にパッチを適用するか、それが難しければ多少の損害を覚悟してもシステムを停止する必要があった。
しかしながら、23時まで情報は公開されないはずなのに、不届き者の研究者がSNSに情報をリークしてしまう事態が生まれ、23時を待たずして攻撃用のツールが出回るなど、さらに緊急性は高まる。緊急性の高い事案であるため、特にセキュリティ担当の技術者などは、徹夜作業で対応を行った。
僕が毎日のように使っているpixivのようなサービスも、緊急メンテナンスの対応を行い、数時間サービスが使えなくなった。ほかにもPHPで作られたソシャゲ(ソーシャルゲーム)のサイトなどは相次いで緊急メンテナンスとなり、ネット世界は一時騒然とした。最近はサイバー攻撃で個人情報の漏洩が相次いでいるため、X(旧ツイッター)では「ついにpixivもか」とか「非公開のブクマが世界中に公開されたら社会的に死んでしまいます」などといった冗談とも悲痛な叫びとも言えるポストが多く見られた。23時(後日注記:間違い。実際は21時59分)にパッチが公開されると、pixivは対策を早々と終えて早期にサービス復旧した。X(旧ツイッター)やYouTubeなどはPHPを使っていないため問題は起きなかった。
PHPは広く使われている言語だが、必ずしも設計が優れているとは言えない。「PHPは欠陥のフラクタル」(全体を見ても一部分を見ても次から次へと欠陥が出てくる)という批判も以前からある。僕のホームページではPHPを使っておらず、HTMLとCSSとJavaScriptでデザインを行っている。これを機に、PHPではなくNode.jsのようなJavaScriptのモダン技術を採用するのもひとつの手かもしれない。
ただし、PHPの脆弱性に続いて、Apache Tomcatなどでも脆弱性が見つかっており、これをPHPだけの問題とすることはできない。TomcatはPHPと同様のWebアプリケーションをサーバー上で実行するためのサーブレットコンテナという技術だが、PHP言語ではなくJava言語を用いる。PHPよりもJavaのほうが多少難しい。PHPもTomcatもともにオープンソースで、インターネット上からダウンロードでき、無料で利用できる。
注記:すみません、パッチそのものは当初の予定だった21日の23時ではなく、実際には21時59分に出ていたそうです。情報が事前にリークされたため、約1時間の前倒しとなったらしい。また、以下の記事にあるように、事前の情報の少なさから不安ばかりが先行しましたが、実際は必ずしもどんな環境でもすぐに乗っ取られるようなものではなく、恐怖の煽りすぎだった。また、PHPの勧告が詳細だったため、AIによって解析する必要もありませんでした。
注記:ですが、そのような意見がある一方で、下の動画にあるように、インターネットの世界を守るためには極めて重大な脆弱性であり、僕の使っているサービスでもメンテナンスによってシステムを停止するところが多く、NHKなどのテレビのニュースでも詳しく報道されました。既に復旧されたところもありますが、銀行、自治体、交通に関するアプリなど、影響は広がっています。
後日注記:PHP2Shellの後も脆弱性祭りです。Linux、Java、Apache、Tomcat、Chrome、Node.js、Firefox、React、Next.js、Laravelなどの脆弱性ラッシュが起きています。
後日注記:PHP2Shellの後はHTTP2Shellだそうです。Node.jsやPythonで使われているBrotliライブラリの脆弱性とのこと。
後日注記:eMudhraの証明書の漏洩の件の対策については以下が参考になります。
後日注記:これ以後もセキュリティの脆弱性は相次いで報告されています。Chrome、Edge、Firefoxなどもヤバいみたいです。
2026.10.22-25
2026.11.04編集
AIによって、爆発的な勢いで、セキュリティの脆弱性が見つかる時代になった。
だが、これについて、「脆弱性は見つかるよりも前からあったのだから、見つからなかっただけで、ソフトウェアの欠陥を修正することができて、セキュアになって良いことだ」と思う人は、僕は間違いだと思う。
たとえば、戦国時代よりも前には、銃や戦車や核兵器はなく、人々は剣や槍や弓で戦っていた。
そのような戦国時代においても、「その当時であっても核兵器を作ることのできる科学的な法則はあったのだから、人々が見つけてなかっただけで、核兵器が使われるかもしれないリスクは同じだった」と、言えるのだろうか。
僕は、物理的に科学法則として核兵器を作ることができる状態だったとしても、「実質的」に核兵器をみんなが作れる状況だったのか、それともほとんどの人間にとってそれが不可能な状況だったのかは、重要なことではないかと思う。
AIの登場によって、人々は「悪魔の攻撃ツール」を手にしてしまった。もちろん、防御側として使えば、セキュリティを向上させるためのツールとして使うことができる、という人々の意見は分かる。だが、実際は攻撃のほうが防御よりもはるかに簡単であり、人々は専門的な知識があるハッカーだけが多くの時間と労力を投じてできていたことを、簡単に、楽に、いくらでも、自動的にできるようになった。これはまさしく、サイバーセキュリティにおける核兵器だと僕は思う。
2026.10.23
僕が思うに、セキュリティの被害がこれだけ出ているのは、インターネットが世界中に公開されていることが原因としてあると思う。
最近のテレビの報道でも見られるように、ハッカー集団というのは、中国、ロシア、北朝鮮など、外国のハッカー集団が、悪いことをして荒稼ぎをするビジネスのために、日本という「カモ」を標的にしている。
日本人や日本企業は、サーバーを公開してサービスを提供するために、それを日本人のためのサービスとして提供しているつもりでも、実際はネットワークは世界中に公開されている。
そして、そのような日本企業は、なぜか機械のことを信頼している。それは、日本の製品が信頼がおけるのが普通だからだ。
普通、日本の工場が作った機械製品は、欠陥や不具合がなく、品質が高く、長い期間壊れずに安定して動いてくれる。特に、コンピュータという先端産業は、そこらへんがきちんとしていると信頼されている。
だが、実際は、日本人が普段使っているIT機器やソフトウェアは、多くがアメリカなど外国の製品であり、日本製のプロダクトは少ない。
そのため、日本人はコンピュータを信頼するが、その信頼がおけるほどの品質を、ソフトウェアは持っておらず、インターネットに繋がれた機器が、人々から信頼されるに値しない欠陥製品であることがある。
そして、NHKのニュースの特集でロシアのハッカー集団Qilinが語っていたように、多くの日本企業は脆弱性を放置している。少し調べるだけで、古くからある脆弱性が次々に見つかる。ロシアのハッカーは、その脆弱性をビジネスとして突いてくる。
そう、悪いことをするのは外国のハッカーであり、脆弱性のある欠陥ソフトウェアも外国の製品だ。にもかかわらず、日本企業は日本人向けにサービスを提供するつもりで、世界中に脆弱なネットワークを公開してしまっている。そして治安のいい日本国内の感覚で、「どうぞ日本のみなさんサービスを使ってください」と言いながら、脆弱性のあるサービスを世界中に提供し、海外のハッカーからカモにされるのだ。
対策として、もちろん、脆弱性に対処し、パッチを当てることはソフトウェアエンジニアとしては当然だが、僕としては、「日本だけのネットワーク」を作ればいいのではないかと思う。
すなわち、外国のハッカーが侵入することのできない、日本だけの閉じたネットワークを作る。そして、そこで動くソフトウェアは、すべて日本製とし、欠陥のない品質のあるソフトウェアを、お金をかけて日本企業と政府が製造し、99.99%の水準で欠陥がないことを信頼のおける日本の安全性のテストで保証する。
もちろん、日本国内にも悪いことをする人間はいるだろうが、それは国内の法律で罰すればいい。日本の犯罪者は国内できちんと足跡をたどって逮捕する。それでも捕まえられないのは海外のハッカーであり、そのような海外のすべてのネットワークアクセスを遮断することで、サイバー攻撃の被害は減ると思う。僕はこの日本ローカルのネットワークに「日本ネット」という名前を付けたい。
日本で横行している特殊詐欺やトクリュウなどの凶悪犯罪も同様に、カンボジアや中国など、外国の犯罪組織が拠点となっていることが多い。アメリカではトランプ政権でのICEによる移民の強制摘発が問題となっているが、アメリカだけではなく、全世界的に見て、イスラムのムスリムやヒスパニック系の移民による治安の悪化や文化の破壊が問題になっている。単に「極右政党がネットで過激なことを言っている」だけでは正しく対処できない。今からの21世紀は、どの国でも、その国の国民と外国の悪い人間の対立の時代になっていくと思います。犯罪者だけではなく、外国人観光客のマナーの悪さなども問題に挙げられます。
2026.11.06