Salt Security レポート:REST API の後継とされる GraphQL の脆弱性について

Salt Security Report Surfaces GraphQL API Vulnerabilities

2021/12/08 SecurityBoulevard — 今日、Salt Security は、非公開の金融サービス企業が実装している、GraphQL API で発見された脆弱性を紹介するレポートを発表した。Salt Security の Technical Evangelist である Michael Isbitski によると、同社の研究者が確認した限りでは、この脆弱性の悪用は検知されていない。しかし、このレポートは、REST API に代わるものとして、開発者が広く使用し始めている、この新しいクラスの API 保護の必要性を、セキュリティ・チームに警告するものになる。

この脆弱性は、クエリがネストされている場合の、GraphQL API 認証の方式の管理に関係していると Isbitski は述べている。Salt Labs の研究者たちは、認証チェックが正しく実装されていないと、機密性の高い顧客データを集められている、顧客口座に対して不正な取引を仕掛けられることを発見した。

また、このレポートで引用されている金融技術プラットフォームでは、一部の API コールが、認証を必要としない AP Iエンドポイントにアクセスするという、さらなるセキュリティ・ギャップが発生していたという。Salt Security の研究者たちは、任意の取引識別子を入力することで、過去の金融取引のデータ記録を引き出すことができたと述べている。

この2つの脆弱性を悪用する攻撃者は、個人を特定できる機密情報 (PII) の抽出や、顧客の口座から資金移動などが可能になると、Salt Labs の研究者は報告している。一般的に、API を作成する開発者は、サイバー・セキュリティの専門知識を持たないことが多いため、サイバー犯罪者は API への攻撃を重視する傾向にある。

Salt Security が発表した 2021年 Q3 の「State of API Security Report」によると、62% の組織が API セキュリティ戦略を導入していないと答え、また、導入していたとしても非常に基本的なものであると答えているようだ。

現時点では、GraphQL API はプロダクション環境で広く使用されていないため、サイバー犯罪者が GraphQL API をスキャンしていないと、開発者が油断しているケースもあると Michael Isbitski は述べている。しかし、GraphQL が普及すれば、サイバー犯罪者が悪用の方法を探し出すのは時間の問題だ。彼は、「曖昧なセキュリティは決して良い戦略ではない。GraphQL を用いて構築された API は、呼出と応答の形式が独特であるため、セキュリティ確保は困難になる」と付け加えている。

Facebook が開発した GraphQL は、REST APIに代わる技術として注目を集めている。なぜなら、一連のクエリ機能を使用して、API を介してデータにアクセスする方法を、開発者が細かく制御できるからだ。

しかし、ほとんどの IT 企業にとって、REST API の GraphQL API への置き換えを、一夜で完了するのは難しいだろう。多くのアプリケーションは、今後の数年にわたって、REST API と GraphQL API を用いて、外部サービスを呼び出すことになるだろう。そのため、共通のセキュリティ・プラットフォームを使って、GraphQL と REST の API を保護することが不可欠だと、Isbitski は言う。

セキュリティへの懸念により、GraphQL API の採用が遅れる可能性については、その程度も明らかになっていない。しかし、ほとんどのサイバー・セキュリティ・チームは、開発者が採用する API を指示することはできない。その一方で、企業内で使用されている API の種類の把握は、サイバー・セキュリティ・チームの仕事となる。サイバー・セキュリティ・チームが直面する問題は、サイバー犯罪者も同じ API を探しているということである。したがって、彼らが行うべきことは、大惨事を引き起こす可能性のある API を見つけ出すことになる。

REST API の後継として、GraphQL API が注目されているようですね。API に関しては、「API と セキュリティ:新たな頭痛のタネと処方箋」や、「OWASP API Top-10: API を脅かす脆弱性を分析して対策を講じる」、「2021年の API 大惨事:Parler/Clubhouse/LinkedIn/NoxPlayer インシデントをふり返る」といった記事をポストしています。よろしければ、カテゴリ API も ご利用ください。