Cloudflareは先頃、API Shieldを導入した。これは、不正なアクションを実行したりデータを盗み出したりするように設計された攻撃からAPIトラフィックを保護する無料のセキュリティツールである。スキーマ検証は現在クローズドベータ版だが、強力なクライアント証明書ベースのIDはすでに一般的に利用可能である。
Cloudflare API Shieldは、mTLS認証のデプロイと実装により、クライアント証明書ベースの暗号化を使用してAPIを保護する。コンテンツ配信ネットワーク (CDN) およびDDoS緩和サービスのプロバイダは、ネットワークを通過する1秒あたり1800万件のリクエストの50%がAPIに向けられており、その大部分が悪意のあるものとしてブロックされていると主張している。新しいサービスでは、特定のIP、国、または問題のある署名のあるリクエストからのリクエストのみをブロックするのではなく、既知の認定エンティティからのリクエストを許可する。ポジティブセキュリティモデルの利点について、Cloudflareの製品管理ディレクタであるPatrick Donahue氏とCloudflareの製品マネージャーであるDaniele Molteni氏は次のように説明している:
APIにポジティブセキュリティモデルを実装することは、クレデンシャルスタッフィング (Credential Stuffing) 攻撃やその他のオートスキャンツールのノイズを排除するための最も直接的な方法です。そして、ポジティブモデルに向けた最初のステップは、パスワードの再利用や共有に対して脆弱ではない相互TLS認証 (mutual TLS) などの強力な認証を展開することです。
API Shieldでアプリケーションを保護するには、開発者はホストのmTLSを有効にし、Cloudflareの公開鍵基盤を使用してCloudflareダッシュボードでクライアント証明書を作成し、新しい証明書を使用するようにクライアントを構成し、そして、APIが有効なクライアント証明書を提示を要求する必要なCloudflareファイアウォールルールを作成する必要がある。
出典: https://blog.cloudflare.com/introducing-api-shield
正規のクライアントのみを許可することに加えて、API Shieldは、サービスのクエリーパラメータ、POSTのボディが予期したスキーマルールに対して一致するかを、APIスキーマ検証を使用して、APIが意図したとおりに呼び出されているかどうかを検証できる。スキーマ検証は、JSONペイロードのみクローズドベータ版で使用できる。
セキュリティ研究者であり、Hack with Githubの創設者であるChandrapal Badshah氏は、APIエンドポイントを保護するためのShieldの利点だけでなく、いくつかの制限についても強調している:
mTLSはどのように役立つのでしょうか ? それはあなたのアプリケーションへのDoS/DDoSをある程度防ぐことができます (...) この機能は何に役立たないでしょうか ? 100%のAPIセキュリティ、論理的なバグと設定ミス、および異なるエンコーディングのPOST本文を使用したリクエストによるその他のAPIバグです。開発者の場合、この機能を使用すると、アプリに依存関係のレイヤーが追加されます (PKIがダウンし/侵害されます) 。
API Shieldは現在Cloudflareが発行した証明書を必要とする。これは無料で、すべてのアカウント保有者が利用できる。Cloudfrontは、顧客が独自のPKIを使用し、将来的に独自のCAをインポートできるようにすることを計画しているが、まだ予定日は確定していない。