ইস্যুয়ার পক্ষে anti-quishing। স্টোরেজ পক্ষে ডেটা রেসিডেন্সি।
প্রতিটি Pro লিঙ্ক issue-এর সময়, প্রতিটি destination পরিবর্তনে এবং rolling schedule-এ সাত-স্তরের anti-quishing pipeline-এর মধ্য দিয়ে যায়। স্ক্যান লগ শুধুমাত্র দেশ ও device-class; ফাঁস হওয়ার মতো কোনো IP, user agent, cookie বা আচরণগত প্রোফাইল নেই। Agency ও Custom Enterprise-এ single-region D1 উপলব্ধ।
আমরা যা সংগ্রহ করি
আমাদের সার্ভারে পৌঁছানো প্রতিটি byte চারটি বালতির একটিতে থাকে:
অ্যাকাউন্ট ডেটা
ইমেইল, plan tier, plan status, Stripe customer + subscription ID, ঐচ্ছিক টিম নাম + workspace label। ব্যস। কোনো ফোন নেই, কোনো ঠিকানা নেই (billing ঠিকানা Stripe-এ থাকে), কোনো আচরণগত প্রোফাইল নেই।
কোড ডেটা
গন্তব্য URL, একটি ৭-char Base58 shortcode, আপনার সেট করা label + tags, ঐচ্ছিক QR ডিজাইন (রঙ / লোগো / ফ্রেম), ঐচ্ছিক পাসওয়ার্ড গেট, ঐচ্ছিক schedule। আপনার মালিকানা; যেকোনো সময় CSV হিসেবে রপ্তানিযোগ্য।
স্ক্যান ডেটা
UTC day-bucket + দেশ (CF-IPCountry থেকে) + device class (mobile / tablet / desktop / unknown)। Raw User-Agent classification-এর পরপরই বাতিল হয়। IP কখনো database-এ প্রবেশ করে না। redirect hot path-এর জন্য KV-তে cached, ctx.waitUntil দিয়ে D1-এ aggregated। ৫ স্ক্যানের নিচে country aggregate re-identification রোধ করতে "Other"-এ fold হয়।
অডিট / billing মেটাডেটা
পরিবর্তনের append-only লগ (কে কী করেছে, কখন, কোন scope-এ), ১৮০-দিনের retention। idempotency-এর জন্য Stripe webhook ইভেন্ট deduplicated, Stripe customer ID-র বাইরে কোনো customer PII নেই। GDPR request লগ (export / delete / restore), on-time-honor প্রমাণের জন্য account deletion-এর পরেও সংরক্ষিত।
সম্পূর্ণ schema-র জন্য আমাদের source repo-তে docs/SCHEMA.md দেখুন; প্রতিটি column retention policy সহ documented।
ডেটা কোথায় থাকে
| Surface | Provider | অঞ্চল | Single-region বিকল্প? |
|---|---|---|---|
| ড্যাশবোর্ড + API | Cloudflare Pages Functions | Global edge (নিকটতম PoP) | হ্যাঁ, শুধুমাত্র Agency+ |
| কোড রেকর্ড (D1) | Cloudflare D1 (SQLite) | Provisioning-এ assigned primary region (আজ: ENAM) | হ্যাঁ, Agency+ per-tenant shard |
| Redirect hot path (KV) | Cloudflare Workers KV | <50ms p99-এর জন্য globally edge-replicated | উপলব্ধ নয় (replication-ই পণ্য) |
| এনক্রিপ্টেড ব্যাকআপ | Cloudflare R2 | Bucket তৈরিতে assigned primary region | হ্যাঁ, অনুরোধে EU / APAC jurisdictional bucket |
| Payments | Stripe | US, Stripe-এর নিজস্ব রেসিডেন্সি দিয়ে regional PII handling | Stripe চুক্তির মাধ্যমে |
| Transactional email | ZeptoMail (Zoho) | IN (অনুরোধে Zoho-র EU region উপলব্ধ) | হ্যাঁ, Zoho EU region |
ঠিক কী সীমান্ত পার করে
- স্ক্যান কখনো lossy উপায়ে সীমান্ত পার করে না। লিসবন থেকে একটি স্ক্যান লিসবন Cloudflare PoP-এ পৌঁছায়, worker edge-এ KV-তে day/country/device লেখে এবং async-এ তার primary region-এ D1-এ aggregate করে। মূল scanner-এর IP HTTP request-এর সময়কালের জন্য Cloudflare-এর ephemeral request state-এ থাকে এবং আমাদের database-এ কখনো persist হয় না।
- ড্যাশবোর্ড request নিকটতম Cloudflare PoP-এ terminate হয় এবং Cloudflare-এর private network-এ D1 call করে। আমাদের Pages Functions D1-কে তার assigned region-এ read/write করে; edge PoP global static-asset cache থেকে HTML + JS bundle serve করে।
- Stripe webhook একবার সীমান্ত পার করে, Stripe (US) আমাদের Cloudflare Pages endpoint-এ POST করে, যা HMAC যাচাই করে, idempotency-এর জন্য একটি minimal (event_id, type) row লেখে এবং downstream ইভেন্ট dispatch করে।
- Transactional email (Zepto) প্রতি send-এ একবার সীমান্ত পার করে, আমাদের worker একটি rendered template Zepto-র API-এ দেয়; Zepto প্রাপকের mailserver-এ deliver করে। Content হলো invite link, billing-lifecycle বিজ্ঞপ্তি ও scan-cap সতর্কতা, কোনো customer স্ক্যান ডেটা নয়।
Anti-quishing pipeline
QR phishing ২০২৬-এর Q1-এ ১৪৬% বেড়েছে। স্বাভাবিক short-link vendor customer complaint-এর পরে প্রতিক্রিয়া দেখায়। আমরা প্রতিটি লিঙ্ক issue-এর সময়, আমাদের পক্ষে destination পরিবর্তন হলে প্রতিবার এবং rolling schedule-এ পরীক্ষা করি কারণ একজন customer তাদের নিজের সার্ভারে তাদের নিজের URL repoint করতে পারেন আমাদের API কল না করেই। check.qr.abundera.ai-এ আমাদের public scanner-কে শক্তি দেওয়া একই threat-intel pipeline আমাদের ইস্যু করা প্রতিটি লিঙ্কের বিপরীতে চলে।
সাতটি detection layer, প্রতিটিতে pending US patent application। প্রতিটি layer একটি unified verdict-এ feed করে; যেকোনো একটিতে hit একটি create block করতে, destination পরিবর্তন প্রত্যাখ্যান করতে বা ইতিমধ্যে-live লিঙ্ক suspend করতে পারে।
| Layer | কী ধরে | কখন চলে |
|---|---|---|
| Redirect-chain mutability | আমাদের short link ও চূড়ান্ত পৃষ্ঠার মধ্যে path কতজন স্বাধীন পক্ষ নিয়ন্ত্রণ করে। অন্য কারো redirector-এর মাধ্যমে two-hop chain সরাসরি destination থেকে ভিন্ন risk class। | Create, destination change, rolling re-check |
| Multi-modal payload analysis | WiFi, contact, telephony, mail, calendar, geolocation, cryptocurrency, Android intent ও inline-data payload প্রতিটি type-specific analyzer পায়। Hard-blocked scheme submit-এ refuse করে। | Create, destination change |
| Crawler-vs-browser cloaking | Scanner-কে clean content ও মানুষকে phishing serve করে এমন পৃষ্ঠা। Controlled fingerprint variance ও divergence score সহ parallel fetch দিয়ে detected। | Create, rolling re-check |
| Destination-server mutability | নতুন-registered domain, একদম নতুন certificate, high-churn TLD, missing HSTS ও transport-scheme degradation। Redirect chain-এর স্বাধীন; একটি sketchy TLD-তে ছয়-দিন-পুরোনো cert-এ static one-hop chain তবুও flagged হয়। | Create, destination change, rolling re-check |
| Physical-instance provenance | Decoded payload দিয়ে keyed crowd-sourced hash ledger। একটি QR কম সময়ে অনেক disparate অঞ্চলে স্ক্যান হলে sticker-attack candidate হিসেবে ওঠে। আমাদের ইস্যু করা প্রতিটি লিঙ্ক creation-এ clean provenance entry পায়, তাই legitimate Pro code-এর বিরুদ্ধে overlay attack ধরা পড়ে। | Continuous |
| Visual-brand divergence | কোনো code যদি এমন brand logo বহন করে যার canonical-domain set decoded destination অন্তর্ভুক্ত করে না, তাহলে code টি brand-divergent। আমাদের center-logo feature ব্যবহার করা প্রতিটি Pro code-এ প্রযোজ্য; phisher Chase-logoed code non-Chase domain-এ point করে ship করতে পারবে না। | Create, logo change, destination change |
| Sensor / venue topology | Venue-bound code-এর জন্য (parking meter, hotel check-in, রেস্টুরেন্ট মেনু, মিউজিয়াম প্রদর্শনী), scanning device-এর ambient RF context সেই venue-এর জন্য registered topology-র বিরুদ্ধে পরীক্ষা করা হয়। প্রথম স্ক্যানেও fraudulent sticker-এ sensor-context anomaly return করে। Enterprise tier; venue operator code creation-এ expected topology register করে। | Every scan |
Customer-side পরিবর্তনের সমস্যা
একটি Pro লিঙ্কের destination URL customer-এর সার্ভারে থাকে, আমাদের নয়। Customer Abundera API কল না করেই example.com/promo-কে real promo থেকে phishing পৃষ্ঠায় repoint করতে পারেন। আমরা এটিকে primary abuse path হিসেবে দেখি, edge case নয়। Active destination-এর বিরুদ্ধে rolling re-check schedule-এ চলে এবং আমাদের cloaking-detection layer বিশেষভাবে submit-এর পরে flip করা পৃষ্ঠাকে target করে। Creation-এর পরে destination check fail করতে শুরু করলে লিঙ্কটি auto-paused হয়, owner-কে নির্দিষ্ট verdict সহ ইমেইল করা হয় এবং আমরা audit trail-এ event log করি।
False-positive ও appeal
Threat intel কখনো কখনো ভুল হয়। নতুন-ইস্যু cert-এ legitimate brand, page সত্যিকারের পরিবর্তন হওয়া real promo, moved domain। প্রতিটি block ও প্রতিটি auto-pause-এ fire করা নির্দিষ্ট verdict layer, যা trigger করেছে তার input এবং এক business day-এর মধ্যে human-এ escalate করা one-click appeal অন্তর্ভুক্ত। আমরা delete-এর পরিবর্তে pause-এর দিকে err করি; appeal clear হলে একটি paused লিঙ্ক সেকেন্ডে re-enable করা যায়।
Single-region রেসিডেন্সি (Agency+ ও Custom Enterprise)
EU-only বা APAC-only ক্রেতাদের জন্য, Agency-tier গ্রাহকরা অনুরোধ করতে পারেন:
- একটি single jurisdiction-এ D1 placed (EU: EEUR বা WEUR; APAC: APAC)। Cloudflare database creation-এ একটি
locationhint সম্মান করে; আমরা requested region-এ per-tenant D1 shard spin up করি (ADR-0010)। - একই jurisdiction-এ R2 bucket, নৈশ এনক্রিপ্টেড D1 → R2 ব্যাকআপ matching region-এ পৌঁছায়।
- Transactional email-এর জন্য Zepto EU region, service level-এ configured, কোনো code পরিবর্তন নেই।
- KV global থাকে, edge replication <50ms redirect guarantee-এর মূল। single-region KV যদি hard requirement হয়, আমাদের সাথে কথা বলুন; আমরা মূল্যায়ন করতে পারি আপনার campaign-এর জন্য regional-only Worker variant সম্ভব কিনা।
single-region add-on-এর মূল্য flat rate (কোনো per-seat markup নেই) এবং নির্দিষ্ট combination-এর উপর নির্ভর করে। আপনার target jurisdiction + projected scan volume সহ enterprise@abundera.ai-এ ইমেইল করুন এবং আমরা quote দেব।
Compliance অবস্থান
- GDPR, ডিজাইন দ্বারা ন্যূনতম ডেটা (শুধুমাত্র দেশ + device-class, কোনো IP নেই, UA নেই, cookie নেই) এবং one-click export ও ৩০-দিনের hard-delete। সব পেইড tier-এর জন্য DPA + EU SCC উপলব্ধ।
- CCPA, একই export + delete surface দিয়ে covered। "ডেটা বিক্রয়" আমরা করি না: কোনো third-party sharing নেই, কোনো ad partner নেই, কোনো retargeting নেই।
- SSO + SCIM provisioning, SAML 2.0 + OIDC single sign-on ও SCIM 2.0 user & group lifecycle (Agency + Custom Enterprise tier)। RFC 7643/7644 compliance যাচাইকৃত (PingIdentity-derived test suite-এ ২০/২০)। Per-connection feature flag মানে SCIM off-by-default এবং per customer enabled; rate-limited ৫০ RPS per token; audit-logged। Okta/Entra/JumpCloud আজ custom-SCIM app হিসেবে কাজ করে যখন partner-catalog listing চলছে।
- SOC 2 Type II, scoping-এ। ৬-৯ মাসের প্রক্রিয়া। এটি আপনার কাছে hard requirement হলে enterprise@abundera.ai-এ ইমেইল করুন; আমরা বর্তমান status + projected timeline শেয়ার করতে পারি।
- PCI-DSS, আমাদের জন্য সরাসরি scope-এর বাইরে; payments Stripe (PCI Level 1 certified) দ্বারা end-to-end handled।
নিরাপত্তা প্রকাশনা
কোনো vulnerability পেয়েছেন? security@abundera.ai-এ ইমেইল করুন। Coordinated disclosure, আমরা ২৪ ঘণ্টার মধ্যে (business day) স্বীকার করব, ৭২ ঘণ্টার মধ্যে triage করব এবং আপনার সাথে fix + disclosure timeline coordinate করব। এখনো কোনো bug bounty program নেই; একটি fix ship হলে আমরা abundera.ai/security/thanks/-এ গবেষকদের প্রকাশ্যে স্বীকার করি।