Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
形式手法特論:SMT ソルバで解く認可ポリシの静的解析 #kernelvm / Kernel ...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
y_taka_23
March 20, 2026
Technology
1k
1
Share
形式手法特論:SMT ソルバで解く認可ポリシの静的解析 #kernelvm / Kernel VM Study Tsukuba No3
Kernel/VM 探検隊@つくば No3 で使用したスライドです。
y_taka_23
March 20, 2026
More Decks by y_taka_23
See All by y_taka_23
形式手法特論:コンパイラの「正しさ」は証明できるか? #burikaigi / BuriKaigi 2026
ytaka23
17
7.6k
形式手法特論:CEGAR を用いたモデル検査の状態空間削減 #kernelvm / Kernel VM Study Hokuriku Part 8
ytaka23
3
820
形式手法特論:位相空間としての並行プログラミング #kernelvm / Kernel VM Study Tokyo 18th
ytaka23
3
2.3k
AWS と定理証明 〜ポリシー言語 Cedar 開発の舞台裏〜 #fp_matsuri / FP Matsuri 2025
ytaka23
11
6k
問 1:以下のコンパイラを証明せよ(予告編) #kernelvm / Kernel VM Study Kansai 11th
ytaka23
3
1.1k
AWS のポリシー言語 Cedar を活用した高速かつスケーラブルな認可技術の探求 #phperkaigi / PHPerKaigi 2025
ytaka23
15
4.8k
NilAway による静的解析で「10 億ドル」を節約する #kyotogo / Kyoto Go 56th
ytaka23
7
980
形式手法の 10 メートル手前 #kernelvm / Kernel VM Study Hokuriku Part 7
ytaka23
7
1.6k
普通の Web エンジニアのための様相論理入門 #yapcjapan / YAPC Hakodate 2024
ytaka23
12
4.2k
Other Decks in Technology
See All in Technology
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
6
1.6k
アプリブロック機能のつくりかたと、AIとHTMLの不合理な相性の良さについて
kumamotone
1
260
20260515 ログイン機能だけではないアカウント管理を全体で考える~サービス設計者向け~
oidfj
0
660
Gaussian Splattingの表現力を拡張する — 高周波再構成とインタラクションへのアプローチ —
gpuunite_official
0
180
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
4.4k
How to learn AWS Well-Architected with AWS BuilderCards: Security Edition
coosuke
PRO
0
140
Swift Sequence の便利 API 再発見
treastrain
1
280
Vision Banana: Image Generators are Generalist Vision Learners
kzykmyzw
0
390
2026-05-14 要件定義からソース管理まで!IBM Bob基礎ハンズオン
yutanonaka
0
160
既存プロダクトQAから新規プロダクトQAへ
ryotakahashi
0
130
開発サイクルのボーダーレス化に伴う組織変革から学んだこと / Organizational Transformation Amid the Borderless Development Cycle
mii3king
0
100
「背中を見て育て」からの卒業 〜専門技術としてのテスト設計を軸に、品質保証のバトンを繋ぐ〜 #genda_tech_talk
nihonbuson
PRO
3
1.4k
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Site-Speed That Sticks
csswizardry
13
1.2k
Code Review Best Practice
trishagee
74
20k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.6k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.4k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
GitHub's CSS Performance
jonrohan
1033
470k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
180
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
250
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.4k
Transcript
形式手法特論 SMTソルバで解く 認可ポリシの静的解析 #kernelvm チェシャ猫 (@y_taka_23) Kernel/VM 探検隊@つくば No3 (20th
Mar. 2026)
卒業式といえば SMT ソルバ
我々は「幼年期の終り」にいる
生成 AI 時代の仕様記述 • 仕様を「記述すること」への重心の移動 ◦ AI はそれらしい実装を高速・大量に生成できる ◦ 明示されたコンテキスト外の事情は汲んでくれない
• 今後は仕様の「検証可能性」がより問われる時代に ◦ まずい実装を機械的に弾ける、白黒が決まる仕様 ◦ リッチな型システムや静的解析の利用
理解は全てに先立つ そして理解とは記述である
Cedar Policy Language https://github.com/cedar-policy
認可エンジン Cedar • AWS 製の認可判定エンジン ◦ Principal / Action /
Resource + α でポリシを記述 ◦ リクエストに対し許可 or 拒否を返す • いわばジェネリック IAM 的な立ち位置 ◦ Rust で実装され、OSS として公開されている ◦ マネージド版の Amazon Verified Permissions も
None
持ち主が操作主
持ち主が操作主 拡張子が .png private でない
閲覧操作 持ち主が操作主 拡張子が .png 許可 private でない
構造化・リファクタリングも可能
None
持ち主が操作主 拡張子が .png private なら拒否
「リファクタリング」?
リファクタリングとは 観測可能な挙動を保つ変更のこと!
Cedar Analysis による解析 • 複雑なポリシは最終的な結果が分かりづらい ◦ デプロイ前に「検証可能性」が欲しい • Cedar では静的解析ツールが提供されている
◦ ふたつのポリシ間に強弱の違いがあるか? ◦ 自明・冗長なポリシがないか? ◦ 許可を拒否で上書きして潰していないか?
None
一つ目の方が許可範囲が広い
Cedar Analysis の特徴 • リクエストを与えずとも、ポリシのみで検査 ◦ 単体テストと違い具体的なテストケースが不要 ◦ 真に「任意のリクエスト」を検査する全称形の仕様 •
内部では SMT ソルバが使用されている ◦ 比較するポリシを SMT エンコード ◦ 一方で Allow、他方で Deny となるリクエストを探索
None
最終的な assert 条件は 「t10 と t12 が等しくない」
最終的な assert 条件は 「t10 と t12 が等しくない」 t10 は「t4 または
t9」
最終的な assert 条件は 「t10 と t12 が等しくない」 t10 は「t4 または
t9」 t4 は「t0 と t3 が等しい」
最終的な assert 条件は 「t10 と t12 が等しくない」 t10 は「t4 または
t9」 t4 は「t0 と t3 が等しい」 t3 は t2 の owner (R1_a1)
最終的な assert 条件は 「t10 と t12 が等しくない」 t10 は「t4 または
t9」 t4 は「t0 と t3 が等しい」 t0 はリクエストの principal t3 は t2 の owner (R1_a1) t2 はリクエストの resource
t4
Cedar: A new language for expressive, fast, safe, and analyzable
authorization J. W. Cutler et al. (OOPSLA 2024) https://doi.org/10.1145/3649835
Cedar 式から Option 付き SMT 式への コンパイル規則
地味に厄介な in 演算子 • リソースの包含関係は in で記述できる ◦ 未解釈関数として SMT
エンコード • 推移性・非巡回性を制約として SMT に伝えたい ◦ しかし全称量化を許すと SMT の決定性が失われる • 判定問題に対して必要十分な有限制約集合を生成 ◦ このエンコードの健全性・完全性が論文の貢献
None
操作対象が term フォルダに含まれる term フォルダが shared フォルダに含まれる shared フォルダが 操作主アカウントに含まれる
None
t24は team が shared に含まれるなら shared の祖先は team の祖先でもある
(人間の仕事じゃねぇ〜)
だからこそ機械が理解する形で 仕様が定式化される意味がある
本日のまとめ • 仕様記述の「検証可能性」の重要性 • 認可エンジン Cedar ◦ IAM と同様、Principal /
Action / Resource で指定 • Cedar Analysis ◦ ポリシの意味を静的に検査できる ◦ 内部では SMT ソルバで充足可能性を検査
Solve Smart Policies With SMT Solvers! Presented By チェシャ猫 (@y_taka_23)