APIをボット攻撃から安全に保つ方法

0
711

This post is also available in: 英語

モバイルやIoTデバイスの普及、パブリッククラウドでホストされる「サーバーレス」アーキテクチャの台頭、マシン間通信への依存度の高まりなどが、現代のアプリケーション・アーキテクチャの変化の理由となっています。

アプリケーション・プログラミング・インターフェース(API)は、異なるアプリケーション・アーキテクチャ間の通信を容易にする架け橋として登場しました。APIは、より迅速な統合と新しいサービスの迅速なデプロイを可能にします。さらに、DevOpsでは、サービスのプロビジョニング、プラットフォーム管理、および継続的なデプロイメントのためにAPIを活用したエンド・ツー・エンドのプロセス自動化が必要となります。

APIは急速に普及しているにもかかわらず、その保護が不十分なままであり、自動化ゆえの脅威が増大しており、個人を特定できる情報(PII)、クレジットカードなどのペイメントカードの詳細、ビジネスに不可欠なサービスがボット攻撃によって危険にさらされています。

APIに対するボット攻撃の症状

  • 単一の HTTP リクエスト (一意のブラウザ、セッション、またはデバイスから)
  • エラーの発生率の増加 (HTTP ステータスコード 404、データ検証の失敗、認証の失敗など)
  • 単一の IP アドレスまたは API トークンからの非常に高いアプリケーション使用率
  • 大規模で分散したIPアドレスからのAPI利用が急増
  • 正規ユーザーと比較して、ユーザー/セッション/IPアドレス/APIトークンに対するGET/POST/HEADリクエストの割合が高い。

鍵となるAPIの脆弱性と自動化された攻撃

認証の欠陥とアカウントの乗っ取り

多くのAPIは、リクエストが本物のユーザーから来た場合、認証状態をチェックしません。攻撃者は、セッションハイジャックやアカウントアグリゲーションなど、さまざまな方法でこのような欠陥を悪用して、本物の API 呼び出しを模倣します。攻撃者は、APIがどのように呼び出されるかを発見するために、モバイルアプリケーションのリバースエンジニアリングも行います。APIキーがアプリケーションに埋め込まれている場合、API違反が発生する可能性があります。APIキーをユーザー認証に使用してはいけません。サイバー犯罪者は、ユーザーアカウントを乗っ取るためのクレデンシャルスタッフィング攻撃も行います。

強固な暗号化の欠如。

多くのAPIは、APIクライアントとサーバー間の強固な暗号化を欠いています。攻撃者は中間者攻撃によって脆弱性を悪用します。攻撃者は、暗号化されていない、あるいは保護されていないAPIトランザクションを傍受して、機密情報を盗んだり、トランザクションデータを改ざんしたりします。また、モバイルデバイス、クラウドシステム、マイクロサービスパターンのユビキタスな使用は、多様なウェブアプリケーション間の相互運用性を促進するために複数のゲートウェイが関与しているため、APIセキュリティをさらに複雑にしています。これらすべてのチャネルを流れるデータの暗号化が最も重要です。

ビジネスロジックの脆弱性。

APIはビジネスロジックの悪用に対して脆弱です。これこそが、専用のボット管理ソリューションが必要な理由であり、ウェブアプリとモバイルアプリの両方に適したヒューリスティック検知を適用することで、多くのエラー、つまり偽陽性と偽陰性が発生してしまう理由です。

劣悪なエンドポイントセキュリティ。

ほとんどのIoTデバイスやマイクロサービスツールは、APIチャネルを介してサーバーと通信するようにプログラムされています。これらのデバイスは、クライアント証明書を使用してAPIサーバー上で自己認証を行います。ハッカーは、IoT エンドポイントから API を制御しようとしますが、成功すれば、API の順序を簡単に再シーケンスすることができ、データ侵害につながります。

APIセキュリティチェックリスト

これらのトップ9のベストプラクティスは、ハッキングや悪用からAPIインフラストラクチャを保護するために必要なものです。

  • 自動化されたスクリプト(ボット)からのAPIコールを監視し、管理
  • プリミティブ認証の削除
  • 洗練された人間のようなボットによるAPIアクセスを防ぐための対策を実施
  • 強固な暗号化が重要
  • IP数、セッション数、トークン数に応じてAPIアクセスを制限する機能を備えたトークンベースのレートリミッティングを導入。
  • リクエストとレスポンスの包括的なログ
  • 受信要求をスキャンして悪意のある意図があるかどうかを調査
  • クラスタ化されたAPIの実装をサポートし、フォールトトレランスを処理
  • APIコールの使用状況とジャーニーを追跡して異常を発見

返事を書く

Please enter your comment!
Please enter your name here