過去問題・解答は独立行政法人情報処理推進機構のページからダウンロードできます。
概要
APIセキュリティに関する問題です。
スマートフォン専用アプリケーションプログラムからアクセスするクラウド上のシステムを構築するに当たり、セキュリティベンダーの情報処理安全確保支援士(登録セキスペ)から脆弱性診断を受けるというストーリーです。
認証の脆弱性とWAFの導入が中心となります。
主な論点
- RESTful APIの設計原則
- JSON Web Token(JWT)を利用した認証
- アクセスコントロールの不備
- 総当たり攻撃
- WAF
- 検知と遮断
IPAの採点講評
問1では、APIセキュリティを題材に、セキュリティ設計及び脆弱性対応について出題した。全体として正答率は平均的であった。
設問2(2)は、正答率がやや低かった。JSON Web Token(JWT)改ざんにおける検証方法を問うたが、既に実装されている対策を解答するなど、脆弱性を正しく理解していないと思われる解答が散見された。図4に示す仕様と表3に示す脆弱性を正しく理解してほしい。
設問3(1)は、正答率がやや低かった。脆弱性の存在を判断するための仕組みについて問うたが、図6に示す攻撃の流れに合っていない解答が散見された。脆弱性対策では、脆弱性を悪用する攻撃の流れの理解が重要であることから、正確に理解してほしい。
設問3(4)の利点については、正答率が高かった。WAFの利点は正確に理解していると思われる。セキュリティ施策は導入前にトレードオフを検討してほしい。
着眼点
問題文 |
OTP(ワンタイムパスワード)に数字4桁の文字列を仕様する。(P4表1) |
脆弱性 |
数字4桁の文字列は10の4乗=10,000通りであり、総当たり攻撃に対する脆弱性がある。(P6表3項番4) |
対策 |
連続失敗回数がしきい値を超えたらアカウントロックする処理を追加するとともに、文字列Xの桁数を増やす。(設問2(5)) |
問題文 |
GETメソッドが使われた場合、パラメータmidで指定された利用者IDにひも付く利用者情報を含むレスポンスを返す。(P4表1) |
脆弱性 |
・GETメソッドのパラメータはURLの一部となり外部に公開される。このため、なりすましによりGETメソッドが使われた場合、第三者に利用者情報をレスポンスとして返される。 ・パラメータmidに他の利用者IDを指定すると、他の利用者IDにひも付く利用者情報を取得できる。(P6表3の項番2) |
対策 |
JWTに含まれる利用者IDがmidの値と一致するかどうかを検証する処理を追加する。(設問2(3)) |
問題文 |
PUTメソッドが使われた場合、パラメータmidで指定された利用者IDにひも付く利用者情報を更新する。(P4表1) |
脆弱性 |
・第三者がパラメータmidに他の利用者IDを指定すると、他の利用者IDにひも付く利用者情報を更新することができる。 ・正規の利用者IDであっても、パラメータmidを不正に設定して送信すると、利用者情報を改変できる。(P6表3項番3) |
対策 |
パラメータを検証した上でPUTメソッドで送信する。(P7表5項番2) |
問題文 |
JWTは利用者IDなどが含まれる”ペイロード”などの要素から構成されており、G社スマホアプリは、HTTPリクエスト内のAuthorizationヘッダにBearerスキームとJWTを設定し、Sシステムに送信する。(P5図4) |
脆弱性 |
ペイロードに他の利用者IDを指定すると、他の利用者へのなりすましが可能になる。(P6表3項番1) |
問題文 |
アルゴリズムに”RS256″の代わりに”NONE”を使用し、利用者ID”user01″を他の利用者IDに改ざんしたJWTを送信したところ、改ざんしたJWTの検証が成功し、他の利用者へのなりすましができた。(P6) |
脆弱性 |
アルゴリズムを無効にし署名の検証を回避することで、他の利用者になりすますことができる。 |
対策 |
JWTヘッダ内のalgに指定された値がNONEでないことを検証するようプログラムを修正する。(設問2(2)) |
問題文 |
現時点において、ライブラリHの公式Webサイトでは、脆弱性Vを修正したバージョンや暫定対策は提供されていない。網羅性のあるWAFルールの提供には最大で72時間掛かると発表している。(P9図6) |
脆弱性 |
ゼロデイ攻撃に対して脆弱性があります。 |
対策 |
WAFルールが提供されるまでの間、現在判明している悪用パターンに対応可能な暫定的なWAFルールで攻撃を遮断する。(P10) |
問題文 |
本番運用開始後の一定期間においては、WAFルールの動作には”検知”を設定して、サービスYが今までどおり利用できるかを確認する。(P10) |
脆弱性 |
遮断と比較した検知による利点は、誤検知による遮断(フォールスポジティブ)を防ぐ点にある。 |