REST APIについて3回のシリーズで解説します。本日は第1回目をお届けします。
APIはこれまで、ビジネス戦略を推進する戦略的ツールと位置付けられてきました。そして現在、デジタル環境の発展において、コアビジネス戦略はもちろん、企業やコンシューマ向けビジネス戦略においても中心的役割を果たす基軸だと考えられています。このトレンドをテクノロジの面から見ると、クラウド、モバイル、アプリケーション、(*)aaS、IoTといった新たなテクノロジだけでなく、リレーショナルデータベースなど従来のエンタープライズソフトウェアにも波及しています。ビジネスの面では、ホスピタリティ、観光、コンテンツ、メディア、医療、金融、製造など、あらゆる業界の企業がAPI導入に乗り出しています。
その背景には、JSONの登場によるXML、RSS、Atomの衰退、RESTの登場によるレガシーSOAアーキテクチャの衰退など、さまざまな要因が存在します。Twitterは、XMLベースのAPIからJSON/RESTへと移行しました。SOAの分野で長年の歴史を持つOracleは、ビッグデータ、NOSQL、リレーショナルデータベースの各ソリューションでRESTを採用しています。Netflix APIは、最適化によってRESTful APIの欠点を克服しています。
これまで、Webサイトのみで業務を展開してきた企業は、APIを積極的に採用し、業務拡大の新たな方法、社内/社外開発者との連携、アフィリエイトパートナーを通じた業務推進、自社のビジネスプロセスの合理化に取り組んできました。そしてAPI、特にJSON/RESTは、ビジネスアジリティ向上において威力を発揮すると考えられています。
RESTには、SOAアーキテクチャの欠点だった複雑さや「重さ」を解消するアーキテクチャが採用されています。その設計目標には、軽量、優れたパフォーマンス、キャッシュフル、プロキシでの使いやすさが掲げられています。開発者のコミュニティでは、最新のWebアプリケーションプログラムのフレームワーク(node.jsやAngular JSなど)においてJSON/RESTの採用が急速に進んでいます。
このように、企業の間では「API戦略」が重要なスローガンになりつつありますが、APIセキュリティには大きな落とし穴が存在します。APIは事業展開で戦力になる反面、セキュリティ侵害が発生すればビジネスに重大な影響を及ぼしかねません。
従来の社内向けSOAサービスは、高度なセキュリティ機能が実装されていないにもかかわらず、インターネットという攻撃が多発する危険な環境に直面しています。内部サービスにはセキュリティ機能が組み込まれていますが、新たな脅威ベクタに対抗できるレベルではありません。さらに、ほとんどのエンタープライズバックエンドシステムには、互換性のないレガシーテクノロジや買収で取得したテクノロジが多数混在しています。このようなバックエンド環境では、セキュリティアーキテクチャを再編または改良しようとしても困難であり、特に市場投入までの時間短縮というニーズに対応しようとなると不可能です。
APIは、さまざまなモチベーション、テクノロジ、アーキテクチャで導入されるわけですが、コアとなるバックエンドサービスにとってはフロントエンドの1つにすぎません。現在、大部分のユーザがブラウザ経由ではなくAPIを使った各種アプリケーションで処理を行っていますが、バックエンドサービスとそのセキュリティ要件は依然として変わりはないのです。
APIの進化によって、HTTP経由のインタラクションに新たなパラダイムが登場しています。そしてその対応に、SOAゲートウェイ、IPS/IDS、Webアプリケーションスキャナといった従来型のセキュリティテクノロジは四苦八苦しています。たとえば、HTTP要求でJSONを使用すると、それが不正データの経路となり、バックエンドサービスやユーザブラウザのセキュリティ侵害につながります。RESTを使って(URLクエリではなく)URLパス内でユーザ入力するという方法は、レガシーセキュリティを狙った新たな攻撃ベクタになります。
APIでは、サービスの可用性も課題の1つです。APIはプログラムで実行されるので、場合によっては非常に「チャッティ」(複数の呼び出しが必要)になります。また、想定外の使用レベルやパートナーの不正行為が発生すれば、API SLAに大きな支障をきたす恐れがあります。さらにこれがバックエンドサービスの中断を引き起こし、甚大な損害につながる可能性もあります。
今回の記事では概要をお届けしましたが、次の記事ではAPIのセキュリティについてさらに詳しく掘り下げます。
※本内容はBarracuda Product Blog 2015年7月2日The Growing Need to Secure REST APIsを翻訳したものです
Neeraj Khandelwal
本稿は、バラクーダネットワークスのWebサイトに掲載されている『バラクーダラボ』7月21日付の記事の転載です。