リスクの高い4つの攻撃タイプを認識して撃退する方法
長年にわたり、さまざまな業界の企業を保護してきた経験から、4種類のもっとも一般的な攻撃タイプを特定し、それらに対する対策を講じてきました。今回は、私たちが直面している攻撃の種類と、それらから Web アプリや API を保護するための対策をご紹介します。
1. クレデンシャルスタッフィング
Verizon の2021 Data Breach Investigation Report」によると、現在、セキュリティ侵害の80%以上が盗まれた認証情報を使用して機密データにアクセスしています。攻撃者はこれらの認証情報を利用して、アカウントの乗っ取りや個人の IoT デバイスへのアクセス、アカウント回復用メールアドレスへのアクセスによる連鎖的な攻撃などを行います。クレデンシャルスタッフィングは、アカウント乗っ取り攻撃の主な手口ですが、攻撃の兆候は辞書攻撃やブルートフォース攻撃のパスワード推測とは異なります。
一般的に、クレデンシャルスタッフィング攻撃は頻繁に多数の IP アドレスに分散して行われるため、単一の送信元が大量の盗まれた認証情報をテストしているわけではありません。攻撃の指標としては、通常とは異なる地域のユーザーからのログイン試行や、想定以上の回数のログイン失敗などが挙げられます。また、疑わしい IP アドレスからのログインが成功している場合も手がかりとなります。
すべてのアクセスを完全にブロックするのではなく、より柔軟な調整が可能な方法で、ログインの試行が正規のユーザーによるものかを確認できるようにする必要があります。例えば2段階認証を使用し、ログイン試行やメールアドレスまたはパスワードのリセットリクエストなど、主要な認証作業に関するリクエストの量の基準値を設定した上でそれをモニタリングします。そして、想定されるしきい値を超えたリクエストを一時的にブロックします。そこで、特定の種類の認証イベントを可視 化できるセキュリティツールを導入することが極めて重要です。これらのツールは認証情報の不正使用を検出するのに不可欠です。
このように柔軟性の高いアプローチは、新機能のロールアウト、コードへのパッチ適用、攻撃のブロックを可能な限り短時間で行うことを重視する企業にとって特に重要です。また、アプリケーションの開発やデプロイ、管理に DevOps プロセスを使用している場合、問題や修正をトラックするために、コミュニケーションチャネルにアラート機能を統合する必要があります。DevOps サイクルにリアルタイムのフィードバックを提供するアプリケーション・セキュリティ・ツールを使用することで、アプリケーションのセキュリティ侵害が起きてから対処するのではなく、セキュリティ問題にリアルタイムで対処できるようになります。
2. API の悪用
ネイティブのモバイルアプリケーションやシングルページの Web アプリケーショ ンの急激な普及に伴い、API を介してデータにアクセスしようとする傾向が強まっています。アプリケーションがクラウドインフラにデプロイされ、特定の開発チームや DevOps チームによって管理されるようになり、RESTful API やマイクロサービスが急増しています。このような API の普及により、API に対する攻撃も急激に増加しています。実際、インジェクション攻撃は、OWASP Top 10 と API Security Top 10 の両方のリストに、トップセキュリティリスクとして含まれています。
ブルートフォース攻撃では、検出した重要な API サービスにリクエストを大量に送信し、重要なリソースにアクセスできないようにしてアプリケーションを機能できない状態にします。より巧妙な手口で正当に見えるリクエストを送信してデータを盗み出し、自らの目的に API を利用しようとする攻撃者もいます。多くの場合、攻撃者は、ユーザーアカウントや消費者特典などのリソースの識別子が推測可能な API を探します。API のセキュリティが不足していたり、認証メカニズムが正常に機能していない場合、システムが悪用される可能性が高まります。
API への攻撃は、一見すると正当なリクエストのように見えますが、奇妙なパターンが含まれていたり、期限切れの認証情報が使用されていたり、正規のトラフィックよりはるかに頻繁に発生します。API への 攻撃の指標には、異常な量の API リクエスト、無効な API リクエスト、不適切な Cookie、信頼できないデバイスからの接続試行などが挙げられます。問題が発生していることを示す別の兆候としては、適切な認証を受けておらず、予期しない地域から送信されたり、保護されたデータにアクセスしようとする API リクエストがあります。
顧客がクラウドベースのアプリケーションにアクセスできなくなる状況を避けるため、初期の対策として、不信な IP アドレスや攻撃クラスターを調査し、攻撃のパターンを把握することで、より広範な対策を取ることが可能になります。ルールを簡単に作成できる WAF を使用して、IP アドレスや組織がビジネスを展開していない地域を基準に、攻撃パターンや API アクセスをブロックします。
3. SQL インジェクション
Web サイトの大半は、バックエンドの SQL データベースに接続しています。ユビキタスな SQL データベースは貴重な情報を含んでいるため、攻撃者は Web サイトを通じて SQL データベースにアクセスしようとします。攻撃者は SQL インジェクション攻撃によって、商品に関する機密データ (在庫情報など) を取得したり、ユーザーのデータ (住所、電話番号、クレジットカード情報など) を収集したり、ユーザー名やパスワードを盗んだりします。
攻撃を自動ブロックするには、精度の高い検出機能が必要です。単純なパターンマッチングでも SQL インジェクションを検出することは可能ですが、誤検知が発生しやすく、新しい攻撃を見逃してしまう可能性もあります。リクエストのしきい値超過をベースに攻撃をブロックできることが不可欠です。攻撃のパターンに応じてインシデントを精査し、特定のグループが自社のデータアセットを狙っているのかを判断し、そのような試みからアセットを保護する必要があります。
4. ビジネスロジック
ビジネスロジックに対する攻撃では、攻撃者はアプリの仕組みを理解し、設計の特定部分を悪用して目的を達成しようとします。多くの場合、攻撃者は公開されている機能を利用して情報を盗んだり、アカウントにアクセスしたり、サービスを中断させたり、不正な方法でアプリを悪用します。
例えば、セッションのステートを維持するためにサーバーに送信されるパラメータをリバースエンジニアリングすることで、攻撃者は昇格した権限を得ることが可能です。ユーザープロファイルに応じて割引を行う eコマースサイトでは、攻撃者はプロファイルを変更することで、割引を利用できるようになります。また、コンサート会場の座席を5分間確保するアプリを操作して、攻撃者は大量のチケットを予約することができます。
ビジネスロジックの悪用は、アプリケーションの有効な機能を利用するため検出が困難です。企業を保護するには、アプリケーションの乱用を示す指標を追跡し、アプリのリソース使用量やパフォーマンスの問題、異常な API コールやサービスの使用など、潜在的リスクを伴うリクエストをチェックできるアプリケーションのコントロール機能を導入する必要があります。
攻撃を検出した場合、対策を講じてアプリケーションをアップデートするまでの間、特定のルールを用いて悪用をブロックすることが可能です。最良のセキュリティツールでは、アプリケーションから抽出されるシグナルに基づいてルールを定義することができます。これらのシグナルには、ユーザーとのインタラクションやユーザーエージェント、リクエストパラメータ、Cookie、その他攻撃者に関連するデータなどの外部データが含まれます。これらのルールを導入することで、攻撃に対する可視性を高め、自動アクションを定義してアプリケーションを悪用しようとする悪意のある試みを検出してブロックすることができます。
Web 保護に最適なツールの選択
アプリケーションやクラウドインフラへの攻撃を可視化するには、柔軟に導入でき、エッジツールと連携して通常では検出が困難な攻撃をキャッチできるセキュリティツールが必要です。また、エンジニアはバグの修正やアプリケーションの改善に役立つ実行可能なデータを必要としています。最良の Web セキュリティツール使用することで、潜在的な攻撃に関するデータを意思決定者に提供すると同時に、問題に仮想パッチを適用してアプリケーションを保護できます。これにより、攻撃者がどのように Web レイヤーのアセットを不正な目的のために利用しようとしているのかをすべての関係者が把握できるようになります。