Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
govulncheck で安全なアプリケーションを運用
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
OPTiM
October 27, 2026
Programming
5
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
govulncheck で安全なアプリケーションを運用
2026/10/08 開催「Gophers Meetup 2026」でのオプティム 宍戸 の発表資料です。
OPTiM
October 27, 2026
More Decks by OPTiM
See All by OPTiM
Railsバージョンを4倍にした話
optim
0
590
npm との違いを手がかりにGo の依存管理を理解したい
optim
0
1.1k
IHV like なユースケースへのOpenID Connect 関連仕様の適用事例
optim
0
670
製品の問い合わせ負荷をLLMで解消したい 〜RAGで作る「自社を知っている」チャットボット〜
optim
0
46
AI エージェントシステムの開発を AI で加速させたい!
optim
0
47
既存プロダクトのRSpec カバレッジを 40% から100% にした話
optim
1
150
最近やってよかったデザインシステム運用改善3選
optim
1
450
<install>要素は何ができて、何を変えるのか
optim
1
400
CIでリグレッションテストを実行し継続的に品質を担保する
optim
1
430
Other Decks in Programming
See All in Programming
パスワード再設定メールのURLについて知っておこう
uyuki234
0
180
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
240
R8 の設定見直しでアプリサイズ削減
andpad
0
230
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.7k
PyConTW 2026 - AI Coding 不只是工具升級, 區域醫院醫療資訊系統協作開發與資訊團隊轉型實踐
cclai999
0
170
Compiling a real-world CLI tool to native with Static Hermes
tmikov2023
0
130
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
200
Event is what happens
moro
2
1.5k
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
160
GraphQL の onError と Nullability のこれから
quramy
0
180
Next.js: The final boss of Web Performance
guaca
0
330
ジョジョの世界をXRで再現する
mofurune
0
190
Featured
See All Featured
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
500
The Language of Interfaces
destraynor
162
27k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.3k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.6k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Marketing to machines
jonoalderson
1
5.9k
Site-Speed That Sticks
csswizardry
13
1.6k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
A Modern Web Designer's Workflow
chriscoyier
699
190k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
500
Paper Plane (Part 1)
katiecoart
PRO
2
12k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Transcript
govulncheck で安全なアプリケーションを運用 株式会社オプティム 宍戸 / 2026/10 © 2019-2026 OPTiM Corp.
All rights reserved.
自己紹介 宍戸(ししど) 株式会社オプティム バックエンド担当 2023年4月〜 OPTiM Biz(MDM)で開発と問い合わせ対応
2025年5月〜 OPTiM Collaboration Portal でバックエンド © 2019-2026 OPTiM Corp. All rights reserved. 2
会社紹介 © 2019-2026 OPTiM Corp. All rights reserved. 3
会社紹介 商号 株式会社オプティム(プライム市場:3694) Optimization:最適化 × Optimism:楽観主義 Tokyo 設立 2000年 オフィス
OPTiM TOKYO(東京本社@浜松町) OPTiM SAGA(佐賀本店@佐賀大学キャンパス内) OPTiM KOBE (神戸オフィス@三ノ宮) Saga TECH CENTER IIZUKA (テックセンター飯塚@九州工業大学飯塚キャンパス前) 代表者 菅谷 俊二 スタッフ数 444名 (2026年4月1日現在) Kobe うち7割がエンジニア職 © 2019-2026 OPTiM Corp. All rights reserved. 4
事業・提供サービス概要 オプティムは、AI・IoT技術を社会の隅々に行き渡らせ、日本のあらゆる産業を根底から変革 する「AXの中核を担う企業」を目指しています © 2019-2026 OPTiM Corp. All rights reserved.
5
最近、セキュリティが話題ですよね! 今回は、Goでのセキュリティについて紹介していきます © 2019-2026 OPTiM Corp. All rights reserved. 6
Go のセキュリティ対策(ref) ソースコードおよびバイナリの脆弱性スキャン(govulncheck) Go本体および依存関係のアップデート Fuzzingによるエッジケース脆弱性の発見 Race
detectorによる競合状態の検出 go vetによる疑わしい構成の検査 golang-announceメーリングリストの購読 © 2019-2026 OPTiM Corp. All rights reserved. 7
Go のセキュリティ対策(ref) ソースコードおよびバイナリの脆弱性スキャン(govulncheck) Go本体および依存関係のアップデート Fuzzingによるエッジケース脆弱性の発見 Race
detectorによる競合状態の検出 go vetによる疑わしい構成の検査 golang-announceメーリングリストの購読 © 2019-2026 OPTiM Corp. All rights reserved. 8
govulncheck とは?(ref) Go のコードに影響する既知の脆弱性を報告する 静的解析で、アプリに影響しうるものだけに絞り込む ◼ソース: 脆弱な関数への呼び出し経路も表示 ◼バイナリ:
シンボルテーブルで判定、経路は出ない ◼シンボル情報が無ければ、全依存モジュールを報告 照合先は Go 脆弱性 DB(vuln.go.dev) ◼送るのはモジュールパスだけ。コードは送らない 呼ばれている関数を基に、対応の優先度を決める 公式 Go docs: pkg.go.dev/golang.org/x/vuln/cmd/govulncheck(2026-10-07 取得) © 2019-2026 OPTiM Corp. All rights reserved. 9
Go の脆弱性管理の全体像(ref) 出典: Go 公式ドキュメント「Go Vulnerability Management」の Architecture 図を引用(go.dev/doc/security/vuln、CC BY
4.0、2026-10-08 確認) © 2019-2026 OPTiM Corp. All rights reserved. 10
DB はどう作られるか: 登録まで(ref) NVD REVIEWED NIST 運営の脆弱性 DB Go チームが確認
GitHub Advisory worker triage UNREVIEWED vuln.go.dev GitHub の脆弱性情報 issue を自動作成 Go チームが判断 自動生成・未検証 OSV 形式 除外 Go メンテナ パッケージ作者が直接報告 レビュー・整備するのは Go Security チーム NOT_GO_CODE など govulncheck 公開しない API で取得 メンテナからの追加・修正の提案も、フォームから Go チームが確認 REVIEWED は、Go チームが確認して情報(シンボルなど)を足したもの UNREVIEWED は、CVE / GHSA から自動で作ったもの。Go チームは未検証(docs) 実測: 4,577 件のうち REVIEWED は 1,155 件(25%)1。残りは UNREVIEWED 1. vuln.go.dev/vulndb.zip(2026-10-01 取得)の全エントリを、OSV の database_specific.review_status で集計 © 2019-2026 OPTiM Corp. All rights reserved. 11
依存に 16 件あっても、コードから届くのは 1 件 module 16 件 require している
package 3件 import している symbol 呼び出し経路がある 1件 16 件のうち 13 件は標準ライブラリ。go.mod の go 行でなく PATH 上の go で判定し、環境ごとに変わる 静的解析上、到達可能なのは 1 件 既定は symbol スキャン。-tags で build tag を指定、-test でテストコードも対象にできる(既定は対象外) 実測: x/text v0.3.5 / go1.26.3 / govulncheck v1.8.0 / DB 2026-10-01(-scan で段階を変えた結果) © 2019-2026 OPTiM Corp. All rights reserved. 12
デモの流れ(手順) 1. go.mod に、古い x/text(v0.3.5)を書いて go mod tidy 2. VS
Code で「Go: Toggle Vulncheck」を実行する(依存の診断) 3. Quick Fix の「Run govulncheck to verify」で、到達性を確認する 4. go.mod の x/text にホバーして、呼び出し経路を見る 5. More info のリンクから、vuln.go.dev の DB と docs を追う 6. Quick Fix で修正済みの版を指定して Upgrade し、もう一度実行する(1 件から 0 件) ◼「Upgrade to latest」は使わない。公開直後の版は取り込まない(Go 本体の cooldown は提案段階 1) 7. CLI でも確かめる: go tool govulncheck ./... ◼govulncheck は go get -tool golang.org/x/vuln/cmd/
[email protected]
で go.mod に固定2 1. golang/go#76485「proposal: support dependency cooldown in Go tooling」(On Hold、2026-10-08 確認) 2. go get -tool は Go 1.24 以降。参考: samber/cc-skills-golang「golang-security」SKILL.md(Tooling & Verification) © 2019-2026 OPTiM Corp. All rights reserved. 13
まとめ govulncheck を導入しよう! 仕組み: go list の結果、DB、コールグラフ
限界: 到達性は静的解析上の推定。ずれは 2 方向に出る ◼見逃し側: reflect・unsafe 経由の呼び出し、DB に載っていない脆弱性、スキャン範囲(テストコード・ビルドタグは 既定で対象外) ◼過剰報告側: 未レビューのエントリはモジュール単位で判定。関数ポインタ・インターフェース経由の呼び出しは保守 的に扱う ◼見逃し側があるので、「報告なし」は「安全」ではない © 2019-2026 OPTiM Corp. All rights reserved. 14
おまけ Go 向けセキュリティの Agent Skill 依存の cooldown 提案(golang/go#76485) govulncheck を
go get -tool で入れ、go tool で実行 公開直後の版を go get / go mod tidy で選ばない案 github.com/samber/cc-skills-golang(skills/golang-security/SKILL.md) github.com/golang/go/issues/76485 © 2019-2026 OPTiM Corp. All rights reserved. 15
© 2019-2026 OPTiM Corp. All rights reserved.