Slide 21
Slide 21 text
許可条件
→ 失敗 → 修正 → 成功
APIのセキュリティテストを書いて」で出てきた項目 × 許可条件表(deny_when) × 脅威モデリングの結果を掛け合わせて洗い出した
「起きてほしくないこと」なら、そこから先はテストの追加と実装の修正がセットでできます。D2で1本、その流れを追います。
「この
01 / 洗い出した項目
02 / 生成
03 / 実行
04 / 修正
表の該当行
拒否テスト
失敗ログ 実測
差分 実コード
( )
(
)
deny_when:
r = get("/orders",
FAILED test_d2_
- "一覧に他
h=auth_a)
fixed_list_
テナントの
ids = {o.id
has_no_leak
-
注文が混ざる"
for o in r}
assert not
+ def scope_orders
期待: 0件
leaked = ids &
leaked
TENANT_B_IDS
leaked: 3 of 11
assert not
leaked
1
1
- def scope_orders
05 / 再実行
( )
成功ログ 実測
PASSED
_query(stmt, s):
2 passed
return stmt
in 0.48s
_query(stmt, s):
authz job(22件)
+
return stmt.where(
実行 0.5s
tenant_b: o_7,
+
Order.tenant_id
o_9, o_12
+
== s.tenant_id)
1
洗い出せた項目 つが、失敗するテスト 本と修正 行に対応する。テストの追加も修正も、洗い出しさえ済めば機械的にできます。
17