顧客まで締め出さないジオブロッキング
ライセンスやコンプライアンス部門の要件を満たしながら、誤検知を抑えた国・地域制限を設計する方法。
# 顧客まで締め出さないジオブロッキング
ジオブロッキングの失敗は、大きく二つあります。制限を回避しようとするユーザーを通してしまうこと。そして、正当な旅行者や出張者まで止めてしまうことです。どちらも、レイヤーを分けて設計すれば避けられます。
ブロックする理由を三つに分ける
- ライセンス。 コンテンツの権利は国・地域ごとに定められています。説明可能な国判定が必要であり、VPNの出口については、その出口がある国として扱うのではなく「不明」と見なすべきです。
- 制裁・コンプライアンス。 これは監査証跡を伴う法的義務です。すべての判定について、判断に使った入力情報を記録しておきます。
- 不正利用。 国だけでは、不正のシグナルとしては弱すぎます。実際に重みを持つのは、通信元の分類とリスクスコアです。
この三つを混ぜてしまうと、半年後には誰も説明できないルールが残ります。
レイヤー化したルール
if classification in (tor, hosting, vpn) -> location is untrusted, apply policy for unknown else if country in blocked_list -> deny with a clear message else if risk_score > threshold -> challenge, do not deny else -> allow
重要なのは、匿名化されたトラフィックを「出口ノードが置かれている国」として扱わず、所在地不明として扱うことです。そうしなければ、制限対象の市場にいるユーザーは、許可されている国の出口を選ぶだけで通過できてしまいます。
エラーメッセージは人間に向けて書く
「このコンテンツはお客様の地域ではご利用いただけません」と表示し、サポートへのリンクを添えれば、不満は解決可能な問い合わせになります。何も説明しない 403 は、チャージバックや低評価レビューにつながりかねません。
旅行者・出張者を明示的に扱う
長年利用されているアカウントが突然別の国からアクセスしてきた場合、多くはアカウント乗っ取りではなく、休暇や出張です。現在のIPだけで判断するのではなく、アカウントの利用履歴をより重視しましょう。拒否するのではなく追加認証に進め、結果を記憶しておけば、同じ旅行中に毎日ルールが発火することも避けられます。
何を判断したかを監査できるようにする
生のルックアップ結果をため込むのではなく、判定結果と、その根拠になった入力情報(国、classification、risk score、rule id)を保存します。これにより、監査証跡を残せるだけでなく、しきい値の調整もしやすくなります。ユーザーの位置情報データを必要以上に抱え込むこともありません。
リストは四半期ごとに見直す
ブロックリストは劣化します。市場は開き、ライセンス条件は変わり、あるキャンペーンのために追加されたルールが、気づかないうちに何年も売上を削り続けることがあります。レビューはカレンダーに入れて、定期的な運用として回しましょう。
