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

Programmierer erobern Sicherheit: Share & Learn-Reihe — Probleme mit der Geschäftslogik

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

リソースを表示
リソースを表示

Obwohl Codierungsprobleme Teil des Problems sein können, sind Fehler in der Geschäftslogik am häufigsten auf Designfehler oder falsche logische Annahmen bei der ersten Erstellung einer App zurückzuführen.

もっと知りたいですか?

Jaap Karan Singh ist Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.

もっと詳しく

Secure Code Warrior 、ソフトウェア開発サイクル全体を通じてコードの安全性を確保し、サイバーセキュリティを最優先とする文化を構築するため、貴社をSecure Code Warrior 。アプリセキュリティ管理者、開発者、CISO、あるいはセキュリティに関わるあらゆる立場の方々に対し、当社が貴社のビジネスにおける不安全なコードに関連するリスクの低減を支援します。

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

Jaap Karan Singh ist Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

リソースを表示
リソースを表示

以下のフォームに記入してレポートをダウンロードしてください

当社製品および/またはセキュアコーディングに関連する情報について、お客様にご案内させていただくことをお許しください。お客様の個人情報は常に細心の注意をもって取り扱い、マーケティング目的で他社に販売することは一切ありません。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ウェビナーを見る
始めましょう
もっと詳しく

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

Secure Code Warrior 、ソフトウェア開発サイクル全体を通じてコードの安全性を確保し、サイバーセキュリティを最優先とする文化を構築するため、貴社をSecure Code Warrior 。アプリセキュリティ管理者、開発者、CISO、あるいはセキュリティに関わるあらゆる立場の方々に対し、当社が貴社のビジネスにおける不安全なコードに関連するリスクの低減を支援します。

レポートを見るデモを予約する
PDFをダウンロード
リソースを表示
共有する:
リンクトインのブランドソーシャルx ロゴ
もっと知りたいですか?

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

Jaap Karan Singh ist Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

目次

PDFをダウンロード
リソースを表示
もっと知りたいですか?

Jaap Karan Singh ist Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.

もっと詳しく

Secure Code Warrior 、ソフトウェア開発サイクル全体を通じてコードの安全性を確保し、サイバーセキュリティを最優先とする文化を構築するため、貴社をSecure Code Warrior 。アプリセキュリティ管理者、開発者、CISO、あるいはセキュリティに関わるあらゆる立場の方々に対し、当社が貴社のビジネスにおける不安全なコードに関連するリスクの低減を支援します。

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

入門リソース

さらに多くの投稿
リソースハブ

入門リソース

さらに多くの投稿