SCW アイコン
ヒーロー背景(区切りなし)
ブログ

코더들이 보안을 정복하다: Share & Learn 시리즈 - 비즈니스 로직 문제

Jaap Karan Singh
2019年3月28日 掲載
最終更新日: 2026年3月9日

この「Share & Learn」シリーズで取り上げた他の多くの脆弱性とは異なり、ビジネスロジックの問題は、コーディングエラーとは直接関係ありません。コーディングの問題が問題の一部である場合もありますが、ビジネスロジックのエラーは、アプリが最初に作成されたときの設計上の欠陥や誤った論理的仮定の結果であることがほとんどです。

ビジネスロジックの問題は、ユーザーがアプリケーションを使用する際に予期しない行動をとった場合に発生します。例えば、予期せず注文をキャンセルしたり、クーポンコードを何度も適用したり、あるいは単に予期されたステップをスキップして、アプリケーションがどのように処理したらよいかわからないアクションをとったりすることです。ビジネスロジックの欠陥を利用するためには、トレーニングを受ける必要はありません。

このエピソードでは、以下のことを学びます。

  • ビジネスロジックの欠陥を攻撃者がどのように利用するか
  • ビジネスロジックに欠陥のあるアプリケーションが危険な理由
  • ビジネスロジックのエラーを防ぐためのテクニック

攻撃者はどのようにしてビジネスロジックの問題を利用するのか?

多くのエクスプロイトとは異なり、この脆弱性の原因となる特定のコード文字列を指摘することはできません。むしろ、ユーザーが想定外のアクションを起こし、プログラムがその処理方法を知らないことが原因となります。例えば、銀行のアプリケーションで、ユーザーが他の口座にお金を送金できるとします。しかし、悪意のあるユーザが、お金を送るのではなく、マイナスの金額を他の口座に送ろうとしたとします。銀行のアプリケーションはどのように反応するでしょうか。クラッシュするでしょうか?送金を拒否するでしょうか。それとも、実際に送金を開始したユーザにお金を送り返して、そのマイナス分のバランスを取るのでしょうか?

E-コマースサイトは、多くのユーザーが利用することを想定して設計されており、多くのコンポーネントが存在するため、ビジネスロジックの欠陥の影響を受けやすいという特徴があります。ユーザーが突然注文をキャンセルしたり、1つのクーポンを何度も適用しようとしたり、さらにはショッピングカートをオーバーロードしたりすると、アプリケーションは予期していなかった状況に陥ります。未知の状況に直面したときに、プログラムがどのように反応するかを知る方法は、実際にはありません。最善のシナリオはエラーメッセージを出すことかもしれませんが、アプリが商品を無料で提供するなど、より悪い行動を取らないという保証はありません。

なぜビジネスロジックの問題は危険なのか?

ビジネスロジックの問題は、プログラミングやハッカーの訓練を受けていない人でも、誰でも悪用することができるため、非常に危険です。実際に必要なのは、実験と時間をかけて、アプリケーションが反応するように設計されている方法の欠陥を見つけることだけです。悪意のあるユーザがサイトのビジネスロジックの欠陥を発見したら、それを可能な限り利用することは間違いありません。

最も危険なのは通常、金銭的な問題です。ユーザーが大画面テレビを20台も購入していて、その代金を支払っていないなどの問題です。しかし、ビジネスロジックの欠陥は、他の問題を引き起こすこともあります。例えば、サイトを保護するパスワード機能が、ユーザーがキャンセルを連発した場合の対処法を知らない場合、ログインプロセスを完全に回避させてしまう可能性があります。

ビジネスロジックの問題がどれほどの損害をもたらすかを予測する方法は、実際にはありません。多くの場合、問題の最初の兆候は、ユーザーがそれらを悪用した後に起こります。

ビジネスロジックの問題を解決する

残念ながら、ビジネスロジックの問題のテストは簡単には自動化できないため、脆弱性スキャナのような一般的なツールを使っても、ビジネスロジックの問題を特定したり修正したりすることはできません。これらを回避する最善の方法は、アプリケーションが開発されている間に、ネガティブなテストケースに対して、適切な計画、エラー処理、およびテストを実施することです。このためには、まず、アプリケーションが取るように設計されたすべての可能なアクションと望ましいアクションを含む、明確に定義されたビジネスルールのセットが必要です。

ビジネス・ルール・プランを用いて、ビジネス・ロジックの欠陥を防ぐ最善の方法の一つは、アプリケーション内でデータやトランザクションがどのように流れるかを示すフローチャートを作成することです。これには、ユーザーが選択したりデータを入力したりするすべてのインスタンスの動作のモデル化が含まれます。フロー図の中の可能なアクションが、ビジネスルールプランの中の機能と一致しているかどうかを常にチェックします。

最後に、設計、実装、テストの各段階で、ビジネスロジックの欠陥を特定するために、脅威モデルを使用します。フェイルセーフとして、プログラムが想定外の状況に遭遇した場合に取るべきアクションを作成します。これは、アクションを拒否し、発生した問題について管理者に警告するという単純なものです。

ビジネスロジック問題の詳細情報

さらに読みたい方は、ビジネスロジック問題に関するOWASPのページをご覧ください。また、サイバーセキュリティチームを究極のサイバー戦士に育成するSecure Code Warrior プラットフォームの無料デモで、新たに得た防御の知識を試すこともできます。この脆弱性やその他の脅威の対策についての詳細は、Secure Code Warrior ブログをご覧ください。

今すぐビジネスロジックの脆弱性を探して破壊する準備はできていますか?プラットフォームに向かい、自分のスキルを試してみましょう。[Start Here]

リソースを見る
リソースを見る

코딩 문제가 문제의 일부일 수 있지만 비즈니스 로직 오류는 대부분 앱을 처음 만들 때 설계 결함이나 잘못된 논리적 가정으로 인해 발생합니다.

もっと興味がありますか?

Jaap Karan Singhは、Secure Coding Evangelistであり、Chief Singhであり、Secure Code Warrior の共同設立者です。

もっと詳しく

セキュアコードウォリアーは、ソフトウェア開発ライフサイクル全体を通じてコードを保護し、サイバーセキュリティを最優先とする文化を組織に根付かせるために存在します。AppSec管理者、開発者、CISO、あるいはセキュリティに関わるあらゆる立場の方々に対し、組織が安全でないコードに関連するリスクを軽減できるよう支援します。

デモ予約
共有対象:
リンクトインのブランドソーシャルx ロゴ
作成者
Jaap Karan Singh
2019年3月28日発行

Jaap Karan Singhは、Secure Coding Evangelistであり、Chief Singhであり、Secure Code Warrior の共同設立者です。

共有対象:
リンクトインのブランドソーシャルx ロゴ

この「Share & Learn」シリーズで取り上げた他の多くの脆弱性とは異なり、ビジネスロジックの問題は、コーディングエラーとは直接関係ありません。コーディングの問題が問題の一部である場合もありますが、ビジネスロジックのエラーは、アプリが最初に作成されたときの設計上の欠陥や誤った論理的仮定の結果であることがほとんどです。

ビジネスロジックの問題は、ユーザーがアプリケーションを使用する際に予期しない行動をとった場合に発生します。例えば、予期せず注文をキャンセルしたり、クーポンコードを何度も適用したり、あるいは単に予期されたステップをスキップして、アプリケーションがどのように処理したらよいかわからないアクションをとったりすることです。ビジネスロジックの欠陥を利用するためには、トレーニングを受ける必要はありません。

このエピソードでは、以下のことを学びます。

  • ビジネスロジックの欠陥を攻撃者がどのように利用するか
  • ビジネスロジックに欠陥のあるアプリケーションが危険な理由
  • ビジネスロジックのエラーを防ぐためのテクニック

攻撃者はどのようにしてビジネスロジックの問題を利用するのか?

多くのエクスプロイトとは異なり、この脆弱性の原因となる特定のコード文字列を指摘することはできません。むしろ、ユーザーが想定外のアクションを起こし、プログラムがその処理方法を知らないことが原因となります。例えば、銀行のアプリケーションで、ユーザーが他の口座にお金を送金できるとします。しかし、悪意のあるユーザが、お金を送るのではなく、マイナスの金額を他の口座に送ろうとしたとします。銀行のアプリケーションはどのように反応するでしょうか。クラッシュするでしょうか?送金を拒否するでしょうか。それとも、実際に送金を開始したユーザにお金を送り返して、そのマイナス分のバランスを取るのでしょうか?

E-コマースサイトは、多くのユーザーが利用することを想定して設計されており、多くのコンポーネントが存在するため、ビジネスロジックの欠陥の影響を受けやすいという特徴があります。ユーザーが突然注文をキャンセルしたり、1つのクーポンを何度も適用しようとしたり、さらにはショッピングカートをオーバーロードしたりすると、アプリケーションは予期していなかった状況に陥ります。未知の状況に直面したときに、プログラムがどのように反応するかを知る方法は、実際にはありません。最善のシナリオはエラーメッセージを出すことかもしれませんが、アプリが商品を無料で提供するなど、より悪い行動を取らないという保証はありません。

なぜビジネスロジックの問題は危険なのか?

ビジネスロジックの問題は、プログラミングやハッカーの訓練を受けていない人でも、誰でも悪用することができるため、非常に危険です。実際に必要なのは、実験と時間をかけて、アプリケーションが反応するように設計されている方法の欠陥を見つけることだけです。悪意のあるユーザがサイトのビジネスロジックの欠陥を発見したら、それを可能な限り利用することは間違いありません。

最も危険なのは通常、金銭的な問題です。ユーザーが大画面テレビを20台も購入していて、その代金を支払っていないなどの問題です。しかし、ビジネスロジックの欠陥は、他の問題を引き起こすこともあります。例えば、サイトを保護するパスワード機能が、ユーザーがキャンセルを連発した場合の対処法を知らない場合、ログインプロセスを完全に回避させてしまう可能性があります。

ビジネスロジックの問題がどれほどの損害をもたらすかを予測する方法は、実際にはありません。多くの場合、問題の最初の兆候は、ユーザーがそれらを悪用した後に起こります。

ビジネスロジックの問題を解決する

残念ながら、ビジネスロジックの問題のテストは簡単には自動化できないため、脆弱性スキャナのような一般的なツールを使っても、ビジネスロジックの問題を特定したり修正したりすることはできません。これらを回避する最善の方法は、アプリケーションが開発されている間に、ネガティブなテストケースに対して、適切な計画、エラー処理、およびテストを実施することです。このためには、まず、アプリケーションが取るように設計されたすべての可能なアクションと望ましいアクションを含む、明確に定義されたビジネスルールのセットが必要です。

ビジネス・ルール・プランを用いて、ビジネス・ロジックの欠陥を防ぐ最善の方法の一つは、アプリケーション内でデータやトランザクションがどのように流れるかを示すフローチャートを作成することです。これには、ユーザーが選択したりデータを入力したりするすべてのインスタンスの動作のモデル化が含まれます。フロー図の中の可能なアクションが、ビジネスルールプランの中の機能と一致しているかどうかを常にチェックします。

最後に、設計、実装、テストの各段階で、ビジネスロジックの欠陥を特定するために、脅威モデルを使用します。フェイルセーフとして、プログラムが想定外の状況に遭遇した場合に取るべきアクションを作成します。これは、アクションを拒否し、発生した問題について管理者に警告するという単純なものです。

ビジネスロジック問題の詳細情報

さらに読みたい方は、ビジネスロジック問題に関するOWASPのページをご覧ください。また、サイバーセキュリティチームを究極のサイバー戦士に育成するSecure Code Warrior プラットフォームの無料デモで、新たに得た防御の知識を試すこともできます。この脆弱性やその他の脅威の対策についての詳細は、Secure Code Warrior ブログをご覧ください。

今すぐビジネスロジックの脆弱性を探して破壊する準備はできていますか?プラットフォームに向かい、自分のスキルを試してみましょう。[Start Here]

リソースを見る
リソースを見る

レポートをダウンロードするには、以下のフォームにご記入ください。

当社製品および/または関連するセキュリティコーディングのトピックに関する情報をお送りするため、お客様の同意を求めます。当社は常に、お客様の個人情報を最大限の注意を払って取り扱い、マーケティング目的で他社に販売することは一切ありません。

提出
SCW成功アイコン
SCWエラーアイコン
フォームを送信するには「Analytics」クッキーを有効にしてください。完了後、いつでも再度無効にできます。

この「Share & Learn」シリーズで取り上げた他の多くの脆弱性とは異なり、ビジネスロジックの問題は、コーディングエラーとは直接関係ありません。コーディングの問題が問題の一部である場合もありますが、ビジネスロジックのエラーは、アプリが最初に作成されたときの設計上の欠陥や誤った論理的仮定の結果であることがほとんどです。

ビジネスロジックの問題は、ユーザーがアプリケーションを使用する際に予期しない行動をとった場合に発生します。例えば、予期せず注文をキャンセルしたり、クーポンコードを何度も適用したり、あるいは単に予期されたステップをスキップして、アプリケーションがどのように処理したらよいかわからないアクションをとったりすることです。ビジネスロジックの欠陥を利用するためには、トレーニングを受ける必要はありません。

このエピソードでは、以下のことを学びます。

  • ビジネスロジックの欠陥を攻撃者がどのように利用するか
  • ビジネスロジックに欠陥のあるアプリケーションが危険な理由
  • ビジネスロジックのエラーを防ぐためのテクニック

攻撃者はどのようにしてビジネスロジックの問題を利用するのか?

多くのエクスプロイトとは異なり、この脆弱性の原因となる特定のコード文字列を指摘することはできません。むしろ、ユーザーが想定外のアクションを起こし、プログラムがその処理方法を知らないことが原因となります。例えば、銀行のアプリケーションで、ユーザーが他の口座にお金を送金できるとします。しかし、悪意のあるユーザが、お金を送るのではなく、マイナスの金額を他の口座に送ろうとしたとします。銀行のアプリケーションはどのように反応するでしょうか。クラッシュするでしょうか?送金を拒否するでしょうか。それとも、実際に送金を開始したユーザにお金を送り返して、そのマイナス分のバランスを取るのでしょうか?

E-コマースサイトは、多くのユーザーが利用することを想定して設計されており、多くのコンポーネントが存在するため、ビジネスロジックの欠陥の影響を受けやすいという特徴があります。ユーザーが突然注文をキャンセルしたり、1つのクーポンを何度も適用しようとしたり、さらにはショッピングカートをオーバーロードしたりすると、アプリケーションは予期していなかった状況に陥ります。未知の状況に直面したときに、プログラムがどのように反応するかを知る方法は、実際にはありません。最善のシナリオはエラーメッセージを出すことかもしれませんが、アプリが商品を無料で提供するなど、より悪い行動を取らないという保証はありません。

なぜビジネスロジックの問題は危険なのか?

ビジネスロジックの問題は、プログラミングやハッカーの訓練を受けていない人でも、誰でも悪用することができるため、非常に危険です。実際に必要なのは、実験と時間をかけて、アプリケーションが反応するように設計されている方法の欠陥を見つけることだけです。悪意のあるユーザがサイトのビジネスロジックの欠陥を発見したら、それを可能な限り利用することは間違いありません。

最も危険なのは通常、金銭的な問題です。ユーザーが大画面テレビを20台も購入していて、その代金を支払っていないなどの問題です。しかし、ビジネスロジックの欠陥は、他の問題を引き起こすこともあります。例えば、サイトを保護するパスワード機能が、ユーザーがキャンセルを連発した場合の対処法を知らない場合、ログインプロセスを完全に回避させてしまう可能性があります。

ビジネスロジックの問題がどれほどの損害をもたらすかを予測する方法は、実際にはありません。多くの場合、問題の最初の兆候は、ユーザーがそれらを悪用した後に起こります。

ビジネスロジックの問題を解決する

残念ながら、ビジネスロジックの問題のテストは簡単には自動化できないため、脆弱性スキャナのような一般的なツールを使っても、ビジネスロジックの問題を特定したり修正したりすることはできません。これらを回避する最善の方法は、アプリケーションが開発されている間に、ネガティブなテストケースに対して、適切な計画、エラー処理、およびテストを実施することです。このためには、まず、アプリケーションが取るように設計されたすべての可能なアクションと望ましいアクションを含む、明確に定義されたビジネスルールのセットが必要です。

ビジネス・ルール・プランを用いて、ビジネス・ロジックの欠陥を防ぐ最善の方法の一つは、アプリケーション内でデータやトランザクションがどのように流れるかを示すフローチャートを作成することです。これには、ユーザーが選択したりデータを入力したりするすべてのインスタンスの動作のモデル化が含まれます。フロー図の中の可能なアクションが、ビジネスルールプランの中の機能と一致しているかどうかを常にチェックします。

最後に、設計、実装、テストの各段階で、ビジネスロジックの欠陥を特定するために、脅威モデルを使用します。フェイルセーフとして、プログラムが想定外の状況に遭遇した場合に取るべきアクションを作成します。これは、アクションを拒否し、発生した問題について管理者に警告するという単純なものです。

ビジネスロジック問題の詳細情報

さらに読みたい方は、ビジネスロジック問題に関するOWASPのページをご覧ください。また、サイバーセキュリティチームを究極のサイバー戦士に育成するSecure Code Warrior プラットフォームの無料デモで、新たに得た防御の知識を試すこともできます。この脆弱性やその他の脅威の対策についての詳細は、Secure Code Warrior ブログをご覧ください。

今すぐビジネスロジックの脆弱性を探して破壊する準備はできていますか?プラットフォームに向かい、自分のスキルを試してみましょう。[Start Here]

ウェビナーを見る
はじめに
もっと詳しく

以下のリンクをクリックし、このリソースのPDFをダウンロードしてください。

セキュアコードウォリアーは、ソフトウェア開発ライフサイクル全体を通じてコードを保護し、サイバーセキュリティを最優先とする文化を組織に根付かせるために存在します。AppSec管理者、開発者、CISO、あるいはセキュリティに関わるあらゆる立場の方々に対し、組織が安全でないコードに関連するリスクを軽減できるよう支援します。

レポートを見るデモ予約
リソースを見る
共有対象:
リンクトインのブランドソーシャルx ロゴ
もっと興味がありますか?

共有対象:
リンクトインのブランドソーシャルx ロゴ
作成者
Jaap Karan Singh
2019年3月28日発行

Jaap Karan Singhは、Secure Coding Evangelistであり、Chief Singhであり、Secure Code Warrior の共同設立者です。

共有対象:
リンクトインのブランドソーシャルx ロゴ

この「Share & Learn」シリーズで取り上げた他の多くの脆弱性とは異なり、ビジネスロジックの問題は、コーディングエラーとは直接関係ありません。コーディングの問題が問題の一部である場合もありますが、ビジネスロジックのエラーは、アプリが最初に作成されたときの設計上の欠陥や誤った論理的仮定の結果であることがほとんどです。

ビジネスロジックの問題は、ユーザーがアプリケーションを使用する際に予期しない行動をとった場合に発生します。例えば、予期せず注文をキャンセルしたり、クーポンコードを何度も適用したり、あるいは単に予期されたステップをスキップして、アプリケーションがどのように処理したらよいかわからないアクションをとったりすることです。ビジネスロジックの欠陥を利用するためには、トレーニングを受ける必要はありません。

このエピソードでは、以下のことを学びます。

  • ビジネスロジックの欠陥を攻撃者がどのように利用するか
  • ビジネスロジックに欠陥のあるアプリケーションが危険な理由
  • ビジネスロジックのエラーを防ぐためのテクニック

攻撃者はどのようにしてビジネスロジックの問題を利用するのか?

多くのエクスプロイトとは異なり、この脆弱性の原因となる特定のコード文字列を指摘することはできません。むしろ、ユーザーが想定外のアクションを起こし、プログラムがその処理方法を知らないことが原因となります。例えば、銀行のアプリケーションで、ユーザーが他の口座にお金を送金できるとします。しかし、悪意のあるユーザが、お金を送るのではなく、マイナスの金額を他の口座に送ろうとしたとします。銀行のアプリケーションはどのように反応するでしょうか。クラッシュするでしょうか?送金を拒否するでしょうか。それとも、実際に送金を開始したユーザにお金を送り返して、そのマイナス分のバランスを取るのでしょうか?

E-コマースサイトは、多くのユーザーが利用することを想定して設計されており、多くのコンポーネントが存在するため、ビジネスロジックの欠陥の影響を受けやすいという特徴があります。ユーザーが突然注文をキャンセルしたり、1つのクーポンを何度も適用しようとしたり、さらにはショッピングカートをオーバーロードしたりすると、アプリケーションは予期していなかった状況に陥ります。未知の状況に直面したときに、プログラムがどのように反応するかを知る方法は、実際にはありません。最善のシナリオはエラーメッセージを出すことかもしれませんが、アプリが商品を無料で提供するなど、より悪い行動を取らないという保証はありません。

なぜビジネスロジックの問題は危険なのか?

ビジネスロジックの問題は、プログラミングやハッカーの訓練を受けていない人でも、誰でも悪用することができるため、非常に危険です。実際に必要なのは、実験と時間をかけて、アプリケーションが反応するように設計されている方法の欠陥を見つけることだけです。悪意のあるユーザがサイトのビジネスロジックの欠陥を発見したら、それを可能な限り利用することは間違いありません。

最も危険なのは通常、金銭的な問題です。ユーザーが大画面テレビを20台も購入していて、その代金を支払っていないなどの問題です。しかし、ビジネスロジックの欠陥は、他の問題を引き起こすこともあります。例えば、サイトを保護するパスワード機能が、ユーザーがキャンセルを連発した場合の対処法を知らない場合、ログインプロセスを完全に回避させてしまう可能性があります。

ビジネスロジックの問題がどれほどの損害をもたらすかを予測する方法は、実際にはありません。多くの場合、問題の最初の兆候は、ユーザーがそれらを悪用した後に起こります。

ビジネスロジックの問題を解決する

残念ながら、ビジネスロジックの問題のテストは簡単には自動化できないため、脆弱性スキャナのような一般的なツールを使っても、ビジネスロジックの問題を特定したり修正したりすることはできません。これらを回避する最善の方法は、アプリケーションが開発されている間に、ネガティブなテストケースに対して、適切な計画、エラー処理、およびテストを実施することです。このためには、まず、アプリケーションが取るように設計されたすべての可能なアクションと望ましいアクションを含む、明確に定義されたビジネスルールのセットが必要です。

ビジネス・ルール・プランを用いて、ビジネス・ロジックの欠陥を防ぐ最善の方法の一つは、アプリケーション内でデータやトランザクションがどのように流れるかを示すフローチャートを作成することです。これには、ユーザーが選択したりデータを入力したりするすべてのインスタンスの動作のモデル化が含まれます。フロー図の中の可能なアクションが、ビジネスルールプランの中の機能と一致しているかどうかを常にチェックします。

最後に、設計、実装、テストの各段階で、ビジネスロジックの欠陥を特定するために、脅威モデルを使用します。フェイルセーフとして、プログラムが想定外の状況に遭遇した場合に取るべきアクションを作成します。これは、アクションを拒否し、発生した問題について管理者に警告するという単純なものです。

ビジネスロジック問題の詳細情報

さらに読みたい方は、ビジネスロジック問題に関するOWASPのページをご覧ください。また、サイバーセキュリティチームを究極のサイバー戦士に育成するSecure Code Warrior プラットフォームの無料デモで、新たに得た防御の知識を試すこともできます。この脆弱性やその他の脅威の対策についての詳細は、Secure Code Warrior ブログをご覧ください。

今すぐビジネスロジックの脆弱性を探して破壊する準備はできていますか?プラットフォームに向かい、自分のスキルを試してみましょう。[Start Here]

目次

PDFダウンロード
リソースを見る
もっと興味がありますか?

Jaap Karan Singhは、Secure Coding Evangelistであり、Chief Singhであり、Secure Code Warrior の共同設立者です。

もっと詳しく

セキュアコードウォリアーは、ソフトウェア開発ライフサイクル全体を通じてコードを保護し、サイバーセキュリティを最優先とする文化を組織に根付かせるために存在します。AppSec管理者、開発者、CISO、あるいはセキュリティに関わるあらゆる立場の方々に対し、組織が安全でないコードに関連するリスクを軽減できるよう支援します。

デモ予約ダウンロード
共有対象:
リンクトインのブランドソーシャルx ロゴ
リソースハブ

始めるのに役立つリソース

もっと多くの投稿
リソースハブ

始めるのに役立つリソース

もっと多くの投稿