世界を動かす技術を、日本語で。

AIが二つの脆弱性文化を打破している

概要

  • Copy Fail 脆弱性の修正手順と情報公開の流れを解説
  • Linuxコミュニティ での脆弱性対応文化の違いに着目
  • AIの進化 による脆弱性発見・対応への影響を考察
  • エンバゴ期間 の短縮化とその必要性を提案
  • セキュリティパッチの検出における AIモデルの実力 を簡単に紹介

Copy Fail脆弱性対応とLinuxの公開手順

  • Copy Fail 脆弱性発覚直後、Hyunwoo Kimが修正パッチを即日共有
  • Linux標準手順 に従い、セキュリティ影響は限定的なクローズドリストで共有
  • パッチ自体は 公開リポジトリ で静かに適用、広範な告知は控える方針
  • 修正内容のみ公開し、深刻な脆弱性の存在は エンバゴ(情報公開猶予) で一時的に秘匿
  • しかし第三者が修正に気づき、 セキュリティ的意味合いを公表、エンバゴ解除へ

脆弱性公開文化の対立

  • Coordinated Disclosure(協調的公開) 文化
    • セキュリティバグ発見時、 メンテナに非公開で通知 し、一定期間(例:90日)修正猶予
    • 修正後に脆弱性内容を公開し、悪用リスクを最小化
  • Bugs are Bugs(バグはバグ) 文化
    • Linuxに多い考え方で、 バグは即時修正・静かに公開 が原則
    • パッチが多く流れる中で、 目立たず修正 されることを期待
    • 修正を急ぎ、 特別な告知や目立つ公開を避ける 姿勢

AI時代の脆弱性管理の変化

  • AIの進化 により、パッチやコミットの自動解析が容易化
  • セキュリティ修正を AIが即座に検出 できる時代へ
  • パッチの シグナル強度が増し、検出効率が向上
  • AIによる脆弱性発見の高速化 で、従来の長期エンバゴ運用が困難に
  • 実例:KimがESP脆弱性を報告して 9時間後、Kuan-Ting Chenも独立に同様の報告

エンバゴ期間の課題と今後の提案

  • 長期エンバゴ は、発見者以外の対応遅延や偽の安心感を生むリスク
  • AI活用 で攻撃者だけでなく守る側も迅速な対応が可能
  • 短いエンバゴ期間 への移行が現実的選択肢
  • 将来的には さらなる短縮 が必要と予想

AIによるセキュリティパッチ検出テスト

  • Gemini 3.1 Pro、ChatGPT-Thinking 5.5、Claude Opus 4.7で パッチ検出力を簡易検証
    • f4c50a403コミット提供時、 全モデルが即座にセキュリティ修正と認識
    • 差分(diff)のみ提供時、 Geminiは確信、GPTは多分、Claudeは多分違うと判断
  • これはあくまで 一例 であり、モデル間比較は参考程度
  • AIの進化 がセキュリティ分野にもたらすインパクトの一端

Hackerたちの意見

これって、AIの問題として再定義されてる古い問題に感じる。人々はすでにカーネルのコミットを比較して、どれがセキュリティ修正かを見極めてたし、LLMが登場するずっと前からやってたよ。パッチが公開されると、レースは基本的に始まってるようなもんだし。短い禁輸期間が本当に役立つかは疑問だな。数時間でパッチできる組織はもう大丈夫だし、他のところはまだ数日や数週間かかる。むしろ、安価なエクスプロイト生成があるから、協調開示がより重要になると思う。

人々はすでにカーネルのコミットを比較して、どれがセキュリティ修正かを見極めてた。スキルがあればできるけど、通常は一貫して体系的にはやってなかった。AIがあれば、誰でもどんなソフトウェアでもこれができるようになる。 > 短い禁輸期間が本当に役立つかは疑問だな。なんで90日と2年の違いがあるの?著者は、同時発見の頻度を考えると、そのバランスを決める要因が変わったと主張してる。禁輸期間は実際のウィンドウじゃなくて、ただの幻想だよ。どうせ禁輸外で何人かに見つかるなら。 > 安価なエクスプロイト生成があるから、協調開示がより重要になると思う。賛成だけど、それが実行可能性を下げることにもなる。スクリプトキディがゼロデイを見つけて利用できるなら、協調する能力が崩れる。ホワイトハット文化を支えてたギルドの倫理があったけど、ギルドが壊れたら、その倫理は何も支えがなくなる。

トーバルズは、バグ自体を開示するだけで十分だと言ってた。大きな問題が発見されたときに続くサーカスは必要ないって。 [1] だから、DirtyfragがLinuxカーネルの修正によって開示されたのは驚くことじゃないね。 [2] [1] https://www.zdnet.com/article/torvalds-criticises-the-securi... [2] https://afflicted.sh/blog/posts/copy-fail-2.html

これは古い問題がAIによってさらに悪化してるって感じかな。

Linuxの開発全体を見てきたわけじゃないけど、パッチがカーネルに届く前に、誰かがメーリングリストから動作するエクスプロイトを落としたことってあった?こんなことは見たことないし、すごい盛り上がりの中で、これからはLLMのおかげでこういう現象が頻繁に起こる印象があるよ。

毎週同じようなコメントを書いてる気がするから、ちょっと手抜きさせてもらって、前に書いたバージョンをシェアするね。 https://news.ycombinator.com/item?id=47921829

リマインダー: Kspliceの特許は2028年10月1日に切れるよ。

今、セキュリティ修正がたくさん出てるから、コミットを調べるのがずっと魅力的になってる。信号対ノイズ比が高いからね。なんでかっていうと、 > AIが各コミットを通過するたびに評価するのがますます安くて効果的になってるから。これが鍵だね。AIがあれば、「たくさんの変更があるから人は気づかないだろう」っていう仮定が崩れる。

簡単なテストではあまり多くを示さないね。これがセキュリティパッチかどうかをストレートに聞くことで、AIにその仮定に同意するような出力を促してる。混同行列の方がもっと役立つよ。でも、もちろんこれは詳細なAI能力テストのブログじゃないけどね。

そうだね、理想的には、すべてのカーネルの差分に対するはい/いいえのLLM分類の混同行列から計算できるフィー係数(別名MCC、二項ピアソン相関)が必要だね。(真陽性、真陰性、偽陽性、偽陰性の数)

[著者] 追加の証拠はあまりないに同意するよ!もし誰かがこのリストからのN個のコミットで同じテストを試してみたら、その結果を見てみたいな!

AIはアップデートウィンドウを劇的に短縮するよ。2026年は依存関係のクールダウンを考えるには最悪の年だね。むしろ依存関係のウォームアップを考えなきゃ。もうすぐ、オープンソースプロジェクトで脆弱性を開示する安全な方法なんてなくなるだろう。中央集権的なSaaSがここで大きなセキュリティアドバンテージを持つことになるよ。

Linuxを使ってる組織がそれぞれ$ xを使って、自分たちの依存関係をAIで常にスキャンしてパッチを当て合って、パッチやスキャンを送り合うような信頼のネットワークができるかもね。

クローズドソースの集中型SaaSは大きなセキュリティアドバンテージがあるね。編集: オープンソースの依存関係にRCEがあると、セキュリティパッチが適用されても同じくらい脆弱になるから? これが論争になる理由がわからない。

トニー・ホアの「明らかなバグがないことと、バグがまったくないことの違い」という言葉が、LLMの時代では今まで以上に重要になってるね。

「ソフトウェア設計を構築する方法は2つある。一つは、明らかに欠陥がないほどシンプルにすること、もう一つは、明らかに欠陥がないほど複雑にすることだ。」 — トニー・ホアレ、これを見たことがない人(私みたいに)に。

これはずっと前から予測されてたことで、今見えてきた混乱は、誰もLLMが何かを知る前から言われてたことなんだ。きっかけはソフトウェアの透明性へのシフトだね。オープンソースやソースが利用可能なソフトウェアの急激な普及、そしてリバースエンジニアリングやデコンパイルツールの能力の向上が影響してる。普通の市販のクローズドソースソフトウェアが真剣な敵から意味のある形で隠されていたのは、もう10年以上前の話だよ。BinDiff以降、これはスローモーションで進行してきた。脆弱性を開示せずにソフトウェアにパッチを当てることはできないからね。私たちはこのことを否認してきたけど、パッチが脆弱性の開示だと考える専門知識があったから。でもAIがその前提を覆したんだ。今や、何かがメインラインのLinuxにマージされるたびに、いくつかの異なる組織がその差分をLLMのプロンプトに通して、脆弱性を修正しているかどうかを評価し、エクスプロイトのガイダンスを生成している。これは、nginxやOpenSSL、Postgresなどの主要なオープンソースプロジェクトでも、そうなるのは時間の問題だよ。調整された開示の基準は、この環境には合ってない。実際、ここ10年はずっとそうだった。私はこれに対して妙に安心感を持ってるんだけど、調整された開示の基準は常に盲目的で、システム管理者の運用上の都合のために開示を遅らせることが良いことだという前提に基づいているから。そんな前提には疑問を持つ理由があるよ!遅延は、パッチを当てる以外の選択肢を持つシステムオペレーターの手から情報を遠ざけることにもなるしね。

もう10年以上、普通の市販のクローズドソースソフトウェアが真剣な敵から意味のある形で隠されていたのは、過去の話だね。おそらく言うまでもないけど、最後の防衛線はソフトウェアを公開せず、サーバー・クライアントアーキテクチャに頼ることだね。脆弱性がもっと簡単に見つかって悪用されるようになると、こういうのがもっと一般的になるかも。もちろん、いつも実現可能とは限らないけど。11年間、私の(プロガードで難読化された)ゲームクライアントのバイナリがデコンパイルされてGitHubに公開されるのを見て、イライラしてたよ。未展開のサーバーコードだけがプライベートのままだった。面白いことに、ネットワークプロトコルを更新する頻度が週に一度未満になってから、敵がリバースエンジニアリングすることに問題を感じなくなった。今なら、LLMを使った敵もそのペースに追いつけるかもしれないね。

協調的脆弱性開示が生まれたビジネス上の理由は理解してるし、雇用主のためにそのラインを守らざるを得なかったけど、私はずっとフルディスclosure派だった。これにはすごく期待してるよ。

BinDiff: ソフトウェアのパッチを当てるには脆弱性を開示しないといけない だから、マイクロソフトは少なくとも過去20年間、バイナリビルドを難読化してきたんだ。同じソースからの2つのビルドでも、全然違うバイナリができるようにね。

大きな問題があるよ。アメリカは戦争中だし、今、世界の多くの地域がサイバー攻撃レベルで戦争状態にある。アメリカ、EU、中東のほとんど、イスラエル、ロシア… 大規模なサービスが攻撃されて、数日間ダウンしてる - Ubuntu、GitHub、Let's Encrypt、Stryker。病院のシステム全体が部分的にシャットダウンしなきゃならなかった。今、その最中にAIが攻撃を生成するスピードを大幅に上げてしまった。防御側が反応するよりも速くね。ゼロデイ攻撃は以前は稀だったけど、今は普通になってる。状況は良くなる前に悪化するだろうね。もっと悪化するかもしれない。

良くなる前に どうやって良くなるの?

自動化されたパッチとリリースサイクルが必要だよ。今まで、報告を受けて、調査して、検証して、パッチを当てて、リリースの準備をするのにすごく遅い手作業に頼ってきた。修正をリリースするのに数ヶ月かかることもある。攻撃者が数時間で新しいエクスプロイトを作り出せる時に、これは遅すぎるよ。パッチまでの平均時間を短縮するために、バリューチェーンのボトルネックを改善する必要がある。バグ報告からQAテスト用のパッチ済み製品に1時間で戻せるようにすべきだよ。標準化してオープンソースにして、ソフトウェアサプライチェーン全体で使えるようにしよう(例: Linuxカーネル -> ディストリビューション -> ディストリビューションを使う製品 -> ユーザー)。AIがあるから、これができない理由はないはずなのに、ただ遅いだけなんだ。

バグを見つけるAIベースのツールが修正も提供することを期待してるみたいだね。最近、AIが生成した(または少なくとも支援した)脆弱性レポートにたくさん関わってる。多くの場合、レポートには問題を修正するための提案されたパッチが含まれてる。面白いことになってるよ。多くの場合、レポートに提供された分析は正確で役に立ってる。提案されたパッチも良いものがあって、ほとんど変更なしで受け入れたこともある。でも、正当な問題を見つけて、問題の良い分析を提供しても、AIツールの提案したパッチが単純に間違ってることもある。コードを本当に理解している誰かによる慎重なレビューは、まだ絶対に必要なんだ。それが1時間でできるとは限らないよね。

一方で、自動化された迅速な展開は、CrowdStrikeのような状況を引き起こして、世界中のコンピュータを一瞬でダメにしちゃうんだよね。俺的には、もっと多層的なセキュリティに頼らざるを得なくなると思う。個々の脆弱性があっても安全に設計されたシステムが必要だよ。これはもう、モバイルプラットフォームやゲームコンソールでしばらく前から起こってることだし、特定の秘密やキーをカーネルからも守るために設計された物理ハードウェアもあるしね。

これがLog4Shellで実際に起こったことだよ。Day -X + 1: アリババのエンジニアが脆弱性を見つけてApacheに知らせる。パッチがgitにプッシュされて、新しいリリースが調整される。Day -X: ブラックハットがバグを修正するコミットを見つける。攻撃が始まる。Day 0: Minecraftコミュニティでサーバーをクラッシュさせるミームが広がる。特に中国では、pwnされた人たちのログがTwitterで共有される。Day 0 + 約4時間: 友達がTwitterでミームをDMしてくる。CVEを調べたけど、存在しない。友達と一緒にエクスプロイトを再現して、ブログ記事を書くことにした。(別の古いlog4j RCE脆弱性と区別するためにLog4Shellと名付けた)Day ~1: メディアが取り上げ始める。Apacheは反応してパッチを早くリリースせざるを得なくなる。CVEが正式に公開されて、セキュリティスキャナーがそれを特定できるようになる。今日: AIがこれをより早く、一貫して実現させる。パッチは、テスト後に協調的開示が行われ、CVEが公開されるまで非公開にしておくべきかも? 正しい判断が何かは難しいけど、今後1〜3年でこれが頻繁に起こるだろうね。多くの企業が、AIが攻撃者よりも早くパッチを当てる手助けをするまで、やられ続けることになるだろう。

明らかに解決策は、Linuxがクローズドソースの開発モデルに移行することだよ。セキュリティ研究者は、大手企業(IBMやOracleが信頼できそうだけど、理想的にはマイクロソフトも入れたいね)の委員会に発見を報告すべきだ。そうすれば、その企業がセキュリティパッチを適用して、Linuxのバイナリビルドを顧客に配布することができる。そういう企業とビジネス関係があるユーザーは、すぐに保護されるしね。ソースコードは90日後に教育目的で公開されるし、このアプローチのセキュリティの利点を理解しない人のためにもね。「でも、もし人々を協力させることができたとしても、GPLがそれを法的に不可能にするんじゃない?」って言うかもしれないけど、GPLは最小限の金銭的コストでソースを提供しなきゃいけないと言ってるだけで、時間制限は課してないんだ。伝統的には、ソースコードのリクエストに対してCDを郵送するのが十分なんだよ。アメリカの裁判官が、みんなのセキュリティのためにCDを送るのに短い管理上の遅延があるからって、別の時代のあいまいなライセンス契約に違反してるとは判断しないだろうし、90日なんて司法制度にとっては何でもないからね。