
2026/10/03 23:07
ソフトウェアの品質時代、あるいはオウムの時代か?
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
2026 年までに、GNOME の開発者は C、C++、または Vala という不安全な言語で AI を使用せずに信頼性のある安全なコードを記述できなくなるため、ソフトウェアの品質維持のために AI に基づいた脆弱性情報スキャンは不可欠となっています。プロジェクトでは、報告書内で AI コンテンツの使用を禁止する方針から、積極的にそれを利用する方針へと転換し、現在発見されるセキュリティ上の欠陥の過半数は手動での探索ではなく自動化された分析によって特定されています。人間の監査員が残っているのは、冗長性や重要性の誇張、ハルシネーションなどの AI の誤りをフィルタリングするためですが、これらのツールは検出率を劇的に向上させました。例えば、最近のスキャンでは GLib や WebKitGTK 付属の Skia と ANGLE などの中核ライブラリで数百件の潜在的な問題がフラグ付けされました(多くのものが偽陽性でしたが)。したがって、AI 生成の報告書の使用を継続して禁止するプロジェクトは、AI 生成の結果による発見量の圧倒的な多さのため、GNOME Foundation から不適切な依存先と見なされるリスクがあります。検出された欠陥の規模は膨大であり、手動での報告書の書き換えを実行可能にするほどでないため、業界全体がこれらの高度な AI スキャンを標準ワークフローに統合する必要があります。この変化は CVE の発行数の上昇(2023 年は 134 件、2025 年は 97 件、そして 2026 年 9 月には 141 件)および GNOME Bug Bounty プログラムが 2026 年 2 月 23 日に終了した事象と相関しています。さらに、AI スキャンはメモリー安全性の問題に対して効果的ですが、Flatpak サンクボックス脱出のような重要な発見を行うためには人間の監査員の存在が必要であることが示されています。推奨事項には、GNOME ソフトウェアで Rust を使用しないよう回避し、開発者が AI をコードコメントやコミットメッセージに使用しないよう助言することを含みます。
Text to translate:
By 2026, GNOME developers cannot reliably write secure code in unsafe languages like C, C++, or Vala without AI assistance, making AI-driven vulnerability scanning essential for maintaining software quality. The project has shifted from banning AI content in reports to actively relying on it, as the majority of discovered security flaws are now identified through automated analysis rather than manual hunting. While human auditors remain necessary to filter out AI errors such as verbosity, exaggerated severity, and hallucinations, these tools have drastically increased detection rates; for instance, a recent scan flagged hundreds of potential issues in core libraries like GLib and WebKitGTK's bundled Skia and ANGLE, even if many were false alarms. Consequently, projects that continue to prohibit AI-generated reports risk being declared unsuitable dependencies by the GNOME Foundation due to the overwhelming volume of AI-generated findings. The sheer scale of detected flaws makes manual report rewriting impractical, forcing the industry to integrate these advanced AI scanners into standard workflows. This shift correlates with a surge in CVE issuance (from 134 in 2023 to 97 in 2025, and 141 by Sep 2026) and the closure of the GNOME Bug Bounty Program on February 23, 2026. Furthermore, while AI scans are effective for memory safety issues, human auditors proved necessary for discovering critical findings like Flatpak sandbox escapes. Recommendations include avoiding Rust for GNOME software due to supply chain risks and advising developers not to use AI for code comments or commit messages.
本文
AI 時代の GNOME セキュリティ開発:AI 生成のバグ報告書と今後の展望
はじめに:不安全性な言語と AI の限界
人間は安全なコードを書くことに苦手であり、GNOME の開発者も例外ではありません。
- 言語の課題: GNOME は C、C++、Vala といった不安全性な言語で作成されており、単純な過失が壊滅的な結果を招く可能性があります。
- 本質的な限界: これらの言語を用いて安全なコードを書くことは、GNOME の開発者にとっても不可能です。経験豊富な開発者でさえ、これを正しく行うのは極めて困難だからです。
- 視点の変化: 以前は「AI がこの問題を解決してくれる」と期待していませんでしたが、現在では AI に脆弱性の検索を依頼するだけで済むほど能力が向上しました。
2026 年の現実:AI を利用した解析が不可欠な時代
2026 年において、AI を利用せず高品質なソフトウェアを維持することは不可能です。これを主張するのは軽率かつ幻想的です。
- 自覚の欠如: GLib や fwupd といった整備されたプロジェクトですら多数のバグが見つかる事実を考えると、スキャンせずに放置することはユーザーに対する不当なサービス不備です。
- 攻撃者の進化: Linux ユーザーベースの拡大とともに、標的価値が高まり、AI は以前想像できなかったエクスプロイト構築を容易にしています。
- 非セキュリティバグへの拡張: 脆弱性を解決した後も、AI に非セキュリティ系バグの探求を依頼し、さらなる品質向上を図る必要があります。
AI 生成のバグ報告書:質と量の変化
「AI によるバグ報告は粗悪(スロップ)である」という意見は、2025 年までは真実でしたが、2026 年には状況が劇的に変化しました。
- 品質の向上: AI が生成する脆弱性情報報告書の質は大幅に改善し、現代では報告書のほとんどは非常に良好です。(curl の Daniel Stenberg も同様の変化を報告)。
- 課題点: それでもなお、AI 生成の報告書は以下のような問題を含みます。
- 煩雑で不必要に詳細であることが多い。
- 深刻さを誇張したり、誤解を招く・無関係な主張を行ったりする。
- 不正確な内容や架空のスタックトレース(例外ながら稀ではない)が含まれることがある。
- メンテナンスへの負担:
- レビューすべき問題報告書の量がメンテナーを圧倒します。
- マージリクエストのレビュー自体も、ボランティアメンテナーにとって過剰な労働となります。
推奨されるポリシー
現在の AI 生成報告書による痛みに直面しても、それを無視せず受け入れ対処することを学ぶ必要があります。
- 禁止は非現実的: AI 生成コンテンツの使用禁止は、事実上「すべての報告書禁止」につながり、効果はほぼ同じになります。この方針を採用しないでください。
- 提案事項:
- GNOME メンテナーは、AI 貢献ポリシーを見直し、AI 生成の脆弱性情報報告書を許可すべきです。
- AI 生成報告書禁止のプロジェクトは、GNOME の依存先としては適格でなく、外部での開発を推奨します。
人間が報告書を再作成すべきか?
「人間が AI の報告書を全文読み込み、理解し、AI 生成部分を削除して再作成する」という主張は現実的ではありません。
- 公共サービスの性質: 脆弱性情報の報告は義務ではなく公共サービスです。追加作業を求めると、レポーターはプロジェクトを見失いかける可能性があります。
- スケーラビリティの問題: AI を使っても 100 件のバグを検出した場合、それを再作成するには何ヶ月もかかるため非現実的です。検証とマージリクエスト送信の作業量に比べれば、誰も取り組む意思はありません。
- 時限性: 他の業務を優先する限り、完全な報告書の再作成は時間の許す限り不可能です。
CVE の爆発的増加:GNOME と WebKitGTK の現状
AI 導入により、脆弱性情報の報告傾向に劇的な変化が起きています。
GNOME の CVE 増加傾向
| 年 | GNOMEm CVE | GIMP, Gegl, libxml2, libxslt 除外時 |
|---|---|---|
| 2021 | 14 | 11 |
| 2022 | 42 | 38 |
| 2023 | 49 | 42 |
| 2024 | 56 | 50 |
| 2025 | 78 | 70 |
| 2026(推計) | 112 | 102 |
- 傾向: 3 年前と比べて桁違いの CVE を処理しており、増加の主因は AI です。
- 注意点: CVE のカウント方法は報告年と割り当て年の不一致があり、データ解釈には注意が必要です。
WebKitGTK の変化
Skia および ANGLE の AI 分析により、CVE が急増しています。
| 年 | WebKitGTK CVE |
|---|---|
| ... | ... |
| 2024 | 3 |
| 2025 | 6 |
| 2026(WSA-2026-0006) | 30 |
- 実数との乖離: 実際の WebKitGTK コード内の脆弱性(約 21 件)は減少していますが、パッケージ化されたコード(Skia/ANGLE)の CVE がカウントされているため総数は増加しています。
- CVE の限界: Apple は外部発見には CVE を割り当てがちで、開発者自身のが見つけたものには割らない傾向があり、実際の修正数は CVE 数と一致しません。
GNOME バグバウンティプログラムの開始と終了
YesWeHack プラットフォーム上のバグバウンティプログラムは、流入する AI 生成報告書に圧倒され2026 年 2 月 23 日に終了しました。
実績データ(合計 298 件の提出に対して 71 件の受理)
| 年 | 提出数 | 受理数 |
|---|---|---|
| 2024 | 26 | 14 |
| 2025 | 150 | 33 |
| 2026 | 122 | 24 |
- 終了の理由: AI 生成報告書による圧倒的な量の処理。受理率は低く、重複除去や修正を要するものが多すぎました。
- 授与実績: 計 €183,900 のバウンティを 71 の脆弱性に対して授与(平均賞金 €2,662.99)。
- libsoup: 45 件、GLib: 23 件、glib-networking: 3 件。
- 教訓: **「金銭的インセンティブがある場合、悪い報告書が提出される」**という現象が確認されました。低い受理率は問題を矮小化しておらず、多くの受理済み報告書も大幅な修正を必要としました。
今後のバグバウンティへの提言
再開を検討する場合でも、以下の条件を満たす必要があります:
- AI 脆弱性情報スキャンを定期的に行うプロジェクトに限定する。
- 機能的なエクスプロイトのみに対して支払いを行う(全脆弱性への支払いは望ましくない)。
- 現在の GNOME コードの状態では、単なる AI スキャン結果へのバウンティ支給は意味がないため、現状では再開不可能です。
Red Hat と Codean Labs の監査からの教訓
外部によるスキャンでも多くの発見があり、AI に依存しない監査の重要性が再確認されました。
- Red Hat × AISLE Research:
- GLib が被害を受けやすく、発見総数の 40% 以上を占める(公開 API の多さから)。
- 偽陽性の問題: gobject-introspection のバグが 46 件あり、そのうち 40% が「偽陽性」と判断された。AI は Typelib の脆弱性を正しく理解できていないことが要因です。
- 多くの発見は高品質でしたが、報告処理は現在完了していません。
- Codean Labs(Sovereign Tech Resilience):
- Flatpak および xdg-desktop-portal で重大な発見(サンボックスエスケープ)。
- AI スキャンでも検出できたが、最も重要なエスケープ発現については AI 単頼みは危険です。
人間の役割:依然として不可欠
AI が生成するコードやコメントに終止符を打つべきではありませんが、人間による判断が必須です。
- 倫理的な使用: コードレビューや問題トラッカーへの投稿で AI を使ったと偽ることは許されません。
- 新規開発者は学習の優先すべきであり、作業を任せるのは本末転倒。
- コードコメントやコミットメッセージは、現状では人間自身の言葉が求められます。
- バグバウンティプログラムからの教訓:
- GLib は libsoup よりも脆弱性発見が難しく、仮説的な性質を持つものが多い(整数オーバーフローなど)。
- コンパイラフラグ (
,-Wconversion
など) の活用と、依存パッケージによるサプライチェーンリスクの考慮が必要です。-Wsign-compare
- Rust に関する注意点:
- Rust はメモリ安全性が高くても、Cargo を通じたサプライチェーン攻撃(トロイの木馬化された依存パッケージ)のリスクは依然として存在します。
- GNOME の場合、Cargo に大きく依存するため、Rust 単体での推奨は慎重です。
まとめ:文脈を保つ
- パニックする必要はありません: セキュリティバグは他のバグの一つであり、フィッシングやトロイの木馬ほど脅威ではありません。
- 優先度のバランス: 脆弱性情報報告書の期限(CVE)は重要ですが、全ての問題を即座に解決するのはボランティアには期待できません。
- 戦略的対応: AI に大きく依存せず、人間によるレビューと多様な監査手法を組み合わせることで、GNOME の品質向上を図ります。