ページの本文へ

セキュリティ

APIのセキュリティの重要性と企業に必要な対策

「Web API」の利用が進むにつれ、大きな課題となっているのがAPIセキュリティです。なぜいま、APIセキュリティの重要性が注目されているのか、その理由や企業に求められる対策について解説します。

  1. Web APIとそのセキュリティ
  2. APIセキュリティの重要性
  3. APIセキュリティにおける企業に必要な対策

Web APIとそのセキュリティ

API(Application Programming Interface)は、あるソフトウェアが持つ特定の機能を共有するための仕組みのことです。Web APIは、その中でもHTTP通信で機能を共有するためのAPIです。

例えば、会社の所在地を示す地図を自社サイトなどに載せたいとき、あらかじめ用意されている地図サービスのAPIを利用すると、簡単にその地図をページ内に表示することができます。エンドユーザー側にとっても、慣れ親しんだ地図サービスを使って所在地や交通アクセス方法を確認できるので便利です。

また、あるWebサービスで使用しているアカウントを、APIによる認証を経てほかのWebサービスでも利用できる仕組みもあります。ユーザーは新しくパスワードを設定したり個人情報を入力したりしなくて済むので、これもまた利用が拡大しています。

現在、多くのWebサービスが、こうした外部のサービスと連携するためのAPIを提供・公開しています。自社のWebサービス内の機能がほかのWebサービスやアプリケーションと連携して使えるようになれば、自社のサービスをより多くのユーザーに便利に使ってもらえるようになります。APIを通じて複数のWebサービスが相互接続し、利用者の利便性が向上し、新たなビジネスが拡大して経済的に活性化していくことは、「APIエコノミー」と呼ばれています。

しかし、一方でWeb APIはセキュリティに関するリスクも内包しています。

Web APIには固有のセキュリティ対策が必要となりますが、Webアプリケーションと同じような対策しかとらない、固有の対策について無視してしまうといった危険性があります。実際には、APIの認証フローに不備がないかの確認も含めた、より幅広い対策が必要となります。

通常のWebアプリケーション向けに用意されたぜい弱性スキャンでは、APIのぜい弱性を検出することが難しいという指摘もあります。APIのセキュリティチェックは、APIで利用される技術やフレームワークに対する十分な理解と知識のもとに行わなければならず、既存のセキュリティ対策とは別の「APIセキュリティ」を設定することが求められています。

APIセキュリティの重要性

近年、APIは悪意を持った攻撃者から新たな標的とされています。攻撃者はAPIの仕組みを利用して認証情報を窃取したり、サービス停止を試みたりしようとします。

仮にWeb APIに何らかのぜい弱性があり、攻撃者がその弱点や欠陥を利用して不正を行うと、連携している複数のWebサービスやアプリケーションにまで被害が及ぶこともあります。

とくに認証情報の窃取は深刻な問題です。あるサービスを利用しているユーザーのIDとパスワード、あるいはアクセストークン(認証済みユーザーを識別する文字列)が盗み取られると、API連携している別のサービスにも簡単にアクセスされてしまいます。現在、さまざまな金融サービスがWeb APIの活用を進めており、利用者が金銭的被害を受けるケースも想定されます。

実際にこれまで海外では、大手SNSのアクセストークンが大量に盗まれた事例、あるいは大手配車マッチングアプリのAPIに不備があって無賃乗車ができてしまうバグが見つかった事例などがありました。

国内でも、スマートフォンを使用した決済サービスが不正利用されて多額の被害が発生したことがあります。このインシデントではアカウントを認証する仕組みに多くの問題があったとされていますが、APIを使った外部サービスとの認証連携機能の実装に不備があったことも指摘されています。

Web APIにおいて重要なのが認証フローのセキュリティです。そこに問題があると、悪意ある第三者が偽装認証などを行い、本来のユーザーになりすますことが可能です。なりすましによる現金引き出しなどが簡単に行われてしまうことになります。

APIセキュリティにおける企業に必要な対策

APIのセキュリティを強化するために利用が進んでいるのが、「Oaths 2.0」や「Financial-grade API (FAPI)」です。

oath 2.0は、あるユーザーとサービスAとBの3者間でセキュアにAPIを利用するためのプロトコルです。

サービスAを利用しているユーザーが、新しくサービスBの利用を開始するためにAPI連携を使用するとします。その際、サービスAが保有している自分に関する情報のうち一部しかサービスBに知られたくない、さらに一部の操作しか許したくないという場合には、ユーザー自身が画面に表示された情報を見て認可するかどうかを判断できます。OAuth 2.0の使用を前提としたAPI認証では、「アクセス権限の付与(認可)」と「それに関する説明・表示」「同意の取得」が必要だとされています。

AUTH 2.0は認証ではなく、認可の仕組みだとよくいわれます。IDやパスワードで本人だと確認して認証するのではなく、特定のデータに対する操作を許可するかどうかをユーザーに委ねる仕組みだと考えればわかりやすいでしょう。

そしてFinancial-grade API (FAPI)は、OAuth 2.0を金融サービスに実装するためのAPI仕様です。オンライン金融サービスではより強固なセキュリティの確保が求められます。例えば、認可リクエスト/レスポンスの送信者詐称・改ざんの防止、認可コードの漏えい・盗用防止、クライアントのなりすまし防止、トークンの漏えい・盗用防止などを実現するための機能がFAFPにより強化されています。そのための新しいAPI認可ソリューションも提供され始めています。

Webサービスの拡大を図ろうとする企業にとって、Web APIとAPIセキュリティはいまや非常に大きな意味を持つ技術です。特にAPIセキュリティについては、いま一度しっかりと安全性が保たれているかどうか見直してみる必要があるのではないでしょうか。

「セキュリティ診断サービス」のご案内では、自社サービスやシステムの安全性を確認できるサービスをご用意しています。「ネットワーク型診断サービス」と「Webアプリケーション診断サービス」という2つのメニューにより、さまざまなOS/アプリケーションに対応したセキュリティ診断を行うことができます。自社のサービスについて、第三者の視点からのセキュリティ診断を受けてみてはいかがでしょうか。

当社の関連ソリューション/サービス

関連記事はこちら