APIのセキュリティ対策<br /> ~Web APIを安全に公開するために~

APIのセキュリティ対策
 ~Web APIを安全に公開するために~

Webアプリケーションの機能を他のアプリケーション向けに公開し、新たなビジネスを生み出すためのプラットフォームとする仕組みであるWeb APIとそのセキュリティ対策についてご紹介いたします。

近年スマートフォンなどで、SNSで発信したり、Webサイトやアプリから地図を見たり、ネットショッピングしたり、預金残高を確認したりなど様々なことができるようになっています。

これらの便利なサービスは生活に欠かせないものとなっていますが、このような様々なサービス素早くを提供する仕組みの1つとしてWeb APIというものが広く活用されています。

Web APIとは

API(Application Programming Interface)とは、汎用的なひとまとまりの処理を行う機能を公開し、外部から処理を依頼することで、その機能を利用できるようにする仕組みのことです。 そして、APIの仕組みがWeb上で外部に公開されて、インターネットを経由して利用できるようになっているものがWeb APIです。

現在様々な組織により公開、非公開のWeb APIが活用されています。 このようなAPIを様々な組織でオープンに公開したり、様々な組織が利用したりすることにより、高い付加価値を付けつつ、組織は自組織の本来の事業に注力することができるようになります。

このような活動でビジネス拡大していくようなシステムはAPIエコノミーと呼ばれ、急速に拡大してきています。 総務省においても、平成30年版 情報通信白書のなかで、人口減少時代のICTによる持続的成長を担う技術の一つとしてWeb APIの公開について効果や課題を取り上げています。(*1)

なぜWeb APIのセキュリティが必要か

組織のサービスや情報、またその組織のサービスを利用している人の情報などがAPIを通してAPIの利用者に提供されています。

しかし、このAPIの仕組みを悪用して、攻撃者もインターフェースを利用して不正に情報を搾取したり、不正出金をしたり、サービス停止を試みたりなど、APIは攻撃の的になっています。

Web APIのパラメーターに不正なパラメーターや開発者が意図しない複雑なパラメーターを送り込み、サーバーのリソースを消費させたり、パラメーターを解釈するアプリケーションサーバーの脆弱性を利用し任意のコードを実行しようと試みたりなど様々な攻撃が観測されています。

このような不正なアクティビティに対して、セキュリティ確保がAPI公開時の大きな課題の一つになっています。

先ほど挙げた平成30年版 情報通信白書のなかにもAPIを公開する際の課題の例としてセキュリティの担保が挙げられています。

また内閣官房情報通信技術(IT)総合戦略室からは、APIに係る関係者向けにAPIテクニカルガイドブックにおいて、セキュリティを一項目に上げて説明しています。(*2)

どのようにAPIのセキュリティを向上させるか

APIを提供するプログラムに脆弱な点がないのがベストですが、100%安全といえるプログラムはありません。

組織で開発したプログラムに脆弱性がなかったとしても利用しているミドルウェアや OSSなどで脆弱性が発見されることも考えられます。

そのような問題があることを想定して、Web APIにおいても、Webアプリケーションへの攻撃で利用されるSQLインジェクションなどの手法が有効なケースがあり、そのような攻撃に対してはWAF(Web Application Firewall)が非常に有効です。 (WAFについての詳細は、コラム「WAFについて徹底解説!IPS/IDS/FWと何が違う?どんな種類がある?」にて解説しておりますのでご参照ください。)

しかしWebアプリケーションの脆弱性への攻撃リクエストの検知を基本にしており、 Web APIの観点ではどのようなリクエストが不正であるかはAPI提供者が提供する インターフェースに依存するため汎用的に不正検知することはできません。

Web APIのセキュリティ確保

Web APIのセキュリティ確保には大きく分けて2つの観点を考える必要があります。

①APIの利用にあたって適切な認証・認可により、データが同意に基づく適切な範囲にのみ流通する仕組みを世の中で安全と認められた標準的な技術で実現すること

例えば、API連携のオープンスタンダードであるOAuth2やさらに高いレベルのセキュリティを求められるような金融業界ではFinancial-grade APIに準拠することです。 (認証・認可によるWeb APIのセキュリティ対策の詳細はコラム「Web APIの公開はセキュリティが不安…安全にAPIを公開する方法とは?」で更に詳細に解説しておりますのでご参照ください。)

②攻撃者が探索のためにリクエストする不正なAPIのパラメーターの通信を検知しブロックできること

攻撃者は攻撃対象のWebサーバーに探索活動として様々なHTTPリクエストを送り込みます。

Web APIではAPIの入力値に対応するパラメーターを正常なものや規定から外れたものまで様々なパターンで入力を試み、この時の応答により攻撃のきっかけになる情報をつかもうとすることがあります。この時、規定から外れたようなリクエストを検知することで、攻撃の兆候を把握しつつ、不正なリクエストをブロックして攻撃を成立させないことを期待できます。

その他の対策として侵入された後のことまで考慮すると、Web APIを提供しているサーバーやそのバックエンドで動作しているサーバーに、EDR(Endpoint Detection and Response)などのサーバー内部での不正な挙動を監視する製品を導入することも対策として考えられます。(EDRについての詳細は、コラム「サイバー攻撃に対する新対策、EDRとは?」にて解説しておりますのでご参照ください。)

このうち、攻撃者が探索のためにAPIへの不正なアクセスをする点に関して、GartnerのレポートにおいてもWebアプリケーションとWeb APIの脅威に対応する必要性を訴えており、WAAP(Web Application and API Protection Services)と規定するクラウド型のWebアプリケーションとAPIを保護するサービスが主流になるとレポートしています。(*3)

WAAPのサービスにて提供される機能として次の4点が挙げられています。

  • WAF
  • APIセキュリティ
  • Botの緩和
  • DDoSの防御

クラウド型WAAPサービスでAPIセキュリティも他の脅威と合わせて防御することを対策として考慮するとよいと言えます。

まとめ

APIエコノミーで企業があらたな価値を提供していく上で、Web APIが広く活用されています。そのためセキュリティ対策が企業にとって重要な課題となっています。

その対策としてクラウド型のWAAPサービスの活用や適切に認証・認可を行える環境の整備をしていくことが有効な対策の一つになります。

NTTテクノクロスではクラウド型WAAPのサービスのご提供や運用支援に多くの実績があります。さらに、米国OpenID FoundationのCertified Financial-grade API (FAPI) OpenID Providers 認定を取得しております。

Webアプリケーション、Web API含むWebサイトの防御を考える際や、FAPI/OAuthに準拠した認証・認可の強化を検討する際はWAAPサービスとFAPI/OAuth、どちらにも精通しているNTTテクノクロスにぜひご相談ください。

(参照) (*1)総務省「平成30年版 情報通信白書」 (*2)内閣官房情報通信技術(IT)総合戦略室 「APIテクニカルガイドブック」 (*3)Gartner 「Defining Cloud Web Application and API Protection Services」

合わせて読みたい