過去5年間でデジタル化は急速に進歩し、2020年には新型コロナウイルス感染症拡大に伴うロックダウンが、これらの進化を一層加速させました。

その結果、オンラインサービスの品質や情報アクセスの利便性が向上しましたが、同時に新たなセキュリティの課題も浮かび上がっています。また、デジタル環境の発展やアプリケーションの複雑化に伴い、サイバー犯罪者の手口もより巧妙になっています。

現在広がっている攻撃手法のうち、特に注目すべきがビジネスロジック攻撃(BLA: Business Logic Attack)です。これは、従来の攻撃に比べて検知や阻止が難しい新たなサイバー攻撃手法の一つです。認証プロセスをすり抜けて権限を昇格させ、機密情報にアクセスすることで、アプリケーション内のビジネスロジックを悪用します。具体的には、認証バイパス(Authentication Bypass)などが、この種の攻撃に含まれます。

ビジネスロジック攻撃は何が新しいのか?

ビジネスロジックとは、ユーザーインタフェースの動作や他システムとの相互作用などを定義するルールやアルゴリズムを指します。ビジネスロジックは、データの変換および計算方法や、アプリケーションのワークフローなどを決定するアプリケーションの中核部分であるため、サイバー攻撃の標的にもなりやすいのです。

そして、ビジネスロジック攻撃は、従来の攻撃手法とは異なり、既知のシグネチャや攻撃パターンに依存せず、技術的な脆弱性を突くのではなく、アプリケーションの意図的な機能やプロセスを悪用します。これらの攻撃は、正当なトラフィックの振る舞いを模倣し、各アプリケーションのロジックに合わせてワークフローを操作し、通常のセキュリティアラートを発生させることなく実行されるのが一般的です。

ビジネスロジック攻撃は、各アプリケーションとその特定のビジネスロジックに固有であるため、事前に定義されたシグネチャやパターンを利用して攻撃を検知する従来のセキュリティツールでは検知や阻止が困難です。

従来のセキュリティ対策、例えばWeb Application Firewall(WAF)などは、既知の脆弱性や攻撃パターンを検知し、それに基づいてアプリケーションを保護するように設計されています。しかし、ビジネスロジック攻撃は、セッション中の複数のAPIコールにまたがって実行されることが多く、典型的な攻撃パターンに従わないため、従来の対策方法では特定や阻止が難しいのが課題です。

ビジネスロジック攻撃は、個人情報や財務情報を含む機密データを盗むことで、企業の評判、顧客の信頼、収益などに深刻な影響を及ぼす可能性があります。また、ビジネスロジック攻撃による損害は修復が困難であることも少なくありません。そのため、このような攻撃を未然に防ぐための対策が極めて重要です。

ビジネスロジック攻撃からアプリケーションを守る事前対策

企業は以下のような事前対策を実施することで、ビジネスロジック攻撃からアプリケーションを保護することができます。

(1)ビジネスロジックの理解

潜在的な脆弱性を特定するには、アプリケーションのワークフロー、プロセス、ユーザー行動などを把握することが不可欠です。例えば、ライドシェアアプリの場合、運賃計算ロジックを操作することで、料金を不正に下げるビジネスロジック攻撃が考えられます。

このような攻撃は非常に複雑で、ユーザー入力、料金設定アルゴリズム、決済ゲートウェイといった要素を通じて実行されます。事前にアプリケーションの正常な動作を定義し、不正な動作を検知するアルゴリズムを導入することで、ビジネスロジック攻撃の疑いがある異常な活動を特定することができます。

(2)高度なアプリケーションセキュリティの導入

ビジネスロジックやAPIを標的とする自動化された高度な攻撃を迅速に特定して阻止するには、ボットやAPIの管理ツールへの投資が不可欠です。また、アプリケーションのロジックを十分に理解していない従来のツールでは、ビジネスロジック攻撃を正確に識別することが難しく、誤検知によるアラートを多発させてしまう可能性があります。

高度なセキュリティソリューションを採用し、機械学習アルゴリズムに基づくインテリジェントなアラート設定を利用することで、誤検知を減らすことができます。

(3)ユーザー行動の定期的な監視・分析

ビジネスロジックを標的にする攻撃者は、APIコールを操作し、正当なユーザーアカウントを悪用することがあります。このような攻撃は、外部脅威を識別するために設計された従来のセキュリティ対策では検知できません。

そのため、ユーザー行動を定期的に監視し、行動パターンの変化、異常なアクセス試行、疑わしい行動など検出するツールや技術を採用することが推奨されます。

(4)セキュリティテストとコードレビュー

例えば、銀行アプリケーションにおいて資金移動やローン承認などのワークフローを理解している攻撃者は、これらのワークフローを悪用して資金を不正に移動させる可能性があります。

このような攻撃は、銀行アプリケーションの特定のロジックを悪用するため、事前に定義されたシグネチャを持ちません。本番環境に新機能をデプロイする前に、セキュリティテストとコードレビューを実施し、その後も徹底的に継続することで、ロジック内の潜在的な脆弱性を特定することが重要です。

また、RASP(Runtime Application Self-Protection)やIAST(Interactive Application Security Testing)など、 脆弱性をリアルタイムで特定・分析できる技術を活用することで、これらをより効率的に実行できます。

(5)アクセスをセグメント化・制御

APIの範囲を限定し、ユーザーの権限に基づいたアクセス管理を行うことで、ビジネスロジック攻撃による損害を最小限に抑えることができます。

現在、オンラインセキュリティについて消費者の意識が高まっており、攻撃に晒された場合でも、その影響を最小限に抑えることは、信頼維持や顧客満足度の観点から重要です。

多層的セキュリティアプローチの重要性

ビジネスロジック攻撃は急速に広がっており、アプリケーションやAPIセキュリティに対する大きな脅威となっています。さらに、分散したマイクロサービス、マルチクラウドのアーキテクチャ、API利用の急増などが、ビジネスロジックのセキュリティ課題を一層複雑にしています。

このように複雑で入り組んだアプリケーション環境で発生するビジネスロジック攻撃に効果的に対応するためには、単一のセキュリティ対策だけでは不十分です。WAF、ボット対策、APIセキュリティを含む多層的なセキュリティアプローチが、今後ますます必要となっていくでしょう。

著者プロフィール


Imperva Japan シニアセールスエンジニア 伊藤 秀弘