知識マップ: 情報処理安全確保支援士 令和6年春 午後問1解説 ── JWTのalg=noneとAPI認可、WAFの暫定対策
記事「情報処理安全確保支援士 令和6年春 午後問1解説 ── JWTのalg=noneとAPI認可、WAFの暫定対策」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。
令和6年春の情報処理安全確保支援士午後問1は、RESTful APIのステートレスな要求に対して認証と認可を別々に設計する重要性を問う問題です。JWTの署名検証はalg=noneを許すとアカウント乗っ取りに通じ、認証が済んでもオブジェクト単位(BOLA)やプロパティ単位(Mass Assignment)の認可を欠くと他人のデータや有償状態が書き換えられます。4桁の短期認証コードは総当たりに弱く、試行回数制限で軽減します。Log4Shell型の脆弱性ではJNDI Lookupが外部コード実行を招き、WAFは修正版ライブラリへの更新が出るまでの暫定緩和に位置づけられます。
flowchart LR
accTitle: 情報処理安全確保支援士 令和6年春午後問1(APIセキュリティ)の知識マップ
accDescr: RESTful APIのステートレスな信頼境界、JWT署名検証とalg=none、認証と認可の分離、オブジェクト・プロパティ単位の認可不備、4桁認証コードの総当たり、Log4ShellのJNDI LookupとWAFの暫定対策の関係を示す図
rest_api["REST API"]
jwt["JWT(JSON Web Token)"]
authorization["認可"]
waf["WAF(Web Application Firewall)"]
stateless["ステートレス"]
authentication["認証"]
jwt_signature_verification["JWT署名検証"]
jwt_allowed_algorithms["JWT許可アルゴリズムリスト"]
account_takeover["アカウント乗っ取り"]
jwt_alg_none["JWTのalg=none攻撃"]
bola["BOLA(オブジェクト単位の認可不備)"]
unauthorized_data_access["未許可データアクセス"]
update_dto_allowlist["更新用DTOの許可リスト"]
mass_assignment["Mass Assignment(プロパティ単位の認可不備)"]
privilege_escalation["権限昇格"]
four_digit_auth_code["4桁認証コード"]
brute_force["総当たり攻撃(ブルートフォース)"]
account_lockout["アカウントロック"]
log4shell["Log4Shell(CVE-2021-44228)"]
jndi_lookup["JNDI Lookup"]
arbitrary_code_execution["任意コード実行"]
library_update["ライブラリの修正版への更新"]
waf_detection_mode["WAF検知モード"]
waf_blocking_mode["WAF遮断モード"]
rest_api -->|"前提とする"| stateless
authentication -->|"より先に行うべき"| authorization
jwt -.->|"利用する"| jwt_signature_verification
jwt_signature_verification -->|"で構成できる"| jwt_allowed_algorithms
jwt_allowed_algorithms -.->|"防止する"| account_takeover
jwt_alg_none -.->|"原因になり得る"| account_takeover
authorization -.->|"防止する"| bola
bola -.->|"原因になり得る"| unauthorized_data_access
update_dto_allowlist -.->|"防止する"| mass_assignment
mass_assignment -.->|"原因になり得る"| privilege_escalation
four_digit_auth_code -.->|"原因になり得る"| brute_force
brute_force -.->|"原因になり得る"| account_takeover
account_lockout -.->|"軽減する"| brute_force
log4shell -->|"利用する"| jndi_lookup
jndi_lookup -.->|"原因になり得る"| arbitrary_code_execution
waf -.->|"軽減する"| log4shell
library_update -.->|"防止する"| log4shell
waf_detection_mode -.->|"より先に行うべき"| waf_blocking_mode
概念間の関係(全18件)
図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。
- REST APIはステートレスを前提とします。
- 認証は認可より先に行うべきです。
- JWT(JSON Web Token)はJWT署名検証を利用します。
- JWT署名検証はJWT許可アルゴリズムリストで構成できます。
- JWT許可アルゴリズムリストはアカウント乗っ取りを防ぎます。
- JWTのalg=none攻撃はアカウント乗っ取りの原因になることがあります。
- 認可はBOLA(オブジェクト単位の認可不備)を防ぎます。
- BOLA(オブジェクト単位の認可不備)は未許可データアクセスの原因になることがあります。
- 更新用DTOの許可リストはMass Assignment(プロパティ単位の認可不備)を防ぎます。
- Mass Assignment(プロパティ単位の認可不備)は権限昇格の原因になることがあります。
- 4桁認証コードは総当たり攻撃(ブルートフォース)の原因になることがあります。
- 総当たり攻撃(ブルートフォース)はアカウント乗っ取りの原因になることがあります。
- アカウントロックは総当たり攻撃(ブルートフォース)を軽減します。
- Log4Shell(CVE-2021-44228)はJNDI Lookupを利用します。
- JNDI Lookupは任意コード実行の原因になることがあります。
- WAF(Web Application Firewall)はLog4Shell(CVE-2021-44228)を軽減します。
- ライブラリの修正版への更新はLog4Shell(CVE-2021-44228)を防ぎます。
- WAF検知モードはWAF遮断モードより先に行うべきです。
主要概念の定義
機械可読データ
このデータセットについて
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。