価値ある情報を提供し多くの人に利用してもらうため、また、開発者・ユーザー・パートナーなどと連携をするために、企業はAPIを開発・公開しています。
しかしながら、ガートナーリサーチのバイスプレジデントであるパオロ・マリンベルノ氏は「現在、APIは何らかの形でセキュリティを実装しているが、十分ではない。」と話しています。
価値ある情報は保護する必要があり、また一方でその情報にアクセスできるオープン性も必要です。
APIセキュリティ対策として、オープン性と保護のバランスをとることが重要となります。
オープン性と保護のバランスを保つAPIセキュリティを担保するためには、適切な戦略と適切なアーキテクチャ選びが大切です。マリンベルノ氏は以下3つのステップを提唱しています。
- 「発見」
・・・すべてのAPIを洗い出し - 「監視」
・・・洗い出したすべてのAPIにセキュリティ対策を講じるだけでなく、APIの通常の挙動を把握しておくことで異常を検知できるよう、継続的に監視する - 「セキュリティ保護」
・・・一度対策したら完了ではない。開発サイクル全体を変更して継続的にAPIセキュリティ保護を実行
また、APIが流通していく中で「どこに対してセキュリティ対策を施すべきか?」という質問に対して、マリンベルノ氏は「APIコールのトラフィック管理、オーケストレーション、監視、収益化、開発者サポートなどがなされる箇所にこそセキュリティ対策を講じることが必要」と答えています。
APIセキュリティの具体的な対策として、マリンベルノ氏は3つのポイントを挙げています。
1.暗号化
2.トラフィック・スロットリング
3.コンテンツ脅威検知
このうち、トラフィック・スロットリングでは、トラフィックの半数を占めるボットへの対策が中心になります。
2017年にAPIプロテクション・ベンダーのImpervaが行った調査では、オンライン・トラフィック(すべてのAPIコールの合計)の半数以上がボットであり、ボットの半数以上が「悪い」ボットだそうです。
ボットはAPIに対して大量のコールを投げ、頻度やタイミングが予測できないこともあります。また「悪い」ボットなのかどうか、監視をしていないと異常の検知もできません。
最後にマリンベルノ氏は、APIのURLパスについても言及しています。
回線上で送信された情報は、途中でインターセプトされる可能性があるので、生の情報はなるべく送信せず、URLパスから機密情報は削除する、またはトークナイゼーションを行うよう注意してほしい
価値ある情報を保護しつつ、APIを利用したい人が利用できるオープン性を保つAPIセキュリティ対策を検討する際に参考になる記事です。