デジタル技術によりビジネスが発展する中で、アプリケーションの脆弱性を狙う不正行為も日々進化しています。中でも、ビジネスロジック攻撃(BLA)は特に顕著です。SQLインジェクションのように特定の形やパターンで検知できる攻撃とは違い、BLA はアプリケーションの機能に対して、正しいトラフィックの動きを真似て、アプリケーションのロジックに合わせて攻撃を行います。これにより、従来のセキュリティ製品を回避することが可能となります。この記事では、従来のセキュリティ製品ではBLAを検知するのが難しい理由とどのようにして対策すべきかについて説明します。

ビジネスロジック攻撃(BLA)に対する従来のセキュリティ製品が持つ課題

1.シグネチャベースの課題:BLAがシグネチャベースでは対応できない理由

従来のセキュリティ製品におけるシグネチャによる検知は、既知のマルウェアやネットワーク攻撃に対しては有効です。しかし、アプリケーション特有のロジックへの攻撃の場合、事前にシグネチャやパターンの作成が困難です。、BLA はアプリケーション毎に大きく異なる可能性があるため、シグネチャベースの検知では効果がありません。

例えば、銀行のアプリケーションには、資金の移動やローンの承認などの処理があります。この仕組みをよく理解していれば、その手順を利用してお金を自分の口座に移動させることも可能かもしれません。このようなパターンの攻撃は、銀行アプリケーション特有の仕組みを不正に使用するため、シグネチャでは対策が難しくなります。

解決策:このような脆弱性を見つける方法は、セキュリティテストとコードの確認を定期的に行い、新しい機能を導入する前に、テストと確認を行うことです。また、ランタイム・アプリケーション・セルフ・プロテクション(RASP)や、インタラクティブ・アプリケーション・セキュリティ・テスト(IAST)のような技術を使って、アプリケーションの中の脆弱性を詳細に調査し、特定することも有効です。

2.リクエストのコンテキストを用いた対応に関する課題:BLAの検知

一般的なWebアプリケーションファイアウォール(WAF)のようなシグネチャベースのセキュリティ製品は、既知の攻撃方法やシグネチャを基に動作します。ところが、BLAはアプリケーション特有のロジックを利用するので、リクエストなどのコンテキストやその状況に依存してしまいます。攻撃者はユーザーの通信を分析すれば、通常のリクエストの中に隠れてアクセスできます。このような場合、悪意のあるリクエストと正常なリクエストを見分けるのは困難です。

例えば、電子商取引のサイトで、ショッピングカートの機能を利用し、高価商品を大量にカートへ追加するようなビジネスロジック攻撃を可能にします。。これにより、商品の在庫がなくなり、経済的な打撃を与えることができます。このリクエストは表面上、正常な動きとして見えるため、これまでのセキュリティ製品で見分けることは難しいかもしれません。

解決策:高額な商品を大量にカートに加えた場合に通知する異常検知システムが考えられます。標準的なユーザーの行動パターンを把握し、それから外れる動きを分析する場合に、ビジネスロジックへの攻撃として警告を表示させることが可能です。

3.システム間の相互作用:BLAによる攻撃の仕組み

BLAは、アプリケーション内の正当な機能を不正に利用することで、悪意を持った攻撃者が本物のユーザーのように振る舞い、攻撃することができます。シグネチャベースの製品は、頻繁に発生するセキュリティのインシデントの検知に特化しており、アプリケーションのさまざまなプロセス、システム、ユーザーの関連性を捉える事には適していません。

例えば、ライドシェアのアプリケーションでは、運賃を下げるために計算方法を操作するようなBLAも考えられます。ユーザーの入力、価格設定の方法、決済手段の間でのトランザクションが相互に作用しおり、システムの処理は非常に複雑なものとなります。。そのため、一つ一つのリクエストから不正を判断するような従来のセキュリティ製品では、こうしたリスクを見つけるのは難しくなります。

解決策:一連のトランザクションで異なるパターンを認識できる分析方法が必要になります。アプリケーションが通常どのように動くかを理解し、異常を見つける方法を使用することで、企業はBLAを示唆する怪しいリクエストに対して早めに検知する事ができます。

4.外部指標の利用が困難:BLAはいかにして検知を逃れるか

BLAは、シグネチャベースで用いられるネットワークトラフィックの異常や既知の悪意あるIPアドレスのような、外部からの指標では対応が出来ません。BLAではアプリケーションの特有の構造や弱点を利用するため、これらの指標を簡単に避けることが可能です。そのため、このような指標だけを使う従来のセキュリティ製品では、このタイプの攻撃を見逃してしまう可能性が高いです。

例えば、正規のユーザーのアカウントから、APIを使って他のアカウントにアクセスする手法が考えられます。このようなタイプは、外部指標だけを利用する従来のセキュリティ製品を避けることが可能です。

解決策:アクセス管理や認証の仕組みを強化することで、アプリケーションへの不正なアクセスを阻止できます。また、ユーザーの行動を定期的に監視し、その行動が突然変わっていないかなどの怪しいと思われる動きもセキュリティの指標として用いることが可能です。

5.誤検知の問題:シグネチャベースのセキュリティ製品の限界

BLAを検知するには、従来のセキュリティ製品だけでは不十分です。アプリケーションの内部的な動きに対する洞察が欠如している為、BLAを正確に特定してアラートを出すのが難しいためです。また、逸脱した動作はBLAの可能性がありますが、それが攻撃なのかそれとも正常なリクエストなのかの判断は、さらなる指標を用いた分析が必要です。正常なユーザーのアクションや、システムのエラー、ビジネス要件の変化も、アラートを引き起こすことがあり、正常な内容を把握しなければ誤検知が増えてしまいます。これらの誤検知を分析するのは、セキュリティ担当者のリソースと時間の多く消費してしまいます。また、徐々にアラートに慣れてしまうことで、本物の攻撃を見落としてしまうリスクも高まります。

解決策:AIの技術を取り入れることで、誤検知を少なくすることができます。過去のデータ、利用状況の把握、ユーザーの動きの分析をすることで、インシデントに対する対応の優先度を適切に決め、調査をスムーズに進めることが可能になります。

BLAに対する事前対策

BLAは、コンテキストに依存する性質や一貫した特徴がないことで特徴づけられます。さらに、外部指標の利用が難しく、誤検知のリスクもあります。これらの特性により、通常のセキュリティ製品を用いた検知が難しくなっています。このタイプの攻撃を防ぐためには、Webアプリケーションファイアウォールやボットへの対策、APIセキュリティなどをすべて統合したマルチレイヤーのセキュリティ製品の採用が必要です。個別のセキュリティ手段の限界をきちんと理解して対策を取ることで、セキュリティを向上させ、進化し続けるBLAのリスクから情報資産を守ることが可能になります。