名古屋でAIシステムの開発をしている小嶋です。
「サイバー脆弱性の多くはバグではなく、不特定多数がつながる前提で作られていない1960〜70年代設計のOSやプログラミング言語の"仕様"だ。Linuxはその中でもネットに弱いOSの代表で、C言語もそうで、その組み合わせの典型がPHPだ」という主張が、X で読まれています。サム・アルトマン氏の「バグを全部直すのはもう無理だ」という発言を引用したものです。
前半の「仕様の問題」は、正しい指摘です。ところが、「Linuxはネットに弱いOSの代表」のところで、話が事実と逆になります。この記事では、どこが正しく、どこが逆なのかを分けて書きます。
結論を先に書きます。
- ネットに強いOSが本当にあるなら、Linuxは一番使われていないはずです。 実際には、ネットの土台のほとんどが Linux です
- Linux の脆弱性の報告が多いのは、弱いからではなく、一番使われ、一番調べられているからです
- C言語にメモリの境界チェックが無いのは仕様で、脆弱性の元です。ここは主張のとおりです。ただし、守りに特化したOSも C言語で書かれています
- 本当に弱いのは、OSではなく、古いままのソフトと、指摘を直さない運用です。GMO の事故もそうでした
Linuxは「ネットで使われている」のではなく「ネットそのもの」
まず、どれだけ使われているかです。
- ウェブサイトのサーバー:約9割が Unix 系で、その大半が Linux です(W3Techs の調査)。Google・Amazon・Facebook の裏側も、AWS や Google Cloud といったクラウドの土台も Linux です
- スーパーコンピューター:世界の上位500台(TOP500)は、2017年11月から全部 Linux です
- スマートフォン:Android は Linux のカーネルの上に乗っています
つまり、攻撃する側から見て「狙う価値がいちばんある場所」に、いつも Linux がいます。脆弱性の報告が多いのは当然で、それは「弱い」こととは別です。
「ネットに強いOS」は存在するか
守りに特化したOSは、あることはあります。
- OpenBSD:余計な機能を最初から入れず、既定の状態で穴を極力なくす設計です。「既定のインストールで遠隔から突ける穴は、長い歴史の中で2つだけ」を掲げてきました
- seL4:ごく小さなカーネルで、プログラムが仕様どおりに動くことを数学的に証明しています
ただ、ここが大事なところです。どちらも C言語で書かれています。 「C言語が元凶」という理屈をそのまま当てはめると、守りに特化したOSも弱いことになり、話が合いません。これらの強さは、言語ではなく、「余計なものを入れない」「正しさを証明する」という作り方から来ています。
そして、これらが「ネットに強くて、しかも実用になる」なら、Linux はとっくに置き換えられているはずです。置き換わっていないのは、Linux が十分に強く、動かせるソフトと使える人がそろっているからです。
C言語の仕様が脆弱性の元、という点は正しい
主張の前半は、いまのセキュリティの主流と同じ方向です。
- C言語には、配列の端を越えて読み書きしても止める仕組みがありません。バッファオーバーフローの大半は、この仕様から来ています
- Google は、Android の開発で Rust などのメモリ安全な言語に切り替えたことで、メモリ起因の脆弱性の割合が、2019年の76%から2024年には24%に下がったと公表しています
- 米国の CISA と NSA は、メモリ安全な言語への移行を求める文書を出しています
- Linux のカーネルにも、2022年から Rust が入り始めています
ですから、「60〜70年代の設計を引きずっている」は、Linux だけでなく、C言語で書かれたすべてのOSに当てはまります。Linux は、その中でいちばん速く直し、いちばん速く新しい言語を取り込んでいる側です。
PHPとGMOの事故は、言語の仕様の問題ではない
「組み合わせの典型がPHP」についても、少し違います。PHP の事故の多くは、言語の仕様ではなく、その上に作ったアプリの作りの問題です。SQLインジェクション、入力の検査もれ、設定のミスです。これらは、どの言語で書いても起きます。
GMO インターネットの「お名前.com デスクトップクラウド」への不正アクセスも、Linux や C言語の古さが原因ではありません。熊谷代表が会見で認めたとおり、社内のホワイトハッカーから指摘されていたシステムの課題を、運営にいかせなかったことが原因です。設定の不備があり、2年前に指摘されていました。会見で認めたこと・補償・まだ答えていないことは、GMO熊谷代表の会見まとめに書きました。
同じ投稿の最後にある「まず DevSecOps を入れてから悩んでほしい」は、この事故にいちばん合った結論です。言語やOSの話より、こちらが本筋です。
本当に弱いのは、OSではなく「直さない運用」
Linux の脆弱性は、見つかると数日で修正が出ます。問題は、その修正を当てないサーバーが、何年も残ることです。
- 5年前の WordPress と PHP のまま動いているレンタルサーバー
- 誰も使っていないのに消していない管理画面
- 「あとで直す」と言われたまま、2年たった設定
攻撃する側が狙うのは、OSの設計思想ではなく、こういう場所です。中小企業に計算機科学の大学院を出た人はいませんし、雇えません。学歴ではなく、手順で守るしかありません。
- 外から自社のサイトがどう見えているかを、定期的に確かめる
- 古いままのソフトを、更新する
- サイトの書き換えがあったら、すぐ知る
国会ではどう議論されているか
情報漏えいとサイバー攻撃は、国会でも繰り返し取り上げられています。当社のKurage 国会トラッカー「個人情報の漏えいとサイバー攻撃」には、2020年以降の質疑829件・答弁616件が並んでいます。身代金の要求については「ランサムウェアと身代金・サイバー犯罪の捜査」にまとめています。
中小企業が「DevSecOps」の代わりにできること
当社の Kurage App Store には、自社のサイトを守るための業務システムがあります。どれも買い切りで、保守契約も月額料金もありません。
- 外から見える守りの弱いところを、URLを入れるだけで点検する(Kurage Security Check)
- サイトの書き換え(改ざん)を毎時見張って知らせる(Kurage Security Watch)
指摘された課題を、どの順で、いつまでに直すかを一緒に決めて進めるなら、AI-IT顧問(愛知県内・月15時間・税別150,000円)で引き受けます。
よくある質問
C言語の仕様は脆弱性の原因ですか?
はい、配列の端を越えて読み書きしても止める仕組みがないことは仕様であり、脆弱性の元となります。
ネットに強いOSは存在しますか?
OpenBSDやseL4など、余計な機能を入れない設計や正しさを証明する作りで強みを持つOSが存在します。
セキュリティを強化するために最も重要なことは何ですか?
OSの設計よりも、古いソフトを更新することや、指摘された課題を直すといった運用体制の改善が重要です。
