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
y_taka_23
March 20, 2026
Technology
1.1k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
形式手法特論: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
形式手法特論:公平性制約の位相的特徴づけ #kernelvm / Kernel VM Study Kansai 12th
ytaka23
1
900
形式手法特論:コンパイラの「正しさ」は証明できるか? #burikaigi / BuriKaigi 2026
ytaka23
17
7.9k
形式手法特論:CEGAR を用いたモデル検査の状態空間削減 #kernelvm / Kernel VM Study Hokuriku Part 8
ytaka23
3
850
形式手法特論:位相空間としての並行プログラミング #kernelvm / Kernel VM Study Tokyo 18th
ytaka23
3
2.4k
AWS と定理証明 〜ポリシー言語 Cedar 開発の舞台裏〜 #fp_matsuri / FP Matsuri 2025
ytaka23
12
6.2k
問 1:以下のコンパイラを証明せよ(予告編) #kernelvm / Kernel VM Study Kansai 11th
ytaka23
3
1.1k
AWS のポリシー言語 Cedar を活用した高速かつスケーラブルな認可技術の探求 #phperkaigi / PHPerKaigi 2025
ytaka23
15
5.3k
NilAway による静的解析で「10 億ドル」を節約する #kyotogo / Kyoto Go 56th
ytaka23
7
1k
形式手法の 10 メートル手前 #kernelvm / Kernel VM Study Hokuriku Part 7
ytaka23
7
1.6k
Other Decks in Technology
See All in Technology
起点・思考・出力で分解する 〜PM業務の自動化設計〜
kazu_kichi_67
0
240
PostgreSQL 19 新機能概要 OSC Hokkaido 2026
nori_shinoda
0
210
AIチャット検索改善の3週間
kworkdev
PRO
2
160
[AWS Summit Japan 2026]迷っているあなたへ_小さな一歩が、やがて自分を助けてくれる
sh_fk2
1
340
OTel × Datadog で 「AI活用」を計測し、改善に繋げる
shihochan
2
550
手塩にかけりゃいいってもんじゃない
ming_ayami
0
620
Agile and AI Redmine Japan 2026
hiranabe
3
430
ロボティクスの技術 / Robotics Technology
ks91
PRO
0
120
自分が詳しくない領域でAIを使う #プロヒス2026
konifar
20
7k
“詰む”前に仕組みを作れ 〜技術の波に溺れないためのキャッチアップ術〜
takasyou
7
3.1k
あなたの知らないPDFのアクセシビリティ
lycorptech_jp
PRO
0
230
Lightning近況報告
kozy4324
0
220
Featured
See All Featured
AI: The stuff that nobody shows you
jnunemaker
PRO
8
730
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.3k
[SF Ruby Conf 2025] Rails X
palkan
2
1.1k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
The browser strikes back
jonoalderson
0
1.3k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
210
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Heart Work Chapter 1 - Part 1
lfama
PRO
7
36k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
190
Odyssey Design
rkendrick25
PRO
2
700
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)