不適切なアクセス制御

不適切なアクセス制御 #

概要 #

GraphQL APIにおいても、ほかのシステムと同様に、アクセス制御を適切に実施する必要があります。

影響 #

GraphQL APIのアクセス制御が適切に実施されていない場合、APIで操作できるさまざまなリソース(例:ユーザー情報やライセンスキー等)が、不正に作成、取得、更新、削除される可能性があります。

昨今では、国内のサービスでもGraphQL APIにおけるアクセス制御の不備が発見され報告されています。詳しくは、下記のページをご覧ください。

検証方法 #

対象のリソースに対するアクセス権を持たない認証状態で、クエリやミューテーションを通じて、リソースのCRUD操作を試みてください。たとえば、ユーザーIDやライセンスキーのようなアクセス識別子を送っている場合は、値の追加や変更等の検証する方法があります。操作が成功した場合、適切なアクセス制御が実施されていない事がわかります。

対策 #

RBAC(Role Based Access Control)やほかのアクセス制御のしくみを用いて、リソースにCRUDを実行しようとしているユーザーが、適切な権限を有しているかを必ず検証してください。もし、その操作が正規のユーザーによるものであることを確認できない場合、そのリクエストを拒否するようにしてください。