Coders Conquer Security:Share & Learnシリーズ - ビジネスロジック問題
この「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 の共同設立者です。

Secure Code Warrior は、ソフトウェア開発ライフサイクル全体にわたってコードを保護し、サイバーセキュリティを最優先とする企業文化を創造するために、お客様の組織を支援します。AppSec マネージャー、開発者、CISO、またはセキュリティに関わるすべての人が、安全でないコードに関連するリスクを減らすことができるよう、支援します。
デモを予約するJaap Karan Singhは、Secure Coding Evangelistであり、Chief Singhであり、Secure Code Warrior の共同設立者です。


この「Share & Learn」シリーズで取り上げた他の多くの脆弱性とは異なり、ビジネスロジックの問題は、コーディングエラーとは直接関係ありません。コーディングの問題が問題の一部である場合もありますが、ビジネスロジックのエラーは、アプリが最初に作成されたときの設計上の欠陥や誤った論理的仮定の結果であることがほとんどです。
ビジネスロジックの問題は、ユーザーがアプリケーションを使用する際に予期しない行動をとった場合に発生します。例えば、予期せず注文をキャンセルしたり、クーポンコードを何度も適用したり、あるいは単に予期されたステップをスキップして、アプリケーションがどのように処理したらよいかわからないアクションをとったりすることです。ビジネスロジックの欠陥を利用するためには、トレーニングを受ける必要はありません。
このエピソードでは、以下のことを学びます。
- ビジネスロジックの欠陥を攻撃者がどのように利用するか
- ビジネスロジックに欠陥のあるアプリケーションが危険な理由
- ビジネスロジックのエラーを防ぐためのテクニック
攻撃者はどのようにしてビジネスロジックの問題を利用するのか?
多くのエクスプロイトとは異なり、この脆弱性の原因となる特定のコード文字列を指摘することはできません。むしろ、ユーザーが想定外のアクションを起こし、プログラムがその処理方法を知らないことが原因となります。例えば、銀行のアプリケーションで、ユーザーが他の口座にお金を送金できるとします。しかし、悪意のあるユーザが、お金を送るのではなく、マイナスの金額を他の口座に送ろうとしたとします。銀行のアプリケーションはどのように反応するでしょうか。クラッシュするでしょうか?送金を拒否するでしょうか。それとも、実際に送金を開始したユーザにお金を送り返して、そのマイナス分のバランスを取るのでしょうか?
E-コマースサイトは、多くのユーザーが利用することを想定して設計されており、多くのコンポーネントが存在するため、ビジネスロジックの欠陥の影響を受けやすいという特徴があります。ユーザーが突然注文をキャンセルしたり、1つのクーポンを何度も適用しようとしたり、さらにはショッピングカートをオーバーロードしたりすると、アプリケーションは予期していなかった状況に陥ります。未知の状況に直面したときに、プログラムがどのように反応するかを知る方法は、実際にはありません。最善のシナリオはエラーメッセージを出すことかもしれませんが、アプリが商品を無料で提供するなど、より悪い行動を取らないという保証はありません。
なぜビジネスロジックの問題は危険なのか?
ビジネスロジックの問題は、プログラミングやハッカーの訓練を受けていない人でも、誰でも悪用することができるため、非常に危険です。実際に必要なのは、実験と時間をかけて、アプリケーションが反応するように設計されている方法の欠陥を見つけることだけです。悪意のあるユーザがサイトのビジネスロジックの欠陥を発見したら、それを可能な限り利用することは間違いありません。
最も危険なのは通常、金銭的な問題です。ユーザーが大画面テレビを20台も購入していて、その代金を支払っていないなどの問題です。しかし、ビジネスロジックの欠陥は、他の問題を引き起こすこともあります。例えば、サイトを保護するパスワード機能が、ユーザーがキャンセルを連発した場合の対処法を知らない場合、ログインプロセスを完全に回避させてしまう可能性があります。
ビジネスロジックの問題がどれほどの損害をもたらすかを予測する方法は、実際にはありません。多くの場合、問題の最初の兆候は、ユーザーがそれらを悪用した後に起こります。
ビジネスロジックの問題を解決する
残念ながら、ビジネスロジックの問題のテストは簡単には自動化できないため、脆弱性スキャナのような一般的なツールを使っても、ビジネスロジックの問題を特定したり修正したりすることはできません。これらを回避する最善の方法は、アプリケーションが開発されている間に、ネガティブなテストケースに対して、適切な計画、エラー処理、およびテストを実施することです。このためには、まず、アプリケーションが取るように設計されたすべての可能なアクションと望ましいアクションを含む、明確に定義されたビジネスルールのセットが必要です。
ビジネス・ルール・プランを用いて、ビジネス・ロジックの欠陥を防ぐ最善の方法の一つは、アプリケーション内でデータやトランザクションがどのように流れるかを示すフローチャートを作成することです。これには、ユーザーが選択したりデータを入力したりするすべてのインスタンスの動作のモデル化が含まれます。フロー図の中の可能なアクションが、ビジネスルールプランの中の機能と一致しているかどうかを常にチェックします。
最後に、設計、実装、テストの各段階で、ビジネスロジックの欠陥を特定するために、脅威モデルを使用します。フェイルセーフとして、プログラムが想定外の状況に遭遇した場合に取るべきアクションを作成します。これは、アクションを拒否し、発生した問題について管理者に警告するという単純なものです。
ビジネスロジック問題の詳細情報
さらに読みたい方は、ビジネスロジック問題に関するOWASPのページをご覧ください。また、サイバーセキュリティチームを究極のサイバー戦士に育成するSecure Code Warrior プラットフォームの無料デモで、新たに得た防御の知識を試すこともできます。この脆弱性やその他の脅威の対策についての詳細は、Secure Code Warrior ブログをご覧ください。
今すぐビジネスロジックの脆弱性を探して破壊する準備はできていますか?プラットフォームに向かい、自分のスキルを試してみましょう。[Start Here]

この「Share & Learn」シリーズで取り上げた他の多くの脆弱性とは異なり、ビジネスロジックの問題は、コーディングエラーとは直接関係ありません。コーディングの問題が問題の一部である場合もありますが、ビジネスロジックのエラーは、アプリが最初に作成されたときの設計上の欠陥や誤った論理的仮定の結果であることがほとんどです。
ビジネスロジックの問題は、ユーザーがアプリケーションを使用する際に予期しない行動をとった場合に発生します。例えば、予期せず注文をキャンセルしたり、クーポンコードを何度も適用したり、あるいは単に予期されたステップをスキップして、アプリケーションがどのように処理したらよいかわからないアクションをとったりすることです。ビジネスロジックの欠陥を利用するためには、トレーニングを受ける必要はありません。
このエピソードでは、以下のことを学びます。
- ビジネスロジックの欠陥を攻撃者がどのように利用するか
- ビジネスロジックに欠陥のあるアプリケーションが危険な理由
- ビジネスロジックのエラーを防ぐためのテクニック
攻撃者はどのようにしてビジネスロジックの問題を利用するのか?
多くのエクスプロイトとは異なり、この脆弱性の原因となる特定のコード文字列を指摘することはできません。むしろ、ユーザーが想定外のアクションを起こし、プログラムがその処理方法を知らないことが原因となります。例えば、銀行のアプリケーションで、ユーザーが他の口座にお金を送金できるとします。しかし、悪意のあるユーザが、お金を送るのではなく、マイナスの金額を他の口座に送ろうとしたとします。銀行のアプリケーションはどのように反応するでしょうか。クラッシュするでしょうか?送金を拒否するでしょうか。それとも、実際に送金を開始したユーザにお金を送り返して、そのマイナス分のバランスを取るのでしょうか?
E-コマースサイトは、多くのユーザーが利用することを想定して設計されており、多くのコンポーネントが存在するため、ビジネスロジックの欠陥の影響を受けやすいという特徴があります。ユーザーが突然注文をキャンセルしたり、1つのクーポンを何度も適用しようとしたり、さらにはショッピングカートをオーバーロードしたりすると、アプリケーションは予期していなかった状況に陥ります。未知の状況に直面したときに、プログラムがどのように反応するかを知る方法は、実際にはありません。最善のシナリオはエラーメッセージを出すことかもしれませんが、アプリが商品を無料で提供するなど、より悪い行動を取らないという保証はありません。
なぜビジネスロジックの問題は危険なのか?
ビジネスロジックの問題は、プログラミングやハッカーの訓練を受けていない人でも、誰でも悪用することができるため、非常に危険です。実際に必要なのは、実験と時間をかけて、アプリケーションが反応するように設計されている方法の欠陥を見つけることだけです。悪意のあるユーザがサイトのビジネスロジックの欠陥を発見したら、それを可能な限り利用することは間違いありません。
最も危険なのは通常、金銭的な問題です。ユーザーが大画面テレビを20台も購入していて、その代金を支払っていないなどの問題です。しかし、ビジネスロジックの欠陥は、他の問題を引き起こすこともあります。例えば、サイトを保護するパスワード機能が、ユーザーがキャンセルを連発した場合の対処法を知らない場合、ログインプロセスを完全に回避させてしまう可能性があります。
ビジネスロジックの問題がどれほどの損害をもたらすかを予測する方法は、実際にはありません。多くの場合、問題の最初の兆候は、ユーザーがそれらを悪用した後に起こります。
ビジネスロジックの問題を解決する
残念ながら、ビジネスロジックの問題のテストは簡単には自動化できないため、脆弱性スキャナのような一般的なツールを使っても、ビジネスロジックの問題を特定したり修正したりすることはできません。これらを回避する最善の方法は、アプリケーションが開発されている間に、ネガティブなテストケースに対して、適切な計画、エラー処理、およびテストを実施することです。このためには、まず、アプリケーションが取るように設計されたすべての可能なアクションと望ましいアクションを含む、明確に定義されたビジネスルールのセットが必要です。
ビジネス・ルール・プランを用いて、ビジネス・ロジックの欠陥を防ぐ最善の方法の一つは、アプリケーション内でデータやトランザクションがどのように流れるかを示すフローチャートを作成することです。これには、ユーザーが選択したりデータを入力したりするすべてのインスタンスの動作のモデル化が含まれます。フロー図の中の可能なアクションが、ビジネスルールプランの中の機能と一致しているかどうかを常にチェックします。
最後に、設計、実装、テストの各段階で、ビジネスロジックの欠陥を特定するために、脅威モデルを使用します。フェイルセーフとして、プログラムが想定外の状況に遭遇した場合に取るべきアクションを作成します。これは、アクションを拒否し、発生した問題について管理者に警告するという単純なものです。
ビジネスロジック問題の詳細情報
さらに読みたい方は、ビジネスロジック問題に関するOWASPのページをご覧ください。また、サイバーセキュリティチームを究極のサイバー戦士に育成するSecure Code Warrior プラットフォームの無料デモで、新たに得た防御の知識を試すこともできます。この脆弱性やその他の脅威の対策についての詳細は、Secure Code Warrior ブログをご覧ください。
今すぐビジネスロジックの脆弱性を探して破壊する準備はできていますか?プラットフォームに向かい、自分のスキルを試してみましょう。[Start Here]

以下のリンクをクリックし、この資料のPDFをダウンロードしてください。
Secure Code Warrior は、ソフトウェア開発ライフサイクル全体にわたってコードを保護し、サイバーセキュリティを最優先とする企業文化を創造するために、お客様の組織を支援します。AppSec マネージャー、開発者、CISO、またはセキュリティに関わるすべての人が、安全でないコードに関連するリスクを減らすことができるよう、支援します。
レポートを見るデモを予約するJaap Karan Singhは、Secure Coding Evangelistであり、Chief Singhであり、Secure Code Warrior の共同設立者です。
この「Share & Learn」シリーズで取り上げた他の多くの脆弱性とは異なり、ビジネスロジックの問題は、コーディングエラーとは直接関係ありません。コーディングの問題が問題の一部である場合もありますが、ビジネスロジックのエラーは、アプリが最初に作成されたときの設計上の欠陥や誤った論理的仮定の結果であることがほとんどです。
ビジネスロジックの問題は、ユーザーがアプリケーションを使用する際に予期しない行動をとった場合に発生します。例えば、予期せず注文をキャンセルしたり、クーポンコードを何度も適用したり、あるいは単に予期されたステップをスキップして、アプリケーションがどのように処理したらよいかわからないアクションをとったりすることです。ビジネスロジックの欠陥を利用するためには、トレーニングを受ける必要はありません。
このエピソードでは、以下のことを学びます。
- ビジネスロジックの欠陥を攻撃者がどのように利用するか
- ビジネスロジックに欠陥のあるアプリケーションが危険な理由
- ビジネスロジックのエラーを防ぐためのテクニック
攻撃者はどのようにしてビジネスロジックの問題を利用するのか?
多くのエクスプロイトとは異なり、この脆弱性の原因となる特定のコード文字列を指摘することはできません。むしろ、ユーザーが想定外のアクションを起こし、プログラムがその処理方法を知らないことが原因となります。例えば、銀行のアプリケーションで、ユーザーが他の口座にお金を送金できるとします。しかし、悪意のあるユーザが、お金を送るのではなく、マイナスの金額を他の口座に送ろうとしたとします。銀行のアプリケーションはどのように反応するでしょうか。クラッシュするでしょうか?送金を拒否するでしょうか。それとも、実際に送金を開始したユーザにお金を送り返して、そのマイナス分のバランスを取るのでしょうか?
E-コマースサイトは、多くのユーザーが利用することを想定して設計されており、多くのコンポーネントが存在するため、ビジネスロジックの欠陥の影響を受けやすいという特徴があります。ユーザーが突然注文をキャンセルしたり、1つのクーポンを何度も適用しようとしたり、さらにはショッピングカートをオーバーロードしたりすると、アプリケーションは予期していなかった状況に陥ります。未知の状況に直面したときに、プログラムがどのように反応するかを知る方法は、実際にはありません。最善のシナリオはエラーメッセージを出すことかもしれませんが、アプリが商品を無料で提供するなど、より悪い行動を取らないという保証はありません。
なぜビジネスロジックの問題は危険なのか?
ビジネスロジックの問題は、プログラミングやハッカーの訓練を受けていない人でも、誰でも悪用することができるため、非常に危険です。実際に必要なのは、実験と時間をかけて、アプリケーションが反応するように設計されている方法の欠陥を見つけることだけです。悪意のあるユーザがサイトのビジネスロジックの欠陥を発見したら、それを可能な限り利用することは間違いありません。
最も危険なのは通常、金銭的な問題です。ユーザーが大画面テレビを20台も購入していて、その代金を支払っていないなどの問題です。しかし、ビジネスロジックの欠陥は、他の問題を引き起こすこともあります。例えば、サイトを保護するパスワード機能が、ユーザーがキャンセルを連発した場合の対処法を知らない場合、ログインプロセスを完全に回避させてしまう可能性があります。
ビジネスロジックの問題がどれほどの損害をもたらすかを予測する方法は、実際にはありません。多くの場合、問題の最初の兆候は、ユーザーがそれらを悪用した後に起こります。
ビジネスロジックの問題を解決する
残念ながら、ビジネスロジックの問題のテストは簡単には自動化できないため、脆弱性スキャナのような一般的なツールを使っても、ビジネスロジックの問題を特定したり修正したりすることはできません。これらを回避する最善の方法は、アプリケーションが開発されている間に、ネガティブなテストケースに対して、適切な計画、エラー処理、およびテストを実施することです。このためには、まず、アプリケーションが取るように設計されたすべての可能なアクションと望ましいアクションを含む、明確に定義されたビジネスルールのセットが必要です。
ビジネス・ルール・プランを用いて、ビジネス・ロジックの欠陥を防ぐ最善の方法の一つは、アプリケーション内でデータやトランザクションがどのように流れるかを示すフローチャートを作成することです。これには、ユーザーが選択したりデータを入力したりするすべてのインスタンスの動作のモデル化が含まれます。フロー図の中の可能なアクションが、ビジネスルールプランの中の機能と一致しているかどうかを常にチェックします。
最後に、設計、実装、テストの各段階で、ビジネスロジックの欠陥を特定するために、脅威モデルを使用します。フェイルセーフとして、プログラムが想定外の状況に遭遇した場合に取るべきアクションを作成します。これは、アクションを拒否し、発生した問題について管理者に警告するという単純なものです。
ビジネスロジック問題の詳細情報
さらに読みたい方は、ビジネスロジック問題に関するOWASPのページをご覧ください。また、サイバーセキュリティチームを究極のサイバー戦士に育成するSecure Code Warrior プラットフォームの無料デモで、新たに得た防御の知識を試すこともできます。この脆弱性やその他の脅威の対策についての詳細は、Secure Code Warrior ブログをご覧ください。
今すぐビジネスロジックの脆弱性を探して破壊する準備はできていますか?プラットフォームに向かい、自分のスキルを試してみましょう。[Start Here]
目次
始めるためのリソース
セキュア・バイ・デザインベストプラクティスの定義、開発者の能力向上、予防的セキュリティ成果のベンチマーク
このリサーチペーパーでは、Secure Code Warrior 共同設立者であるピーテル・ダニュー(Pieter Danhieux)氏とマティアス・マドゥ(Matias Madou)博士、そして専門家であるクリス・イングリス(Chris Inglis)氏(元米国サイバーディレクター、現パラディン・キャピタル・グループ戦略顧問)、デヴィン・リンチ(Devin Lynch)氏(パラディン・グローバル・インスティテュート・シニアディレクター)が、CISO、アプリケーション・セキュリティ担当副社長、ソフトウェア・セキュリティの専門家など、企業のセキュリティ・リーダー20人以上への詳細なインタビューから得られた主な知見を明らかにします。
セキュリティ スキルのベンチマーク: 企業におけるセキュアな設計の合理化
セキュアバイデザイン(SBD)構想の成功に関する有意義なデータを見つけることは、非常に困難である。CISO は、セキュリティプログラム活動の投資収益率(ROI)とビジネス価値を、従業員レベルと企業レベルの両方で証明しようとすると、しばしば困難に直面します。言うまでもなく、企業にとって、現在の業界標準に対して自社の組織がどのようにベンチマークされているかを把握することは特に困難です。大統領の国家サイバーセキュリティ戦略は、関係者に「デザインによるセキュリティとレジリエンスを受け入れる」ことを求めている。セキュアバイデザインの取り組みを成功させる鍵は、開発者にセキュアなコードを保証するスキルを与えるだけでなく、規制当局にそれらのスキルが整っていることを保証することである。本プレゼンテーションでは、25万人以上の開発者から収集した社内データ、データに基づく顧客の洞察、公的研究など、複数の一次ソースから得られた無数の定性的・定量的データを紹介します。こうしたデータ・ポイントの集積を活用することで、複数の業種におけるセキュア・バイ・デザイン・イニシアチブの現状をお伝えすることを目的としています。本レポートでは、この領域が現在十分に活用されていない理由、スキルアッププログラムの成功がサイバーセキュリティのリスク軽減に与える大きな影響、コードベースから脆弱性のカテゴリーを排除できる可能性について詳述しています。
始めるためのリソース
明らかになった:サイバー業界はセキュア・バイ・デザインをどのように定義しているか
最新のホワイトペーパーでは、当社の共同設立者であるピーテル・ダニュー(Pieter Danhieux)氏とマティアス・マドゥ(Matias Madou)博士が、CISO、AppSecリーダー、セキュリティ専門家を含む20人以上の企業セキュリティリーダーと対談し、このパズルの重要なピースを見つけ出し、Secure by Design運動の背後にある現実を明らかにしました。セキュア・バイ・デザインは、セキュリティ・チーム全体で共有された野心ですが、共有されたプレイブックはありません。