APIセキュリティ入門(5):API開発者が知っておくべき、API攻撃手法

バンダリ・ハレンドラ (アカマイ・テクノロジーズ)

2018-11-15 06:00

 前回の記事では、APIが直面するセキュリティ脅威の全体像について述べた。今後日本でも、インターネット上でさらにAPIの公開が加速していくが、既にAPIはサイバー攻撃の新たな標的(Attack Surface)となっており、その避け難いいくつかの理由も挙げた。今回は実際のAPIへの攻撃手法について、整理してより詳しく説明していこう。

 現在行われているAPIへの攻撃は大きく以下の3つに分けることができる。

  1. ウェブアプリケーション攻撃
  2. APIエコシステム攻撃
  3. DDoS(分散型サービス拒否)攻撃

 これらを順に見ていく。

1.ウェブアプリケーション攻撃:

 APIに対しても、一般的なウェブに対して行われるウェブアプリケーション攻撃の手法が頻繁に用いられている。APIサーバの中でも通常のウェブアプリケーションと同様のプログラムが多く動作しており、攻撃側はAPIに対しても同様の手法を用いることができる。このタイプの攻撃は、以下の2つに分けて考えることができる。

  • 1.1 インジェクション型攻撃
  • 1.2 認証機能への攻撃

 ウェブアプリケーション攻撃に精通した読者にはおさらいになる部分も多いが、それぞれ解説していこう。

1.1 インジェクション型攻撃

 インジェクション型攻撃は、ウェブアプリケーション攻撃の大半の割合を占めている攻撃手法だ。この攻撃は、サーバやアプリケーションに存在する脆弱性を悪用して、サーバ上で任意のコマンドやコードの実行(RCE:Remote Code Execution)を目論む。APIを攻撃する場合は、攻撃の標的がAPIサーバだけではなく、サブシステムを構成するAPIクライアントを狙うケースも考えられる。インジェクション攻撃の代表的な攻撃手法を以下に挙げる。

1.1.1 SQLインジェクション

 アプリケーションが想定していないSQL文をSQLサーバに実行させることで、データベース上のデータの搾取やデータベースに不正なデータを書き込む目的の攻撃手法。APIサーバも一般的なウェブアプリケーションと同じくデータベースと連携しているため同様の手法が用いられる。攻撃手法としては最も一般的な手法であり、アカマイでも契約顧客のAPIサーバに対する多くのSQLインジェクション攻撃を検知している(図1)。

1.1.2 コマンド・インジェクション

 サーバ上で任意のコマンドやコードを実行する攻撃手法。APIサーバ、API開発フレームワーク(SpringやJAX-RSなど)やアプリケーション自体に潜む脆弱性を悪用して攻撃を行う場合がある。2018年8月に公開されたApache Struts2脆弱性に対する攻撃はこの攻撃の一種といえる。

1.1.3 XSS(クロス・サイト・スクリプティング)

 クライアント側で不正なコード(主にJavaScript)を実行させる攻撃の手法。他のウェブアプリケーション攻撃の手法と異なり、攻撃者が用意したスクリプトがサーバではなくクライアントの環境内で閉じて実行されるため、大きな被害が出るまでサーバ側で検知することが非常に難しい。最近の例では、サイバー犯罪グループMagecartによる、British Airwaysへの攻撃(決済カード情報などが流出した)にこの手法が用いられたと言われている。

図1:アカマイが検知したAPIへのアプリケーション攻撃手法の割合
図1:アカマイが検知したAPIへのアプリケーション攻撃手法の割合

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ZDNET Japan クイックポール

自社にとって最大のセキュリティ脅威は何ですか

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]