![世界を先読み!日本独占配信 米国でもっとも有名なEC専門メディア『Digital Commerce 360』からの最新記事](http://netshop.impress.co.jp/sites/all/modules/bancho/bancho_lazyload_img/assets/blank.gif)
EC事業者を狙うAPI攻撃。知っておくべき危険性と対処法
![](http://netshop.impress.co.jp/sites/all/modules/bancho/bancho_lazyload_img/assets/blank.gif)
EC事業者はWebサイトのフロント部分が攻撃されることを心配しているかもしれませんが、ハッカーたちの関心はサイドドア、つまりアプリケーション・プログラミング・インターフェース(API)に向けることが多くなっています。
API攻撃拡大へ。ECサイトが狙われる理由は?
調査会社「Gartner」によると、Webアプリケーションへの攻撃は2021年までに、サイトやモバイルアプリのユーザーインターフェースではなく、90%がAPIへ拡大すると予想されています。残念ながら、多くのWebアプリケーションに携わる運営者は、この考え方にまだ追いついていません。
最近のAPIの脆弱(ぜいじゃく)性や攻撃では、エクササイズバイクを開発・提供する「Peloton」、信用調査会社の「Experian」、人気急上昇中の音声SNS「Clubhouse」などのアプリケーションで報告されています。
![「Peloton」のサイトトップページ](http://netshop.impress.co.jp/sites/all/modules/bancho/bancho_lazyload_img/assets/blank.gif)
APIを攻撃するハッカーたちは、オンラインショッピングのトレンドを追っています。今のECサイトは、ショッピングカートなどの必須機能を複数のプラットフォーム上で公開するため、APIに依存しています。ハッカーたちは、ボットを使ったAPIへの攻撃の方が、アカウント・テイクオーバー(ATO、第三者のアカウントを活用してあるサイトに不正侵入すること)などの攻撃よりも簡単であることを理解しているのです。
APIを攻撃する場合、他の攻撃よりも少ないインフラで行うことができます。また、APIは機械同士の接続のため、攻撃パターンを特定するための情報がAPIの通信にはほとんど含まれておらず、犯罪者が身元を隠すことも容易です。顧客、評判、ブランドを守りたいと考えている小売事業者にとって、APIを適切に保護することは、全てがつながっている今の時代にビジネスを行う上で非常に重要なのです。
API攻撃とは?
APIとは、プラットフォームや技術に依存しない方法で、アプリケーション間の直接的な接続や通信、データ共有を可能にする仕様です。APIを利用することで、あらゆる機器やパートナー・提携サービスが、安全かつ確実にアプリケーションを呼び出したり、情報を送信したりすることができます。
現代のアプリケーションを構成する、迷路のように入り組んだ内部および外部のサービスで作られた数々のアプリケーションが、自動化された方法で相互に会話するための重要な橋渡し役となっているのがAPIです。
API攻撃では、APIが標的となって悪用されます。APIはプログラム的な性質を持っているため、ハッカーたちはAPIへの自動化された攻撃を好んで使用します。API攻撃には、分散型サービス拒否(DDoS)、インジェクション攻撃、認証ハイジャック、アプリケーション不正利用など、さまざまな種類があります。これらの攻撃タイプのなかで、EC事業者が最も懸念しているのがアプリケーションの不正利用です。
![](http://netshop.impress.co.jp/sites/all/modules/bancho/bancho_lazyload_img/assets/blank.gif)
たとえば、アカウント・テイクオーバー(ATO)攻撃は、アプリケーションを不正利用する攻撃手法の1つです。ほとんどのATOは、アプリケーションのロジックを破壊せず、ユーザー名や電子メール、パスワードの多くの組み合わせを駆使して、アプリケーションのロジックに完全準拠した形でアカウントを認証しようとします。
また、APIを定期的に標的とするもう1つの形態は、在庫の不正操作です。この攻撃では、悪質な第三者がAPIを使用し、購入するつもりのない商品をショッピングカートへ継続的に投入し、一般的に消費者が欲しい商品を購入できなくします。
なぜAPI攻撃は危険なのか?
API攻撃は、さまざまな要因でWebサイトやモバイルアプリなどのユーザーインターフェースに対する従来の攻撃よりも、さらに危険なものになっています。
APIへの接続では、ユーザーやデバイスの識別情報が少ないのも特徴です。そのため、自動的に攻撃をブロックする技術を搭載していても、悪意のあるボットが送信した悪質なAPIコールを識別するための手がかりが少ないのです。
たとえば、APIコールには、ユーザーがページ内をどのように移動したか、あるページから別のページに移動するのにかかった時間などの情報はありません。これらのデータは、人間のナビゲーションを自動化するJavaScriptを使用したボットの検出に役立つのですが、APIはアプリケーションに直接クエリを実行するため、アプリやWebページを操作する必要がないのです。
さらに、APIは多くの場合、Webアプリケーションほど厳重に保護されていません。うまく偽装されたAPIコールは、本物の消費者からの正当なAPIコールとほぼ同じように設計されていれば、ファイアウォールやAPIゲートウェイなどの従来のセキュリティを回避することができます。
さらに問題なのは、公開されたAPIによって、ハッカーがアプリケーションのクライアント側を完全に回避し、データベースやアプリケーションに直接アクセスできることです。これらに直接アクセスできるようになると、機密情報を入手したり、アプリケーションの動作を故意に変更できたりする可能性があるため、はるかに大きなリスクを生み出します。
![](http://netshop.impress.co.jp/sites/all/modules/bancho/bancho_lazyload_img/assets/blank.gif)
多くのEC小売事業者はセキュリティを最適化していない
APIのリスクが高まっているにもかかわらず、多くのECアプリケーション開発チームは、APIのセキュリティ強化のためにコードやアーキテクチャを正しく最適化できていません。
たとえば、多くのECアプリケーションは、Webサイト、モバイルアプリ、アフィリエイト、またはパートナーから送られてくるクエリの受信と応答に同じAPIを使用しています。単一のAPIを使用すると、ハッカーたちが身元を隠して検知を避けることが容易になってしまいます。複数の用途ではなく単一の用途であるAPIのほうが、不正検知手段の調整がやりやすくなります。
この問題は、GraphQLと呼ばれるクエリ言語を搭載した新世代の統一APIではさらに大きくなります。GraphQLを使うとAPIをより効率的に利用できますが、GraphQL APIの呼び出しや外部との通信をどのように構成するかによって、ロックダウンすることが難しくなります。
また、内部と外部のAPIを同じセキュリティ対策で扱っていない例も頻繁に見られます。理論的には、内部APIは外部からのトラフィックを受け取らないことになっていますが、実際には、巧妙なハッカーたちは、内部APIを見つけて危険にさらす方法を熟知しているのです。
たとえば、「Amazon Web Services」のS3ストレージサービスを狙った攻撃が増えています。ECアプリケーションは、外部から遮断された内部APIとしてS3にアクセスすることが多いためです。
アプリケーション開発の際、決済情報や個人情報を保護するためにデータを暗号化するTLS(Transport Layer Security)など、標準的なセキュリティを内部APIに導入していないケースが多いのも問題です。さらに言えば、いまだにWebアプリケーションへの直接攻撃を最大の脅威と考えているため、APIの制御やセキュリティ対策にそれほど時間や労力を割いていません。
また、アプリケーション開発チームが、API攻撃の詳細についてはあまり知らない傾向にあります。このような理由から、APIのクエリの動作を調べることが少なく、異常なパターンに気づくことも少ないのです。
![](http://netshop.impress.co.jp/sites/all/modules/bancho/bancho_lazyload_img/assets/blank.gif)
自動化された攻撃を防ぐためにAPIセキュリティを強化する方法
APIのセキュリティを強化したいと考えているEC事業者は、すでに効果が立証されている事例を真似するところから始めましょう。
まず、統合されたAPIを使っている場合、Webアプリ、モバイルアプリ、サードパーティパートナー、サプライヤー、関連会社それぞれを、外部トラフィック用の個別のAPIに分離することを検討すべきです。また、内部APIが不用意に公共のインターネットに公開される可能性があるため、内部トラフィックを含むすべてのAPIトラフィックをTLSで暗号化する必要があります。
別の賢いセキュリティ対策は、APIコールのレートを制限することです。これにより、大量ボットによる自動ブルートフォース攻撃(※編注:ユーザーのアカウントやパスワードを解読し、考えられるすべてのパターン・組み合わせを試す総当たり攻撃手法)の影響を軽減することができます。
また、攻撃をより明確に特定するのにも役立ちます。レートの制限は、APIにアクセスする外部の当事者の信頼度や、コールに付随する識別要素に応じて変更とすることも可能です。
3つ目の対策方法は、ログファイルにAPIコール用のバケットを作成、APIダッシュボードや定期的なレポートを作り、セキュリティチームが異常や異常値を発見できるようにすることです。具体的なセキュリティチームの対応としては、API経由の不正行為の割合と他のチャネルの割合を定期的に監視する必要があります。
セキュリティチームやアプリケーション開発チームが採用できる最も高度で強力な手法は、機械学習を活用して悪質なAPIコールのパターンや行動を特定することです。機械学習は、人間よりもはるかに多くのデータポイントを、はるかに迅速に分析できるため、どのAPIコールが攻撃用ボットから来ている可能性が高いかを判断することができます。
機械学習は、ネットワークやクラウドホストの発信元、コールの構造やタイプ、小売事業者のサイトの対象となるページやアイテムなど、何百もの異なるデータポイントを分析します。これを実現するサードパーティのサービスもありますが、セキュリティチームが既存の機械学習ツールを利用して、社内で能力を確保、構築、維持することも可能です。
◇ ◇ ◇
API戦略の構築とAPI保護の改善の緊急性は、いくら強調してもし過ぎることはありません。API攻撃の頻度と深刻さが増し続けるなかで、APIは顧客への詐欺を狙う犯罪者が好む攻撃対象になる可能性が高いです。
しかしながら幸いなことに、APIのセキュリティを向上させるための道筋は確立されています。現在もこれからも、API攻撃からECサイトを守ることは可能です。