SSQ.AISSQ.AI

ビジネスロジック・サービス悪用の検証

Business Logic & Service Abuse Validation

業務ルールが正規の手順の外で悪用され、金銭的な損失やデータの露出につながりうるかを検証します。

クーポン・ポイント・返金・予約のような業務ルール、アプリ・クライアントに含まれる中核のロジック、複数の顧客企業が共同で使うサービスの境界を確認します。まず「決済が完了した後は、金額が変わってはならない」のように守るべき条件を決め、その条件が崩れうるシナリオをたどって、実際に突破されるかを確かめます。

自社サービスの業務ルールは、正規の手順を外れた利用に対しても守られているのか?

守るべき条件が崩れるシナリオをたどって実際に悪用できるかを確かめ、事業への影響とまず防ぐべき箇所を示します。

確認済み

FLOW 通常の手順 不正な支払い 申請 確認 承認 支払い 手順外の経路 RULE 「承認なしに支払われてはならない」
通常の手順は申請・確認・承認・支払いを経ますが、確認と承認を飛ばす経路が開いていれば、「承認なしに支払われてはならない」という条件が崩れます。こうした経路が実際に開いているかを確かめます。

このような状況に適しています

  • 決済・割引・ポイントが行き交うサービスを運営しているとき

    コマース、予約・チケット、金融・ポイント、ゲーム、サブスクリプションサービスのように、正規の手順の外での利用がそのまま金銭的な損失や不当な特典につながりうる場合です。

  • プロモーションや決済ポリシーを新たに始める、または変えるとき

    クーポン、紹介特典、返金ルール、料金プランを新設・変更するにあたり、定めた条件に悪用の余地がないかを確かめたい場合です。

  • アプリ・機器に重要なロジックが含まれているとき

    モバイルアプリやIoT機器に決済・認証・ライセンスのロジックと鍵・設定が含まれており、アプリや機器を解析・改ざんしてそのロジックを回避できないかを確かめたい場合です。

  • 複数の顧客企業が一つのサービスを共同で使うとき

    法人向けSaaS・プラットフォームで、ある顧客企業のデータと機能が、他の顧客企業や管理者・サポート機能に必要以上に開かれていないかを確かめたい場合です。

確認する範囲

業務ルールと流れ、アプリ・クライアントに含まれるロジック、権限と顧客企業間の境界の三つに分けて確認します。対象と懸念に合わせて選び、組み合わせます。

  • RULES業務ルールと流れ
    • 価格・数量・割引の計算
    • 決済・キャンセル・返金の流れ
    • クーポン・ポイント・特典の重複利用
    • 処理の順序と承認手順の飛ばし
    • マクロ・ボットなどの自動化された大量リクエストへの備え
  • CLIENTアプリ・クライアント内のロジック
    • アプリ・クライアントのコードの解析難易度
    • 完全性の検証と改ざん検知
    • アプリに含まれる鍵・設定・重要なロジック
    • 決済・認証・ライセンスのロジックの保護水準
  • TENANT権限と顧客企業間の境界
    • 他のユーザー権限の機能の利用
    • 顧客企業間のデータ・ファイル・検索の分離
    • 管理者・サポート機能のアクセス範囲
守るべき条件の例

「決済が完了した後は、金額が変わってはならない」
「改ざんされたアプリでは、決済・認証の機能を使えてはならない」
「ある顧客企業のデータは、他の顧客企業から見えてはならない」

進め方

  1. 保護目標を決める

    懸念される損失を決め、それを防ぐために守るべき条件と、対象の機能・業務の流れを整理します。

  2. シナリオと安全条件の合意

    条件が崩れうるシナリオを選び、必要なアカウントと環境、許可する行為と中止の条件を開始前に合意します。

  3. シナリオの検証

    シナリオを一つずつたどり、条件が守られるか、崩れるか、防ぐ基準そのものがないかを確かめます。

  4. 結果の説明

    シナリオごとに結果と根拠、事業への影響、まず防ぐべき箇所と改善の方向をご説明します。

決済・ポイントのようにお金が動く機能は、実際のお客様と取引に影響が出ないよう、検証の環境と方法を一緒に決めます。

お客様に残る成果

シナリオ別の結果

シナリオごとに、防がれた・突破された・補完が必要として整理し、そうなる条件を示します。

事業への影響

割引の重複、不正な支払い、他の顧客企業のデータの露出のように、それぞれの結果が金銭・特典・データの面でどんな損失かを説明します。

根拠

確認した内容を再現できる手順と証跡を残します。

改善の方向と未確認の範囲

まず防ぐべき箇所と改善の方向、今回確認しなかった部分を示します。

検証結果の例説明のために作成した例で、実際のお客様の事例ではありません。
保護目標

クーポンとポイントは、定められた条件のもとで一度だけ使えること

対象:コマースアプリと注文・決済API

シナリオ結果根拠
通常の注文・決済防がれた割引額をサーバー側で計算し直しています。
決済のキャンセルと再利用が重なるとき突破された同じクーポンをもう一度適用できてしまいます。
アプリが送る価格の値防がれたアプリが送った価格は使わず、サーバーの値で決済しています。
紹介ポイント補完が必要アカウントを新規作成するたびにポイントが貯まり、付与の上限や大量登録を除く基準がありません。
事業への影響
割引が重複して適用され、ポイント目当てのアカウントに販促予算が使われるおそれがあります。
改善の方向
クーポンの利用と復元を一度に処理し、紹介ポイントには本人確認・付与の上限と大量登録の確認基準を設けます。