1. 概要
今日のWebアプリケーションにおいてAPIは欠かせないものとなっていますが、その実装の不備により生じる脆弱性は弊社の脆弱性診断サービスでも頻繁に検出されており、実際に不正アクセスを可能にするような危険度の高い脆弱性も検出されています。
本記事では、APIについて、セキュリティリスクと対策方法を主に解説します。APIのセキュリティ対策の一助になれば幸いです。
2. APIセキュリティの重要性
・APIとは
API(Application Programming Interface)とは、ソフトウェアやアプリケーション同士が連携するための仕組みです。例えば、スマートフォンのアプリからSNSやクラウドサービスにアクセスするときには、APIを通じてデータのやり取りが行われます。APIは、ユーザーにとって便利な機能を提供するだけでなく、サービス提供者にとっても効率的な開発を可能にするメリットがあります。
・APIの抱えるリスク
APIはユーザーとサービス提供者の双方にとってメリットの大きい仕組みですが、近年、APIは悪意を持った攻撃者から新たな標的とされており、認証情報の窃取やサービス停止といった無視できないリスクがあります。
例えば、あるWebアプリケーションのAPIに何らかの脆弱性があり、そのAPIが攻撃者の標的にされ、認証情報が窃取されてしまった場合、被害は標的にされたWebアプリケーションだけにとどまらず、API連携している別のサービスにも不正アクセスの被害が及んでしまうおそれがあります。その場合、ユーザーやサービス提供者に加え、ビジネスパートナーにも大きな損害を与えることになってしまいます。
3. APIが狙われやすい理由
APIが攻撃された場合のリスクの大きさについて述べましたが、API自体にも攻撃者の標的になりやすい理由があります。その理由は主に二つあります。
・多様なサーバーへの通信
APIはWebアプリケーションと違い、複雑で多様な構成を持ちます。Webアプリケーションでは、一般的にブラウザからサーバーへの一方向の通信が主です。しかし、APIでは、さまざまなデバイスやサービスから複数のサーバーへの双方向の通信が行われます。そのため、APIはWebアプリケーションよりも多くのエンドポイントやパラメータを持ちます。これらは攻撃者にとって潜在的な攻撃対象となります。
・不十分なセキュリティ対策
Webアプリケーションのセキュリティ対策として代表的なものにWAF(Web Application Firewall)があります。Webアプリケーションの脆弱性を突く攻撃は、ある程度パターン化されており、WAFにはこれらが膨大なシグネチャとして登録されています。WAFは登録されたシグネチャにマッチングした不正なリクエストを検出し遮断することで、Webアプリケーションを保護します。
一方、APIは、外部サービスとの連携によって、取得したい情報や処理してほしい内容をパラメータとして付与し通信を行います。このパラメータやリクエストボディ部分の設計はAPI提供元の仕様に依存するため、外部サービスとのAPI連携の数だけ仕様が存在することになり、APIの脆弱性を突く攻撃のパターン化は事実上困難です。そのため、API実装上の不備は、ある程度パターン化されているWebアプリケーション実装上の不備と比べて、WAFによるセキュリティ対策が不十分なものとなってしまいます。
4. APIのセキュリティ対策方法
では、どうすればAPIのセキュリティ対策を強化できるのでしょうか。その方法は主に四つあります。
・トークンによるアクセス制御
APIを利用する際には、認証情報を含むトークンをリクエストに付与することで、APIへのアクセスを制御することができます。トークンに有効期限やアクセス範囲などの属性を設定することで、不正なアクセスを防ぐことができます。トークンによるアクセス制御の代表的な方式としては、OAuth2.0が挙げられます。
・FAPI
FAPI(Financial-grade API)とは、金融サービスなどのAPIにおけるセキュリティ要件を定めた仕様です。FAPIでは、トークンの署名や暗号化、クライアントのなりすまし防止などについて厳格に規定されています。FAPIに準拠することで、APIにおける高度なセキュリティ対策を実現できます。
・スロットリング
スロットリングとは、事業者が一定の時間内に特定の操作に対して送信できるリクエストの数を制限するプロセスです。APIの呼び出し回数や頻度に制限を設けることで、サーバーの負荷を軽減しDoS攻撃(サービス拒否攻撃)を防ぎます。
・WAAP
APIのセキュリティ対策として、WAFでは不十分だと述べましたが、WAFに加えてAPIセキュリティ機能などが追加されたWAAP(Web Application and API Protection)が2017年にGartner社から提唱されました。WAAPのAPIセキュリティでは、API通信における正常な動作を、AIを用いて正常値として自動学習させ、その正常値から乖離した通信を異常値として検出します。自動化することで、事実上困難だったAPIの脆弱性を突く攻撃のパターン化の負担を軽減することを可能にしています。
5. まとめ
APIは、Webアプリケーションにおいて便利な機能を提供する一方で、多くのセキュリティリスクを抱えています。APIの脆弱性を突かれると、ユーザーやサービス提供者だけでなく、ビジネスパートナーにも大きな被害が及ぶ可能性があります。そのため、APIのセキュリティ対策は重要な課題です。
本記事では、APIのセキュリティ対策として、OAuth2.0やFAPI、スロットリング、WAAPの方法を紹介しましたが、API自体の脆弱性の有無を確認することも重要です。
弊社の脆弱性診断においても、不正アクセスを可能にするような危険度の高い脆弱性も検出することがあります。Webアプリケーションを開発、運用していて、APIのセキュリティ面において不安がある場合、是非弊社の脆弱性診断をご検討ください。
6. e-Gateの監視サービスおよび脆弱性診断サービスについて
e-Gateのセキュリティ機器運用監視サービスでは、24時間365日、リアルタイムでセキュリティログの有人監視を行っております。サイバー攻撃への対策としてセキュリティ機器を導入する場合、それらの機器の運用監視を行い、通信が攻撃かどうかの分析、判断をして、セキュリティインシデント発生時に適切に対処できるようにすることが重要です。e-Gateのセキュリティ監視サービスをご活用いただきますと、迅速なセキュリティインシデント対応が可能となります。
また、e-Gateの脆弱性診断サービスでは、お客様のシステムを診断し、検出された脆弱性への対策をご提案させていただいております。テレワークの常態化やIoT等のデバイスの多様化が進む昨今、特定の攻撃経路だけを想定した「境界防御」に加えて、脆弱性を把握・管理・対処する『本質防御』も必須となっています。e-Gateの脆弱性診断サービスをご活用いただきますと、お客様のシステムにおける脆弱性の存否が明らかになります。
監視サービスや脆弱性診断サービスをご活用いただきますと、セキュリティインシデントの発生を予防、また発生時にも迅速な対処が可能なため、対策コストや被害を抑えることができます。
■ 総合セキュリティサービス 「e-Gate」
SSK(サービス&セキュリティ株式会社)が40年以上に渡って築き上げてきた「IT運用のノウハウ」と最新のメソッドで構築した「次世代SOC"e-Gateセンター"」。この2つを融合させることによりお客様の情報セキュリティ全体をトータルにサポートするのがSSKの"e-Gate"サービスです。e-Gateセンターを核として人材・運用監視・対策支援という3つのサービスを軸に全方位のセキュリティサービスを展開しています。
【参考URL】
https://www.ssk-kan.co.jp/e-gate/
7. 参考資料
Authlete, 金融グレード API (FAPI)
https://www.authlete.com/ja/developers/fapi/
Akamai, WAAP とは?
https://www.akamai.com/ja/glossary/what-is-waap
※本資料には弊社が管理しない第三者サイトへのリンクが含まれています。各サイトの掲げる使用条件に従ってご利用ください。
リンク先のコンテンツは予告なく、変更、削除される場合があります。
※掲載した会社名、システム名、製品名は一般に各社の登録商標または商標です。
≪お問合せ先≫
サービス&セキュリティ株式会社
〒150-0011
東京都渋谷区東3丁目14番15号 MOビル2F
TEL 03-3499-2077
FAX 03-5464-9977
sales@ssk-kan.co.jp