Skip to main content

numbering-service — Service Risk Register

Version: 1.0 Status: Draft Owner: Commerce Engineering + Platform SRE + Legal Last Updated: 2026-04-21 Companion: FAILURE_MODES · SECURITY_MODEL · SERVICE_READINESS


Risk Scoring​

Likelihood × ImpactLowMediumHighCritical
LowLOWLOWMEDIUMHIGH
MediumLOWMEDIUMHIGHHIGH
HighMEDIUMHIGHHIGHCRITICAL

1. Operational Risks​

R-OPS-01 — MNO contract lapse causes assignment loss​

AttributeValue
LikelihoodMedium
ImpactHigh
RatingHIGH
DescriptionIf a Roshan / Etisalat-AF / MTN-AF / AWCC / Salaam contract for a prefix range expires without renewal, all MSISDNs in that block become un-assignable; existing leases honour their validUntil only as far as the contract permits.
Mitigation(1) Daily contract-expiry alerts at 60 d / 30 d / 7 d before effective_until; (2) Commerce ops engagement starts 90 d ahead per playbook; (3) Multiple MNO relationships diversify risk; (4) MoU includes auto-renewal clause where MNO permits; (5) numbering.lease_contracts.status = EXPIRING flag surfaces in admin dashboard
OwnerCommerce ops + Legal
ReviewMonthly

R-OPS-02 — Short-code scarcity (national exhaustion)​

AttributeValue
LikelihoodMedium
ImpactHigh
RatingHIGH
DescriptionATRA-allocated short-code inventory is finite. As tenants demand 4-digit and 5-digit codes, scarcity rises. New ATRA allocations have multi-week lead times.
Mitigation(1) NumberingShortCodeScarcityCritical alert at < 10 % platform-wide; (2) ATRA allocation requests filed quarterly per quota; (3) Vanity-tier pricing dampens demand; (4) Capacity plan reviewed in monthly commerce ops
OwnerCommerce ops
ReviewMonthly

R-OPS-03 — Cross-tenant number-claim conflict​

AttributeValue
LikelihoodMedium
ImpactMedium
RatingMEDIUM
DescriptionTwo tenants race to lease the same AVAILABLE identifier. The CAS mechanism prevents incorrect outcome but high conflict rates degrade UX.
Mitigation(1) Partial unique index + CAS guarantees correctness; (2) Customer portal shows live-updating availability; (3) Pessimistic in-portal "browse-then-lock" UI flow uses Reserve TTL; (4) Conflict rate visible on dashboard
OwnerCommerce Eng
ReviewQuarterly

R-OPS-04 — Reservation TTL imprecision under Redis outage​

AttributeValue
LikelihoodLow
ImpactMedium
RatingMEDIUM
DescriptionIf Redis keyspace notifications are dropped, reservation cleanup is delayed up to 60 s (safety-net cron interval). Tenants may see stale "unavailable" entries.
Mitigation(1) Safety-net cron at 60 s; (2) PG expires_at is the source of truth; (3) Browse endpoint joins to PG, never to Redis-only state; (4) Alert if cleanup lag > 5 s P95
OwnerPlatform SRE
ReviewQuarterly

R-OPS-05 — Quarantine cool-off vs. tenant urgency trade-off​

AttributeValue
LikelihoodMedium
ImpactMedium
RatingMEDIUM
DescriptionA tenant with a legitimate need to re-lease a recalled identifier (e.g., accidentally cancelled) cannot do so during 90-d MSISDN quarantine. Tension between abuse-prevention and tenant flexibility.
Mitigation(1) Admin-override path with mandatory 20-char justification; (2) Override audit-logged; (3) Daily report of overrides surfaced in compliance dashboard (R-SEC-04 prevents abuse); (4) Tenant T&Cs disclose cool-off semantics upfront
OwnerCommerce ops + Legal
ReviewQuarterly

R-OPS-06 — Multi-region split-brain (CAS divergence)​

AttributeValue
LikelihoodLow
ImpactHigh
RatingMEDIUM
DescriptionNetwork partition between kbl and mzr could in theory allow concurrent writes that bypass CAS quorum.
Mitigation(1) Synchronous quorum on numbers/leases via Patroni; (2) Nightly reconciliation cron detects divergences and emits number.conflict.detected.v1; (3) ADR-0004 §14 explicitly chooses safety over availability — service degrades to read-only on partition
OwnerPlatform DBA + SRE
ReviewQuarterly

2. Security Risks​

R-SEC-01 — Compromised admin tier-overrides quotas​

AttributeValue
LikelihoodLow
ImpactHigh
RatingMEDIUM
DescriptionAn attacker with platform.numbering.admin could uplift a tenant's quotas, allowing them to corner the inventory or impersonate brands via alpha-IDs.
Mitigation(1) MFA enforced for platform admin accounts; (2) All admin actions audit-logged with hash-chain; (3) Audit events replicated to SIEM; (4) Anomaly detection on quota changes (fraud-intel); (5) Two-person rule planned for Phase 4
OwnerSecurity
ReviewQuarterly

R-SEC-02 — Forged MNO CSV import (compromised signing key)​

AttributeValue
LikelihoodLow
ImpactCritical
RatingHIGH
DescriptionIf an MNO's RSA signing key is compromised, an attacker could submit a malicious CSV granting them control of inventory blocks.
Mitigation(1) Signing keys rotated quarterly with grace overlap; (2) Each import logs file_sha256 — duplicates flagged; (3) Out-of-band confirmation via MNO commercial team for blocks > 10 k MSISDNs; (4) Block ingest CFO sign-off for ranges > 100 k; (5) Vault stores public keys only — private keys stay with MNO
OwnerSecurity + Commerce ops
ReviewQuarterly

R-SEC-03 — Audit hash-chain tampering​

AttributeValue
LikelihoodLow
ImpactCritical
RatingHIGH
DescriptionDB-level tampering (e.g., via DBA tool) could attempt to alter the audit chain, hiding evidence from ATRA.
Mitigation(1) Postgres rules reject UPDATE / DELETE on numbering.audit; (2) Daily audit-chain-verify cron raises CRITICAL alert + halts regulator export on break; (3) NATS numbering.audit.v1 mirror is replicated to analytics-service for independent copy; (4) Cold archive to S3 object-lock (WORM) for 7 y
OwnerSecurity + Compliance
ReviewMonthly

R-SEC-04 — Phisher rotation via recall-and-re-lease​

AttributeValue
LikelihoodMedium
ImpactHigh
RatingHIGH
DescriptionA bad actor recalls their own number and immediately re-leases it under a new tenant identity to evade reputation tracking.
Mitigation(1) Quarantine cool-off (90 d MSISDN); (2) Same tenant cannot re-lease during cool-off (no self-bypass); (3) Admin override requires justification + is rate-monitored (anomaly signal); (4) Alpha-ID has platform-wide uniqueness — recalled alpha cannot be re-leased to a different tenant during the cool-off window even though cool-off is 0 d (the value is reserved by the inventory ledger for 90 d on REVOKED)
OwnerTrust & Safety + Commerce
ReviewMonthly

R-SEC-05 — Tenant Reserve flood (inventory scrape / DoS)​

AttributeValue
LikelihoodMedium
ImpactMedium
RatingMEDIUM
DescriptionA malicious tenant scripts thousands of Reserves to scrape inventory or block other tenants.
Mitigation(1) maxActiveReservations quota; (2) Per-tenant Reserve rate limit (60/min); (3) RESERVATION_BURST signal → fraud-intel → tenant tier downgrade; (4) Auto-release TTL prevents permanent blocking
OwnerTrust & Safety + Platform Eng
ReviewQuarterly

R-SEC-06 — Cross-tenant data leak via API enumeration​

AttributeValue
LikelihoodLow
ImpactMedium
RatingMEDIUM
DescriptionA tenant could attempt to enumerate other tenants' leases by guessing identifiers and observing ValidateLease responses.
Mitigation(1) ValidateLease cross-tenant returns WRONG_TENANT not detail; (2) Negative-cache with 30 s TTL absorbs enumeration; (3) Tenant portal does not expose other tenants' identifiers via browse (filtered to AVAILABLE); (4) gRPC mTLS limits direct ValidateLease to internal services
OwnerSecurity
ReviewQuarterly

3. Compliance / Regulatory Risks​

R-REG-01 — Regulator-export gaps cause ATRA non-compliance​

AttributeValue
LikelihoodLow
ImpactHigh
RatingMEDIUM
DescriptionMissing or rejected monthly export to ATRA could result in regulatory action against the platform.
Mitigation(1) Cron at 01:00 UTC on the 1st with multiple alerting layers; (2) Manual generation endpoint as fallback; (3) Status tracking from PENDING → ACCEPTED with notification; (4) ATRA submission SOP owned by Legal + Compliance
OwnerLegal + Commerce ops
ReviewMonthly

R-REG-02 — Quarantine policy challenged by tenant SLAs​

AttributeValue
LikelihoodLow
ImpactMedium
RatingLOW
DescriptionAn enterprise tenant with brand-criticality may demand shorter cool-off, conflicting with platform abuse-prevention policy.
Mitigation(1) T&Cs disclose cool-off semantics; (2) Admin override path exists with audit; (3) Vanity-tier purchases shift renewal dynamics (less recall churn); (4) Annual policy review with ATRA
OwnerLegal + Product
ReviewAnnual

R-REG-03 — Cross-border data flow for multi-region​

AttributeValue
LikelihoodLow
ImpactMedium
RatingLOW
DescriptionIf mzr region were ever placed outside Afghan jurisdiction, sovereignty rules could be breached.
Mitigation(1) Both kbl and mzr are within Afghanistan; (2) ADR-0004 §14 explicitly mandates in-country regions; (3) S3 buckets region-pinned to AF data centres
OwnerLegal + Platform SRE
ReviewAnnual

R-REG-04 — Numbering-plan ATRA reallocation​

AttributeValue
LikelihoodLow
ImpactHigh
RatingMEDIUM
DescriptionATRA may reissue or reshuffle MSISDN ranges (Number Portability changes, MNC consolidation). Existing leases may need migration.
Mitigation(1) ATRA liaison participates in quarterly planning calls; (2) LeaseContract has effective_until; (3) Migration tooling in roadmap (Phase 4) for bulk renumbering scenarios
OwnerLegal + Commerce ops
ReviewQuarterly

4. Product / Business Risks​

R-BUS-01 — Vanity short-code monopolisation​

AttributeValue
LikelihoodMedium
ImpactMedium
RatingMEDIUM
DescriptionA single tenant could reserve all premium vanity codes for brand defence, blocking competitors.
Mitigation(1) Per-tenant maxLeasedShortCode quota; (2) Vanity-tier pricing premium; (3) ATRA could intervene if monopoly emerges; (4) Auto-recall on non-payment (vanity has 14-d grace)
OwnerCommerce + Legal
ReviewQuarterly

R-BUS-02 — False-positive QUARANTINE_ACTIVE damages tenant trust​

AttributeValue
LikelihoodLow
ImpactMedium
RatingLOW
DescriptionTenants expecting an immediately recyclable number get blocked, leading to support tickets.
Mitigation(1) UX surfaces availableAt in error response; (2) Customer portal shows quarantine timeline visually; (3) Admin override path for legitimate cases; (4) Tenant T&Cs and onboarding clearly explain
OwnerProduct
ReviewQuarterly

R-BUS-03 — Reservation-floods cause inventory-scarcity perception​

AttributeValue
LikelihoodMedium
ImpactLow
RatingLOW
DescriptionHonest tenants browsing concurrently see same numbers reserved-by-others, creating perception of low availability.
Mitigation(1) Reservations TTL (15 min) caps damage; (2) Browse endpoint surfaces "reserved by other tenant; available again at HH:MM"; (3) Pool capacity dashboard for ops visibility
OwnerProduct + Commerce ops
ReviewQuarterly

R-BUS-04 — MNO-renumbering migration disruption​

AttributeValue
LikelihoodLow
ImpactHigh
RatingMEDIUM
DescriptionAn MNO consolidates / renumbers prefixes (e.g., MTN-AF MNC change), forcing re-mapping.
Mitigation(1) Migration tooling planned (Phase 4); (2) MNO MoUs include 90-d advance notice for renumbering; (3) Tenant-facing preserved-identifier abstraction (alpha-ID stays identical)
OwnerCommerce ops + Platform Eng
ReviewAnnual

5. Risk Summary Matrix​

Risk IDRatingOwnerReview
R-OPS-01HIGHCommerce ops + LegalMonthly
R-OPS-02HIGHCommerce opsMonthly
R-OPS-03MEDIUMCommerce EngQuarterly
R-OPS-04MEDIUMPlatform SREQuarterly
R-OPS-05MEDIUMCommerce ops + LegalQuarterly
R-OPS-06MEDIUMPlatform DBA + SREQuarterly
R-SEC-01MEDIUMSecurityQuarterly
R-SEC-02HIGHSecurity + Commerce opsQuarterly
R-SEC-03HIGHSecurity + ComplianceMonthly
R-SEC-04HIGHT&S + CommerceMonthly
R-SEC-05MEDIUMT&S + Platform EngQuarterly
R-SEC-06MEDIUMSecurityQuarterly
R-REG-01MEDIUMLegal + Commerce opsMonthly
R-REG-02LOWLegal + ProductAnnual
R-REG-03LOWLegal + SREAnnual
R-REG-04MEDIUMLegal + Commerce opsQuarterly
R-BUS-01MEDIUMCommerce + LegalQuarterly
R-BUS-02LOWProductQuarterly
R-BUS-03LOWProduct + Commerce opsQuarterly
R-BUS-04MEDIUMCommerce ops + Platform EngAnnual

End of SERVICE_RISK_REGISTER.md