Dependabot をオフにします。

2026/02/21 6:25

Dependabot をオフにします。

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

要約

DependabotはGoプロジェクトで細かいパッケージフィルタリングが不足しているため、頻繁に無関係なセキュリティアラートを生成します。著者はDependabotを停止し、最新の依存関係に対して

govulncheck
とテストスイートを実行するスケジュール済みGitHub Actionで置き換えることで、ノイズを劇的に減らしながらも実際の脆弱性は検出できることを示しています。

重要な例として、

filippo.io/edwards25519
(v1.1.1)の修正が挙げられます。このパッチはDependabotのデフォルト動作により、関連しないリポジトリ―例えばWycheproof―でも何千件ものPRを生成しました。対照的に、
govulncheck
は静的解析後に脆弱なシンボルが到達不能であると判断し、著者のプロジェクトでは「脆弱性なし」と報告します。

Go Vulnerability Database はモジュール、バージョン、シンボル、CVE参照などの詳細メタデータを提供しており、こうした精密なフィルタリングを可能にしています。著者は毎日実行されるワークフロー(

go get -u -t ./...
)と10:22 UTCに実行される
govulncheck
を組み合わせ、真の脅威に対してのみアラートが上がるようにしています。

CI環境を潜在的なサプライチェーン攻撃から保護するため、ワークフローではgVisorを使用したサンドボックス化ステップ

geomys/sandboxed-step
を採用しています。この手法は、各依存関係のスケジュールではなくプロジェクト自身のリリースサイクルに合わせて依存関係を更新することを推奨し、継続的なバンプなしで早期検出を実現します。

この戦略は、Go Security Team が2020–21年にデータベース品質と静的解析フィルタの改善に焦点を当てたものと一致しており、Geomys のリテーナー契約(Ava Labs、Teleport、Tailscale、Sentry)によって支援されています。著者は他の開発者にも同様のワークフローを採用するよう促し、Bluesky(@filippo.abyssdomain.expert)または Mastodon(@filippo@abyssdomain.expert)でフォローしてもらうことを読者に呼びかけています

本文

Dependabotは騒音機械です

作業をしているように感じさせてくれますが、実際にはもっと有益な作業を妨げてしまいます――特にGoエコシステムのセキュリティアラートについてはなおさらです。

Dependabot を無効化し、代わりに 2 つのスケジュール済み GitHub Actions に置き換えることをおすすめします:

  • govulncheck
    を実行するもの
  • 最新バージョンの依存関係でテストスイートを走らせるもの

小さなケーススタディ

火曜日に、

filippo.io/edwards25519
のセキュリティ修正を公開しました。
(*Point).MultiScalarMult
メソッドは受信者が恒等点でない場合、不正な結果を返すことがあります。

  • Go エコシステムでは主に
    github.com/go-sql-driver/mysql
    を通じて
    filippo.io/edwards25519
    に依存しています(GitHub 上の従属数は 228 k)。
  • 実際にはほとんど誰も
    (*Point).MultiScalarMult
    を使用していません。

昨日、Dependabot が影響を受けていないリポジトリに対して何千件もの PR を作成し、

filippo.io/edwards25519
の更新を提案しました。これらの PR には意味不明な CVSS v4 スコアと、アップデートがエコシステムで引き起こす破損に基づく 73 % の互換性スコアというセキュリティアラートも付いていました。
v1.1.0 と v1.1.1 の差分は、誰も使っていないメソッドの一行です。

さらに、

Wycheproof
リポジトリにもアラートが届きましたが、こちらは該当パッケージを全くインポートしていません:

$ go mod why -m filippo.io/edwards25519
# filippo.io/edwards25519
github.com/c2sp/wycheproof/tools/twistcheck
filippo.io/edwards25519/field

Dependabot をオフにしました。


本格的な脆弱性スキャナを使う

しかし、攻撃者が古い脆弱性を利用するのを防ぐためにこの手間は避けられないのでしょうか? まったくそうではありません!

コンピュータは無関係なアラートを除外できます。Go Vulnerability Database は Go のすべての脆弱性について、バージョン・パッケージ・シンボルに関する豊富なメタデータを提供しています。

例:
filippo.io/edwards25519
の脆弱性

modules:
  - module: filippo.io/edwards25519
    versions:
      - fixed: 1.1.1
    vulnerable_at: 1.1.0
    packages:
      - package: filippo.io/edwards25519
        symbols:
          - Point.MultiScalarMult
summary: Invalid result or undefined behavior in filippo.io/edwards25519
description: |-
  Previously, if MultiScalarMult was invoked on an initialized point who was not the identity point,
  it produced an incorrect result. If called on an uninitialized point, it exhibited undefined behavior.
cves:
  - CVE-2026-26958
credits:
  - shaharcohen1
  - WeebDataHoarder
references:
  - advisory: https://github.com/FiloSottile/edwards25519/security/advisories/GHSA-fw7p-63qq-7hpr
  - fix: https://github.com/FiloSottile/edwards25519/commit/d1c650afb95fad0742b98d95f2eb2cf031393abb
source:
  id: go-security-team
  created: 2026-02-17T14:45:04.271552-05:00
review_status: REVIEWED

適切なスキャナは少なくともパッケージ単位でフィルタリングできます。例えば

go list -deps ./...
を使うと、モジュールが機能をサブパッケージに分けている場合、多くの騒音を消せます。

第三者製スキャナを使用する場合は パッケージレベルでのフィルタリング を要求してください。優れたスキャナは、静的解析によって脆弱シンボルへの到達可能性も考慮します――これが

govulncheck
の機能です!

$ go mod why -m filippo.io/edwards25519
# filippo.io/edwards25519
filippo.io/sunlight/internal/ctlog
github.com/google/certificate-transparency-go/trillian/ctfe
github.com/go-sql-driver/mysql
filippo.io/edwards25519

$ govulncheck ./...
=== Symbol Results ===
No vulnerabilities found.
Your code is affected by 0 vulnerabilities.

govulncheck
は、あなたのプロジェクトが
github.com/go-sql-driver/mysql
を通じて間接的に
filippo.io/edwards25519
に依存していることを認識しますが、脆弱シンボルは到達できないため通知しません。

パッケージレベルとモジュールレベルの一致を要求するには:

$ govulncheck -show verbose,color ./...

Dependabot を
govulncheck
GitHub Action に置き換える

name: govulncheck
on:
  push:
  pull_request:
  schedule:
    # UTC 10:22 毎日
    - cron: '22 10 * * *'
  workflow_dispatch:

permissions:
  contents: read

jobs:
  govulncheck:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
        with:
          persist-credentials: false
      - uses: actions/setup-go@v6
        with:
          go-version-file: go.mod
      - run: |
          go run golang.org/x/vuln/cmd/govulncheck@latest ./...

これにより、毎日実行され、実際に注意すべき脆弱性がある場合のみ通知されます。


アラート疲れのコスト

誤検知は時間を浪費し、セキュリティを低下させ、アラート疲れを引き起こします。適切なトリアージも不可能になります。本物の脆弱性は本番環境への更新、シークレットローテーション、ユーザー通知など実際の評価が必要です。日常的に発生する低価値 Dependabot アラートに対しては、依存関係を単にバンプするだけでは不十分であり、実際には現実的な対応策になります。

Go Security Team は Go Vulnerability Database の人員配置と静的解析フィルタリング付きスキャナの実装に投資しています。

govulncheck
Action は自動で PR を作成しません――それが良い点です!セキュリティアラートがほぼ騒音になるので、真剣に検討できるようになります。


更新ではなく最新バージョンでテストする

Dependabot はセキュリティ脆弱性の有無に関係なく依存関係を常に更新します――これは誤った実践です。
依存関係は開発サイクルに合わせて更新すべきであり、個々の依存関係のサイクルではありません。

高速更新には 2 つのメリットがあります:

  1. 破損を迅速に検出・修正できる。
  2. セキュリティ脆弱性が発生した際にパッチ差分を小さく保てる。

CI を毎日最新バージョンで走らせれば、両方のメリットを得られます。テストスイート実行前に

go get -u -t ./...
を実行してください。

name: Go tests
on:
  push:
  pull_request:
  schedule:
    # UTC 10:22 毎日
    - cron: '22 10 * * *'
  workflow_dispatch:

permissions:
  contents: read

jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        go:
          - { go-version: stable }
          - { go-version-file: go.mod }
        deps:
          - locked
          - latest
    steps:
      - uses: actions/checkout@v5
        with:
          persist-credentials: false
      - uses: actions/setup-go@v6
        with:
          go-version: ${{ matrix.go.go-version }}
          go-version-file: ${{ matrix.go.go-version-file }}
      - uses: geomys/sandboxed-step@v1.2.1
        with:
          run: |
            if [ "${{ matrix.deps }}" = "latest" ]; then
              go get -u -t ./...
            fi
            go test -v ./...

このアプローチは安全です。悪意あるコードが依存関係に追加されても、CI にしか届かず本番環境には影響しません。サプライチェーン攻撃は寿命が短いので、sandboxing(例:

geomys/sandboxed-step
は gVisor を使用)でさらにリスクを軽減できます。


参考文献

Bluesky で @filippo.abyssdomain.expert、Mastodon で @filippo@abyssdomain.expert にフォローして、オープンソースに関する意見をもっと聞いてください。


写真の説明

Tevere が下流域を超過し、多くの以前は馴染み深かった風景がわずかに変化しました。これは河川岸に安全に降り立つことができた後、撮った最初の写真です。

私の仕事は Geomys によって支えられています。Geomys はプロフェッショナルな Go メンテナを集めた組織で、Ava Labs、Teleport、Tailscale、Sentry の資金提供により、オープンソース保守作業の持続可能性と信頼性を確保し、私や他の Geomys メンテナの専門知識への直接的なアクセスを提供しています。

Teleport – 過去 5 年間で攻撃は従来型マルウェアからソーシャルエンジニアリング・クレデンシャル盗難・フィッシングによる有効ユーザーアカウントの乗っ取りへと移行しました。Teleport Identity は監視を通じて弱いアクセスパターンを排除し、アクセスリクエストで攻撃表面を最小化し、未使用権限を必須レビューで削除します。

Ava Labs – 私たち Ava Labs は AvalancheGo(Avalanche ネットワークとの対話に最も広く使われているクライアント)のメンテナです。オープンソースの暗号プロトコルの持続可能な保守と開発は、ブロックチェーン採用を拡大する上で不可欠だと考えています。この重要作業を支援するために、Filippo と彼のチームへの継続的なスポンサーシップを行っています。

同じ日のほかのニュース

一覧に戻る →

2026/02/21 2:58

「Androidをオープンに保つ」

## 日本語訳: F‑Droidは、GoogleのAndroidポリシーの変化についてコメントしながら、新しい **Basic 2.0‑alpha3** ビルドを公開しました。 - **FOSDEM26** でユーザーは、GoogleがAndroidをロックダウンする計画を中止したと聞き安心しましたが、8月の発表ではその計画がまだ有効であることが示されています。 - 記事は、Google の「advanced flow」主張の曖昧さと、Android 16 QPR2/3 や Android 17 Beta 1 の明確なリリース日が設定されていない点を批判しています。 - **バナー警告** は、Google がゲートキーパーになる前に時間がなくなることをユーザーに知らせ、IzzyOnDroid、Obtainium、および他のダウンローダーでも同様のバナーが表示されます。 - 新しい Basic リリースには、更新された翻訳、インストール済みアプリの CSV エクスポート、インストール履歴、ミラー選択器、スクリーンショット防止機能、ツールチップ、新しいオーバーフローメニュー、永続的な並べ替え順序、Material 3 スタイル、およびさまざまなバグ修正が含まれています。 Basic 1.23.x を使用しているユーザーは、このアルファを受け取るために「Allow beta updates」を手動で有効にする必要があります。 - **いくつかのアプリが更新されました**:Buses 1.10、Conversations/Quicksy 2.19.10+、Dolphin Emulator 2512、Image Toolbox 3.6.1(AIツール)、Luanti 5.15.1、Nextcloud ファミリー(Nextcloud 33.0.0、Cookbook 0.27.0、Dev 20260219、Notes 33.0.0、Talk 23.0.0)、ProtonVPN 5.15.70.0(WireGuard のみ)、Offi 14.0、QUIK SMS 4.3.4、および SimpleEmail 1.5.4。 - **5 つのアプリが削除されました**:Chord Shift、OpenAthena™ for Android、Tibetan Keyboard、Tibetan Pad、Tomdroid。 - **新しいアプリが追加されました**:NeoDB You(Material 3/You を採用した NeoDB のネイティブ Android アプリ)。 - 280 件を超えるアプリが更新され、注目すべきものとして Aurora Store 4.8.1、Bando.js Gadgetbridge 0.89.1‑banglejs、DuckDuckGo Privacy Browser 5.266.0、Element X 26.02.0、OpenTracks v4.26.0、Proton Pass 1.37.2 などがあります。 - F‑Droid は読者に RSS フィードの購読、TWIF フォーラムスレッドへの参加、および寄付ページでの寄付を促しています。 この改訂された概要はリストから主要なポイントをすべて保持し、不必要な推測を避け、明確なメインメッセージを提示し、曖昧または混乱する表現を除去しています。

2026/02/20 22:51

**Ggml.ai、Hugging Faceと提携しローカルAIの長期的進展を確保** - 軽量機械学習モデルのリーディングプロバイダーであるGgml.aiが、Hugging Faceとパートナーシップを結びました。 - 本協業は、世界中におけるローカルAIソリューションの継続的な開発・展開を確実にすることを目的としています。 - 両社は資源やベストプラクティス、コミュニティサポートを共有し、デバイス上で動作するインテリジェンスのイノベーションを加速させていきます。

## 日本語訳: > ggml.ai の創設者は、AI を真にオープンに保ちつつ、ggml/llama.cpp スタックのメンテナンスに専念するため、Hugging Face に参加します。このパートナーシップはプロジェクトの長期的な持続可能性を保証し、ユーザーと貢献者に新たな機会を提供します。これまでの 3 年間の協力により、コア機能・ユーザーインターフェース・マルチモーダルサポート・GGUF 対応が追加されました。Llama.cpp は多くのコンシューマー ハードウェア上で動作するプライベート AI プロジェクトに不可欠となっており、コミュニティは依然として独自に構成設計を行い、Hugging Face はリソースを提供しつつコードを 100 % オープンソースのまま保ちます。今後、チームはユーザー体験を優先し、ggml/llama.cpp を Hugging Face の Transformers ライブラリに「ワンクリック」で統合し、ローカル推論がクラウドソリューションと競合できるようパッケージングを改善します。これらの取り組みは、使いやすいエッジ推論スタックを構築し、開発者に日常デバイス上でプライベート AI を構築するための安定した基盤を提供するとともに、世界中でオープンソーススーパインテリジェンス エコシステムを拡大することを目的としています。

2026/02/21 4:19

私は脆弱性を発見しました。彼らは弁護士を見つけました。

## Japanese Translation: **改善された要約** 著者はダイビングインストラクター兼プラットフォームエンジニアであり、コスタリカのココス島周辺を14日間にわたって潜水旅行中に主要なダイビング保険会社のメンバー向けポータルに深刻なデータ漏洩脆弱性を発見しました。この欠陥は連番の数値ユーザーIDと変更されていないデフォルトパスワードに依存しており、名前・住所・電話番号・メールアドレス・生年月日などの完全な個人情報(未成年者も含む)を多数の利用者から漏らす可能性がありました。責任ある開示プロトコルに従い、著者は2025年4月28日にCSIRT Maltaと保険会社のセキュリティチームへ通知し、30日間の是正期間を提示するとともに、7日以内に認証書類への署名を求めました。これは30日間の禁固(embargo)であり、2025年5月28日に終了しました。 2日後、保険会社はデータプライバシー担当者が所属する法務事務所を通じて返信し、問題を認めつつ「不公平な責任」に対して法的措置を取ると脅迫し、事件の開示を禁じる署名済み宣言書を要求しました。この宣言は、著者が発見プロセス全体を機密に保つことを義務付け、違反するとマルタ刑法第337E条による刑事訴追の脅威が伴いました。著者はこのNDAへの署名を拒否し、代わりにデータ削除を確認する改訂宣言書を提出しました。この文書では、発見プロセスについて議論する権利を保持したまま、データ削除の確認が行われました。 保険会社は脆弱性を修正し、デフォルトパスワードをリセットするとともに二要素認証(2FA)の導入を計画しています。しかしながら、GDPRで義務付けられた通知(第33条・34条)について影響を受ける利用者への確認は行っておらず、その対応は実質的に責任をユーザーへ転嫁し、「ユーザー自身がパスワードを変更する必要がある」と主張しています。これはGDPRの適切な技術的・組織的対策義務に反します。 本件はセキュリティ研究者への冷却効果(chilling effect)を示す典型例です。企業はデータ保護よりも評判管理を優先し、法的脅迫で開示を黙らせようとしています。この事象が業界全体に与える影響として、プライバシーリスクの増大、評判損失、規制罰金の可能性、および将来の脆弱性開示への抑止力が挙げられます。これにより、弱いセキュリティ慣行が継続される恐れがあります。

Dependabot をオフにします。 | そっか~ニュース