3GPP TS 33.527
1. Scope
▶Specifies security requirements and test cases for the Service Communication Proxy (SCP) — the central SBI message routing and load balancing function in 5G Service-Based Architecture.
2. SCP Functional Overview
▶SA2 (TS 23.501) defines the SCP as an optional but increasingly deployed function that provides:
- Indirect communication: NF→SCP→NF (Model C/D)
- Load balancing: Distribute requests across NF instances
- Message routing: Route based on service/API/resource
- NF discovery delegation: Query NRF on behalf of NF consumer
- Token validation: Validate OAuth 2.0 tokens (Model D)
2.1 Deployment Models
▶| Model | SCP Role | Token Handling |
|---|---|---|
| Model C | Proxy routing, load balancing | Consumer obtains token from NRF, SCP forwards it |
| Model D | Proxy + delegated discovery | SCP obtains token from NRF on behalf of consumer |
3. SCP-Specific Threats
▶TR 33.926 §5.3.3 Man-in-the-middle on SBI ▶
| Threat ID | Threat | Description | Impact |
|---|---|---|---|
| SCP-T1 | Traffic Inspection | Compromised SCP reads all SBI message bodies (subscriber data, session info) | Mass surveillance, privacy breach |
| SCP-T2 | Message Modification | SCP alters request/response payloads (e.g., change QoS in N7, modify auth vectors in N12) | Service manipulation, security bypass |
| SCP-T3 | Token Theft (Model D) | Extract cached OAuth tokens to impersonate NF consumers | Unauthorized access to any NF service |
| SCP-T4 | Routing Manipulation | Redirect SBI requests to attacker-controlled NF instances | Data interception, fake responses |
| SCP-T5 | DoS / Single Point of Failure | SCP outage disrupts all indirect SBI communication | Core network service disruption |
| SCP-T6 | Logging / Metadata Leak | SCP logs contain sensitive routing metadata exploitable for traffic analysis | Subscriber tracking, usage profiling |
4. Security Requirements
▶| Req ID | Requirement | Test Category |
|---|---|---|
| SCP-R1 | mTLS termination and re-establishment on both legs (consumer-SCP, SCP-producer) | Authentication |
| SCP-R2 | OAuth 2.0 token validation before forwarding (Model C/D) | Authorization |
| SCP-R3 | Token caching with secure storage — encrypted at rest, bounded TTL (Model D) | Credential Protection |
| SCP-R4 | Routing table integrity — prevent unauthorized modification of routing rules | Integrity |
| SCP-R5 | Rate limiting per NF consumer and per API | Availability |
| SCP-R6 | Log sanitization — no subscriber identifiers in logs | Privacy |
| SCP-R7 | High availability — active-active deployment, health checks | Availability |
| SCP-R8 | Input validation on all SBI headers (3gpp-Sbi-* headers) | Input Validation |
5. Test Cases
▶TC-SCP-01: mTLS Enforcement on Both Legs
MandatoryObjective: Verify SCP requires and validates mTLS on both consumer-facing and producer-facing connections.
Procedure: Connect without client cert on consumer side → verify rejection. Connect without client cert on producer side → verify SCP does not forward.
TC-SCP-02: Token Validation Before Forwarding
MandatoryObjective: Verify SCP validates OAuth token scope before routing request to producer.
Procedure: Send request with expired/invalid/wrong-scope token via SCP → verify 401/403 before reaching producer.
TC-SCP-03: Secure Token Storage (Model D)
ConditionalObjective: Verify SCP protects cached OAuth tokens against extraction.
Procedure: Attempt to access token cache via unauthorized API/interface → verify tokens encrypted at rest and not exposed.
TC-SCP-04: Routing Integrity
MandatoryObjective: Verify SCP routing rules cannot be modified by non-authorized entities.
Procedure: Attempt to modify routing configuration via SBI request or management interface without proper authorization → verify rejection.
TC-SCP-05: SBI Header Injection Prevention
MandatoryObjective: Verify SCP sanitizes/validates 3gpp-Sbi-* headers to prevent header injection.
Procedure: Send request with malformed 3gpp-Sbi-Target-apiRoot pointing to external host → verify SCP rejects or strips.
TC-SCP-06: Rate Limiting
ConditionalObjective: Verify SCP rate-limits excessive requests from a single NF consumer.
Procedure: Send burst exceeding per-consumer rate → verify 429 response and service continues for other consumers.